From 6e9d3bb8c53722fa978fa4462c31616f7bbc3492 Mon Sep 17 00:00:00 2001
From: rislai <risheng.lai@capgemini.com>
Date: 星期一, 10 六月 2024 23:35:37 +0800
Subject: [PATCH] Merge branch 'dev' of http://47.101.211.7:10101/r/VWED into dev

---
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_applicationFixedPageActionBarPageDef.def                               |    8 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Method_New.def                                                         |   19 +
 _Main/BL/InfoMessages.qbl                                                                                                                      |   12 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Method_SetDefaultValue.def                                             |   14 +
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Component_pnlActions.def                                               |   40 ++
 _Main/UI/MacroPlannerWebApp/Component_FormRoutings/Response_MacroPlanner_ListRoutings_MenuThermalTrialRatio_OnClick.def                        |   24 +
 _Main/UI/MacroPlannerWebApp/Views/Change_loss_setting_view.vw                                                                                  |   82 +++++
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageRestraint.def                                             |   15 +
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupRestraint_ButtonChangeLossSetting_OnClic.def |   16 +
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Method_OnOK.def                                                        |   27 +
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Component_pnlMaxCapacity.def                                           |   24 +
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Method_OnOK.def                                                        |   30 ++
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def                                      |    3 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Component_pnlStartAndEnd.def                                           |   16 +
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditEventType/Component_pnlContent.def                                                       |    1 
 _Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_ListChangeLossSetting.def                                                |   20 +
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Component_pnlEndTime.def                                               |   23 +
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/_ROOT_Component_DialogCreateEditThermalTrialRatio.def                  |   42 +++
 _Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_ListChangeLossSetting_MenuDelete_OnClick.def                              |   21 +
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Method_New.def                                                         |   20 +
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupRestraint.def                                            |   24 +
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Component_pnlStartTime.def                                             |   23 +
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Response_pnlActions_btnCancel_OnClick.def                              |   15 +
 _Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_ListChangeLossSetting_MenuEdit_OnClick.def                                |   24 +
 /dev/null                                                                                                                                      |    9 
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageScenarioSelection.def                                     |    8 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Component_pnlContent.def                                               |   18 +
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Response_pnlActions_btnOk_OnClick.def                                  |   16 +
 _Main/BL/Type_ChangeLossSetting/StaticMethod_ValidateInput.qbl                                                                                 |   32 ++
 _Main/UI/MacroPlannerWebApp/Component_FormRoutings/Component_ListRoutings.def                                                                  |   14 +
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Response_pnlActions_btnOk_OnClick.def                                  |    9 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Component_pnlContent.def                                               |   10 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Component_pnlRouting.def                                               |   55 +++
 _Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_ListChangeLossSetting_MenuNew_OnClick.def                                 |   22 +
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Method_Edit.def                                                        |   17 +
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Component_pnlRatio.def                                                 |   35 ++
 _Main/UI/MacroPlannerWebApp/Component_FormRoutings/Component_listContextMenuRoutings.def                                                       |   28 ++
 _Main/UI/MacroPlannerWebApp/Component_FormRoutings/_ROOT_Component_FormRoutings.def                                                            |   10 
 38 files changed, 810 insertions(+), 16 deletions(-)

diff --git a/_Main/BL/InfoMessages.qbl b/_Main/BL/InfoMessages.qbl
index a1293ed..e9d598e 100644
--- a/_Main/BL/InfoMessages.qbl
+++ b/_Main/BL/InfoMessages.qbl
@@ -86,6 +86,18 @@
   {
     DefaultText: 'There are duplicate three digit codes present'
   }
