Ver Fonte

销售出货优化

callm há 4 dias atrás
pai
commit
39a9a37926

+ 4 - 4
UAS_MES_YDCY/FunctionCode/Make/Make_Repair67F.cs

@@ -196,7 +196,7 @@ namespace UAS_MES_NEW.Make
                 sql.Append("select ms_sncode,ms_status,ms_outboxcode,ms_paststep,ms_reworkstatus,nvl(ms_ifrework,0)ms_ifrework from makeserial left join make ");
                 sql.Append("on ms_makecode=ma_code where ms_sncode = '" + GetSNCode.Text + "' or ms_firstsn='" + GetSNCode.Text + "' order by ms_id desc");
                 dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
-      
+
                 if (dt.Rows.Count > 0)
                 {
                     GetSNCode.Text = dt.Rows[0]["ms_sncode"].ToString();
@@ -371,7 +371,7 @@ namespace UAS_MES_NEW.Make
                                 }
                             }
                             cd_stepcode.Text = cdstepcode;
-                            cd_stepcode.Condition = "ST_STATUSCODE='AUDITED' and cr_code='" + cr_code.Text + "' and cr_prodcode='" + ms_prodcode.Text + "' and instr('"+ ms_paststep + "',cd_stepcode)>0 order by cd_stepno";
+                            cd_stepcode.Condition = "ST_STATUSCODE='AUDITED' and cr_code='" + cr_code.Text + "' and cr_prodcode='" + ms_prodcode.Text + "' and instr('" + ms_paststep + "',cd_stepcode)>0 order by cd_stepno";
                             //if (dh.getFieldDataByCondition("craftdetail left JOIN craft on cr_id = cd_crid", "nvl(cd_ifinput,0)cd_ifinput", "cr_code=  '" + cr_code.Text + "' and cr_prodcode = '" + ms_prodcode.Text + "' and cd_stepcode = '" + cd_stepcode.Text + "'").ToString() == "-1")
                             //    cd_stepcode.Enabled = false;
                             //else
@@ -585,7 +585,7 @@ namespace UAS_MES_NEW.Make
             sql.Append("And sp_mothercode ='" + ms_prodcode.Text + "' and sp_tracekind=1  and  nvl(pr_prodtype,' ')<>'包装物料' and not exists(select 1 from craftmaterial left join makematerial on cm_makecode=mm_code and (cm_fsoncode=mm_prodcode or instr(mm_repprodcode,cm_fsoncode)>0) where ");
             sql.Append("cm_sncode in (select '" + firstsn + "' from dual union select sn from makesnrelation where firstsn='" + firstsn + "') and cm_makecode='" + ms_makecode.Text + "' and ");
             sql.Append("(sp_fsoncode=mm_prodcode or sp_fsoncode=mm_repprodcode or cm_fsoncode=sp_fsoncode)  and cm_status=0 and cm_stepcode=sp_stepcode) group by sp_fsoncode,sp_id order by SP_DETNO asc");
-           dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
+            dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
 
             //查询拆解的物料
             //sql.Clear();
@@ -603,7 +603,7 @@ namespace UAS_MES_NEW.Make
                 OperatResult.AppendText(">>" + prdetail.Replace("'", "") + "物料尚未备料,不允许回流\n", Color.Red);
                 return;
             }
-            dt = (DataTable)dh.ExecuteSql("select cr_id from craft where cr_statuscode='AUDITED' and cr_code='" + cr_code.Text + "' and cr_prodcode='"+ms_prodcode.Text+"'", "select");
+            dt = (DataTable)dh.ExecuteSql("select cr_id from craft where cr_statuscode='AUDITED' and cr_code='" + cr_code.Text + "' and cr_prodcode='" + ms_prodcode.Text + "'", "select");
             if (dt.Rows.Count == 0)
                 OperatResult.AppendText(">>回流工序不存在\n", Color.Red);
             else

+ 41 - 78
UAS_MES_YDCY/FunctionCode/Warehouse/Warehouse_FinishedProductOutSumNEW.cs

@@ -66,7 +66,7 @@ namespace UAS_MES_NEW.Warehouse
             pi_inoutno.SelectField = "pi_id # ID,pi_title  # 客户名称,pi_inoutno # 出货单号,pi_type # 出货类型,pi_palletnum # 栈板数量 ,pi_boxnum # 散箱数量 ";
             pi_inoutno.SetValueField = new string[] { "pi_title", "pi_inoutno", "pi_id", "pi_type", "pi_palletnum", "pi_boxnum" };
             pi_inoutno.FormName = Name;
