Пример #1
0
        protected void ASPxCbSubmit_Callback(object source, DevExpress.Web.ASPxCallback.CallbackEventArgs e)
        {
            try
            {
                string[] collection = e.Parameter.Split('@');
                int      cnt        = collection.Length;
                string   value      = collection[1]; //计划号

                if (collection[0] == "Commit")
                {
                    if (value.EndsWith(","))
                    {
                        value = value.Substring(0, value.Length - 1);
                    }
                    string[] _ids      = value.Split(',');
                    string   plancode  = _ids[0].ToUpper();
                    string   planso    = _ids[1];
                    string   planqty   = _ids[2];
                    string   changeqty = _ids[3];
                    //根据计划号判断该用户是否有该生产线权限
                    string sql = "select run_flag,online_qty,third_flag from data_plan where plan_code='" + plancode + "' and plan_type='A' and pline_code in "
                                 + " (select pline_code from vw_user_role_program where user_id='" + theUserId + "' and program_code='" + programcode + "' and company_code='" + theCompanyCode + "' )";
                    DataTable dt = dc.GetTable(sql);
                    if (dt.Rows.Count == 0)
                    {
                        e.Result = "Fail,无该计划生产线权限!";
                        return;
                    }
                    string runflag   = dt.Rows[0][0].ToString();
                    string onlineqty = dt.Rows[0][1].ToString();
                    string thirdflag = dt.Rows[0][2].ToString();
                    if (thirdflag == "N")
                    {
                        e.Result = "Fail,该计划未进行三方物料计算!";
                        return;
                    }
                    if (onlineqty != "0" || runflag == "Y")
                    {
                        e.Result = "Fail,该计划已上线!";
                        return;
                    }
                    int count2 = Convert.ToInt32(dc.GetValue("select count(1) from data_plan_sn where sn_flag='N' and plan_code='" + plancode + "'"));
                    if (count2 < Convert.ToInt32(changeqty))
                    {
                        e.Result = "Fail,该计划未上线流水号数量小于调整数量!";
                        return;
                    }
                    string plinecode = "";
                    plinecode = dc.GetValue("select nvl(pline_code,'') from data_plan where plan_code='" + plancode + "'");
                    PlanFactory.MS_HANDLE_PLAN_ADJUST("DELETE", plinecode, plancode, planso, planqty, changeqty, theUserCode);

                    string sql1 = "INSERT INTO data_plan_LOG(RMES_ID,COMPANY_CODE,PLINE_CODE,PLINE_NAME,PLAN_SEQ,PLAN_CODE,PLAN_SO,PRODUCT_MODEL,PLAN_TYPE,CREATE_USERID,CREATE_USERNAME,CREATE_TIME,BEGIN_DATE,END_DATE,ACCOUNT_DATE,PLAN_QTY,ONLINE_QTY,OFFLINE_QTY,ROUNTING_SITE,ROUNTING_REMARK,CUSTOMER_CODE,CUSTOMER_NAME,ORDER_CODE,REMARK,ROUNTING_CODE,LQ_FLAG,CONFIRM_FLAG,RUN_FLAG,BOM_FLAG,ITEM_FLAG,SN_FLAG,THIRD_FLAG,STOCK_FLAG,THIRD_RECEIVE_FLAG,STOCK_RECEIVE_FLAG,modify_user,modify_time,modify_type,is_bom) "
                                  + " SELECT RMES_ID,COMPANY_CODE,PLINE_CODE,PLINE_NAME,PLAN_SEQ,PLAN_CODE,PLAN_SO,PRODUCT_MODEL,PLAN_TYPE,CREATE_USERID,CREATE_USERNAME,CREATE_TIME,BEGIN_DATE,END_DATE,ACCOUNT_DATE,PLAN_QTY,ONLINE_QTY,OFFLINE_QTY,ROUNTING_SITE,ROUNTING_REMARK,CUSTOMER_CODE,CUSTOMER_NAME,ORDER_CODE,REMARK,ROUNTING_CODE,LQ_FLAG,CONFIRM_FLAG,RUN_FLAG,BOM_FLAG,ITEM_FLAG,SN_FLAG,THIRD_FLAG,STOCK_FLAG,THIRD_RECEIVE_FLAG,STOCK_RECEIVE_FLAG,'" + theUserName + "',SYSDATE,'修改前记录','Y' "
                                  + " FROM data_plan WHERE  TRIM(plan_code) = '" + plancode + "' ";
                    dc.ExeSql(sql1);
                    int qty = Convert.ToInt32(planqty) - Convert.ToInt32(changeqty);
                    sql1 = "update data_plan set plan_qty=" + qty + " where plan_code = '" + plancode + "' ";
                    dc.ExeSql(sql1);
                    sql1 = "  INSERT INTO DATA_PLANLOG(plan_so,plan_code,create_date,remark,modify_type,plan_seq,pline_code,rounting_site) "
                           + " select plan_so,plan_code,sysdate, '修改计划','修改',to_number(plan_seq),pline_code,rounting_site from data_plan "
                           + " where plan_code = '" + plancode + "' ";
                    dc.ExeSql(sql1);
                    sql1 = "INSERT INTO data_plan_LOG(RMES_ID,COMPANY_CODE,PLINE_CODE,PLINE_NAME,PLAN_SEQ,PLAN_CODE,PLAN_SO,PRODUCT_MODEL,PLAN_TYPE,CREATE_USERID,CREATE_USERNAME,CREATE_TIME,BEGIN_DATE,END_DATE,ACCOUNT_DATE,PLAN_QTY,ONLINE_QTY,OFFLINE_QTY,ROUNTING_SITE,ROUNTING_REMARK,CUSTOMER_CODE,CUSTOMER_NAME,ORDER_CODE,REMARK,ROUNTING_CODE,LQ_FLAG,CONFIRM_FLAG,RUN_FLAG,BOM_FLAG,ITEM_FLAG,SN_FLAG,THIRD_FLAG,STOCK_FLAG,THIRD_RECEIVE_FLAG,STOCK_RECEIVE_FLAG,modify_user,modify_time,modify_type,is_bom) "
                           + " SELECT RMES_ID,COMPANY_CODE,PLINE_CODE,PLINE_NAME,PLAN_SEQ,PLAN_CODE,PLAN_SO,PRODUCT_MODEL,PLAN_TYPE,CREATE_USERID,CREATE_USERNAME,CREATE_TIME,BEGIN_DATE,END_DATE,ACCOUNT_DATE,PLAN_QTY,ONLINE_QTY,OFFLINE_QTY,ROUNTING_SITE,ROUNTING_REMARK,CUSTOMER_CODE,CUSTOMER_NAME,ORDER_CODE,REMARK,ROUNTING_CODE,LQ_FLAG,CONFIRM_FLAG,RUN_FLAG,BOM_FLAG,ITEM_FLAG,SN_FLAG,THIRD_FLAG,STOCK_FLAG,THIRD_RECEIVE_FLAG,STOCK_RECEIVE_FLAG,'" + theUserName + "',SYSDATE,'修改后记录','Y' "
                           + " FROM data_plan WHERE  TRIM(plan_code) = '" + plancode + "'";
                    dc.ExeSql(sql1);

                    //回收流水号
                    for (int i = 0; i < Convert.ToInt32(changeqty); i++)
                    {
                        int count1 = Convert.ToInt32(dc.GetValue("select count(1) from data_plan_sn where sn_flag='N' and plan_code='" + plancode + "'"));
                        if (count1 > 0)
                        {
                            string sn1 = dc.GetValue("select sn from data_plan_sn where sn_flag='N' and plan_code='" + plancode + "' and rownum=1 ");
                            dc.ExeSql("insert into code_sn_reserve(rmes_id,company_code,pline_code,sn,sn_flag) values(seq_rmes_id.nextval,'" + theCompanyCode + "','" + plinecode + "','" + sn1 + "','A') ");
                            dc.ExeSql("delete from data_plan_sn where sn='" + sn1 + "' ");
                        }
                    }
                    //判断分装计划是否上线
                    sql = "select count(1) from data_plan where plan_code like 'F%" + plancode + "' and plan_type='F'";
                    if (dc.GetValue(sql) != "0")
                    {
                        sql1 = "select count(1) from data_product where plan_code like 'F%" + plancode + "'";
                        if (dc.GetValue(sql1) == "0")
                        {
                            //string Rsite = RSite.SelectedItem.Value.ToString();
                            sql1 = "INSERT INTO data_plan_LOG(RMES_ID,COMPANY_CODE,PLINE_CODE,PLINE_NAME,PLAN_SEQ,PLAN_CODE,PLAN_SO,PRODUCT_MODEL,PLAN_TYPE,CREATE_USERID,CREATE_USERNAME,CREATE_TIME,BEGIN_DATE,END_DATE,ACCOUNT_DATE,PLAN_QTY,ONLINE_QTY,OFFLINE_QTY,ROUNTING_SITE,ROUNTING_REMARK,CUSTOMER_CODE,CUSTOMER_NAME,ORDER_CODE,REMARK,ROUNTING_CODE,LQ_FLAG,CONFIRM_FLAG,RUN_FLAG,BOM_FLAG,ITEM_FLAG,SN_FLAG,THIRD_FLAG,STOCK_FLAG,THIRD_RECEIVE_FLAG,STOCK_RECEIVE_FLAG,modify_user,modify_time,modify_type,is_bom) "
                                   + " SELECT RMES_ID,COMPANY_CODE,PLINE_CODE,PLINE_NAME,PLAN_SEQ,PLAN_CODE,PLAN_SO,PRODUCT_MODEL,PLAN_TYPE,CREATE_USERID,CREATE_USERNAME,CREATE_TIME,BEGIN_DATE,END_DATE,ACCOUNT_DATE,PLAN_QTY,ONLINE_QTY,OFFLINE_QTY,ROUNTING_SITE,ROUNTING_REMARK,CUSTOMER_CODE,CUSTOMER_NAME,ORDER_CODE,REMARK,ROUNTING_CODE,LQ_FLAG,CONFIRM_FLAG,RUN_FLAG,BOM_FLAG,ITEM_FLAG,SN_FLAG,THIRD_FLAG,STOCK_FLAG,THIRD_RECEIVE_FLAG,STOCK_RECEIVE_FLAG,'" + theUserName + "',SYSDATE,'修改前记录','Y' "
                                   + " FROM data_plan WHERE  TRIM(plan_code)like 'F%" + plancode + "'  and plan_type='F'";
                            dc.ExeSql(sql1);
                            sql1 = "update data_plan set plan_qty=to_number('" + qty + "') where plan_code like 'F%" + plancode + "' and plan_type='F'  ";
                            dc.ExeSql(sql1);
                            sql1 = "  INSERT INTO DATA_PLANLOG(plan_so,plan_code,create_date,remark,modify_type,plan_seq,pline_code,rounting_site) "
                                   + " select plan_so,plan_code,sysdate, '修改计划','修改',to_number(plan_seq),pline_code,rounting_site from data_plan "
                                   + " where plan_code like 'F%" + plancode + "' and plan_type='F'  ";
                            dc.ExeSql(sql1);
                            sql1 = "INSERT INTO data_plan_LOG(RMES_ID,COMPANY_CODE,PLINE_CODE,PLINE_NAME,PLAN_SEQ,PLAN_CODE,PLAN_SO,PRODUCT_MODEL,PLAN_TYPE,CREATE_USERID,CREATE_USERNAME,CREATE_TIME,BEGIN_DATE,END_DATE,ACCOUNT_DATE,PLAN_QTY,ONLINE_QTY,OFFLINE_QTY,ROUNTING_SITE,ROUNTING_REMARK,CUSTOMER_CODE,CUSTOMER_NAME,ORDER_CODE,REMARK,ROUNTING_CODE,LQ_FLAG,CONFIRM_FLAG,RUN_FLAG,BOM_FLAG,ITEM_FLAG,SN_FLAG,THIRD_FLAG,STOCK_FLAG,THIRD_RECEIVE_FLAG,STOCK_RECEIVE_FLAG,modify_user,modify_time,modify_type,is_bom) "
                                   + " SELECT RMES_ID,COMPANY_CODE,PLINE_CODE,PLINE_NAME,PLAN_SEQ,PLAN_CODE,PLAN_SO,PRODUCT_MODEL,PLAN_TYPE,CREATE_USERID,CREATE_USERNAME,CREATE_TIME,BEGIN_DATE,END_DATE,ACCOUNT_DATE,PLAN_QTY,ONLINE_QTY,OFFLINE_QTY,ROUNTING_SITE,ROUNTING_REMARK,CUSTOMER_CODE,CUSTOMER_NAME,ORDER_CODE,REMARK,ROUNTING_CODE,LQ_FLAG,CONFIRM_FLAG,RUN_FLAG,BOM_FLAG,ITEM_FLAG,SN_FLAG,THIRD_FLAG,STOCK_FLAG,THIRD_RECEIVE_FLAG,STOCK_RECEIVE_FLAG,'" + theUserName + "',SYSDATE,'修改后记录','Y' "
                                   + " FROM data_plan WHERE  TRIM(plan_code)like 'F%" + plancode + "'  and plan_type='F'";
                            dc.ExeSql(sql1);
                        }
                    }

                    e.Result = "OK,三方物料计划取消提交成功!";
                    return;
                }
                else
                if (collection[0] == "Check")
                {
                    string plancode = collection[1];     //计划号
                    //根据计划号判断该用户是否有该生产线权限
                    string sql = "select run_flag,online_qty,third_flag from data_plan where plan_code='" + plancode + "' and plan_type='A' and pline_code in "
                                 + " (select pline_code from vw_user_role_program where user_id='" + theUserId + "' and program_code='" + programcode + "' and company_code='" + theCompanyCode + "' )";
                    DataTable dt = dc.GetTable(sql);
                    if (dt.Rows.Count == 0)
                    {
                        e.Result = "Fail,无该计划生产线权限!";
                        return;
                    }
                    string runflag   = dt.Rows[0][0].ToString();
                    string onlineqty = dt.Rows[0][1].ToString();
                    string thirdflag = dt.Rows[0][2].ToString();
                    if (thirdflag == "N")
                    {
                        e.Result = "Fail,该计划未进行三方物料计算!";
                        return;
                    }
                    if (onlineqty != "0" || runflag == "Y")
                    {
                        e.Result = "Fail,该计划已上线!";
                        return;
                    }
                    e.Result = "OK1,OK";
                }
            }
            catch (Exception e1)
            {
                e.Result = "Fail,三方物料计划取消提交失败" + e1.Message + "!";
                return;
            }
        }