/// <summary> /// VmiPullOrderInfo -> VmiShippingPartInfo /// </summary> /// <param name="vmiPullOrderInfo"></param> /// <param name="info"></param> public static void GetVmiShippingPartInfo(VmiPullOrderInfo vmiPullOrderInfo, ref VmiShippingPartInfo info) { if (vmiPullOrderInfo == null) { return; } ///PULL_MODE,拉动模式 info.PullMode = vmiPullOrderInfo.PullMode; ///PART_BOX_CODE,零件类代码 info.PartBoxCode = vmiPullOrderInfo.PartBoxCode; ///ROUTE_CODE,路径代码 info.RouteCode = vmiPullOrderInfo.RouteCode; ///PLANT,工厂 info.Plant = vmiPullOrderInfo.Plant; ///S_WM_NO,来源仓库 info.SWmNo = vmiPullOrderInfo.SWmNo; ///S_ZONE_NO,来源存储区 info.SZoneNo = vmiPullOrderInfo.SZoneNo; ///T_WM_NO,目标仓库 info.TWmNo = vmiPullOrderInfo.TWmNo; ///T_ZONE_NO,目标存储区 info.TZoneNo = vmiPullOrderInfo.TZoneNo; ///T_DOCK,目标道口 info.TDock = vmiPullOrderInfo.Dock; }
public long InsertInfo(VmiPullOrderInfo info) { return(dal.Add(info)); }
/// <summary> /// 加入VMI物料购物车 /// </summary> /// <returns></returns> public static void AddCartVmiShippingPartInfo(List <VmiPullOrderDetailInfo> vmiPullOrderDetailInfos, string loginUser) { if (vmiPullOrderDetailInfos.Count == 0) { throw new Exception("MC:3x00000027");///传入参数异常 } ///现有数据库中的VMI拉动单明细 List <VmiPullOrderDetailInfo> vmiPullOrderDetails = new VmiPullOrderDetailDAL().GetList("" + "[ID] in (" + string.Join(",", vmiPullOrderDetailInfos.Select(w => w.Id).ToArray()) + ")", string.Empty); if (vmiPullOrderDetails.Count == 0) { throw new Exception("MC:0x00000084");///数据错误 } List <VmiPullOrderInfo> vmiPullOrderInfos = new VmiPullOrderDAL().GetList("" + "[FID] in ('" + string.Join("','", vmiPullOrderDetails.Select(d => d.OrderFid.GetValueOrDefault()).ToArray()) + "')", string.Empty); if (vmiPullOrderInfos.Count == 0) { throw new Exception("MC:0x00000084");///数据错误 } ///当前登录用户的预发货集合 List <VmiShippingPartInfo> vmiShippingPartInfos = new VmiShippingPartDAL().GetList("[CREATE_USER] = N'" + loginUser + "'", string.Empty); StringBuilder @string = new StringBuilder(); foreach (var vmiPullOrderDetail in vmiPullOrderDetails) { ///本次预发货数量 VmiPullOrderDetailInfo orderDetailInfo = vmiPullOrderDetailInfos.FirstOrDefault(d => d.Id == vmiPullOrderDetail.Id); if (orderDetailInfo == null) { throw new Exception("MC:0x00000084");///数据错误 } VmiPullOrderInfo vmiPullOrderInfo = vmiPullOrderInfos.FirstOrDefault(d => d.Fid.GetValueOrDefault() == vmiPullOrderDetail.OrderFid.GetValueOrDefault()); if (vmiPullOrderInfo == null) { throw new Exception("MC:0x00000084");///数据错误 } if (vmiPullOrderDetail.RequiredPartQty.GetValueOrDefault() - vmiPullOrderDetail.AsnDraftQty.GetValueOrDefault() - vmiPullOrderDetail.AsnConfirmQty.GetValueOrDefault() - orderDetailInfo.AsnQty < 0) { throw new Exception("MC:0x00000497");///需求数量扣除草稿数量以及确认数量后不够本次预发货数量 } ///更新VMI拉动单草稿数量 @string.AppendLine("update [LES].[TT_MPM_VMI_PULL_ORDER_DETAIL] " + "set [ASN_DRAFT_QTY] = isnull([ASN_DRAFT_QTY],0) + " + orderDetailInfo.AsnQty + ",[MODIFY_DATE] = GETDATE(),[MODIFY_USER] = N'" + loginUser + "' " + "where [ID] = " + orderDetailInfo.Id + ";"); ///预发货集合中是否已存在拉动单明细,存在则累加数量 VmiShippingPartInfo vmiShippingPartInfo = vmiShippingPartInfos.FirstOrDefault(d => d.Fid.GetValueOrDefault() == vmiPullOrderDetail.Fid.GetValueOrDefault()); if (vmiShippingPartInfo == null) { /// vmiShippingPartInfo = CreateVmiShippingPartInfo(loginUser); GetVmiShippingPartInfo(vmiPullOrderDetail, ref vmiShippingPartInfo); GetVmiShippingPartInfo(vmiPullOrderInfo, ref vmiShippingPartInfo); ///ASN_DRAFT_QTY,ASN草稿物料数量 vmiShippingPartInfo.AsnDraftQty = orderDetailInfo.AsnQty; @string.AppendLine(VmiShippingPartDAL.GetInsertSql(vmiShippingPartInfo)); } else { @string.AppendLine("update [LES].[TE_MPM_VMI_SHIPPING_PART] " + "set [ASN_DRAFT_QTY] = isnull([ASN_DRAFT_QTY],0) + " + orderDetailInfo.AsnQty + ",[MODIFY_DATE] = GETDATE(),[MODIFY_USER] = N'" + loginUser + "' " + "where [ID] = " + vmiShippingPartInfo.Id + ";"); } } ///执行 using (TransactionScope trans = new TransactionScope()) { if (@string.Length > 0) { CommonDAL.ExecuteNonQueryBySql(@string.ToString()); } trans.Complete(); } }