From d907182b676b348aae346a15ed4e8790b75d226a Mon Sep 17 00:00:00 2001
From: xiaoding721 <33130084+xiaoding721@users.noreply.github.com>
Date: 星期日, 29 九月 2024 12:05:48 +0800
Subject: [PATCH] 修改三条产线轮换生产

---
 _Main/BL/Type_ProductionLineBatchData/Method_VerifyUnits.qbl                                                        |   16 +++++
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProductionLineBatchData/Component_pnlContent.def              |   62 +++++++++++++++++++-
 _Main/BL/Type_ProductionLineBatchData/Method_Enable.qbl                                                             |   26 ++++++--
 _Main/BL/Type_DispatchShiftPlan/StaticMethod_Dispatch.qbl                                                           |    2 
 _Main/BL/Relations/Relation_ProductionLineBatchData_ShiftPattern3_ShiftPattern_ProductionLineBa.qbl                 |   23 +++++++
 _Main/BL/Type_ProductionLineBatchData/Method_verifyEnable.qbl                                                       |    2 
 _Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/Component_ListProductionLineBatchData.def         |    2 
 _Main/BL/Type_ProductionLineBatchData/StaticMethod_Create.qbl                                                       |    6 +
 _Main/BL/Type_ProductionLineBatchData/Method_OnOK.qbl                                                               |    2 
 _Main/BL/Type_ProductionLineBatchData/Method_Update.qbl                                                             |    4 +
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProductionLineBatchData/Response_pnlActions_btnOk_OnClick.def |    4 +
 _Main/BL/Relations/Relation_ProductionLineBatchData_Unit3_Unit_ProductionLineBatchData3.qbl                         |   23 +++++++
 12 files changed, 156 insertions(+), 16 deletions(-)

