From 6f8dc7c5b3a0d7801802d8795ba6a30c5f05b8f4 Mon Sep 17 00:00:00 2001
From: rislai <risheng.lai@capgemini.com>
Date: 星期二, 09 七月 2024 09:05:30 +0800
Subject: [PATCH] 添加人力成本报表主数据维护功能
---
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupDataViews.def | 7
_Main/BL/Relations/Relation_EmployeeType_MacroPlan_MacroPlan_EmployeeType.qbl | 23
_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_ListEmployeeCost_MenuEdit854_OnClick.def | 20
_Main/UI/MacroPlannerWebApp/Component_DialogEditEmployeeCost/Response_pnlUnit_Button671_OnClick#570.def | 30
_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_Panel700.def | 16
_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_ListEmployeeType.def | 59 +
_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_ListEmployeeCost#289.def | 59 +
_Main/BL/Type_LocalCell_Default/StaticMethod_GetCell.qbl | 26
_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_PanelActions526_ButtonCalcel267_OnClick.def | 16
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ContextMenuFinances.def | 18
_Main/BL/Type_LocalCell_Default/_ROOT_Type_LocalCell_Default.qbl | 9
_Main/BL/Type_EmployeeCost/Attribute_StartDate.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_PanelActions526.def | 34 +
_Main/UI/MacroPlannerWebApp/Component_DialogEditEmployeeCost/Component_pnlActions.def | 40 +
_Main/UI/MacroPlannerWebApp/Component_DialogEditEmployeeCost/Response_pnlActions_btnOk_OnClick.def | 17
_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_listActionBarPage216.def | 10
_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_PanelStandardWorkingDay_NumberPicker287_OnChanged.def | 16
_Main/BL/Type_EmployeeCost/Attribute_TimeUnit.qbl | 7
_Main/BL/Type_LocalCell_Default/StaticMethod_NewStaticMethod.qbl | 63 ++
_Main/BL/Type_EmployeeCost/StaticMethod_Import.qbl | 78 ++
_Main/BL/Type_OvertimeMultiplier/Attribute_Multiplier.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_listContextMenu134.def | 46 +
_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_PanelActions_ButtonCalcel_OnClick.def | 16
_Main/BL/Type_EmployeeCost/Attribute_BaseSalary.qbl | 8
_Main/UI/MacroPlannerWebApp/Component_DialogEditEmployeeCost/Component_pnlUnit.def | 63 ++
_Main/UI/MacroPlannerWebApp/Component_DialogEditEmployeeCost/_ROOT_Component_DialogEditEmployeeCost.def | 22
_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_listContextMenu191.def | 46 +
_Main/BL/Type_OvertimeMultiplier/Attribute_Name.qbl | 7
_Main/UI/MacroPlannerWebApp/Views/Labor_Costs.vw | 16
_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_ListOvertimeMultiplier.def | 59 +
_Main/UI/MacroPlannerWebApp/Component_DialogEditEmployeeCost/Method_New.def | 18
_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_ListEmployeeType_MenuEdit782_OnClick.def | 20
_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_PanelOvertimeMultiplier.def | 16
_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_PanelAction_ButtonExport1_OnClick.def | 18
_Main/BL/Type_EmployeeCost/StaticMethod_Export.qbl | 41 +
_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_PanelAction_ButtonImport_OnClick.def | 45 +
_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_listContextMenu383.def | 46 +
_Main/BL/Relations/Relation_EmployeeCost_EmployeeType_EmployeeType_EmployeeCost.qbl | 23
_Main/BL/Type_EmployeeCost/Attribute_EmployeeNumber.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_ListOvertimeMultiplier_MenuDelete_OnClick.def | 21
_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/_ROOT_Component_FormEmployeeCost.def | 18
_Main/UI/MacroPlannerWebApp/Component_DialogEditEmployeeCost/Response_pnlActions_btnCancel_OnClick.def | 15
_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_listActionBarPage989.def | 10
_Main/BL/Type_EmployeeCost/_ROOT_Type_EmployeeCost.qbl | 10
_Main/UI/MacroPlannerWebApp/Component_DialogEditEmployeeCost/Method_Edit.def | 14
_Main/BL/Type_EmployeeCost/DefaultValue_TimeUnit.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_ListEmployeeType_MenuDelete195_OnClick.def | 21
_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_PanelEmployeeType.def | 16
_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_PanelStandardWorkingDay#687.def | 37 +
_Main/BL/Type_OvertimeMultiplier/_ROOT_Type_OvertimeMultiplier.qbl | 10
_Main/BL/Relations/Relation_EmployeeCost_Unit_Unit_EmployeeCost.qbl | 23
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuFinances_MenuLaborCost_OnClick.def | 17
_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_ListEmployeeCost_OnDoubleClick.def | 19
_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_ListEmployeeCost_MenuCreate187_OnClick.def | 18
_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_PanelActions_ButtonOK_OnClick.def | 20
_Main/BL/Type_MacroPlan/Attribute_StandardWorkingDay.qbl | 7
_Main/BL/Type_EmployeeType/Attribute_Name.qbl | 7
_Main/BL/Type_LocalCell_Default/Attribute_RealValue.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_ListOvertimeMultiplier_MenuEdit_OnClick.def | 20
_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_listActionBarPage392.def | 10
_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_PanelActions526_ButtonOK338_OnClick.def | 20
_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_PanelStandardWorkingDay_Button671_OnClick.def | 21
_Main/UI/MacroPlannerWebApp/Component_DialogEditEmployeeCost/Component_pnlContent.def | 121 +++
_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_PanelEditOvertimeMultiplier.def | 48 +
_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_ListEmployeeCost_MenuDelete300_OnClick.def | 21
_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_PanelEditEmployeeType.def | 37 +
_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_PanelActions.def | 34 +
_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_PanelAction.def | 35 +
_Main/BL/Relations/Relation_OvertimeMultiplier_MacroPlan_MacroPlan_OvertimeMultiplier.qbl | 23
_Main/BL/Type_EmployeeType/_ROOT_Type_EmployeeType.qbl | 9
_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_PanelEmployeeCost#154.def | 16
_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_Panel189.def | 16
_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_ListEmployeeType_MenuCreate583_OnClick.def | 18
_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_ListOvertimeMultiplier_MenuCreate_OnClick.def | 20
_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_Panel972.def | 15
75 files changed, 1,860 insertions(+), 0 deletions(-)
diff --git a/_Main/BL/Relations/Relation_EmployeeCost_EmployeeType_EmployeeType_EmployeeCost.qbl b/_Main/BL/Relations/Relation_EmployeeCost_EmployeeType_EmployeeType_EmployeeCost.qbl
new file mode 100644
index 0000000..4063152
--- /dev/null
+++ b/_Main/BL/Relations/Relation_EmployeeCost_EmployeeType_EmployeeType_EmployeeCost.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation EmployeeCost_EmployeeType_EmployeeType_EmployeeCost
+{
+ #keys: '1[412672.1.2854689]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide EmployeeType
+ {
+ #keys: '3[412672.1.2854691][412672.1.2854690][412672.1.2854692]'
+ Cardinality: '0to1'
+ ObjectDefinition: EmployeeCost
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide EmployeeCost
+ {
+ #keys: '3[412672.1.2854694][412672.1.2854693][412672.1.2854695]'
+ Cardinality: '1toN'
+ ObjectDefinition: EmployeeType
+ OwningSide: 'Reference'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_EmployeeCost_Unit_Unit_EmployeeCost.qbl b/_Main/BL/Relations/Relation_EmployeeCost_Unit_Unit_EmployeeCost.qbl
new file mode 100644
index 0000000..116f104
--- /dev/null
+++ b/_Main/BL/Relations/Relation_EmployeeCost_Unit_Unit_EmployeeCost.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation EmployeeCost_Unit_Unit_EmployeeCost
+{
+ #keys: '1[412672.1.2854611]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide Unit
+ {
+ #keys: '3[412672.1.2854613][412672.1.2854612][412672.1.2854614]'
+ Cardinality: '0to1'
+ ObjectDefinition: EmployeeCost
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide EmployeeCost
+ {
+ #keys: '3[412672.1.2854616][412672.1.2854615][412672.1.2854617]'
+ Cardinality: '1toN'
+ ObjectDefinition: Unit
+ OwningSide: 'Owned'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_EmployeeType_MacroPlan_MacroPlan_EmployeeType.qbl b/_Main/BL/Relations/Relation_EmployeeType_MacroPlan_MacroPlan_EmployeeType.qbl
new file mode 100644
index 0000000..8dc7a1c
--- /dev/null
+++ b/_Main/BL/Relations/Relation_EmployeeType_MacroPlan_MacroPlan_EmployeeType.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation EmployeeType_MacroPlan_MacroPlan_EmployeeType
+{
+ #keys: '1[412672.1.2880055]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide MacroPlan
+ {
+ #keys: '3[412672.1.2880057][412672.1.2880056][412672.1.2880058]'
+ Cardinality: '0to1'
+ ObjectDefinition: EmployeeType
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide EmployeeType
+ {
+ #keys: '3[412672.1.2880060][412672.1.2880059][412672.1.2880061]'
+ Cardinality: '1toN'
+ ObjectDefinition: MacroPlan
+ OwningSide: 'Owned'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_OvertimeMultiplier_MacroPlan_MacroPlan_OvertimeMultiplier.qbl b/_Main/BL/Relations/Relation_OvertimeMultiplier_MacroPlan_MacroPlan_OvertimeMultiplier.qbl
new file mode 100644
index 0000000..0a37108
--- /dev/null
+++ b/_Main/BL/Relations/Relation_OvertimeMultiplier_MacroPlan_MacroPlan_OvertimeMultiplier.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation OvertimeMultiplier_MacroPlan_MacroPlan_OvertimeMultiplier
+{
+ #keys: '1[412672.1.2880092]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide MacroPlan
+ {
+ #keys: '3[412672.1.2880094][412672.1.2880093][412672.1.2880095]'
+ Cardinality: '0to1'
+ ObjectDefinition: OvertimeMultiplier
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide OvertimeMultiplier
+ {
+ #keys: '3[412672.1.2880097][412672.1.2880096][412672.1.2880098]'
+ Cardinality: '1toN'
+ ObjectDefinition: MacroPlan
+ OwningSide: 'Owned'
+ }
+}
diff --git a/_Main/BL/Type_EmployeeCost/Attribute_BaseSalary.qbl b/_Main/BL/Type_EmployeeCost/Attribute_BaseSalary.qbl
new file mode 100644
index 0000000..1a69023
--- /dev/null
+++ b/_Main/BL/Type_EmployeeCost/Attribute_BaseSalary.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute BaseSalary
+{
+ #keys: '3[412672.1.2854665][412672.1.2854664][412672.1.2854666]'
+ Description: 'BaseSalary'
+ ValueType: Real
+}
diff --git a/_Main/BL/Type_EmployeeCost/Attribute_EmployeeNumber.qbl b/_Main/BL/Type_EmployeeCost/Attribute_EmployeeNumber.qbl
new file mode 100644
index 0000000..db99fe2
--- /dev/null
+++ b/_Main/BL/Type_EmployeeCost/Attribute_EmployeeNumber.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute EmployeeNumber
+{
+ #keys: '3[412672.1.2854635][412672.1.2854634][412672.1.2854636]'
+ ValueType: Number
+}
diff --git a/_Main/BL/Type_EmployeeCost/Attribute_StartDate.qbl b/_Main/BL/Type_EmployeeCost/Attribute_StartDate.qbl
new file mode 100644
index 0000000..16c94a8
--- /dev/null
+++ b/_Main/BL/Type_EmployeeCost/Attribute_StartDate.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute StartDate
+{
+ #keys: '3[412672.1.2854645][412672.1.2854644][412672.1.2854646]'
+ ValueType: Date
+}
diff --git a/_Main/BL/Type_EmployeeCost/Attribute_TimeUnit.qbl b/_Main/BL/Type_EmployeeCost/Attribute_TimeUnit.qbl
new file mode 100644
index 0000000..bf8dc85
--- /dev/null
+++ b/_Main/BL/Type_EmployeeCost/Attribute_TimeUnit.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute TimeUnit
+{
+ #keys: '3[412672.1.2854655][412672.1.2854654][412672.1.2854656]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_EmployeeCost/DefaultValue_TimeUnit.qbl b/_Main/BL/Type_EmployeeCost/DefaultValue_TimeUnit.qbl
new file mode 100644
index 0000000..b1b021c
--- /dev/null
+++ b/_Main/BL/Type_EmployeeCost/DefaultValue_TimeUnit.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+ ISOValue: '鏈�'
+ TargetAttribute: TimeUnit
+}
diff --git a/_Main/BL/Type_EmployeeCost/StaticMethod_Export.qbl b/_Main/BL/Type_EmployeeCost/StaticMethod_Export.qbl
new file mode 100644
index 0000000..a056ac4
--- /dev/null
+++ b/_Main/BL/Type_EmployeeCost/StaticMethod_Export.qbl
@@ -0,0 +1,41 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod Export (
+ const constcontent Units owner
+) as BinaryValue
+{
+ TextBody:
+ [*
+ // rislai Jul-3-2024 (created)
+ xmlTemplate := '<?xml version="1.0" encoding="UTF-16"?><table><name>浜哄憳鎴愭湰</name>';
+ columnXML1 := "<column><name>浜哄憳绫诲埆</name><type>String</type>";
+ columnXML2 := "<column><name>浜烘暟</name><type>Number</type>";
+ columnXML3 := "<column><name>浜х嚎</name><type>String</type>";
+ columnXML4 := "<column><name>寮�濮嬫椂闂�</name><type>String</type>";
+ columnXML5 := "<column><name>鏃堕棿鍗曚綅</name><type>String</type>";
+ columnXML6 := "<column><name>鍩烘湰宸ヨ祫</name><type>Number</type>";
+
+ costs := selectsortedset( owner,Elements.EmployeeCost,cost,cost.Unit().Name() );
+ traverse( costs,Elements,cost ){
+ columnXML1 := columnXML1 + '<cell value="' + cost.EmployeeType().Name() + '"/>'
+ columnXML2 := columnXML2 + '<cell value="' + [String]cost.EmployeeNumber() + '"/>'
+ columnXML3 := columnXML3 + '<cell value="' + cost.Unit().Name() + '"/>'
+ columnXML4 := columnXML4 + '<cell value="' + cost.StartDate().Format( "Y-M2-D2" ) + '"/>'
+ columnXML5 := columnXML5 + '<cell value="' + cost.TimeUnit() + '"/>'
+ columnXML6 := columnXML6 + '<cell value="' + cost.BaseSalary().Format( "N(Dec())" ) + '"/>'
+ }
+ columnXML1 := columnXML1 + "</column>";
+ columnXML2 := columnXML2 + "</column>";
+ columnXML3 := columnXML3 + "</column>";
+ columnXML4 := columnXML4 + "</column>";
+ columnXML5 := columnXML5 + "</column>";
+ columnXML6 := columnXML6 + "</column>";
+
+ xmlTemplate := xmlTemplate + columnXML1 + columnXML2 + columnXML3 + columnXML4 + columnXML5 + columnXML6 + "</table>";
+ tableGroupHandle := TableGroupHandle::Create( "tableGroupHandle" );
+ tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlTemplate ));
+ tableGroupHandle.Add( tableHandle );
+ binaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true );
+ return binaryData.AsBinaryValue();
+ *]
+}
diff --git a/_Main/BL/Type_EmployeeCost/StaticMethod_Import.qbl b/_Main/BL/Type_EmployeeCost/StaticMethod_Import.qbl
new file mode 100644
index 0000000..fbd4e8e
--- /dev/null
+++ b/_Main/BL/Type_EmployeeCost/StaticMethod_Import.qbl
@@ -0,0 +1,78 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod Import (
+ MacroPlan owner,
+ const GeneralExcelImportAndExportDataTable table
+)
+{
+ TextBody:
+ [*
+ // rislai Jul-3-2024 (created)
+ units := construct( Units );
+ unitIndexTree := NamedValueTree::Create();
+
+ employeeTypes := construct( EmployeeTypes );
+ employeeTypeIndexTree := NamedValueTree::Create();
+
+ costs := selectset( owner,Unit.EmployeeCost,cost,true );
+ traverse( costs,Elements,element ){
+ element.Delete();
+ }
+
+ cnv2 := StringToDate::StandardConverter();
+ cnv2.SetCustomConversion();
+ cnv2.CustomFormatString( 'yyyy-MM-dd' );//2024-07-03
+
+ traverse( table,GeneralExcelImportAndExportDataRow,row ){
+ employeeType := null( EmployeeType );
+ employeeNumber := 0;
+ unit := null( Unit );
+ startDate := Date::MinDate();
+ timeUnit := "";
+ baseSalary := 0.0;
+ traverse( row,GeneralExcelImportAndExportDataCell,cell ){
+ if( cell.GeneralExcelImportAndExportDataColumn().Name() = "浜哄憳绫诲埆" ){
+ employeeTypeHandle := employeeTypeIndexTree.GetHandle( cell.Value() );
+ index := guard( employeeTypeIndexTree.Root().Child( employeeTypeHandle ),null( NamedValue ));
+ if( not isnull( index )){
+ employeeType := employeeTypes.Element( index.GetValueAsNumber() );
+ }else{
+ employeeType := select( owner,EmployeeType,type,type.Name() = cell.Value() );
+ if( not isnull( employeeType )){
+ employeeTypes.Add( employeeType );
+ employeeTypeIndexTree.Root().AddChild( employeeTypeHandle,employeeTypes.Size() - 1 );
+ }
+ }
+ }
+ if( cell.GeneralExcelImportAndExportDataColumn().Name() = "浜烘暟" ){
+ employeeNumber := [Number]cell.Value();
+ }
+ if( cell.GeneralExcelImportAndExportDataColumn().Name() = "浜х嚎" ){
+ unitHandle := unitIndexTree.GetHandle( cell.Value() );
+ index := guard( unitIndexTree.Root().Child( unitHandle ),null( NamedValue ));
+ if( not isnull( index )){
+ unit := units.Element( index.GetValueAsNumber() );
+ }else{
+ unit := select( owner,Unit,temp_unit,temp_unit.ID() = cell.Value() );
+ if( not isnull( unit )){
+ units.Add( unit );
+ unitIndexTree.Root().AddChild( unitHandle,units.Size() - 1 );
+ }
+ }
+ }
+ if( cell.GeneralExcelImportAndExportDataColumn().Name() = "寮�濮嬫椂闂�" ){
+ startDate := cnv2.Convert( cell.Value() );
+ }
+ if( cell.GeneralExcelImportAndExportDataColumn().Name() = "鏃堕棿鍗曚綅" ){
+ timeUnit := cell.Value();
+ }
+ if( cell.GeneralExcelImportAndExportDataColumn().Name() = "鍩烘湰宸ヨ祫" ){
+ baseSalary := [Real]cell.Value();
+ }
+ }
+ if( not isnull( unit )){
+ unit.EmployeeCost( relnew,EmployeeType := employeeType,EmployeeNumber := employeeNumber,StartDate := startDate,TimeUnit := timeUnit,BaseSalary := baseSalary );
+ }
+ }
+ *]
+}
diff --git a/_Main/BL/Type_EmployeeCost/_ROOT_Type_EmployeeCost.qbl b/_Main/BL/Type_EmployeeCost/_ROOT_Type_EmployeeCost.qbl
new file mode 100644
index 0000000..1129e59
--- /dev/null
+++ b/_Main/BL/Type_EmployeeCost/_ROOT_Type_EmployeeCost.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type EmployeeCost
+{
+ #keys: '5[412672.1.2854608][412672.1.2854606][0.0.0][412672.1.2854607][412672.1.2854609]'
+ BaseType: Object
+ Description: 'EmployeeCost'
+ StructuredName: 'EmployeeCosts'
+}
diff --git a/_Main/BL/Type_EmployeeType/Attribute_Name.qbl b/_Main/BL/Type_EmployeeType/Attribute_Name.qbl
new file mode 100644
index 0000000..067a7ad
--- /dev/null
+++ b/_Main/BL/Type_EmployeeType/Attribute_Name.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Name
+{
+ #keys: '3[412672.1.2854680][412672.1.2854679][412672.1.2854681]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_EmployeeType/_ROOT_Type_EmployeeType.qbl b/_Main/BL/Type_EmployeeType/_ROOT_Type_EmployeeType.qbl
new file mode 100644
index 0000000..eca7ed2
--- /dev/null
+++ b/_Main/BL/Type_EmployeeType/_ROOT_Type_EmployeeType.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type EmployeeType
+{
+ #keys: '5[412672.1.2854676][412672.1.2854674][0.0.0][412672.1.2854675][412672.1.2854677]'
+ BaseType: Object
+ StructuredName: 'EmployeeTypes'
+}
diff --git a/_Main/BL/Type_LocalCell_Default/Attribute_RealValue.qbl b/_Main/BL/Type_LocalCell_Default/Attribute_RealValue.qbl
new file mode 100644
index 0000000..14538b0
--- /dev/null
+++ b/_Main/BL/Type_LocalCell_Default/Attribute_RealValue.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute RealValue
+{
+ #keys: '3[412672.1.5620867][412672.1.5620866][412672.1.5620868]'
+ ValueType: Real
+}
diff --git a/_Main/BL/Type_LocalCell_Default/StaticMethod_GetCell.qbl b/_Main/BL/Type_LocalCell_Default/StaticMethod_GetCell.qbl
new file mode 100644
index 0000000..27c9816
--- /dev/null
+++ b/_Main/BL/Type_LocalCell_Default/StaticMethod_GetCell.qbl
@@ -0,0 +1,26 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GetCell (
+ String cellKey,
+ NamedValueTree cellIndexTree,
+ LocalCell_Defaults cells,
+ LocalRow row,
+ LocalColumn column
+) as LocalCell_Default
+{
+ TextBody:
+ [*
+ // rislai Jul-8-2024 (created)
+ cellHandle := cellIndexTree.GetHandle( cellKey );
+ cellIndex := guard( cellIndexTree.Root().Child( cellHandle ),null( NamedValue ));
+ cell := null( LocalCell_Default );
+ if( isnull( cell )){
+ cell := row.LocalCell( relnew,LocalCell_Default,LocalColumn := column );
+ cells.Add( cell );
+ cellIndexTree.Root().AddChild( cellHandle,cells.Size() - 1 );
+ }else{
+ cell := cells.Element( cellIndex.GetValueAsNumber() );
+ }
+ return cell;
+ *]
+}
diff --git a/_Main/BL/Type_LocalCell_Default/StaticMethod_NewStaticMethod.qbl b/_Main/BL/Type_LocalCell_Default/StaticMethod_NewStaticMethod.qbl
new file mode 100644
index 0000000..c7e6f6a
--- /dev/null
+++ b/_Main/BL/Type_LocalCell_Default/StaticMethod_NewStaticMethod.qbl
@@ -0,0 +1,63 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod NewStaticMethod (
+ const constcontent ShiftPlans shiftPlans,
+ RecycleBin owner
+)
+{
+ TextBody:
+ [*
+ // rislai Jul-4-2024 (created)
+ table := owner.LocalTable( relnew,Name := "");
+
+ column1 := table.LocalColumn( relnew,Name := "宸ュ巶" );
+ column2 := table.LocalColumn( relnew,Name := "浜х嚎" );
+
+ column3 := table.LocalColumn( relnew,Name := "鐢熶骇澶╂暟" );
+ column4 := table.LocalColumn( relnew,Name := "鍔犵彮鏃堕暱" );
+ column5 := table.LocalColumn( relnew,Name := "娆犲伐鏃堕暱" );
+ column6 := table.LocalColumn( relnew,Name := "鑺傚亣鏃ュ姞鐝椂闀�" );
+ column7 := table.LocalColumn( relnew,Name := "鍔犵彮璐�" );
+ column8 := table.LocalColumn( relnew,Name := "娆犲伐璐�" );
+ column9 := table.LocalColumn( relnew,Name := "鑺傚亣鏃ュ姞鐝垂" );
+
+ unitIDs := selectuniquevalues( shiftPlans,Elements.UnitPeriodTime.Unit,unit,unit.ID() );
+
+ rows := construct( LocalRows );
+ rowIndexTree := NamedValueTree::Create();
+
+ cells := construct( LocalCell_Defaults );
+ cellIndexTree := NamedValueTree::Create();
+
+ traverse( unitIDs,Elements,element ){
+ row := table.LocalRow( relnew,Index := table.GetRowIndexCache() );
+ rowHandle := rowIndexTree.GetHandle( element );
+ rows.Add( row );
+ rowIndexTree.Root().AddChild( rowHandle,rows.Size() - 1 );
+ }
+
+ traverse( shiftPlans,Elements,shiftPlan ){
+ rowKey := shiftPlan.UnitPeriodTime().Unit().ID();
+ row := rows.Element( rowIndexTree.Root().Child( rowIndexTree.GetHandle( rowKey )).GetValueAsNumber() );
+
+ gongchangCell := LocalCell_Default::GetCell( rowKey + "宸ュ巶", cellIndexTree, cells, row, column1 );
+ chanxianxCell := LocalCell_Default::GetCell( rowKey + "浜х嚎", cellIndexTree, cells, row, column2 );
+
+ shengchanCell := LocalCell_Default::GetCell( rowKey + "鐢熶骇澶╂暟", cellIndexTree, cells, row, column3 );
+ jiabanCell := LocalCell_Default::GetCell( rowKey + "鍔犵彮鏃堕暱", cellIndexTree, cells, row, column4 );
+ qiangongCell := LocalCell_Default::GetCell( rowKey + "娆犲伐鏃堕暱", cellIndexTree, cells, row, column5 );
+ jiejiariCell := LocalCell_Default::GetCell( rowKey + "鑺傚亣鏃ュ姞鐝椂闀�", cellIndexTree, cells, row, column6 );
+
+ jiabanfeiCell := LocalCell_Default::GetCell( rowKey + "鍔犵彮璐�", cellIndexTree, cells, row, column7 );
+ qiangongfeiCell := LocalCell_Default::GetCell( rowKey + "娆犲伐璐�", cellIndexTree, cells, row, column8 );
+ jiejiarifeiCell := LocalCell_Default::GetCell( rowKey + "鑺傚亣鏃ュ姞鐝垂", cellIndexTree, cells, row, column9 );
+
+ if( shiftPlan.Outcome() <> "" ){
+
+ }else{
+
+ }
+
+ }
+ *]
+}
diff --git a/_Main/BL/Type_LocalCell_Default/_ROOT_Type_LocalCell_Default.qbl b/_Main/BL/Type_LocalCell_Default/_ROOT_Type_LocalCell_Default.qbl
new file mode 100644
index 0000000..695ab4b
--- /dev/null
+++ b/_Main/BL/Type_LocalCell_Default/_ROOT_Type_LocalCell_Default.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+TypeSpecialization LocalCell_Default
+{
+ #keys: '2[412672.1.5620864][412672.1.5620859]'
+ Parent: LocalCell
+ StructuredName: 'LocalCell_Defaults'
+}
diff --git a/_Main/BL/Type_MacroPlan/Attribute_StandardWorkingDay.qbl b/_Main/BL/Type_MacroPlan/Attribute_StandardWorkingDay.qbl
new file mode 100644
index 0000000..59d8880
--- /dev/null
+++ b/_Main/BL/Type_MacroPlan/Attribute_StandardWorkingDay.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute StandardWorkingDay
+{
+ #keys: '3[412672.1.2880078][412672.1.2880077][412672.1.2880079]'
+ ValueType: Real
+}
diff --git a/_Main/BL/Type_OvertimeMultiplier/Attribute_Multiplier.qbl b/_Main/BL/Type_OvertimeMultiplier/Attribute_Multiplier.qbl
new file mode 100644
index 0000000..d75b63e
--- /dev/null
+++ b/_Main/BL/Type_OvertimeMultiplier/Attribute_Multiplier.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Multiplier
+{
+ #keys: '3[412672.1.2880116][412672.1.2880115][412672.1.2880117]'
+ ValueType: Real
+}
diff --git a/_Main/BL/Type_OvertimeMultiplier/Attribute_Name.qbl b/_Main/BL/Type_OvertimeMultiplier/Attribute_Name.qbl
new file mode 100644
index 0000000..be45e57
--- /dev/null
+++ b/_Main/BL/Type_OvertimeMultiplier/Attribute_Name.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Name
+{
+ #keys: '3[412672.1.2880106][412672.1.2880105][412672.1.2880107]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_OvertimeMultiplier/_ROOT_Type_OvertimeMultiplier.qbl b/_Main/BL/Type_OvertimeMultiplier/_ROOT_Type_OvertimeMultiplier.qbl
new file mode 100644
index 0000000..613e4bb
--- /dev/null
+++ b/_Main/BL/Type_OvertimeMultiplier/_ROOT_Type_OvertimeMultiplier.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type OvertimeMultiplier
+{
+ #keys: '5[412672.1.2880089][412672.1.2880087][0.0.0][412672.1.2880088][412672.1.2880090]'
+ BaseType: Object
+ Description: 'OvertimeMultiplier'
+ StructuredName: 'OvertimeMultipliers'
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupDataViews.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupDataViews.def
index 645df5f..a8a3635 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupDataViews.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupDataViews.def
@@ -10,5 +10,12 @@
#child: ContextMenuCapacities
]
}
+ Component ButtonDataFinances #extension
+ {
+ Children:
+ [
+ #child: ContextMenuFinances
+ ]
+ }
]
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ContextMenuFinances.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ContextMenuFinances.def
new file mode 100644
index 0000000..bcde51c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ContextMenuFinances.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+Component ContextMenuFinances #extension
+{
+ Children:
+ [
+ Component MenuLaborCost
+ {
+ #keys: '[412672.1.7721142]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ Image: 'MONEY_BILL_FIRE'
+ Taborder: 6
+ Title: 'Labor cost'
+ ]
+ }
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuFinances_MenuLaborCost_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuFinances_MenuLaborCost_OnClick.def
new file mode 100644
index 0000000..f7b67bb
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuFinances_MenuLaborCost_OnClick.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: ContextMenuFinances/MenuLaborCost
+Response OnClick () id:Response_MacroPlanner_ContextMenuFinances_MenuLaborCost_OnClick
+{
+ #keys: '[412672.1.7721201]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebMenu_OnClick'
+ QuillAction
+ {
+ Body:
+ [*
+ // Open view
+ ApplicationMacroPlanner.OpenView( 'Labor_Costs', ButtonDataFinances );
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEditEmployeeCost/Component_pnlActions.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEditEmployeeCost/Component_pnlActions.def
new file mode 100644
index 0000000..2b90952
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEditEmployeeCost/Component_pnlActions.def
@@ -0,0 +1,40 @@
+Quintiq file version 2.0
+Component pnlActions
+{
+ #keys: '[412672.1.7045777]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component btnOk
+ {
+ #keys: '[412672.1.7045781]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Label: 'OK'
+ Taborder: 0
+ ]
+ }
+ Component btnCancel
+ {
+ #keys: '[412672.1.7045783]'
+ 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_DialogEditEmployeeCost/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEditEmployeeCost/Component_pnlContent.def
new file mode 100644
index 0000000..6efd64a
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEditEmployeeCost/Component_pnlContent.def
@@ -0,0 +1,121 @@
+Quintiq file version 2.0
+Component pnlContent
+{
+ #keys: '[412672.1.7045775]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component dhEmployeeCost
+ {
+ #keys: '[412672.1.7045839]'
+ BaseType: 'WebDataHolder'
+ Databinding: 'shadow[EmployeeCost]*'
+ Properties:
+ [
+ Taborder: 0
+ ]
+ }
+ Component ddlEmployeeType
+ {
+ #keys: '[412672.1.6911529]'
+ BaseType: 'WebDropDownList'
+ Databinding: 'EmployeeType'
+ Children:
+ [
+ Component deContent
+ {
+ #keys: '[412672.1.6911531]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'MacroPlan'
+ Source: 'MacroPlan'
+ Taborder: 0
+ Transformation: 'EmployeeType'
+ ]
+ }
+ ]
+ Properties:
+ [
+ DataBinding: 'dhEmployeeCost.Data.EmployeeType'
+ DisplayField: 'Name'
+ Label: '浜哄憳绫诲瀷'
+ Taborder: 1
+ ]
+ }
+ Component npEmployeeNumber
+ {
+ #keys: '[412672.1.6911553]'
+ BaseType: 'WebNumberPicker'
+ Properties:
+ [
+ DataBinding: 'dhEmployeeCost.Data.EmployeeNumber'
+ Label: '浜烘暟'
+ Taborder: 2
+ ]
+ }
+ Component dsStartDate
+ {
+ #keys: '[412672.1.6911583]'
+ BaseType: 'WebDateSelector'
+ Properties:
+ [
+ DataBinding: 'dhEmployeeCost.Data.StartDate'
+ Label: '寮�濮嬫椂闂�'
+ Taborder: 5
+ ]
+ }
+ Component efStandardWorkingDay
+ {
+ #keys: '[412672.1.7276727]'
+ BaseType: 'WebEditField'
+ Properties:
+ [
+ DataBinding: 'MacroPlan.StandardWorkingDay'
+ Enabled: false
+ Label: '鏍囧噯宸ヤ綔澶╂暟'
+ Taborder: 7
+ ]
+ }
+ Component efTimeUnit
+ {
+ #keys: '[412672.1.7276817]'
+ BaseType: 'WebEditField'
+ Properties:
+ [
+ DataBinding: 'dhEmployeeCost.Data.TimeUnit'
+ Enabled: false
+ Label: '鏍囧噯鏃堕棿鍗曞厓'
+ Taborder: 6
+ Text: '鏈�'
+ ]
+ }
+ Component npBaseSalary
+ {
+ #keys: '[412672.1.7343332]'
+ BaseType: 'WebNumberPicker'
+ Properties:
+ [
+ DataBinding: 'dhEmployeeCost.Data.BaseSalary'
+ Label: '鍩烘湰宸ヨ祫'
+ Taborder: 8
+ ]
+ }
+ #child: pnlUnit
+ Component lblUnit
+ {
+ #keys: '[412672.1.7796497]'
+ BaseType: 'WebLabel'
+ Properties:
+ [
+ DataBinding: 'ddlUnit.Data.ID'
+ Taborder: 4
+ ]
+ }
+ ]
+ Properties:
+ [
+ Padding: 'true'
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEditEmployeeCost/Component_pnlUnit.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEditEmployeeCost/Component_pnlUnit.def
new file mode 100644
index 0000000..7078ef4
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEditEmployeeCost/Component_pnlUnit.def
@@ -0,0 +1,63 @@
+Quintiq file version 2.0
+Component pnlUnit
+{
+ #keys: '[412672.1.7514476]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component ddlUnit id:ddlUnit_608
+ {
+ #keys: '[412672.1.7514540]'
+ BaseType: 'WebDropDownList'
+ Databinding: 'Unit'
+ Children:
+ [
+ Component deContent655 id:deContent655_364
+ {
+ #keys: '[412672.1.7514541]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'structured[Entity]'
+ Source: 'ApplicationMacroPlanner.DataHolderEntities'
+ Taborder: 0
+ Transformation: 'Elements.astype(Unit)'
+ ]
+ }
+ ]
+ Properties:
+ [
+ DataBinding: 'dhEmployeeCost.Data.Unit'
+ DisplayField: 'ID'
+ Enabled: false
+ Label: '浜х嚎'
+ Taborder: 0
+ ]
+ }
+ Component Button671 id:Button671_325
+ {
+ #keys: '[412672.1.7514568]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Image: 'LOCK'
+ Taborder: 1
+ ]
+ }
+ Component cbUnit
+ {
+ #keys: '[412672.1.7578755]'
+ BaseType: 'WebCheckbox'
+ Properties:
+ [
+ Taborder: 2
+ Visible: false
+ ]
+ }
+ ]
+ Properties:
+ [
+ Orientation: 'horizontal'
+ Taborder: 3
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEditEmployeeCost/Method_Edit.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEditEmployeeCost/Method_Edit.def
new file mode 100644
index 0000000..ea59274
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEditEmployeeCost/Method_Edit.def
@@ -0,0 +1,14 @@
+Quintiq file version 2.0
+#parent: #root
+Method Edit (
+ EmployeeCost data
+) id:Method_DialogEditEmployeeCost_Edit
+{
+ #keys: '[412672.1.7420837]'
+ Body:
+ [*
+ dhEmployeeCost.Data( shadow(data));
+
+ ApplicationMacroPlanner.ShowFormModal( this );
+ *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEditEmployeeCost/Method_New.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEditEmployeeCost/Method_New.def
new file mode 100644
index 0000000..7d2d977
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEditEmployeeCost/Method_New.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: #root
+Method New () id:Method_DialogEditEmployeeCost_New
+{
+ #keys: '[412672.1.7277241]'
+ Body:
+ [*
+ ddlEmployeeType.Enabled( false,"" );
+ npEmployeeNumber.Enabled( false,"" );
+ dsStartDate.Enabled( false,"" );
+ npBaseSalary.Enabled( false,"" );
+
+ ddlUnit.Enabled( true,"" );
+ cbUnit.Checked( true );
+
+ ApplicationMacroPlanner.ShowFormModal( this );
+ *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEditEmployeeCost/Response_pnlActions_btnCancel_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEditEmployeeCost/Response_pnlActions_btnCancel_OnClick.def
new file mode 100644
index 0000000..06d3ffd
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEditEmployeeCost/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.1.7045787]'
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ Form.Close();
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEditEmployeeCost/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEditEmployeeCost/Response_pnlActions_btnOk_OnClick.def
new file mode 100644
index 0000000..ecf51c3
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEditEmployeeCost/Response_pnlActions_btnOk_OnClick.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: pnlActions/btnOk
+Response OnClick () id:Response_pnlActions_btnOk_OnClick
+{
+ #keys: '[412672.1.7045786]'
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ Form.ApplyChanges();
+ dhEmployeeCost.Data().Commit();
+ Form.Close();
+ *]
+ }
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_DialogEditEmployeeCost/Response_pnlUnit_Button671_OnClick\043570.def" "b/_Main/UI/MacroPlannerWebApp/Component_DialogEditEmployeeCost/Response_pnlUnit_Button671_OnClick\043570.def"
new file mode 100644
index 0000000..19806d3
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_DialogEditEmployeeCost/Response_pnlUnit_Button671_OnClick\043570.def"
@@ -0,0 +1,30 @@
+Quintiq file version 2.0
+#parent: pnlUnit/Button671_325
+Response OnClick () id:Response_PanelStandardWorkingDay_Button671_OnClick_570
+{
+ #keys: '[412672.1.7514567]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ GroupServerCalls: true
+ Precondition:
+ [*
+ return cbUnit.Checked();
+ *]
+ QuillAction
+ {
+ Body:
+ [*
+ this.Image( "LOCK" );
+ ddlEmployeeType.Enabled( true,"" );
+ npEmployeeNumber.Enabled( true,"" );
+ dsStartDate.Enabled( true,"" );
+ npBaseSalary.Enabled( true,"" );
+
+ ddlUnit.Enabled( false,"" );
+ cbUnit.Checked( false );
+
+ unit := ddlUnit.Data();
+ dhEmployeeCost.Data( unit.EmployeeCost( relshadow ));
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEditEmployeeCost/_ROOT_Component_DialogEditEmployeeCost.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEditEmployeeCost/_ROOT_Component_DialogEditEmployeeCost.def
new file mode 100644
index 0000000..407d633
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEditEmployeeCost/_ROOT_Component_DialogEditEmployeeCost.def
@@ -0,0 +1,22 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent DialogEditEmployeeCost
+{
+ #keys: '[412672.1.7045773]'
+ BaseType: 'WebForm'
+ Children:
+ [
+ #child: pnlContent
+ #child: pnlActions
+ ]
+ Properties:
+ [
+ Alignment: 'trailing'
+ EnterButton: 'btnOk'
+ EscapeButton: 'btnCancel'
+ ExcludeFromActiveComponent: true
+ Padding: 'false'
+ Title: 'Edit'
+ ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_ListEmployeeCost\043289.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_ListEmployeeCost\043289.def"
new file mode 100644
index 0000000..365f711
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_ListEmployeeCost\043289.def"
@@ -0,0 +1,59 @@
+Quintiq file version 2.0
+Component ListEmployeeCost
+{
+ #keys: '[412672.1.3030900]'
+ BaseType: 'WebList'
+ Children:
+ [
+ Component DataExtractor422
+ {
+ #keys: '[412672.1.3030901]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'structured[Entity]'
+ Source: 'ApplicationMacroPlanner.DataHolderEntities'
+ Taborder: 0
+ Transformation: 'Elements.astype(Unit).EmployeeCost'
+ ]
+ }
+ #child: listActionBarPage216
+ Component DataSetLevel775
+ {
+ #keys: '[412672.1.3030906]'
+ BaseType: 'WebDataSetLevel'
+ Children:
+ [
+ #child: listContextMenu383
+ ]
+ Properties:
+ [
+ Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"EmployeeType.Name","title":"浜哄憳绫诲埆","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"EmployeeType.Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"EmployeeNumber","title":"浜烘暟","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"EmployeeNumber"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Unit.Name","title":"浜х嚎","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"Unit.ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StartDate","title":"寮�濮嬫椂闂�","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StartDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"TimeUnit","title":"鏃堕棿鍗曚綅","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"TimeUnit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BaseSalary","title":"鍩烘湰宸ヨ祫","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BaseSalary"}}]'
+ ContextMenu: 'listContextMenu383'
+ Taborder: 2
+ ]
+ }
+ ]
+ Properties:
+ [
+ Taborder: 1
+ ]
+ ResponseDefinitions:
+ [
+ DelegatedResponseDefinition OnClick id:Responsedef_ListEmployeeCost_WebMenu_OnClick
+ {
+ #keys: '[412672.1.5813308]'
+ Initiator: 'WebMenu'
+ IsInherited: false
+ ResponseType: 'OnClick'
+ Arguments:
+ [
+ ResponseDefinitionArgument selection
+ {
+ #keys: '[33.0.20370560]'
+ Binding: 'this.Selection()'
+ }
+ ]
+ }
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_ListEmployeeType.def b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_ListEmployeeType.def
new file mode 100644
index 0000000..ada4b10
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_ListEmployeeType.def
@@ -0,0 +1,59 @@
+Quintiq file version 2.0
+Component ListEmployeeType
+{
+ #keys: '[412672.1.3032264]'
+ BaseType: 'WebList'
+ Children:
+ [
+ Component DataExtractor670
+ {
+ #keys: '[412672.1.3032265]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'external[MacroPlan]'
+ Source: 'MacroPlan'
+ Taborder: 0
+ Transformation: 'EmployeeType'
+ ]
+ }
+ #child: listActionBarPage989
+ Component DataSetLevel963
+ {
+ #keys: '[412672.1.3032270]'
+ BaseType: 'WebDataSetLevel'
+ Children:
+ [
+ #child: listContextMenu191
+ ]
+ Properties:
+ [
+ Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Name","title":"浜哄憳绫诲瀷","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Name"}}]'
+ ContextMenu: 'listContextMenu191'
+ Taborder: 2
+ ]
+ }
+ ]
+ Properties:
+ [
+ Taborder: 1
+ ]
+ ResponseDefinitions:
+ [
+ DelegatedResponseDefinition OnClick id:Responsedef_ListEmployeeType_WebMenu_OnClick
+ {
+ #keys: '[412672.1.6984546]'
+ Initiator: 'WebMenu'
+ IsInherited: false
+ ResponseType: 'OnClick'
+ Arguments:
+ [
+ ResponseDefinitionArgument selection
+ {
+ #keys: '[33.0.12092751]'
+ Binding: 'this.Selection()'
+ }
+ ]
+ }
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_ListOvertimeMultiplier.def b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_ListOvertimeMultiplier.def
new file mode 100644
index 0000000..d62d6a7
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_ListOvertimeMultiplier.def
@@ -0,0 +1,59 @@
+Quintiq file version 2.0
+Component ListOvertimeMultiplier
+{
+ #keys: '[412672.1.3031897]'
+ BaseType: 'WebList'
+ Children:
+ [
+ Component DataExtractor427
+ {
+ #keys: '[412672.1.3031898]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'MacroPlan'
+ Source: 'MacroPlan'
+ Taborder: 0
+ Transformation: 'OvertimeMultiplier'
+ ]
+ }
+ #child: listActionBarPage392
+ Component DataSetLevel613
+ {
+ #keys: '[412672.1.3031903]'
+ BaseType: 'WebDataSetLevel'
+ Children:
+ [
+ #child: listContextMenu134
+ ]
+ Properties:
+ [
+ Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Name","title":"Name","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Multiplier","title":"鍊嶇巼","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Multiplier"}}]'
+ ContextMenu: 'listContextMenu134'
+ Taborder: 2
+ ]
+ }
+ ]
+ Properties:
+ [
+ Taborder: 1
+ ]
+ ResponseDefinitions:
+ [
+ DelegatedResponseDefinition OnClick id:Responsedef_ListOvertimeMultiplier_WebMenu_OnClick
+ {
+ #keys: '[412672.1.3001707]'
+ Initiator: 'WebMenu'
+ IsInherited: false
+ ResponseType: 'OnClick'
+ Arguments:
+ [
+ ResponseDefinitionArgument selection
+ {
+ #keys: '[29.0.12954279]'
+ Binding: 'this.Selection()'
+ }
+ ]
+ }
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_Panel189.def b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_Panel189.def
new file mode 100644
index 0000000..2a61687
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_Panel189.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+Component Panel189
+{
+ #keys: '[412672.1.3030708]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ #child: PanelEmployeeCost
+ #child: Panel972
+ ]
+ Properties:
+ [
+ Orientation: 'horizontal'
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_Panel700.def b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_Panel700.def
new file mode 100644
index 0000000..5766ca0
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_Panel700.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+Component Panel700
+{
+ #keys: '[412672.1.3030760]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ #child: PanelEmployeeType
+ #child: PanelOvertimeMultiplier
+ ]
+ Properties:
+ [
+ Orientation: 'horizontal'
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_Panel972.def b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_Panel972.def
new file mode 100644
index 0000000..19e5ecb
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_Panel972.def
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+Component Panel972
+{
+ #keys: '[412672.1.3030746]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ #child: Panel700
+ #child: PanelStandardWorkingDay
+ ]
+ Properties:
+ [
+ Taborder: 1
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_PanelAction.def b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_PanelAction.def
new file mode 100644
index 0000000..c4587fc
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_PanelAction.def
@@ -0,0 +1,35 @@
+Quintiq file version 2.0
+Component PanelAction
+{
+ #keys: '[412672.1.5890812]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component ButtonImport
+ {
+ #keys: '[412672.1.5890863]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Image: 'IMPORT1'
+ Taborder: 0
+ ]
+ }
+ Component ButtonExport1
+ {
+ #keys: '[412672.1.5890876]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Image: 'EXPORT1'
+ Taborder: 1
+ ]
+ }
+ ]
+ Properties:
+ [
+ FixedSize: true
+ Orientation: 'horizontal'
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_PanelActions.def b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_PanelActions.def
new file mode 100644
index 0000000..a47b227
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_PanelActions.def
@@ -0,0 +1,34 @@
+Quintiq file version 2.0
+Component PanelActions
+{
+ #keys: '[412672.1.3091200]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component ButtonOK id:ButtonOK_780
+ {
+ #keys: '[412672.1.3091238]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Image: 'CHECK2'
+ Taborder: 0
+ ]
+ }
+ Component ButtonCalcel
+ {
+ #keys: '[412672.1.3091262]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Image: 'DELETE'
+ Taborder: 1
+ ]
+ }
+ ]
+ Properties:
+ [
+ Orientation: 'horizontal'
+ Taborder: 3
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_PanelActions526.def b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_PanelActions526.def
new file mode 100644
index 0000000..7578258
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_PanelActions526.def
@@ -0,0 +1,34 @@
+Quintiq file version 2.0
+Component PanelActions526
+{
+ #keys: '[412672.1.6984289]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component ButtonOK338
+ {
+ #keys: '[412672.1.6984290]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Image: 'CHECK2'
+ Taborder: 0
+ ]
+ }
+ Component ButtonCalcel267
+ {
+ #keys: '[412672.1.6984291]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Image: 'DELETE'
+ Taborder: 1
+ ]
+ }
+ ]
+ Properties:
+ [
+ Orientation: 'horizontal'
+ Taborder: 2
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_PanelEditEmployeeType.def b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_PanelEditEmployeeType.def
new file mode 100644
index 0000000..03a43fd
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_PanelEditEmployeeType.def
@@ -0,0 +1,37 @@
+Quintiq file version 2.0
+Component PanelEditEmployeeType
+{
+ #keys: '[412672.1.6984140]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component EditFieldEditEmployeeType
+ {
+ #keys: '[412672.1.6984180]'
+ BaseType: 'WebEditField'
+ Properties:
+ [
+ DataBinding: 'dhEditEmployeeType.Data.Name'
+ Label: '浜哄憳绫诲瀷'
+ Taborder: 0
+ ]
+ }
+ #child: PanelActions526
+ Component dhEditEmployeeType
+ {
+ #keys: '[412672.1.6984295]'
+ BaseType: 'WebDataHolder'
+ Databinding: 'shadow[EmployeeType]*'
+ Properties:
+ [
+ Taborder: 1
+ ]
+ }
+ ]
+ Properties:
+ [
+ FixedSize: true
+ Taborder: 0
+ Visible: false
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_PanelEditOvertimeMultiplier.def b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_PanelEditOvertimeMultiplier.def
new file mode 100644
index 0000000..93087e3
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_PanelEditOvertimeMultiplier.def
@@ -0,0 +1,48 @@
+Quintiq file version 2.0
+Component PanelEditOvertimeMultiplier
+{
+ #keys: '[412672.1.3001087]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component EditFieldEditOvertimeMultiplier
+ {
+ #keys: '[412672.1.3001163]'
+ BaseType: 'WebEditField'
+ Properties:
+ [
+ DataBinding: 'dhEditOvertimeMultiplier.Data.Name'
+ Label: '鍚嶇О'
+ Taborder: 0
+ ]
+ }
+ Component NumberPickerEditOvertimeMultiplier
+ {
+ #keys: '[412672.1.3001177]'
+ BaseType: 'WebNumberPicker'
+ Properties:
+ [
+ DataBinding: 'dhEditOvertimeMultiplier.Data.Multiplier'
+ Label: '鍊嶇巼'
+ Taborder: 1
+ ]
+ }
+ Component dhEditOvertimeMultiplier
+ {
+ #keys: '[412672.1.3001190]'
+ BaseType: 'WebDataHolder'
+ Databinding: 'shadow[OvertimeMultiplier]*'
+ Properties:
+ [
+ Taborder: 2
+ ]
+ }
+ #child: PanelActions
+ ]
+ Properties:
+ [
+ FixedSize: true
+ Taborder: 0
+ Visible: false
+ ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_PanelEmployeeCost\043154.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_PanelEmployeeCost\043154.def"
new file mode 100644
index 0000000..9049624
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_PanelEmployeeCost\043154.def"
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+Component PanelEmployeeCost
+{
+ #keys: '[412672.1.3030727]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ #child: ListEmployeeCost
+ #child: PanelAction
+ ]
+ Properties:
+ [
+ Taborder: 0
+ Title: '浜哄憳鎴愭湰'
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_PanelEmployeeType.def b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_PanelEmployeeType.def
new file mode 100644
index 0000000..7062b6b
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_PanelEmployeeType.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+Component PanelEmployeeType
+{
+ #keys: '[412672.1.3030869]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ #child: ListEmployeeType
+ #child: PanelEditEmployeeType
+ ]
+ Properties:
+ [
+ Taborder: 1
+ Title: '浜哄憳绫诲瀷'
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_PanelOvertimeMultiplier.def b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_PanelOvertimeMultiplier.def
new file mode 100644
index 0000000..92ff091
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_PanelOvertimeMultiplier.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+Component PanelOvertimeMultiplier
+{
+ #keys: '[412672.1.3030850]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ #child: ListOvertimeMultiplier
+ #child: PanelEditOvertimeMultiplier
+ ]
+ Properties:
+ [
+ Taborder: 0
+ Title: '鍔犵彮鍊嶇巼'
+ ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_PanelStandardWorkingDay\043687.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_PanelStandardWorkingDay\043687.def"
new file mode 100644
index 0000000..2579c92
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_PanelStandardWorkingDay\043687.def"
@@ -0,0 +1,37 @@
+Quintiq file version 2.0
+Component PanelStandardWorkingDay
+{
+ #keys: '[412672.1.3030780]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component NumberPicker287
+ {
+ #keys: '[412672.1.3032925]'
+ BaseType: 'WebNumberPicker'
+ Properties:
+ [
+ DataBinding: 'MacroPlan.StandardWorkingDay'
+ Enabled: false
+ Label: '鏍囧噯宸ヤ綔澶╂暟'
+ Taborder: 0
+ ]
+ }
+ Component Button671
+ {
+ #keys: '[412672.1.3032980]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Image: 'LOCK'
+ Taborder: 1
+ ]
+ }
+ ]
+ Properties:
+ [
+ Orientation: 'horizontal'
+ Taborder: 1
+ Title: '鏍囧噯宸ヤ綔澶╂暟'
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_listActionBarPage216.def b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_listActionBarPage216.def
new file mode 100644
index 0000000..c2e4e9e
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_listActionBarPage216.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listActionBarPage216
+{
+ #keys: '[412672.1.3030903]'
+ BaseType: 'listActionBarPage'
+ Properties:
+ [
+ Taborder: 1
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_listActionBarPage392.def b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_listActionBarPage392.def
new file mode 100644
index 0000000..92a7603
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_listActionBarPage392.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listActionBarPage392
+{
+ #keys: '[412672.1.3031900]'
+ BaseType: 'listActionBarPage'
+ Properties:
+ [
+ Taborder: 1
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_listActionBarPage989.def b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_listActionBarPage989.def
new file mode 100644
index 0000000..41a39cf
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_listActionBarPage989.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listActionBarPage989
+{
+ #keys: '[412672.1.3032267]'
+ BaseType: 'listActionBarPage'
+ Properties:
+ [
+ Taborder: 1
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_listContextMenu134.def b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_listContextMenu134.def
new file mode 100644
index 0000000..f4dabca
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_listContextMenu134.def
@@ -0,0 +1,46 @@
+Quintiq file version 2.0
+Component listContextMenu134
+{
+ #keys: '[412672.1.3031905]'
+ BaseType: 'listContextMenu'
+ Children:
+ [
+ Component MenuCreate
+ {
+ #keys: '[412672.1.3001739]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ Image: 'ADD2'
+ Taborder: 3
+ Title: 'Create...'
+ ]
+ }
+ Component MenuEdit
+ {
+ #keys: '[412672.1.3001760]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ Image: 'PENCIL'
+ Taborder: 4
+ Title: 'Edit...'
+ ]
+ }
+ Component MenuDelete
+ {
+ #keys: '[412672.1.3001781]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ Image: 'DELETE'
+ Taborder: 5
+ Title: 'Delete...'
+ ]
+ }
+ ]
+ Properties:
+ [
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_listContextMenu191.def b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_listContextMenu191.def
new file mode 100644
index 0000000..7089752
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_listContextMenu191.def
@@ -0,0 +1,46 @@
+Quintiq file version 2.0
+Component listContextMenu191
+{
+ #keys: '[412672.1.3032272]'
+ BaseType: 'listContextMenu'
+ Children:
+ [
+ Component MenuCreate583
+ {
+ #keys: '[412672.1.6984223]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ Image: 'ADD2'
+ Taborder: 3
+ Title: 'Create...'
+ ]
+ }
+ Component MenuEdit782
+ {
+ #keys: '[412672.1.6984249]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ Image: 'PENCIL'
+ Taborder: 4
+ Title: 'Edit...'
+ ]
+ }
+ Component MenuDelete195
+ {
+ #keys: '[412672.1.6984266]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ Image: 'DELETE'
+ Taborder: 5
+ Title: 'Delete...'
+ ]
+ }
+ ]
+ Properties:
+ [
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_listContextMenu383.def b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_listContextMenu383.def
new file mode 100644
index 0000000..7be6098
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Component_listContextMenu383.def
@@ -0,0 +1,46 @@
+Quintiq file version 2.0
+Component listContextMenu383
+{
+ #keys: '[412672.1.3030908]'
+ BaseType: 'listContextMenu'
+ Children:
+ [
+ Component MenuDelete300
+ {
+ #keys: '[412672.1.5813289]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ Image: 'DELETE'
+ Taborder: 5
+ Title: 'Delete...'
+ ]
+ }
+ Component MenuCreate187
+ {
+ #keys: '[412672.1.7546519]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ Image: 'ADD2'
+ Taborder: 3
+ Title: 'Create...'
+ ]
+ }
+ Component MenuEdit854
+ {
+ #keys: '[412672.1.7546633]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ Image: 'PENCIL'
+ Taborder: 4
+ Title: 'Edit...'
+ ]
+ }
+ ]
+ Properties:
+ [
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_ListEmployeeCost_MenuCreate187_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_ListEmployeeCost_MenuCreate187_OnClick.def
new file mode 100644
index 0000000..c552df2
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_ListEmployeeCost_MenuCreate187_OnClick.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: ListEmployeeCost
+Response OnClick () id:Response_ListEmployeeCost_MenuCreate187_OnClick
+{
+ #keys: '[412672.1.7546539]'
+ CanBindMultiple: false
+ DefinitionID => /ListEmployeeCost/Responsedef_ListEmployeeCost_WebMenu_OnClick
+ GroupServerCalls: true
+ Initiator: 'MenuCreate187'
+ QuillAction
+ {
+ Body:
+ [*
+ dlg := construct( DialogEditEmployeeCost );
+ dlg.New();
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_ListEmployeeCost_MenuDelete300_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_ListEmployeeCost_MenuDelete300_OnClick.def
new file mode 100644
index 0000000..3052e54
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_ListEmployeeCost_MenuDelete300_OnClick.def
@@ -0,0 +1,21 @@
+Quintiq file version 2.0
+#parent: ListEmployeeCost
+Response OnClick (
+ structured[EmployeeCost] selection
+) id:Response_ListEmployeeCost_MenuDelete300_OnClick
+{
+ #keys: '[412672.1.5802665]'
+ CanBindMultiple: false
+ DefinitionID => /ListEmployeeCost/Responsedef_ListEmployeeCost_WebMenu_OnClick
+ GroupServerCalls: true
+ Initiator: 'MenuDelete300'
+ QuillAction
+ {
+ Body:
+ [*
+ traverse( selection,Elements,element ){
+ element.Delete();
+ }
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_ListEmployeeCost_MenuEdit854_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_ListEmployeeCost_MenuEdit854_OnClick.def
new file mode 100644
index 0000000..a7d56c0
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_ListEmployeeCost_MenuEdit854_OnClick.def
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: ListEmployeeCost
+Response OnClick (
+ EmployeeCost selection
+) id:Response_ListEmployeeCost_MenuEdit854_OnClick
+{
+ #keys: '[412672.1.7546659]'
+ CanBindMultiple: false
+ DefinitionID => /ListEmployeeCost/Responsedef_ListEmployeeCost_WebMenu_OnClick
+ GroupServerCalls: true
+ Initiator: 'MenuEdit854'
+ QuillAction
+ {
+ Body:
+ [*
+ dlg := construct( DialogEditEmployeeCost );
+ dlg.Edit( selection );
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_ListEmployeeCost_OnDoubleClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_ListEmployeeCost_OnDoubleClick.def
new file mode 100644
index 0000000..18a4cd7
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_ListEmployeeCost_OnDoubleClick.def
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: ListEmployeeCost
+Response OnDoubleClick (
+ EmployeeCost selection
+) id:Response_ListEmployeeCost_OnDoubleClick
+{
+ #keys: '[412672.1.7422359]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebList_OnDoubleClick'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ dlg := construct( DialogEditEmployeeCost );
+ dlg.Edit( selection );
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_ListEmployeeType_MenuCreate583_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_ListEmployeeType_MenuCreate583_OnClick.def
new file mode 100644
index 0000000..5ce7c23
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_ListEmployeeType_MenuCreate583_OnClick.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: ListEmployeeType
+Response OnClick () id:Response_ListEmployeeType_MenuCreate583_OnClick
+{
+ #keys: '[412672.1.6984709]'
+ CanBindMultiple: false
+ DefinitionID => /ListEmployeeType/Responsedef_ListEmployeeType_WebMenu_OnClick
+ GroupServerCalls: true
+ Initiator: 'MenuCreate583'
+ QuillAction
+ {
+ Body:
+ [*
+ PanelEditEmployeeType.Visible( true );
+ dhEditEmployeeType.Data( MacroPlan.EmployeeType( relshadow ));
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_ListEmployeeType_MenuDelete195_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_ListEmployeeType_MenuDelete195_OnClick.def
new file mode 100644
index 0000000..f28554c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_ListEmployeeType_MenuDelete195_OnClick.def
@@ -0,0 +1,21 @@
+Quintiq file version 2.0
+#parent: ListEmployeeType
+Response OnClick (
+ structured[EmployeeType] selection
+) id:Response_ListEmployeeType_MenuDelete195_OnClick
+{
+ #keys: '[412672.1.6984976]'
+ CanBindMultiple: false
+ DefinitionID => /ListEmployeeType/Responsedef_ListEmployeeType_WebMenu_OnClick
+ GroupServerCalls: true
+ Initiator: 'MenuDelete195'
+ QuillAction
+ {
+ Body:
+ [*
+ traverse( selection,Elements,element ){
+ element.Delete();
+ }
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_ListEmployeeType_MenuEdit782_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_ListEmployeeType_MenuEdit782_OnClick.def
new file mode 100644
index 0000000..5d53dc0
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_ListEmployeeType_MenuEdit782_OnClick.def
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: ListEmployeeType
+Response OnClick (
+ EmployeeType selection
+) id:Response_ListEmployeeType_MenuEdit782_OnClick
+{
+ #keys: '[412672.1.6984805]'
+ CanBindMultiple: false
+ DefinitionID => /ListEmployeeType/Responsedef_ListEmployeeType_WebMenu_OnClick
+ GroupServerCalls: true
+ Initiator: 'MenuEdit782'
+ QuillAction
+ {
+ Body:
+ [*
+ PanelEditEmployeeType.Visible( true );
+ dhEditEmployeeType.Data( shadow(selection) );
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_ListOvertimeMultiplier_MenuCreate_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_ListOvertimeMultiplier_MenuCreate_OnClick.def
new file mode 100644
index 0000000..9324150
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_ListOvertimeMultiplier_MenuCreate_OnClick.def
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: ListOvertimeMultiplier
+Response OnClick () id:Response_ListOvertimeMultiplier_MenuCreate_OnClick
+{
+ #keys: '[412672.1.3002215]'
+ CanBindMultiple: false
+ DefinitionID => /ListOvertimeMultiplier/Responsedef_ListOvertimeMultiplier_WebMenu_OnClick
+ GroupServerCalls: true
+ Initiator: 'MenuCreate'
+ QuillAction
+ {
+ Body:
+ [*
+ PanelEditOvertimeMultiplier.Visible( true );
+
+
+ dhEditOvertimeMultiplier.Data( MacroPlan.OvertimeMultiplier( relshadow ) );
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_ListOvertimeMultiplier_MenuDelete_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_ListOvertimeMultiplier_MenuDelete_OnClick.def
new file mode 100644
index 0000000..7426826
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_ListOvertimeMultiplier_MenuDelete_OnClick.def
@@ -0,0 +1,21 @@
+Quintiq file version 2.0
+#parent: ListOvertimeMultiplier
+Response OnClick (
+ structured[OvertimeMultiplier] selection
+) id:Response_ListOvertimeMultiplier_MenuDelete_OnClick
+{
+ #keys: '[412672.1.3001913]'
+ CanBindMultiple: false
+ DefinitionID => /ListOvertimeMultiplier/Responsedef_ListOvertimeMultiplier_WebMenu_OnClick
+ GroupServerCalls: true
+ Initiator: 'MenuDelete'
+ QuillAction
+ {
+ Body:
+ [*
+ traverse( selection,Elements,element ){
+ element.Delete();
+ }
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_ListOvertimeMultiplier_MenuEdit_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_ListOvertimeMultiplier_MenuEdit_OnClick.def
new file mode 100644
index 0000000..2157065
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_ListOvertimeMultiplier_MenuEdit_OnClick.def
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: ListOvertimeMultiplier
+Response OnClick (
+ OvertimeMultiplier selection
+) id:Response_ListOvertimeMultiplier_MenuEdit_OnClick
+{
+ #keys: '[412672.1.3002036]'
+ CanBindMultiple: false
+ DefinitionID => /ListOvertimeMultiplier/Responsedef_ListOvertimeMultiplier_WebMenu_OnClick
+ GroupServerCalls: true
+ Initiator: 'MenuEdit'
+ QuillAction
+ {
+ Body:
+ [*
+ PanelEditOvertimeMultiplier.Visible( true );
+ dhEditOvertimeMultiplier.Data( shadow( selection ) );
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_PanelAction_ButtonExport1_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_PanelAction_ButtonExport1_OnClick.def
new file mode 100644
index 0000000..11b82ee
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_PanelAction_ButtonExport1_OnClick.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: PanelAction/ButtonExport1
+Response OnClick () id:Response_PanelAction_ButtonExport1_OnClick
+{
+ #keys: '[412672.1.5850508]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ QuillAction
+ {
+ Body:
+ [*
+ units := selectset( DataHolderEntities.Data(),Elements.astype( Unit ),unit,true );
+ binaryValue := EmployeeCost::Export( units );
+ Application.Download( "浜哄憳鎴愭湰_" + DateTime::Now().Format( "YM2D2H2mmss" ) + ".xlsx", binaryValue.AsBinaryData() );
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_PanelAction_ButtonImport_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_PanelAction_ButtonImport_OnClick.def
new file mode 100644
index 0000000..b33958c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_PanelAction_ButtonImport_OnClick.def
@@ -0,0 +1,45 @@
+Quintiq file version 2.0
+#parent: PanelAction/ButtonImport
+Response OnClick () id:Response_PanelAction_ButtonImport_OnClick
+{
+ #keys: '[412672.1.7045119]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ Precondition:
+ [*
+ return not isnull( MacroPlan );
+ *]
+ QuillAction
+ {
+ Body:
+ [*
+ try {
+ uploadJsonString := Application.GetFile();
+ if ( uploadJsonString <> "" ) {
+ uploadJson := JSON::Parse( uploadJsonString );
+ Archive::VerifyTheFileName( uploadJson );
+
+ fileName := uploadJson.Get( "name" ).GetString();
+ base64String := uploadJson.Get( "data" ).GetString();
+
+ webFileBinaryData := BinaryData::FromBase64EncodedString( base64String ).AsBinaryValue();
+
+ generalExcelImportAndExportDataSource := GeneralExcelImportAndExportDataSource::Upload( RecycleBin, webFileBinaryData, fileName );
+ generalExcelImportAndExportDataSource.ReadStructure();
+
+ selection := select( generalExcelImportAndExportDataSource, GeneralExcelImportAndExportDataTable, tempGEIAEDT, true );
+
+ EmployeeCost::Import( MacroPlan, selection );
+
+ // 鍚庣画鍒犻櫎
+ generalExcelImportAndExportDataSource.Delete();
+
+ WebMessageBox::Success( Translations::A_VWED_Success() );
+ }
+ } onerror {
+ WebMessageBox::Error( e.GeneralInformation() );
+ }
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_PanelActions526_ButtonCalcel267_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_PanelActions526_ButtonCalcel267_OnClick.def
new file mode 100644
index 0000000..537b24a
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_PanelActions526_ButtonCalcel267_OnClick.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: PanelActions526/ButtonCalcel267
+Response OnClick () id:Response_PanelActions526_ButtonCalcel267_OnClick
+{
+ #keys: '[412672.1.6984287]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ PanelEditEmployeeType.Visible( false );
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_PanelActions526_ButtonOK338_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_PanelActions526_ButtonOK338_OnClick.def
new file mode 100644
index 0000000..b5fcee3
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_PanelActions526_ButtonOK338_OnClick.def
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: PanelActions526/ButtonOK338
+Response OnClick () id:Response_PanelActions526_ButtonOK338_OnClick
+{
+ #keys: '[412672.1.6984288]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ if( not isnull( dhEditEmployeeType.Data())){
+ Form.ApplyChanges();
+ dhEditEmployeeType.Data().Commit();
+ }
+ PanelEditEmployeeType.Visible( false );
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_PanelActions_ButtonCalcel_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_PanelActions_ButtonCalcel_OnClick.def
new file mode 100644
index 0000000..39c486a
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_PanelActions_ButtonCalcel_OnClick.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: PanelActions/ButtonCalcel
+Response OnClick () id:Response_PanelActions_ButtonCalcel_OnClick
+{
+ #keys: '[412672.1.3091500]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ PanelEditOvertimeMultiplier.Visible( false );
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_PanelActions_ButtonOK_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_PanelActions_ButtonOK_OnClick.def
new file mode 100644
index 0000000..98da954
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_PanelActions_ButtonOK_OnClick.def
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: PanelActions/ButtonOK_780
+Response OnClick () id:Response_PanelActions_ButtonOK_OnClick
+{
+ #keys: '[412672.1.3091237]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ if( not isnull( dhEditOvertimeMultiplier.Data())){
+ Form.ApplyChanges();
+ dhEditOvertimeMultiplier.Data().Commit();
+ }
+ PanelEditOvertimeMultiplier.Visible( false );
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_PanelStandardWorkingDay_Button671_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_PanelStandardWorkingDay_Button671_OnClick.def
new file mode 100644
index 0000000..c61abf1
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_PanelStandardWorkingDay_Button671_OnClick.def
@@ -0,0 +1,21 @@
+Quintiq file version 2.0
+#parent: PanelStandardWorkingDay/Button671
+Response OnClick () id:Response_PanelStandardWorkingDay_Button671_OnClick
+{
+ #keys: '[412672.1.3033025]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ NumberPicker287.Enabled( not NumberPicker287.Enabled(),"" );
+ if( not NumberPicker287.Enabled() ){
+ this.Image( "LOCK" );
+ }else{
+ this.Image( "LOCK_OPEN" );
+ }
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_PanelStandardWorkingDay_NumberPicker287_OnChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_PanelStandardWorkingDay_NumberPicker287_OnChanged.def
new file mode 100644
index 0000000..145c0aa
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/Response_PanelStandardWorkingDay_NumberPicker287_OnChanged.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: PanelStandardWorkingDay/NumberPicker287
+Response OnChanged () id:Response_PanelStandardWorkingDay_NumberPicker287_OnChanged
+{
+ #keys: '[412672.1.6920929]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebNumberPicker_OnChanged'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ MacroPlan.StandardWorkingDay( this.Number() );
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/_ROOT_Component_FormEmployeeCost.def b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/_ROOT_Component_FormEmployeeCost.def
new file mode 100644
index 0000000..12b804d
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormEmployeeCost/_ROOT_Component_FormEmployeeCost.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent FormEmployeeCost
+{
+ #keys: '[412672.1.5334387]'
+ BaseType: 'WebForm'
+ Children:
+ [
+ #child: Panel189
+ ]
+ Properties:
+ [
+ Description: 'EmployeeCosts'
+ Image: 'MONEY_BILL_FIRE'
+ Title: 'Labor Costs'
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Views/Labor_Costs.vw b/_Main/UI/MacroPlannerWebApp/Views/Labor_Costs.vw
new file mode 100644
index 0000000..6bec5b0
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Views/Labor_Costs.vw
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+{
+ viewcontents
+ {
+ page: ''
+ group: ''
+ index: 0
+ image: 'MONEY_BILL_FIRE'
+ description: ''
+ }
+ formatversion: 2
+ id: 'Labor_Costs'
+ name: 'Labor_Costs'
+ isglobal: false
+ isroot: true
+}
--
Gitblit v1.9.3