From 247d5855038f8d485c1d3a4b4a7bf148c66cbfd4 Mon Sep 17 00:00:00 2001
From: 王 垚 <1402714037@qq.com>
Date: 星期一, 11 一月 2021 15:19:53 +0800
Subject: [PATCH] 领料单改为缺料单

---
 src/BLL/Demo.BillView/PRD/ProCompleteAnalysisDetails.cs |   84 +++++++++++++++++++++++++++--------------
 1 files changed, 55 insertions(+), 29 deletions(-)

diff --git a/src/BLL/Demo.BillView/PRD/ProCompleteAnalysisDetails.cs b/src/BLL/Demo.BillView/PRD/ProCompleteAnalysisDetails.cs
index 298e3d0..106122c 100644
--- a/src/BLL/Demo.BillView/PRD/ProCompleteAnalysisDetails.cs
+++ b/src/BLL/Demo.BillView/PRD/ProCompleteAnalysisDetails.cs
@@ -1,18 +1,14 @@
-锘縰sing Kingdee.BOS.App.Data;
-using Kingdee.BOS.Core.DynamicForm;
+锘縰sing Kingdee.BOS.Core.DynamicForm;
 using Kingdee.BOS.Core.DynamicForm.PlugIn;
-using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
-using Kingdee.BOS.Core.Metadata.EntityElement;
 using Kingdee.BOS.Orm.DataEntity;
 using Kingdee.BOS.Util;
 using System;
-using System.Collections.Generic;
 using System.ComponentModel;
 using System.Data;
-using System.Linq;
-using System.Text;
 using Kingdee.BOS.ServiceHelper;
-using System.Threading.Tasks;
+using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
+using Kingdee.BOS.Core.Metadata.EntityElement;
+using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel;
 
 namespace Demo.BillView
 {
@@ -27,6 +23,7 @@
             if (this.View.OpenParameter.GetCustomParameter("FHMainICMOInterID") == null)
             {
                 SearchList();
+                ChangeColor();
             }
             else
             {
@@ -35,7 +32,7 @@
                 string FHMainICMOInterIDr = this.View.OpenParameter.GetCustomParameter("FHMainICMOInterID").ToString();//涓荤敓浜ц鍗曚富鍐呯爜
                 string FHMainICMOEntryID = this.View.OpenParameter.GetCustomParameter("FHMainICMOEntryID").ToString();// 涓荤敓浜ц鍗曞瓙鍐呯爜
                 string FHICMOInterID = this.View.OpenParameter.GetCustomParameter("FHICMOInterID").ToString();//鏃ヨ鍒掕鍗曚富鍐呯爜
-                string sql = string.Format(@"/*dialect*/select * from JIT_MOMaterReadysBill where FHMainICMOInterIDr ='{0}' and FHMainICMOEntryID ='{1}' and FHICMOInterID='{2}' ", FHMainICMOInterIDr, FHMainICMOEntryID, FHICMOInterID);
+                string sql = string.Format(@"/*dialect*/select * from JIT_MOMaterReadysBill where FHMainICMOInterIDr ='{0}' and FHMainICMOEntryID ='{1}' and FHICMOInterID='{2}' order by FPlanDate, FHStockQty desc ,FHMaterID ", FHMainICMOInterIDr, FHMainICMOEntryID, FHICMOInterID);
                 DataTable dt = DBServiceHelper.ExecuteDataSet(this.Context, sql).Tables[0];
                 if (dt.Rows.Count > 0)
                 {
@@ -48,22 +45,46 @@
                         this.Model.SetValue("FCompleteCount", dt.Rows[i]["FCompleteCount"], i);//榻愬鏁伴噺  
                         this.Model.SetValue("FLackCount", dt.Rows[i]["FLackCount"], i);//缂烘枡鏁伴噺  
                         this.Model.SetValue("FPassableCount", dt.Rows[i]["FHLeftQty"].ToString(), i);//鍙敤鏁伴噺   
-                        this.Model.SetValue("FMateralCount", dt.Rows[i]["FHLeftQty"].ToString(), i);//鐗╂枡鏁伴噺   
+                        this.Model.SetValue("FMateralCount", dt.Rows[i]["FHStockQty"].ToString(), i);//鐗╂枡鏁伴噺   
+                        this.Model.SetValue("FOccupyCount", dt.Rows[i]["FOccupyCount"].ToString(), i);//鍗犵敤鏁伴噺   
                         this.Model.SetValue("FCompleteDetailStatus", dt.Rows[i]["FComPlete"].ToString(), i);//鏄惁榻愬   
                         this.Model.SetValue("FHMainICMOInterIDr", dt.Rows[i]["FHMainICMOInterIDr"].ToString(), i);//鐢熶骇璁㈠崟鍐呯爜   
                         this.Model.SetValue("FPRDBillNo", dt.Rows[i]["FPRDBillNo"].ToString(), i);//鐢熶骇璁㈠崟鍐呯爜   
                         this.Model.SetValue("FPlanDate", dt.Rows[i]["FPlanDate"].ToString(), i);//鏃ヨ鍒掓棩鏈�   
+                        this.Model.SetValue("FOrgId", dt.Rows[i]["FHStockOrgID"], i);//搴撳瓨缁勭粐  
+                        this.Model.SetValue("FOwnerTypeId", dt.Rows[i]["FOwnerTypeId"], i);//璐т富绫诲瀷  
+                        this.Model.SetValue("FOwnerId", dt.Rows[i]["FOwnerId"], i);//璐т富 
                     }
                 }
-                did = true;
+
+                ChangeColor();
+                 did = true;
             }
         }
