From ea20fed96c39f8b845ec33813a92b048bc031dd7 Mon Sep 17 00:00:00 2001
From: xiaoding721 <33130084+xiaoding721@users.noreply.github.com>
Date: 星期二, 05 十一月 2024 17:05:49 +0800
Subject: [PATCH] 修复变动人力成本报表的一些bug

---
 _Main/BL/Type_LocalCell_Default/StaticMethod_GenerateStandardHoursReport.qbl        |   23 ++++++++++++++++-------
 _Main/BL/Type_LocalCell_Default/StaticMethod_GenerateComprehensiveHoursReport#1.qbl |   28 ++++++++++++++++++----------
 2 files changed, 34 insertions(+), 17 deletions(-)

diff --git "a/_Main/BL/Type_LocalCell_Default/StaticMethod_GenerateComprehensiveHoursReport\0431.qbl" "b/_Main/BL/Type_LocalCell_Default/StaticMethod_GenerateComprehensiveHoursReport\0431.qbl"
index 323a459..c2cabf4 100644
--- "a/_Main/BL/Type_LocalCell_Default/StaticMethod_GenerateComprehensiveHoursReport\0431.qbl"
+++ "b/_Main/BL/Type_LocalCell_Default/StaticMethod_GenerateComprehensiveHoursReport\0431.qbl"
@@ -18,10 +18,12 @@
     column3  := table.LocalColumn( relnew,CustomName := "鐢熶骇澶╂暟" ,CustomIndex := 3);
     
     column4  := table.LocalColumn( relnew,CustomName := "鍔犵彮/娆犲伐鏃堕暱" ,CustomIndex := 4);
-    column5  := table.LocalColumn( relnew,CustomName := "鑺傚亣鏃ュ姞鐝椂闀�" ,CustomIndex := 6);
+    column5  := table.LocalColumn( relnew,CustomName := "鑺傚亣鏃ュ姞鐝椂闀�" ,CustomIndex := 5);
     
-    column6  := table.LocalColumn( relnew,CustomName := "鍔犵彮/娆犲伐璐�" ,CustomIndex := 8);
-    column7 := table.LocalColumn( relnew,CustomName := "鑺傚亣鏃ュ姞鐝垂" ,CustomIndex := 10);
+    column6  := table.LocalColumn( relnew,CustomName := "鍔犵彮/娆犲伐璐�" ,CustomIndex := 6);
+    column7 := table.LocalColumn( relnew,CustomName := "鑺傚亣鏃ュ姞鐝垂" ,CustomIndex := 7);
+    
+    column8 := table.LocalColumn( relnew,CustomName := "鎬昏鍔犵彮/娆犲伐璐�" ,CustomIndex := 8);
     
     units := selectset( shiftPlans,Elements.UnitPeriodTime.Unit,unit,true );
     
@@ -92,7 +94,8 @@
               // 涓嬩竴澶╂槸鑺傚亣鏃�
               nextDayOvertime := shiftPlan.GetHolidayOvertimeHour( true );
               holidayOvertimeHourCell.RealValue( holidayOvertimeHourCell.RealValue() + nextDayOvertime );
-            }else if( shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄥ叚" ) or shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄦ棩" ) ){
+    //      }else if( shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄥ叚" ) or shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄦ棩" ) ){
+            }else if( shiftPlan.UnitPeriodTime().Period_MP().StartDate().DayOfWeek() = 6 or  shiftPlan.UnitPeriodTime().Period_MP().StartDate().DayOfWeek() = 7 ){
               // 涓嬩竴澶╂槸鍛ㄥ叚鎴栧懆鏃�
               nextDayOvertime := shiftPlan.GetHolidayOvertimeHour( true );
               breakDayOvertimeHourCell.RealValue( breakDayOvertimeHourCell.RealValue() + nextDayOvertime );
@@ -102,7 +105,8 @@
               defaultDayOvertimeHourCell.RealValue( defaultDayOvertimeHourCell.RealValue() + nextDayOvertime );
             }
           }
