晓海 曾 преди 2 години
родител
ревизия
468e6603c1

+ 101 - 105
HH.YiDaSyncNC/DataSync/FKGL_SyncService.cs

@@ -79,10 +79,12 @@ namespace HH.YiDaSyncNC.DataSync
                     string jsonData = JsonConvert.SerializeObject(ydDataSource);
                     YiDa_SKDNC thisYiDaData = JsonConvert.DeserializeObject<YiDa_SKDNC>(jsonData);
 
+                    if (string.IsNullOrWhiteSpace(thisYiDaData.selectField_lvywoqmb)) continue;
                     //取值 宜搭表单的某个字段当作凭证日期 如果 支付完成时间 为null,就用 提交时间
-                    DateTime 凭证日期 = thisYiDaData.dateField_lwitiobz is null
-                        ? UnixTimeHelper.ConvertMillisecondsToDateTime(thisYiDaData.dateField_lviv4sfy)
-                        : UnixTimeHelper.ConvertMillisecondsToDateTime((long)thisYiDaData.dateField_lwitiobz);
+                    DateTime 凭证日期 = DateTime.Now;
+                    //thisYiDaData.dateField_lwitiobz is null
+                    //    ? UnixTimeHelper.ConvertMillisecondsToDateTime(thisYiDaData.dateField_lviv4sfy)
+                    //    : UnixTimeHelper.ConvertMillisecondsToDateTime((long)thisYiDaData.dateField_lwitiobz);
                     string 组织 = "";
                     if (!string.IsNullOrWhiteSpace(thisYiDaData.selectField_lvywoqmb))
                     {
@@ -119,107 +121,10 @@ namespace HH.YiDaSyncNC.DataSync
                     };
                     //表体
                     var detailList = new List<FKGL_SyncServiceModel.DataModel.voucher_body>();
-                    if (thisYiDaData.tableField_lrngrtgu != null)
-                    {
-                        var detailObjList1 = thisYiDaData.tableField_lrngrtgu; //明细
-                        int index = 1;
-
-                        foreach (var objItem in detailObjList1)
-                        {
-                            //借方分录
-                            detailList.Add(new FKGL_SyncServiceModel.DataModel.voucher_body()
-                            {
-                                detailindex = index,
-                                accsubjcode = "1123",//科目编码 预付账款
-                                pk_accasoa = "1123",//科目编码 
-                                explanation = objItem.textField_lvxa4v05,//摘要 
-                                verifydate = 凭证日期.ToString("yyyy-MM-dd"),
-                                price = "0.00000000",
-                                excrate2 = "1",
-                                debitquantity = "0.00000000",
-                                debitamount = objItem.numberField_lvua3j17.ToString(),//借方金额 
-                                groupdebitamount = "0.00000000",
-                                globaldebitamount = "0.00000000",
-                                localdebitamount = objItem.numberField_lvua3j17.ToString(),//借方金额
-                                creditquantity = "0.00000000",
-                                creditamount = "0.00000000",
-                                groupcreditamount = "0.00000000",
-                                globalcreditamount = "0.00000000",
-                                localcreditamount = "0.00000000",
-                                billtype = "",
-                                bankaccount = "",
-                                checkstyle = "",
-                                checkno = "",
-                                checkdate = "",
-                                bill_id = "",
-                                bill_date = "",
-                                pk_currtype = "CNY",
-                                cash_flow = new FKGL_SyncServiceModel.DataModel.cash_flow()//现金流 
-                                {
-                                    m_pk_currtype = "CNY",
-                                    money = objItem.numberField_lvua3j17.ToString(),//金额 
-                                    moneymain = objItem.numberField_lvua3j17.ToString(),//金额 
-                                    moneygroup = "",
-                                    moneyglobal = "",
-                                    pk_cashflow = "1124",//现金流编码 
-                                    pk_innercorp = "",
-                                },
-                                ass = new List<FKGL_SyncServiceModel.DataModel.ass>()//
-                                {
-                                    new FKGL_SyncServiceModel.DataModel.ass()
-                                    {
-                                        pk_Checktype ="0019",//0019-供应商辅助核算
-                                        pk_Checkvalue = thisYiDaData.textField_lwitiobt,//供应商编码
-                                    }
-                                },
-                            });
-                        }
-
 
-                        //贷方
-                        detailList.Add(
-                            new FKGL_SyncServiceModel.DataModel.voucher_body()
-                            {
-                                detailindex = index,
-                                accsubjcode = thisYiDaData.textField_lyodct8u,//科目编码 
-                                pk_accasoa = thisYiDaData.textField_lyodct8u,//科目编码
-                                explanation = "贷方摘要",//摘要 
-                                verifydate = 凭证日期.ToString("yyyy-MM-dd"),
-                                price = "0.00000000",
-                                excrate2 = "1",
-                                debitquantity = "0.00000000",
-                                debitamount = "0.00000000",
-                                groupdebitamount = "0.00000000",
-                                globaldebitamount = "0.00000000",
-                                localdebitamount = "0.00000000",
-                                creditquantity = "0.00000000",
-                                creditamount = thisYiDaData.numberField_lvua3j18.ToString(),//贷方金额 
-                                groupcreditamount = "0.00000000",
-                                globalcreditamount = "0.00000000",
-                                localcreditamount = thisYiDaData.numberField_lvua3j18.ToString(),//贷方金额 
-                                billtype = "",
-                                bankaccount = "",
-                                checkstyle = "",
-                                checkno = "",
-                                checkdate = "",
-                                bill_id = "",
-                                bill_date = "",
-                                pk_currtype = "CNY",
-                                cash_flow = new FKGL_SyncServiceModel.DataModel.cash_flow()
-                                {
-                                },
-                                ass = new List<FKGL_SyncServiceModel.DataModel.ass>()//辅助核算 
-                                {
-                                    new FKGL_SyncServiceModel.DataModel.ass()
-                                    {
-                                        pk_Checktype ="0011",//0011-银行账户辅助核算 
-                                        pk_Checkvalue =  thisYiDaData.textField_lrngrtgj,//银行账户 
-                                    }
-                                },
-                            }
-                        );
-
-                        #region 例子
+                    #region 例子
+                    //if (thisYiDaData.tableField_lrngrtgu != null)
+                    //{
                         ////循环内是借方分录赋值
                         //foreach (var objItem in detailObjList1)
                         //{
@@ -361,9 +266,100 @@ namespace HH.YiDaSyncNC.DataSync
                         //        },
                         //    }
                         //);
-                        #endregion
-                    }
+                    //}
 
