public int Status(BaseProductionPlanTable PlanTable)
        {
            int resultschedule         = 0;
            List <CommandInfo> listSql = new List <CommandInfo>();
            StringBuilder      strSql  = new StringBuilder();

            if (PlanTable.ACTUAL_END_TIME.ToString().Equals(""))
            {
                strSql.Append("update BLL_PRODUCTION_SCHEDULE set ");
                strSql.Append("STATUS_FLAG=@STATUS_FLAG");
                strSql.Append(" where SLIP_NUMBER=@SLIP_NUMBER");
                SqlParameter[] planparameters =
                {
                    new SqlParameter("@STATUS_FLAG", SqlDbType.Int,     9),
                    new SqlParameter("@SLIP_NUMBER", SqlDbType.VarChar, 50)
                };
                planparameters[0].Value = PlanTable.STATUS_FLAG;
                planparameters[1].Value = PlanTable.SLIP_NUMBER;
                listSql.Add(new CommandInfo(strSql.ToString(), planparameters));
            }
            else
            {
                strSql.Append("update BLL_PRODUCTION_SCHEDULE set ");
                strSql.Append("STATUS_FLAG=@STATUS_FLAG,");
                strSql.Append("ACTUAL_END_TIME=@ACTUAL_END_TIME");
                strSql.Append(" where SLIP_NUMBER=@SLIP_NUMBER");
                SqlParameter[] planparameters =
                {
                    new SqlParameter("@STATUS_FLAG",     SqlDbType.Int,       9),
                    new SqlParameter("@ACTUAL_END_TIME", SqlDbType.DateTime),
                    new SqlParameter("@SLIP_NUMBER",     SqlDbType.VarChar, 50)
                };
                planparameters[0].Value = PlanTable.STATUS_FLAG;
                planparameters[1].Value = PlanTable.ACTUAL_END_TIME;
                planparameters[2].Value = PlanTable.SLIP_NUMBER;
                listSql.Add(new CommandInfo(strSql.ToString(), planparameters));
            }


            //foreach (BaseProductionPlanLineTable lineModel in PlanTable.Items)
            //{
            //    strSql = new StringBuilder();
            //    strSql.Append("update BLL_PRODUCTION_SCHEDULE_LINE set ");
            //    strSql.Append("STATUS_FLAG=@STATUS_FLAG");
            //    strSql.Append(" where SLIP_NUMBER=@SLIP_NUMBER");
            //    strSql.Append(" AND LINE_NUMBER=@LINE_NUMBER");
            //    SqlParameter[] planlineparameters = {
            //        new SqlParameter("@STATUS_FLAG", SqlDbType.Int,9),
            //        new SqlParameter("@SLIP_NUMBER", SqlDbType.VarChar,50),
            //        new SqlParameter("@LINE_NUMBER", SqlDbType.Int,9)};
            //    planlineparameters[0].Value = lineModel.STATUS_FLAG;
            //    planlineparameters[1].Value = lineModel.SLIP_NUMBER;
            //    planlineparameters[2].Value = lineModel.LINE_NUMBER;
            //    listSql.Add(new CommandInfo(strSql.ToString(), planlineparameters));
            //}
            resultschedule = DbHelperSQL.ExecuteSqlTran(listSql);
            return(resultschedule);
        }
        public int LineStatus(BaseProductionPlanTable PlanTable)
        {
            int resultstatus           = 0;
            List <CommandInfo> listSql = new List <CommandInfo>();
            StringBuilder      strSql  = new StringBuilder();

            //strSql.Append("update BLL_PRODUCTION_SCHEDULE set ");
            //strSql.Append("STATUS_FLAG=@STATUS_FLAG");
            //strSql.Append(" where SLIP_NUMBER=@SLIP_NUMBER");
            //SqlParameter[] planparameters = {
            //        new SqlParameter("@STATUS_FLAG", SqlDbType.Int,9),
            //        new SqlParameter("@SLIP_NUMBER", SqlDbType.VarChar,50)};
            //planparameters[0].Value = PlanTable.STATUS_FLAG;
            //planparameters[1].Value = PlanTable.SLIP_NUMBER;
            //listSql.Add(new CommandInfo(strSql.ToString(), planparameters));

            foreach (BaseProductionPlanLineTable lineModel in PlanTable.Items)
            {
                strSql = new StringBuilder();
                strSql.Append("update BLL_PRODUCTION_SCHEDULE_LINE set ");
                strSql.Append("STATUS_FLAG=@STATUS_FLAG");
                strSql.Append(" where SLIP_NUMBER=@SLIP_NUMBER");
                // strSql.Append(" AND LINE_NUMBER=@LINE_NUMBER");
                SqlParameter[] planlineparameters =
                {
                    new SqlParameter("@STATUS_FLAG", SqlDbType.Int,     9),
                    new SqlParameter("@SLIP_NUMBER", SqlDbType.VarChar, 50)//,
                    //new SqlParameter("@LINE_NUMBER", SqlDbType.Int,9)
                };
                planlineparameters[0].Value = lineModel.STATUS_FLAG;
                planlineparameters[1].Value = lineModel.SLIP_NUMBER;
                // planlineparameters[2].Value = lineModel.LINE_NUMBER;
                listSql.Add(new CommandInfo(strSql.ToString(), planlineparameters));
            }
            resultstatus = DbHelperSQL.ExecuteSqlTran(listSql);
            return(resultstatus);
        }
        private void btnEndDrawing_Click(object sender, EventArgs e)
        {
            BaseProductionPlanLineTable planline  = new BaseProductionPlanLineTable();
            BaseProductionPlanTable     planTable = new BaseProductionPlanTable();
            BaseProductionScheduleProductionProcessTable bpsppmodel = null;
            int CHKchooseCount = 0;

            foreach (DataGridViewRow dr in dgvData.Rows)
            {
                if (Convert.ToBoolean(dr.Cells["CHK"].Value) == true)
                {
                    CHKchooseCount++;
                }
            }
            if (CHKchooseCount < 1)
            {
                MessageBox.Show("请选择数据!", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            string CHKSLIPNUMBER = "";

            for (int i = 0; i < dgvData.Rows.Count; i++)
            {
                bpsppmodel = new BaseProductionScheduleProductionProcessTable();
                if (Convert.ToBoolean(dgvData.Rows[i].Cells["CHK"].Value) == true)
                {
                    DataGridViewRow row = dgvData.Rows[i];
                    if (CHKSLIPNUMBER == "")
                    {
                        CHKSLIPNUMBER = row.Cells["PSDL_SLIP_NUMBER"].Value.ToString();
                    }
                    else if (CHKSLIPNUMBER != row.Cells["PSDL_SLIP_NUMBER"].Value.ToString())
                    {
                        MessageBox.Show("您选择的生产工单不相同,请重新选择!", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return;
                    }
                    if (row.Cells["PSDL_STATUS_FLAG"].Value.ToString() == CConvert.ToString(CConstant.STATUS))
                    {
                        if (row.Cells["PSDL_ACTUAL_END_TIME"].Value.ToString() != "")
                        {
                            bpsppmodel.ACTUAL_END_TIME = Convert.ToDateTime(row.Cells["PSDL_ACTUAL_END_TIME"].Value.ToString());
                        }
                        else
                        {
                            MessageBox.Show("您选择的生产工单图纸加工结束日期不能为空!", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            return;
                        }

                        bpsppmodel.STATUS_FLAG = 1;
                        bpsppmodel.SLIP_NUMBER = row.Cells["PSDL_SLIP_NUMBER"].Value.ToString();
                        bpsppmodel.LINE_NUMBER = Convert.ToInt32(row.Cells["PSDL_LINE_NUMBER"].Value.ToString());
                        //planTable.a
                        planline.AddProductionProcess(bpsppmodel);
                    }

                    else if (row.Cells["PSDL_STATUS_FLAG"].Value.ToString() == CConvert.ToString(CConstant.STATUS_START))
                    {
                        MessageBox.Show("您选择的生产工单图纸加工已结束!", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return;
                    }
                }
            }
            try
            {
                int result = bProductionDrawing.EndDrawing(planline);
                if (result < 1)
                {
                    MessageBox.Show("您选择的生产工单图纸加工结束失败,请检查数据。", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    MessageBox.Show("您选择的生产工单图纸加工结束成功。", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    Search();
                }
            }
            catch (Exception ex)
            { }
        }
Example #4
0
 public string Update(BaseProductionPlanTable model)
 {
     return(dal.Update(model));
 }
Example #5
0
 /// <summary>
 /// 增加一条数据
 /// </summary>
 public string Add(BaseProductionPlanTable model, BllOrderHeaderTable bOrderHeader)
 {
     return(dal.Add(model, bOrderHeader));
 }
        private void btnEnd_Click(object sender, EventArgs e)
        {
            BaseProductionPlanLineTable planline  = new BaseProductionPlanLineTable();
            BaseProductionPlanTable     PlanTable = new BaseProductionPlanTable();
            BaseProductionScheduleProductionProcessTable psppTable = new BaseProductionScheduleProductionProcessTable();
            BaseProductionTechnologyTable productionTechnology     = null;
            int CHKchooseCount = 0;

            foreach (DataGridViewRow dr in dgvData.Rows)
            {
                if (Convert.ToBoolean(dr.Cells["CHK"].Value) == true)
                {
                    CHKchooseCount++;
                }
            }
            if (CHKchooseCount < 1)
            {
                MessageBox.Show("请选择结束的数据!", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            string CHKSLIPNUMBER = "";

            for (int i = 0; i < dgvData.Rows.Count; i++)
            {
                productionTechnology = new BaseProductionTechnologyTable();
                if (Convert.ToBoolean(dgvData.Rows[i].Cells["CHK"].Value) == true)
                {
                    DataGridViewRow row = dgvData.Rows[i];
                    if (CHKSLIPNUMBER == "")
                    {
                        CHKSLIPNUMBER = row.Cells["SLIP_NUMBER"].Value.ToString();
                    }
                    else if (CHKSLIPNUMBER != row.Cells["SLIP_NUMBER"].Value.ToString())
                    {
                        MessageBox.Show("您选择的生产工单不相同,请重新选择!", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return;
                    }
                    if (row.Cells["PST_STATUS_FLAG"].Value.ToString() == CConvert.ToString(CConstant.STATUS))
                    {
                        if (row.Cells["END_DATE"].Value.ToString() != "")
                        {
                            productionTechnology.ACTUAL_END_TIME = CConvert.ToDateTime(row.Cells["END_DATE"].Value.ToString());
                        }
                        else
                        {
                            MessageBox.Show("您选择的生产工单技术结束日期不能为空!", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            return;
                        }

                        productionTechnology.STATUS_FLAG          = CConvert.ToInt32(CConstant.STATUS_START);
                        productionTechnology.SLIP_NUMBER          = row.Cells["SLIP_NUMBER"].Value.ToString();
                        productionTechnology.SCHEDULE_LINE_NUMBER = CConvert.ToInt32(row.Cells["PST_SCHEDULE_LINE_NUMBER"].Value.ToString());
                        productionTechnology.SCHEDULE_PRODUCTION_PROCESS_LINE_NUNBER = CConvert.ToInt32(row.Cells["PST_SCHEDULE_PRODUCTION_PROCESS_LINE_NUNBER"].Value.ToString());
                        productionTechnology.LINE_NUMBER = CConvert.ToInt32(row.Cells["PST_TECHNOLOGY_LINE_NUMBER"].Value.ToString());
                        psppTable.AddProductionTechnology(productionTechnology);
                    }

                    else if (row.Cells["PST_STATUS_FLAG"].Value.ToString() == CConvert.ToString(CConstant.STATUS_START))
                    {
                        MessageBox.Show("您选择的生产工单技术已结束!", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return;
                    }
                }
            }

            try
            {
                int result = bProductionPlanSearch.EndTechnology(psppTable);
                if (result < 1)
                {
                    MessageBox.Show("您选择的生产工单技术结束失败,请检查数据。", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    MessageBox.Show("您选择的生产工单技术结束成功。", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    txtSlipNumber.Text      = "";
                    cboStatus.SelectedIndex = 0;
                    Search();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("您选择的生产工单技术结束失败,请检查数据。", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
        public int StartProcessing(BaseProductionPlanTable PlanTable)
        {
            int result = 0;
            List <CommandInfo> listSql = new List <CommandInfo>();
            StringBuilder      strSql  = new StringBuilder();

            //strSql.Append("update BLL_PRODUCTION_SCHEDULE set ");
            //strSql.Append("STATUS_FLAG=@STATUS_FLAG");
            //strSql.Append(" where SLIP_NUMBER=@SLIP_NUMBER");
            //SqlParameter[] planparameters = {
            //        new SqlParameter("@STATUS_FLAG", SqlDbType.Int,9),
            //        new SqlParameter("@SLIP_NUMBER", SqlDbType.VarChar,50)};
            //planparameters[0].Value = PlanTable.STATUS_FLAG;
            //planparameters[1].Value = PlanTable.SLIP_NUMBER;
            //listSql.Add(new CommandInfo(strSql.ToString(), planparameters));

            foreach (BaseProductionScheduleProductionProcessTable lineModel in PlanTable.ItemsProductionProcess)
            {
                strSql = new StringBuilder();
                strSql.Append("update BLL_PRODUCTION_SCHEDULE_PRODUCTION_PROCESS set ");
                strSql.Append("ACTUAL_START_TIME=@ACTUAL_START_TIME,");
                strSql.Append("ACTUAL_END_TIME=@ACTUAL_END_TIME,");
                strSql.Append("STATUS_FLAG=@STATUS_FLAG,");
                strSql.Append("WEIGHT=@WEIGHT");
                strSql.Append(" where SLIP_NUMBER=@SLIP_NUMBER");
                strSql.Append(" AND SCHEDULE_LINE_NUNBER=@SCHEDULE_LINE_NUNBER");
                strSql.Append(" AND LINE_NUMBER=@LINE_NUMBER");
                SqlParameter[] parameters =
                {
                    new SqlParameter("@ACTUAL_START_TIME",    SqlDbType.DateTime),
                    new SqlParameter("@ACTUAL_END_TIME",      SqlDbType.DateTime),
                    new SqlParameter("@STATUS_FLAG",          SqlDbType.Int,        9),
                    new SqlParameter("@SLIP_NUMBER",          SqlDbType.VarChar,   50),
                    new SqlParameter("@SCHEDULE_LINE_NUNBER", SqlDbType.Int,        9),
                    new SqlParameter("@LINE_NUMBER",          SqlDbType.Int,        9),
                    new SqlParameter("@WEIGHT",               SqlDbType.VarChar, 50)
                };
                parameters[0].Value = lineModel.ACTUAL_START_TIME;
                parameters[1].Value = lineModel.ACTUAL_END_TIME;
                parameters[2].Value = lineModel.STATUS_FLAG;
                parameters[3].Value = lineModel.SLIP_NUMBER;
                parameters[4].Value = lineModel.SCHEDULE_LINE_NUNBER;
                parameters[5].Value = lineModel.LINE_NUMBER;
                parameters[6].Value = lineModel.WEIGHT;
                listSql.Add(new CommandInfo(strSql.ToString(), parameters));
            }
            //foreach (BaseProductionPlanLineTable lineModel in PlanTable.Items)
            //{
            //    strSql = new StringBuilder();
            //    strSql.Append("update BLL_PRODUCTION_SCHEDULE_LINE set ");
            //    strSql.Append("STATUS_FLAG=@STATUS_FLAG");
            //    strSql.Append(" where SLIP_NUMBER=@SLIP_NUMBER");
            //    strSql.Append(" AND LINE_NUMBER=@LINE_NUMBER");
            //    SqlParameter[] planlineparameters = {
            //        new SqlParameter("@STATUS_FLAG", SqlDbType.Int,9),
            //        new SqlParameter("@SLIP_NUMBER", SqlDbType.VarChar,50),
            //        new SqlParameter("@LINE_NUMBER", SqlDbType.Int,9)};
            //    planlineparameters[0].Value = lineModel.STATUS_FLAG;
            //    planlineparameters[1].Value = lineModel.SLIP_NUMBER;
            //    planlineparameters[2].Value = lineModel.LINE_NUMBER;
            //    listSql.Add(new CommandInfo(strSql.ToString(), planlineparameters));
            //}
            result = DbHelperSQL.ExecuteSqlTran(listSql);
            return(result);
        }
Example #8
0
 public int Status(BaseProductionPlanTable PlanTable)
 {
     return(dal.Status(PlanTable));
 }
Example #9
0
 public int StartProcessing(BaseProductionPlanTable PlanTable)
 {
     return(dal.StartProcessing(PlanTable));
 }
Example #10
0
        private void btnEnd_Click(object sender, EventArgs e)
        {
            BaseProductionPlanLineTable planline  = new BaseProductionPlanLineTable();
            BaseProductionPlanTable     PlanTable = new BaseProductionPlanTable();
            BaseProductionScheduleProductionProcessTable bpsppmodel = null;
            int CHKchooseCount = 0;

            foreach (DataGridViewRow dr in dgvData.Rows)
            {
                if (Convert.ToBoolean(dr.Cells["CHK"].Value) == true)
                {
                    CHKchooseCount++;
                }
            }
            if (CHKchooseCount < 1)
            {
                MessageBox.Show("请选择加工结束的数据!", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            string CHKSLIPNUMBER = "";

            for (int i = 0; i < dgvData.Rows.Count; i++)
            {
                bpsppmodel = new BaseProductionScheduleProductionProcessTable();
                if (Convert.ToBoolean(dgvData.Rows[i].Cells["CHK"].Value) == true)
                {
                    DataGridViewRow row = dgvData.Rows[i];
                    if (CHKSLIPNUMBER == "")
                    {
                        CHKSLIPNUMBER = row.Cells["SLIP_NUMBER"].Value.ToString();
                    }
                    else if (CHKSLIPNUMBER != row.Cells["SLIP_NUMBER"].Value.ToString())
                    {
                        MessageBox.Show("您选择的生产工单不相同,请重新选择!", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return;
                    }
                    if (row.Cells["PSPP_STATUS_FLAG"].Value.ToString() == CConvert.ToString(CConstant.STATUS_START))
                    {
                        bpsppmodel.ACTUAL_START_TIME = Convert.ToDateTime(row.Cells["PSPP_ACTUAL_START_TIME"].Value.ToString());
                        if (row.Cells["PSPP_ACTUAL_END_TIME"].Value.ToString() != "")
                        {
                            bpsppmodel.ACTUAL_END_TIME = Convert.ToDateTime(row.Cells["PSPP_ACTUAL_END_TIME"].Value.ToString());
                        }
                        else
                        {
                            MessageBox.Show("您选择的生产工单加工结束日期不能为空!", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            return;
                        }

                        if (DateTime.Compare(Convert.ToDateTime(bpsppmodel.ACTUAL_START_TIME), Convert.ToDateTime(bpsppmodel.ACTUAL_END_TIME)) > 0)
                        {
                            MessageBox.Show("您选择的生产工单加工开始日期不能大于加工结束日期!", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            return;
                        }
                        bpsppmodel.STATUS_FLAG          = 2;
                        bpsppmodel.SLIP_NUMBER          = row.Cells["SLIP_NUMBER"].Value.ToString();
                        bpsppmodel.SCHEDULE_LINE_NUNBER = Convert.ToInt32(row.Cells["SCHEDULE_LINE_NUNBER"].Value.ToString());
                        bpsppmodel.LINE_NUMBER          = Convert.ToInt32(row.Cells["PSPP_LINE_NUMBER"].Value.ToString());
                        if (row.Cells["WEIGHT"].Value != null)
                        {
                            bpsppmodel.WEIGHT = row.Cells["WEIGHT"].Value.ToString();
                        }
                        PlanTable.AddItemProductionProcess(bpsppmodel);
                    }
                    else if (row.Cells["PSPP_STATUS_FLAG"].Value.ToString() == CConvert.ToString(CConstant.STATUS))
                    {
                        MessageBox.Show("您选择的生产工单加工未开始!", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return;
                    }
                    else if (row.Cells["PSPP_STATUS_FLAG"].Value.ToString() == CConvert.ToString(CConstant.STATUS_END))
                    {
                        MessageBox.Show("您选择的生产工单加工已结束!", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return;
                    }
                }
            }

            try
            {
                int result = bProductionPlanSearch.StartProcessing(PlanTable);
                if (result < 1)
                {
                    MessageBox.Show("您选择的生产工单加工结束失败,请检查数据。", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    foreach (BaseProductionScheduleProductionProcessTable bpspptable in PlanTable.ItemsProductionProcess)
                    {//+ " AND SCHEDULE_LINE_NUNBER=" + bpspptable.SCHEDULE_LINE_NUNBER
                        string  strWhere  = "SLIP_NUMBER=" + bpspptable.SLIP_NUMBER;
                        DataSet ds        = bProductionPlanSearch.GetProductionPlan(strWhere);
                        int     status    = 0;
                        int     endstatus = 0;
                        int     count     = ds.Tables[0].Rows.Count;
                        foreach (DataRow dt in ds.Tables[0].Rows)
                        {
                            if (Convert.ToInt32(dt["PSPP_STATUS_FLAG"]) == CConvert.ToInt32(CConstant.STATUS))
                            {
                                status++;
                            }
                            else if (Convert.ToInt32(dt["PSPP_STATUS_FLAG"]) == CConvert.ToInt32(CConstant.STATUS_END))
                            {
                                endstatus++;
                            }
                        }
                        if (status == count)
                        {
                        }
                        else if (endstatus == count)
                        {
                            planline             = new BaseProductionPlanLineTable();
                            planline.SLIP_NUMBER = bpspptable.SLIP_NUMBER;
                            planline.LINE_NUMBER = Convert.ToInt32(bpspptable.SCHEDULE_LINE_NUNBER);
                            planline.STATUS_FLAG = CConvert.ToInt32(CConstant.STATUS_END);
                            PlanTable.AddItem(planline);
                        }
                        else
                        {
                            planline             = new BaseProductionPlanLineTable();
                            planline.SLIP_NUMBER = bpspptable.SLIP_NUMBER;
                            planline.LINE_NUMBER = Convert.ToInt32(bpspptable.SCHEDULE_LINE_NUNBER);
                            planline.STATUS_FLAG = CConvert.ToInt32(CConstant.STATUS_START);
                            PlanTable.AddItem(planline);
                        }
                    }

                    try
                    {
                        int resultstatus = bProductionPlanSearch.LineStatus(PlanTable);
                    }
                    catch (Exception ex)
                    {
                    }
                    foreach (BaseProductionScheduleProductionProcessTable bpspptable in PlanTable.ItemsProductionProcess)
                    {
                        //更改status
                        string  strWhere1         = "SLIP_NUMBER=" + bpspptable.SLIP_NUMBER;
                        DataSet scheduleds        = bProductionPlanSearch.GetProductionPlan(strWhere1);
                        int     schedulestatus    = 0;
                        int     scheduleendstatus = 0;
                        int     schedulecount     = scheduleds.Tables[0].Rows.Count;
                        foreach (DataRow dt in scheduleds.Tables[0].Rows)
                        {
                            if (Convert.ToInt32(dt["PSL_STATUS_FLAG"]) == CConvert.ToInt32(CConstant.STATUS))
                            {
                                schedulestatus++;
                            }
                            else if (Convert.ToInt32(dt["PSL_STATUS_FLAG"]) == CConvert.ToInt32(CConstant.STATUS_END))
                            {
                                scheduleendstatus++;
                            }
                        }
                        if (schedulestatus == schedulecount)
                        {
                        }
                        else if (scheduleendstatus == schedulecount)
                        {
                            PlanTable.SLIP_NUMBER = bpspptable.SLIP_NUMBER;
                            PlanTable.STATUS_FLAG = CConvert.ToInt32(CConstant.STATUS_END);

                            PlanTable.ACTUAL_END_TIME = CConvert.ToDateTime(scheduleds.Tables[0].Compute("Max(PSPP_ACTUAL_END_TIME)", "true"));
                        }
                        else
                        {
                            PlanTable.SLIP_NUMBER = bpspptable.SLIP_NUMBER;
                            PlanTable.STATUS_FLAG = CConvert.ToInt32(CConstant.STATUS_START);
                        }
                    }
                    try
                    {
                        int resultschedule = bProductionPlanSearch.Status(PlanTable);
                    }
                    catch (Exception ex)
                    {
                    }

                    MessageBox.Show("您选择的生产工单加工结束成功。", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    txtSlipNumber.Text      = "";
                    cboStatus.SelectedIndex = 0;
                    Search();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("您选择的生产工单加工结束失败,请检查数据。", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
Example #11
0
        public string Update(BaseProductionPlanTable headerModel)
        {
            int i      = 0;
            int result = 0;

            while (i < 10)
            {
                try
                {
                    List <CommandInfo> listSql = new List <CommandInfo>();
                    StringBuilder      strSql  = new StringBuilder();
                    strSql.Append(" UPDATE BLL_PRODUCTION_SCHEDULE SET");
                    strSql.Append(" PLAN_END_DATE=@PLAN_END_DATE");
                    strSql.Append(" WHERE SLIP_NUMBER=@SLIP_NUMBER");
                    SqlParameter[] parameters =
                    {
                        new SqlParameter("@SLIP_NUMBER",   SqlDbType.VarChar, 50),
                        new SqlParameter("@PLAN_END_DATE", SqlDbType.DateTime)
                    };
                    parameters[0].Value = headerModel.SLIP_NUMBER;
                    parameters[1].Value = headerModel.PLAN_END_DATE;
                    listSql.Add(new CommandInfo(strSql.ToString(), parameters));

                    //明细插入
                    foreach (BaseProductionPlanLineTable lineModel in headerModel.Items)
                    {
                        strSql = new StringBuilder();
                        strSql.Append(" UPDATE BLL_PRODUCTION_SCHEDULE_LINE SET");
                        strSql.Append(" PLAN_START_DATE=@PLAN_START_DATE,PLAN_END_DATE=@PLAN_END_DATE");
                        strSql.Append(" WHERE SLIP_NUMBER=@SLIP_NUMBER");
                        strSql.Append(" AND LINE_NUMBER=@LINE_NUMBER");
                        SqlParameter[] lineParameters =
                        {
                            new SqlParameter("@SLIP_NUMBER",     SqlDbType.VarChar,   20),
                            new SqlParameter("@LINE_NUMBER",     SqlDbType.Int,        9),
                            new SqlParameter("@PLAN_START_DATE", SqlDbType.DateTime),
                            new SqlParameter("@PLAN_END_DATE",   SqlDbType.DateTime)
                        };
                        lineParameters[0].Value = headerModel.SLIP_NUMBER;
                        lineParameters[1].Value = lineModel.LINE_NUMBER;
                        lineParameters[2].Value = lineModel.PLAN_START_DATE;
                        lineParameters[3].Value = lineModel.PLAN_END_DATE;
                        listSql.Add(new CommandInfo(strSql.ToString(), lineParameters));
                    }

                    foreach (BaseProductionPlanDrawingLineTable lineModel in headerModel.ItemsDrawing)
                    {
                        strSql = new StringBuilder();
                        strSql.Append(" UPDATE BLL_PRODUCTION_SCHEDULE_DRAWING_LINE SET");
                        strSql.Append(" PLAN_END_DATE=@PLAN_END_DATE");
                        strSql.Append(" WHERE SLIP_NUMBER=@SLIP_NUMBER");
                        strSql.Append(" AND LINE_NUMBER=@LINE_NUMBER");
                        SqlParameter[] lineDrawingParameters =
                        {
                            new SqlParameter("@SLIP_NUMBER",   SqlDbType.VarChar, 20),
                            new SqlParameter("@LINE_NUMBER",   SqlDbType.Int,      9),
                            new SqlParameter("@PLAN_END_DATE", SqlDbType.DateTime)
                        };
                        lineDrawingParameters[0].Value = headerModel.SLIP_NUMBER;
                        lineDrawingParameters[1].Value = lineModel.LINE_NUMBER;
                        lineDrawingParameters[2].Value = lineModel.PLAN_END_DATE;
                        listSql.Add(new CommandInfo(strSql.ToString(), lineDrawingParameters));
                    }
                    foreach (BaseProductionPlanLineTable lineTable in headerModel.Items)
                    {
                        foreach (BaseProductionScheduleProductionProcessTable lineModel in lineTable.ProductionProcess)
                        {
                            strSql = new StringBuilder();
                            strSql.Append(" UPDATE BLL_PRODUCTION_SCHEDULE_PRODUCTION_PROCESS SET");
                            strSql.Append(" PLAN_START_DATE=@PLAN_START_DATE,PLAN_END_DATE=@PLAN_END_DATE");
                            strSql.Append(" WHERE SLIP_NUMBER=@SLIP_NUMBER");
                            strSql.Append(" AND SCHEDULE_LINE_NUNBER=@SCHEDULE_LINE_NUNBER");
                            strSql.Append(" AND LINE_NUMBER=@LINE_NUMBER");
                            SqlParameter[] lineProductionProcessParameters =
                            {
                                new SqlParameter("@SLIP_NUMBER",          SqlDbType.VarChar,   20),
                                new SqlParameter("@SCHEDULE_LINE_NUNBER", SqlDbType.Int,        9),
                                new SqlParameter("@LINE_NUMBER",          SqlDbType.Int,        9),
                                new SqlParameter("@PLAN_START_DATE",      SqlDbType.DateTime),
                                new SqlParameter("@PLAN_END_DATE",        SqlDbType.DateTime)
                            };
                            lineProductionProcessParameters[0].Value = headerModel.SLIP_NUMBER;
                            lineProductionProcessParameters[1].Value = lineModel.SCHEDULE_LINE_NUNBER;
                            lineProductionProcessParameters[2].Value = lineModel.LINE_NUMBER;
                            lineProductionProcessParameters[3].Value = lineModel.PLAN_START_DATE;
                            lineProductionProcessParameters[4].Value = lineModel.PLAN_END_DATE;
                            listSql.Add(new CommandInfo(strSql.ToString(), lineProductionProcessParameters));
                        }
                    }

                    foreach (BaseProductionPlanLineTable lineTable in headerModel.Items)
                    {
                        foreach (BaseProductionScheduleProductionProcessTable lineModel in lineTable.ProductionProcess)
                        {
                            foreach (BaseProductionTechnologyTable lineTechnologyModel in lineModel.ProductionTechnology)
                            {
                                strSql = new StringBuilder();
                                strSql.Append(" UPDATE BLL_PRODUCTION_SCHEDULE_TECHNOLOGY SET");
                                strSql.Append(" PLAN_END_DATE=@PLAN_END_DATE");
                                strSql.Append(" WHERE SLIP_NUMBER=@SLIP_NUMBER");
                                strSql.Append(" AND SCHEDULE_LINE_NUMBER=@SCHEDULE_LINE_NUMBER");
                                strSql.Append(" AND SCHEDULE_PRODUCTION_PROCESS_LINE_NUNBER=@SCHEDULE_PRODUCTION_PROCESS_LINE_NUNBER");
                                strSql.Append(" AND TECHNOLOGY_LINE_NUMBER=@TECHNOLOGY_LINE_NUMBER");
                                SqlParameter[] lineTechnologyParameters =
                                {
                                    new SqlParameter("@SLIP_NUMBER",                             SqlDbType.VarChar, 20),
                                    new SqlParameter("@SCHEDULE_LINE_NUMBER",                    SqlDbType.Int,      9),
                                    new SqlParameter("@SCHEDULE_PRODUCTION_PROCESS_LINE_NUNBER", SqlDbType.Int,      9),
                                    new SqlParameter("@TECHNOLOGY_LINE_NUMBER",                  SqlDbType.Int,      9),
                                    new SqlParameter("@PLAN_END_DATE",                           SqlDbType.DateTime)
                                };
                                lineTechnologyParameters[0].Value = headerModel.SLIP_NUMBER;
                                lineTechnologyParameters[1].Value = lineTechnologyModel.SCHEDULE_LINE_NUMBER;
                                lineTechnologyParameters[2].Value = lineTechnologyModel.SCHEDULE_PRODUCTION_PROCESS_LINE_NUNBER;
                                lineTechnologyParameters[3].Value = lineTechnologyModel.LINE_NUMBER;
                                lineTechnologyParameters[4].Value = lineTechnologyModel.PLAN_END_DATE;
                                listSql.Add(new CommandInfo(strSql.ToString(), lineTechnologyParameters));
                            }
                        }
                    }
                    result = DbHelperSQL.ExecuteSqlTran(listSql);
                    break;
                }
                catch (SqlException ex)
                {
                    headerModel.SLIP_NUMBER = DateTime.Now.ToString("yyyyMMdd") + (CConvert.ToInt32(GetMaxSlipNumber()) + 1).ToString().PadLeft(4, '0');
                    i++;
                    if (i == 10)
                    {
                        throw ex;
                    }
                    continue;
                }
                break;
            }
            if (result <= 0)
            {
                return(null);
            }
            return(headerModel.SLIP_NUMBER);
        }
Example #12
0
        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public BaseProductionPlanTable GetModel(string SLIP_NUMBER)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("select  * from bll_production_schedule_model_view ");
            strSql.Append(" where SLIP_NUMBER=@SLIP_NUMBER ");
            strSql.Append(" order by LINE_NUMBER ,PSPP_LINE_NUMBER ");
            SqlParameter[] parameters =
            {
                new SqlParameter("@SLIP_NUMBER", SqlDbType.VarChar, 50)
            };
            parameters[0].Value = SLIP_NUMBER;
            BaseProductionPlanTable     model     = null;
            BaseProductionPlanLineTable modelLine = new BaseProductionPlanLineTable();
            DataSet ds                = DbHelperSQL.Query(strSql.ToString(), parameters);
            bool    isFirst           = true;
            int     currentLineNumber = 0;

            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                if (isFirst)
                {
                    isFirst                 = false;
                    model                   = new BaseProductionPlanTable();
                    model.SLIP_NUMBER       = dr["SLIP_NUMBER"].ToString();
                    model.ORDER_SLIP_NUNBER = dr["ORDER_SLIP_NUNBER"].ToString();
                    if (dr["SLIP_DATE"].ToString() != "")
                    {
                        model.SLIP_DATE = DateTime.Parse(dr["SLIP_DATE"].ToString());
                    }
                    model.SLIP_TYPE_CODE = dr["SLIP_TYPE_CODE"].ToString();
                    model.SPEC           = dr["DESCRIPTION"].ToString();
                    if (dr["PLAN_NUMBER"].ToString() != "")
                    {
                        model.PLAN_QUANTITY = decimal.Parse(dr["PLAN_NUMBER"].ToString());
                    }
                    if (dr["PLAN_START_DATE"].ToString() != "")
                    {
                        model.PLAN_START_DATE = DateTime.Parse(dr["PLAN_START_DATE"].ToString());
                    }
                    if (dr["PLAN_END_DATE"].ToString() != "")
                    {
                        model.PLAN_END_DATE = DateTime.Parse(dr["PLAN_END_DATE"].ToString());
                    }
                    if (dr["ACTUAL_START_TIME"].ToString() != "")
                    {
                        model.ACTUAL_START_TIME = DateTime.Parse(dr["ACTUAL_START_TIME"].ToString());
                    }
                    if (dr["ACTUAL_END_TIME"].ToString() != "")
                    {
                        model.ACTUAL_END_TIME = DateTime.Parse(dr["ACTUAL_END_TIME"].ToString());
                    }
                    model.MEMO  = dr["MEMO"].ToString();
                    model.MEMO1 = dr["MEMO1"].ToString();
                    model.MEMO2 = dr["MEMO2"].ToString();
                    model.MEMO3 = dr["MEMO3"].ToString();
                    if (dr["STATUS_FLAG"].ToString() != "")
                    {
                        model.STATUS_FLAG = int.Parse(dr["STATUS_FLAG"].ToString());
                    }
                    model.CREATE_USER = dr["CREATE_USER"].ToString();
                    if (dr["CREATE_DATE_TIME"].ToString() != "")
                    {
                        model.CREATE_DATE_TIME = DateTime.Parse(dr["CREATE_DATE_TIME"].ToString());
                    }
                    if (dr["LAST_UPDATE_TIME"].ToString() != "")
                    {
                        model.LAST_UPDATE_TIME = DateTime.Parse(dr["LAST_UPDATE_TIME"].ToString());
                    }
                    model.LAST_UPDATE_USER = dr["LAST_UPDATE_USER"].ToString();
                    model.SLIP_TYPE_NAME   = dr["SLIP_TYPE_NAME"].ToString();
                }
                int lineNumber = CConvert.ToInt32(dr["LINE_NUMBER"]);
                if (currentLineNumber != lineNumber)
                {
                    if (currentLineNumber != 0)
                    {
                        model.AddItem(modelLine);
                    }
                    currentLineNumber     = lineNumber;
                    modelLine             = new BaseProductionPlanLineTable();
                    modelLine.LINE_NUMBER = lineNumber;
                    modelLine.PARTS_CODE  = dr["PARTS_CODE"].ToString();
                    if (dr["PSL_PLAN_START_DATE"].ToString() != "")
                    {
                        modelLine.PLAN_START_DATE = DateTime.Parse(dr["PSL_PLAN_START_DATE"].ToString());
                    }
                    if (dr["PSL_PLAN_END_DATE"].ToString() != "")
                    {
                        modelLine.PLAN_END_DATE = DateTime.Parse(dr["PSL_PLAN_END_DATE"].ToString());
                    }
                    if (dr["PSL_PLAN_NUMBER"].ToString() != "")
                    {
                        modelLine.PLAN_NUMBER = decimal.Parse(dr["PSL_PLAN_NUMBER"].ToString());
                    }
                    if (dr["SCHEDULE_FLAG"].ToString() != "")
                    {
                        modelLine.SCHEDULE_FLAG = int.Parse(dr["SCHEDULE_FLAG"].ToString());
                    }
                    if (dr["PSL_ACTUAL_START_TIME"].ToString() != "")
                    {
                        modelLine.ACTUAL_START_TIME = DateTime.Parse(dr["PSL_ACTUAL_START_TIME"].ToString());
                    }
                    if (dr["PSL_ACTUAL_END_TIME"].ToString() != "")
                    {
                        modelLine.ACTUAL_END_TIME = DateTime.Parse(dr["PSL_ACTUAL_END_TIME"].ToString());
                    }
                    if (dr["PSL_STATUS_FLAG"].ToString() != "")
                    {
                        modelLine.STATUS_FLAG = int.Parse(dr["PSL_STATUS_FLAG"].ToString());
                    }
                    modelLine.PARTS_NAME = dr["PARTS_NAME"].ToString();
                }

                BaseProductionScheduleProductionProcessTable productionprocessTable = new BaseProductionScheduleProductionProcessTable();
                if (dr["PSPP_LINE_NUMBER"].ToString() != "")
                {
                    productionprocessTable.LINE_NUMBER = int.Parse(dr["PSPP_LINE_NUMBER"].ToString());
                }
                if (dr["SCHEDULE_LINE_NUNBER"].ToString() != "")
                {
                    productionprocessTable.SCHEDULE_LINE_NUNBER = int.Parse(dr["SCHEDULE_LINE_NUNBER"].ToString());
                }
                productionprocessTable.PRODUCTION_PROCESS_CODE = dr["PRODUCTION_PROCESS_CODE"].ToString();
                if (dr["PSPP_PLAN_START_DATE"].ToString() != "")
                {
                    productionprocessTable.PLAN_START_DATE = DateTime.Parse(dr["PSPP_PLAN_START_DATE"].ToString());
                }
                if (dr["PSPP_PLAN_END_DATE"].ToString() != "")
                {
                    productionprocessTable.PLAN_END_DATE = DateTime.Parse(dr["PSPP_PLAN_END_DATE"].ToString());
                }
                if (dr["PSPP_STATUS_FLAG"].ToString() != "")
                {
                    productionprocessTable.STATUS_FLAG = int.Parse(dr["PSPP_STATUS_FLAG"].ToString());
                }
                if (dr["PSPP_ACTUAL_START_TIME"].ToString() != "")
                {
                    productionprocessTable.ACTUAL_START_TIME = DateTime.Parse(dr["PSPP_ACTUAL_START_TIME"].ToString());
                }
                if (dr["PSPP_ACTUAL_END_TIME"].ToString() != "")
                {
                    productionprocessTable.ACTUAL_END_TIME = DateTime.Parse(dr["PSPP_ACTUAL_END_TIME"].ToString());
                }
                productionprocessTable.PRODUCTION_PROCESS_NAME = dr["PRODUCTION_PROCESS_NAME"].ToString();
                productionprocessTable.DEPARTMENT_CODE         = dr["DEPARTMENT_CODE"].ToString();
                productionprocessTable.DEPARTMENT_NAME         = dr["DEPARTMENT_NAME"].ToString();
                productionprocessTable.PRODUCTION_CYCLE        = CConvert.ToDecimal(dr["PRODUCTION_CYCLE"].ToString());
                modelLine.AddProductionProcess(productionprocessTable);
            }

            if (model != null)
            {
                model.AddItem(modelLine);
            }

            return(model);
        }
Example #13
0
        public string Add(BaseProductionPlanTable headerModel, BllOrderHeaderTable bOrderHeader)
        {
            int i      = 0;
            int result = 0;

            while (i < 10)
            {
                try
                {
                    List <CommandInfo> listSql = new List <CommandInfo>();
                    StringBuilder      strSql  = new StringBuilder();
                    strSql.Append("insert into BLL_PRODUCTION_SCHEDULE(");
                    strSql.Append("SLIP_NUMBER,ORDER_SLIP_NUNBER,SLIP_DATE,SLIP_TYPE_CODE,DESCRIPTION,PLAN_NUMBER,PLAN_START_DATE,PLAN_END_DATE,MEMO,STATUS_FLAG,CREATE_USER,CREATE_DATE_TIME,LAST_UPDATE_TIME,LAST_UPDATE_USER,ACTUAL_START_TIME,ACTUAL_END_TIME,MEMO1,MEMO2,MEMO3)");
                    strSql.Append(" values (");
                    strSql.Append("@SLIP_NUMBER,@ORDER_SLIP_NUNBER,GETDATE(),@SLIP_TYPE_CODE,@DESCRIPTION,@PLAN_NUMBER,@PLAN_START_DATE,@PLAN_END_DATE,@MEMO,@STATUS_FLAG,@CREATE_USER,GETDATE(),GETDATE(),@LAST_UPDATE_USER,@ACTUAL_START_TIME,@ACTUAL_END_TIME,@MEMO1,@MEMO2,@MEMO3)");
                    SqlParameter[] parameters =
                    {
                        new SqlParameter("@SLIP_NUMBER",       SqlDbType.VarChar,   50),
                        new SqlParameter("@ORDER_SLIP_NUNBER", SqlDbType.VarChar,   50),
                        new SqlParameter("@SLIP_TYPE_CODE",    SqlDbType.VarChar,   50),
                        new SqlParameter("@DESCRIPTION",       SqlDbType.VarChar,   50),
                        new SqlParameter("@PLAN_NUMBER",       SqlDbType.Int,        9),
                        new SqlParameter("@PLAN_START_DATE",   SqlDbType.DateTime),
                        new SqlParameter("@PLAN_END_DATE",     SqlDbType.DateTime),
                        new SqlParameter("@MEMO",              SqlDbType.VarChar,   50),
                        new SqlParameter("@STATUS_FLAG",       SqlDbType.Int,        9),
                        new SqlParameter("@CREATE_USER",       SqlDbType.VarChar,   50),
                        new SqlParameter("@LAST_UPDATE_USER",  SqlDbType.VarChar,   50),
                        new SqlParameter("@ACTUAL_START_TIME", SqlDbType.DateTime),
                        new SqlParameter("@ACTUAL_END_TIME",   SqlDbType.DateTime),
                        new SqlParameter("@MEMO1",             SqlDbType.VarChar,   50),
                        new SqlParameter("@MEMO2",             SqlDbType.VarChar,   50),
                        new SqlParameter("@MEMO3",             SqlDbType.VarChar, 50)
                    };
                    parameters[0].Value  = headerModel.SLIP_NUMBER;
                    parameters[1].Value  = headerModel.ORDER_SLIP_NUNBER;
                    parameters[2].Value  = headerModel.SLIP_TYPE_CODE;
                    parameters[3].Value  = headerModel.SPEC;
                    parameters[4].Value  = headerModel.PLAN_QUANTITY;
                    parameters[5].Value  = headerModel.PLAN_START_DATE;
                    parameters[6].Value  = headerModel.PLAN_END_DATE;
                    parameters[7].Value  = headerModel.MEMO;
                    parameters[8].Value  = CConstant.INIT;
                    parameters[9].Value  = headerModel.CREATE_USER;
                    parameters[10].Value = headerModel.LAST_UPDATE_USER;
                    parameters[11].Value = headerModel.ACTUAL_START_TIME;
                    parameters[12].Value = headerModel.ACTUAL_END_TIME;
                    parameters[13].Value = headerModel.MEMO1;
                    parameters[14].Value = headerModel.MEMO2;
                    parameters[15].Value = headerModel.MEMO3;
                    listSql.Add(new CommandInfo(strSql.ToString(), parameters));

                    //明细插入
                    foreach (BaseProductionPlanLineTable lineModel in headerModel.Items)
                    {
                        strSql = new StringBuilder();
                        strSql.Append("insert into BLL_PRODUCTION_SCHEDULE_LINE(");
                        strSql.Append(" SLIP_NUMBER,LINE_NUMBER,PARTS_CODE,PLAN_START_DATE,PLAN_END_DATE,PLAN_NUMBER,SCHEDULE_FLAG,STATUS_FLAG,ACTUAL_START_TIME,ACTUAL_END_TIME)");
                        strSql.Append(" values (");
                        strSql.Append(" @SLIP_NUMBER,@LINE_NUMBER,@PARTS_CODE,@PLAN_START_DATE,@PLAN_END_DATE,@PLAN_NUMBER,@SCHEDULE_FLAG,@STATUS_FLAG,@ACTUAL_START_TIME,@ACTUAL_END_TIME)");
                        SqlParameter[] lineParameters =
                        {
                            new SqlParameter("@SLIP_NUMBER",       SqlDbType.VarChar,   20),
                            new SqlParameter("@LINE_NUMBER",       SqlDbType.Int,        9),
                            new SqlParameter("@PARTS_CODE",        SqlDbType.VarChar,   20),
                            new SqlParameter("@PLAN_START_DATE",   SqlDbType.DateTime),
                            new SqlParameter("@PLAN_END_DATE",     SqlDbType.DateTime),
                            new SqlParameter("@PLAN_NUMBER",       SqlDbType.Int,        9),
                            new SqlParameter("@SCHEDULE_FLAG",     SqlDbType.Int,        9),
                            new SqlParameter("@STATUS_FLAG",       SqlDbType.Int,       20),
                            new SqlParameter("@ACTUAL_START_TIME", SqlDbType.DateTime),
                            new SqlParameter("@ACTUAL_END_TIME",   SqlDbType.DateTime)
                        };
                        lineParameters[0].Value = headerModel.SLIP_NUMBER;
                        lineParameters[1].Value = lineModel.LINE_NUMBER;
                        lineParameters[2].Value = lineModel.PARTS_CODE;
                        lineParameters[3].Value = lineModel.PLAN_START_DATE;
                        lineParameters[4].Value = lineModel.PLAN_END_DATE;
                        lineParameters[5].Value = lineModel.PLAN_NUMBER;
                        lineParameters[6].Value = lineModel.SCHEDULE_FLAG;
                        lineParameters[7].Value = CConstant.INIT;
                        lineParameters[8].Value = lineModel.ACTUAL_START_TIME;
                        lineParameters[9].Value = lineModel.ACTUAL_END_TIME;
                        listSql.Add(new CommandInfo(strSql.ToString(), lineParameters));
                    }

                    foreach (BaseProductionPlanDrawingLineTable lineModel in headerModel.ItemsDrawing)
                    {
                        strSql = new StringBuilder();
                        strSql.Append("insert into BLL_PRODUCTION_SCHEDULE_DRAWING_LINE(");
                        strSql.Append("SLIP_NUMBER,LINE_NUMBER,DRAWING_CODE,PLAN_END_DATE,STATUS_FLAG,ACTUAL_START_TIME,ACTUAL_END_TIME)");
                        strSql.Append(" values (");
                        strSql.Append(" @SLIP_NUMBER,@LINE_NUMBER,@DRAWING_CODE,@PLAN_END_DATE,@STATUS_FLAG,@ACTUAL_START_TIME,@ACTUAL_END_TIME)");
                        SqlParameter[] lineDrawingParameters =
                        {
                            new SqlParameter("@SLIP_NUMBER",       SqlDbType.VarChar,   20),
                            new SqlParameter("@LINE_NUMBER",       SqlDbType.Int,        9),
                            new SqlParameter("@DRAWING_CODE",      SqlDbType.VarChar,   20),
                            new SqlParameter("@PLAN_END_DATE",     SqlDbType.DateTime),
                            new SqlParameter("@STATUS_FLAG",       SqlDbType.Int,       20),
                            new SqlParameter("@ACTUAL_START_TIME", SqlDbType.DateTime),
                            new SqlParameter("@ACTUAL_END_TIME",   SqlDbType.DateTime)
                        };
                        lineDrawingParameters[0].Value = headerModel.SLIP_NUMBER;
                        lineDrawingParameters[1].Value = lineModel.LINE_NUMBER;
                        lineDrawingParameters[2].Value = lineModel.DRAWING_CODE;
                        lineDrawingParameters[3].Value = lineModel.PLAN_END_DATE;
                        lineDrawingParameters[4].Value = CConstant.INIT;
                        lineDrawingParameters[5].Value = lineModel.ACTUAL_START_TIME;
                        lineDrawingParameters[6].Value = lineModel.ACTUAL_END_TIME;
                        listSql.Add(new CommandInfo(strSql.ToString(), lineDrawingParameters));
                    }
                    foreach (BaseProductionPlanLineTable lineTable in headerModel.Items)
                    // foreach (BaseProductionScheduleProductionProcessTable lineModel in headerModel.ItemsProductionProcess)
                    {
                        foreach (BaseProductionScheduleProductionProcessTable lineModel in lineTable.ProductionProcess)
                        {
                            strSql = new StringBuilder();
                            strSql.Append("insert into BLL_PRODUCTION_SCHEDULE_PRODUCTION_PROCESS(");
                            strSql.Append("SLIP_NUMBER,SCHEDULE_LINE_NUNBER,LINE_NUMBER,PRODUCTION_PROCESS_CODE,PLAN_START_DATE,PLAN_END_DATE,STATUS_FLAG,ACTUAL_START_TIME,ACTUAL_END_TIME)");
                            strSql.Append(" values (");
                            strSql.Append("@SLIP_NUMBER,@SCHEDULE_LINE_NUNBER,@LINE_NUMBER,@PRODUCTION_PROCESS_CODE,@PLAN_START_DATE,@PLAN_END_DATE,@STATUS_FLAG,@ACTUAL_START_TIME,@ACTUAL_END_TIME)");
                            SqlParameter[] lineProductionProcessParameters =
                            {
                                new SqlParameter("@SLIP_NUMBER",             SqlDbType.VarChar,   20),
                                new SqlParameter("@SCHEDULE_LINE_NUNBER",    SqlDbType.Int,        9),
                                new SqlParameter("@LINE_NUMBER",             SqlDbType.Int,        9),
                                new SqlParameter("@PRODUCTION_PROCESS_CODE", SqlDbType.VarChar,   50),
                                new SqlParameter("@PLAN_START_DATE",         SqlDbType.DateTime),
                                new SqlParameter("@PLAN_END_DATE",           SqlDbType.DateTime),
                                new SqlParameter("@STATUS_FLAG",             SqlDbType.Int,        9),
                                new SqlParameter("@ACTUAL_START_TIME",       SqlDbType.DateTime),
                                new SqlParameter("@ACTUAL_END_TIME",         SqlDbType.DateTime)
                            };
                            lineProductionProcessParameters[0].Value = headerModel.SLIP_NUMBER;
                            lineProductionProcessParameters[1].Value = lineModel.SCHEDULE_LINE_NUNBER;
                            lineProductionProcessParameters[2].Value = lineModel.LINE_NUMBER;
                            lineProductionProcessParameters[3].Value = lineModel.PRODUCTION_PROCESS_CODE;
                            lineProductionProcessParameters[4].Value = lineModel.PLAN_START_DATE;
                            lineProductionProcessParameters[5].Value = lineModel.PLAN_END_DATE;
                            lineProductionProcessParameters[6].Value = CConstant.INIT;
                            lineProductionProcessParameters[7].Value = lineModel.ACTUAL_START_TIME;
                            lineProductionProcessParameters[8].Value = lineModel.ACTUAL_END_TIME;
                            listSql.Add(new CommandInfo(strSql.ToString(), lineProductionProcessParameters));
                        }
                    }

                    foreach (BaseProductionPlanLineTable lineTable in headerModel.Items)
                    {
                        foreach (BaseProductionScheduleProductionProcessTable lineModel in lineTable.ProductionProcess)
                        {
                            foreach (BaseProductionTechnologyTable lineTechnologyModel in lineModel.ProductionTechnology)
                            {
                                strSql = new StringBuilder();
                                strSql.Append("insert into BLL_PRODUCTION_SCHEDULE_TECHNOLOGY(");
                                strSql.Append("SLIP_NUMBER,SCHEDULE_LINE_NUMBER,SCHEDULE_PRODUCTION_PROCESS_LINE_NUNBER,TECHNOLOGY_LINE_NUMBER,TECHNOLOGY_CODE,STATUS_FLAG,PLAN_START_DATE,PLAN_END_DATE,ACTUAL_START_TIME,ACTUAL_END_TIME)");
                                strSql.Append(" values (");
                                strSql.Append("@SLIP_NUMBER,@SCHEDULE_LINE_NUMBER,@SCHEDULE_PRODUCTION_PROCESS_LINE_NUNBER,@TECHNOLOGY_LINE_NUMBER,@TECHNOLOGY_CODE,@STATUS_FLAG,@PLAN_START_DATE,@PLAN_END_DATE,@ACTUAL_START_TIME,@ACTUAL_END_TIME)");
                                SqlParameter[] lineTechnologyParameters =
                                {
                                    new SqlParameter("@SLIP_NUMBER",                             SqlDbType.VarChar,   20),
                                    new SqlParameter("@SCHEDULE_LINE_NUMBER",                    SqlDbType.Int,        9),
                                    new SqlParameter("@SCHEDULE_PRODUCTION_PROCESS_LINE_NUNBER", SqlDbType.Int,        9),
                                    new SqlParameter("@TECHNOLOGY_LINE_NUMBER",                  SqlDbType.Int,        9),
                                    new SqlParameter("@TECHNOLOGY_CODE",                         SqlDbType.VarChar,   50),
                                    new SqlParameter("@STATUS_FLAG",                             SqlDbType.Int,        9),
                                    new SqlParameter("@PLAN_START_DATE",                         SqlDbType.DateTime),
                                    new SqlParameter("@PLAN_END_DATE",                           SqlDbType.DateTime),
                                    new SqlParameter("@ACTUAL_START_TIME",                       SqlDbType.DateTime),
                                    new SqlParameter("@ACTUAL_END_TIME",                         SqlDbType.DateTime)
                                };
                                lineTechnologyParameters[0].Value = headerModel.SLIP_NUMBER;
                                lineTechnologyParameters[1].Value = lineTechnologyModel.SCHEDULE_LINE_NUMBER;
                                lineTechnologyParameters[2].Value = lineTechnologyModel.SCHEDULE_PRODUCTION_PROCESS_LINE_NUNBER;
                                lineTechnologyParameters[3].Value = lineTechnologyModel.LINE_NUMBER;
                                lineTechnologyParameters[4].Value = lineTechnologyModel.TECHNOLOGY_CODE;
                                lineTechnologyParameters[5].Value = CConstant.INIT;
                                lineTechnologyParameters[6].Value = lineTechnologyModel.PLAN_START_DATE;
                                lineTechnologyParameters[7].Value = lineTechnologyModel.PLAN_END_DATE;
                                lineTechnologyParameters[8].Value = lineTechnologyModel.ACTUAL_START_TIME;
                                lineTechnologyParameters[9].Value = lineTechnologyModel.ACTUAL_END_TIME;
                                listSql.Add(new CommandInfo(strSql.ToString(), lineTechnologyParameters));
                            }
                        }
                    }

                    foreach (BllOrderLineTable orderline in bOrderHeader.Items)
                    {
                        strSql = new StringBuilder();
                        strSql.Append("update BLL_ORDER_LINE set ");
                        strSql.Append("ALLOATION_QUANTITY=@ALLOATION_QUANTITY");
                        strSql.Append(" where SLIP_NUMBER=@SLIP_NUMBER ");
                        strSql.Append("  AND  LINE_NUMBER=@LINE_NUMBER ");
                        SqlParameter[] orderLineParam =
                        {
                            new SqlParameter("@ALLOATION_QUANTITY", SqlDbType.Decimal),
                            new SqlParameter("@SLIP_NUMBER",        SqlDbType.VarChar,50),
                            new SqlParameter("@LINE_NUMBER",        SqlDbType.Int, 9)
                        };
                        orderLineParam[0].Value = orderline.ALLOATION_QUANTITY;
                        orderLineParam[1].Value = orderline.SLIP_NUMBER;
                        orderLineParam[2].Value = orderline.LINE_NUMBER;
                        listSql.Add(new CommandInfo(strSql.ToString(), orderLineParam));
                    }
                    result = DbHelperSQL.ExecuteSqlTran(listSql);
                    break;
                }
                catch (SqlException ex)
                {
                    headerModel.SLIP_NUMBER = DateTime.Now.ToString("yyyyMMdd") + (CConvert.ToInt32(GetMaxSlipNumber()) + 1).ToString().PadLeft(4, '0');
                    i++;
                    if (i == 10)
                    {
                        throw ex;
                    }
                    continue;
                }
                break;
            }
            if (result <= 0)
            {
                return(null);
            }
            return(headerModel.SLIP_NUMBER);
        }