public void AutoSupplementaryRequisition(string billNo, out List <string> listBillNo) { listBillNo = null; DepotManagementDataContext ctx = CommentParameter.DepotDataContext; ctx.Connection.Open(); ctx.Transaction = ctx.Connection.BeginTransaction(); IFlowServer serverFlow = FlowControlService.ServerModuleFactory.GetServerModule <IFlowServer>(); string billStatus = serverFlow.GetNowBillStatus(billNo); if (billStatus == null) { throw new Exception("单据状态为空,请重新确认"); } try { if (billStatus == CE_CommonBillStatus.单据完成.ToString()) { var varBill = from a in ctx.Business_WarehouseOutPut_WholeMachineRequisition where a.BillNo == billNo select a; Business_WarehouseOutPut_WholeMachineRequisition lnqWholeBill = varBill.Single(); string error = ""; Hashtable hsTable = new Hashtable(); hsTable.Add("@BillNo", billNo); DataTable tempTable = GlobalObject.DatabaseServer.QueryInfoPro("Business_WarehouseOutPut_WholeMachineRequisition_GetLastShortageInfo", hsTable, out error); List <Business_WarehouseOutPut_WholeMachineRequisitionDetail> listDetail = new List <Business_WarehouseOutPut_WholeMachineRequisitionDetail>(); if (tempTable != null && tempTable.Rows.Count > 0) { foreach (DataRow dr in tempTable.Rows) { Business_WarehouseOutPut_WholeMachineRequisitionDetail detail = new Business_WarehouseOutPut_WholeMachineRequisitionDetail(); detail.BillNo = billNo; detail.Cardinality = 0; detail.GoodsCount = Convert.ToDecimal(dr["NeedCount"]); detail.GoodsID = Convert.ToInt32(dr["GoodsID"]); listDetail.Add(detail); } } else { throw new Exception("无物品可生成补领的【领料单】"); } var varStorage = from a in ctx.Business_WarehouseOutPut_WholeMachineRequisition_StorageID where a.BillNo == billNo select a; List <Business_WarehouseOutPut_WholeMachineRequisition_StorageID> listStorage = varStorage.ToList(); CreateMaterialRequisition(ctx, lnqWholeBill, listDetail, listStorage, out listBillNo); ctx.Transaction.Commit(); } } catch (Exception ex) { ctx.Transaction.Rollback(); throw new Exception(ex.Message); } }
/// <summary> /// 保存业务信息 /// </summary> /// <param name="billInfo">业务总单信息</param> /// <param name="detailInfo">业务明细信息</param> public void SaveInfo(Business_WarehouseOutPut_WholeMachineRequisition billInfo, List <View_Business_WarehouseOutPut_WholeMachineRequisitionDetail> detailInfo, List <View_Business_WarehouseOutPut_WholeMachineRequisition_StorageID> listStorageID) { DepotManagementDataContext ctx = CommentParameter.DepotDataContext; ctx.Connection.Open(); ctx.Transaction = ctx.Connection.BeginTransaction(); try { var varData = from a in ctx.Business_WarehouseOutPut_WholeMachineRequisition where a.BillNo == billInfo.BillNo select a; if (varData.Count() == 1) { Business_WarehouseOutPut_WholeMachineRequisition lnqBill = varData.Single(); lnqBill.MachineCount = billInfo.MachineCount; lnqBill.ProductType = billInfo.ProductType; lnqBill.Remark = billInfo.Remark; lnqBill.BillTypeDetail = billInfo.BillTypeDetail; lnqBill.IncludeAfterSupplement = billInfo.IncludeAfterSupplement; } else if (varData.Count() == 0) { ctx.Business_WarehouseOutPut_WholeMachineRequisition.InsertOnSubmit(billInfo); } else { throw new Exception("单据数据不唯一"); } #region 添加明细 var varDetail = from a in ctx.Business_WarehouseOutPut_WholeMachineRequisitionDetail where a.BillNo == billInfo.BillNo select a; ctx.Business_WarehouseOutPut_WholeMachineRequisitionDetail.DeleteAllOnSubmit(varDetail); ctx.SubmitChanges(); foreach (View_Business_WarehouseOutPut_WholeMachineRequisitionDetail item in detailInfo) { Business_WarehouseOutPut_WholeMachineRequisitionDetail lnqDetail = new Business_WarehouseOutPut_WholeMachineRequisitionDetail(); lnqDetail.BillNo = billInfo.BillNo; lnqDetail.GoodsCount = item.数量; lnqDetail.GoodsID = item.物品ID; lnqDetail.Cardinality = item.基数; ctx.Business_WarehouseOutPut_WholeMachineRequisitionDetail.InsertOnSubmit(lnqDetail); } ctx.SubmitChanges(); #endregion #region 添加库房顺序 var varStorageID = from a in ctx.Business_WarehouseOutPut_WholeMachineRequisition_StorageID where a.BillNo == billInfo.BillNo select a; ctx.Business_WarehouseOutPut_WholeMachineRequisition_StorageID.DeleteAllOnSubmit(varStorageID); ctx.SubmitChanges(); foreach (View_Business_WarehouseOutPut_WholeMachineRequisition_StorageID item1 in listStorageID) { Business_WarehouseOutPut_WholeMachineRequisition_StorageID lnqStorage = new Business_WarehouseOutPut_WholeMachineRequisition_StorageID(); lnqStorage.BillNo = billInfo.BillNo; lnqStorage.StorageID = item1.库房代码; lnqStorage.OrderID = item1.库房顺序; ctx.Business_WarehouseOutPut_WholeMachineRequisition_StorageID.InsertOnSubmit(lnqStorage); } ctx.SubmitChanges(); #endregion ctx.Transaction.Commit(); } catch (Exception ex) { ctx.Transaction.Rollback(); throw new Exception(ex.Message); } }