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 }); }
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 }); }
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 }); }
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 }); }
//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); }
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); }
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); }
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 }); }
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 }); }
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 }
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); } }