+
+        private void ChangeColor() {
+            Entity entity = this.View.BillBusinessInfo.GetEntity("FEntity");
+            //鍗曟嵁浣撲俊鎭浆鎹负鍒楄〃闆嗗悎
+            DynamicObjectCollection entityDataObjoct = this.View.Model.GetEntityDataObject(entity);
+            EntryGrid grid = this.View.GetControl<EntryGrid>("FEntity");
+            int _i = 0;
+            foreach (DynamicObject current in entityDataObjoct)
+            {
+                if (Convert.ToString(current["FCompleteDetailStatus"]) == "鏈綈濂�")
+                {
+                    grid.SetRowBackcolor("#FF0000", _i);
+                }
+                _i++;
+            }
+        }
+       
         public override void BarItemClick(BarItemClickEventArgs e)
         {
             base.BarItemClick(e);
             if (e.BarItemKey.ToUpper() == "TBFILTER")
             {
                 SearchList();
+                ChangeColor();
             }
         }
         /// <summary>
@@ -92,16 +113,7 @@
         public void SearchList()
         {
             string sqlwhere = " where 1=1";
-            string sql = @"
-/*dialect*/
-select * from (
-select FSumPlanCount*FUNITDOSAGE as FPlanIssueCountS,FCompleteCount*FUNITDOSAGE FCompleteCountS,(FSumPlanCount-FCompleteCount)*FUNITDOSAGE FLackCountS,case when FSumPlanCount>FCompleteCount then '鏈綈濂�' else '榻愬' end CompleteStatus,
-t2.FBillNo PRDBillNo,
-t1.* from JIT_MOMaterReadysBill T1
-JOIN T_PRD_MO t2 on t1.FHMainICMOInterIDr=t2.FID 
-)AS T 
-";
-            sql = string.Format(@"/*dialect*/select * from JIT_MOMaterReadysBill");
+            string sql = string.Format(@"/*dialect*/select * from JIT_MOMaterReadysBill ");
             //鐗╂枡
             if ((this.Model.GetValue("FMateralId") as DynamicObject) != null)
             {
@@ -112,21 +124,31 @@
             //榻愬
             string FCompleteStatus = Convert.ToString(this.Model.GetValue("FCompleteStatus"));
             if (!string.IsNullOrEmpty(FCompleteStatus))
-                sqlwhere += $" and CompleteStatus='{FCompleteStatus}'";
+                sqlwhere += $" and FComPlete='{FCompleteStatus}'";
+
+            //鏃ヨ鍒掓棩鏈�
+            string FPlanDate = Convert.ToString(this.Model.GetValue("FPlanDate2"));
+            if (!string.IsNullOrEmpty(FPlanDate))
+                sqlwhere += $" and FPlanDate='{FPlanDate}'";
+
             //鐢熶骇璁㈠崟鍙�
             string PRDBillNo = Convert.ToString(this.Model.GetValue("FScOrderNo"));
             if (!string.IsNullOrEmpty(PRDBillNo))
-                sqlwhere += $" and PRDBillNo='{PRDBillNo}'";
+                sqlwhere += $" and FPRDBillNo='{PRDBillNo}'";
             sql += sqlwhere;
+            sql += "order by FPlanDate, FHStockQty desc ,FHMaterID";
             DataTable dt = DBServiceHelper.ExecuteDataSet(this.Context, sql).Tables[0];
-            this.Model.DeleteEntryData("FEntity");
+            //this.Model.DeleteEntryData("FEntity");
+            while (this.Model.GetEntryRowCount("FEntity") > 0)
+            {
+                this.Model.DeleteEntryRow("FEntity", 0);
+            }
+            //this.View.Refresh();
+
             if (dt.Rows.Count > 0)
             {
                 for (int i = 0; i < dt.Rows.Count; i++)
                 {
-                    decimal FPlanIssueCount = Convert.ToDecimal(dt.Rows[i]["FSumPlanCount"]) * Convert.ToDecimal(dt.Rows[i]["FUNITDOSAGE"]);//璁″垝鍙戞枡鏁伴噺
-                    decimal FCompleteCount = Convert.ToDecimal(dt.Rows[i]["FCompleteCount"]) * Convert.ToDecimal(dt.Rows[i]["FUNITDOSAGE"]);//榻愬鏁伴噺
-                    decimal FLackCount = FPlanIssueCount - FCompleteCount;//缂烘枡鏁伴噺
                     this.Model.CreateNewEntryRow("FEntity");
                     this.Model.SetValue("FSEQ", i + 1, i);//搴忓彿
                     this.Model.SetValue("FMateralDetailId", dt.Rows[i]["FHMATERID"], i);
@@ -134,14 +156,18 @@
                     this.Model.SetValue("FCompleteCount", dt.Rows[i]["FCompleteCount"], i);//榻愬鏁伴噺  
                     this.Model.SetValue("FLackCount", dt.Rows[i]["FLackCount"], i);//缂烘枡鏁伴噺  
                     this.Model.SetValue("FPassableCount", dt.Rows[i]["FHLeftQty"].ToString(), i);//鍙敤鏁伴噺   
-                    this.Model.SetValue("FMateralCount", dt.Rows[i]["FHLeftQty"].ToString(), i);//鐗╂枡鏁伴噺   
+                    this.Model.SetValue("FMateralCount", dt.Rows[i]["FHStockQty"].ToString(), i);//鐗╂枡鏁伴噺   
                     this.Model.SetValue("FCompleteDetailStatus", dt.Rows[i]["FComPlete"].ToString(), i);//鏄惁榻愬  
                     this.Model.SetValue("FHMainICMOInterIDr", dt.Rows[i]["FHMainICMOInterIDr"].ToString(), i);//鐢熶骇璁㈠崟鍐呯爜   
                     this.Model.SetValue("FPRDBillNo", dt.Rows[i]["FPRDBillNo"].ToString(), i);//鐢熶骇璁㈠崟鍐呯爜   
                     this.Model.SetValue("FPlanDate", dt.Rows[i]["FPlanDate"].ToString(), i);//鏃ヨ鍒掓棩鏈�   
+                    this.Model.SetValue("FOrgId", dt.Rows[i]["FHStockOrgID"], i);//搴撳瓨缁勭粐  
+                    this.Model.SetValue("FOwnerTypeId", dt.Rows[i]["FOwnerTypeId"], i);//璐т富绫诲瀷  
+                    this.Model.SetValue("FOwnerId", dt.Rows[i]["FOwnerId"], i);//璐т富 
                 }
             }
-            this.View.UpdateView();
+
+            //this.View.UpdateView();
             did = true;
         }
     }

--
Gitblit v1.9.1