+                    #endregion
+
+                    //借方分录
+                    detailList.Add(new FKGL_SyncServiceModel.DataModel.voucher_body()
+                    {
+                        detailindex = 1,
+                        accsubjcode = "1123",//科目编码 预付账款
+                        pk_accasoa = "1123",//科目编码 
+                        explanation = "借方摘要",//摘要 
+                        verifydate = 凭证日期.ToString("yyyy-MM-dd"),
+                        price = "0.00000000",
+                        excrate2 = "1",
+                        debitquantity = "0.00000000",
+                        debitamount = thisYiDaData.numberField_lvua3j18.ToString(),//借方金额 
+                        groupdebitamount = "0.00000000",
+                        globaldebitamount = "0.00000000",
+                        localdebitamount = thisYiDaData.numberField_lvua3j18.ToString(),//借方金额
+                        creditquantity = "0.00000000",
+                        creditamount = "0.00000000",
+                        groupcreditamount = "0.00000000",
+                        globalcreditamount = "0.00000000",
+                        localcreditamount = "0.00000000",
+                        billtype = "",
+                        bankaccount = "",
+                        checkstyle = "",
+                        checkno = "",
+                        checkdate = "",
+                        bill_id = "",
+                        bill_date = "",
+                        pk_currtype = "CNY",
+                        cash_flow = new FKGL_SyncServiceModel.DataModel.cash_flow()//现金流 
+                        {
+                            m_pk_currtype = "CNY",
+                            money = thisYiDaData.numberField_lvua3j18.ToString(),//金额 
+                            moneymain = thisYiDaData.numberField_lvua3j18.ToString(),//金额 
+                            moneygroup = "",
+                            moneyglobal = "",
+                            pk_cashflow = "1124",//现金流编码 
+                            pk_innercorp = "",
+                        },
+                        ass = new List<FKGL_SyncServiceModel.DataModel.ass>()//
+                                {
+                                    new FKGL_SyncServiceModel.DataModel.ass()
+                                    {
+                                        pk_Checktype ="0019",//0019-供应商辅助核算
+                                        pk_Checkvalue = thisYiDaData.textField_lwitiobt,//供应商编码
+                                    }
+                                },
+                    });
+
+                    //贷方
+                    detailList.Add(
+                        new FKGL_SyncServiceModel.DataModel.voucher_body()
+                        {
+                            detailindex = 2,
+                            accsubjcode = thisYiDaData.textField_lyodct8u,//科目编码 
+                            pk_accasoa = thisYiDaData.textField_lyodct8u,//科目编码
+                            explanation = "贷方摘要",//摘要 
+                            verifydate = 凭证日期.ToString("yyyy-MM-dd"),
+                            price = "0.00000000",
+                            excrate2 = "1",
+                            debitquantity = "0.00000000",
+                            debitamount = "0.00000000",
+                            groupdebitamount = "0.00000000",
+                            globaldebitamount = "0.00000000",
+                            localdebitamount = "0.00000000",
+                            creditquantity = "0.00000000",
+                            creditamount = thisYiDaData.numberField_lvua3j18.ToString(),//贷方金额 
+                            groupcreditamount = "0.00000000",
+                            globalcreditamount = "0.00000000",
+                            localcreditamount = thisYiDaData.numberField_lvua3j18.ToString(),//贷方金额 
+                            billtype = "",
+                            bankaccount = "",
+                            checkstyle = "",
+                            checkno = "",
+                            checkdate = "",
+                            bill_id = "",
+                            bill_date = "",
+                            pk_currtype = "CNY",
+                            cash_flow = new FKGL_SyncServiceModel.DataModel.cash_flow()
+                            {
+                            },
+                            ass = new List<FKGL_SyncServiceModel.DataModel.ass>()//辅助核算 
+                            {
+                                    new FKGL_SyncServiceModel.DataModel.ass()
+                                    {
+                                        pk_Checktype ="0011",//0011-银行账户辅助核算 
+                                        pk_Checkvalue =  thisYiDaData.textField_lrngrtgj,//银行账户 
+                                    }
+                            },
+                        }
+                    );
 
                     XElement xElement = FKGL_SyncServiceModel.ImportXml_凭证.TemplateHeade(headModel);
                     xElement.Add(FKGL_SyncServiceModel.ImportXml_凭证.Header(headModel));//添加表头数据

