Ver código fonte

出货单采集修改

Hcsy 8 anos atrás
pai
commit
83dc99516c

+ 14 - 9
UAS-MES/FunctionCode/Warehouse/Warehouse_FinishedProductOut.cs

@@ -76,7 +76,7 @@ namespace UAS_MES.Warehouse
                 BaseUtil.SetFormValue(this.Controls, dtpi);
             }
             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("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("nvl((select sum(CASE WHEN pim_type='BOX' then 1 else nvl((select pa_packageqty from package where pa_outboxcode=pim_outboxcode),0)end) from prodiomac ");
             sql.Append("where pim_inoutno='" + pi_inoutno.Text + "' and NVL(PIM_OUTBOXCODE,' ')<>' ' AND  pim_type in('BOX','PALLET')),0) boxqty from  prodiodetail where pd_piid='" + pi_id.Text + "' ");
             dtform = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
@@ -211,7 +211,8 @@ namespace UAS_MES.Warehouse
                                 OperateResult.AppendText("栈板号" + input.Text + "不存在,请重新输入\n", Color.Red, input);
                                 return;
                             }
-                            checkinsertprodiomac("栈板号");
+                            if (!checkinsertprodiomac("栈板号"))
+                                return;
                         }
                         else if (bigboxBtn.Checked)
                         {
@@ -238,7 +239,8 @@ namespace UAS_MES.Warehouse
                                 OperateResult.AppendText("箱号" + input.Text + "不存在,请重新输入\n", Color.Red, input);
                                 return;
                             }
-                            checkinsertprodiomac("箱号");
+                            if (!checkinsertprodiomac("箱号"))
+                                return;
                             //更新箱号对应的出货单号
                             dh.UpdateByCondition("package", "pa_outno = '" + pi_inoutno.Text + "'", "pa_outboxcode = '" + input.Text + "'");
                         }
@@ -279,7 +281,7 @@ namespace UAS_MES.Warehouse
                                 {
                                     sql.Clear();
                                     sql.Append("select cn,outqty,outqty-nvl((select count(1) from prodiomac where pim_inoutno='" + pi_inoutno.Text + "' and pim_prodcode='" + dtms.Rows[0]["ms_prodcode"].ToString() + "'),0)ungetqty from");
-                                    sql.Append("(select nvl(sum(pd_outqty),0) outqty  ,count(1)cn from prodiodetail where pd_piid='" + pi_id.Text + "' and pd_ordercode='" + dtms.Rows[0]["ms_salecode"].ToString() + "' and pd_prodcode='" + dtms.Rows[0]["ms_prodcode"].ToString() + "')");
+                                    sql.Append("(select nvl(sum(pd_outqty),0) outqty  ,count(1)cn from prodiodetail where pd_piid=" + pi_id.Text + " and pd_ordercode='" + dtms.Rows[0]["ms_salecode"].ToString() + "' and pd_prodcode='" + dtms.Rows[0]["ms_prodcode"].ToString() + "')");
                                     dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
                                     if (dt.Rows[0]["cn"].ToString() == "0")
                                     {
@@ -446,7 +448,7 @@ namespace UAS_MES.Warehouse
         }
 
 
-        private void checkinsertprodiomac(string type)
+        private Boolean checkinsertprodiomac(string type)
         {
             sql.Clear();
             sql.Append("select wm_concat(v_barcode)data,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 + "' and nvl(ms_status,0)<>2 and rownum<20");
@@ -454,30 +456,33 @@ namespace UAS_MES.Warehouse
             if (dt.Rows[0]["data"].ToString() != "" && int.Parse(dt.Rows[0]["cn"].ToString()) > 0)
             {
                 OperateResult.AppendText(type + input.Text + "内序列号未完工,序列号:" + dt.Rows[0]["data"].ToString() + "\n", Color.Red, input);
-                return;
+                return false;
             }
             if (dta.Rows[0]["pi_type"].ToString() == "按订单出货")
             {
                 sql.Clear();
                 sql.Append("select ms_prodcode,ms_salecode,cn  from (select ms_prodcode,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(" 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_inoutno.Text + "' group by pd_prodcode,pd_ordercode)) on ms_prodcode=pd_prodcode and ms_salecode=pd_ordercode where nvl(pd_prodcode,' ')<>' ' or nvl(pd_ordercode,' ')<>' ' or cn>nvl(ungetqty,0)");
+                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 ms_prodcode=pd_prodcode and ms_salecode=pd_ordercode where nvl(pd_prodcode,' ')<>' ' or nvl(pd_ordercode,' ')<>' ' or cn>nvl(ungetqty,0)");
                 dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
-                if (int.Parse(dt.Rows[0]["cn"].ToString()) > 0)
+                if (!(int.Parse(dt.Rows[0]["cn"].ToString()) > 0))
                 {
                     OperateResult.AppendText(type + input.Text + "内的序列号中的物料+订单不在出货单中或者栈板内中序列号的数量大于剩余出货数,栈板内物料号:" + dt.Rows[0]["ms_prodcode"].ToString() + ",订单号:" + dt.Rows[0]["ms_salecode"].ToString() + ",数量:" + dt.Rows[0]["cn"].ToString() + "\n", Color.Red, input);
-                    return;
+                    return false;
                 }
                 else
                 {
                     //插入prodiomac表
                     insertprodiomac(type);
+                    return true;
                 }
             }
             else if (dta.Rows[0]["pi_type"].ToString() == "自由出货")
             {
                 insertprodiomac(type);
+                return true;
             }
+            return true;
         }
 
         private Boolean checkinput(DataTable dt, string type)