-        }else if( shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄥ叚" ) or shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄦ棩" ) ){
+    //  }else if( shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄥ叚" ) or shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄦ棩" ) ){
+        }else if( shiftPlan.UnitPeriodTime().Period_MP().StartDate().DayOfWeek() = 6 or  shiftPlan.UnitPeriodTime().Period_MP().StartDate().DayOfWeek() = 7 ){
           // 浼戞伅鏃ュ姞鐝� 
           overtime := shiftPlan.GetBreakDayOvertimeHour( false );
           breakDayOvertimeHourCell.RealValue( breakDayOvertimeHourCell.RealValue() + overtime );
@@ -112,7 +116,8 @@
               // 涓嬩竴澶╂槸鑺傚亣鏃�
               nextDayOvertime := shiftPlan.GetHolidayOvertimeHour( true );
               holidayOvertimeHourCell.RealValue( holidayOvertimeHourCell.RealValue() + nextDayOvertime );
-            }else if( shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄥ叚" ) or shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄦ棩" ) ){
+    //      }else if( shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄥ叚" ) or shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄦ棩" ) ){
+            }else if( shiftPlan.UnitPeriodTime().Period_MP().StartDate().DayOfWeek() = 6 or  shiftPlan.UnitPeriodTime().Period_MP().StartDate().DayOfWeek() = 7 ){
               // 涓嬩竴澶╂槸鍛ㄥ叚鎴栧懆鏃�
               nextDayOvertime := shiftPlan.GetBreakDayOvertimeHour( true );
               breakDayOvertimeHourCell.RealValue( breakDayOvertimeHourCell.RealValue() + nextDayOvertime );
@@ -131,7 +136,8 @@
               // 涓嬩竴澶╂槸鑺傚亣鏃�
               nextDayOvertime := shiftPlan.GetHolidayOvertimeHour( true );
               holidayOvertimeHourCell.RealValue( holidayOvertimeHourCell.RealValue() + nextDayOvertime );
-            }else if( shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄥ叚" ) or shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄦ棩" ) ){
+    //      }else if( shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄥ叚" ) or shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄦ棩" ) ){
+            }else if( shiftPlan.UnitPeriodTime().Period_MP().StartDate().DayOfWeek() = 6 or  shiftPlan.UnitPeriodTime().Period_MP().StartDate().DayOfWeek() = 7 ){
               // 涓嬩竴澶╂槸鍛ㄥ叚鎴栧懆鏃�
               nextDayOvertime := shiftPlan.GetBreakDayOvertimeHour( true );
               breakDayOvertimeHourCell.RealValue( breakDayOvertimeHourCell.RealValue() + nextDayOvertime );
@@ -143,7 +149,8 @@
           }
         }
       }else{
-        if( not shiftPlan.IsHoliday() and not ( shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄥ叚" ) or shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄦ棩" ) )){
+    //  if( not shiftPlan.IsHoliday() and not ( shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄥ叚" ) or shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄦ棩" ) )){
+        if( not shiftPlan.IsHoliday() and not ( shiftPlan.UnitPeriodTime().Period_MP().StartDate().DayOfWeek() = 6 or  shiftPlan.UnitPeriodTime().Period_MP().StartDate().DayOfWeek() = 7 )){
           qiangongCell := LocalCell_Default::GetCell(  rowKey + column4.CustomName(), cellIndexTree, cells, row, column4 );
           qiangongCell.RealValue( qiangongCell.RealValue() - 8 );
         }
@@ -188,10 +195,11 @@
       jiejiarifeiCell.RealValue( EmployeeCost::GetSalary( unit,holidayMultiplier,jiejiariCell.RealValue()));
       
       qiangongCell := LocalCell_Default::GetCell(  rowKey + column4.CustomName(), cellIndexTree, cells, row, column4 );
-      qiangongCell.RealValue( qiangongCell.RealValue() - 8 );
-      
       qiangongfeiCell := LocalCell_Default::GetCell(  rowKey + column6.CustomName(), cellIndexTree, cells, row, column6 );
       qiangongfeiCell.RealValue( EmployeeCost::GetSalary( unit,defaultMultiplier,qiangongCell.RealValue() ));
+      
+      total := LocalCell_Default::GetCell(  rowKey + column8.CustomName(), cellIndexTree, cells, row, column8 );
+      total.RealValue( jiejiarifeiCell.RealValue() + qiangongfeiCell.RealValue() );
     }
     
     return table;
diff --git a/_Main/BL/Type_LocalCell_Default/StaticMethod_GenerateStandardHoursReport.qbl b/_Main/BL/Type_LocalCell_Default/StaticMethod_GenerateStandardHoursReport.qbl
index 1a2649b..6f3185c 100644
--- a/_Main/BL/Type_LocalCell_Default/StaticMethod_GenerateStandardHoursReport.qbl
+++ b/_Main/BL/Type_LocalCell_Default/StaticMethod_GenerateStandardHoursReport.qbl
@@ -27,6 +27,8 @@
     column10 := table.LocalColumn( relnew,CustomName := "鑺傚亣鏃ュ姞鐝垂" ,CustomIndex := 10);
     column11 := table.LocalColumn( relnew,CustomName := "娆犲伐璐�" ,CustomIndex := 11);
     
+    column12 := table.LocalColumn( relnew,CustomName := "鎬诲姞鐝垂" ,CustomIndex := 12);
+    
     units := selectset( shiftPlans,Elements.UnitPeriodTime.Unit,unit,true );
     
     rows := construct( LocalRows );
@@ -95,7 +97,8 @@
               // 涓嬩竴澶╂槸鑺傚亣鏃�
               nextDayOvertime := shiftPlan.GetHolidayOvertimeHour( true );
               holidayOvertimeHourCell.RealValue( holidayOvertimeHourCell.RealValue() + nextDayOvertime );
