Exemplo n.º 1
0
        private void GetList()
        {
            DataTable dt = tmo_order.GetSaleOrder(ltlPlanCode.Text).Tables[0];

            if (dt.Rows.Count > 0)
            {
                rptList.DataSource = dt;
                rptList.DataBind();
            }
            else
            {
                rptList.DataSource = null;
                rptList.DataBind();
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// NC订单维护接口
        /// </summary>
        /// <param name="saleCode">销售单据号列表</param>
        /// <param name="xmlFileName">路径/文件名.xml</param>
        /// <param name="empID">操作人ID</param>
        /// <returns>返回结果集</returns>
        public List <string> SendXmlOrder(List <ApiOrderDto> orderDto, string xmlFileName, string empID)
        {
            try
            {
                Mod_TMO_CON modCon = tmo_con.GetModel(orderDto[0].ConNO);

                XmlDocument xmlDoc = new XmlDocument();
                //创建类型声明节点
                XmlNode node = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", "no");
                xmlDoc.AppendChild(node);

                //创建根节点
                XmlElement root = xmlDoc.CreateElement("ufinterface");
                #region//给节点属性赋值
                root.SetAttribute("account", "1");
                root.SetAttribute("billtype", "30ext");
                root.SetAttribute("filename", "" + orderDto[0].SaleCode + ".xml");//单据号
                root.SetAttribute("isexchange", "Y");
                root.SetAttribute("proc", "add");
                root.SetAttribute("receiver", "101");
                root.SetAttribute("replace", "Y");
                root.SetAttribute("roottag", "so_order");
                root.SetAttribute("sender", "1107");
                #endregion
                xmlDoc.AppendChild(root);

                //创建子根节点
                XmlElement so_order = xmlDoc.CreateElement("so_order");
                #region                                         //节点属性
                so_order.SetAttribute("id", orderDto[0].NC_ID); //主键
                #endregion
                root.AppendChild(so_order);

                XmlNode head = xmlDoc.CreateNode(XmlNodeType.Element, "so_order_head", null);

                #region                                                         //表头_order_head
                CreateNode(xmlDoc, head, "pk_corp", "1001");
                CreateNode(xmlDoc, head, "vreceiptcode", orderDto[0].SaleCode); //销售单据号
                CreateNode(xmlDoc, head, "creceipttype", "30");
                CreateNode(xmlDoc, head, "cbiztype", modCon.C_BIZTYPE);         //业务类型
                CreateNode(xmlDoc, head, "vaccountyear", "");
                CreateNode(xmlDoc, head, "binitflag", "N");
                CreateNode(xmlDoc, head, "dbilldate", Convert.ToDateTime(orderDto[0].D_NC_DATE).ToString("yyy-MM-dd")); //单据日期
                CreateNode(xmlDoc, head, "ccustomerid", modCon.C_CUSTOMERID);                                           //客户ID
                CreateNode(xmlDoc, head, "cdeptid", modCon.C_DEPTID);                                                   //部门ID
                CreateNode(xmlDoc, head, "cemployeeid", modCon.C_EMPLOYEEID);                                           //业务员ID
                CreateNode(xmlDoc, head, "coperatorid", modCon.C_COPERATORID);                                          //制单人
                CreateNode(xmlDoc, head, "ctermprotocolid", "");
                CreateNode(xmlDoc, head, "csalecorpid", modCon.C_SALECORPID);                                           //销售组织
                CreateNode(xmlDoc, head, "ccalbodyid", "1001NC10000000000669");                                         //库存组织
                CreateNode(xmlDoc, head, "creceiptcustomerid", modCon.C_CRECEIPTCUSTOMERID);                            //收货单位
                CreateNode(xmlDoc, head, "vreceiveaddress", modCon.C_ADDRESS);                                          //收货地址
                CreateNode(xmlDoc, head, "creceiptareaid", "");
                CreateNode(xmlDoc, head, "creceiptcorpid", modCon.C_CRECEIPTCORPID);                                    //开票单位
                CreateNode(xmlDoc, head, "ccustbankid", "");
                CreateNode(xmlDoc, head, "ctransmodeid", modCon.C_TRANSMODEID);                                         //发运方式
                CreateNode(xmlDoc, head, "ndiscountrate", "100");
                CreateNode(xmlDoc, head, "cwarehouseid", "");
                CreateNode(xmlDoc, head, "veditreason", "");
                CreateNode(xmlDoc, head, "bfreecustflag", "N");
                CreateNode(xmlDoc, head, "cfreecustid", "");
                CreateNode(xmlDoc, head, "ibalanceflag", "");
                CreateNode(xmlDoc, head, "nsubscription", "");
                CreateNode(xmlDoc, head, "nevaluatecarriage", "0");
                CreateNode(xmlDoc, head, "dmakedate", Convert.ToDateTime(modCon.D_DMAKEDATE).ToString("yyy-MM-dd"));      //制单日期
                CreateNode(xmlDoc, head, "capproveid", modCon.C_APPROVEID);                                               //审批人
                CreateNode(xmlDoc, head, "dapprovedate", Convert.ToDateTime(modCon.D_APPROVEDATE).ToString("yyy-MM-dd")); //审批日期
                CreateNode(xmlDoc, head, "fstatus", "1");
                CreateNode(xmlDoc, head, "vnote", modCon.C_CON_NAME);                                                     //合同名称
                CreateNode(xmlDoc, head, "vdef1", "");
                CreateNode(xmlDoc, head, "vdef2", "");
                CreateNode(xmlDoc, head, "vdef3", "");
                CreateNode(xmlDoc, head, "vdef4", "");
                CreateNode(xmlDoc, head, "vdef5", "");
                CreateNode(xmlDoc, head, "vdef6", "");
                CreateNode(xmlDoc, head, "vdef7", "");
                CreateNode(xmlDoc, head, "vdef8", "");
                CreateNode(xmlDoc, head, "vdef9", "");
                CreateNode(xmlDoc, head, "vdef10", "");
                CreateNode(xmlDoc, head, "bretinvflag", "N");
                CreateNode(xmlDoc, head, "boutendflag", "N");
                CreateNode(xmlDoc, head, "binvoicendflag", "N");
                CreateNode(xmlDoc, head, "breceiptendflag", "N");
                CreateNode(xmlDoc, head, "bpayendflag", "N");
                CreateNode(xmlDoc, head, "bdeliver", "Y");
                #endregion

                so_order.AppendChild(head);
                XmlElement body = xmlDoc.CreateElement("so_order_body");
                so_order.AppendChild(body);

                DataTable dt = tmo_order.GetSaleOrder(orderDto[0].SaleCode).Tables[0];
                for (int j = 0; j < dt.Rows.Count; j++)
                {
                    int rowno = j + 1;

                    Mod_TMO_ORDER modOrder = tmo_order.GetModel(dt.Rows[j]["C_ID"].ToString());
                    if (modOrder != null)
                    {
                        XmlNode entry = xmlDoc.CreateNode(XmlNodeType.Element, "entry", null);

                        #region //表体_entry

                        string[] arr = { "6", "8" };

                        CreateNode(xmlDoc, entry, "pk_corp", modOrder.C_XGID);//邢钢公司'1001'
                        CreateNode(xmlDoc, entry, "creceipttype", "");
                        CreateNode(xmlDoc, entry, "csourcebillid", "");
                        CreateNode(xmlDoc, entry, "csourcebillbodyid", "");
                        CreateNode(xmlDoc, entry, "cinvbasdocid", modOrder.C_INVBASDOCID); //存货档案主键
                        CreateNode(xmlDoc, entry, "cinventoryid", modOrder.C_INVENTORYID); //存货管理档案主键
                        CreateNode(xmlDoc, entry, "cunitid", modOrder.C_UNITID);           //主计量单位

                        if (arr.Contains(modOrder.N_TYPE.ToString()))
                        {
                            CreateNode(xmlDoc, entry, "cpackunitid", modOrder.C_FUNITID);//辅单位
                        }
                        else
                        {
                            CreateNode(xmlDoc, entry, "cpackunitid", "");//辅单位
                        }
                        CreateNode(xmlDoc, entry, "cbatchid", "");

                        CreateNode(xmlDoc, entry, "nnumber", modOrder.N_WGT.ToString());//数量
                        if (arr.Contains(modOrder.N_TYPE.ToString()))
                        {
                            CreateNode(xmlDoc, entry, "npacknumber", modOrder.N_FNUM.ToString());//辅数量
                        }
                        else
                        {
                            CreateNode(xmlDoc, entry, "npacknumber", "");                      //辅数量
                        }
                        CreateNode(xmlDoc, entry, "cconsigncorpid", modOrder.C_XGID);          //发货公司
                        CreateNode(xmlDoc, entry, "cadvisecalbodyid", "1001NC10000000000669"); //发货库存组织
                        CreateNode(xmlDoc, entry, "cbodywarehouseid", "");
                        CreateNode(xmlDoc, entry, "creccalbodyid", "");
                        CreateNode(xmlDoc, entry, "crecwarehouseid", "a");
                        CreateNode(xmlDoc, entry, "dconsigndate", Convert.ToDateTime(modOrder.D_DELIVERY_DT).ToString("yyy-MM-dd")); //发货日期
                        CreateNode(xmlDoc, entry, "ddeliverdate", Convert.ToDateTime(modOrder.D_DELIVERY_DT).ToString("yyy-MM-dd")); //交货日期
                        CreateNode(xmlDoc, entry, "blargessflag", "N");
                        CreateNode(xmlDoc, entry, "ceditsaleid", "");
                        CreateNode(xmlDoc, entry, "beditflag", "N");
                        CreateNode(xmlDoc, entry, "veditreason", "");
                        CreateNode(xmlDoc, entry, "ccurrencytypeid", modOrder.C_CURRENCYTYPEID);//原币
                        CreateNode(xmlDoc, entry, "nitemdiscountrate", "100");
                        CreateNode(xmlDoc, entry, "ndiscountrate", "100");
                        CreateNode(xmlDoc, entry, "nexchangeotobrate", "1");
                        CreateNode(xmlDoc, entry, "nexchangeotoarate", "");
                        CreateNode(xmlDoc, entry, "ntaxrate", Convert.ToString(modOrder.N_TAXRATE * 100));               //税率
                        CreateNode(xmlDoc, entry, "noriginalcurprice", modOrder.N_ORIGINALCURPRICE.ToString());          //原币无税单价
                        CreateNode(xmlDoc, entry, "noriginalcurtaxprice", modOrder.N_ORIGINALCURTAXPRICE.ToString());    //原币含税单价
                        CreateNode(xmlDoc, entry, "noriginalcurnetprice", modOrder.N_ORIGINALCURPRICE.ToString());       //原币无税净价
                        CreateNode(xmlDoc, entry, "noriginalcurtaxnetprice", modOrder.N_ORIGINALCURTAXPRICE.ToString()); //原币含税净价
                        CreateNode(xmlDoc, entry, "noriginalcurtaxmny", modOrder.N_ORIGINALCURTAXMNY.ToString());        //原币税额
                        CreateNode(xmlDoc, entry, "noriginalcurmny", modOrder.N_ORIGINALCURMNY.ToString());              //原币无税金额
                        CreateNode(xmlDoc, entry, "noriginalcursummny", modOrder.N_ORIGINALCURSUMMNY.ToString());        //原币价税合计
                        CreateNode(xmlDoc, entry, "noriginalcurdiscountmny", "0");
                        CreateNode(xmlDoc, entry, "nprice", modOrder.N_ORIGINALCURPRICE.ToString());                     //本币无税单价
                        CreateNode(xmlDoc, entry, "ntaxprice", modOrder.N_ORIGINALCURTAXPRICE.ToString());               //本币含税单价
                        CreateNode(xmlDoc, entry, "nnetprice", modOrder.N_ORIGINALCURPRICE.ToString());                  //本币无税净价
                        CreateNode(xmlDoc, entry, "ntaxnetprice", modOrder.N_ORIGINALCURTAXPRICE.ToString());            //本币含税净价
                        CreateNode(xmlDoc, entry, "ntaxmny", modOrder.N_ORIGINALCURTAXMNY.ToString());                   //本币税额
                        CreateNode(xmlDoc, entry, "nmny", modOrder.N_ORIGINALCURMNY.ToString());                         //本币无税金额
                        CreateNode(xmlDoc, entry, "nsummny", modOrder.N_ORIGINALCURSUMMNY.ToString());                   //本币价税合计
                        CreateNode(xmlDoc, entry, "ndiscountmny", "0");
                        CreateNode(xmlDoc, entry, "coperatorid", "");                                                    //制单人
                        CreateNode(xmlDoc, entry, "frowstatus", "1");
                        CreateNode(xmlDoc, entry, "frownote", "");
                        CreateNode(xmlDoc, entry, "fbatchstatus", "0");
                        CreateNode(xmlDoc, entry, "ct_manageid", "");
                        CreateNode(xmlDoc, entry, "cfactoryid", "");             //合同表头主键
                        CreateNode(xmlDoc, entry, "cfreezeid", "");              //合同表体主键
                        CreateNode(xmlDoc, entry, "cbomorderid", modOrder.C_ID); //销售订单表体主键
                        CreateNode(xmlDoc, entry, "boosflag", "N");
                        CreateNode(xmlDoc, entry, "bsupplyflag", "N");
                        CreateNode(xmlDoc, entry, "creceiptareaid", modOrder.C_RECEIPTAREAID);   //收货地区
                        CreateNode(xmlDoc, entry, "vreceiveaddress", modOrder.C_RECEIVEADDRESS); //收货地址
                        CreateNode(xmlDoc, entry, "creceiptcorpid", modOrder.C_RECEIPTCORPID);   //收货单位
                        CreateNode(xmlDoc, entry, "crowno", rowno.ToString());                   //行号
                        CreateNode(xmlDoc, entry, "ntotalpaymny", "0.00000000");
                        CreateNode(xmlDoc, entry, "ntotalreceiptnumber", "0.00000000");
                        CreateNode(xmlDoc, entry, "ntotalinvoicenumber", "0.00000000");
                        CreateNode(xmlDoc, entry, "ntotalinvoicemny", "0.00000000");
                        CreateNode(xmlDoc, entry, "ntotalinventorynumber", "0.00000000");
                        CreateNode(xmlDoc, entry, "ntotalbalancenumber", "0.00000000");
                        CreateNode(xmlDoc, entry, "ntotalsignnumber", "0.00000000");
                        CreateNode(xmlDoc, entry, "ntotalcostmny", "0.00000000");
                        CreateNode(xmlDoc, entry, "bifinvoicefinish", "N");
                        CreateNode(xmlDoc, entry, "bifreceiptfinish", "N");
                        CreateNode(xmlDoc, entry, "bifinventoryfinish", "N");
                        CreateNode(xmlDoc, entry, "bifpayfinish", "N");
                        CreateNode(xmlDoc, entry, "bifpaybalance", "N");
                        CreateNode(xmlDoc, entry, "bifpaysign", "N");
                        CreateNode(xmlDoc, entry, "nassistcurdiscountmny", "0.00000000");
                        CreateNode(xmlDoc, entry, "nassistcursummny", "0.00000000");
                        CreateNode(xmlDoc, entry, "nassistcurtaxmny", "0.00000000");
                        CreateNode(xmlDoc, entry, "nassistcurtaxnetprice", "0.00000000");
                        CreateNode(xmlDoc, entry, "nassistcurnetprice", "0.00000000");
                        CreateNode(xmlDoc, entry, "nassistcurtaxprice", "0.00000000");
                        CreateNode(xmlDoc, entry, "nassistcurprice", "0.00000000");
                        CreateNode(xmlDoc, entry, "cprojectid", "");
                        CreateNode(xmlDoc, entry, "cprojectphaseid", "");
                        CreateNode(xmlDoc, entry, "vfree1", modOrder.C_FREE1); //自由项1
                        CreateNode(xmlDoc, entry, "vfree2", modOrder.C_FREE2); //自由项2
                        CreateNode(xmlDoc, entry, "vfree3", modOrder.C_PACK);  //包装
                        CreateNode(xmlDoc, entry, "vfree4", "");
                        CreateNode(xmlDoc, entry, "vfree5", "");
                        CreateNode(xmlDoc, entry, "vdef1", "");
                        CreateNode(xmlDoc, entry, "vdef2", "");
                        CreateNode(xmlDoc, entry, "vdef3", "");
                        CreateNode(xmlDoc, entry, "vdef4", "");
                        CreateNode(xmlDoc, entry, "vdef5", "");
                        CreateNode(xmlDoc, entry, "vdef6", "");
                        CreateNode(xmlDoc, entry, "vdef11", modOrder.C_CON_NO); //合同号
                        CreateNode(xmlDoc, entry, "vdef12", modOrder.C_VDEF1);  //质量等级主键
                        CreateNode(xmlDoc, entry, "ntotalreturnnumber", "0.00000000");
                        CreateNode(xmlDoc, entry, "ntotalcarrynumber", "0.00000000");
                        CreateNode(xmlDoc, entry, "ntotalplanreceiptnumber", "0.00000000");
                        #endregion

                        body.AppendChild(entry);
                    }
                }

                xmlDoc.Save(xmlFileName);

                List <string> parem = NCSendXml.SendXML(xmlDoc); //发送NC
                parem.Add(orderDto[0].SaleCode);                 //销售单据号
                parem.Add(empID);
                parem.Add("销售订单-NC");
                parem.Add(parem[0] == "1" ? "导入NC成功" : "导入NC失败");
                //日志录入
                AddLog(parem);

                return(parem);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }