private void 修改单据ToolStripMenuItem_Click(object sender, EventArgs e) { HomemadeBillStatus status = (HomemadeBillStatus)Enum.Parse(typeof(HomemadeBillStatus), dataGridView1.SelectedRows[0].Cells["单据状态"].Value.ToString()); if (status != HomemadeBillStatus.回退_编制单据有误) { MessageDialog.ShowPromptMessage("当前状态不允许修改单据"); return; } if (!CheckDataItem()) { return; } S_HomemadePartBill bill = new S_HomemadePartBill(); bill.Bill_ID = txtBill_ID.Text; bill.Bill_Time = ServerModule.ServerTime.Time; // 报检日期 bill.BillStatus = HomemadeBillStatus.等待质检.ToString(); bill.DeclarePersonnelCode = BasicInfo.LoginID; // 自制件员编码 bill.DeclarePersonnel = BasicInfo.LoginName; // 自制件员签名 bill.DeclareCount = Convert.ToInt32(numDeclareCount.Value); // 自制件数 bill.Provider = txtProvider.Tag.ToString(); // 供应商编码 bill.ProviderBatchNo = txtProviderBatchNo.Text; // 供应商批次 bill.GoodsID = (int)txtCode.Tag; bill.Remark = txtRemark.Text; bill.BatchNo = txtBatchNo.Text; bill.StorageID = UniversalFunction.GetStorageID(cmbStorage.Text); if (!m_billServer.UpdateBill(bill, out m_findBill, out m_err)) { MessageDialog.ShowErrorMessage(m_err); return; } StringBuilder sb = new StringBuilder(); sb.AppendFormat("物品【{0}】,批次号【{1}】 ※※※ 等待【检验员】处理", txtName.Text, txtBatchNo.Text); PassFlowMessage(sb.ToString(), CE_RoleEnum.自制件检验组长); RefreshDataGridView(m_findBill); PositioningRecord(bill.Bill_ID); MessageDialog.ShowPromptMessage("成功提交,等待重新质检!"); }
/// <summary> /// 报表(包含金额) /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void 表单打印ToolStripMenuItem_Click(object sender, EventArgs e) { if (dataGridView1.SelectedRows.Count == 0) { MessageDialog.ShowPromptMessage("请选择一条已入库记录后再行此操作"); return; } HomemadeBillStatus status = (HomemadeBillStatus)Enum.Parse(typeof(HomemadeBillStatus), dataGridView1.SelectedRows[0].Cells["单据状态"].Value.ToString()); if (status != HomemadeBillStatus.已入库) { MessageDialog.ShowPromptMessage("当前单据没有入库不允许进行打印"); return; } 报表_自制件入库单 report = new 报表_自制件入库单(dataGridView1.CurrentRow.Cells[0].Value.ToString(), labelTitle.Text); PrintReportBill print = new PrintReportBill(21.8, 9.31, report); print.DirectPrintReport(); }
/// <summary> /// 逐级回退单据 /// </summary> /// <param name="billID">单据号</param> /// <param name="rebackReason">回退原因</param> /// <param name="returnBill">返回的单据查询结果集</param> /// <param name="error">出错时返回错误信息,无错时返回null</param> /// <returns>操作是否成功的标志</returns> public bool RebackBill(string billID, string rebackReason, out IQueryResult returnBill, out string error) { returnBill = null; error = null; DepotManagementDataContext dataContxt = CommentParameter.DepotDataContext; var result = from r in dataContxt.S_HomemadePartBill where r.Bill_ID == billID select r; if (result.Count() == 0) { error = string.Format("找不到编号为 [{0}] 的自制件入库单号", billID); return(false); } S_HomemadePartBill bill = result.Single(); HomemadeBillStatus status = (HomemadeBillStatus)Enum.Parse(typeof(HomemadeBillStatus), bill.BillStatus); bool needReback = false; if (status == HomemadeBillStatus.等待质检 || status == HomemadeBillStatus.回退_质检信息有误) { needReback = true; bill.BillStatus = HomemadeBillStatus.回退_编制单据有误.ToString(); bill.CheckoutJoinGoods_Time = null; bill.CheckoutReport_ID = ""; bill.EligibleCount = 0; bill.ConcessionCount = 0; bill.ReimbursementCount = 0; bill.QualityInfo = ""; bill.Checker = ""; bill.QualityInputer = ""; } else if (status == HomemadeBillStatus.等待入库) { needReback = true; bill.BillStatus = HomemadeBillStatus.回退_质检信息有误.ToString(); bill.DepotManagerAffirmCount = 0; bill.InDepotCount = 0; bill.ShelfArea = ""; bill.ColumnNumber = ""; bill.LayerNumber = ""; } if (needReback) { try { bill.RebackReason = rebackReason; dataContxt.SubmitChanges(); return(GetAllBill(out returnBill, out error)); } catch (Exception exce) { error = exce.Message; return(false); } } else { return(false); } }
private void 提交质检信息ToolStripMenuItem_Click(object sender, EventArgs e) { if (!CheckSelectedRow()) { return; } HomemadeBillStatus status = (HomemadeBillStatus)Enum.Parse(typeof(HomemadeBillStatus), dataGridView1.SelectedRows[0].Cells["单据状态"].Value.ToString()); if (status != HomemadeBillStatus.等待质检 && status != HomemadeBillStatus.回退_质检信息有误) { MessageDialog.ShowPromptMessage("请选择等待质检的记录后再进行此操作"); return; } dateTime_CheckTime.Value = ServerTime.Time; if (dateTime_CheckTime.Value < dateTime_BillTime.Value) { dateTime_CheckTime.Focus(); MessageDialog.ShowPromptMessage("检验入库时间必须 >= 自制件时间"); return; } if (txtQualityInfo.Text == "") { txtQualityInfo.Focus(); MessageDialog.ShowPromptMessage("质量信息不能为空"); return; } if (txtCheckoutReportID.Text == "") { txtCheckoutReportID.Focus(); MessageDialog.ShowPromptMessage("检验报告编号不能为空"); return; } if (numEligibleCount.Value + numConcessionCount.Value + numReimbursementCount.Value + numDeclareWastrelCount.Value != numDeclareCount.Value) { numEligibleCount.Focus(); MessageDialog.ShowPromptMessage("合格数 + 让步数 + 退货数 + 报废数 之和不等于自制件数量"); return; } if (txtChecker.Text == "") { txtChecker.Focus(); MessageDialog.ShowPromptMessage("检验人员不能为空"); return; } S_HomemadePartBill qualityInfo = new S_HomemadePartBill(); qualityInfo.Checker = txtChecker.Text; qualityInfo.QualityInputer = BasicInfo.LoginName; qualityInfo.CheckoutJoinGoods_Time = dateTime_CheckTime.Value; qualityInfo.CheckoutReport_ID = txtCheckoutReportID.Text; qualityInfo.QualityInfo = txtQualityInfo.Text; qualityInfo.EligibleCount = Convert.ToInt32(numEligibleCount.Value); qualityInfo.ConcessionCount = Convert.ToInt32(numConcessionCount.Value); qualityInfo.ReimbursementCount = Convert.ToInt32(numReimbursementCount.Value); qualityInfo.DeclareWastrelCount = Convert.ToInt32(numDeclareWastrelCount.Value); qualityInfo.BillStatus = HomemadeBillStatus.等待入库.ToString(); string billNo = txtBill_ID.Text; if (!m_billServer.SubmitQualityInfo(billNo, qualityInfo, out m_findBill, out m_err)) { MessageDialog.ShowErrorMessage(m_err); return; } MessageDialog.ShowPromptMessage("成功提交,等待仓管将零件入库!"); StringBuilder sb = new StringBuilder(); sb.AppendFormat("物品【{0}】,批次号【{1}】 ※※※ 等待【仓管员】处理", txtName.Text, txtBatchNo.Text); PassFlowMessage(sb.ToString(), m_msgPromulgator.GetRoleStringForStorage(cmbStorage.Text)); RefreshDataGridView(m_findBill); PositioningRecord(billNo); }
private void 回退ToolStripMenuItem_Click(object sender, EventArgs e) { HomemadeBillStatus status = (HomemadeBillStatus)Enum.Parse(typeof(HomemadeBillStatus), dataGridView1.SelectedRows[0].Cells["单据状态"].Value.ToString()); if (dataGridView1.SelectedRows.Count == 0 || status == HomemadeBillStatus.已入库) { MessageDialog.ShowPromptMessage("请选择没有入库的记录后再进行此操作!"); return; } else if (dataGridView1.SelectedRows.Count > 1) { MessageDialog.ShowPromptMessage("系统不支持多条记录同时回退,请逐条操作!"); return; } string billID = dataGridView1.SelectedRows[0].Cells["入库单号"].Value.ToString(); bool validInfo = false; if (status == HomemadeBillStatus.等待质检 || status == HomemadeBillStatus.回退_质检信息有误) { if (!BasicInfo.ListRoles.Contains(CE_RoleEnum.自制件检验组长.ToString())) { MessageDialog.ShowPromptMessage("您无权回退单据的当前步骤"); return; } validInfo = true; } else if (status == HomemadeBillStatus.等待入库) { if (!BasicInfo.ListRoles.Contains( m_msgPromulgator.GetRoleStringForStorage(cmbStorage.Text).ToString())) { MessageDialog.ShowPromptMessage("您无权回退单据的当前步骤"); return; } validInfo = true; } else if (status.ToString().Contains("回退")) { MessageDialog.ShowPromptMessage("当前记录已经处于回退状态,不能重复回退"); return; } if (validInfo) { string reason = InputBox.ShowDialog("请输入回退原因", "原因:", ""); if (reason == null || reason == "") { MessageDialog.ShowPromptMessage("请输入回退原因"); return; } if (!m_billServer.RebackBill(billID, reason, out m_findBill, out m_err)) { MessageDialog.ShowErrorMessage(m_err); return; } RebackFlowMessage(reason); RefreshDataGridView(m_findBill); MessageDialog.ShowPromptMessage("成功回退!"); } }