コード例 #1
0
        protected override object Serialize(object obj)
        {
            DssExportHistory dssExportHistory = (DssExportHistory)obj;
            DateTime         effDate          = dssExportHistory.EffectiveDate.HasValue ? dssExportHistory.EffectiveDate.Value : DateTime.Today;

            string[] line1 = new string[]
            {
                DssHelper.GetEventValue(dssExportHistory.EventCode),
                dssExportHistory.PartyFrom,                                                                                          //QAD:Site
                dssExportHistory.KeyCode,
                !string.IsNullOrEmpty(dssExportHistory.DefinedString3) ? dssExportHistory.DefinedString3 : dssExportHistory.PartyTo, //客户
                null,
                null,
                null
            };

            string[] line2 = new string[]
            {
                DssHelper.GetEventValue(dssExportHistory.EventCode),
                dssExportHistory.Item,//零件号
                null,
                null,
                dssExportHistory.Qty.ToString("0.########"), //数量
                dssExportHistory.PartyFrom,                  //QAD:Site
                dssExportHistory.Location                    //客户库位
            };

            string[][] data = new string[][] { line1, line2 };

            return(new object[] { effDate, data });
        }
コード例 #2
0
        protected override object Serialize(object obj)
        {
            DssExportHistory dssExportHistory = (DssExportHistory)obj;
            DateTime         effDate          = dssExportHistory.EffectiveDate.HasValue ? dssExportHistory.EffectiveDate.Value : DateTime.Today;

            string[] line1 = new string[]
            {
                DssHelper.GetEventValue(dssExportHistory.EventCode),
                dssExportHistory.PartyTo,                                                               //客户
                DssHelper.FormatDate(effDate, dssExportHistory.DssOutboundControl.ExternalSystem.Code), //生效日期
                dssExportHistory.PartyFrom,                                                             //QAD:Site
                //"",//零件号
                dssExportHistory.Item
            };

            string[] line2 = new string[]
            {
                DssHelper.GetEventValue(dssExportHistory.EventCode),
                dssExportHistory.Item,                       //零件号
                dssExportHistory.Qty.ToString("0.########"), //数量
                dssExportHistory.PartyFrom,                  //QAD:Site
                dssExportHistory.Location                    //客户库位
            };

            string[][] data = new string[][] { line1, line2 };

            return(new object[] { effDate, data });
        }
コード例 #3
0
        protected override object Serialize(object obj)
        {
            DssExportHistory dssExportHistory = (DssExportHistory)obj;
            DateTime         effDate          = dssExportHistory.EffectiveDate.HasValue ? dssExportHistory.EffectiveDate.Value : DateTime.Today;

            string[] line1 = new string[]
            {
                DssHelper.GetEventValue(dssExportHistory.EventCode),
                dssExportHistory.DefinedString1,                                                        //开票通知单号
                dssExportHistory.ReceiptNo,                                                             //收货单号
                null,                                                                                   //Line
                dssExportHistory.Item,                                                                  //零件号
                dssExportHistory.PartyFrom,                                                             //供应商
                dssExportHistory.Qty.ToString("0.########"),                                            //数量
                dssExportHistory.DefinedString2,                                                        //币种
                dssExportHistory.DefinedString3,                                                        //发票单价
                dssExportHistory.Uom,                                                                   //单位
                dssExportHistory.DefinedString4,                                                        //采购单价
                dssExportHistory.DefinedString5,                                                        //金额
                dssExportHistory.OrderNo,                                                               //订单号
                DssHelper.FormatDate(effDate, dssExportHistory.DssOutboundControl.ExternalSystem.Code), //收货日期
                dssExportHistory.Location,                                                              //库位
                null                                                                                    //排程单号
            };

            string[][] data = new string[][] { line1 };

            return(new object[] { effDate, data });
        }