+ 177 - 0
HH.YiDaSyncNC/DataSync/FKYF_SyncService.cs

@@ -0,0 +1,177 @@
+using HH.YiDaSyncNC.Dtos.NC;
+using HH.YiDaSyncNC.Dtos.YIDA;
+using HH.YiDaSyncNC.Helper;
+using HH.YiDaSyncNC.Models;
+using Newtonsoft.Json;
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Configuration;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+
+namespace HH.YiDaSyncNC.DataSync
+{
+    public class FKYF_SyncService
+    {
+        public string _AppType;
+        public string _SystemToken;
+        public string _UserId;
+        public string _FormId;
+        public SqlSugarClient _db;
+        public SqlSugarClient _db_nc;
+        public string _NCApiUrl;
+
+        public static string _Static_PK_bd_project = ConfigurationManager.AppSettings["bd_project"];
+        public static string _Static_pk_org_jt = ConfigurationManager.AppSettings["pk_org_jt"];
+
+        public FKYF_SyncService(string AppType, string SystemToken, string UserId, string FormId, SqlSugarClient db, SqlSugarClient db_nc, string NCApiUrl)
+        {
+            _AppType = AppType;
+            _SystemToken = SystemToken;
+            _UserId = UserId;
+            _FormId = FormId;
+            _db = db;
+            _db_nc = db_nc;
+            _NCApiUrl = NCApiUrl;
+        }
+
+
+        public void DataSync()
+        {
+            DingTalkService _dingTalkService = new DingTalkService(_AppType, _SystemToken, _UserId, _FormId);
+
+            // 宜搭全量数据Id
+            var serchKeyListJson = new
+            {
+                radioField_lycrvvtk = "Y",
+                selectField_lrnh633d = "预付",
+
+            };
+            var idList = _dingTalkService.GetFormIdList(JsonConvert.SerializeObject(serchKeyListJson));
+            //LogHelper.WriteLog(JsonConvert.SerializeObject(idList.Count), "idList");
+            #region 获取NC中选项数据的Id
+            var bd_customerDic = _db_nc.Queryable<bd_customer>().ToList();
+            var bd_incomeDic = _db_nc.Queryable<bd_income>().ToList();
+            var org_orgsDic = _db_nc.Queryable<org_orgs>().ToList();
+            var bd_projectDic = _db_nc.Queryable<bd_project>().ToList();
+            var bd_materialDic = _db_nc.Queryable<bd_material>().ToList();
+            var bd_measdocDic = _db_nc.Queryable<bd_measdoc>().ToList();
+            var org_deptDic = _db_nc.Queryable<org_dept>().ToList();
+            var bd_psndocDic = _db_nc.Queryable<bd_psndoc>().ToList();
+            var sm_userDic = _db_nc.Queryable<sm_user>().ToList();
+            var org_accountingbookDic = _db_nc.Queryable<org_accountingbook>().ToList();
+            #endregion
+            foreach (var item in idList)
+            {
+                string createTime = "";
+                string modifyTime = "";
+
+                var ydDataSource = _dingTalkService.GetFormDataById(item, out createTime, out modifyTime);
+                string jsonData = JsonConvert.SerializeObject(ydDataSource);
+                YiDa_SKDNC thisYiDaData = JsonConvert.DeserializeObject<YiDa_SKDNC>(jsonData);
+                if (string.IsNullOrWhiteSpace(thisYiDaData.selectField_lvywoqmb)) continue;
+                if (string.IsNullOrWhiteSpace(thisYiDaData.textField_lwitiobt)) continue;
+                var detailObjFPList1 = thisYiDaData.tableField_lsx02qv5; //发票明细
+                if (detailObjFPList1 is null || detailObjFPList1.Count == 0) continue;
+
+                DateTime 日期 = DateTime.Now;// UnixTimeHelper.ConvertMillisecondsToDateTime(thisYiDaData.dateField_lviv4sfy);
+
+                string 组织 = "";
+                if (!string.IsNullOrWhiteSpace(thisYiDaData.selectField_lvywoqmb))
+                {
+                    var tempData = org_orgsDic.FirstOrDefault(f => f.name == thisYiDaData.selectField_lvywoqmb);
+                    if (tempData != null)
+                    {
+                        组织 = tempData.code; // 组织
+                    }
+                }
+
+                string 单据号 = "";
+                if (!string.IsNullOrWhiteSpace(thisYiDaData.serialNumberField_lwiz0n9f))
+                {
+
+                    单据号 = thisYiDaData.serialNumberField_lwiz0n9f; // 组织
+                }
+
+                string 制单人 = "OA-NC";
+
+                // 表头
+                var headModel = new FKYF_SyncServiceModel.DataModel.voucher_header()
+                {
+                    billdate = 日期.ToString("yyyy-MM-dd"),
+                    billmaker = 制单人,
+                    billno = 单据号,
+                    billperiod = 日期.ToString("MM"),
+                    billyear = 日期.ToString("yyyy"),
+                    creationtime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
+                    creator = 制单人,
+                    local_money = thisYiDaData.numberField_lvua3j18.ToString(),
+                    money = thisYiDaData.numberField_lvua3j18.ToString(),
+                    pk_org = 组织,
+                    pu_org = 组织,
+                    pu_deptid = "",
+                    pu_psndoc = "",
+
+                };
+
+                //表体
+                var detailList = new List<FKYF_SyncServiceModel.DataModel.voucher_body>();
+                if (thisYiDaData.tableField_lrngrtgu != null)
+                {
+                    var detailObjList1 = thisYiDaData.tableField_lrngrtgu; //明细
+                    int index = 1;
+
+                    foreach (var objItem in detailObjList1)
+                    {
+                        var thisBody = new FKYF_SyncServiceModel.DataModel.voucher_body()
+                        {
+                            sett_org = 组织,
+                            supplier = thisYiDaData.textField_lwitiobt,
+                            pk_subjcode = objItem.textField_lwitioch,
+                            subjcode = objItem.textField_lwitioce,
+                            billdate = 日期.ToString("yyyy-MM-dd"),
+                            busidate = 日期.ToString("yyyy-MM-dd"),
+                            invoiceno = detailObjFPList1.FirstOrDefault().textField_lsx02qv8,
+                            price = objItem.numberField_lvxa4v09.ToString(),// "单价",
+                            taxprice = objItem.numberField_lvua3j17.ToString(),
+                            quantity_cr = "1",//"贷方数量",
+                            money_cr = objItem.numberField_lvua3j17.ToString(),//"贷方原币金额",
+                            notax_cr = objItem.numberField_lvxa4v09.ToString(),//"贷方原币无税金额",
+                            local_money_cr = objItem.numberField_lvua3j17.ToString(),//"组织本币金额(贷方)",
+                            local_notax_cr = objItem.numberField_lvxa4v09.ToString(),//"组织本币无税金额(贷方)",
+                            caltaxmny = objItem.numberField_lvxa4v09.ToString(),//"计税金额",
+                            local_tax_cr = objItem.numberField_lvxa4v08.ToString() ?? "0",//"税额",
+                            taxrate = "13",
+                            pu_org = 组织,
+                            rowno = index.ToString(),
+                            ordercubasdoc = thisYiDaData.textField_lwitiobt,
+                            pk_fiorg = 组织,
+                            pk_org= 组织,
+                            pu_deptid = "",
+                            pk_psndoc ="",
+                            pk_deptid ="",
+                            material="",
+                        };
+                        detailList.Add(thisBody);
+                        index++;
+                    }
+
+
+                    XElement xElement = FKYF_SyncServiceModel.ImportXml_应付单.TemplateHeade(headModel);
+                    xElement.Add(FKYF_SyncServiceModel.ImportXml_应付单.Header(headModel));//添加表头数据
+                    xElement.Element("bill").Element("billhead").Element("bodys").Add(FKYF_SyncServiceModel.ImportXml_应付单.Body(detailList));
+                    //生成凭证
+                    var results_应付单 = NCImportFunc.NCImport2(xElement, _NCApiUrl + "?account=01&groupcode=0");
+
+                    LogHelper.WriteLog(JsonConvert.SerializeObject(results_应付单), "results_应付单");
+
+
+                }
+            }
+        }
+
+    }
+}

+ 17 - 0
HH.YiDaSyncNC/Dtos/YIDA/YiDa_SKDNC.cs

@@ -48,6 +48,10 @@ namespace HH.YiDaSyncNC.Dtos.YIDA
         /// </summary>
         public string selectField_lwiuvaws { get; set; }
         /// <summary>
+        /// 单据编号
+        /// </summary>
+        public string serialNumberField_lwiz0n9f { get; set; }
+        /// <summary>
         /// 提交时间
         /// </summary>
         public long dateField_lviv4sfy { get; set; }
@@ -55,6 +59,10 @@ namespace HH.YiDaSyncNC.Dtos.YIDA
         /// 付款明细
         /// </summary>
         public List<YiDa_SKDNCDetails> tableField_lrngrtgu { get; set; }
+        /// <summary>
+        /// 发票明细
+        /// </summary>
+        public List<YiDa_SKDNCFPDetails> tableField_lsx02qv5 { get; set; }
     }
     public class YiDa_SKDNCDetails
     {
@@ -103,4 +111,13 @@ namespace HH.YiDaSyncNC.Dtos.YIDA
         /// </summary>
         public string textField_lwitioch { get; set; }
     }
+
+    public class YiDa_SKDNCFPDetails
+    {
+        /// <summary>
+        /// 发票
+        /// </summary>
+        public string textField_lsx02qv8 { get; set; }
+      
+    }
 }

+ 2 - 0
HH.YiDaSyncNC/HH.YiDaSyncNC.csproj

@@ -127,6 +127,7 @@
     <Compile Include="DataSync\CGDD_SyncService.cs" />
     <Compile Include="DataSync\BX_SyncService.cs" />
     <Compile Include="DataSync\FKGL_SyncService.cs" />
+    <Compile Include="DataSync\FKYF_SyncService.cs" />
     <Compile Include="DataSync\FK_SyncService.cs" />
     <Compile Include="DataSync\KH_SyncService.cs" />
     <Compile Include="DataSync\GYS_SyncService.cs" />
@@ -183,6 +184,7 @@
     <Compile Include="Helper\NCImportFunc.cs" />
     <Compile Include="Helper\UnixTimeHelper.cs" />
     <Compile Include="Models\FKGL_SyncServiceModel.cs" />
+    <Compile Include="Models\FKYF_SyncServiceModel.cs" />
     <Compile Include="Models\FK_SyncServiceModel.cs" />
     <Compile Include="Models\XSFP_SyncServiceModel.cs" />
     <Compile Include="Models\KP_SyncServiceModel.cs" />

+ 339 - 0
HH.YiDaSyncNC/Models/FKYF_SyncServiceModel.cs

@@ -0,0 +1,339 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+
+namespace HH.YiDaSyncNC.Models
+{
+    public class FKYF_SyncServiceModel
+    {
+        #region 凭证数据模型
+        /// <summary>
+        /// 凭证模型
+        /// </summary>
+        public class DataModel
+        {
+            /// <summary>
+            /// 头部
+            /// </summary>
+            public class voucher_header
+            {
+                /// <summary>
+                /// 应付财务组织
+                /// </summary>
+                public string pk_org { get; set; }
+                /// <summary>
+                /// 创建时间 
+                /// </summary>
+                public string creationtime { get; set; }
+                /// <summary>
+                /// 创建人
+                /// </summary>
+                public string creator { get; set; }
+                /// <summary>
+                /// 单据日期
+                /// </summary>
+                public string billdate { get; set; }
+                /// <summary>
+                /// 制单人
+                /// </summary>
+                public string billmaker { get; set; }
+                /// <summary>
+                /// 单据号
+                /// </summary>
+                public string billno { get; set; }
+                /// <summary>
+                /// 原币金额
+                /// </summary>
+                public string money { get; set; }
+                /// <summary>
+                /// 组织本币金额
+                /// </summary>
+                public string local_money { get; set; }
+                /// <summary>
+                /// 单据会计年度
+                /// </summary>
+                public string billyear { get; set; }
+                /// <summary>
+                /// 单据会计期间
+                /// </summary>
+                public string billperiod { get; set; }
+                /// <summary>
+                /// 采购部门
+                /// </summary>
+                public string pu_deptid { get; set; }
+                /// <summary>
+                /// 采购业务员
+                /// </summary>
+                public string pu_psndoc { get; set; }
+                /// <summary>
+                /// 采购组织
+                /// </summary>
+                public string pu_org { get; set; }
+            }
+
+            /// <summary>
+            /// 明细分录
+            /// </summary>
+            public class voucher_body
+            {
+                /// <summary>
+                /// 应付财务组织
+                /// </summary>
+                public string pk_org { get; set; }
+                /// <summary>
+                /// 财务组织
+                /// </summary>
+                public string pk_fiorg { get; set; }
+                /// <summary>
+                /// 采购部门
+                /// </summary>
+                public string pu_deptid { get; set; }
+                /// <summary>
+                /// 采购组织
+                /// </summary>
+                public string pu_org { get; set; }
+                /// <summary>
+                /// 结算财务组织
+                /// </summary>
+                public string sett_org { get; set; }
+                /// <summary>
+                /// 物料
+                /// </summary>
+                public string material { get; set; }
+                /// <summary>
+                /// 供应商
+                /// </summary>
+                public string supplier { get; set; }
+                /// <summary>
+                /// 单据日期
+                /// </summary>
+                public string billdate { get; set; }
+                /// <summary>
+                /// 起算日期
+                /// </summary>
+                public string busidate { get; set; }
+                /// <summary>
+                /// 收支项目
+                /// </summary>
+                public string pk_subjcode { get; set; }
+                /// <summary>
+                /// 科目
+                /// </summary>
+                public string subjcode { get; set; }
+                /// <summary>
+                /// 单据分录号
+                /// </summary>
+                public string rowno { get; set; }
+                /// <summary>
+                /// 部门
+                /// </summary>
+                public string pk_deptid { get; set; }
+                /// <summary>
+                /// 业务员
+                /// </summary>
+                public string pk_psndoc { get; set; }
+                /// <summary>
+                /// 贷方数量
+                /// </summary>
+                public string quantity_cr { get; set; }
+                /// <summary>
+                /// 组织本币金额(贷方)
+                /// </summary>
+                public string local_money_cr { get; set; }
+                /// <summary>
+                /// 贷方原币金额
+                /// </summary>
+                public string money_cr { get; set; }
+                /// <summary>
+                /// 税额
+                /// </summary>
+                public string local_tax_cr { get; set; }
+                /// <summary>
+                /// 贷方原币无税金额
+                /// </summary>
+                public string notax_cr { get; set; }
+                /// <summary>
+                /// 组织本币无税金额(贷方)
+                /// </summary>
+                public string local_notax_cr { get; set; }
+                /// <summary>
+                /// 单价 无税
+                /// </summary>
+                public string price { get; set; }
+                /// <summary>
+                /// 含税单价
+                /// </summary>
+                public string taxprice { get; set; }
+                /// <summary>
+                /// 税率
+                /// </summary>
+                public string taxrate { get; set; }
+                /// <summary>
+                /// 订单供应商
+                /// </summary>
+                public string ordercubasdoc { get; set; }
+                /// <summary>
+                /// 发票号
+                /// </summary>
+                public string invoiceno { get; set; }
+                /// <summary>
+                /// 计税金额
+                /// </summary>
+                public string caltaxmny { get; set; }
+            }
+
+        }
+        #endregion
+
+        public class ImportXml_应付单
+        {
+            public static XElement TemplateHeade(DataModel.voucher_header item)
+            {
+
+                return new XElement(new XElement("ufinterface", new object[]
+                {
+                    new XAttribute("billtype","F1"),
+                    new XAttribute("sender","dingding"),
+                    new XAttribute("receiver",""),
+                    new XAttribute("roottag",""),
+                    new XAttribute("replace","N"),
+                    new XAttribute("orgcode",""),
+                    new XAttribute("isexchange",""),
+                    new XAttribute("groupcode","0"),
+                    new XAttribute("filename",""),
+                    new XAttribute("businessunitcode","develop"),
+                    new XAttribute("account","develop")
+                }));
+            }
+            /// <summary>
+            /// 组建表头xml
+            /// </summary>
+            /// <param name="item">表头参数</param>
+            /// <returns></returns>
+            public static XElement Header(DataModel.voucher_header item)
+            {
+                return new XElement("bill", new object[]
+                {
+                "",
+                new XElement("billhead", new object[]
+                {
+                    new XElement("pk_group","0"),
+                    new XElement("pk_org",item.pk_org),
+                    new XElement("pk_fiorg",item.pk_org),
+                    new XElement("sett_org",item.pk_org),
+                    new XElement("creationtime",item.creationtime),
+                    new XElement("creator",item.creator),
+                    new XElement("billno",item.billno),
+                    new XElement("billdate",item.billdate),
+                    new XElement("billmaker",item.billmaker),
+                    new XElement("money",item.money),
+                    new XElement("local_money",item.local_money),
+                    new XElement("billyear",item.billyear),
+                    new XElement("billperiod",item.billperiod),
+                    new XElement("pu_deptid",item.pu_deptid),
+                    new XElement("pu_psndoc",item.pu_psndoc),
+                    new XElement("pu_org",item.pu_org),
+                    new XElement("isreded","N"),
+                    new XElement("pk_billtype","F1"),
+                    new XElement("pk_tradetype","D1"),
+                    new XElement("billclass","yf"),
+                    new XElement("accessorynum","0"),
+                    new XElement("isflowbill","N"),
+                    new XElement("isinit","N"),
+                    new XElement("syscode","1"),
+                    new XElement("src_syscode","1"),
+                    new XElement("billstatus","1"),
+                    new XElement("grouplocal","0.00000000"),
+                    new XElement("globallocal","0.00000000"),
+                    new XElement("grouprate","0.00000000"),
+                    new XElement("globalrate","0.00000000"),
+                    new XElement("rate","0.00000000"),
+                    new XElement("ispuadjust","N"),
+                    new XElement("coordflag","0"),
+                    new XElement("pk_currtype","CNY"),
+                    new XElement("bodys","")
+                }),
+                });
+            }
+
+            /// <summary>
+            /// 组建表体xml
+            /// </summary>
+            /// <param name="items">表体</param>
+            /// <returns></returns>
+            public static List<XElement> Body(List<DataModel.voucher_body> items)
+            {
+                List<XElement> list = new List<XElement>();
+
+                foreach (DataModel.voucher_body current in items)
+                {
+
+                    XElement item = new XElement("item", new object[]
+                    {
+                    new XElement("pk_org",current.pk_org),
+                    new XElement("pk_fiorg",current.pk_fiorg),
+                    new XElement("pu_deptid",current.pu_deptid),
+                    new XElement("pu_org",current.pu_org),
+                    new XElement("material",current.material),
+                    new XElement("sett_org",current.sett_org),
+                    new XElement("supplier",current.supplier),
+                    new XElement("supplier",current.billdate),
+                    new XElement("busidate",current.busidate),
+                    new XElement("pk_subjcode",current.pk_subjcode),
+                    new XElement("rowno",current.rowno),
+                    new XElement("pk_deptid",current.pk_deptid),
+                    new XElement("pk_psndoc",current.pk_psndoc),
+                    new XElement("quantity_cr",current.quantity_cr),
+                    new XElement("local_money_cr",current.local_money_cr),
+                    new XElement("money_cr",current.money_cr),
+                    new XElement("notax_cr",current.notax_cr),
+                    new XElement("local_notax_cr",current.local_notax_cr),
+                    new XElement("price",current.price),
+                    new XElement("taxprice",current.taxprice),
+                    new XElement("taxrate",current.taxrate),
+                    new XElement("ordercubasdoc",current.ordercubasdoc),
+                    new XElement("invoiceno",current.invoiceno),
+                    new XElement("caltaxmny",current.caltaxmny),
+                    new XElement("local_tax_cr",current.local_tax_cr),
+                    new XElement("subjcode",current.subjcode),
+                    new XElement("coordflag","0"),
+                    new XElement("pk_group","0"),
+                    new XElement("direction","0"),
+                    new XElement("rowtype","0"),
+                    new XElement("pk_billtype","F1"),
+                    new XElement("billclass","yf"),
+                    new XElement("pk_tradetype","D1"),
+                    new XElement("objtype","1"),
+                    new XElement("pk_currtype","CNY"),
+                    new XElement("rate","1"),
+                    new XElement("money_bal","0"),
+                    new XElement("local_money_bal","0"),
+                    new XElement("quantity_bal","0"),
+                    new XElement("taxtype","0"),
+                    new XElement("buysellflag","2"),
+                    new XElement("grouprate","0.00000000"),
+                    new XElement("globalrate","0.00000000"),
+                    new XElement("groupcrebit","0.00000000"),
+                    new XElement("globalcrebit","0.00000000"),
+                    new XElement("groupbalance","0.00000000"),
+                    new XElement("globalbalance","0.00000000"),
+                    new XElement("groupnotax_cre","0.00000000"),
+                    new XElement("globalnotax_cre","0.00000000"),
+                    new XElement("occupationmny","0.00000000"),
+
+
+
+
+                        });
+
+
+                    list.Add(item);
+                }
+                return list;
+            }
+        }
+    }
+}

+ 3 - 0
HH.YiDaSyncNC/Program.cs

@@ -83,6 +83,9 @@ namespace HH.YiDaSyncNC
                 // 付款单 预付类型 生成凭证 zxh
                 FKGL_SyncService fkgl_SyncService = new FKGL_SyncService(_Static_AppType, _Static_SystemToken, _Static_UserId, _Static_FormId_FK, db, db_nc, _Static_NCApiUrl);
                 fkgl_SyncService.DataSync();
+                // 付款单 预付类型 生成应付单 zxh
+                //FKYF_SyncService fkyf_SyncService = new FKYF_SyncService(_Static_AppType, _Static_SystemToken, _Static_UserId, _Static_FormId_FK, db, db_nc, _Static_NCApiUrl);
+                //fkyf_SyncService.DataSync();
 
                 // 费用报销单 zxh
                 //BX_SyncService bx_SyncService = new BX_SyncService(_Static_AppType, _Static_SystemToken, _Static_UserId, _Static_FormId_FYBX, db, db_nc, _Static_NCApiUrl);