FK_FKD_SyncServiceModel.cs 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Xml.Linq;
  7. namespace HH.YiDaSyncNC.Models
  8. {
  9. class FK_FKD_SyncServiceModel
  10. {
  11. public class DataModel
  12. {
  13. public string 集团 { get; set; } = "0";
  14. public string 组织 { get; set; }
  15. public string 支付人 { get; set; }
  16. public string 支付日期 { get; set; }
  17. public string 创建人 { get; set; }
  18. public string 创建时间 { get; set; }
  19. public string 制单人 { get; set; }
  20. public string 单据类型 { get; set; } = "F3";
  21. public string 付款类型 { get; set; } = "D3";
  22. public string 单据大类 { get; set; } = "fk";
  23. public string 业务流程 { get; set; } = "AP02";
  24. public string 单据号 { get; set; }
  25. public string 单据日期 { get; set; }
  26. public string 单据所属系统 { get; set; } = "1";
  27. public string 单据来源系统 { get; set; } = "1";
  28. public string 单据状态 { get; set; } = "-1";
  29. public string 结算状态 { get; set; } = "1";
  30. public string 生效状态 { get; set; } = "10";
  31. public string 生效人 { get; set; }
  32. public string 生效日期 { get; set; }
  33. public string 发票号 { get; set; }
  34. public string 供应商 { get; set; }
  35. public string 币种 { get; set; } = "CNY";
  36. public string 往来对象 { get; set; } = "1";
  37. public string 付款银行账户 { get; set; }
  38. public string 价税合计 { get; set; }
  39. public string 年份 { get; set; }
  40. public string 月份 { get; set; }
  41. public string 起算日期 { get; set; }
  42. public string 汇率 { get; set; } = "1";
  43. public string 折扣 { get; set; } = "100";
  44. public List<Item> 明细 { get; set; }
  45. public class Item
  46. {
  47. public string 摘要 { get; set; }
  48. public string 科目 { get; set; }
  49. public string 部门 { get; set; }
  50. public string 项目 { get; set; }
  51. public string 价税合计 { get; set; }
  52. public string 无税金额 { get; set; }
  53. public string 税额 { get; set; }
  54. }
  55. }
  56. public class ImportXml
  57. {
  58. /// <summary>
  59. /// 模板头部份
  60. /// </summary>
  61. /// <returns></returns>
  62. public static XElement TemplateHeade()
  63. {
  64. return new XElement(new XElement("ufinterface", new object[]
  65. {
  66. new XAttribute("sender","dingding"),
  67. new XAttribute("roottag",""),
  68. new XAttribute("replace","Y"),
  69. new XAttribute("isexchange","Y"),
  70. new XAttribute("groupcode","0"),
  71. new XAttribute("filename",""),
  72. new XAttribute("billtype","F3"),
  73. new XAttribute("proc","add"),
  74. new XAttribute("account","develop")
  75. }));
  76. }
  77. /// <summary>
  78. /// 组建表头xml
  79. /// </summary>
  80. /// <param name="item">表头参数</param>
  81. /// <returns></returns>
  82. public static XElement Header(DataModel item, string id)
  83. {
  84. var bodys = new List<XElement>();
  85. if (item.明细 != null && item.明细.Count > 0)
  86. {
  87. var crowno = 10; // 行号
  88. foreach (var itemData in item.明细)
  89. {
  90. bodys.Add(new XElement("item", new object[] {
  91. new XElement("pk_group",item.集团),
  92. new XElement("sett_org",item.组织),
  93. new XElement("pk_org",item.组织),
  94. new XElement("pk_fiorg",item.组织),
  95. new XElement("prepay","0"),
  96. new XElement("supplier",item.供应商),
  97. new XElement("checkdirection","ap"),
  98. new XElement("billdate",item.单据日期),
  99. new XElement("pk_billtype",item.单据类型),
  100. new XElement("billclass",item.单据大类),
  101. new XElement("pk_tradetype",item.付款类型),
  102. new XElement("busidate",item.起算日期),
  103. new XElement("billno",item.单据号),
  104. new XElement("objtype",item.往来对象),
  105. new XElement("rowno",crowno.ToString()),
  106. new XElement("direction","1"),
  107. // new XElement("scomment",itemData.摘要),
  108. new XElement("subjcode",itemData.科目),
  109. new XElement("pk_currtype",item.币种),
  110. new XElement("rate",item.汇率),
  111. new XElement("pk_deptid",itemData.部门),
  112. new XElement("project",itemData.项目),
  113. new XElement("money_de",itemData.价税合计),
  114. new XElement("local_money_de",itemData.价税合计),
  115. new XElement("local_money_bal",itemData.价税合计),
  116. new XElement("notax_de",itemData.无税金额),
  117. new XElement("local_notax_de",itemData.价税合计),
  118. new XElement("payaccount",item.付款银行账户),
  119. new XElement("invoiceno",item.发票号.Length<=40?item.发票号:item.发票号.Substring(0,40)),
  120. new XElement("def12",itemData.税额),
  121. new XElement("def11",itemData.无税金额),
  122. new XElement("occupationmny",itemData.价税合计),
  123. new XElement("grouprate","0"),
  124. new XElement("globalrate","0"),
  125. new XElement("groupdebit","0"),
  126. new XElement("globaldebit","0"),
  127. new XElement("groupbalance","0"),
  128. new XElement("globalbalance","0"),
  129. new XElement("groupnotax_de","0"),
  130. new XElement("globalnotax_de","0"),
  131. }));
  132. crowno = crowno + 10;
  133. }
  134. }
  135. return new XElement("bill", new object[]
  136. {
  137. "",
  138. new XAttribute("id",id),
  139. new XElement("billhead", new object[]
  140. {
  141. new XElement("pk_group",item.集团),
  142. new XElement("pk_fiorg",item.组织),
  143. new XElement("pk_org",item.组织),
  144. new XElement("sett_org",item.组织),
  145. new XElement("pk_corp",item.组织),
  146. new XElement("isreded","N"),
  147. new XElement("payman",item.支付人),
  148. new XElement("paydate",item.支付日期),
  149. new XElement("isonlinepay","N"),
  150. new XElement("creationtime",item.创建时间),
  151. new XElement("creator",item.创建人),
  152. new XElement("pk_billtype",item.单据类型),
  153. new XElement("pk_tradetype",item.付款类型),
  154. new XElement("billclass",item.单据大类),
  155. new XElement("pk_busitype",item.业务流程),
  156. new XElement("ismandatepay","N"),
  157. new XElement("accessorynum","0"),
  158. new XElement("isflowbill","N"),
  159. new XElement("isinit","N"),
  160. new XElement("billno",item.单据号),
  161. new XElement("billdate",item.单据日期),
  162. new XElement("syscode",item.单据所属系统),
  163. new XElement("src_syscode",item.单据来源系统),
  164. new XElement("billstatus",item.单据状态),
  165. new XElement("billmaker",item.制单人),
  166. new XElement("isnetpayready","N"),
  167. new XElement("money",item.价税合计),
  168. new XElement("local_money",item.价税合计),
  169. new XElement("billyear",item.年份),
  170. new XElement("billperiod",item.月份),
  171. new XElement("settleflag",item.结算状态),
  172. new XElement("effectstatus",item.生效状态),
  173. new XElement("effectuser",item.生效人),
  174. new XElement("effectdate",item.生效日期),
  175. new XElement("def2",item.发票号),
  176. // new XElement("pk_deptid",item.发票号),
  177. new XElement("supplier",item.供应商),
  178. new XElement("pk_currtype",item.币种),
  179. new XElement("objtype",item.往来对象),
  180. new XElement("payaccount",item.付款银行账户),
  181. new XElement("busidate",item.起算日期),
  182. new XElement("bodys",bodys),
  183. }),
  184. });
  185. }
  186. }
  187. }
  188. }