diff --git a/_Main/BL/Relations/Relation_ProductionLineBatchData_ShiftPattern3_ShiftPattern_ProductionLineBa.qbl b/_Main/BL/Relations/Relation_ProductionLineBatchData_ShiftPattern3_ShiftPattern_ProductionLineBa.qbl
new file mode 100644
index 0000000..75a5fe6
--- /dev/null
+++ b/_Main/BL/Relations/Relation_ProductionLineBatchData_ShiftPattern3_ShiftPattern_ProductionLineBa.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation ProductionLineBatchData_ShiftPattern3_ShiftPattern_ProductionLineBatchData3
+{
+  #keys: '1[414996.1.105920038]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide ShiftPattern3
+  {
+    #keys: '3[414996.1.105920040][414996.1.105920039][414996.1.105920041]'
+    Cardinality: '0to1'
+    ObjectDefinition: ProductionLineBatchData
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide ProductionLineBatchData3
+  {
+    #keys: '3[414996.1.105920043][414996.1.105920042][414996.1.105920044]'
+    Cardinality: '1toN'
+    ObjectDefinition: ShiftPattern
+    OwningSide: 'Reference'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_ProductionLineBatchData_Unit3_Unit_ProductionLineBatchData3.qbl b/_Main/BL/Relations/Relation_ProductionLineBatchData_Unit3_Unit_ProductionLineBatchData3.qbl
new file mode 100644
index 0000000..3d6132b
--- /dev/null
+++ b/_Main/BL/Relations/Relation_ProductionLineBatchData_Unit3_Unit_ProductionLineBatchData3.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation ProductionLineBatchData_Unit3_Unit_ProductionLineBatchData3
+{
+  #keys: '1[414996.1.105920060]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide Unit3
+  {
+    #keys: '3[414996.1.105920062][414996.1.105920061][414996.1.105920063]'
+    Cardinality: '0to1'
+    ObjectDefinition: ProductionLineBatchData
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide ProductionLineBatchData3
+  {
+    #keys: '3[414996.1.105920065][414996.1.105920064][414996.1.105920066]'
+    Cardinality: '1toN'
+    ObjectDefinition: Unit
+    OwningSide: 'Reference'
+  }
+}
diff --git a/_Main/BL/Type_DispatchShiftPlan/StaticMethod_Dispatch.qbl b/_Main/BL/Type_DispatchShiftPlan/StaticMethod_Dispatch.qbl
index 1402b5a..35bca5a 100644
--- a/_Main/BL/Type_DispatchShiftPlan/StaticMethod_Dispatch.qbl
+++ b/_Main/BL/Type_DispatchShiftPlan/StaticMethod_Dispatch.qbl
@@ -24,7 +24,7 @@
          }
        }
       
-       owner.DispatchShiftPlan( relnew,ID := OS::GenerateGUIDAsString(),
+       owner.DispatchShiftPlan( relnew,ID := OS:: GenerateGUIDAsString(),
                                 ProductLine := shiftPlan.UnitPeriodTime().Unit().ID(),
                                 ShiftDate := shiftPlan.UnitPeriodTime().Period_MP().StartDate(),
                                 Tips := shiftPlan.Remark(),
diff --git a/_Main/BL/Type_ProductionLineBatchData/Method_Enable.qbl b/_Main/BL/Type_ProductionLineBatchData/Method_Enable.qbl
index 8347391..39d85a3 100644
--- a/_Main/BL/Type_ProductionLineBatchData/Method_Enable.qbl
+++ b/_Main/BL/Type_ProductionLineBatchData/Method_Enable.qbl
@@ -10,6 +10,7 @@
     // 杞崲鐝缂撳瓨
     shiftPattern1 := this.ShiftPattern1();
     shiftPattern2 := this.ShiftPattern2();
+    shiftPattern3 := this.ShiftPattern3();
     tempShiftPattern := shiftPattern1;
     
     dayPeriod_MPs := selectsortedset( owner,Period_MP,period_MP, period_MP.TimeUnit() = 'Day' and period_MP.StartDate() >= this.StartDate() and period_MP.EndDate() <= this.EndDate() ,period_MP.StartDate());
@@ -28,26 +29,31 @@
         
         tempPeriod_MPs := selectset( dayPeriod_MPs,Elements,period_MP,period_MP.StartDate() >= tempStartDate and period_MP.EndDate() <= tempEndDate );
         
-        unitPeriodTimes1 := selectset( this.Unit1(),UnitPeriod.astype( UnitPeriodTime ),unitPeriodTime,exists( tempPeriod_MPs,Elements,period_MP,period_MP = unitPeriodTime.Period_MP()));
-        unitPeriodTimes2 := selectset( this.Unit2(),UnitPeriod.astype( UnitPeriodTime ),unitPeriodTime,exists( tempPeriod_MPs,Elements,period_MP,period_MP = unitPeriodTime.Period_MP()));
-        
+        unitPeriodTimes1 := selectset( this.Unit1(),UnitPeriod.astype( UnitPeriodTime ),unitPeriodTime,exists( tempPeriod_MPs,Elements,period_MP,period_MP = unitPeriodTime.Period_MP()) and not isnull( unitPeriodTime.UnitAvailability()));
+        unitPeriodTimes2 := selectset( this.Unit2(),UnitPeriod.astype( UnitPeriodTime ),unitPeriodTime,exists( tempPeriod_MPs,Elements,period_MP,period_MP = unitPeriodTime.Period_MP()) and not isnull( unitPeriodTime.UnitAvailability()));
+        unitPeriodTimes3 := selectset( this.Unit3(),UnitPeriod.astype( UnitPeriodTime ),unitPeriodTime,exists( tempPeriod_MPs,Elements,period_MP,period_MP = unitPeriodTime.Period_MP()) and not isnull( unitPeriodTime.UnitAvailability()));
         if( unitPeriodTimes1.Size() > 0 ){
           this.OnOK( unitPeriodTimes1,shiftPattern1 ); 
         }
         if( unitPeriodTimes2.Size() > 0 ){
           this.OnOK( unitPeriodTimes2,shiftPattern2 );
         }
+        if( unitPeriodTimes3.Size() > 0 ){
+          this.OnOK( unitPeriodTimes3,shiftPattern3 );
+        }
         
         // 鎹㈢彮娆�
         tempShiftPattern := shiftPattern1;
         shiftPattern1 := shiftPattern2;
-        shiftPattern2 := tempShiftPattern;
+        shiftPattern2 := shiftPattern3;
+        shiftPattern3 := tempShiftPattern;
       }
     }
     if( weekPeriod_MPs.Size() <> 0 ){
       traverse( weekPeriod_MPs,Elements,period_MP ){
-        unitPeriodTimes1 := selectset( this.Unit1(),UnitPeriod.astype( UnitPeriodTime ),unitPeriodTime,period_MP = unitPeriodTime.Period_MP());
-        unitPeriodTimes2 := selectset( this.Unit2(),UnitPeriod.astype( UnitPeriodTime ),unitPeriodTime,period_MP = unitPeriodTime.Period_MP());
+        unitPeriodTimes1 := selectset( this.Unit1(),UnitPeriod.astype( UnitPeriodTime ),unitPeriodTime,period_MP = unitPeriodTime.Period_MP() and not isnull( unitPeriodTime.UnitAvailability()));
+        unitPeriodTimes2 := selectset( this.Unit2(),UnitPeriod.astype( UnitPeriodTime ),unitPeriodTime,period_MP = unitPeriodTime.Period_MP() and not isnull( unitPeriodTime.UnitAvailability()));
+        unitPeriodTimes3 := selectset( this.Unit3(),UnitPeriod.astype( UnitPeriodTime ),unitPeriodTime,period_MP = unitPeriodTime.Period_MP() and not isnull( unitPeriodTime.UnitAvailability()));
         
         if( unitPeriodTimes1.Size() > 0 ){
           this.OnOK( unitPeriodTimes1,shiftPattern1 ); 
@@ -55,11 +61,15 @@
         if( unitPeriodTimes2.Size() > 0 ){
           this.OnOK( unitPeriodTimes2,shiftPattern2 );
         }
-    
+        if( unitPeriodTimes3.Size() > 0 ){
+          this.OnOK( unitPeriodTimes3,shiftPattern3 );
+        }
+        
         // 鎹㈢彮娆�
         tempShiftPattern := shiftPattern1;
         shiftPattern1 := shiftPattern2;
-        shiftPattern2 := tempShiftPattern;
+        shiftPattern2 := shiftPattern3;
+        shiftPattern3 := tempShiftPattern;
       } 
     }
     
diff --git a/_Main/BL/Type_ProductionLineBatchData/Method_OnOK.qbl b/_Main/BL/Type_ProductionLineBatchData/Method_OnOK.qbl
index 943b78d..8c9012e 100644
--- a/_Main/BL/Type_ProductionLineBatchData/Method_OnOK.qbl
+++ b/_Main/BL/Type_ProductionLineBatchData/Method_OnOK.qbl
@@ -45,8 +45,8 @@
         minloadthreshold := firstElement.MinimumLoadThreshold();
       }
     }
-    isbatchedit := unitPeriodTimes.Size() > 1;
     
+    isbatchedit := unitPeriodTimes.Size() > 1;
     UnitAvailability::CreateOrUpdateForUnitPeriodTimes( unitPeriodTimes,
                                                         not isbatchedit or false,
                                                         timeunit,
diff --git a/_Main/BL/Type_ProductionLineBatchData/Method_Update.qbl b/_Main/BL/Type_ProductionLineBatchData/Method_Update.qbl
index 68b817c..a19ab35 100644
--- a/_Main/BL/Type_ProductionLineBatchData/Method_Update.qbl
+++ b/_Main/BL/Type_ProductionLineBatchData/Method_Update.qbl
@@ -3,8 +3,10 @@
 Method Update (
   Unit line1,
   Unit line2,
+  Unit line3,
   ShiftPattern shiftPattern1,
   ShiftPattern shiftPattern2,
+  ShiftPattern shiftPattern3,
   Date startDate,
   Date endDate
 )
@@ -32,8 +34,10 @@
     
     this.ShiftPattern1( relset, shiftPattern1 );
     this.ShiftPattern2( relset, shiftPattern2 );
+    this.ShiftPattern3( relset, shiftPattern3 );
     this.Unit1( relset, line1 );
     this.Unit2( relset, line2 );
+    this.Unit3( relset, line3 );
     this.StartDate( startDate );
     this.EndDate( endDate );
   *]
diff --git a/_Main/BL/Type_ProductionLineBatchData/Method_VerifyUnits.qbl b/_Main/BL/Type_ProductionLineBatchData/Method_VerifyUnits.qbl
new file mode 100644
index 0000000..6220503
--- /dev/null
+++ b/_Main/BL/Type_ProductionLineBatchData/Method_VerifyUnits.qbl
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: #root
+Method VerifyUnits (
+  const Unit unit1,
+  const Unit unit2,
+  const Unit unit3
+) const declarative as Boolean
+{
+  TextBody:
+  [*
+    // Akari Sep-29-2024 (created)
+    return ( this.Unit1() = unit1 or this.Unit2() = unit2 or this.Unit3() = unit3 or 
+             this.Unit1() = unit2 or this.Unit2() = unit3 or this.Unit3() = unit1 or
+             this.Unit1() = unit3 or this.Unit2() = unit1 or this.Unit3() = unit2 )
+  *]
+}
diff --git a/_Main/BL/Type_ProductionLineBatchData/Method_verifyEnable.qbl b/_Main/BL/Type_ProductionLineBatchData/Method_verifyEnable.qbl
index bf02abd..e26abfe 100644
--- a/_Main/BL/Type_ProductionLineBatchData/Method_verifyEnable.qbl
+++ b/_Main/BL/Type_ProductionLineBatchData/Method_verifyEnable.qbl
@@ -11,7 +11,7 @@
     value := true;
     //锛�3锛�  鍚屼竴鏃堕棿锛屼竴鏉′骇绾夸笉鍙互鍜屽鏉′骇绾胯疆鎹㈢敓浜э紝濡傛灉浜х嚎1ZKG鍜屼骇绾�2ZK鐨勮疆鎹㈢彮娆″凡缁忓湪4/29/2024鐢熸晥锛岄偅涔堜骇绾�1ZKG鍜屽叾浠栦骇绾跨殑杞崲鐝鏃犳硶鍦ㄥ悓涓�鏃堕棿鐢熸晥锛屾鏃躲�怑nable銆戞寜閽鐢�
     verifyData := select( owner,ProductionLineBatchData,plbd, plbd <> this and plbd.IsEnable() and 
-                          ( plbd.Unit1() = this.Unit1() or plbd.Unit2() = this.Unit2() or plbd.Unit1() = this.Unit2() or plbd.Unit2() = this.Unit1()) and
+                          plbd.VerifyUnits( this.Unit1(),this.Unit2(),this.Unit3() ) and
                           LocalTool::IsOverlap( plbd.StartDate(),plbd.EndDate(),this.StartDate(),this.EndDate()));
     
     if( not isnull( verifyData )){
diff --git a/_Main/BL/Type_ProductionLineBatchData/StaticMethod_Create.qbl b/_Main/BL/Type_ProductionLineBatchData/StaticMethod_Create.qbl
index 7654032..4c58a4c 100644
--- a/_Main/BL/Type_ProductionLineBatchData/StaticMethod_Create.qbl
+++ b/_Main/BL/Type_ProductionLineBatchData/StaticMethod_Create.qbl
@@ -4,8 +4,10 @@
   MacroPlan owner,
   Unit line1,
   Unit line2,
+  Unit line3,
   ShiftPattern shiftPattern1,
   ShiftPattern shiftPattern2,
+  ShiftPattern shiftPattern3,
   Date startDate,
   Date endDate
 ) as ProductionLineBatchData
@@ -13,7 +15,7 @@
   TextBody:
   [*
     // rislai Jun-7-2024 (created)
-    if( isnull( shiftPattern1 ) or isnull( shiftPattern2 ) or isnull( line1 ) or isnull( line2 )){
+    if( isnull( shiftPattern1 ) or isnull( line1 ) ){
       error( "鏁版嵁涓嶈兘涓虹┖锛�" ); 
     }
     // 锛�1锛� 鏂板浜х嚎1鍜屼骇绾�2鐩稿悓鏃舵姤閿欌�滅浉鍚屼骇绾挎棤娉曟柊澧炩�濓紱
@@ -32,8 +34,10 @@
     data := owner.ProductionLineBatchData( relnew,
                                            ShiftPattern1 := shiftPattern1,
                                            ShiftPattern2 := shiftPattern2,
+                                           ShiftPattern3 := shiftPattern3,
                                            Unit1 := line1,
                                            Unit2 := line2,
+                                           Unit3 := line3,
                                            StartDate := startDate,
                                            EndDate := endDate );
     
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProductionLineBatchData/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProductionLineBatchData/Component_pnlContent.def
index 896cf38..e69df80 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProductionLineBatchData/Component_pnlContent.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProductionLineBatchData/Component_pnlContent.def
@@ -86,7 +86,7 @@
         DataBinding: 'DialogData.Data.ShiftPattern1'
         DisplayField: 'Name'
         Label: 'Shift pattern 1'
-        Taborder: 2
+        Taborder: 3
       ]
     }
     Component ddlShiftPattern2
@@ -114,7 +114,7 @@
         DataBinding: 'DialogData.Data.ShiftPattern2'
         DisplayField: 'Name'
         Label: 'Shift pattern 2'
-        Taborder: 3
+        Taborder: 4
       ]
     }
     Component dsStartDate