コード例 #4
0
        protected override object Serialize(object obj)
        {
            DssExportHistory dssExportHistory = (DssExportHistory)obj;
            DateTime         effDate          = dssExportHistory.EffectiveDate.HasValue ? dssExportHistory.EffectiveDate.Value : DateTime.Today;

            log.Debug("Now write data:" + dssExportHistory.Location + "," + dssExportHistory.Item + "," + dssExportHistory.Qty.ToString("0.##"));

            string[] line1 = new string[]
            {
                DssHelper.GetEventValue(dssExportHistory.EventCode),
                dssExportHistory.UndefinedString2,                                                      //雇员
                DssHelper.FormatDate(effDate, dssExportHistory.DssOutboundControl.ExternalSystem.Code), //生效日期
                dssExportHistory.PartyTo,                                                               //QAD:Site
                dssExportHistory.Item,                                                                  //零件号
                dssExportHistory.UndefinedString3,                                                      //工序
                null,
                null,
                null,
                dssExportHistory.Qty.ToString("0.##"), //数量
                null,                                  // dssExportHistory.DefinedString1,//废品数
                null,                                  // dssExportHistory.DefinedString2,//次品数
                null,
                dssExportHistory.PartyTo,              //QAD:Site
                dssExportHistory.Location              //库位
            };

            List <string[]> dataList = new List <string[]>();

            dataList.Add(line1);

            IList <DssExportHistoryDetail> dssExportHistoryDetailList = dssExportHistory.DssExportHistoryDetails;

            if (dssExportHistory.DssExportHistoryDetails != null && dssExportHistory.DssExportHistoryDetails.Count > 0)
            {
                foreach (DssExportHistoryDetail dssExportHistoryDetail in dssExportHistoryDetailList)
                {
                    string[] line2 = new string[]
                    {
                        DssHelper.GetEventValue(dssExportHistory.EventCode),
                        dssExportHistoryDetail.Item,                   //零件号
                        dssExportHistory.UndefinedString3,             //工序
                        dssExportHistoryDetail.Qty.ToString("0.####"), //数量
                        dssExportHistory.PartyFrom,                    //QAD:Site
                        dssExportHistoryDetail.Location                //库位
                    };
                    dataList.Add(line2);
                }
            }

            string[][] data = dataList.ToArray();

            return(new object[] { effDate, data });
        }
コード例 #5
0
        //protected override object Serialize(object obj)
        //{
        //    throw new NotImplementedException();
        //}

        #region Private Method
        private IList <DssExportHistory> ConvertList(IList <BillDetail> list, DssOutboundControl dssOutboundControl)
        {
            DetachedCriteria criteria = DetachedCriteria.For(typeof(DssObjectMapping))
                                        .Add(Expression.Eq("Entity", "BillTo")).Add(Expression.Eq("ExternalSystem", "QAD"))
                                        .Add(Expression.Eq("ExternalEntity", "ShipTo"));

            IList <DssObjectMapping> dom    = criteriaMgr.FindAll <DssObjectMapping>(criteria);
            IList <DssExportHistory> result = new List <DssExportHistory>();

            if (list != null && list.Count > 0)
            {
                foreach (BillDetail billDetail in list)
                {
                    DssExportHistory dssExportHistory = new DssExportHistory();

                    dssExportHistory.DssOutboundControl = dssOutboundControl;
                    dssExportHistory.EventCode          = BusinessConstants.DSS_EVENT_CODE_CREATE;
                    dssExportHistory.IsActive           = true;
                    dssExportHistory.CreateDate         = DateTime.Now;

                    dssExportHistory.OriginalId = billDetail.Id;
                    dssExportHistory.OrderNo    = billDetail.ActingBill.OrderNo;
                    dssExportHistory.ReceiptNo  = billDetail.ActingBill.ReceiptNo;
                    dssExportHistory.Item       = billDetail.ActingBill.Item.Code;
                    dssExportHistory.Location   = dssExportHistory.DssOutboundControl.UndefinedString1;//客户库位
                    dssExportHistory.Qty        = billDetail.BilledQty;
                    //dssExportHistory.EffectiveDate = billDetail.Bill.CreateDate.Date;
                    dssExportHistory.EffectiveDate = DateTime.Now;
                    dssExportHistory.PartyTo       = billDetail.Bill.BillAddress.Party.Code; //客户

                    dssExportHistory.DefinedString1 = billDetail.Bill.BillNo;                //开票通知单号
                    dssExportHistory.DefinedString2 = billDetail.Bill.BillAddress.Code;      //BillTo
                    if (dom != null && dom.Count > 0)
                    {
                        DssObjectMapping sd = dom.Where(d => d.Code == billDetail.Bill.BillAddress.Code).FirstOrDefault();
                        dssExportHistory.DefinedString3 = sd.ExternalCode;  //Map到shipto
                    }

                    dssExportHistory.KeyCode = DssHelper.GetBillKeyCode(dssExportHistory, billDetail.Bill.BillNo);

                    this.GetLoctransInfo(dssExportHistory);
                    result.Add(dssExportHistory);
                }
            }

            return(result);
        }
