void GetInfo() { m_lnqBillInfo = new Business_QualityManagement_Isolation(); m_lnqBillInfo.BatchNo = txtBatchNo.Text; m_lnqBillInfo.BillNo = txtBillNo.Text; m_lnqBillInfo.GoodsCount = numGoodsCount.Value; m_lnqBillInfo.GoodsID = Convert.ToInt32(txtGoodsCode.Tag); m_lnqBillInfo.IsolationReason = txtIsolationReason.Text; m_lnqBillInfo.PH_DisqualifiendCount = num_PH_DisqualifiendCount.Value; m_lnqBillInfo.PH_QualifiedCount = num_PH_QualifiedCount.Value; m_lnqBillInfo.ProcessMethodRequire = txtProcessMethodRequire.Text; m_lnqBillInfo.Provider = txtProvider.Text; m_lnqBillInfo.QC_DisqualifiedCount = num_QC_DisqualifiedCount.Value; m_lnqBillInfo.QC_ConcessionCount = num_QC_ConcessionCount.Value; m_lnqBillInfo.QC_QualifiedCount = num_QC_QualifiedCount.Value; m_lnqBillInfo.QC_ScraptCount = num_QC_ScraptCount.Value; m_lnqBillInfo.ReportFile = lbReportFile.Tag == null ? "" : lbReportFile.Tag.ToString(); if (rb_ReturnProcess_BF.Checked) { m_lnqBillInfo.ReturnProcess = rb_ReturnProcess_BF.Text; } else if (rb_ReturnProcess_TH.Checked) { m_lnqBillInfo.ReturnProcess = rb_ReturnProcess_TH.Text; } m_lnqBillInfo.StorageID = UniversalFunction.GetStorageID(cmbStorageID.Text); m_lnqBillInfo.WorkHours = num_WorkHours.Value; }
bool frm_CommonProcessSubmit(CustomFlowForm form, string advise) { try { Business_QualityManagement_Isolation lnqInPut = form.ResultList[0] as Business_QualityManagement_Isolation; this.OperationType = GeneralFunction.StringConvertToEnum <CE_FlowOperationType>(form.ResultList[1].ToString()); this.BillNo = lnqInPut.BillNo; switch (this.OperationType) { case CE_FlowOperationType.提交: m_serviceIsolation.SaveInfo(lnqInPut); m_serviceIsolation.FinishBill(lnqInPut.BillNo); break; case CE_FlowOperationType.暂存: m_serviceIsolation.SaveInfo(lnqInPut); break; case CE_FlowOperationType.回退: break; case CE_FlowOperationType.未知: break; default: break; } if (!m_serviceIsolation.IsExist(lnqInPut.BillNo)) { MessageDialog.ShowPromptMessage("数据为空,保存失败,如需退出,请直接X掉界面"); return(false); } return(true); } catch (Exception ex) { MessageDialog.ShowPromptMessage(ex.Message); return(false); } }
/// <summary> /// 修改物品库存状态 /// </summary> /// <param name="ctx">数据上下文</param> /// <param name="billInfo">单据信息</param> /// <param name="goodsStatus">物品状态</param> public void UpdateStockGoodsStatus(DepotManagementDataContext ctx, Business_QualityManagement_Isolation billInfo, int goodsStatus) { var varData = from a in ctx.S_Stock where a.BatchNo == billInfo.BatchNo && a.GoodsID == billInfo.GoodsID && a.Provider == billInfo.Provider && a.StorageID == billInfo.StorageID select a; if (varData.Count() == 1) { S_Stock tempStok = varData.Single(); tempStok.GoodsStatus = goodsStatus; } else { throw new Exception("库存信息有误,操作失败"); } }
public override void LoadFormInfo() { try { m_billNoControl = new BillNumberControl(CE_BillTypeEnum.合格品隔离处置单.ToString(), m_serviceIsolation); m_lnqBillInfo = m_serviceIsolation.GetSingleBillInfo(this.FlowInfo_BillNo); DataTable dtStorageInfo = UniversalFunction.GetStorageTb(); cmbStorageID.DataSource = dtStorageInfo; cmbStorageID.DisplayMember = "StorageName"; SetInfo(); SetControl(); } catch (Exception ex) { MessageDialog.ShowErrorMessage(ex.Message); } }
void CreateIsolationBusiness(Business_Sample_ConfirmTheApplication lnqSample) { IRejectIsolationService serviceIsolation = Service_Quality_QC.ServerModuleFactory.GetServerModule <IRejectIsolationService>(); BillNumberControl billNoControl = new BillNumberControl(CE_BillTypeEnum.合格品隔离处置单.ToString(), serviceIsolation); QueryCondition_Store queryInfo = new QueryCondition_Store(); queryInfo.BatchNo = lnqSample.Purchase_BatchNo; queryInfo.GoodsID = lnqSample.Purchase_GoodsID; queryInfo.Provider = lnqSample.Purchase_Provider; queryInfo.StorageID = lnqSample.Purchase_StorageID; List <S_Stock> stockList = UniversalFunction.GetStockInfoList(queryInfo); foreach (S_Stock stockInfo in stockList) { Business_QualityManagement_Isolation lnqIsolation = new Business_QualityManagement_Isolation(); lnqIsolation.BillNo = billNoControl.GetNewBillNo(); lnqIsolation.BatchNo = lnqSample.Purchase_BatchNo; lnqIsolation.GoodsID = lnqSample.Purchase_GoodsID; lnqIsolation.Provider = lnqSample.Purchase_Provider; lnqIsolation.StorageID = stockInfo.StorageID; lnqIsolation.IsolationReason = lnqSample.Review_RectificationItem_Explain; lnqIsolation.GoodsCount = stockInfo.ExistCount; string KeyWords = "【" + UniversalFunction.GetGoodsInfo(lnqIsolation.GoodsID).物品名称 + "】【" + lnqIsolation.BatchNo + "】"; if (!serviceIsolation.IsRepeatIsolation(lnqIsolation.GoodsID, lnqIsolation.BatchNo, lnqIsolation.StorageID)) { serviceIsolation.SaveInfo(lnqIsolation); serviceIsolation.FinishBill(lnqIsolation.BillNo); m_serverFlow.FlowHold(lnqIsolation.BillNo, lnqIsolation.StorageID, "暂存 由【样品确认申请单】:" + lnqSample.BillNo + " 系统自动生成", KeyWords); MessageDialog.ShowPromptMessage("由您填写的相关信息导致此物品已被隔离,且已生成【不合格品隔离处置单】,单号【" + lnqIsolation.BillNo + "】,且【隔离人】是您本人,请及时处理"); } } }
private void btnSave_Click(object sender, EventArgs e) { foreach (DataGridViewRow dgvr in customDataGridView1.Rows) { string billNo = m_billNoControl.GetNewBillNo(); bool isParallel = false; if (FlowInfo_NotifyInfo == null && m_serverFlow.IsPointPersonnel(billNo, out isParallel)) { CustomFlowForm flowForm = new CustomFlowForm(); if (!flowForm.GetNotifyPersonnel(true)) { throw new Exception("请选择指定人或者角色点【确定】"); } else { FlowInfo_NotifyInfo = flowForm.FlowInfo_NotifyInfo; } } Business_QualityManagement_Isolation tempLnq = new Business_QualityManagement_Isolation(); tempLnq.BatchNo = dgvr.Cells["批次号"].Value.ToString(); tempLnq.BillNo = billNo; tempLnq.GoodsCount = Convert.ToDecimal(dgvr.Cells["数量"].Value); tempLnq.GoodsID = Convert.ToInt32(dgvr.Cells["物品ID"].Value); tempLnq.IsolationReason = dgvr.Cells["隔离原因及处理要求"].Value.ToString(); tempLnq.StorageID = dgvr.Cells["库房代码"].Value.ToString(); tempLnq.Provider = dgvr.Cells["供应商"].Value.ToString(); m_isolationService.SaveInfo(tempLnq); m_isolationService.FinishBill(billNo); string keyWords = "【" + UniversalFunction.GetGoodsInfo(tempLnq.GoodsID).物品名称 + "】【" + tempLnq.BatchNo + "】"; m_serverFlow.FlowPass(tempLnq.BillNo, "", tempLnq.StorageID, FlowInfo_NotifyInfo, keyWords); } MessageBox.Show("已全部提交"); this.Close(); }
void SetInfo() { if (m_lnqBillInfo != null) { lbBillStatus.Text = m_serverFlow.GetNowBillStatus(m_lnqBillInfo.BillNo); m_lnqFlowInfo = m_serverFlow.GetNowFlowInfo(m_serverFlow.GetBusinessTypeID(CE_BillTypeEnum.合格品隔离处置单, null), m_lnqBillInfo.BillNo); txtBillNo.Text = m_lnqBillInfo.BillNo; View_F_GoodsPlanCost goodsInfo = UniversalFunction.GetGoodsInfo(m_lnqBillInfo.GoodsID); txtBatchNo.Text = m_lnqBillInfo.BatchNo; txtGoodsCode.Text = goodsInfo.图号型号; txtGoodsName.Text = goodsInfo.物品名称; txtSpec.Text = goodsInfo.规格; txtGoodsCode.Tag = m_lnqBillInfo.GoodsID; txtIsolationReason.Text = m_lnqBillInfo.IsolationReason; txtProcessMethodRequire.Text = m_lnqBillInfo.ProcessMethodRequire; txtProvider.Text = m_lnqBillInfo.Provider; cmbStorageID.Text = UniversalFunction.GetStorageName(m_lnqBillInfo.StorageID); numGoodsCount.Value = m_lnqBillInfo.GoodsCount; lbReportFile.Tag = m_lnqBillInfo.ReportFile; num_PH_DisqualifiendCount.Value = m_lnqBillInfo.PH_DisqualifiendCount == null ? 0 : (decimal)m_lnqBillInfo.PH_DisqualifiendCount; num_PH_QualifiedCount.Value = m_lnqBillInfo.PH_QualifiedCount == null ? 0 : (decimal)m_lnqBillInfo.PH_QualifiedCount; num_QC_ConcessionCount.Value = m_lnqBillInfo.QC_ConcessionCount == null ? 0 : (decimal)m_lnqBillInfo.QC_ConcessionCount; num_QC_QualifiedCount.Value = m_lnqBillInfo.QC_QualifiedCount == null ? 0 : (decimal)m_lnqBillInfo.QC_QualifiedCount; num_QC_DisqualifiedCount.Value = m_lnqBillInfo.QC_DisqualifiedCount == null ? 0 : (decimal)m_lnqBillInfo.QC_DisqualifiedCount; num_QC_ScraptCount.Value = m_lnqBillInfo.QC_ScraptCount == null ? 0 : (decimal)m_lnqBillInfo.QC_ScraptCount; num_WorkHours.Value = m_lnqBillInfo.WorkHours == null ? 0 : (decimal)m_lnqBillInfo.WorkHours; if (m_lnqBillInfo.ReturnProcess != null) { if (m_lnqBillInfo.ReturnProcess == rb_ReturnProcess_BF.Text) { rb_ReturnProcess_BF.Checked = true; } else if (m_lnqBillInfo.ReturnProcess == rb_ReturnProcess_TH.Text) { rb_ReturnProcess_TH.Checked = true; } } this.customDataGridView1.DataSource = m_serviceIsolation.GetSupplementeMessageInfo(m_lnqBillInfo.BillNo); } else { lbBillStatus.Text = CE_CommonBillStatus.新建单据.ToString(); m_lnqBillInfo = new Business_QualityManagement_Isolation(); txtBillNo.Text = this.FlowInfo_BillNo; m_lnqBillInfo.BillNo = txtBillNo.Text; } }
/// <summary> /// 保存业务信息 /// </summary> /// <param name="billInfo">业务总单信息</param> /// <param name="detailInfo">业务明细信息</param> public void SaveInfo(Business_QualityManagement_Isolation billInfo) { DepotManagementDataContext ctx = CommentParameter.DepotDataContext; ctx.Connection.Open(); ctx.Transaction = ctx.Connection.BeginTransaction(); try { var varData = from a in ctx.Business_QualityManagement_Isolation where a.BillNo == billInfo.BillNo select a; if (varData.Count() == 1) { Flow_FlowInfo info = _serviceFlow.GetNowFlowInfo(_serviceFlow.GetBusinessTypeID(CE_BillTypeEnum.合格品隔离处置单, null), billInfo.BillNo); Business_QualityManagement_Isolation lnqBill = varData.Single(); switch (info.FlowID) { case 57: if (lnqBill.GoodsID != billInfo.GoodsID || lnqBill.BatchNo != billInfo.BatchNo || lnqBill.StorageID != billInfo.StorageID || lnqBill.Provider != billInfo.Provider) { if (IsRepeatIsolation(ctx, billInfo.GoodsID, billInfo.BatchNo, billInfo.StorageID)) { throw new Exception("批次号【" + billInfo.BatchNo + "】已隔离,不能重复隔离"); } } lnqBill.BatchNo = billInfo.BatchNo; lnqBill.BillNo = billInfo.BillNo; lnqBill.GoodsCount = billInfo.GoodsCount; lnqBill.GoodsID = billInfo.GoodsID; lnqBill.Provider = billInfo.Provider; lnqBill.StorageID = billInfo.StorageID; lnqBill.IsolationReason = billInfo.IsolationReason; break; case 58: lnqBill.ProcessMethodRequire = billInfo.ProcessMethodRequire; lnqBill.ReturnProcess = billInfo.ReturnProcess; lnqBill.WorkHours = billInfo.WorkHours; lnqBill.PH_DisqualifiendCount = billInfo.PH_DisqualifiendCount; lnqBill.PH_QualifiedCount = billInfo.PH_QualifiedCount; break; case 59: lnqBill.QC_DisqualifiedCount = billInfo.QC_DisqualifiedCount; lnqBill.QC_QualifiedCount = billInfo.QC_QualifiedCount; lnqBill.QC_ConcessionCount = billInfo.QC_ConcessionCount; lnqBill.QC_ScraptCount = billInfo.QC_ScraptCount; lnqBill.ReportFile = billInfo.ReportFile; break; default: break; } } else if (varData.Count() == 0) { if (IsRepeatIsolation(ctx, billInfo.GoodsID, billInfo.BatchNo, billInfo.StorageID)) { throw new Exception("批次号【" + billInfo.BatchNo + "】已隔离,不能重复隔离"); } ctx.Business_QualityManagement_Isolation.InsertOnSubmit(billInfo); } else { throw new Exception("单据数据不唯一"); } ctx.SubmitChanges(); ctx.Transaction.Commit(); } catch (Exception ex) { ctx.Transaction.Rollback(); throw new Exception(ex.Message); } }
/// <summary> /// 有检测废的物品直接生成领料单 /// </summary> /// <param name="ctx">数据上下文</param> /// <param name="billInfo">单据信息</param> void InsertIntoMaterialRequisition(DepotManagementDataContext ctx, Business_QualityManagement_Isolation billInfo) { string error = null; string billNo = null; ServerModule.IMaterialRequisitionServer serverMaterialBill = ServerModule.ServerModuleFactory.GetServerModule <ServerModule.IMaterialRequisitionServer>(); try { billNo = _assignBill.AssignNewNo(serverMaterialBill, CE_BillTypeEnum.领料单.ToString()); var varData = from a in ctx.S_MaterialRequisition where a.Bill_ID == billNo select a; S_MaterialRequisition lnqMaterial = null; List <string> listPersonnel = UniversalFunction.GetStorageOrStationPrincipal(billInfo.StorageID); if (listPersonnel.Contains("0008")) { listPersonnel.Remove("0008"); } if (listPersonnel.Contains("0417")) { listPersonnel.Remove("0417"); } if (varData.Count() != 0) { error = string.Format("自动生成的报废物品领料单单号 {0} 已被占用,请尝试重新进行此操作" + ",再三出现无法生成可用的单号时与管理员联系", billNo); throw new Exception(error); } else { lnqMaterial = new S_MaterialRequisition(); lnqMaterial.Bill_ID = billNo; lnqMaterial.Bill_Time = ServerModule.ServerTime.Time; lnqMaterial.AssociatedBillNo = billInfo.BillNo; lnqMaterial.AssociatedBillType = "不合格品隔离处置单"; lnqMaterial.BillStatus = "已出库"; lnqMaterial.Department = "ZK03"; lnqMaterial.DepartmentDirector = ""; lnqMaterial.DepotManager = UniversalFunction.GetPersonnelInfo(listPersonnel[0]).姓名; lnqMaterial.FetchCount = 0; lnqMaterial.FetchType = "零星领料"; lnqMaterial.FillInPersonnel = UniversalFunction.GetPersonnelInfo(BasicInfo.LoginID).姓名; lnqMaterial.FillInPersonnelCode = BasicInfo.LoginID; lnqMaterial.ProductType = ""; lnqMaterial.PurposeCode = UniversalFunction.GetPurpose(CE_PickingPurposeProperty.破坏性检测).Code; lnqMaterial.Remark = "因入库零件进行了破坏性检测,由系统自动生成的破坏件领料单,对应单据号:" + billInfo.BillNo; lnqMaterial.StorageID = billInfo.StorageID; lnqMaterial.OutDepotDate = ServerTime.Time; if (!serverMaterialBill.AutoCreateBill(ctx, lnqMaterial, out error)) { throw new Exception(error); } S_MaterialRequisitionGoods lnqMaterialGoods = new S_MaterialRequisitionGoods(); lnqMaterialGoods.Bill_ID = billNo; lnqMaterialGoods.BasicCount = 0; lnqMaterialGoods.BatchNo = billInfo.BatchNo; lnqMaterialGoods.GoodsID = billInfo.GoodsID; lnqMaterialGoods.ProviderCode = billInfo.Provider; lnqMaterialGoods.RealCount = Convert.ToDecimal(billInfo.QC_ScraptCount); lnqMaterialGoods.Remark = ""; lnqMaterialGoods.RequestCount = Convert.ToDecimal(billInfo.QC_ScraptCount); lnqMaterialGoods.ShowPosition = 1; ServerModule.IMaterialRequisitionGoodsServer serverMaterialGoods = ServerModule.ServerModuleFactory.GetServerModule <ServerModule.IMaterialRequisitionGoodsServer>(); if (!serverMaterialGoods.AutoCreateGoods(ctx, lnqMaterialGoods, out error)) { throw new Exception(error); } ctx.SubmitChanges(); if (!serverMaterialBill.FinishBill(ctx, lnqMaterial.Bill_ID, "", out error)) { throw new Exception(error); } ctx.SubmitChanges(); } } catch (Exception ex) { serverMaterialBill.DeleteBill(billNo, out error); throw new Exception(ex.Message); } }
/// <summary> /// 结束业务 /// </summary> /// <param name="billNo">业务编号</param> public void FinishBill(string billNo) { IFlowServer serviceFlow = FlowControlService.ServerModuleFactory.GetServerModule <IFlowServer>(); Flow_FlowInfo flowInfo = _serviceFlow.GetNowFlowInfo(_serviceFlow.GetBusinessTypeID(CE_BillTypeEnum.合格品隔离处置单, null), billNo); if (flowInfo == null) { throw new Exception("单据状态为空,请重新确认"); } DepotManagementDataContext ctx = CommentParameter.DepotDataContext; ctx.Connection.Open(); ctx.Transaction = ctx.Connection.BeginTransaction(); try { Business_QualityManagement_Isolation billInfo = GetSingleBillInfo(billNo); if (billInfo == null || billInfo.BillNo.Length == 0) { throw new Exception("此单据不存在"); } switch (flowInfo.FlowID) { case 57: UpdateStockGoodsStatus(ctx, billInfo, (int)CE_StockGoodsStatus.隔离); break; case 59: if (billInfo.QC_ScraptCount != null && billInfo.QC_ScraptCount > 0) { InsertIntoMaterialRequisition(ctx, billInfo); } if ((decimal)billInfo.QC_QualifiedCount == billInfo.GoodsCount) { UpdateStockGoodsStatus(ctx, billInfo, (int)CE_StockGoodsStatus.正常); } break; case 60: QueryCondition_Store stockQuery = new QueryCondition_Store(); stockQuery.BatchNo = billInfo.BatchNo; stockQuery.GoodsID = billInfo.GoodsID; stockQuery.StorageID = billInfo.StorageID; stockQuery.Provider = billInfo.Provider; S_Stock stockInfo = UniversalFunction.GetStockInfo(ctx, stockQuery); if (stockInfo == null) { throw new Exception("获取库存信息失败"); } if (billInfo.QC_ConcessionCount == null || billInfo.QC_QualifiedCount == null) { if (stockInfo.ExistCount != billInfo.PH_QualifiedCount) { throw new Exception("此物品的当前库存为【" + stockInfo.ExistCount + "】不等于【处理人】的【合格数】," + "请根据处理方式要求采购员开【领料单】或者【采购退货单】减库存"); } } else { if (stockInfo.ExistCount != billInfo.QC_ConcessionCount + billInfo.QC_QualifiedCount) { throw new Exception("此物品的当前库存为【" + stockInfo.ExistCount + "】不等于【QC】的【让步数】+【合格数】," + "请根据处理方式要求采购员开【领料单】或者【采购退货单】减库存"); } } UpdateStockGoodsStatus(ctx, billInfo, (int)CE_StockGoodsStatus.正常); break; default: break; } ctx.SubmitChanges(); ctx.Transaction.Commit(); } catch (Exception ex) { ctx.Transaction.Rollback(); throw new Exception(ex.Message); } }