-            pi_inoutno.Condition = "nvl(pi_pdastatus,' ')<>'已出库' and pi_class='其它出库单' and pi_type='销售出货'";
+            pi_inoutno.Condition = "nvl(pi_pdastatus,' ')<>'已出库' and pi_class='其它出库单'";
             pi_inoutno.DbChange += Pi_inoutno_DbChange;
             asc.controllInitializeSize(this);
             dh = SystemInf.dh;
@@ -218,42 +218,21 @@ namespace UAS_MES_NEW.Warehouse
             {
                 BaseUtil.SetFormValue(this.Controls, dtpi);
             }
-
-            if (pi_type.Text == "销售出货")
-            {
-                sql.Clear();
-                sql.Append("select nvl((select sum(pd_outqty) from prodiodetail where pd_piid=" + pi_id.Text + "),0)outqty,nvl((select count(1)cn from prodiomac where pim_inoutno=pd_inoutno),0) getqty  ");
-                sql.Append(" from  prodiodetail where pd_piid='" + pi_id.Text + "' ");
-                dtform = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
-                if (dtform.Rows.Count > 0)
-                {
-                    int boxqtycount = 0;
-                    BaseUtil.SetFormValue(this.Controls, dtform);
-                    ungetqty.Text = (int.Parse(dtform.Rows[0]["outqty"].ToString()) - int.Parse(dtform.Rows[0]["getqty"].ToString())).ToString();
-                    sql.Clear();
-                    sql.Append("select pim_type,pim_outboxcode from prodiomac where pim_inoutno='" + pi_inoutno.Text + "' and NVL(PIM_OUTBOXCODE,' ')<>' ' AND pim_type ='BOX' GROUP BY pim_outboxcode,pim_type");
-                    DataTable dtout = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
-                    boxqtycount += dtout.Rows.Count;
-                    boxqtycount += int.Parse(dh.getFieldDataByCondition("package left join PACKAGEDETAIL on pd_outboxcode = pa_outboxcode left join prodiomac on pim_mac =pd_barcode and pim_prodcode = pd_prodcode and pa_mothercode = pim_outboxcode", "count(DISTINCT pa_outboxcode)", " pim_inoutno='" + pi_inoutno.Text + "' and NVL(PIM_OUTBOXCODE,' ')<>' ' AND  pim_type ='PALLET'").ToString());
-                    boxqty.Text = boxqtycount.ToString();
-                }
-            }
-            else
-            {
+            sql.Clear();
+            sql.Append("select nvl((select sum(pd_outqty) from prodiodetail where pd_piid=" + pi_id.Text + "),0)outqty,nvl((select count(1)cn from prodiomac where pim_inoutno=pd_inoutno),0) getqty  ");
+            sql.Append(" from  prodiodetail where pd_piid='" + pi_id.Text + "' ");
+            dtform = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
+            if (dtform.Rows.Count > 0)
+            {
+                int boxqtycount = 0;
+                BaseUtil.SetFormValue(this.Controls, dtform);
+                ungetqty.Text = (int.Parse(dtform.Rows[0]["outqty"].ToString()) - int.Parse(dtform.Rows[0]["getqty"].ToString())).ToString();
                 sql.Clear();
-                sql.Append("select count(1)getqty from prodiomac where pim_inoutno = '" + pi_inoutno.Text + "'");
-                dtform = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
-                if (dtform.Rows.Count > 0)
-                {
-                    int boxqtycount = 0;
-                    BaseUtil.SetFormValue(this.Controls, dtform);
-                    sql.Clear();
-                    sql.Append("select pim_type,pim_outboxcode from prodiomac where pim_inoutno='" + pi_inoutno.Text + "' and NVL(PIM_OUTBOXCODE,' ')<>' ' AND pim_type ='BOX' GROUP BY pim_outboxcode,pim_type");
-                    DataTable dtout = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
-                    boxqtycount += dtout.Rows.Count;
-                    boxqtycount += int.Parse(dh.getFieldDataByCondition("package left join PACKAGEDETAIL on pd_outboxcode = pa_outboxcode left join prodiomac on pim_mac =pd_barcode and pim_prodcode = pd_prodcode and pa_mothercode = pim_outboxcode", "count(DISTINCT pa_outboxcode)", " pim_inoutno='" + pi_inoutno.Text + "' and NVL(PIM_OUTBOXCODE,' ')<>' ' AND  pim_type ='PALLET'").ToString());
-                    boxqty.Text = boxqtycount.ToString();
-                }
+                sql.Append("select pim_type,pim_outboxcode from prodiomac where pim_inoutno='" + pi_inoutno.Text + "' and NVL(PIM_OUTBOXCODE,' ')<>' ' AND pim_type ='BOX' GROUP BY pim_outboxcode,pim_type");
+                DataTable dtout = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
+                boxqtycount += dtout.Rows.Count;
+                boxqtycount += int.Parse(dh.getFieldDataByCondition("package left join PACKAGEDETAIL on pd_outboxcode = pa_outboxcode left join prodiomac on pim_mac =pd_barcode and pim_prodcode = pd_prodcode and pa_mothercode = pim_outboxcode", "count(DISTINCT pa_outboxcode)", " pim_inoutno='" + pi_inoutno.Text + "' and NVL(PIM_OUTBOXCODE,' ')<>' ' AND  pim_type ='PALLET'").ToString());
+                boxqty.Text = boxqtycount.ToString();
             }
         }
 
