From d05336a8c9f4aefa7f8230093700f508b2bc95cf Mon Sep 17 00:00:00 2001
From: rislai <risheng.lai@capgemini.com>
Date: 星期一, 10 六月 2024 23:27:59 +0800
Subject: [PATCH] 添加批量设置shift pattern功能
---
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupDebug.def | 25 +
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProductionLineBatchData/_ROOT_Component_DialogCreateEditProductionLineBatchData.def | 31 +
_Main/BL/Type_ProductionLineBatchData/Attribute_IsEnable.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/Response_ListProductionLineBatchData_mnDelete_OnClick.def | 21 +
_Main/BL/Relations/Relation_ProductionLineBatchData_Unit2_Unit_ProductionLineBatchData2.qbl | 23 +
_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/Response_ListProductionLineBatchData_mnEdit_OnClick.def | 20 +
_Main/BL/Type_ProductionLineBatchData/Method_OnOK.qbl | 88 ++++
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProductionLineBatchData/Method_CreateEdit.def | 18
_Main/BL/Relations/Relation_ProductionLineBatchData_ShiftPattern2_ShiftPattern_ProductionLineBa.qbl | 23 +
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProductionLineBatchData/Component_pnlContent.def | 148 +++++++
_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/Response_ListProductionLineBatchData_mnEnable_OnClick.def | 23 +
_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/Component_ListProductionLineBatchData.def | 59 ++
_Main/BL/Relations/Relation_ProductionLineBatchData_MacroPlan_MacroPlan_ProductionLineBatchData.qbl | 23 +
_Main/UI/MacroPlannerWebApp/Views/Time_Capacities.vw | 70 +++
_Main/BL/Type_ProductionLineBatchData/DefaultValue_IsEnable.qbl | 7
_Main/BL/Type_Test/StaticMethod_Test.qbl | 13
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def | 1
_Main/BL/Type_ProductionLineBatchData/Method_Update.qbl | 40 ++
_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/Component_PanelProductionLineBatchData.def | 14
_Main/BL/Type_ProductionLineBatchData/_ROOT_Type_ProductionLineBatchData.qbl | 9
_Main/BL/Relations/Relation_ProductionLineBatchData_ShiftPattern1_ShiftPattern_ProductionLineBa.qbl | 23 +
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_applicationDevelopmentActionBarPageDef#1.def | 8
_Main/BL/Type_ProductionLineBatchData/Method_Enable.qbl | 68 +++
_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/Component_listContextMenuProductionLineBatchData.def | 78 +++
_Main/BL/Type_ProductionLineBatchData/Method_verifyEnable.qbl | 26 +
_Main/BL/Relations/Relation_ProductionLineBatchData_Unit1_Unit_ProductionLineBatchData1.qbl | 23 +
_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/_ROOT_Component_FormProductionLineBatchData.def | 16
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProductionLineBatchData/Method_Edit.def | 15
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProductionLineBatchData/Response_pnlActions_btnOk_OnClick.def | 37 +
_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/Response_ListProductionLineBatchData_mnCreate_OnClick.def | 18
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProductionLineBatchData/Method_Create.def | 10
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupDebug_ButtonTest_OnClick.def | 16
_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/Component_listActionBarPageProductionLineBatchData.def | 10
_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/Response_ListProductionLineBatchData_mnDisable_OnClick.def | 26 +
_Main/BL/Type_ProductionLineBatchData/Method_Disable.qbl | 10
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProductionLineBatchData/Response_pnlActions_btnCancel_OnClick.def | 15
_Main/BL/Type_ProductionLineBatchData/Attribute_EndDate.qbl | 7
_Main/BL/Type_ProductionLineBatchData/StaticMethod_Create.qbl | 40 ++
_Main/BL/Type_ProductionLineBatchData/Attribute_StartDate.qbl | 7
_Main/BL/Type_ShiftPattern/_ROOT_Type_ShiftPattern.qbl | 6
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProductionLineBatchData/Component_pnlActions.def | 40 ++
41 files changed, 1,162 insertions(+), 0 deletions(-)
diff --git a/_Main/BL/Relations/Relation_ProductionLineBatchData_MacroPlan_MacroPlan_ProductionLineBatchData.qbl b/_Main/BL/Relations/Relation_ProductionLineBatchData_MacroPlan_MacroPlan_ProductionLineBatchData.qbl
new file mode 100644
index 0000000..5174b44
--- /dev/null
+++ b/_Main/BL/Relations/Relation_ProductionLineBatchData_MacroPlan_MacroPlan_ProductionLineBatchData.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation ProductionLineBatchData_MacroPlan_MacroPlan_ProductionLineBatchData
+{
+ #keys: '1[412672.0.998406961]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide MacroPlan
+ {
+ #keys: '3[412672.0.998406963][412672.0.998406962][412672.0.998406964]'
+ Cardinality: '0to1'
+ ObjectDefinition: ProductionLineBatchData
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide ProductionLineBatchData
+ {
+ #keys: '3[412672.0.998406966][412672.0.998406965][412672.0.998406967]'
+ Cardinality: '1toN'
+ ObjectDefinition: MacroPlan
+ OwningSide: 'Owned'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_ProductionLineBatchData_ShiftPattern1_ShiftPattern_ProductionLineBa.qbl b/_Main/BL/Relations/Relation_ProductionLineBatchData_ShiftPattern1_ShiftPattern_ProductionLineBa.qbl
new file mode 100644
index 0000000..d823b68
--- /dev/null
+++ b/_Main/BL/Relations/Relation_ProductionLineBatchData_ShiftPattern1_ShiftPattern_ProductionLineBa.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation ProductionLineBatchData_ShiftPattern1_ShiftPattern_ProductionLineBatchData1
+{
+ #keys: '1[412672.0.998377419]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide ShiftPattern1
+ {
+ #keys: '3[412672.0.998377421][412672.0.998377420][412672.0.998377422]'
+ Cardinality: '0to1'
+ ObjectDefinition: ProductionLineBatchData
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide ProductionLineBatchData1
+ {
+ #keys: '3[412672.0.998377424][412672.0.998377423][412672.0.998377425]'
+ Cardinality: '1toN'
+ ObjectDefinition: ShiftPattern
+ OwningSide: 'Reference'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_ProductionLineBatchData_ShiftPattern2_ShiftPattern_ProductionLineBa.qbl b/_Main/BL/Relations/Relation_ProductionLineBatchData_ShiftPattern2_ShiftPattern_ProductionLineBa.qbl
new file mode 100644
index 0000000..5691f4e
--- /dev/null
+++ b/_Main/BL/Relations/Relation_ProductionLineBatchData_ShiftPattern2_ShiftPattern_ProductionLineBa.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation ProductionLineBatchData_ShiftPattern2_ShiftPattern_ProductionLineBatchData2
+{
+ #keys: '1[412672.0.998377443]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide ShiftPattern2
+ {
+ #keys: '3[412672.0.998377445][412672.0.998377444][412672.0.998377446]'
+ Cardinality: '0to1'
+ ObjectDefinition: ProductionLineBatchData
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide ProductionLineBatchData2
+ {
+ #keys: '3[412672.0.998377448][412672.0.998377447][412672.0.998377449]'
+ Cardinality: '1toN'
+ ObjectDefinition: ShiftPattern
+ OwningSide: 'Reference'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_ProductionLineBatchData_Unit1_Unit_ProductionLineBatchData1.qbl b/_Main/BL/Relations/Relation_ProductionLineBatchData_Unit1_Unit_ProductionLineBatchData1.qbl
new file mode 100644
index 0000000..329bd12
--- /dev/null
+++ b/_Main/BL/Relations/Relation_ProductionLineBatchData_Unit1_Unit_ProductionLineBatchData1.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation ProductionLineBatchData_Unit1_Unit_ProductionLineBatchData1
+{
+ #keys: '1[412672.0.998377384]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide Unit1
+ {
+ #keys: '3[412672.0.998377386][412672.0.998377385][412672.0.998377387]'
+ Cardinality: '0to1'
+ ObjectDefinition: ProductionLineBatchData
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide ProductionLineBatchData1
+ {
+ #keys: '3[412672.0.998377389][412672.0.998377388][412672.0.998377390]'
+ Cardinality: '1toN'
+ ObjectDefinition: Unit
+ OwningSide: 'Reference'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_ProductionLineBatchData_Unit2_Unit_ProductionLineBatchData2.qbl b/_Main/BL/Relations/Relation_ProductionLineBatchData_Unit2_Unit_ProductionLineBatchData2.qbl
new file mode 100644
index 0000000..8125946
--- /dev/null
+++ b/_Main/BL/Relations/Relation_ProductionLineBatchData_Unit2_Unit_ProductionLineBatchData2.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation ProductionLineBatchData_Unit2_Unit_ProductionLineBatchData2
+{
+ #keys: '1[412672.0.998377400]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide Unit2
+ {
+ #keys: '3[412672.0.998377402][412672.0.998377401][412672.0.998377403]'
+ Cardinality: '0to1'
+ ObjectDefinition: ProductionLineBatchData
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide ProductionLineBatchData2
+ {
+ #keys: '3[412672.0.998377405][412672.0.998377404][412672.0.998377406]'
+ Cardinality: '1toN'
+ ObjectDefinition: Unit
+ OwningSide: 'Reference'
+ }
+}
diff --git a/_Main/BL/Type_ProductionLineBatchData/Attribute_EndDate.qbl b/_Main/BL/Type_ProductionLineBatchData/Attribute_EndDate.qbl
new file mode 100644
index 0000000..84e3048
--- /dev/null
+++ b/_Main/BL/Type_ProductionLineBatchData/Attribute_EndDate.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute EndDate
+{
+ #keys: '3[412672.0.998407025][412672.0.998407024][412672.0.998407026]'
+ ValueType: Date
+}
diff --git a/_Main/BL/Type_ProductionLineBatchData/Attribute_IsEnable.qbl b/_Main/BL/Type_ProductionLineBatchData/Attribute_IsEnable.qbl
new file mode 100644
index 0000000..f2f8d37
--- /dev/null
+++ b/_Main/BL/Type_ProductionLineBatchData/Attribute_IsEnable.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute IsEnable
+{
+ #keys: '3[412672.0.1013479637][412672.0.1013479636][412672.0.1013479638]'
+ ValueType: Boolean
+}
diff --git a/_Main/BL/Type_ProductionLineBatchData/Attribute_StartDate.qbl b/_Main/BL/Type_ProductionLineBatchData/Attribute_StartDate.qbl
new file mode 100644
index 0000000..a9e97b7
--- /dev/null
+++ b/_Main/BL/Type_ProductionLineBatchData/Attribute_StartDate.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute StartDate
+{
+ #keys: '3[412672.0.998407015][412672.0.998407014][412672.0.998407016]'
+ ValueType: Date
+}
diff --git a/_Main/BL/Type_ProductionLineBatchData/DefaultValue_IsEnable.qbl b/_Main/BL/Type_ProductionLineBatchData/DefaultValue_IsEnable.qbl
new file mode 100644
index 0000000..69fa188
--- /dev/null
+++ b/_Main/BL/Type_ProductionLineBatchData/DefaultValue_IsEnable.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+ ISOValue: 'false'
+ TargetAttribute: IsEnable
+}
diff --git a/_Main/BL/Type_ProductionLineBatchData/Method_Disable.qbl b/_Main/BL/Type_ProductionLineBatchData/Method_Disable.qbl
new file mode 100644
index 0000000..3aa9270
--- /dev/null
+++ b/_Main/BL/Type_ProductionLineBatchData/Method_Disable.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#parent: #root
+Method Disable
+{
+ TextBody:
+ [*
+ // rislai Jun-10-2024 (created)
+ this.IsEnable( false );
+ *]
+}
diff --git a/_Main/BL/Type_ProductionLineBatchData/Method_Enable.qbl b/_Main/BL/Type_ProductionLineBatchData/Method_Enable.qbl
new file mode 100644
index 0000000..3dd7f3e
--- /dev/null
+++ b/_Main/BL/Type_ProductionLineBatchData/Method_Enable.qbl
@@ -0,0 +1,68 @@
+Quintiq file version 2.0
+#parent: #root
+Method Enable
+{
+ TextBody:
+ [*
+ // rislai Jun-7-2024 (created)
+ owner := this.MacroPlan();
+
+ // 杞崲鐝缂撳瓨
+ shiftPattern1 := this.ShiftPattern1();
+ shiftPattern2 := this.ShiftPattern2();
+ 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());
+ weekPeriod_MPs := selectsortedset( owner,Period_MP,period_MP, period_MP.TimeUnit() = 'Week' and period_MP.StartDate() >= this.StartDate() and period_MP.EndDate() < this.EndDate() ,period_MP.StartDate());
+
+ // period_MPs := selectsortedset( owner,Period_MP,period_MP, period_MP.StartDate() >= this.StartDate() and period_MP.EndDate() <= this.EndDate() ,period_MP.StartDate());
+ if( dayPeriod_MPs.Size() > 0 ){
+
+ startDate := dayPeriod_MPs.Element( 0 ).StartDate();
+ endDate := dayPeriod_MPs.Element( dayPeriod_MPs.Size() - 1 ).EndDate();
+
+ // 姣忎竷澶╄疆鎹㈢彮娆�
+ for( i := startDate.StartOfWeek(); i < (endDate.StartOfWeek() - 1).StartOfNextWeek(); i := i.StartOfNextWeek()){
+ tempStartDate := i;
+ tempEndDate := i.StartOfNextWeek();
+
+ 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()));
+
+ if( unitPeriodTimes1.Size() > 0 ){
+ this.OnOK( unitPeriodTimes1,shiftPattern1 );
+ }
+ if( unitPeriodTimes2.Size() > 0 ){
+ this.OnOK( unitPeriodTimes2,shiftPattern2 );
+ }
+
+ // 鎹㈢彮娆�
+ tempShiftPattern := shiftPattern1;
+ shiftPattern1 := shiftPattern2;
+ shiftPattern2 := 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());
+
+ if( unitPeriodTimes1.Size() > 0 ){
+ this.OnOK( unitPeriodTimes1,shiftPattern1 );
+ }
+ if( unitPeriodTimes2.Size() > 0 ){
+ this.OnOK( unitPeriodTimes2,shiftPattern2 );
+ }
+
+ // 鎹㈢彮娆�
+ tempShiftPattern := shiftPattern1;
+ shiftPattern1 := shiftPattern2;
+ shiftPattern2 := tempShiftPattern;
+ }
+ }
+
+ this.IsEnable( true );
+ *]
+}
diff --git a/_Main/BL/Type_ProductionLineBatchData/Method_OnOK.qbl b/_Main/BL/Type_ProductionLineBatchData/Method_OnOK.qbl
new file mode 100644
index 0000000..943b78d
--- /dev/null
+++ b/_Main/BL/Type_ProductionLineBatchData/Method_OnOK.qbl
@@ -0,0 +1,88 @@
+Quintiq file version 2.0
+#parent: #root
+Method OnOK (
+ UnitPeriodTimes unitPeriodTimes,
+ ShiftPattern shiftPattern
+)
+{
+ TextBody:
+ [*
+ // rislai Jun-9-2024 (created)
+ firstElement := minselect( unitPeriodTimes, Elements, e, true, e.Start() );
+
+ start := this.MacroPlan().Start();
+ timeunit := this.MacroPlan().StartOfPlanningPeriod().TimeUnit();
+ maintenance := Duration::Zero();
+ efficiency := 1.0;
+ allocation := 1.0;
+
+ maxloadpercentage := this.MacroPlan().GlobalParameters_MP().DefaultMaxLoadPercentage();
+ nrofunitopen := 1;
+ minloadthreshold := 0.0;
+
+ if( not isnull( firstElement ) ){
+ // To inherit the value from last unit availability while creating a new unit availability
+ unitavailability := firstElement.UnitAvailability();
+ start := firstElement.Start();
+
+ if( not isnull( unitavailability ) ){
+ timeunit := unitavailability.TimeUnit();
+ maintenance := unitavailability.Maintenance();
+ efficiency := unitavailability.Efficiency();
+ allocation := unitavailability.Allocation();
+
+ maxloadpercentage := unitavailability.MaximumLoadPercentage();
+ nrofunitopen := unitavailability.NrOfUnitsOpen();
+ minloadthreshold := unitavailability.MinimumLoadThreshold();
+ }else{
+ timeunit := firstElement.Period_MP().TimeUnit();
+ maintenance := firstElement.Maintenance();
+ efficiency := firstElement.Efficiency();
+ allocation := firstElement.Allocation();
+
+ maxloadpercentage := firstElement.MaximumLoadPercentage();
+ nrofunitopen := firstElement.NrOfOpen();
+ minloadthreshold := firstElement.MinimumLoadThreshold();
+ }
+ }
+ isbatchedit := unitPeriodTimes.Size() > 1;
+
+ UnitAvailability::CreateOrUpdateForUnitPeriodTimes( unitPeriodTimes,
+ not isbatchedit or false,
+ timeunit,
+ maintenance,
+ not isbatchedit or false,
+ efficiency,
+ false,
+ allocation,
+ not isbatchedit or true,
+ shiftPattern,
+ not isbatchedit or false,
+ maxloadpercentage,
+ not isbatchedit or false,
+ nrofunitopen,
+ false,
+ not isbatchedit or false,
+ minloadthreshold
+ );
+
+ //UnitAvailability::CreateOrUpdateForUnitPeriodTimes( unitPeriodTimes,
+ // not isbatchedit or CheckBoxBatchEditMaintenance.Checked(),
+ // data.TimeUnit(),
+ // data.Maintenance(),
+ // not isbatchedit or CheckBoxBatchEditEfficiency.Checked(),
+ // data.Efficiency(),
+ // false,
+ // data.Allocation(),
+ // not isbatchedit or CheckBoxBatchEditShiftPattern.Checked(),
+ // data.ShiftPattern(),
+ // not isbatchedit or CheckBoxBatchEditMaxLoadPercentage.Checked(),
+ // data.MaximumLoadPercentage(),
+ // not isbatchedit or CheckBoxBatchEditNrOfUnitsOpen.Checked(),
+ // data.NrOfUnitsOpen(),
+ // DataHolderFromThisPeriodOnward.Data(),
+ // not isbatchedit or CheckBoxBatchEditMinimumLoadThreshold.Checked(),
+ // data.MinimumLoadThreshold()
+ // );
+ *]
+}
diff --git a/_Main/BL/Type_ProductionLineBatchData/Method_Update.qbl b/_Main/BL/Type_ProductionLineBatchData/Method_Update.qbl
new file mode 100644
index 0000000..68b817c
--- /dev/null
+++ b/_Main/BL/Type_ProductionLineBatchData/Method_Update.qbl
@@ -0,0 +1,40 @@
+Quintiq file version 2.0
+#parent: #root
+Method Update (
+ Unit line1,
+ Unit line2,
+ ShiftPattern shiftPattern1,
+ ShiftPattern shiftPattern2,
+ Date startDate,
+ Date endDate
+)
+{
+ TextBody:
+ [*
+ // rislai Jun-7-2024 (created)
+ owner := this.MacroPlan();
+
+ if( isnull( shiftPattern1 ) or isnull( shiftPattern2 ) or isnull( line1 ) or isnull( line2 )){
+ error( "鏁版嵁涓嶈兘涓虹┖锛�" );
+ }
+ // 锛�1锛� 鏂板浜х嚎1鍜屼骇绾�2鐩稿悓鏃舵姤閿欌�滅浉鍚屼骇绾挎棤娉曟柊澧炩�濓紱
+ if( line1 = line2 ){
+ error( "鐩稿悓浜х嚎鏃犳硶鏂板" );
+ }
+
+ // 锛�2锛� 鐩稿悓鐨勪骇绾跨彮娆★紝鐢熸晥鏃堕棿鍙互缁存姢澶氫釜锛屼絾鏄敓鏁堟椂闂撮噸澶嶆椂鎶ラ敊鈥滆鏁版嵁宸茬淮鎶も�濓紱
+ verifyData := select( owner,ProductionLineBatchData,data,data.Unit1() = line1 and data.Unit2() = line2 and
+ data.ShiftPattern1() = shiftPattern1 and data.ShiftPattern2() = shiftPattern2 and
+ data.StartDate() = startDate and data.EndDate() = endDate and data <> this );
+ if( not isnull( verifyData )){
+ error( "璇ユ暟鎹凡缁存姢" );
+ }
+
+ this.ShiftPattern1( relset, shiftPattern1 );
+ this.ShiftPattern2( relset, shiftPattern2 );
+ this.Unit1( relset, line1 );
+ this.Unit2( relset, line2 );
+ this.StartDate( startDate );
+ this.EndDate( endDate );
+ *]
+}
diff --git a/_Main/BL/Type_ProductionLineBatchData/Method_verifyEnable.qbl b/_Main/BL/Type_ProductionLineBatchData/Method_verifyEnable.qbl
new file mode 100644
index 0000000..0226cbe
--- /dev/null
+++ b/_Main/BL/Type_ProductionLineBatchData/Method_verifyEnable.qbl
@@ -0,0 +1,26 @@
+Quintiq file version 2.0
+#parent: #root
+Method VerifyEnable (
+ String feeback
+) const declarative as Boolean
+{
+ TextBody:
+ [*
+ // rislai Jun-6-2024 (created)
+ owner := this.MacroPlan();
+ 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.StartDate() <= this.EndDate() or plbd.EndDate() >= this.StartDate() ));
+
+ if( not isnull( verifyData )){
+ feeback := "銆�" + verifyData.Unit1().Name() + "銆戙��" + verifyData.Unit2().Name() + "銆戝凡浜�" + verifyData.StartDate().Format( "Y-M2-D2" ) +"鐢熸晥銆�";
+ value := false;
+ }else{
+ feeback := "";
+ }
+
+ return value;
+ *]
+}
diff --git a/_Main/BL/Type_ProductionLineBatchData/StaticMethod_Create.qbl b/_Main/BL/Type_ProductionLineBatchData/StaticMethod_Create.qbl
new file mode 100644
index 0000000..fc86ab1
--- /dev/null
+++ b/_Main/BL/Type_ProductionLineBatchData/StaticMethod_Create.qbl
@@ -0,0 +1,40 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod Create (
+ MacroPlan owner,
+ Unit line1,
+ Unit line2,
+ ShiftPattern shiftPattern1,
+ ShiftPattern shiftPattern2,
+ Date startDate,
+ Date endDate
+)
+{
+ TextBody:
+ [*
+ // rislai Jun-7-2024 (created)
+ if( isnull( shiftPattern1 ) or isnull( shiftPattern2 ) or isnull( line1 ) or isnull( line2 )){
+ error( "鏁版嵁涓嶈兘涓虹┖锛�" );
+ }
+ // 锛�1锛� 鏂板浜х嚎1鍜屼骇绾�2鐩稿悓鏃舵姤閿欌�滅浉鍚屼骇绾挎棤娉曟柊澧炩�濓紱
+ if( line1 = line2 ){
+ error( "鐩稿悓浜х嚎鏃犳硶鏂板" );
+ }
+
+ // 锛�2锛� 鐩稿悓鐨勪骇绾跨彮娆★紝鐢熸晥鏃堕棿鍙互缁存姢澶氫釜锛屼絾鏄敓鏁堟椂闂撮噸澶嶆椂鎶ラ敊鈥滆鏁版嵁宸茬淮鎶も�濓紱
+ verifyData := select( owner,ProductionLineBatchData,data,data.Unit1() = line1 and data.Unit2() = line2 and
+ data.ShiftPattern1() = shiftPattern1 and data.ShiftPattern2() = shiftPattern2 and
+ data.StartDate() = startDate and data.EndDate() = endDate );
+ if( not isnull( verifyData )){
+ error( "璇ユ暟鎹凡缁存姢" );
+ }
+
+ data := owner.ProductionLineBatchData( relnew,
+ ShiftPattern1 := shiftPattern1,
+ ShiftPattern2 := shiftPattern2,
+ Unit1 := line1,
+ Unit2 := line2,
+ StartDate := startDate,
+ EndDate := endDate );
+ *]
+}
diff --git a/_Main/BL/Type_ProductionLineBatchData/_ROOT_Type_ProductionLineBatchData.qbl b/_Main/BL/Type_ProductionLineBatchData/_ROOT_Type_ProductionLineBatchData.qbl
new file mode 100644
index 0000000..113e470
--- /dev/null
+++ b/_Main/BL/Type_ProductionLineBatchData/_ROOT_Type_ProductionLineBatchData.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type ProductionLineBatchData
+{
+ #keys: '5[412672.0.998406958][412672.0.998406956][0.0.0][412672.0.998406957][412672.0.998406959]'
+ BaseType: Object
+ StructuredName: 'ProductionLineBatchDatas'
+}
diff --git a/_Main/BL/Type_ShiftPattern/_ROOT_Type_ShiftPattern.qbl b/_Main/BL/Type_ShiftPattern/_ROOT_Type_ShiftPattern.qbl
new file mode 100644
index 0000000..092313d
--- /dev/null
+++ b/_Main/BL/Type_ShiftPattern/_ROOT_Type_ShiftPattern.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type ShiftPattern #extension
+{
+}
diff --git a/_Main/BL/Type_Test/StaticMethod_Test.qbl b/_Main/BL/Type_Test/StaticMethod_Test.qbl
new file mode 100644
index 0000000..6504f53
--- /dev/null
+++ b/_Main/BL/Type_Test/StaticMethod_Test.qbl
@@ -0,0 +1,13 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod Test (
+ ScenarioManager scenarioManager,
+ MacroPlan macroPlan,
+ Archive archive
+)
+{
+ TextBody:
+ [*
+ // rislai Jun-9-2024 (created)
+ *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupDebug.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupDebug.def
new file mode 100644
index 0000000..3069a9f
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupDebug.def
@@ -0,0 +1,25 @@
+Quintiq file version 2.0
+Component ActionBarGroupDebug
+{
+ #keys: '[412672.0.1024432948]'
+ BaseType: 'WebActionBarGroup'
+ Children:
+ [
+ Component ButtonTest
+ {
+ #keys: '[412672.0.1024433059]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Image: 'BUG'
+ Label: 'Test'
+ Taborder: 0
+ ]
+ }
+ ]
+ Properties:
+ [
+ Taborder: 4
+ Title: 'Debug'
+ ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_applicationDevelopmentActionBarPageDef\0431.def" "b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_applicationDevelopmentActionBarPageDef\0431.def"
new file mode 100644
index 0000000..a02fe8a
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_applicationDevelopmentActionBarPageDef\0431.def"
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+Component applicationDevelopmentActionBarPageDef id:applicationDevelopmentActionBarPageDef_1 #extension
+{
+ Children:
+ [
+ #child: ActionBarGroupDebug
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupDebug_ButtonTest_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupDebug_ButtonTest_OnClick.def
new file mode 100644
index 0000000..563d822
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupDebug_ButtonTest_OnClick.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: ActionBarGroupDebug/ButtonTest
+Response OnClick () id:Response_MacroPlanner_ActionBarGroupDebug_ButtonTest_OnClick
+{
+ #keys: '[412672.0.1024433074]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ QuillAction
+ {
+ Body:
+ [*
+ Test::Test( ScenarioManager,MacroPlan,Archive );
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def
index 3816dc4..2bab744 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def
@@ -13,6 +13,7 @@
#child: ActionBarPageSales
#child: applicationConfigureActionBarPageDef
#child: ActionBarPageInventory
+ #child: applicationDevelopmentActionBarPageDef_1
]
}
Component dhBinaryDataPR id:dhBinaryDataPR_688
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProductionLineBatchData/Component_pnlActions.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProductionLineBatchData/Component_pnlActions.def
new file mode 100644
index 0000000..9756698
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProductionLineBatchData/Component_pnlActions.def
@@ -0,0 +1,40 @@
+Quintiq file version 2.0
+Component pnlActions
+{
+ #keys: '[412672.0.996751937]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component btnOk
+ {
+ #keys: '[412672.0.996751941]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Label: 'OK'
+ Taborder: 0
+ ]
+ }
+ Component btnCancel
+ {
+ #keys: '[412672.0.996751943]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Label: 'Cancel'
+ Taborder: 1
+ ]
+ }
+ ]
+ Properties:
+ [
+ Alignment: 'trailing'
+ Border: true
+ ExcludeFromActiveComponent: true
+ FixedSize: true
+ Orientation: 'horizontal'
+ Padding: 'true'
+ Style: 'footer'
+ Taborder: 1
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProductionLineBatchData/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProductionLineBatchData/Component_pnlContent.def
new file mode 100644
index 0000000..896cf38
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProductionLineBatchData/Component_pnlContent.def
@@ -0,0 +1,148 @@
+Quintiq file version 2.0
+Component pnlContent
+{
+ #keys: '[412672.0.996751935]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component ddlLine1
+ {
+ #keys: '[412672.0.996752425]'
+ BaseType: 'WebDropDownList'
+ Databinding: 'Unit'
+ Children:
+ [
+ Component deContent
+ {
+ #keys: '[412672.0.996752427]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'structured[Unit]'
+ Source: 'ApplicationMacroPlanner.DataHolderUnit'
+ Taborder: 0
+ Transformation: 'Elements.astype(Unit)'
+ ]
+ }
+ ]
+ Properties:
+ [
+ DataBinding: 'DialogData.Data.Unit1'
+ DisplayField: 'Name'
+ Label: 'Line 1'
+ Taborder: 0
+ ]
+ }
+ Component ddlLine2
+ {
+ #keys: '[412672.0.996752441]'
+ BaseType: 'WebDropDownList'
+ Databinding: 'Unit'
+ Children:
+ [
+ Component deContent568
+ {
+ #keys: '[412672.0.996752443]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'structured[Unit]'
+ Source: 'ApplicationMacroPlanner.DataHolderUnit'
+ Taborder: 0
+ Transformation: 'Elements.astype(Unit)'
+ ]
+ }
+ ]
+ Properties:
+ [
+ DataBinding: 'DialogData.Data.Unit2'
+ DisplayField: 'Name'
+ Label: 'Line 2'
+ Taborder: 1
+ ]
+ }
+ Component ddlShiftPattern1
+ {
+ #keys: '[412672.0.996752456]'
+ BaseType: 'WebDropDownList'
+ Databinding: 'ShiftPattern'
+ Children:
+ [
+ Component deContent710
+ {
+ #keys: '[412672.0.996752458]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'MacroPlan'
+ Source: 'MacroPlan'
+ Taborder: 0
+ Transformation: 'ShiftPattern'
+ ]
+ }
+ ]
+ Properties:
+ [
+ DataBinding: 'DialogData.Data.ShiftPattern1'
+ DisplayField: 'Name'
+ Label: 'Shift pattern 1'
+ Taborder: 2
+ ]
+ }
+ Component ddlShiftPattern2
+ {
+ #keys: '[412672.0.996752472]'
+ BaseType: 'WebDropDownList'
+ Databinding: 'ShiftPattern'
+ Children:
+ [
+ Component deContent748
+ {
+ #keys: '[412672.0.996752474]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'MacroPlan'
+ Source: 'MacroPlan'
+ Taborder: 0
+ Transformation: 'ShiftPattern'
+ ]
+ }
+ ]
+ Properties:
+ [
+ DataBinding: 'DialogData.Data.ShiftPattern2'
+ DisplayField: 'Name'
+ Label: 'Shift pattern 2'
+ Taborder: 3
+ ]
+ }
+ Component dsStartDate
+ {
+ #keys: '[412672.0.996752488]'
+ BaseType: 'WebDateSelector'
+ Properties:
+ [
+ DataBinding: 'DialogData.Data.StartDate'
+ Label: 'Start date'
+ Taborder: 4
+ ]
+ }
+ Component dsEndDate
+ {
+ #keys: '[412672.0.996752501]'
+ BaseType: 'WebDateSelector'
+ Properties:
+ [
+ DataBinding: 'DialogData.Data.EndDate'
+ Label: 'End date'
+ Taborder: 5
+ ]
+ }
+ ]
+ Properties:
+ [
+ Padding: 'true'
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProductionLineBatchData/Method_Create.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProductionLineBatchData/Method_Create.def
new file mode 100644
index 0000000..46ebb8e
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProductionLineBatchData/Method_Create.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#parent: #root
+Method Create () id:Method_DialogCreateEditProductionLineBatchData_Create
+{
+ #keys: '[412672.0.996752047]'
+ Body:
+ [*
+ this.CreateEdit( false );
+ *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProductionLineBatchData/Method_CreateEdit.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProductionLineBatchData/Method_CreateEdit.def
new file mode 100644
index 0000000..8f04b67
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProductionLineBatchData/Method_CreateEdit.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: #root
+Method CreateEdit (
+ Boolean isEdit
+) id:Method_DialogCreateEditProductionLineBatchData_CreateEdit
+{
+ #keys: '[412672.0.996751977]'
+ Body:
+ [*
+ if( isEdit ){
+ this.Title( "Edit");
+ }else{
+ this.Title( "Create");
+ }
+
+ ApplicationMacroPlanner.ShowFormModal( this );
+ *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProductionLineBatchData/Method_Edit.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProductionLineBatchData/Method_Edit.def
new file mode 100644
index 0000000..ec9476a
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProductionLineBatchData/Method_Edit.def
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+#parent: #root
+Method Edit (
+ ProductionLineBatchData data
+) id:Method_DialogCreateEditProductionLineBatchData_Edit
+{
+ #keys: '[412672.0.996752095]'
+ Body:
+ [*
+ if( not isnull( data )){
+ DialogData.Data( data );
+ this.CreateEdit( true );
+ }
+ *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProductionLineBatchData/Response_pnlActions_btnCancel_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProductionLineBatchData/Response_pnlActions_btnCancel_OnClick.def
new file mode 100644
index 0000000..bdc88b8
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProductionLineBatchData/Response_pnlActions_btnCancel_OnClick.def
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+#parent: pnlActions/btnCancel
+Response OnClick () id:Response_pnlActions_btnCancel_OnClick
+{
+ #keys: '[412672.0.996751947]'
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ Form.Close();
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProductionLineBatchData/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProductionLineBatchData/Response_pnlActions_btnOk_OnClick.def
new file mode 100644
index 0000000..b22731d
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProductionLineBatchData/Response_pnlActions_btnOk_OnClick.def
@@ -0,0 +1,37 @@
+Quintiq file version 2.0
+#parent: pnlActions/btnOk
+Response OnClick () id:Response_pnlActions_btnOk_OnClick
+{
+ #keys: '[412672.0.996751946]'
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ Precondition:
+ [*
+ return ddlLine1.Data() <> ddlLine2.Data() and dsEndDate.Date() > dsStartDate.Date();
+ *]
+ QuillAction
+ {
+ Body:
+ [*
+ if( not isnull( DialogData.Data( ))){
+ DialogData.Data( ).Update( ddlLine1.Data(),
+ ddlLine2.Data(),
+ ddlShiftPattern1.Data(),
+ ddlShiftPattern2.Data(),
+ dsStartDate.Date(),
+ dsEndDate.Date());
+ }else{
+ ProductionLineBatchData::Create( MacroPlan,
+ ddlLine1.Data(),
+ ddlLine2.Data(),
+ ddlShiftPattern1.Data(),
+ ddlShiftPattern2.Data(),
+ dsStartDate.Date(),
+ dsEndDate.Date());
+ }
+
+ // Form.ApplyChanges();
+ Form.Close();
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProductionLineBatchData/_ROOT_Component_DialogCreateEditProductionLineBatchData.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProductionLineBatchData/_ROOT_Component_DialogCreateEditProductionLineBatchData.def
new file mode 100644
index 0000000..f3e450c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProductionLineBatchData/_ROOT_Component_DialogCreateEditProductionLineBatchData.def
@@ -0,0 +1,31 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent DialogCreateEditProductionLineBatchData
+{
+ #keys: '[412672.0.996751933]'
+ BaseType: 'WebForm'
+ Children:
+ [
+ #child: pnlContent
+ #child: pnlActions
+ Component DialogData
+ {
+ #keys: '[412672.0.996752601]'
+ BaseType: 'WebDataHolder'
+ Databinding: 'ProductionLineBatchData'
+ Properties:
+ [
+ Taborder: 2
+ ]
+ }
+ ]
+ Properties:
+ [
+ Alignment: 'trailing'
+ EnterButton: 'btnOk'
+ EscapeButton: 'btnCancel'
+ ExcludeFromActiveComponent: true
+ Padding: 'false'
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/Component_ListProductionLineBatchData.def b/_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/Component_ListProductionLineBatchData.def
new file mode 100644
index 0000000..ed4224a
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/Component_ListProductionLineBatchData.def
@@ -0,0 +1,59 @@
+Quintiq file version 2.0
+Component ListProductionLineBatchData
+{
+ #keys: '[412672.0.996750714]'
+ BaseType: 'WebList'
+ Children:
+ [
+ Component DataExtractorProductionLineBatchData
+ {
+ #keys: '[412672.0.996750715]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'MacroPlan'
+ Source: 'MacroPlan'
+ Taborder: 0
+ Transformation: 'ProductionLineBatchData'
+ ]
+ }
+ #child: listActionBarPageProductionLineBatchData
+ Component DataSetLevelProductionLineBatchData
+ {
+ #keys: '[412672.0.996750720]'
+ BaseType: 'WebDataSetLevel'
+ Children:
+ [
+ #child: listContextMenuProductionLineBatchData
+ ]
+ Properties:
+ [
+ Columns: '[{"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"}}]'
+ ContextMenu: 'listContextMenuProductionLineBatchData'
+ Taborder: 2
+ ]
+ }
+ ]
+ Properties:
+ [
+ Taborder: 0
+ ]
+ ResponseDefinitions:
+ [
+ DelegatedResponseDefinition OnClick id:Responsedef_ListProductionLineBatchData_WebMenu_OnClick
+ {
+ #keys: '[412672.0.996751570]'
+ Initiator: 'WebMenu'
+ IsInherited: false
+ ResponseType: 'OnClick'
+ Arguments:
+ [
+ ResponseDefinitionArgument selection
+ {
+ #keys: '[1917.0.7571120]'
+ Binding: 'this.Selection()'
+ }
+ ]
+ }
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/Component_PanelProductionLineBatchData.def b/_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/Component_PanelProductionLineBatchData.def
new file mode 100644
index 0000000..00ed921
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/Component_PanelProductionLineBatchData.def
@@ -0,0 +1,14 @@
+Quintiq file version 2.0
+Component PanelProductionLineBatchData
+{
+ #keys: '[412672.0.996750698]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ #child: ListProductionLineBatchData
+ ]
+ Properties:
+ [
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/Component_listActionBarPageProductionLineBatchData.def b/_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/Component_listActionBarPageProductionLineBatchData.def
new file mode 100644
index 0000000..afb0f02
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/Component_listActionBarPageProductionLineBatchData.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listActionBarPageProductionLineBatchData
+{
+ #keys: '[412672.0.996750717]'
+ BaseType: 'listActionBarPage'
+ Properties:
+ [
+ Taborder: 1
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/Component_listContextMenuProductionLineBatchData.def b/_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/Component_listContextMenuProductionLineBatchData.def
new file mode 100644
index 0000000..df4e814
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/Component_listContextMenuProductionLineBatchData.def
@@ -0,0 +1,78 @@
+Quintiq file version 2.0
+Component listContextMenuProductionLineBatchData
+{
+ #keys: '[412672.0.996750722]'
+ BaseType: 'listContextMenu'
+ Children:
+ [
+ Component mnCreate
+ {
+ #keys: '[412672.0.996751159]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ Image: 'NEW'
+ Taborder: 3
+ Title: 'Create...'
+ ]
+ }
+ Component mnEdit
+ {
+ #keys: '[412672.0.996751186]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ Image: 'NOTEBOOK_EDIT'
+ Taborder: 4
+ Title: 'Edit...'
+ ]
+ }
+ Component mnDelete
+ {
+ #keys: '[412672.0.996751251]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ Image: 'DELETE'
+ Taborder: 5
+ Title: 'Delete'
+ ]
+ }
+ Component MenuSeparator1
+ {
+ #keys: '[412672.0.996751270]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ Separator: true
+ Taborder: 6
+ ]
+ }
+ Component mnEnable
+ {
+ #keys: '[412672.0.996751332]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ Image: 'CHECKEDCHECKBOX'
+ Taborder: 7
+ Title: 'Enable'
+ ]
+ }
+ Component mnDisable
+ {
+ #keys: '[412672.0.1026802848]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ Image: 'EMPTYCHECKBOX'
+ Taborder: 8
+ Title: 'Disable'
+ ]
+ }
+ ]
+ Properties:
+ [
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/Response_ListProductionLineBatchData_mnCreate_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/Response_ListProductionLineBatchData_mnCreate_OnClick.def
new file mode 100644
index 0000000..eb25821
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/Response_ListProductionLineBatchData_mnCreate_OnClick.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: ListProductionLineBatchData
+Response OnClick () id:Response_ListProductionLineBatchData_mnCreate_OnClick
+{
+ #keys: '[412672.0.1000011939]'
+ CanBindMultiple: false
+ DefinitionID => /ListProductionLineBatchData/Responsedef_ListProductionLineBatchData_WebMenu_OnClick
+ Initiator: 'mnCreate'
+ QuillAction
+ {
+ Body:
+ [*
+ dlg := construct( DialogCreateEditProductionLineBatchData );
+ dlg.Create();
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/Response_ListProductionLineBatchData_mnDelete_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/Response_ListProductionLineBatchData_mnDelete_OnClick.def
new file mode 100644
index 0000000..2c59888
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/Response_ListProductionLineBatchData_mnDelete_OnClick.def
@@ -0,0 +1,21 @@
+Quintiq file version 2.0
+#parent: ListProductionLineBatchData
+Response OnClick (
+ structured[ProductionLineBatchData] selection
+) id:Response_ListProductionLineBatchData_mnDelete_OnClick
+{
+ #keys: '[412672.0.996751681]'
+ CanBindMultiple: false
+ DefinitionID => /ListProductionLineBatchData/Responsedef_ListProductionLineBatchData_WebMenu_OnClick
+ Initiator: 'mnDelete'
+ QuillAction
+ {
+ Body:
+ [*
+ traverse( selection,Elements,element){
+ element.Delete();
+ }
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/Response_ListProductionLineBatchData_mnDisable_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/Response_ListProductionLineBatchData_mnDisable_OnClick.def
new file mode 100644
index 0000000..de3788b
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/Response_ListProductionLineBatchData_mnDisable_OnClick.def
@@ -0,0 +1,26 @@
+Quintiq file version 2.0
+#parent: ListProductionLineBatchData
+Response OnClick (
+ structured[ProductionLineBatchData] selection
+) id:Response_ListProductionLineBatchData_mnDisable_OnClick
+{
+ #keys: '[412672.0.1024491799]'
+ CanBindMultiple: false
+ DefinitionID => /ListProductionLineBatchData/Responsedef_ListProductionLineBatchData_WebMenu_OnClick
+ GroupServerCalls: true
+ Initiator: 'mnDisable'
+ Precondition:
+ [*
+ value := select( selection,Elements,element,not element.IsEnable() );
+ return isnull( value );
+ *]
+ QuillAction
+ {
+ Body:
+ [*
+ traverse( selection,Elements,element ){
+ element.Disable();
+ }
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/Response_ListProductionLineBatchData_mnEdit_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/Response_ListProductionLineBatchData_mnEdit_OnClick.def
new file mode 100644
index 0000000..a074291
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/Response_ListProductionLineBatchData_mnEdit_OnClick.def
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: ListProductionLineBatchData
+Response OnClick (
+ ProductionLineBatchData selection
+) id:Response_ListProductionLineBatchData_mnEdit_OnClick
+{
+ #keys: '[412672.0.1000012043]'
+ CanBindMultiple: false
+ DefinitionID => /ListProductionLineBatchData/Responsedef_ListProductionLineBatchData_WebMenu_OnClick
+ Initiator: 'mnEdit'
+ QuillAction
+ {
+ Body:
+ [*
+ dlg := construct( DialogCreateEditProductionLineBatchData );
+ dlg.Edit( selection );
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/Response_ListProductionLineBatchData_mnEnable_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/Response_ListProductionLineBatchData_mnEnable_OnClick.def
new file mode 100644
index 0000000..4036fac
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/Response_ListProductionLineBatchData_mnEnable_OnClick.def
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: ListProductionLineBatchData
+Response OnClick (
+ ProductionLineBatchData selection
+) id:Response_ListProductionLineBatchData_mnEnable_OnClick
+{
+ #keys: '[412672.0.1018421769]'
+ CanBindMultiple: false
+ DefinitionID => /ListProductionLineBatchData/Responsedef_ListProductionLineBatchData_WebMenu_OnClick
+ Initiator: 'mnEnable'
+ Precondition:
+ [*
+ return selection.VerifyEnable( feedback );
+ *]
+ QuillAction
+ {
+ Body:
+ [*
+ selection.Enable();
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/_ROOT_Component_FormProductionLineBatchData.def b/_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/_ROOT_Component_FormProductionLineBatchData.def
new file mode 100644
index 0000000..3980757
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormProductionLineBatchData/_ROOT_Component_FormProductionLineBatchData.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent FormProductionLineBatchData
+{
+ #keys: '[412672.0.996750644]'
+ BaseType: 'WebForm'
+ Children:
+ [
+ #child: PanelProductionLineBatchData
+ ]
+ Properties:
+ [
+ Title: '鎵归噺缁存姢浜х嚎鐝'
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Views/Time_Capacities.vw b/_Main/UI/MacroPlannerWebApp/Views/Time_Capacities.vw
new file mode 100644
index 0000000..819a968
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Views/Time_Capacities.vw
@@ -0,0 +1,70 @@
+Quintiq file version 2.0
+{
+ viewcontents
+ {
+ forms
+ {
+ form_legacy_2
+ {
+ components
+ {
+ FormTimeCapacities_MatrixEditorTimeCapacities
+ {
+ totalHeaderWidth: 293
+ }
+ }
+ }
+ form_FormProductionLineBatchData
+ {
+ title: 'QMacroPlanner::FormProductionLineBatchData'
+ shown: true
+ componentID: 'QMacroPlanner::FormProductionLineBatchData'
+ layout
+ {
+ mode: 'open'
+ rowPosition: 18
+ rowSpan: 9
+ columnPosition: 1
+ columnSpan: 8
+ }
+ components
+ {
+ FormProductionLineBatchData_PanelProductionLineBatchData
+ {
+ sizeRatio: 1
+ }
+ FormProductionLineBatchData_ListProductionLineBatchData
+ {
+ }
+ FormProductionLineBatchData_DataSetLevelProductionLineBatchData
+ {
+ groupDepth: -1
+ column_StartDate
+ {
+ columnId: 'StartDate'
+ dataPath: 'StartDate'
+ dataType: 'date'
+ index: 0
+ subtotals: ''
+ width: 150
+ }
+ column_EndDate
+ {
+ columnId: 'EndDate'
+ dataPath: 'EndDate'
+ dataType: 'date'
+ index: 1
+ subtotals: ''
+ width: 150
+ }
+ }
+ }
+ }
+ }
+ }
+ formatversion: 2
+ id: 'Time Capacities'
+ name: 'Time Capacities'
+ isglobal: false
+ isroot: false
+}
--
Gitblit v1.9.3