From a05018727c284e1d24967e0cf120a934796191b8 Mon Sep 17 00:00:00 2001
From: 王 垚 <1402714037@qq.com>
Date: 星期二, 02 三月 2021 16:02:05 +0800
Subject: [PATCH] 更改

---
 src/BLL/Demo.BillView/PRD/Pro_DayPlanBG.cs |   61 +++++++++++++++---------------
 1 files changed, 30 insertions(+), 31 deletions(-)

diff --git a/src/BLL/Demo.BillView/PRD/Pro_DayPlanBG.cs b/src/BLL/Demo.BillView/PRD/Pro_DayPlanBG.cs
index ceee160..8effc2d 100644
--- a/src/BLL/Demo.BillView/PRD/Pro_DayPlanBG.cs
+++ b/src/BLL/Demo.BillView/PRD/Pro_DayPlanBG.cs
@@ -36,10 +36,8 @@
             double FHQty = Convert.ToDouble(model.GetValue("FHQty"));
             if (e.Field.Key.Contains("FUseRateNew"))
             {
-                if (e.OldValue == e.NewValue||e.NewValue==null)
+                if (e.OldValue == e.NewValue || e.NewValue == null)
                     return;
-              
-
                 double FNumerator = Convert.ToDouble(model.GetValue("FNumerator", e.Row));//鍒嗗瓙
                 double FDenominator = Convert.ToDouble(model.GetValue("FDenominator", e.Row));//鍒嗘瘝
                 double FUseRateNew = Convert.ToDouble(model.GetValue("FUseRateNew", e.Row));//浣跨敤姣斾緥
@@ -50,7 +48,6 @@
                 }
                 Hqty = Math.Ceiling((FNumerator / FDenominator) * FHQty * (FUseRateNew / 100));
                 this.View.Model.SetValue("FHQtyMustNew", Hqty, e.Row);//鏂拌鍒掓暟閲�
-
                 var m = e.Row;
                 //椤规
                 var pro = model.GetValue("FReplaceGroup", m).ToString();
@@ -59,21 +56,12 @@
                 //鏌ユ壘鍒扮殑鍚屾壒椤规
                 var finds = entrys.Where(entry => entry.GetValue<string>("FReplaceGroup") == pro && entry.GetValue<int>("Seq") != (m + 1));
                 if (finds.Count() == 0) return;
-
                 var seq = finds.First().GetValue<int>("Seq");
                 model.SetValue("FUseRateNew", 100 - Convert.ToDouble(e.NewValue), seq - 1);
-                //int FentryID = Convert.ToInt32(model.GetEntryPKValue("FEntity",e.Row));//鏄庣粏琛╥d
-                ////鏌ヨ鍚岄」娆$殑搴忓彿
-                //string sql = 
-                //    $"select top 1 FSEQ from Sc_DayPlanPPBomBillSubBG where FReplaceGroup in(select FReplaceGroup from Sc_DayPlanPPBomBillSubBG where FEntryID = {FentryID} )and FEntryID<> { FentryID} ";
-                //int Fseq = DBServiceHelper.ExecuteScalar<int>(Context,sql,0);
-                //if (Fseq > 0) {
-                //    this.View.Model.SetValue("FUseRateNew", 100 - FUseRateNew, Fseq - 1);//鏂拌鍒掓暟閲�
-                //}
             }
             if (e.Field.Key.Contains("FHQtyMustNew"))
             {
-                if (e.OldValue == e.NewValue)
+                if (e.OldValue == e.NewValue || e.NewValue == null)
                     return;
                 var m = e.Row;
                 double FNumerator = Convert.ToDouble(model.GetValue("FNumerator", e.Row));//鍒嗗瓙
@@ -85,27 +73,38 @@
                     Hqty = Math.Ceiling(FHQtyMustNew / FHQty * 100);
                 }
                 Hqty = Math.Ceiling(FHQtyMustNew / ((FNumerator / FDenominator) * FHQty) * 100);
-                this.View.Model.SetValue("FUseRateNew", Hqty, e.Row);//鏂拌鍒掓暟閲�
-
-                //int FentryID = Convert.ToInt32(model.GetEntryPKValue("FEntity", e.Row));//鏄庣粏琛╥d
-                ////鏌ヨ鍚岄」娆$殑搴忓彿
-                //string sql =
-                //    $"select top 1 FSEQ from Sc_DayPlanPPBomBillSubBG where FReplaceGroup in(select FReplaceGroup from Sc_DayPlanPPBomBillSubBG where FEntryID = {FentryID} )and FEntryID<> { FentryID} ";
-                //int Fseq = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0);
-                //if (Fseq > 0)
-                //{
-                //    double FUseRateNew = Convert.ToDouble(model.GetValue("FUseRateNew", e.Row));//浣跨敤姣斾緥
-                //    this.View.Model.SetValue("FUseRateNew", 100 - FUseRateNew, Fseq - 1);//鏂拌鍒掓暟閲�
-                //}
+                this.View.Model.SetValue("FUseRateNew", Hqty, e.Row);//鏂扮敤鏂欐瘮渚�
             }
         }
 
-        //public override void BeforeSave(BeforeSaveEventArgs e)
-        //{
-        //    base.BeforeSave(e);
+        public override void BeforeSave(BeforeSaveEventArgs e)
+        {
+            base.BeforeSave(e);
+            var entrys = this.View.Model.DataObject.GetValue<DynamicObjectCollection>("FEntity");
+            string resultMes = "";
+            foreach (var entry in entrys)
+            {
+                var fReplaceGroup = entry["FReplaceGroup"].ToString();
+                //LogService.WriteAsync(entrys);
+                //鏌ユ壘鍒扮殑鍚屾壒椤规
+                var finds = entrys.Where(trys => trys.GetValue<string>("FReplaceGroup") == fReplaceGroup);
+                if (finds.Count() > 1) return;
 
-        //    e.Cancel = true;
-        //}
+                string sql = string.Format(@"/*dialect*/
+select count(*) from Sc_DayPlanPPBomBillSub a 
+join Sc_DayPlanPPBomBillMain b on a.FID = b.FID
+where FREPLACEGROUP = '{0}' and FHMaterSubID<> '{1}' and(FPickedQty + FTranslateQty) > FHQty * ((100 - {2}) / 100.0) * FDwyl and a.FID = {3}", entry["FReplaceGroup"].ToString(), entry["FHMaterSubID_Id"].ToString(), entry["FUseRateNew"].ToString(), entry["FDayPlanId"].ToString());
+                int result = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0);
+                if (result > 0)
+                    resultMes += $"琛屽彿:" + entry["Seq"].ToString() + ",瀛樺湪鏇夸唬鏂欏叧绯伙紝浣跨敤姣斾緥鍙樻洿鍚庤秴鍑轰簡棰嗙敤鏁伴噺";
+            }
+            if (resultMes != "")
+            {
+                e.Cancel = true;
+                this.View.ShowErrMessage(resultMes);
+            }
+
+        }
     }
 }
 

--
Gitblit v1.9.1