@@ -513,26 +492,18 @@ namespace UAS_MES_NEW.Warehouse
                             return;
                         }
                         LoadFormData();
-                        LoadGridData();
-                        if (dta.Rows[0]["pi_type"].ToString() == "销售出货")
-                        {
-                            if (int.Parse(dtform.Rows[0]["outqty"].ToString()) > int.Parse(dtform.Rows[0]["getqty"].ToString()))
-                            {
-                                dh.UpdateByCondition("prodinout", "pi_pdastatus='备货中'", "pi_inoutno='" + pi_inoutno.Text + "'");
-                                OperateResult.AppendText("出货单" + pi_inoutno.Text + "备货成功,备货数据:" + input.Text + "\n", Color.Black, input);
-                            }
-                            else
-                            {
-                                dh.UpdateByCondition("prodinout", "pi_pdastatus='已备货'", "pi_inoutno='" + pi_inoutno.Text + "'");
-                                OperateResult.AppendText("出货单" + pi_inoutno.Text + "已完成备货,备货数据:" + input.Text + "\n", Color.Black, input);
-                                return;
-                            }
-                        }
-                        else if (dta.Rows[0]["pi_type"].ToString() == "自由出货")
+                        //LoadGridData();
+                        if (int.Parse(dtform.Rows[0]["outqty"].ToString()) > int.Parse(dtform.Rows[0]["getqty"].ToString()))
                         {
                             dh.UpdateByCondition("prodinout", "pi_pdastatus='备货中'", "pi_inoutno='" + pi_inoutno.Text + "'");
                             OperateResult.AppendText("出货单" + pi_inoutno.Text + "备货成功,备货数据:" + input.Text + "\n", Color.Black, input);
                         }
+                        else
+                        {
+                            dh.UpdateByCondition("prodinout", "pi_pdastatus='已备货'", "pi_inoutno='" + pi_inoutno.Text + "'");
+                            OperateResult.AppendText("出货单" + pi_inoutno.Text + "已完成备货,备货数据:" + input.Text + "\n", Color.Black, input);
+                            return;
+                        }
                     }
                     else
                     {
@@ -658,7 +629,7 @@ namespace UAS_MES_NEW.Warehouse
                             return;
                         }
                         LoadFormData();
-                        LoadGridData();
+                        //LoadGridData();
                     }
                 }
                 else
@@ -698,37 +669,29 @@ namespace UAS_MES_NEW.Warehouse
             //    OperateResult.AppendText(type + input.Text + "内序列号未完工,序列号:" + dt.Rows[0]["data"].ToString() + "\n", Color.Red, input);
             //    return false;
             //}
