/// <summary> /// 为领料而获取领料退库单信息对话框 /// </summary> /// <returns>成功则返回获取到的对话框,失败返回null</returns> static public FormQueryInfo GetReturnedInDepotBillDialogForFetchGoods() { IMaterialReturnedInTheDepot billServer = ServerModuleFactory.GetServerModule <IMaterialReturnedInTheDepot>(); PlatformManagement.IQueryResult queryInfo; if (!billServer.GetAllBillForFetchGoods(out queryInfo, out m_err)) { MessageDialog.ShowErrorMessage(m_err); return(null); } FormQueryInfo form = new FormQueryInfo(queryInfo); form.ShowColumns = new string[] { "退库单号", "退库时间", "申请部门", "申请人", "初始用途", "退库原因", "备注" }; return(form); }
/// <summary> /// 生成领料退库单 /// </summary> /// <param name="context">数据上下文</param> /// <param name="billNo">单据号</param> void InsertReturnBill(DepotManagementDataContext context, string billNo) { IMaterialReturnedInTheDepot serverReturnedBill = ServerModule.ServerModuleFactory.GetServerModule <IMaterialReturnedInTheDepot>(); var varList = from a in context.S_ScrapGoods where a.Bill_ID == billNo && a.ResponsibilityProvider == a.Provider select a; if (varList.Count() == 0) { return; } var varData = from a in context.S_ScrapBill where a.Bill_ID == billNo select a; if (varData.Count() == 0) { return; } S_ScrapBill bill = varData.Single(); //操作主表 S_MaterialReturnedInTheDepot returnBill = new S_MaterialReturnedInTheDepot(); var data1 = from a in context.BASE_MaterialRequisitionPurpose where a.Purpose == bill.ProductType && a.Code.Substring(0, 1) == "F" select a; returnBill.Bill_ID = m_assignBill.AssignNewNo(context, serverReturnedBill, CE_BillTypeEnum.领料退库单.ToString()); returnBill.Bill_Time = ServerTime.Time; returnBill.BillStatus = MaterialReturnedInTheDepotBillStatus.已完成.ToString(); returnBill.Department = bill.DeclareDepartment; returnBill.ReturnType = "其他退库";//退库类别 returnBill.FillInPersonnel = bill.FillInPersonnel; returnBill.FillInPersonnelCode = bill.FillInPersonnelCode; returnBill.DepartmentDirector = bill.DepartmentDirector; returnBill.QualityInputer = ""; returnBill.DepotManager = BasicInfo.LoginName; returnBill.PurposeCode = data1.First().Code; returnBill.ReturnReason = "由【报废单】:" + billNo + " 生成的报废退库"; returnBill.Remark = "系统自动生成"; returnBill.StorageID = "01"; returnBill.ReturnMode = "领料退库";//退库方式 returnBill.IsOnlyForRepair = false; returnBill.InDepotDate = ServerTime.Time; context.S_MaterialReturnedInTheDepot.InsertOnSubmit(returnBill); context.SubmitChanges(); foreach (S_ScrapGoods goodsInfo in varList) { View_F_GoodsPlanCost goodsView = UniversalFunction.GetGoodsInfo(context, goodsInfo.GoodsID); QueryCondition_Store queryInfo = new QueryCondition_Store(); queryInfo.BatchNo = goodsInfo.BatchNo; queryInfo.GoodsID = goodsInfo.GoodsID; queryInfo.StorageID = "01"; S_Stock stockInfo = UniversalFunction.GetStockInfo(context, queryInfo); S_MaterialListReturnedInTheDepot detailInfo = new S_MaterialListReturnedInTheDepot(); detailInfo.BatchNo = goodsInfo.BatchNo; detailInfo.Bill_ID = returnBill.Bill_ID; detailInfo.GoodsID = goodsInfo.GoodsID; detailInfo.Provider = goodsInfo.Provider; detailInfo.ReturnedAmount = goodsInfo.Quantity; detailInfo.Depot = goodsView.物品类别; detailInfo.ColumnNumber = stockInfo == null ? "" : stockInfo.ColumnNumber; detailInfo.LayerNumber = stockInfo == null ? "" : stockInfo.LayerNumber; detailInfo.ShelfArea = stockInfo == null ? "" : stockInfo.ShelfArea; detailInfo.ProviderBatchNo = stockInfo == null ? "" : stockInfo.ProviderBatchNo; detailInfo.Remark = ""; context.S_MaterialListReturnedInTheDepot.InsertOnSubmit(detailInfo); context.SubmitChanges(); } serverReturnedBill.OpertaionDetailAndStock(context, returnBill); context.SubmitChanges(); }
private void btnLoadDataFromMRRB_Click(object sender, EventArgs e) { if (!CheckData()) { return; } FormQueryInfo dialog = QueryInfoDialog.GetMaterialRequisitionBillDialog(BasicInfo.LoginID, CE_BillTypeEnum.领料退库单); if (dialog.ShowDialog() == DialogResult.OK) { string billNo = dialog.GetStringDataItem("退库单号"); if (MessageDialog.ShowEnquiryMessage("您确定要导入 " + billNo + " 领料单的信息吗?此过程需要一段时间,是否继续?") == DialogResult.No) { return; } IMaterialReturnedInTheDepot billServer = ServerModuleFactory.GetServerModule <IMaterialReturnedInTheDepot>(); IMaterialListReturnedInTheDepot goodsServer = ServerModuleFactory.GetServerModule <IMaterialListReturnedInTheDepot>(); View_S_MaterialReturnedInTheDepot bill = billServer.GetBillView(billNo); List <View_S_MaterialListReturnedInTheDepot> lstMRGoods = (from r in goodsServer.GetGoods(billNo) select r).ToList(); if (lstMRGoods.Count > 0) { if (是否一次性物品.Checked && GlobalObject.GeneralFunction.IsNullOrEmpty(m_productNumber)) { m_productNumber = cmbProductCode.Text; } List <StorageGoods> lstGoods = new List <StorageGoods>(lstMRGoods.Count); foreach (var item in lstMRGoods) { StorageGoods goods = new StorageGoods(); goods.GoodsCode = item.图号型号; goods.GoodsName = item.物品名称; goods.Spec = item.规格; goods.Provider = item.供应商; goods.BatchNo = item.批次号; goods.Quantity = -(decimal)item.退库数; goods.StorageID = bill.库房代码; lstGoods.Add(goods); } if (!m_mbpServer.AddFromBill(BasicInfo.LoginID, Convert.ToInt32( cmbPurpose.SelectedValue), m_productNumber, billNo, lstGoods, out m_error)) { MessageDialog.ShowErrorMessage(m_error); } else { MessageDialog.ShowPromptMessage("操作成功"); SearchData(0); } } } }
private void dataGridView1_DoubleClick(object sender, EventArgs e) { if (dataGridView1.CurrentRow == null) { return; } View_S_MaterialReturnedInTheDepot lnqMaterialReturn = m_goodsServer.GetBillView(m_billNo); int intGoodsID = Convert.ToInt32(dataGridView1.CurrentRow.Cells["物品ID"].Value); switch (UniversalFunction.GetGoodsType(intGoodsID, m_strStorage)) { case CE_GoodsType.CVT: case CE_GoodsType.TCU: BarCodeInfo tempInfo = new BarCodeInfo(); tempInfo.BatchNo = dataGridView1.CurrentRow.Cells["批次号"].Value.ToString(); tempInfo.Count = Convert.ToDecimal(dataGridView1.CurrentRow.Cells["退库数"].Value); tempInfo.GoodsCode = dataGridView1.CurrentRow.Cells["图号型号"].Value.ToString(); tempInfo.GoodsID = intGoodsID; tempInfo.GoodsName = dataGridView1.CurrentRow.Cells["物品名称"].Value.ToString(); tempInfo.Remark = dataGridView1.CurrentRow.Cells["备注"].Value.ToString(); tempInfo.Spec = dataGridView1.CurrentRow.Cells["规格"].Value.ToString(); bool blCheck = true; if (m_operateMode == CE_BusinessOperateMode.查看) { blCheck = false; } else { if (lnqMaterialReturn.单据状态 != "等待仓管退库") { blCheck = false; } } IMaterialReturnedInTheDepot serverBill = ServerModuleFactory.GetServerModule <IMaterialReturnedInTheDepot>(); View_S_MaterialReturnedInTheDepot tempLnq = serverBill.GetBillView(m_billNo); CE_BusinessType tempType = CE_BusinessType.库房业务; Service_Manufacture_WorkShop.IWorkShopBasic serverWSBasic = Service_Manufacture_WorkShop.ServerModuleFactory.GetServerModule <Service_Manufacture_WorkShop.IWorkShopBasic>(); WS_WorkShopCode tempWSCode = serverWSBasic.GetPersonnelWorkShop(tempLnq.申请人编码); Dictionary <string, string> tempDic = new Dictionary <string, string>(); tempDic.Add(m_strStorage, CE_MarketingType.领料退库.ToString()); if (tempWSCode != null) { tempType = CE_BusinessType.综合业务; tempDic.Add(tempWSCode.WSCode, CE_SubsidiaryOperationType.领料退库.ToString()); } 产品编号 formCode = new 产品编号(tempInfo, tempType, m_billNo, blCheck, tempDic); if (m_strStorage == "05") { if (dataGridView1.CurrentRow.Cells["返修状态"].Value == null || dataGridView1.CurrentRow.Cells["返修状态"].Value.ToString() == "") { MessageDialog.ShowPromptMessage("请选择产品的返修状态"); return; } else { formCode.BlIsRepaired = (bool)dataGridView1.CurrentRow.Cells["返修状态"].Value; } } formCode.ShowDialog(); break; case CE_GoodsType.工装: 工装编号录入窗体 form = new 工装编号录入窗体(m_billNo, intGoodsID, CE_BusinessBillType.领料退库, lnqMaterialReturn.单据状态 == "等待仓管退库" ? true : false); form.StartPosition = FormStartPosition.CenterScreen; form.ShowDialog(); break; case CE_GoodsType.量检具: 量检具编号录入窗体 formLJY = new 量检具编号录入窗体(m_billNo, intGoodsID, Convert.ToDecimal(dataGridView1.CurrentRow.Cells["退库数"].Value), CE_BusinessBillType.领料退库, m_operateMode == CE_BusinessOperateMode.仓库核实 ? true : false); formLJY.ShowDialog(); break; case CE_GoodsType.零件: break; case CE_GoodsType.未知物品: break; default: break; } }