@@ -125,7 +125,7 @@
       [
         DataBinding: 'DialogData.Data.StartDate'
         Label: 'Start date'
-        Taborder: 4
+        Taborder: 6
       ]
     }
     Component dsEndDate
@@ -136,6 +136,62 @@
       [
         DataBinding: 'DialogData.Data.EndDate'
         Label: 'End date'
+        Taborder: 7
+      ]
+    }
+    Component ddlLine3
+    {
+      #keys: '[414996.1.106189463]'
+      BaseType: 'WebDropDownList'
+      Databinding: 'Unit'
+      Children:
+      [
+        Component deContent872
+        {
+          #keys: '[414996.1.106189464]'
+          BaseType: 'WebDataExtractor'
+          Properties:
+          [
+            DataType: 'structured[Unit]'
+            Source: 'ApplicationMacroPlanner.DataHolderUnit'
+            Taborder: 0
+            Transformation: 'Elements.astype(Unit)'
+          ]
+        }
+      ]
+      Properties:
+      [
+        DataBinding: 'DialogData.Data.Unit3'
+        DisplayField: 'Name'
+        Label: 'Line 3'
+        Taborder: 2
+      ]
+    }
+    Component ddlShiftPattern3
+    {
+      #keys: '[414996.1.108410230]'
+      BaseType: 'WebDropDownList'
+      Databinding: 'ShiftPattern'
+      Children:
+      [
+        Component deContent529
+        {
+          #keys: '[414996.1.108410231]'
+          BaseType: 'WebDataExtractor'
+          Properties:
+          [
+            DataType: 'MacroPlan'
+            Source: 'MacroPlan'
+            Taborder: 0
+            Transformation: 'ShiftPattern'
+          ]
+        }
+      ]
+      Properties:
+      [
+        DataBinding: 'DialogData.Data.ShiftPattern3'
+        DisplayField: 'Name'
+        Label: 'Shift pattern 3'
         Taborder: 5
       ]
     }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProductionLineBatchData/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProductionLineBatchData/Response_pnlActions_btnOk_OnClick.def