-            if (dta.Rows[0]["pi_type"].ToString() == "销售出货")
+
+            //获取进行出库的产品的包装规则
+            string pr_packrule = dh.getFieldDataByCondition("product left join package on pr_code = pa_prodcode", "pr_packrule", "pa_outboxcode = '" + input.Text + "'").ToString();
+            if (pr_packrule == "SALE")
             {
-                //获取进行出库的产品的包装规则
-                string pr_packrule = dh.getFieldDataByCondition("product left join package on pr_code = pa_prodcode", "pr_packrule", "pa_outboxcode = '" + input.Text + "'").ToString();
-                if (pr_packrule == "SALE")
-                {
-                    sql.Clear();
-                    sql.Append("select ms_prodcode,ms_salecode,cn  from (select nvl(ms_prodcode,' ') ms_prodcode,nvl(ms_salecode,' ') ms_salecode,count(1)cn from mes_package_view left join makeserial on ms_sncode=v_barcode and ms_makecode=v_makecode  where v_outboxcode='" + input.Text + "' ");
-                    sql.Append("and ms_outno is null group by ms_prodcode,ms_salecode) left join (select pd_ordercode,pd_prodcode,outqty-nvl((select count(1) from prodiomac where pim_inoutno='" + pi_inoutno.Text + "' and pim_prodcode=pd_prodcode),0)ungetqty");
-                    sql.Append(" from (select pd_ordercode,pd_prodcode,sum(pd_outqty)outqty from prodiodetail where pd_piid=" + pi_id.Text + " group by pd_prodcode,pd_ordercode))  on 1=1 where ms_prodcode<>pd_prodcode or ms_salecode<>pd_ordercode  or (cn>nvl(ungetqty,0))");
-                    DataTable dtAA = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
-                    insertprodiomac(type, iBox);
-                    return true;
-                }
-                else
-                {
-                    sql.Clear();
-                    sql.Append("select ms_prodcode,cn  from (select nvl(ms_prodcode,' ') ms_prodcode,count(1)cn from mes_package_view left join makeserial on ms_sncode=v_barcode and ms_makecode=v_makecode  where v_outboxcode='" + input.Text + "' ");
-                    sql.Append("and ms_outno is null group by ms_prodcode) left join (select pd_prodcode,outqty-nvl((select count(1) from prodiomac where pim_inoutno='" + pi_inoutno.Text + "' and pim_prodcode=pd_prodcode),0)ungetqty");
-                    sql.Append(" from (select pd_prodcode,sum(pd_outqty)outqty from prodiodetail where pd_piid=" + pi_id.Text + " group by pd_prodcode))  on 1=1 where ms_prodcode<>pd_prodcode   or (cn>nvl(ungetqty,0))");
-                    DataTable dtAA = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
-                    insertprodiomac(type, iBox);
-                    return true;
-                }
+                sql.Clear();
+                sql.Append("select ms_prodcode,ms_salecode,cn  from (select nvl(ms_prodcode,' ') ms_prodcode,nvl(ms_salecode,' ') ms_salecode,count(1)cn from mes_package_view left join makeserial on ms_sncode=v_barcode and ms_makecode=v_makecode  where v_outboxcode='" + input.Text + "' ");
+                sql.Append("and ms_outno is null group by ms_prodcode,ms_salecode) left join (select pd_ordercode,pd_prodcode,outqty-nvl((select count(1) from prodiomac where pim_inoutno='" + pi_inoutno.Text + "' and pim_prodcode=pd_prodcode),0)ungetqty");
+                sql.Append(" from (select pd_ordercode,pd_prodcode,sum(pd_outqty)outqty from prodiodetail where pd_piid=" + pi_id.Text + " group by pd_prodcode,pd_ordercode))  on 1=1 where ms_prodcode<>pd_prodcode or ms_salecode<>pd_ordercode  or (cn>nvl(ungetqty,0))");
+                DataTable dtAA = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
+                insertprodiomac(type, iBox);
+                return true;
             }
-            else if (dta.Rows[0]["pi_type"].ToString() == "自由出货")
+            else
             {
+                sql.Clear();
+                sql.Append("select ms_prodcode,cn  from (select nvl(ms_prodcode,' ') ms_prodcode,count(1)cn from mes_package_view left join makeserial on ms_sncode=v_barcode and ms_makecode=v_makecode  where v_outboxcode='" + input.Text + "' ");
+                sql.Append("and ms_outno is null group by ms_prodcode) left join (select pd_prodcode,outqty-nvl((select count(1) from prodiomac where pim_inoutno='" + pi_inoutno.Text + "' and pim_prodcode=pd_prodcode),0)ungetqty");
+                sql.Append(" from (select pd_prodcode,sum(pd_outqty)outqty from prodiodetail where pd_piid=" + pi_id.Text + " group by pd_prodcode))  on 1=1 where ms_prodcode<>pd_prodcode   or (cn>nvl(ungetqty,0))");
+                DataTable dtAA = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
                 insertprodiomac(type, iBox);
                 return true;
             }
-
             return true;
         }