예제 #1
0
        //批量排产
        protected void btnPLPC_Click(object sender, EventArgs e)
        {
            try
            {
                bool result  = true; //判定是否超出原合同订单量
                bool result2 = true; //判定排产量是否有效数字

                bool result3 = true; //判定是否满足排产指标

                List <Mod_TMO_ORDER> orderList = new List <Mod_TMO_ORDER>();
                List <string[]>      list_log  = new List <string[]>();

                for (int i = 0; i < rptList.Items.Count; i++)
                {
                    HtmlInputCheckBox cbx_order = (HtmlInputCheckBox)rptList.Items[i].FindControl("cbx_order");
                    Literal           ltlwgt    = (Literal)rptList.Items[i].FindControl("ltlwgt");
                    Literal           ltldlxwgt = (Literal)rptList.Items[i].FindControl("ltldlxwgt");
                    Literal           ltlpcwgt  = (Literal)rptList.Items[i].FindControl("ltlpcwgt");
                    if (cbx_order.Checked)
                    {
                        if (Convert.ToDecimal(ltldlxwgt.Text) > 0)
                        {
                            //decimal sum = Convert.ToDecimal(ltlpcwgt.Text) + Convert.ToDecimal(ltldlxwgt.Text);
                            decimal sum = Convert.ToDecimal(ltlpcwgt.Text);
                            decimal wgt = Convert.ToDecimal(ltlwgt.Text);

                            //判定是否排产量大于订单量
                            if (sum > Convert.ToDecimal(ltlwgt.Text))
                            {
                                result = false;
                                break;
                            }
                            else
                            {
                                decimal n = wgt - sum; //订单量减去已排产量

                                if (n > 0)             //判定剩余排产是否大于0
                                {
                                    Mod_TMO_ORDER modOrder = tmo_order.GetModel(cbx_order.Value);

                                    //校验是否满足排产指标
                                    if (tmo_order_pczb.CheckStl_Grd_ZB(n, modOrder.C_AREA, modOrder.C_ORDER_NO, dropZB.SelectedItem.Value))
                                    {
                                        #region //生产订单号
                                        int    no = tmo_order.GetOrderPlanNum(modOrder.C_ORDER_NO, modOrder.C_CON_NO);
                                        string pc = modOrder.C_ORDER_NO + "/" + no.ToString();

                                        if (tmo_order.Exists_OrderPlan(pc, modOrder.C_CON_NO))
                                        {
                                            no += 1;
                                            pc  = modOrder.C_ORDER_NO + "/" + no.ToString();
                                        }
                                        #endregion

                                        modOrder.C_ORDER_NO    = pc;
                                        modOrder.N_EXEC_STATUS = -1;              //执行状态:提报订单
                                        modOrder.C_PCTBEMP     = ltlempName.Text; //提报人
                                        modOrder.N_WGT         = wgt - sum;       //需求排产量  Convert.ToDecimal(ltldlxwgt.Text);//待履行量
                                        orderList.Add(modOrder);
                                        string[] arr_log = { "提报订单", "合同履行表页面", GetClientIP(), ltlempid.Text, modOrder.C_ORDER_NO, modOrder.C_ID };
                                        list_log.Add(arr_log);
                                    }
                                    else
                                    {
                                        result3 = false;
                                        break;
                                    }
                                }
                                else
                                {
                                    result2 = false;
                                    break;
                                }
                            }
                        }
                    }
                }

                if (result)      //判断排产量是否超出原订单量
                {
                    if (result2) //排产量是否有效数字
                    {
                        if (result3)
                        {
                            if (tmo_con.InsertNeedOrder(orderList))
                            {
                                //日志
                                tmo_order.InsertOrderPlanLog(list_log);

                                WebMsg.MessageBox("下发成功");
                                GetList();
                            }
                        }
                        else
                        {
                            WebMsg.MessageBox("其中批量排产订单量,不符合当月当旬排产指标");
                        }
                    }
                    else
                    {
                        WebMsg.MessageBox("其中批量排产订单有0排产量,请重新检查再次提交");
                    }
                }
                else
                {
                    WebMsg.MessageBox("当前需求排产量已超原合同订单量,请单独下发排产!");
                }
            }
            catch (Exception ex)
            {
                WebMsg.MessageBox(ex.Message);
            }
        }