index b22731d..d6e9bc5 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProductionLineBatchData/Response_pnlActions_btnOk_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProductionLineBatchData/Response_pnlActions_btnOk_OnClick.def
@@ -15,16 +15,20 @@
       if( not isnull( DialogData.Data( ))){
         DialogData.Data( ).Update( ddlLine1.Data(),
                                    ddlLine2.Data(),
+                                   ddlLine3.Data(),
                                    ddlShiftPattern1.Data(),
                                    ddlShiftPattern2.Data(),
+                                   ddlShiftPattern3.Data(),
                                    dsStartDate.Date(),
                                    dsEndDate.Date());
       }else{
         ProductionLineBatchData::Create( MacroPlan,
                                          ddlLine1.Data(),
                                          ddlLine2.Data(),
+                                         ddlLine3.Data(),
                                          ddlShiftPattern1.Data(),
                                          ddlShiftPattern2.Data(),
+                                         ddlShiftPattern3.Data(),
                                          dsStartDate.Date(),
                                          dsEndDate.Date()); 
       }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/Component_ListProductionLineBatchData.def b/_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/Component_ListProductionLineBatchData.def
index d7fd926..a380914 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/Component_ListProductionLineBatchData.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/Component_ListProductionLineBatchData.def
@@ -28,7 +28,7 @@
       ]
       Properties:
       [
-        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ImageIsEnable","title":"ImageIsEnable","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ImageIsEnable"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Unit1.Name","title":"Unit1","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Unit1.Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Unit2.Name","title":"Unit2","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Unit2.Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ShiftPattern1.Name","title":"Shift pattern 1","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ShiftPattern1.Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ShiftPattern2.Name","title":"Shift pattern 2","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ShiftPattern2.Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StartDate","title":"Start date","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StartDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"EndDate","title":"End date","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"EndDate"}}]'
+        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ImageIsEnable","title":"ImageIsEnable","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ImageIsEnable"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Unit1.Name","title":"Unit1","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Unit1.Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Unit2.Name","title":"Unit2","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Unit2.Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Unit3.Name","title":"Unit3","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Unit3.Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ShiftPattern1.Name","title":"Shift pattern 1","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ShiftPattern1.Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ShiftPattern2.Name","title":"Shift pattern 2","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ShiftPattern2.Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ShiftPattern3.Name","title":"Shift pattern 3","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ShiftPattern3.Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StartDate","title":"Start date","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StartDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"EndDate","title":"End date","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"EndDate"}}]'
         ContextMenu: 'listContextMenuProductionLineBatchData'
         Taborder: 2
       ]

--
Gitblit v1.9.3