コード例 #6
0
        private object Deserialize(DssImportHistory dssImportHistory, bool isUpdate)
        {
            PriceListDetail priceListDetail = new PriceListDetail();

            PriceList priceList = priceListMgr.LoadPriceList(dssImportHistory[1].Trim());

            if (priceList != null)
            {
                priceListDetail.PriceList = priceList;
            }
            else
            {
                Party    party    = partyMgr.CheckAndLoadParty(dssImportHistory[1].Trim());
                Supplier supplier = supplierMgr.LoadSupplier(dssImportHistory[1].Trim());
                if (supplier != null)
                {
                    priceListDetail.PriceList = this.LoadPurchasePriceList(dssImportHistory[1], party);//采购价格单
                }
                else
                {
                    priceListDetail.PriceList = this.LoadSalesPriceList(dssImportHistory[1], party);//销售价格单
                }
            }

            priceListDetail.Currency  = this.currencyMgr.CheckAndLoadCurrency(dssImportHistory[2]);                                                               //货币
            priceListDetail.Item      = this.itemMgr.CheckAndLoadItem(dssImportHistory[3]);                                                                       //零件号
            priceListDetail.Uom       = this.uomMgr.CheckAndLoadUom(dssImportHistory[4]);                                                                         //单位
            priceListDetail.StartDate = dssImportHistory[6] != null?DssHelper.GetDate(dssImportHistory[6], BusinessConstants.DSS_SYSTEM_CODE_QAD) : DateTime.Now; //开始日期

            if (isUpdate)
            {
                priceListDetail.UnitPrice = decimal.Parse(dssImportHistory[5]);//单价
                if (dssImportHistory[7] != null)
                {
                    priceListDetail.EndDate = DssHelper.GetDate(dssImportHistory[7], BusinessConstants.DSS_SYSTEM_CODE_QAD);                             //结束日期
                }
            }

            #region 默认值
            priceListDetail.TaxCode               = string.Empty;//todo
            priceListDetail.IsIncludeTax          = false;
            priceListDetail.IsProvisionalEstimate = this.CheckProvisionalEstimate(priceListDetail.UnitPrice);
            #endregion

            return(priceListDetail);
        }
コード例 #7
0
        private IList <DssExportHistory> ConvertList(IList <BillDetail> list, DssOutboundControl dssOutboundControl)
        {
            IList <DssExportHistory> result = new List <DssExportHistory>();

            if (list != null && list.Count > 0)
            {
                foreach (BillDetail billDetail in list)
                {
                    DssExportHistory dssExportHistory = new DssExportHistory();

                    dssExportHistory.DssOutboundControl = dssOutboundControl;
                    dssExportHistory.EventCode          = BusinessConstants.DSS_EVENT_CODE_CREATE;
                    dssExportHistory.IsActive           = true;
                    dssExportHistory.CreateDate         = DateTime.Now;

                    dssExportHistory.OriginalId    = billDetail.Id;
                    dssExportHistory.OrderNo       = billDetail.ActingBill.OrderNo;
                    dssExportHistory.ReceiptNo     = billDetail.ActingBill.ReceiptNo;
                    dssExportHistory.Item          = billDetail.ActingBill.Item.Code;
                    dssExportHistory.Uom           = billDetail.ActingBill.Uom.Code;
                    dssExportHistory.Qty           = billDetail.BilledQty;
                    dssExportHistory.EffectiveDate = billDetail.ActingBill.EffectiveDate;
                    dssExportHistory.PartyFrom     = billDetail.Bill.BillAddress.Party.Code;         //供应商

                    dssExportHistory.DefinedString1 = billDetail.Bill.BillNo;                        //开票通知单号
                    dssExportHistory.DefinedString2 = billDetail.Currency.Code;                      //币种
                    dssExportHistory.DefinedString3 = billDetail.UnitPrice.ToString("0.########");   //发票单价
                    dssExportHistory.DefinedString4 = billDetail.UnitPrice.ToString("0.########");   //采购单价
                    dssExportHistory.DefinedString5 = billDetail.OrderAmount.ToString("0.########"); //金额

                    dssExportHistory.KeyCode = DssHelper.GetBillKeyCode(dssExportHistory, billDetail.Bill.BillNo);

                    this.GetLoctransInfo(dssExportHistory);
                    result.Add(dssExportHistory);
                }
            }

            return(result);
        }