+  InfoMessage MP_ChangeLossSetting_CheckNull
+  {
+    DefaultText: 'The required field is blank.'
+  }
+  InfoMessage MP_ChangeLossSetting_Exist
+  {
+    DefaultText: 'The same data already exists.'
+  }
+  InfoMessage MP_ChangeLossSetting_SameProduct
+  {
+    DefaultText: 'The two products selected are the same.'
+  }
   InfoMessage MP_LibCal_EventType_Exist
   {
     DefaultText: 'The ID or name is the same.'
diff --git a/_Main/BL/Type_ChangeLossSetting/Attribute_Line.qbl b/_Main/BL/Type_ChangeLossSetting/Attribute_Line.qbl
deleted file mode 100644
index 384d089..0000000
--- a/_Main/BL/Type_ChangeLossSetting/Attribute_Line.qbl
+++ /dev/null
@@ -1,9 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute Line
-{
-  #keys: '3[415136.0.738030059][415136.0.738030058][415136.0.738030060]'
-  Description: '浜х嚎'
-  IsReadOnly: true
-  ValueType: String
-}
diff --git a/_Main/BL/Type_ChangeLossSetting/Attribute_Product1.qbl b/_Main/BL/Type_ChangeLossSetting/Attribute_Product1.qbl
deleted file mode 100644
index 55e4355..0000000
--- a/_Main/BL/Type_ChangeLossSetting/Attribute_Product1.qbl
+++ /dev/null
@@ -1,9 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute Product1
-{
-  #keys: '3[415136.0.738030069][415136.0.738030068][415136.0.738030070]'
-  Description: '浜у搧1'
-  IsReadOnly: true
-  ValueType: String
-}
diff --git a/_Main/BL/Type_ChangeLossSetting/Attribute_Product2.qbl b/_Main/BL/Type_ChangeLossSetting/Attribute_Product2.qbl
deleted file mode 100644
index e850926..0000000
--- a/_Main/BL/Type_ChangeLossSetting/Attribute_Product2.qbl
+++ /dev/null
@@ -1,9 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute Product2
-{
-  #keys: '3[415136.0.738030079][415136.0.738030078][415136.0.738030080]'
-  Description: '浜у搧2'
-  IsReadOnly: true
-  ValueType: String
-}
diff --git a/_Main/BL/Type_ChangeLossSetting/StaticMethod_ValidateInput.qbl b/_Main/BL/Type_ChangeLossSetting/StaticMethod_ValidateInput.qbl
new file mode 100644
index 0000000..b5ed7dc
--- /dev/null
+++ b/_Main/BL/Type_ChangeLossSetting/StaticMethod_ValidateInput.qbl
@@ -0,0 +1,32 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod ValidateInput (
+  output String feedback,
+  MacroPlan owner,
+  ChangeLossSetting old,
+  Unit unit,
+  Product_MP product1,
+  Product_MP product2,
+  Number number
+) as Boolean
+{
+  TextBody:
+  [*
+    // 鐢勫叞楦� Jun-5-2024 (created)
+    feedback := '';
+    
+    if( isnull( unit ) or isnull( product1 ) or isnull( product2 ) or number < 1 ){
+      feedback := Translations::MP_ChangeLossSetting_CheckNull();
+    }
+    if( product1 = product2 ){
+      feedback := Translations::MP_ChangeLossSetting_SameProduct();
+    }
+    if( exists( owner, ChangeLossSetting, cls, cls <> old and cls.Unit() = unit 
+                and ( ( cls.ProductFirst() = product1 and cls.ProductSecond() = product2 ) 
+                      or ( cls.ProductFirst() = product2 and cls.ProductSecond() = product1 ) ) ) ){
+      feedback := Translations::MP_ChangeLossSetting_Exist()
+    }
+    
+    return feedback = '';
+  *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupRestraint.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupRestraint.def
new file mode 100644
index 0000000..77a368c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupRestraint.def
@@ -0,0 +1,24 @@
+Quintiq file version 2.0
+Component ActionBarGroupRestraint
+{
+  #keys: '[415136.0.747550191]'
+  BaseType: 'WebActionBarGroup'
+  Children:
+  [
+    Component ButtonChangeLossSetting
+    {
+      #keys: '[415136.0.747550259]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Image: 'GEAR'
+        Label: 'Change loss setting'
+        Taborder: 0
+      ]
+    }
+  ]
+  Properties:
+  [
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageRestraint.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageRestraint.def
new file mode 100644
index 0000000..13df9fa
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageRestraint.def
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+Component ActionBarPageRestraint
+{
+  #keys: '[415136.0.747550190]'
+  BaseType: 'WebActionBarPage'
+  Children:
+  [
+    #child: ActionBarGroupRestraint
+  ]
+  Properties:
+  [
+    Taborder: 18
+    Title: 'Restraint'
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageScenarioSelection.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageScenarioSelection.def
new file mode 100644
index 0000000..e918310
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageScenarioSelection.def
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+Component ActionBarPageScenarioSelection #extension
+{
+  Properties:
+  [
+    Taborder: 20
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_applicationFixedPageActionBarPageDef.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_applicationFixedPageActionBarPageDef.def
new file mode 100644
index 0000000..7c832f3
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_applicationFixedPageActionBarPageDef.def
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+Component applicationFixedPageActionBarPageDef #extension
+{
+  Properties:
+  [
+    Taborder: 21
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupRestraint_ButtonChangeLossSetting_OnClic.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupRestraint_ButtonChangeLossSetting_OnClic.def
new file mode 100644
index 0000000..d04f14a
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupRestraint_ButtonChangeLossSetting_OnClic.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: ActionBarGroupRestraint/ButtonChangeLossSetting
+Response OnClick () id:Response_MacroPlanner_ActionBarGroupRestraint_ButtonChangeLossSetting_OnClick
+{
+  #keys: '[415136.0.748214014]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  QuillAction
+  {
+    Body:
+    [*
+      ApplicationScope.ViewManager().ResetUserViewById( "Change_loss_setting_view", true);
+    *]
+    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 2bab744..db6cb34 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def
@@ -13,6 +13,9 @@
         #child: ActionBarPageSales
         #child: applicationConfigureActionBarPageDef
         #child: ActionBarPageInventory
+        #child: ActionBarPageRestraint
+        #child: ActionBarPageScenarioSelection
+        #child: applicationFixedPageActionBarPageDef
         #child: applicationDevelopmentActionBarPageDef_1
       ]
     }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Component_pnlContent.def
index c499774..44c4b7d 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Component_pnlContent.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Component_pnlContent.def
@@ -9,6 +9,7 @@
     {
       #keys: '[415136.0.735612418]'
       BaseType: 'WebDropDownList'
+      Databinding: 'Unit'
       Children:
       [
         Component deUnit
@@ -18,7 +19,6 @@
           Properties:
           [
             DataType: 'MacroPlan'
-            FixedFilter: "object.CapacityType() = 'Time'"
             Source: 'MacroPlan'
             Taborder: 0
             Transformation: 'Unit'
@@ -28,7 +28,8 @@
       Properties:
       [
         DataBinding: 'dhDialogData.Data.Unit'
-        Label: 'Line'
+        DisplayField: 'Name'
+        Label: 'Unit'
         Taborder: 0
       ]
     }
@@ -36,6 +37,7 @@
     {
       #keys: '[415136.0.738250065]'
       BaseType: 'WebDropDownList'
+      Databinding: 'Product_MP'
       Children:
       [
         Component deProductFirst
@@ -54,6 +56,7 @@
       Properties:
       [
         DataBinding: 'dhDialogData.Data.ProductFirst'
+        DisplayField: 'Name'
         Label: 'Product1'
         Taborder: 1
       ]
@@ -62,6 +65,7 @@
     {
       #keys: '[415136.0.738250142]'
       BaseType: 'WebDropDownList'
+      Databinding: 'Product_MP'
       Children:
       [
         Component deProductSecond
@@ -80,6 +84,7 @@
       Properties:
       [
         DataBinding: 'dhDialogData.Data.ProductSecond'
+        DisplayField: 'Name'
         Label: 'Product2'
         Taborder: 2
       ]
@@ -92,6 +97,7 @@
       [
         DataBinding: 'dhDialogData.Data.ChangeLossNr'
         Label: 'Change loss number'
+        Min: '0'
         Taborder: 3
       ]
     }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Method_Edit.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Method_Edit.def
new file mode 100644
index 0000000..fc9c24e
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Method_Edit.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: #root
+Method Edit (
+  ChangeLossSetting selection
+) id:Method_DialogCreateEditChangeLossSetting_Edit
+{
+  #keys: '[415136.0.746200731]'
+  Body:
+  [*
+    // Edit Product(s)
+    
+    data := shadow( selection );
+    dhDialogData.Data( &data );
+    
+    ApplicationMacroPlanner.ShowFormModal( this );
+  *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Method_New.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Method_New.def
new file mode 100644
index 0000000..8e07d45
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Method_New.def
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: #root
+Method New (
+  FormChangeLossSetting form
+) id:Method_DialogCreateEditChangeLossSetting_New
+{
+  #keys: '[415136.0.746200358]'
+  Body:
+  [*
+    // To create a new product
+    owner := LibCal_GlobalState.dhGlobalCalendarRegistry().Data();
+    obj := MacroPlan.ChangeLossSetting( relshadow );
+    
+    dhDialogData.Data( &obj );
+    
+    dhForm.Data( form );
+    
+    ApplicationMacroPlanner.ShowFormModal( this );
+  *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Method_OnOK.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Method_OnOK.def
new file mode 100644
index 0000000..8135b6d
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Method_OnOK.def
@@ -0,0 +1,27 @@
+Quintiq file version 2.0
+#parent: #root
+Method OnOK () id:Method_DialogCreateEditChangeLossSetting_OnOK
+{
+  #keys: '[415136.0.746200837]'
+  Body:
+  [*
+    // onOK for ProductDialog
+    // When the user clicks ok,
+    // we either create or edit the data
+    this.ApplyChanges();
+    
+    data := dhDialogData.Data();
+    
+    if( isnull( data.WrappedInstance() ) ) // New
+    {
+      data.Commit();
+      dhForm.Data().ListChangeLossSetting().SelectByKey( data.WrappedInstance().Key() );
+    }
+    else
+    {
+      data.Commit();
+    }
+    
+    this.Close();
+  *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Response_pnlActions_btnOk_OnClick.def
index a46ffc6..a93df84 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Response_pnlActions_btnOk_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Response_pnlActions_btnOk_OnClick.def
@@ -4,13 +4,16 @@
 {
   #keys: '[415136.0.735612174]'
   DefinitionID: 'Responsedef_WebButton_OnClick'
-  GroupServerCalls: true
+  Precondition:
+  [*
+    return ChangeLossSetting::ValidateInput( feedback, MacroPlan, dhDialogData.Data().WrappedInstance(), ddlUnit.Data(), ddlProduct1.Data(), ddlProduct2.Data(), [Number]npChangeLossNr.Number() );
+  *]
   QuillAction
   {
     Body:
     [*
-      Form.ApplyChanges();
-      Form.Close();
+      Form.OnOK();
     *]
+    GroupServerCalls: false
   }
 }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditEventType/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditEventType/Component_pnlContent.def
index 288ffcc..e0ab82e 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditEventType/Component_pnlContent.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditEventType/Component_pnlContent.def
@@ -55,7 +55,6 @@
         FixedSize: false
         Label: 'Parent event type'
         Taborder: 2
-        Tooltip: '<html>Leave empty if the product is at the highest level of the product hierarchy.<br>Otherwise select the parent product.</html>'
       ]
     }
   ]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Component_pnlActions.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Component_pnlActions.def
new file mode 100644
index 0000000..359faf2
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Component_pnlActions.def
@@ -0,0 +1,40 @@
+Quintiq file version 2.0
+Component pnlActions
+{
+  #keys: '[415136.0.756140030]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component btnOk
+    {
+      #keys: '[415136.0.756140034]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Label: 'OK'
+        Taborder: 0
+      ]
+    }
+    Component btnCancel
+    {
+      #keys: '[415136.0.756140036]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Label: 'Cancel'
+        Taborder: 1
+      ]
+    }
+  ]
+  Properties:
+  [
+    Alignment: 'trailing'
+    Border: true
+    ExcludeFromActiveComponent: true
+    FixedSize: true
+    Orientation: 'horizontal'
+    Padding: 'true'
+    Style: 'footer'
+    Taborder: 3
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Component_pnlContent.def
new file mode 100644
index 0000000..3821433
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Component_pnlContent.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+Component pnlContent
+{
+  #keys: '[415136.0.756140028]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    #child: pnlRouting
+    #child: pnlMaxCapacity
+    #child: pnlStartAndEnd
+    #child: pnlRatio
+  ]
+  Properties:
+  [
+    Padding: 'true'
+    Taborder: 2
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Component_pnlEndTime.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Component_pnlEndTime.def
new file mode 100644
index 0000000..71508ea
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Component_pnlEndTime.def
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+Component pnlEndTime
+{
+  #keys: '[415136.0.756140748]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component dsEndTime
+    {
+      #keys: '[415136.0.756140766]'
+      BaseType: 'WebDateSelector'
+      Properties:
+      [
+        Label: 'End'
+        Taborder: 0
+      ]
+    }
+  ]
+  Properties:
+  [
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Component_pnlMaxCapacity.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Component_pnlMaxCapacity.def
new file mode 100644
index 0000000..041a710
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Component_pnlMaxCapacity.def
@@ -0,0 +1,24 @@
+Quintiq file version 2.0
+Component pnlMaxCapacity
+{
+  #keys: '[415136.0.756140541]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component efMaxCapacity
+    {
+      #keys: '[415136.0.756140589]'
+      BaseType: 'WebEditField'
+      Properties:
+      [
+        Label: 'Maximum thermal trial capacity'
+        Taborder: 0
+      ]
+    }
+  ]
+  Properties:
+  [
+    FixedSize: true
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Component_pnlRatio.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Component_pnlRatio.def
new file mode 100644
index 0000000..dbad8e2
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Component_pnlRatio.def
@@ -0,0 +1,35 @@
+Quintiq file version 2.0
+Component pnlRatio
+{
+  #keys: '[415136.0.756140800]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component lblThermalTrialRatio
+    {
+      #keys: '[415136.0.756140822]'
+      BaseType: 'WebLabel'
+      Properties:
+      [
+        Label: 'Thermal Trial Ratio'
+        Taborder: 0
+      ]
+    }
+    Component efThermalTrialRatio
+    {
+      #keys: '[415136.0.756140847]'
+      BaseType: 'WebEditField'
+      Properties:
+      [
+        Label: '1:'
+        Taborder: 1
+      ]
+    }
+  ]
+  Properties:
+  [
+    FixedSize: true
+    Orientation: 'horizontal'
+    Taborder: 3
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Component_pnlRouting.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Component_pnlRouting.def
new file mode 100644
index 0000000..0ebdb18
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Component_pnlRouting.def
@@ -0,0 +1,55 @@
+Quintiq file version 2.0
+Component pnlRouting
+{
+  #keys: '[415136.0.756140163]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component ddlRouting
+    {
+      #keys: '[415136.0.756140276]'
+      BaseType: 'WebDropDownList'
+      Databinding: 'Routing'
+      Children:
+      [
+        Component DataExtractorRouting
+        {
+          #keys: '[415136.0.756140277]'
+          BaseType: 'WebDataExtractor'
+          Properties:
+          [
+            DataType: 'structured[Routing]'
+            Source: 'dhRoutingSelection'
+            Taborder: 0
+            Transformation: 'Elements'
+          ]
+        }
+      ]
+      Properties:
+      [
+        AllowEmpty: true
+        DataBinding: 'dhDialogData.Data'
+        DisplayField: 'Name'
+        FixedSize: false
+        Label: 'Routing'
+        Taborder: 1
+      ]
+    }
+    Component dhRoutingSelection
+    {
+      #keys: '[415136.0.756140424]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'structured[Routing]*'
+      Properties:
+      [
+        MergeStyle: 'Union'
+        Taborder: 0
+      ]
+    }
+  ]
+  Properties:
+  [
+    FixedSize: true
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Component_pnlStartAndEnd.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Component_pnlStartAndEnd.def
new file mode 100644
index 0000000..aed985e
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Component_pnlStartAndEnd.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+Component pnlStartAndEnd
+{
+  #keys: '[415136.0.756140654]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    #child: pnlStartTime
+    #child: pnlEndTime
+  ]
+  Properties:
+  [
+    FixedSize: true
+    Taborder: 2
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Component_pnlStartTime.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Component_pnlStartTime.def
new file mode 100644
index 0000000..a304484
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Component_pnlStartTime.def
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+Component pnlStartTime
+{
+  #keys: '[415136.0.756140686]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component dsStartTime
+    {
+      #keys: '[415136.0.756140720]'
+      BaseType: 'WebDateSelector'
+      Properties:
+      [
+        Label: 'Start'
+        Taborder: 0
+      ]
+    }
+  ]
+  Properties:
+  [
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Method_New.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Method_New.def
new file mode 100644
index 0000000..96f304f
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Method_New.def
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: #root
+Method New (
+  Routing selection,
+  FormRoutings formrouting
+) id:Method_DialogCreateEditThermalTrialRatio_New
+{
+  #keys: '[415136.0.756141435]'
+  Body:
+  [*
+    // Edit Product(s)
+    dhForm.Data( formrouting );
+    dhDialogData.Data( selection );
+    
+    Form.SetDefaultValue();
+    
+    ApplicationMacroPlanner.ShowFormModal( this );
+  *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Method_OnOK.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Method_OnOK.def
new file mode 100644
index 0000000..013d36c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Method_OnOK.def
@@ -0,0 +1,30 @@
+Quintiq file version 2.0
+#parent: #root
+Method OnOK () id:Method_DialogCreateEditThermalTrialRatio_OnOK
+{
+  #keys: '[415136.0.762562093]'
+  Body:
+  [*
+    // onOK for ProductDialog
+    // When the user clicks ok,
+    // we either create or edit the data
+    this.ApplyChanges();
+    
+    data := dhDialogData.Data();
+    
+    //if( isnull( data.WrappedInstance() ) ) // New
+    //{
+    //  // When create product, parent relation must be null (as server method has logic to detect parent change using this relation)
+    //  data.Parent( relflush );
+    //  data.Commit();
+    //  dhForm.Data().ListEventType().SelectByKey( data.WrappedInstance().Key() );
+    //}
+    //else
+    //{
+    //  LibCal_EventType::Update( dhDialogData.Data().WrappedInstance(), efID.Text(), efName.Text()
+    //                            ,guard( selParent.Data(), null(  LibCal_EventType ) ) );
+    //}
+    
+    this.Close();
+  *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Method_SetDefaultValue.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Method_SetDefaultValue.def
new file mode 100644
index 0000000..331efba
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Method_SetDefaultValue.def
@@ -0,0 +1,14 @@
+Quintiq file version 2.0
+#parent: #root
+Method SetDefaultValue () id:Method_DialogCreateEditThermalTrialRatio_SetDefaultValue
+{
+  #keys: '[415136.0.756141199]'
+  Body:
+  [*
+    // Set default + init dialog
+    
+    routings := selectset( MacroPlan, Routing, routing , true );
+    
+    dhRoutingSelection.Data( routings.Copy() );
+  *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Response_pnlActions_btnCancel_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Response_pnlActions_btnCancel_OnClick.def
new file mode 100644
index 0000000..7a125d5
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/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: '[415136.0.756140040]'
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      Form.Close();
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Response_pnlActions_btnOk_OnClick.def
new file mode 100644
index 0000000..8fd0a6d
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Response_pnlActions_btnOk_OnClick.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: pnlActions/btnOk
+Response OnClick () id:Response_pnlActions_btnOk_OnClick
+{
+  #keys: '[415136.0.756140039]'
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      Form.ApplyChanges();
+      Form.Close();
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/_ROOT_Component_DialogCreateEditThermalTrialRatio.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/_ROOT_Component_DialogCreateEditThermalTrialRatio.def
new file mode 100644
index 0000000..dd793e2
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/_ROOT_Component_DialogCreateEditThermalTrialRatio.def
@@ -0,0 +1,42 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent DialogCreateEditThermalTrialRatio
+{
+  #keys: '[415136.0.756140026]'
+  BaseType: 'WebForm'
+  Children:
+  [
+    #child: pnlContent
+    #child: pnlActions
+    Component dhDialogData id:dhDialogData_623
+    {
+      #keys: '[415136.0.756140336]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'Routing'
+      Properties:
+      [
+        Taborder: 0
+      ]
+    }
+    Component dhForm id:dhForm_836
+    {
+      #keys: '[415136.0.762562257]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'FormRoutings'
+      Properties:
+      [
+        Taborder: 1
+      ]
+    }
+  ]
+  Properties:
+  [
+    Alignment: 'trailing'
+    EnterButton: 'btnOk'
+    EscapeButton: 'btnCancel'
+    ExcludeFromActiveComponent: true
+    Padding: 'false'
+    Title: 'Thermal trial ratio'
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_ListChangeLossSetting.def b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_ListChangeLossSetting.def
index 69b56e8..213c5f6 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_ListChangeLossSetting.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_ListChangeLossSetting.def
@@ -28,7 +28,7 @@
       ]
       Properties:
       [
-        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Line","title":"Line","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"Line"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Product1","title":"Product1","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"Product1"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Product2","title":"Product2","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"Product2"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ChangeLossNr","title":"ChangeLossNr","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ChangeLossNr"}}]'
+        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Unit.ID","title":"Unit","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"Unit.ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductFirst.ID","title":"Product1","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ProductFirst.ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductSecond.ID","title":"Product2","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ProductSecond.ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ChangeLossNr","title":"ChangeLossNr","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ChangeLossNr"}}]'
         ContextMenu: 'listContextMenuChangeLossSetting'
         Taborder: 2
       ]
@@ -38,4 +38,22 @@
   [
     Taborder: 0
   ]
+  ResponseDefinitions:
+  [
+    DelegatedResponseDefinition OnClick id:Responsedef_ListChangeLossSetting_WebMenu_OnClick
+    {
+      #keys: '[415136.0.747540770]'
+      Initiator: 'WebMenu'
+      IsInherited: false
+      ResponseType: 'OnClick'
+      Arguments:
+      [
+        ResponseDefinitionArgument selection
+        {
+          #keys: '[913.0.7765768]'
+          Binding: 'this.Selection()'
+        }
+      ]
+    }
+  ]
 }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_ListChangeLossSetting_MenuDelete_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_ListChangeLossSetting_MenuDelete_OnClick.def
new file mode 100644
index 0000000..ae6d5c1
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_ListChangeLossSetting_MenuDelete_OnClick.def
@@ -0,0 +1,21 @@
+Quintiq file version 2.0
+#parent: ListChangeLossSetting
+Response OnClick (
+  structured[ChangeLossSetting] selection
+) id:Response_ListChangeLossSetting_MenuDelete_OnClick
+{
+  #keys: '[415136.0.747541132]'
+  CanBindMultiple: false
+  DefinitionID => /ListChangeLossSetting/Responsedef_ListChangeLossSetting_WebMenu_OnClick
+  Initiator: 'MenuDelete'
+  QuillAction
+  {
+    Body:
+    [*
+      traverse( selection, Elements, e ){
+        e.Delete();
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_ListChangeLossSetting_MenuEdit_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_ListChangeLossSetting_MenuEdit_OnClick.def
new file mode 100644
index 0000000..94565f7
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_ListChangeLossSetting_MenuEdit_OnClick.def
@@ -0,0 +1,24 @@
+Quintiq file version 2.0
+#parent: ListChangeLossSetting
+Response OnClick (
+  ChangeLossSetting selection
+) id:Response_ListChangeLossSetting_MenuEdit_OnClick
+{
+  #keys: '[415136.0.747540962]'
+  CanBindMultiple: false
+  DefinitionID => /ListChangeLossSetting/Responsedef_ListChangeLossSetting_WebMenu_OnClick
+  Initiator: 'MenuEdit'
+  Precondition:
+  [*
+    return MacroPlan::HasMacroPlan( MacroPlan, feedback );
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      dlg := construct( DialogCreateEditChangeLossSetting );
+      dlg.Edit( selection );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_ListChangeLossSetting_MenuNew_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_ListChangeLossSetting_MenuNew_OnClick.def
new file mode 100644
index 0000000..0ad7fde
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_ListChangeLossSetting_MenuNew_OnClick.def
@@ -0,0 +1,22 @@
+Quintiq file version 2.0
+#parent: ListChangeLossSetting
+Response OnClick () id:Response_ListChangeLossSetting_MenuNew_OnClick
+{
+  #keys: '[415136.0.747540787]'
+  CanBindMultiple: false
+  DefinitionID => /ListChangeLossSetting/Responsedef_ListChangeLossSetting_WebMenu_OnClick
+  Initiator: 'MenuNew'
+  Precondition:
+  [*
+    return MacroPlan::HasMacroPlan( MacroPlan, feedback );
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      dlg := construct( DialogCreateEditChangeLossSetting );
+      dlg.New( FormChangeLossSetting );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormRoutings/Component_ListRoutings.def b/_Main/UI/MacroPlannerWebApp/Component_FormRoutings/Component_ListRoutings.def
new file mode 100644
index 0000000..87a19d7
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormRoutings/Component_ListRoutings.def
@@ -0,0 +1,14 @@
+Quintiq file version 2.0
+Component ListRoutings #extension
+{
+  Children:
+  [
+    Component DataSetLevelRoutings #extension
+    {
+      Children:
+      [
+        #child: listContextMenuRoutings
+      ]
+    }
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormRoutings/Component_listContextMenuRoutings.def b/_Main/UI/MacroPlannerWebApp/Component_FormRoutings/Component_listContextMenuRoutings.def
new file mode 100644
index 0000000..1eb358f
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormRoutings/Component_listContextMenuRoutings.def
@@ -0,0 +1,28 @@
+Quintiq file version 2.0
+Component listContextMenuRoutings #extension
+{
+  Children:
+  [
+    Component MenuSeparator1
+    {
+      #keys: '[415136.0.761890739]'
+      BaseType: 'WebMenu'
+      Properties:
+      [
+        Separator: true
+        Taborder: 11
+      ]
+    }
+    Component MenuThermalTrialRatio
+    {
+      #keys: '[415136.0.761890786]'
+      BaseType: 'WebMenu'
+      Properties:
+      [
+        Image: 'OSZILLOGRAPH'
+        Taborder: 12
+        Title: 'Thermal trial ratio'
+      ]
+    }
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormRoutings/Response_MacroPlanner_ListRoutings_MenuThermalTrialRatio_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormRoutings/Response_MacroPlanner_ListRoutings_MenuThermalTrialRatio_OnClick.def
new file mode 100644
index 0000000..6cef285
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormRoutings/Response_MacroPlanner_ListRoutings_MenuThermalTrialRatio_OnClick.def
@@ -0,0 +1,24 @@
+Quintiq file version 2.0
+#parent: ListRoutings
+Response OnClick (
+  Routing selection
+) id:Response_MacroPlanner_ListRoutings_MenuThermalTrialRatio_OnClick
+{
+  #keys: '[415136.0.761890849]'
+  CanBindMultiple: false
+  DefinitionID => /ListRoutings/Responsedef_ListRoutings_WebMenu_OnClick
+  Initiator: 'MenuThermalTrialRatio'
+  Precondition:
+  [*
+    return MacroPlan::HasMacroPlan( DataHolderActiveScenario.Data(), feedback );
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      dlg := construct( DialogCreateEditThermalTrialRatio );
+      dlg.New( selection, FormRoutings );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormRoutings/_ROOT_Component_FormRoutings.def b/_Main/UI/MacroPlannerWebApp/Component_FormRoutings/_ROOT_Component_FormRoutings.def
new file mode 100644
index 0000000..226312e
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormRoutings/_ROOT_Component_FormRoutings.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: LibMacroPlannerWebUI
+OrphanComponent FormRoutings #extension
+{
+  Children:
+  [
+    #child: ListRoutings
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Views/Change_loss_setting_view.vw b/_Main/UI/MacroPlannerWebApp/Views/Change_loss_setting_view.vw
new file mode 100644
index 0000000..cb2cbed
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Views/Change_loss_setting_view.vw
@@ -0,0 +1,82 @@
+Quintiq file version 2.0
+{
+  viewcontents
+  {
+    forms
+    {
+      form_FormChangeLossSetting
+      {
+        title: 'QMacroPlanner::FormChangeLossSetting'
+        shown: true
+        componentID: 'QMacroPlanner::FormChangeLossSetting'
+        layout
+        {
+          mode: 'open'
+          rowPosition: 1
+          rowSpan: 15
+          columnPosition: 1
+          columnSpan: 12
+        }
+        components
+        {
+          FormChangeLossSetting_ListChangeLossSetting
+          {
+          }
+          FormChangeLossSetting_DataSetLevelChangeLossSetting
+          {
+            groupDepth: -1
+            column_Unit_ID
+            {
+              columnId: 'Unit.ID'
+              dataPath: 'Unit.ID'
+              dataType: 'string'
+              index: 0
+              subtotals: ''
+              width: 150
+            }
+            column_ProductFirst_ID
+            {
+              columnId: 'ProductFirst.ID'
+              dataPath: 'ProductFirst.ID'
+              dataType: 'string'
+              index: 1
+              subtotals: ''
+              width: 150
+            }
+            column_ProductSecond_ID
+            {
+              columnId: 'ProductSecond.ID'
+              dataPath: 'ProductSecond.ID'
+              dataType: 'string'
+              index: 2
+              subtotals: ''
+              width: 150
+            }
+            column_ChangeLossNr
+            {
+              columnId: 'ChangeLossNr'
+              dataPath: 'ChangeLossNr'
+              dataType: 'number'
+              index: 3
+              subtotals: ''
+              width: 150
+            }
+          }
+        }
+      }
+    }
+    userconfigurableinformation
+    {
+    }
+    page: ''
+    group: ''
+    index: 15
+    image: 'GEAR'
+    description: ''
+  }
+  formatversion: 2
+  id: 'Change_loss_setting_view'
+  name: 'Change loss setting view'
+  isglobal: false
+  isroot: true
+}

--
Gitblit v1.9.3