FK_XZ_SyncServiceModel.cs 9.6 KB

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