예제 #2
0
        //合同订单排产
        protected void btn_add_Click(object sender, EventArgs e)
        {
            try
            {
                decimal sumwgt = Convert.ToDecimal(txtneedwgt.Text) + Convert.ToDecimal(ltlplanwgt.Text);

                //if (sumwgt > Convert.ToDecimal(ltlwgt.Text) || Convert.ToDecimal(txtneedwgt.Text) > Convert.ToDecimal(ltldlxwgt.Text))
                //{
                //    WebMsg.MessageBox("需求排产量已超原合同订单量或已超待履行量");
                //}

                if (sumwgt > Convert.ToDecimal(ltlwgt.Text))
                {
                    WebMsg.MessageBox("需求排产量已超原合同订单量或已超待履行量");
                }
                else
                {
                    List <Mod_TMO_ORDER> orderList = new List <Mod_TMO_ORDER>();
                    List <string[]>      list_log  = new List <string[]>();

                    decimal wgt = 0;
                    decimal.TryParse(txtneedwgt.Text, out wgt);

                    if (wgt > 0)
                    {
                        if (!string.IsNullOrEmpty(txtPack.Text) && tqb_pack.Exists(txtPack.Text))
                        {
                            #region Insert

                            Mod_TMO_ORDER modOrder = tmo_order.GetModel(ltlOrderNo.Text);


                            //校验是否满足排产指标
                            if (tmo_order_pczb.CheckStl_Grd_ZB(wgt, modOrder.C_AREA, modOrder.C_ORDER_NO, dropZB.SelectedItem.Value))
                            {
                                #region //生产订单号
                                int    no = tmo_order.GetOrderPlanNum(modOrder.C_ORDER_NO, modOrder.C_CON_NO);
                                string pc = modOrder.C_ORDER_NO + "/" + no.ToString();

                                if (tmo_order.Exists_OrderPlan(pc, modOrder.C_CON_NO))
                                {
                                    no += 1;
                                    pc  = modOrder.C_ORDER_NO + "/" + no.ToString();
                                }
                                #endregion

                                modOrder.C_ORDER_NO    = pc;
                                modOrder.N_WGT         = wgt;             //需求排产量
                                modOrder.N_EXEC_STATUS = -1;              //执行状态:提报订单
                                modOrder.C_REMARK4     = txtremark.Text;  //特殊信息
                                modOrder.C_PCTBEMP     = ltlempname.Text; //提报人
                                modOrder.C_PACK        = txtPack.Text;    //包装要求

                                orderList.Add(modOrder);

                                string[] arr_log = { "提报订单", "合同履行表页面", GetClientIP(), ltlempid.Text, ltlOrderNo.Text, modOrder.C_ID };
                                list_log.Add(arr_log);
                                if (tmo_con.InsertNeedOrder(orderList))
                                {
                                    //日志
                                    tmo_order.InsertOrderPlanLog(list_log);
                                    Response.Write("<script>alert('提交成功');window.parent.document.getElementById('btncx').click();window.parent.close();</script>");
                                }
                            }
                            else
                            {
                                WebMsg.MessageBox("当前排产量,不符合当月当旬排产指标!");
                            }

                            #endregion
                        }
                        else
                        {
                            WebMsg.MessageBox("包装不能为空或与实际包装不符");
                        }
                    }
                    else
                    {
                        WebMsg.MessageBox("请输入有效需求排产量!");
                    }
                }
            }
            catch (Exception ex)
            {
                WebMsg.MessageBox(ex.Message);
            }
        }