コード例 #8
0
        protected override object Serialize(object obj)
        {
            DssExportHistory dssExportHistory = (DssExportHistory)obj;
            DateTime         effDate          = dssExportHistory.EffectiveDate.HasValue ? dssExportHistory.EffectiveDate.Value : DateTime.Today;

            log.Debug("Now write data:" + dssExportHistory.Item + "," + dssExportHistory.ReferenceLocation + "," + dssExportHistory.Location + "," + dssExportHistory.Qty);

            string[] line1 = new string[]
            {
                DssHelper.GetEventValue(dssExportHistory.EventCode),
                dssExportHistory.Item,                                                                  //零件号
                dssExportHistory.Qty.ToString("0.########"),                                            //数量
                DssHelper.FormatDate(effDate, dssExportHistory.DssOutboundControl.ExternalSystem.Code), //生效日期
                dssExportHistory.KeyCode,                                                               //收货单号
                dssExportHistory.PartyFrom,                                                             //QAD:Site
                dssExportHistory.Location,                                                              //来源库位
                dssExportHistory.PartyFrom,                                                             //QAD:Site,销售对应QAD移库,所以取来源区域
                dssExportHistory.ReferenceLocation                                                      //目的库位
            };

            string[][] data = new string[][] { line1 };

            return(new object[] { effDate, data });
        }
コード例 #9
0
        protected override object Serialize(object obj)
        {
            DssExportHistory dssExportHistory = (DssExportHistory)obj;
            DateTime         effDate          = dssExportHistory.EffectiveDate.HasValue ? dssExportHistory.EffectiveDate.Value : DateTime.Today;

            string[] line1 = new string[]
            {
                DssHelper.GetEventValue(dssExportHistory.EventCode),
                dssExportHistory.Item,                                                                  //零件号
                dssExportHistory.Qty.ToString("0.########"),                                            //数量
                dssExportHistory.PartyTo,                                                               //QAD:Site
                dssExportHistory.Location,                                                              //库位
                dssExportHistory.KeyCode,                                                               //单号
                DssHelper.FormatDate(effDate, dssExportHistory.DssOutboundControl.ExternalSystem.Code), //生效日期
                dssExportHistory.DefinedString1,                                                        //账户
                dssExportHistory.DefinedString2,                                                        //分账户
                dssExportHistory.DefinedString3,                                                        //成本中心
                dssExportHistory.DefinedString4                                                         //项目
            };

            string[][] data = new string[][] { line1 };

            return(new object[] { effDate, data });
        }
コード例 #10
0
        public virtual void ProcessInboundFile(DssInboundControl dssInboundControl, string[] files)
        {
            logLoadFile.Info("Start process inbound ");

            //重新提交数据
            #region DataReader
            foreach (string fileName in files)
            {
                try
                {
                    IList <DssImportHistory> dssImportHistoryList = new List <DssImportHistory>();

                    #region 读取文件
                    logLoadFile.Info("Start load file " + fileName);
                    FlatFileReader reader = null;
                    try
                    {
                        DssImportHistory dssImportHistory = new DssImportHistory();
                        dssImportHistory.DssInboundCtrl = dssInboundControl;
                        dssImportHistory.IsActive       = true;
                        dssImportHistory.KeyCode        = Path.GetFileNameWithoutExtension(fileName);
                        dssImportHistory.CreateDate     = DateTime.Now;

                        reader = this.DataReader(fileName, Encoding.GetEncoding(dssInboundControl.FileEncoding), "|");
                        for (string[] lineData = reader.ReadLine(); lineData != null; lineData = reader.ReadLine())
                        {
                            this.FillDssImportHistory(lineData, dssImportHistory);

                            if (dssImportHistory[0] == "0")
                            {
                                dssImportHistory.EventCode = BusinessConstants.DSS_EVENT_CODE_DELETE;
                                DssHelper.FormatDeleteData(lineData, BusinessConstants.DSS_SYSTEM_CODE_QAD);//QAD删除去引号
                            }
                            else
                            {
                                dssImportHistory.EventCode = BusinessConstants.DSS_EVENT_CODE_CREATE;
                            }
                        }

                        dssImportHistoryList.Add(dssImportHistory);
                    }
                    catch (Exception ex)
                    {
                        reader.Dispose();
                        logLoadFile.Error("Process inbound file: " + fileName + " Error.", ex);
                        throw ex;
                    }
                    finally
                    {
                        reader.Dispose();
                        logLoadFile.Info("Process inbound file: " + fileName + " successful.");
                    }
                    logLoadFile.Info("End load file " + fileName);
                    #endregion

                    #region CreateDssImportHistory
                    logLoadFile.Info("Start save file" + fileName);
                    CreateDssImportHistory(dssInboundControl, dssImportHistoryList, files);
                    logLoadFile.Info("End save file" + fileName);
                    #endregion

                    #region Archive download file
                    try
                    {
                        logLoadFile.Info("Start backup file " + fileName);
                        ArchiveFile(new string[] { fileName }, dssInboundControl.ArchiveFloder);
                        logLoadFile.Info("End backup file" + fileName);
                    }
                    catch (Exception ex)
                    {
                        logLoadFile.Error("Archive download file error:", ex);
                    }
                    #endregion
                }
                catch (Exception ex)
                {
                    logLoadFile.Error("Create DssImportHistory error:", ex);
                }
            }
            #endregion
        }
