/// <summary> /// MaintainInhouseLogisticStandardInfo=>TranDetailsInfo /// </summary> /// <param name="maintainInhouseLogisticStandardInfo"></param> /// <param name="tranDetailsInfo"></param> /// <returns></returns> public static void GetTranDetailsInfo(MaintainInhouseLogisticStandardInfo maintainInhouseLogisticStandardInfo, string stockCheckLockMaterialSyncUpdatePartStockFlag, ref TranDetailsInfo tranDetailsInfo) { if (maintainInhouseLogisticStandardInfo == null) { return; } ///工位 tranDetailsInfo.Location = maintainInhouseLogisticStandardInfo.Location; ///库位 tranDetailsInfo.StorageLocation = maintainInhouseLogisticStandardInfo.StorageLocation; /////是否排查锁定库存 //if (stockCheckLockMaterialSyncUpdatePartStockFlag.ToLower() == "true" // && maintainInhouseLogisticStandardInfo.CheckMaterialStockFlag.GetValueOrDefault()) ///是否排查锁定库存 if (stockCheckLockMaterialSyncUpdatePartStockFlag.ToLower() == "true") { ///将物料出库交易类型变更为物料解冻 if (tranDetailsInfo.TranType.GetValueOrDefault() == (int)WmmTranTypeConstants.Outbound) { tranDetailsInfo.TranType = (int)WmmTranTypeConstants.MaterialThawing; } if (tranDetailsInfo.TranType.GetValueOrDefault() == (int)WmmTranTypeConstants.StateFreezing) { tranDetailsInfo.TranType = (int)WmmTranTypeConstants.None; } } }
/// <summary> /// 将交易记录加工为库存投放数据 /// </summary> /// <param name="tranDetailsInfo"></param> /// <param name="zonesInfo"></param> /// <param name="sourceFlag"></param> /// <returns></returns> private StocksInfo HandlingStocksData(TranDetailsInfo tranDetailsInfo, MaintainPartsInfo maintainPartsInfo, ZonesInfo zonesInfo, bool sourceFlag) { ///新建库存对象 StocksInfo stocksInfo = stocksBLL.CreateStocksInfo(loginUser); ///更新物料基础信息 stocksBLL.UpdateMaintainPartsInfo(maintainPartsInfo, ref stocksInfo); ///来源库存对象信息填充 if (sourceFlag) { stocksBLL.GetSourceStocksInfo(tranDetailsInfo, ref stocksInfo); } ///目标库存对象信息填充 else { stocksBLL.GetTargetStocksInfo(tranDetailsInfo, zonesInfo, ref stocksInfo); } ///根据库存管理维度获取更新条件 string stockUpdateConditions = GetStockUpdateConditions(ref stocksInfo); ///若交易数据指定了库存数据外键,则根据外键获取主键 if (sourceFlag && tranDetailsInfo.StocksFid != null) { stocksInfo.Id = stocksBLL.GetStocksId(tranDetailsInfo.StocksFid.GetValueOrDefault()); } ///获取库存数据主键 if (stocksInfo.Id == 0) { stocksInfo.Id = stocksBLL.GetStocksId(stocksInfo, stockUpdateConditions); } return(stocksInfo); }
/// <summary> /// 根据匹配库存数据更新交易记录 /// </summary> /// <param name="stocksInfo"></param> /// <param name="tranDetailsInfo"></param> public static void GetTranDetailsInfo(StocksInfo stocksInfo, ref TranDetailsInfo tranDetailsInfo) { if (stocksInfo == null) { return; } ///是否已结算 tranDetailsInfo.SettledFlag = stocksInfo.SettledFlag; ///库存的逻辑外键 //tranDetailsInfo.StocksFid = stocksInfo.Fid; ///来源库位 tranDetailsInfo.Dloc = stocksInfo.Dloc; ///匹配数量 if (stocksInfo.MatchedQty != null) { tranDetailsInfo.ActualQty = stocksInfo.MatchedQty; ///重新计算包装数量 if (tranDetailsInfo.Package == null || tranDetailsInfo.Package.GetValueOrDefault() == 0) { tranDetailsInfo.Package = 1; } tranDetailsInfo.ActualPackageQty = Convert.ToInt32(Math.Ceiling(stocksInfo.MatchedQty.GetValueOrDefault() / tranDetailsInfo.Package.GetValueOrDefault())); } ///如果没有供应商则根据库存数据中的供应商赋值 if (string.IsNullOrEmpty(tranDetailsInfo.SupplierNum)) { tranDetailsInfo.SupplierNum = stocksInfo.SupplierNum; } ///SETTLED_FLAG }
/// <summary> /// 036 wms Create By Xue 待商议 /// </summary> /// <param name="tranDetailsInfo"></param> private string CreateWmsTranData(TranDetailsInfo tranDetailsInfo) { string sql = string.Empty; if (tranDetailsInfo == null) { return(string.Empty); } int orderType = 0; if (tranDetailsInfo.TranNo != tranDetailsInfo.RunsheetNo) { orderType = 40; } else if (tranDetailsInfo.TranNo == tranDetailsInfo.RunsheetNo) { if (!string.IsNullOrEmpty(tranDetailsInfo.BoxParts)) { PartsBoxInfo partsBoxInfo = new PartsBoxBLL().GetInfoByPartBox(tranDetailsInfo.BoxParts); orderType = partsBoxInfo.PullMode; } else { if (string.IsNullOrEmpty(tranDetailsInfo.RunsheetNo) && string.IsNullOrEmpty(tranDetailsInfo.BoxParts)) { orderType = 50; } else { orderType = 30; } } } return(sql = string.Format(@"insert into [LES].[TI_IFM_WMS_TRAN_OUT]([FID],[SOURCE_ORDER_CODE],[SOURCE_ORDER_TYPE],[PART_NO],[DELIVERY_QTY],[PROCESS_FLAG],[PROCESS_TIME],[LOG_FID],[VALID_FLAG],[CREATE_DATE],[CREATE_USER],[SUPPLIER_NUM],[SUPPLIER_NAME]) values(newid(),'{0}',{1},'{2}',{3},10,getdate(),null,1,getdate(),'{4}','{5}','{6}');", tranDetailsInfo.TranNo, orderType, tranDetailsInfo.PartNo, tranDetailsInfo.ActualQty, loginUser, tranDetailsInfo.SupplierNum, tranDetailsInfo.SupplierName)); }
/// <summary> /// OutputInfo=>TranDetailsInfo /// </summary> /// <param name="outputInfo"></param> /// <param name="tranDetailsInfo"></param> /// <returns></returns> public static void GetTranDetailsInfo(OutputInfo outputInfo, ref TranDetailsInfo tranDetailsInfo) { ///交易时间 tranDetailsInfo.TranDate = outputInfo.TranTime; if (tranDetailsInfo.TranDate == null) { tranDetailsInfo.TranDate = DateTime.Now; } ///成本中心 //tranDetailsInfo.CostCenter = outputInfo.CostCenter; ///单据号 if (string.IsNullOrEmpty(tranDetailsInfo.TranNo)) { tranDetailsInfo.TranNo = outputInfo.OutputNo; } ///没有目标仓库存储区时为出库 if (string.IsNullOrEmpty(outputInfo.WmNo) && string.IsNullOrEmpty(outputInfo.ZoneNo) && tranDetailsInfo.TranType.GetValueOrDefault() == (int)WmmTranTypeConstants.Movement) { tranDetailsInfo.TranType = (int)WmmTranTypeConstants.Outbound; } ///仓储单据类型,INBOUND+1000,OUTBOUND+2000 tranDetailsInfo.TranOrderType = outputInfo.OutputType.GetValueOrDefault() + 2000; ///拉动方式 //tranDetailsInfo.RunsheetType = outputInfo.PullMode; }
/// <summary> /// 用于单据衔接 /// </summary> /// <param name="stocksInfo"></param> /// <param name="tranDetailsInfo"></param> public static void GetTranDetailsInfo2(StocksInfo stocksInfo, ref TranDetailsInfo tranDetailsInfo) { if (stocksInfo == null) { return; } tranDetailsInfo.BatchNo = stocksInfo.BatchNo; tranDetailsInfo.PartNo = stocksInfo.PartNo; tranDetailsInfo.BarcodeData = stocksInfo.BarcodeData; tranDetailsInfo.WmNo = stocksInfo.WmNo; tranDetailsInfo.ZoneNo = stocksInfo.ZoneNo; tranDetailsInfo.Dloc = stocksInfo.Dloc; tranDetailsInfo.MeasuringUnitNo = stocksInfo.PartUnits; tranDetailsInfo.Package = stocksInfo.Package; tranDetailsInfo.Max = stocksInfo.Max; tranDetailsInfo.Min = stocksInfo.Min; tranDetailsInfo.SupplierNum = stocksInfo.SupplierNum; tranDetailsInfo.PartCname = stocksInfo.PartCname; tranDetailsInfo.PartNickname = stocksInfo.PartNickname; tranDetailsInfo.PackageModel = stocksInfo.PackageModel; tranDetailsInfo.PartCls = stocksInfo.PartCls; tranDetailsInfo.PartUnits = stocksInfo.PartUnits; tranDetailsInfo.IsBatch = stocksInfo.IsBatch; //tranDetailsInfo.OriginPlace = stocksInfo.OriginPlace; tranDetailsInfo.PartPrice = stocksInfo.PartPrice; //tranDetailsInfo.CostCenter = stocksInfo.CostCenter; //tranDetailsInfo.SettledFlag = stocksInfo.SettledFlag; tranDetailsInfo.Keeper = stocksInfo.Keeper; tranDetailsInfo.StocksFid = stocksInfo.Fid; }
/// <summary> /// PartsStockInfo -> TranDetailsInfo /// </summary> /// <param name="partsStockInfo"></param> /// <param name="tranDetailsInfo"></param> /// <returns></returns> public static void GetTranDetailsInfo(PartsStockInfo partsStockInfo, ref TranDetailsInfo tranDetailsInfo) { if (partsStockInfo == null) { return; } ///零件呢称 tranDetailsInfo.PartNickname = partsStockInfo.PartNickname; ///是否按批次 tranDetailsInfo.IsBatch = partsStockInfo.IsBatch; ///MAX tranDetailsInfo.Max = partsStockInfo.Max; ///MIN tranDetailsInfo.Min = partsStockInfo.Min; ///PACKAGE tranDetailsInfo.Package = partsStockInfo.InboundPackage; ///PACKAGE_MODEL tranDetailsInfo.PackageModel = partsStockInfo.InboundPackageModel; ///KEEPER tranDetailsInfo.Keeper = partsStockInfo.Keeper; ///INHOUSE_PACKAGE_MODEL tranDetailsInfo.InhousePackageModel = partsStockInfo.InhousePackageModel; ///INHOUSE_PACKAGE tranDetailsInfo.InhousePackage = partsStockInfo.InhousePackage; }
/// <summary> /// 包装数量计算 /// </summary> /// <param name="tranDetailsInfo"></param> public static void CalculateTranDetailsInfo(ref TranDetailsInfo tranDetailsInfo) { ///ACTUAL_PACKAGE_QTY if (tranDetailsInfo.ActualPackageQty.GetValueOrDefault() == 0 && tranDetailsInfo.Package.GetValueOrDefault() > 0) { tranDetailsInfo.ActualPackageQty = Convert.ToInt32(Math.Ceiling(tranDetailsInfo.ActualQty.GetValueOrDefault() / tranDetailsInfo.Package.GetValueOrDefault())); } }
/// <summary> /// 是否关注结算? /// </summary> /// <param name="settledFlag"></param> /// <param name="tranDetailsInfo"></param> public static void GetTranDetailsInfo(bool?settledFlag, ref TranDetailsInfo tranDetailsInfo) { ///如果被定义为需要结算,则不再进行变更 if (tranDetailsInfo.SettledFlag.GetValueOrDefault()) { return; } ///是否结算 tranDetailsInfo.SettledFlag = settledFlag; }
/// <summary> /// SupplierInfo -> TranDetailsInfo /// </summary> /// <param name="supplierInfo"></param> /// <param name="tranDetailsInfo"></param> /// <returns></returns> public static void GetTranDetailsInfo(SupplierInfo supplierInfo, ref TranDetailsInfo tranDetailsInfo) { if (supplierInfo == null) { return; } ///供应商名称 tranDetailsInfo.SupplierName = supplierInfo.SupplierName; ///供应商简称 tranDetailsInfo.SupplierSname = supplierInfo.SupplierSname; }
/// <summary> /// ReceiveInfo=>TranDetailsInfo /// </summary> /// <param name="receiveInfo"></param> /// <param name="tranDetailsInfo"></param> /// <returns></returns> public static void GetTranDetailsInfo(ReceiveInfo receiveInfo, ref TranDetailsInfo tranDetailsInfo) { ///交易时间 tranDetailsInfo.TranDate = receiveInfo.TranTime; if (tranDetailsInfo.TranDate == null) { tranDetailsInfo.TranDate = DateTime.Now; } ///成本中心 //tranDetailsInfo.CostCenter = receiveInfo.CostCenter; ///单据号 if (string.IsNullOrEmpty(tranDetailsInfo.TranNo)) { tranDetailsInfo.TranNo = receiveInfo.ReceiveNo; } ///保管员 tranDetailsInfo.Keeper = receiveInfo.BookKeeper; ///仓储单据类型,INBOUND+1000,OUTBOUND+2000 tranDetailsInfo.TranOrderType = receiveInfo.ReceiveType.GetValueOrDefault() + 1000; ///若有入库单来源则对交易单据类型进行重新标识 //if (receiveInfo.SourceCreateType != null) // tranDetailsInfo.TranOrderType = receiveInfo.ReceiveType.GetValueOrDefault() + receiveInfo.SourceCreateType.GetValueOrDefault() * 100; ///拉动方式 //tranDetailsInfo.RunsheetType = receiveInfo.PullMode; ///特殊入库类型处理 switch (receiveInfo.ReceiveType.GetValueOrDefault()) { ///返利入库 -> 无价值物料入库 case (int)InboundTypeConstants.RebateInbound: tranDetailsInfo.TranType = (int)WmmTranTypeConstants.Inbound; tranDetailsInfo.SettledFlag = true; ///无价值入库为已结算状态,无须付款而已 break; ///物料预留 -> 冻结入库 case (int)InboundTypeConstants.ReserveInbound: tranDetailsInfo.TranType = (int)WmmTranTypeConstants.FrozenInbound; tranDetailsInfo.SettledFlag = true; ///物料预留需要结算 break; ///采购订单 -> 物料入库 case (int)InboundTypeConstants.PurchaseOrder: tranDetailsInfo.TranType = (int)WmmTranTypeConstants.Inbound; tranDetailsInfo.SettledFlag = true; ///需要结算 break; default: tranDetailsInfo.TranType = (int)WmmTranTypeConstants.Inbound; tranDetailsInfo.SettledFlag = null; break; } }
/// <summary> /// 创建交易记录 /// </summary> /// <param name="tranType"></param> /// <param name="tranState"></param> /// <param name="loginUser"></param> /// <returns></returns> public static TranDetailsInfo CreateTranDetailsInfo(int tranType, int tranState, string loginUser) { TranDetailsInfo tranDetailsInfo = new TranDetailsInfo(); ///交易类型 tranDetailsInfo.TranType = tranType; ///交易状态 tranDetailsInfo.TranState = tranState; ///CreateUser tranDetailsInfo.CreateUser = loginUser; ///CreateDate tranDetailsInfo.CreateDate = DateTime.Now; ///ValidFlag tranDetailsInfo.ValidFlag = true; ///Fid tranDetailsInfo.Fid = Guid.NewGuid(); return(tranDetailsInfo); }
/// <summary> /// MaintainPartsInfo -> TranDetailsInfo /// </summary> /// <param name="maintainPartsInfo"></param> /// <param name="tranDetailsInfo"></param> public static void GetTranDetailsInfo(MaintainPartsInfo maintainPartsInfo, ref TranDetailsInfo tranDetailsInfo) { if (maintainPartsInfo == null) { return; } ///PART_NO tranDetailsInfo.PartNo = maintainPartsInfo.PartNo; ///MEASURING_UNIT_NO tranDetailsInfo.MeasuringUnitNo = maintainPartsInfo.PartUnits; ///PART_CNAME tranDetailsInfo.PartCname = maintainPartsInfo.PartCname; ///PART_NICKNAME tranDetailsInfo.PartNickname = maintainPartsInfo.PartNickname; ///PART_CLS tranDetailsInfo.PartCls = maintainPartsInfo.PartCls; ///PART_UNITS tranDetailsInfo.PartUnits = maintainPartsInfo.PartUnits; ///ORIGIN_PLACE // tranDetailsInfo.OriginPlace = maintainPartsInfo.OriginPlace; }
/// <summary> /// ReceiveDetailInfo=>TranDetailsInfo /// </summary> /// <param name="receiveDetailInfo"></param> /// <param name="tranDetailsInfo"></param> /// <returns></returns> public static void GetTranDetailsInfo(ReceiveDetailInfo receiveDetailInfo, ref TranDetailsInfo tranDetailsInfo) { ///单据号 tranDetailsInfo.TranNo = receiveDetailInfo.TranNo; ///零件号 tranDetailsInfo.PartNo = receiveDetailInfo.PartNo; ///零件中文名 tranDetailsInfo.PartCname = receiveDetailInfo.PartCname; ///零件类别 tranDetailsInfo.PartCls = receiveDetailInfo.PartCls; ///条码 tranDetailsInfo.BarcodeData = receiveDetailInfo.BarcodeData; ///供应商 tranDetailsInfo.SupplierNum = receiveDetailInfo.SupplierNum; ///工厂 tranDetailsInfo.Plant = receiveDetailInfo.Plant; ///源仓库编码 tranDetailsInfo.WmNo = receiveDetailInfo.WmNo; ///源存贮区编码 tranDetailsInfo.ZoneNo = receiveDetailInfo.ZoneNo; ///源库位 tranDetailsInfo.Dloc = receiveDetailInfo.Dloc; ///目的仓库 tranDetailsInfo.TargetWm = receiveDetailInfo.TargetWm; ///目的存贮区 tranDetailsInfo.TargetZone = receiveDetailInfo.TargetZone; ///目的库位 tranDetailsInfo.TargetDloc = receiveDetailInfo.TargetDloc; ///单位 tranDetailsInfo.MeasuringUnitNo = receiveDetailInfo.MeasuringUnitNo; ///包装类型 tranDetailsInfo.PackageModel = receiveDetailInfo.PackageModel; ///单包装数 tranDetailsInfo.Package = receiveDetailInfo.Package; ///需求包装数量 tranDetailsInfo.RequiredPackageQty = receiveDetailInfo.RequiredBoxNum; ///需求数量 tranDetailsInfo.RequiredQty = receiveDetailInfo.RequiredQty; ///实收包装数 tranDetailsInfo.ActualPackageQty = receiveDetailInfo.ActualBoxNum; ///实收数量 tranDetailsInfo.ActualQty = receiveDetailInfo.ActualQty; ///物料金额 tranDetailsInfo.PartPrice = receiveDetailInfo.PartPrice; ///零件类 tranDetailsInfo.BoxParts = receiveDetailInfo.BoxParts; ///捡料顺序号 tranDetailsInfo.PickupSeqNo = receiveDetailInfo.PickupSeqNo; ///供应商库位 tranDetailsInfo.RdcDloc = receiveDetailInfo.RdcDloc; ///DOCK tranDetailsInfo.Dock = receiveDetailInfo.Dock; ///上线包装型号 tranDetailsInfo.InhousePackageModel = receiveDetailInfo.InhousePackageModel; ///上线包装数 tranDetailsInfo.InhousePackage = receiveDetailInfo.InhousePackage; ///产地 tranDetailsInfo.OriginPlace = receiveDetailInfo.OriginPlace; ///拉动单号 tranDetailsInfo.RunsheetNo = receiveDetailInfo.RunsheetNo; ///备注 tranDetailsInfo.Comments = receiveDetailInfo.Comments; }
/// <summary> /// WmsVmiTranDetailInfo -> TranDetailsInfo /// </summary> /// <param name="wmsVmiTranDetailInfo"></param> /// <param name="tranDetailsInfo"></param> public static void GetTranDetailsInfo(WmsVmiTranDetailInfo wmsVmiTranDetailInfo, ref TranDetailsInfo tranDetailsInfo) { if (wmsVmiTranDetailInfo == null) { return; } ///PART_NO tranDetailsInfo.PartNo = wmsVmiTranDetailInfo.PartNo; ///SUPPLIER_CODE tranDetailsInfo.SupplierNum = wmsVmiTranDetailInfo.SupplierCode; ///ORDER_NO tranDetailsInfo.TranNo = wmsVmiTranDetailInfo.OrderNo; ///QTY tranDetailsInfo.ActualQty = wmsVmiTranDetailInfo.Qty; ///TRAN_TYPE,DP-收货,WD-出库(负数),AJ-调整(正负数都有) if (tranDetailsInfo.ActualQty.GetValueOrDefault() >= 0) { tranDetailsInfo.TranType = (int)WmmTranTypeConstants.Inbound; ///TARGET_WM tranDetailsInfo.TargetWm = wmsVmiTranDetailInfo.VmiWarehouseCode; ///TARGET_ZONE tranDetailsInfo.TargetZone = wmsVmiTranDetailInfo.ZoneNo; ///TARGET_DLOC tranDetailsInfo.TargetDloc = wmsVmiTranDetailInfo.Dloc; } else { tranDetailsInfo.TranType = (int)WmmTranTypeConstants.Outbound; tranDetailsInfo.ActualQty = 0 - tranDetailsInfo.ActualQty.GetValueOrDefault(); ///WM_NO tranDetailsInfo.WmNo = wmsVmiTranDetailInfo.VmiWarehouseCode; ///ZONE_NO tranDetailsInfo.ZoneNo = wmsVmiTranDetailInfo.ZoneNo; ///DLOC tranDetailsInfo.Dloc = wmsVmiTranDetailInfo.Dloc; } ///TIMES tranDetailsInfo.TranDate = wmsVmiTranDetailInfo.Times; }
/// <summary> /// Create TranDetailsInfo /// </summary> /// <param name="loginUser"></param> /// <returns>TranDetailsInfo</returns> public static TranDetailsInfo CreateTranDetailsInfo(string loginUser) { TranDetailsInfo info = new TranDetailsInfo(); ///ID info.Id = 0; ///FID info.Fid = Guid.NewGuid(); ///PLANT info.Plant = null; ///BATCH_NO info.BatchNo = null; ///BARCODE_DATA info.BarcodeData = null; ///NUM info.Num = null; ///BOX_NUM info.BoxNum = null; ///BOX_PARTS info.BoxParts = null; ///PICKUP_SEQ_NO info.PickupSeqNo = null; ///RDC_DLOC info.RdcDloc = null; ///INNER_LOCATION info.InnerLocation = null; ///LOCATION info.Location = null; ///STORAGE_LOCATION info.StorageLocation = null; ///REQUIRED_PACKAGE_QTY info.RequiredPackageQty = null; ///REQUIRED_QTY info.RequiredQty = null; ///BARCODE_TYPE info.BarcodeType = null; ///REQUIRED_DATE info.RequiredDate = null; ///PACHAGE_TYPE info.PachageType = null; ///LINE_POSITION info.LinePosition = null; ///RUNSHEET_NO info.RunsheetNo = null; ///DOCK info.Dock = null; ///PART_PRICE info.PartPrice = null; ///COST_CENTER info.CostCenter = null; ///COMMENTS info.Comments = null; ///SETTLED_FLAG info.SettledFlag = null; ///STOCKS_FID info.StocksFid = null; ///VALID_FLAG info.ValidFlag = true; ///CREATE_USER info.CreateUser = loginUser; ///CREATE_DATE info.CreateDate = DateTime.Now; ///MODIFY_USER info.ModifyUser = null; ///MODIFY_DATE info.ModifyDate = null; ///TRAN_ORDER_TYPE info.TranOrderType = null; ///RUNSHEET_TYPE info.RunsheetType = null; ///TRAN_STATE info.TranState = (int)WmmTranStateConstants.Created; return(info); }
/// <summary> /// OutputDetailInfo=>TranDetailsInfo /// </summary> /// <param name="outputDetailInfo"></param> /// <param name="tranDetailsInfo"></param> /// <returns></returns> public static void GetTranDetailsInfo(OutputDetailInfo outputDetailInfo, ref TranDetailsInfo tranDetailsInfo) { if (outputDetailInfo == null) { return; } ///单据号 tranDetailsInfo.TranNo = outputDetailInfo.TranNo; ///零件号 tranDetailsInfo.PartNo = outputDetailInfo.PartNo; ///零件中文名 tranDetailsInfo.PartCname = outputDetailInfo.PartCname; ///零件类别 tranDetailsInfo.PartCls = outputDetailInfo.PartCls; ///条码 tranDetailsInfo.BarcodeData = outputDetailInfo.BarcodeData; ///供应商 tranDetailsInfo.SupplierNum = outputDetailInfo.SupplierNum; ///工厂 tranDetailsInfo.Plant = outputDetailInfo.Plant; ///源仓库编码 tranDetailsInfo.WmNo = outputDetailInfo.WmNo; ///源存贮区编码 tranDetailsInfo.ZoneNo = outputDetailInfo.ZoneNo; ///源库位 tranDetailsInfo.Dloc = outputDetailInfo.Dloc; ///目的仓库 tranDetailsInfo.TargetWm = outputDetailInfo.TargetWm; ///目的存贮区 tranDetailsInfo.TargetZone = outputDetailInfo.TargetZone; ///目的库位 tranDetailsInfo.TargetDloc = outputDetailInfo.TargetDloc; ///单位 tranDetailsInfo.MeasuringUnitNo = outputDetailInfo.MeasuringUnitNo; ///包装类型 tranDetailsInfo.PackageModel = outputDetailInfo.PackageModel; ///单包装数 tranDetailsInfo.Package = outputDetailInfo.Package; ///需求包装数量 tranDetailsInfo.RequiredPackageQty = outputDetailInfo.RequiredBoxNum; ///需求数量 tranDetailsInfo.RequiredQty = outputDetailInfo.RequiredQty; ///实收包装数 tranDetailsInfo.ActualPackageQty = outputDetailInfo.ActualBoxNum; ///实收数量 tranDetailsInfo.ActualQty = outputDetailInfo.ActualQty; ///物料金额 tranDetailsInfo.PartPrice = outputDetailInfo.PartPrice; ///零件类 tranDetailsInfo.BoxParts = outputDetailInfo.BoxParts; ///捡料顺序号 tranDetailsInfo.PickupSeqNo = outputDetailInfo.PickupSeqNo; ///供应商库位 tranDetailsInfo.RdcDloc = outputDetailInfo.RdcDloc; ///DOCK tranDetailsInfo.Dock = outputDetailInfo.Dock; ///上线包装型号 tranDetailsInfo.InhousePackageModel = outputDetailInfo.InhousePackageModel; ///上线包装数 tranDetailsInfo.InhousePackage = outputDetailInfo.InhousePackage; ///产地 tranDetailsInfo.OriginPlace = outputDetailInfo.OriginPlace; ///拉动单号 tranDetailsInfo.RunsheetNo = outputDetailInfo.RunsheetNo; ///备注 tranDetailsInfo.Comments = outputDetailInfo.Comments; ///如果当前交易类型为状态冻结,而出库单明细中已标记为冻结库存,则不能重复进行冻结返回不产生交易记录 if (tranDetailsInfo.TranType.GetValueOrDefault() == (int)WmmTranTypeConstants.StateFreezing && outputDetailInfo.FrozenStockFlag.GetValueOrDefault()) { tranDetailsInfo.TranType = (int)WmmTranTypeConstants.None; } }
/// <summary> /// 037 vmi Create By Xue 未完成 /// </summary> /// <param name="tranDetailsInfo"></param> private string CreateVmiTranData(TranDetailsInfo tranDetailsInfo, SupplierInfo supplierInfo, WarehouseInfo warehouseInfo) { ///若未启用外部供应商系统,TODO:考虑内部供应商模块如何处理 if (string.IsNullOrEmpty(vmiTranDataEnableFlag) || vmiTranDataEnableFlag.ToLower() != "true") { return(string.Empty); } ///交易记录NULL,肯定生成不了记录 if (tranDetailsInfo == null) { return(string.Empty); } if (warehouseInfo == null) { return(string.Empty); } ///不是RDC类型的仓库的数据不发送给SRM if (warehouseInfo.WarehouseType.GetValueOrDefault() != (int)WarehouseTypeConstants.RDC) { return(string.Empty); } ///非物料入库不传SRM if (tranDetailsInfo.TranType.GetValueOrDefault() != (int)WmmTranTypeConstants.Inbound) { return(string.Empty); } if (tranDetailsInfo.TranOrderType.GetValueOrDefault() != 4010) { return(string.Empty); } WmsTranOutInfo wmsTranOutInfo = new WmsTranOutInfo(); // planmod转换为ordertype switch ((PullModeConstants)tranDetailsInfo.RunsheetType) { case PullModeConstants.Twd: wmsTranOutInfo.SourceOrderType = (int)WmsOrderTypeConstants.Twd; break; case PullModeConstants.Plan: wmsTranOutInfo.SourceOrderType = (int)WmsOrderTypeConstants.Plan; break; case PullModeConstants.Jis: wmsTranOutInfo.SourceOrderType = (int)WmsOrderTypeConstants.Jis; break; } wmsTranOutInfo.SourceOrderCode = tranDetailsInfo.TranNo; wmsTranOutInfo.RunsheetNo = tranDetailsInfo.RunsheetNo; wmsTranOutInfo.WmNo = tranDetailsInfo.WmNo; wmsTranOutInfo.Plant = tranDetailsInfo.Plant; wmsTranOutInfo.PartNo = tranDetailsInfo.PartNo; wmsTranOutInfo.DeliveryQty = tranDetailsInfo.ActualQty; wmsTranOutInfo.ProcessFlag = (int)ProcessFlagConstants.Untreated; wmsTranOutInfo.CreateUser = loginUser; return(WmsTranOutDAL.GetInsertSql(wmsTranOutInfo)); }
/// <summary> /// 根据交易记录以及基础数据配置数据,产生交易接口数据 Create By Xue /// </summary> private string CreateSapTranData(TranDetailsInfo tranDetailsInfo, ZonesInfo sourceZonesInfo, ZonesInfo targetZonesInfo, PlantInfo sourcePlantInfo, PlantInfo targetPlantInfo) { /// if (tranDetailsInfo == null) { return(string.Empty); } ///是否启用SAP交易记录同步接口 if (string.IsNullOrEmpty(sapTranDataEnableFlag) || sapTranDataEnableFlag.ToLower() != "true") { return(string.Empty); } /// StringBuilder stringBuilder = new StringBuilder(); #region SapTranOutInfo SapTranOutInfo sapTranOutInfo = new SapTranOutInfo(); sapTranOutInfo.Matnr = tranDetailsInfo.PartNo; sapTranOutInfo.Menge = tranDetailsInfo.ActualQty; sapTranOutInfo.Budat = tranDetailsInfo.TranDate; sapTranOutInfo.Lifnr = tranDetailsInfo.SupplierNum; sapTranOutInfo.ProcessFlag = (int)ProcessFlagConstants.Untreated; sapTranOutInfo.CreateUser = loginUser; #endregion ///如果没有目标库区则有可能是出成本中心的业务数据 if (targetZonesInfo == null) { ///若单据类型为物料预留、物料退货 if (tranDetailsInfo.TranOrderType.GetValueOrDefault() == ((int)OutboundTypeConstants.ReserveOutbound + 2000) || tranDetailsInfo.TranOrderType.GetValueOrDefault() == ((int)OutboundTypeConstants.MaterialReturns + 2000)) { SapPurchaseOrderDetailInfo sapPurchaseOrderDetailInfo = new SapPurchaseOrderDetailBLL().GetInfo(tranDetailsInfo.TranNo, tranDetailsInfo.PartNo); if (sapPurchaseOrderDetailInfo == null) { return(string.Empty); ///TODO:物料预留未能找到原始单据 } ///如果没有成本中心则不具备产生SAP事务数据的条件 if (string.IsNullOrEmpty(sapPurchaseOrderDetailInfo.SapKostl)) { return(string.Empty); } ///采购订单中有SAP采购订单号的需要生成101入库交易 if (!string.IsNullOrEmpty(sapPurchaseOrderDetailInfo.SapEbeln)) { #region 转入库存地点收货数据 SapTranOutInfo sapTranOut = sapTranOutInfo.Clone(); ///目标库存地点 sapTranOut.Lgort = sapPurchaseOrderDetailInfo.SapLgort; sapTranOut.Werks = sourcePlantInfo == null ? string.Empty : sourcePlantInfo.SapPlantCode; ///采购订单 sapTranOut.Ebeln = sapPurchaseOrderDetailInfo.SapEbeln; sapTranOut.Ebelp = sapPurchaseOrderDetailInfo.SapEbelp; ///101 sapTranOut.Bwart = ((int)SapTranTypeConstants.Inbound).ToString(); #endregion stringBuilder.AppendLine(SapTranOutDAL.GetInsertSql(sapTranOut)); } ///来源库存地点 sapTranOutInfo.Lgort = sapPurchaseOrderDetailInfo.SapLgort; sapTranOutInfo.Werks = sourcePlantInfo == null ? string.Empty : sourcePlantInfo.SapPlantCode; ///目标库存地点 sapTranOutInfo.Umlgo = sapPurchaseOrderDetailInfo.SapUmlgo; sapTranOutInfo.Unwrk = targetPlantInfo == null ? string.Empty : targetPlantInfo.SapPlantCode; ///成本中心 sapTranOutInfo.Kostl = sapPurchaseOrderDetailInfo.SapKostl; ///预留单号 sapTranOutInfo.Rsnum = sapPurchaseOrderDetailInfo.SapRsnum; ///采购订单 sapTranOutInfo.Ebeln = sapPurchaseOrderDetailInfo.SapEbeln; sapTranOutInfo.Ebelp = sapPurchaseOrderDetailInfo.SapEbelp; ///移动类型 sapTranOutInfo.Bwart = sapPurchaseOrderDetailInfo.SapBwart; stringBuilder.AppendLine(SapTranOutDAL.GetInsertSql(sapTranOutInfo)); return(stringBuilder.ToString()); } } ///据交易记录中的目标存储区是否结算标记 //todo if (targetZonesInfo != null /*&& targetZonesInfo.SettlementFlag.GetValueOrDefault()*/) { ///接收工厂 sapTranOutInfo.Unwrk = targetPlantInfo == null ? string.Empty : targetPlantInfo.SapPlantCode; ///接收库存地点 sapTranOutInfo.Umlgo = targetZonesInfo.StockPlaceNo; ///发出工厂 string werks = (sourcePlantInfo == null ? string.Empty : sourcePlantInfo.SapPlantCode); ///发出库存地点 string lgort = (sourceZonesInfo == null ? string.Empty : sourceZonesInfo.StockPlaceNo); ///如果没有来源库存地点,并且物料未结算 if (string.IsNullOrEmpty(lgort) && !tranDetailsInfo.SettledFlag.GetValueOrDefault()) { ///正常入库 if (tranDetailsInfo.TranOrderType.GetValueOrDefault() == ((int)InboundTypeConstants.NormalInbound + 1000)) { sapTranOutInfo.Bwart = ((int)SapTranTypeConstants.Inbound).ToString(); } ///返利入库单 -> 免费收货 if (tranDetailsInfo.TranOrderType.GetValueOrDefault() == ((int)InboundTypeConstants.RebateInbound + 1000)) { sapTranOutInfo.Bwart = ((int)SapTranTypeConstants.RebateInbound).ToString(); } ///采购订单 -> 正常入库 if (tranDetailsInfo.TranOrderType.GetValueOrDefault() == ((int)InboundTypeConstants.PurchaseOrder + 1000)) { SapPurchaseOrderDetailInfo sapPurchaseOrderDetailInfo = new SapPurchaseOrderDetailBLL().GetInfo(tranDetailsInfo.RunsheetNo, tranDetailsInfo.PartNo); if (sapPurchaseOrderDetailInfo == null) { return(string.Empty); ///TODO:物料预留未能找到原始单据 } sapTranOutInfo.Umlgo = sapPurchaseOrderDetailInfo.SapUmlgo; sapTranOutInfo.Bwart = ((int)SapTranTypeConstants.Inbound).ToString(); sapTranOutInfo.Ebeln = sapPurchaseOrderDetailInfo.SapEbeln; sapTranOutInfo.Ebelp = sapPurchaseOrderDetailInfo.SapEbelp; } return(SapTranOutDAL.GetInsertSql(sapTranOutInfo)); } ///如果有发出库存地点,并且物料已结算 if (!string.IsNullOrEmpty(lgort) && tranDetailsInfo.SettledFlag.GetValueOrDefault()) { ///如果来源与目标的SAP库存地点相同则不产生移动数据 if (lgort == sapTranOutInfo.Umlgo) { return(string.Empty); } sapTranOutInfo.Lgort = lgort; sapTranOutInfo.Werks = werks; sapTranOutInfo.Bwart = ((int)SapTranTypeConstants.Movement).ToString(); return(SapTranOutDAL.GetInsertSql(sapTranOutInfo)); } } return(string.Empty); }
public long InsertInfo(TranDetailsInfo info) { return(dal.Add(info)); }
/// <summary> /// Sync /// </summary> public static void Sync(string loginUser) { ///获取未处理的检验模式中间表数据 List <WmsVmiTranDetailInfo> wmsVmiTranDetailInfos = new WmsVmiTranDetailBLL().GetList("[PROCESS_FLAG] = " + (int)ProcessFlagConstants.Untreated + "", string.Empty); if (wmsVmiTranDetailInfos.Count == 0) { return; } StringBuilder @string = new StringBuilder(); ///获取仓库信息 List <WarehouseInfo> warehouseInfos = new WarehouseBLL().GetList("" + "[WAREHOUSE] in ('" + string.Join("','", wmsVmiTranDetailInfos.Select(d => d.VmiWarehouseCode).ToArray()) + "') " // + " and [WAREHOUSE_TYPE] = " + (int)WarehouseTypeConstants.VMI + "" , string.Empty); if (warehouseInfos.Count == 0) { @string.AppendLine("update [LES].[TI_IFM_WMS_VMI_TRAN_DETAIL] set " + "[PROCESS_FLAG] = " + (int)ProcessFlagConstants.Suspend + "," + "[PROCESS_TIME] = GETDATE()," + "[COMMENTS] = N'0x00000230' where " + "[ID] in (" + string.Join(",", wmsVmiTranDetailInfos.Select(d => d.Id).ToArray()) + ");"); BLL.SYS.CommonBLL.ExecuteNonQueryBySql(@string.ToString()); return; } ///获取供应商信息 List <SupplierInfo> supplierInfos = new SupplierBLL().GetList("" + "[SUPPLIER_NUM] in ('" + string.Join("','", wmsVmiTranDetailInfos.Select(d => d.SupplierCode).ToArray()) + "') and " + "[SUPPLIER_TYPE] = " + (int)SupplierTypeConstants.MaterialSupplier + "", string.Empty); if (supplierInfos.Count == 0) { @string.AppendLine("update [LES].[TI_IFM_WMS_VMI_TRAN_DETAIL] set " + "[PROCESS_FLAG] = " + (int)ProcessFlagConstants.Suspend + "," + "[PROCESS_TIME] = GETDATE()," + "[COMMENTS] = N'0x00000229' where " + "[ID] in (" + string.Join(",", wmsVmiTranDetailInfos.Select(d => d.Id).ToArray()) + ");"); BLL.SYS.CommonBLL.ExecuteNonQueryBySql(@string.ToString()); return; } ///获取VMI供应商关系 List <VmiSupplierInfo> vmiSupplierInfos = new VmiSupplierBLL().GetList("" + "[SUPPLIER_NUM] in ('" + string.Join("','", supplierInfos.Select(d => d.SupplierNum).ToArray()) + "') and " + "[WM_NO] in ('" + string.Join("','", warehouseInfos.Select(d => d.Warehouse).ToArray()) + "')", string.Empty); if (vmiSupplierInfos.Count == 0) { @string.AppendLine("update [LES].[TI_IFM_WMS_VMI_TRAN_DETAIL] set " + "[PROCESS_FLAG] = " + (int)ProcessFlagConstants.Suspend + "," + "[PROCESS_TIME] = GETDATE()," + "[COMMENTS] = N'0x00000429' where " + "[ID] in (" + string.Join(",", wmsVmiTranDetailInfos.Select(d => d.Id).ToArray()) + ");"); BLL.SYS.CommonBLL.ExecuteNonQueryBySql(@string.ToString()); return; } ///获取相关物料基础信息 List <MaintainPartsInfo> maintainPartsInfos = new MaintainPartsBLL().GetList("[PART_NO] in ('" + string.Join("','", wmsVmiTranDetailInfos.Select(d => d.PartNo).ToArray()) + "')", string.Empty); ///获取相关物料仓储信息 List <PartsStockInfo> partsStockInfos = new PartsStockBLL().GetList("" + "[PART_NO] in ('" + string.Join("','", wmsVmiTranDetailInfos.Select(d => d.PartNo).ToArray()) + "') and " + "[WM_NO] in ('" + string.Join("','", warehouseInfos.Select(d => d.Warehouse).ToArray()) + "')", string.Empty); /// List <long> dealedIds = new List <long>(); foreach (WmsVmiTranDetailInfo wmsVmiTranDetailInfo in wmsVmiTranDetailInfos) { var vmiWareHouseInfo = warehouseInfos.FirstOrDefault(fod => fod.Warehouse == wmsVmiTranDetailInfo.VmiWarehouseCode); if (vmiWareHouseInfo == null) { @string.AppendLine("update [LES].[TI_IFM_WMS_VMI_TRAN_DETAIL] set " + "[PROCESS_FLAG] = " + (int)ProcessFlagConstants.Suspend + "," + "[PROCESS_TIME] = GETDATE()," + "[COMMENTS] = N'0x00000230' where " +///VMI供应商信息未维护 "[ID] = " + wmsVmiTranDetailInfo.Id + ";"); continue; } if (vmiWareHouseInfo.WarehouseType != (int)WarehouseTypeConstants.VMI) { @string.AppendLine("update [LES].[TI_IFM_WMS_VMI_TRAN_DETAIL] set " + "[PROCESS_FLAG] = " + (int)ProcessFlagConstants.Processed + "," + "[PROCESS_TIME] = GETDATE()," + "[COMMENTS] = N'0x00000518' where " +///VMI供应商信息未维护 "[ID] = " + wmsVmiTranDetailInfo.Id + ";"); continue; } ///VMI供应商关系 VmiSupplierInfo vmiSupplierInfo = vmiSupplierInfos.FirstOrDefault(d => d.SupplierNum == wmsVmiTranDetailInfo.SupplierCode && d.WmNo == wmsVmiTranDetailInfo.VmiWarehouseCode); if (vmiSupplierInfo == null) { @string.AppendLine("update [LES].[TI_IFM_WMS_VMI_TRAN_DETAIL] set " + "[PROCESS_FLAG] = " + (int)ProcessFlagConstants.Suspend + "," + "[PROCESS_TIME] = GETDATE()," + "[COMMENTS] = N'0x00000429' where " +///VMI供应商信息未维护 "[ID] = " + wmsVmiTranDetailInfo.Id + ";"); continue; } if (!vmiSupplierInfo.VmiFlag.GetValueOrDefault()) { @string.AppendLine("update [LES].[TI_IFM_SRM_VMI_SHIPPING_NOTE] set " + "[PROCESS_FLAG] = " + (int)ProcessFlagConstants.Suspend + "," + "[PROCESS_TIME] = GETDATE()," + "[COMMENTS] = N'0x00000466' where " +///该供应商未启用WMS功能 "[ID] = " + wmsVmiTranDetailInfo.Id + ";"); continue; } if (string.IsNullOrEmpty(vmiSupplierInfo.ZoneNo)) { @string.AppendLine("update [LES].[TI_IFM_WMS_VMI_TRAN_DETAIL] set " + "[PROCESS_FLAG] = " + (int)ProcessFlagConstants.Suspend + "," + "[PROCESS_TIME] = GETDATE()," + "[COMMENTS] = N'0x00000481' where " +///VMI存储区未配置 "[ID] = " + wmsVmiTranDetailInfo.Id + ";"); continue; } ///指定存储区 wmsVmiTranDetailInfo.ZoneNo = vmiSupplierInfo.ZoneNo; ///创建交易 TranDetailsInfo tranDetailsInfo = TranDetailsBLL.CreateTranDetailsInfo(loginUser); ///PartsStockInfo -> TranDetailsInfo PartsStockInfo partsStockInfo = partsStockInfos.FirstOrDefault(d => d.PartNo == wmsVmiTranDetailInfo.PartNo && d.WmNo == vmiSupplierInfo.WmNo && d.ZoneNo == vmiSupplierInfo.ZoneNo); TranDetailsBLL.GetTranDetailsInfo(partsStockInfo, ref tranDetailsInfo); ///WmsVmiTranDetailInfo -> TranDetailsInfo wmsVmiTranDetailInfo.Dloc = partsStockInfo.Dloc; TranDetailsBLL.GetTranDetailsInfo(wmsVmiTranDetailInfo, ref tranDetailsInfo); ///MaintainPartsInfo -> TranDetailsInfo MaintainPartsInfo maintainPartsInfo = maintainPartsInfos.FirstOrDefault(d => d.PartNo == tranDetailsInfo.PartNo); TranDetailsBLL.GetTranDetailsInfo(maintainPartsInfo, ref tranDetailsInfo); ///SupplierInfo -> TranDetailsInfo SupplierInfo supplierInfo = supplierInfos.FirstOrDefault(d => d.SupplierNum == tranDetailsInfo.SupplierNum); TranDetailsBLL.GetTranDetailsInfo(supplierInfo, ref tranDetailsInfo); ///包装数量计算 TranDetailsBLL.CalculateTranDetailsInfo(ref tranDetailsInfo); ///获取库存交易记录的生成语句 @string.AppendLine(TranDetailsDAL.GetInsertSql(tranDetailsInfo)); dealedIds.Add(wmsVmiTranDetailInfo.Id); } if (dealedIds.Count > 0) { ///已处理的中间表数据更新为已处理状态 @string.AppendLine("update [LES].[TI_IFM_WMS_VMI_TRAN_DETAIL] set " + "[PROCESS_FLAG] = " + (int)ProcessFlagConstants.Processed + "," + "[PROCESS_TIME] = GETDATE() where " + "[ID] in (" + string.Join(",", dealedIds.ToArray()) + ");"); } ///执行 using (var trans = new TransactionScope()) { if (@string.Length > 0) { BLL.SYS.CommonBLL.ExecuteNonQueryBySql(@string.ToString()); } trans.Complete(); } }
/// <summary> /// CreateSrmTranData /// </summary> /// <param name="tranDetailsInfo"></param> private string CreateSrmTranData(TranDetailsInfo tranDetailsInfo, SupplierInfo supplierInfo, WarehouseInfo warehouseInfo) { ///若未启用外部供应商系统,TODO:考虑内部供应商模块如何处理 if (string.IsNullOrEmpty(srmTranDataEnableFlag) || srmTranDataEnableFlag.ToLower() != "true") { return(string.Empty); } ///若不是物料供应商则不需要生成记录 if (supplierInfo.SupplierType.GetValueOrDefault() != (int)SupplierTypeConstants.MaterialSupplier) { return(string.Empty); } ///交易记录NULL,肯定生成不了记录 if (tranDetailsInfo == null) { return(string.Empty); } if (warehouseInfo == null) { return(string.Empty); } ///不是RDC类型的仓库的数据不发送给SRM if (warehouseInfo.WarehouseType.GetValueOrDefault() != (int)WarehouseTypeConstants.RDC) { return(string.Empty); } ///非物料入库不传SRM if (tranDetailsInfo.TranType.GetValueOrDefault() != (int)WmmTranTypeConstants.Inbound) { return(string.Empty); } ///SRM单据类型 int orderType = 0; switch (tranDetailsInfo.TranOrderType.GetValueOrDefault()) { case (int)InboundTypeConstants.RebateInbound + 1000: if (string.IsNullOrEmpty(rebateInboundReceiveReleaseToSrm) || rebateInboundReceiveReleaseToSrm.ToLower() != "true") { return(string.Empty); } orderType = (int)SrmOrderTypeConstants.Reserve; ///TODO:返利 break; ///采购订单 case (int)InboundTypeConstants.PurchaseOrder + 1000: orderType = (int)SrmOrderTypeConstants.Purchase; break; ///预留 case (int)InboundTypeConstants.ReserveInbound + 1000: orderType = (int)SrmOrderTypeConstants.Reserve; break; default: switch (tranDetailsInfo.RunsheetType.GetValueOrDefault()) { case (int)PullModeConstants.Jis: orderType = (int)SrmOrderTypeConstants.Jis; break; case (int)PullModeConstants.Plan: orderType = (int)SrmOrderTypeConstants.Plan; break; case (int)PullModeConstants.Twd: orderType = (int)SrmOrderTypeConstants.Twd; break; default: return(string.Empty); } break; } /// SrmTranOutInfo srmTranOutInfo = new SrmTranOutInfo(); srmTranOutInfo.SourceOrderCode = tranDetailsInfo.TranNo;///TODO:SRM要哪个编号? srmTranOutInfo.SourceOrderType = orderType; srmTranOutInfo.PartNo = tranDetailsInfo.PartNo; srmTranOutInfo.DeliveryQty = tranDetailsInfo.ActualQty; srmTranOutInfo.ProcessFlag = (int)ProcessFlagConstants.Untreated; srmTranOutInfo.CreateUser = loginUser; return(SrmTranOutDAL.GetInsertSql(srmTranOutInfo)); }