//编辑 public void Edit(string MaterialMRPPlanGuid) { txtMaterialMRPPlanGuid.Text = MaterialMRPPlanGuid; MaterialMRPPlanManage MaterialMRPPlanManage = new MaterialMRPPlanManage(); DataTable dtl = MaterialMRPPlanManage.GetMRPPlanByBomPlanGuid(MaterialMRPPlanGuid); //加载主数据 if (dtl.Rows.Count > 0) { txtMRPPlanID.Text = dtl.Rows[0]["MaterialMRPPlanID"].ToString(); BeginDate.Text = DateTime.Parse(dtl.Rows[0]["MaterialMRPPlanDate"].ToString()).ToString("yyyy-MM-dd"); txtRemark.Text = dtl.Rows[0]["Remark"].ToString(); } //加载明细数据 DataTable dtl2 = new DataTable(); dtl2 = MaterialMRPPlanManage.GetMRPPlanDetailByBomPlanGuid(MaterialMRPPlanGuid); gridControl1.DataSource = dtl2; //加载计算物料数据 DataTable dtl3 = new DataTable(); dtl3 = MaterialMRPPlanManage.GetMRPPlanCalcSumByBomPlanGuid(MaterialMRPPlanGuid); gridControl2.DataSource = dtl3; SetRight(); this.ShowDialog(); }
private void BindMaterialData(string guid) { //加载物料明细列表数据 MaterialMRPPlanManage MaterialMRPPlanManage = new MaterialMRPPlanManage(); DataTable dtl3 = new DataTable(); if (txtSupplier.Text.Trim() != "") { dtl3 = MaterialMRPPlanManage.GetMRPPlanCalcSumByBomPlanGuid(guid, txtSupplier.Tag.ToString()); } else { dtl3 = MaterialMRPPlanManage.GetMRPPlanCalcSumByBomPlanGuid(guid); } gridControl3.DataSource = dtl3; //给物料编号列排序 gridMaterialIDDetail.SortOrder = ColumnSortOrder.Ascending; }
//计算物料需求 private void btnJS_Click(object sender, EventArgs e) { try { this.Cursor = Cursors.WaitCursor; txtRemark.Focus(); gridView1.UpdateCurrentRow(); MaterialMRPPlanManage MaterialMRPPlanManage = new MaterialMRPPlanManage(); MaterialBOMManage MaterialBOMManage = new MaterialBOMManage(); bool IsExistBom = false; bool IsExistNoBom = false; //string strMaterialID = ""; //string strMaterialName = ""; //检查此客户订单产品是否已经BOM初始化子件情况了 for (int i = 0; i < gridView1.RowCount; i++) { DataRowView dr = (DataRowView)(gridView1.GetRow(i)); if (dr != null) { if (MaterialBOMManage.IsExistBOMByMaterialGuid(dr["MaterialGuID"].ToString()) == false) { IsExistNoBom = true; //strMaterialID = dr["MaterialID"].ToString(); //strMaterialName = dr["MaterialName"].ToString(); } else { IsExistBom = true; } if (IsExistBom == true && IsExistNoBom == true) { this.Cursor = Cursors.Arrow; this.ShowMessage("有BOM与无BOM的物料不能放在一起进行物料需求计算,请分开后再计算物料需求!"); return; } } } if (IsExistBom == true) { //全是BOM的料件计算 //删除临时表中待计算的料件 MaterialMRPPlanManage.DeleteSelectMaterial(txtMaterialMRPPlanGuid.Text); //先将选择的物料插入到临时表中,参与计算 for (int i = 0; i < gridView1.RowCount; i++) { DataRowView dr = (DataRowView)(gridView1.GetRow(i)); if (dr != null) { string strMaterialMRPPlanGuID = txtMaterialMRPPlanGuid.Text; string strMaterialGuid = dr["MaterialGuID"].ToString(); decimal decMaterialSum = 0; if (dr["YCMaterialSum"].ToString().Trim() != "") { decMaterialSum = decimal.Parse(dr["YCMaterialSum"].ToString()); } MaterialMRPPlanManage.InsertIntoSelectMaterial(strMaterialMRPPlanGuID, strMaterialGuid, decMaterialSum); } } //第一步:将产品折成最后的子件,子件数量 MaterialMRPPlanManage.CalcMaterialBomPlan2(txtMaterialMRPPlanGuid.Text); //将半成品与成品折成料件后,得出最后需要采购的料件,最后再反算出库存 DataTable dtl = MaterialMRPPlanManage.sp_Calc(txtMaterialMRPPlanGuid.Text); gridControl2.DataSource = dtl; tabControl1.SelectedIndex = 1; } else { //全是非BOM的料件计算 //删除临时表中待计算的料件 MaterialMRPPlanManage.DeleteSelectMaterial(txtMaterialMRPPlanGuid.Text); //先将选择的物料插入到临时表中,参与计算 for (int i = 0; i < gridView1.RowCount; i++) { DataRowView dr = (DataRowView)(gridView1.GetRow(i)); if (dr != null) { string strMaterialMRPPlanGuID = txtMaterialMRPPlanGuid.Text; string strMaterialGuid = dr["MaterialGuID"].ToString(); decimal decMaterialSum = 0; if (dr["YCMaterialSum"].ToString().Trim() != "") { decMaterialSum = decimal.Parse(dr["YCMaterialSum"].ToString()); } MaterialMRPPlanManage.InsertIntoSelectMaterial(strMaterialMRPPlanGuID, strMaterialGuid, decMaterialSum); } } //将半成品与成品折成料件后,得出最后需要采购的料件,最后再反算出库存 DataTable dtl = MaterialMRPPlanManage.sp_Calc_NoBOM(txtMaterialMRPPlanGuid.Text); gridControl2.DataSource = dtl; tabControl1.SelectedIndex = 1; //按物料编号排序 gridMaterialIDDetail.SortOrder = ColumnSortOrder.Ascending; } this.Cursor = Cursors.Arrow; } catch (Exception err) { this.ShowMessage("计算出错,信息:" + err.Message); this.Cursor = Cursors.Arrow; } }
private void SaveData() { if (BeginDate.Text.Trim() == "") { this.ShowMessage("请输入计算日期!"); return; } txtRemark.Focus(); gridView2.UpdateCurrentRow(); MaterialMRPPlanManage MaterialMRPPlanManage = new MaterialMRPPlanManage(); if (gridView1.RowCount > 0) { //主表数据 MaterialMRPPlan MaterialMRPPlan = new MaterialMRPPlan(); MaterialMRPPlan.MaterialMRPPlanGuid = txtMaterialMRPPlanGuid.Text; MaterialMRPPlan.MaterialMRPPlanID = txtMRPPlanID.Text; MaterialMRPPlan.Remark = txtRemark.Text; MaterialMRPPlan.MaterialMRPPlanDate = DateTime.Parse(BeginDate.Text); MaterialMRPPlan.CreateGuid = SysParams.UserID; MaterialMRPPlan.CreateDate = DateTime.Now; //明细表数据 MaterialMRPPlanDetail MaterialMRPPlanDetail = new MaterialMRPPlanDetail(); List <MaterialMRPPlanDetail> list = new List <MaterialMRPPlanDetail>(); for (int i = 0; i < gridView1.RowCount; i++) { DataRowView dr = (DataRowView)(gridView1.GetRow(i)); MaterialMRPPlanDetail = new MaterialMRPPlanDetail(); MaterialMRPPlanDetail.NoID = Guid.NewGuid().ToString(); MaterialMRPPlanDetail.ClientOrderid = dr["ClientOrderID"].ToString(); MaterialMRPPlanDetail.ClientOrderDetailGuid = dr["ClientOrderDetailGuid"].ToString(); MaterialMRPPlanDetail.MaterialMRPPlanGuid = txtMaterialMRPPlanGuid.Text; MaterialMRPPlanDetail.MaterialGuid = dr["MaterialGuID"].ToString(); if (dr["MaterialSum"].ToString().Trim() != "") { MaterialMRPPlanDetail.MaterialSum = decimal.Parse(dr["MaterialSum"].ToString()); } else { MaterialMRPPlanDetail.MaterialSum = 0; } if (dr["YCMaterialSum"].ToString().Trim() != "") { MaterialMRPPlanDetail.YCMaterialSum = decimal.Parse(dr["YCMaterialSum"].ToString()); } else { MaterialMRPPlanDetail.YCMaterialSum = 0; } list.Add(MaterialMRPPlanDetail); } //物料需求数据-明细 MaterialMRPPlanCalcSumDetail MaterialMRPPlanCalcSumDetail = new MaterialMRPPlanCalcSumDetail(); List <MaterialMRPPlanCalcSumDetail> list2 = new List <MaterialMRPPlanCalcSumDetail>(); for (int i = 0; i < gridView2.RowCount; i++) { DataRowView dr = (DataRowView)(gridView2.GetRow(i)); MaterialMRPPlanCalcSumDetail = new MaterialMRPPlanCalcSumDetail(); MaterialMRPPlanCalcSumDetail.NoID = Guid.NewGuid().ToString(); MaterialMRPPlanCalcSumDetail.MaterialMRPPlanGuid = txtMaterialMRPPlanGuid.Text; MaterialMRPPlanCalcSumDetail.MaterialGuid = dr["MaterialGuID"].ToString(); if (dr["RequirementSum"].ToString().Trim() != "") { MaterialMRPPlanCalcSumDetail.MaterialRequirementSum = decimal.Parse(dr["RequirementSum"].ToString()); } else { MaterialMRPPlanCalcSumDetail.MaterialRequirementSum = 0; } //-----注意:此处暂时没为0,等库存算出来了需要更新此处代码. MaterialMRPPlanCalcSumDetail.MaterialStockInSum = decimal.Parse(dr["OnlySum"].ToString()); MaterialMRPPlanCalcSumDetail.MaterialStockSum = decimal.Parse(dr["StorageSum"].ToString()); list2.Add(MaterialMRPPlanCalcSumDetail); } MaterialMRPPlanManage.SaveBill(MaterialMRPPlan, list, list2); frmBomMRP.frmbommrp.LoadData(); //写日志 SysLog.AddOperateLog(SysParams.UserName, "物料需求计划保存", "保存", SysParams.UserName + "用户保存了物料需求计划,物料需求计划唯一号:" + txtMaterialMRPPlanGuid.Text + ",物料需求计划单号:" + txtMRPPlanID.Text); this.ShowMessage("保存成功!"); } else { this.ShowMessage("请选择客户订单!"); } }