コード例 #11
0
        private object Deserialize(DssImportHistory dssImportHistory, bool isUpdate)
        {
            Item bomItem = this.itemMgr.CheckAndLoadItem(dssImportHistory[1]); //bom头
            Item item    = this.itemMgr.CheckAndLoadItem(dssImportHistory[2]); //零件号

            if (item.IsMes && bomItem.IsMes)
            {
                MesBomDetail mesBomDetail = new MesBomDetail();
                mesBomDetail.Bom  = this.LoadMesBom(dssImportHistory[1]);//Bom代码
                mesBomDetail.Item = item;

                mesBomDetail.StartDate = dssImportHistory[4] != null?
                                         DssHelper.GetDate(dssImportHistory[4], BusinessConstants.DSS_SYSTEM_CODE_QAD) : new DateTime(2000, 1, 1);

                if (isUpdate)
                {
                    mesBomDetail.RateQty       = decimal.Parse(dssImportHistory[5]);                                                //用量
                    mesBomDetail.StructureType = this.GetStructureType(dssImportHistory[6], BusinessConstants.DSS_SYSTEM_CODE_QAD); //类型

                    if (dssImportHistory[8] != null)
                    {
                        mesBomDetail.EndDate = DssHelper.GetDate(dssImportHistory[8], BusinessConstants.DSS_SYSTEM_CODE_QAD);                             //结束日期
                    }
                }
                return(mesBomDetail);
            }
            else
            {
                BomDetail bomDetail = new BomDetail();
                bomDetail.Bom       = this.LoadBom(dssImportHistory[1]); //Bom代码
                bomDetail.Item      = item;                              //零件号
                bomDetail.Reference = dssImportHistory[3];               //参考
                bomDetail.StartDate = dssImportHistory[4] != null?
                                      DssHelper.GetDate(dssImportHistory[4], BusinessConstants.DSS_SYSTEM_CODE_QAD) : new DateTime(2000, 1, 1);

                if (isUpdate)
                {
                    bomDetail.RateQty       = decimal.Parse(dssImportHistory[5]);                                                //用量
                    bomDetail.StructureType = this.GetStructureType(dssImportHistory[6], BusinessConstants.DSS_SYSTEM_CODE_QAD); //类型

                    if (dssImportHistory[8] != null)
                    {
                        bomDetail.EndDate = DssHelper.GetDate(dssImportHistory[8], BusinessConstants.DSS_SYSTEM_CODE_QAD);                             //结束日期
                    }
                    //回冲方式从零件上取
                    bomDetail.BackFlushMethod = bomDetail.Item.BackFlushMethod;
                    bomDetail.ScrapPercentage = decimal.Parse(dssImportHistory[10]) / 100;//废品百分比

                    bomDetail.Operation = int.Parse(dssImportHistory[12]);
                }

                #region 默认值
                bomDetail.Uom          = bomDetail.Item.Uom;
                bomDetail.Priority     = 0;
                bomDetail.NeedPrint    = true;
                bomDetail.IsShipScanHu = false;

                #endregion

                return(bomDetail);
            }
        }