-            }else if( shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄥ叚" ) or shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄦ棩" ) ){
+    //        }else if( shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄥ叚" ) or shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄦ棩" ) ){
+            }else if( shiftPlan.UnitPeriodTime().Period_MP().StartDate().DayOfWeek() = 6 or  shiftPlan.UnitPeriodTime().Period_MP().StartDate().DayOfWeek() = 7 ){
               // 涓嬩竴澶╂槸鍛ㄥ叚鎴栧懆鏃�
               nextDayOvertime := shiftPlan.GetHolidayOvertimeHour( true );
               breakDayOvertimeHourCell.RealValue( breakDayOvertimeHourCell.RealValue() + nextDayOvertime );
@@ -105,7 +108,8 @@
               defaultDayOvertimeHourCell.RealValue( defaultDayOvertimeHourCell.RealValue() + nextDayOvertime );
             }
           }
-        }else if( shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄥ叚" ) or shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄦ棩" ) ){
+    //  }else if( shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄥ叚" ) or shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄦ棩" ) ){
+        }else if( shiftPlan.UnitPeriodTime().Period_MP().StartDate().DayOfWeek() = 6 or  shiftPlan.UnitPeriodTime().Period_MP().StartDate().DayOfWeek() = 7 ){
           // 浼戞伅鏃ュ姞鐝�
           overtime := shiftPlan.GetBreakDayOvertimeHour( false );
           breakDayOvertimeHourCell.RealValue( breakDayOvertimeHourCell.RealValue() + overtime );
@@ -114,7 +118,8 @@
               // 涓嬩竴澶╂槸鑺傚亣鏃�
               nextDayOvertime := shiftPlan.GetHolidayOvertimeHour( true );
               holidayOvertimeHourCell.RealValue( holidayOvertimeHourCell.RealValue() + nextDayOvertime );
-            }else if( shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄥ叚" ) or shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄦ棩" ) ){
+    //      }else if( shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄥ叚" ) or shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄦ棩" ) ){
+            }else if( shiftPlan.UnitPeriodTime().Period_MP().StartDate().DayOfWeek() = 6 or  shiftPlan.UnitPeriodTime().Period_MP().StartDate().DayOfWeek() = 7 ){
               // 涓嬩竴澶╂槸鍛ㄥ叚鎴栧懆鏃�
               nextDayOvertime := shiftPlan.GetBreakDayOvertimeHour( true );
               breakDayOvertimeHourCell.RealValue( breakDayOvertimeHourCell.RealValue() + nextDayOvertime );
@@ -133,7 +138,8 @@
               // 涓嬩竴澶╂槸鑺傚亣鏃�
               nextDayOvertime := shiftPlan.GetHolidayOvertimeHour( true );
               holidayOvertimeHourCell.RealValue( holidayOvertimeHourCell.RealValue() + nextDayOvertime );
-            }else if( shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄥ叚" ) or shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄦ棩" ) ){
+    //      }else if( shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄥ叚" ) or shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄦ棩" ) ){
+            }else if( shiftPlan.UnitPeriodTime().Period_MP().StartDate().DayOfWeek() = 6 or  shiftPlan.UnitPeriodTime().Period_MP().StartDate().DayOfWeek() = 7 ){
               // 涓嬩竴澶╂槸鍛ㄥ叚鎴栧懆鏃�
               nextDayOvertime := shiftPlan.GetBreakDayOvertimeHour( true );
               breakDayOvertimeHourCell.RealValue( breakDayOvertimeHourCell.RealValue() + nextDayOvertime );
@@ -145,7 +151,8 @@
           }
         }
       }else{
-        if( not shiftPlan.IsHoliday() and not ( shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄥ叚" ) or shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄦ棩" ) )){
+    //  if( not shiftPlan.IsHoliday() and not ( shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄥ叚" ) or shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄦ棩" ) )){
+        if( not shiftPlan.IsHoliday() and not ( shiftPlan.UnitPeriodTime().Period_MP().StartDate().DayOfWeek() = 6 or  shiftPlan.UnitPeriodTime().Period_MP().StartDate().DayOfWeek() = 7 )){
           qiangongCell := LocalCell_Default::GetCell(  rowKey + column7.CustomName(), cellIndexTree, cells, row, column7 );
           qiangongCell.RealValue( qiangongCell.RealValue() + 8 );
         }
@@ -202,12 +209,14 @@
       
       // 娆犲伐璐�
       qiangongCell := LocalCell_Default::GetCell(  rowKey + column7.CustomName(), cellIndexTree, cells, row, column7 );
-      qiangongCell.RealValue( qiangongCell.RealValue() );
-      
       qiangongfeiCell := LocalCell_Default::GetCell(  rowKey + column11.CustomName(), cellIndexTree, cells, row, column11 );
       qiangongfeiCell.RealValue( EmployeeCost::GetSalary( unit,qiangongMultiplier,qiangongCell.RealValue() ));
       
       
+      // 鎬诲姞鐝垂
+      totalOvertimePay := LocalCell_Default::GetCell(  rowKey + column12.CustomName(), cellIndexTree, cells, row, column12 );
+      totalOvertimePay.RealValue( jiejiarifeiCell.RealValue() + xiuxifeiCell.RealValue() + jiabanfeiCell.RealValue())
+      
       // 宸ヤ綔鏃�
       workingDayCell := LocalCell_Default::GetCell(  rowKey + column3.CustomName(), cellIndexTree, cells, row, column3 );
       workingDayCell.RealValue( workingDayCell.RealValue() );

--
Gitblit v1.9.3