Ejemplo n.º 1
0
        //编辑
        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();
        }
Ejemplo n.º 2
0
        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;
        }
Ejemplo n.º 3
0
        //计算物料需求
        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;
            }
        }
Ejemplo n.º 4
0
        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("请选择客户订单!");
            }
        }