From ee410ee1b320ad9fc5066afd1534c944dedc184d Mon Sep 17 00:00:00 2001
From: admin <admin@admin.com>
Date: 星期日, 25 八月 2024 18:20:14 +0800
Subject: [PATCH] Merge branch 'dev' of http://47.101.211.7:10101/r/VWED into dev

---
 _Main/UI/MacroPlannerWebApp/Component_FormInterfaceLoginfo/Component_ListInterfaceLoginfo.def                                                  |    3 
 _Main/BL/Type_AOnlineAndMOfflinePlanPIRData/Attribute_Product.qbl                                                                              |    8 
 _Main/BL/Type_InterfaceLoginfoMiddle/DefaultValue_Name.qbl                                                                                     |    6 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Method_New.def                                                         |    2 
 _Main/BL/Type_AssemblyOnlinePlanPush/Attribute_Product.qbl                                                                                     |    8 
 _Main/BL/Type_AssemblyOnlinePlanPush/Attribute_PlanningDate.qbl                                                                                |    8 
 _Main/BL/InfoMessages.qbl                                                                                                                      |   16 
 _Main/BL/Type_AOnlineAndMOfflinePlanPIRData/Attribute_PlanningQty.qbl                                                                          |    8 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Method_SetDefaultValue.def                                             |    2 
 _Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_ListChangeLossSetting_568_MenuDelete_OnClick.def                          |   21 
 _Main/BL/Type_InventoryInterfaceData/StaticMethod_SynchronizeInventory#575.qbl                                                                 |   24 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/_ROOT_Component_DialogCreateEditHotTestRatio.def                       |    4 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Method_OnOK.def                                                        |    2 
 _Main/BL/Type_ChangeLossSettingExcel/Attribute_Product2.qbl                                                                                    |    9 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/_ROOT_Component_DialogCreateEditChangeoverLossSetting.def              |    6 
 _Main/BL/Type_AOnlineAndMOfflinePlanMS64Data/_ROOT_Type_AOnlineAndMOfflinePlanMS64Data.qbl                                                     |   10 
 _Main/BL/Type_AOnlineAndMOfflinePlanPIR/Attribute_StartDate.qbl                                                                                |    8 
 _Main/BL/Type_InterfaceLoginfoMiddle/_ROOT_Type_InterfaceLoginfoMiddle.qbl                                                                     |   10 
 _Main/BL/Type_AssemblyOnlinePlanPush/DefaultValue_VersionName.qbl                                                                              |    6 
 _Main/BL/Relations/Relation_AOnlineAndMOfflinePlanPIR_InterfaceDataset_InterfaceDataset_AOnline.qbl                                            |   23 
 _Main/BL/Type_Archive/StaticMethod_GenerateForecast.qbl                                                                                        |    2 
 _Main/BL/Type_AssemblyOnlinePlanPush/Attribute_VersionFlag.qbl                                                                                 |    8 
 _Main/BL/Type_InterfaceLoginfo/StaticMethod_SyncMiddle.qbl                                                                                     |   21 
 _Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSPIR/Response_pnlActions_btnCancel_OnClick.def                                                |   15 
 _Main/BL/Type_InterfaceLoginfoMiddle/Attribute_ID.qbl                                                                                          |    8 
 _Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSPIR/Response_pnlActions_btnOk_OnClick.def                                                    |   16 
 _Main/BL/Type_AssemblyOnlinePlanPush/Attribute_InterfaceTime.qbl                                                                               |    8 
 _Main/BL/Relations/Relation_AOnlineAndMOfflinePlanPIR_PIRData_AOnlineAndMOfflinePlanPIRData_PIR.qbl                                            |   23 
 _Main/BL/Type_AOnlineAndMOfflinePlanPIR/_ROOT_Type_AOnlineAndMOfflinePlanPIR.qbl                                                               |   10 
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupRestraint.def                                            |    4 
 _Main/BL/Type_ChangeLossSettingExcel/_ROOT_Type_ChangeLossSettingExcel.qbl                                                                     |   10 
 _Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_PanelList.def                                                            |   14 
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupRestraint_ButtonChangeoverLossSetting_On.def |    4 
 _Main/UI/MacroPlannerWebApp/Component_Form568/Component_pOperation.def                                                                         |   26 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Method_Edit.def                                                        |    2 
 _Main/BL/Type_AssemblyOnlinePlanPush/Attribute_Fac.qbl                                                                                         |    8 
 _Main/BL/Type_AOnlineAndMOfflinePlanMS64/Attribute_Version.qbl                                                                                 |    8 
 _Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSPIR/Component_pnlContent.def                                                                 |   54 +
 _Main/BL/Relations/Relation_AssemblyOnlinePlanPPPSPush_InterfaceDataset_InterfaceDataset_Assemb.qbl                                            |   23 
 _Main/BL/Type_AssemblyOnlinePlanPush/DefaultValue_FactoryName.qbl                                                                              |    6 
 _Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_PanelHeader.def                                                          |   35 +
 _Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSMS64/Component_pnlContent.def                                                                |  103 +++
 _Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/_ROOT_Component_FormChangeoverLossSetting.def                                      |   18 
 _Main/BL/Type_AOnlineAndMOfflinePlanMS64/Attribute_IsActive.qbl                                                                                |    8 
 _Main/BL/Relations/Relation_AOnlineAndMOfflinePlanMS64_InterfaceDataset_InterfaceDataset_AOnlin.qbl                                            |   23 
 _Main/BL/Type_ChangeLossSettingExcel/Attribute_Product1.qbl                                                                                    |    9 
 _Main/BL/Type_InterfaceLoginfoMiddle/Attribute_Response.qbl                                                                                    |    8 
 _Main/BL/EDI/Broker_IL_InterfaceLogInfoMiddlesBroker.qbl                                                                                       |   68 ++
 _Main/BL/Relations/Relation_InterfaceLoginfoMiddle_InterfaceDataset_InterfaceDataset_InterfaceL.qbl                                            |   23 
 _Main/UI/MacroPlannerWebApp/Component_FormRoutings/Response_MacroPlanner_ListRoutings_MenuHotTestRatio_OnClick.def                             |    6 
 _Main/BL/Type_AOnlineAndMOfflinePlanMS64/Attribute_VersionFrom.qbl                                                                             |    8 
 _Main/BL/Type_AOnlineAndMOfflinePlanPIRData/_ROOT_Type_AOnlineAndMOfflinePlanPIRData.qbl                                                       |   10 
 _Main/BL/Type_ChangeLossSettingExcel/TypeIndex_ChangeLossSettingTypeIndex.qbl                                                                  |   20 
 _Main/BL/Type_InterfaceLoginfoMiddle/Attribute_FinishTime.qbl                                                                                  |    8 
 _Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_listContextMenuChangeLossSetting#1.def                                   |   10 
 _Main/UI/MacroPlannerWebApp/Component_FormRoutings/Component_listContextMenuRoutings.def                                                       |    4 
 _Main/BL/EDI/Broker_MP_ImportChangeLossSettingsBroker.qbl                                                                                      |   49 +
 _Main/BL/Relations/Relation_AOnlineAndMOfflinePlanMS64_MS64Data_AOnlineAndMOfflinePlanMS64Data_.qbl                                            |   23 
 _Main/BL/Type_AOnlineAndMOfflinePlanMS64Data/Attribute_Product.qbl                                                                             |    8 
 _Main/BL/Type_Archive/StaticMethod_Success.qbl                                                                                                 |    6 
 _var/_Main/Data/MP_ChangeLossSetting.xlsx                                                                                                      |    0 
 _Main/UI/MacroPlannerWebApp/Views/Change_loss_setting_view.vw                                                                                  |   18 
 _Main/BL/Type_AOnlineAndMOfflinePlanMS64/Attribute_EndDate.qbl                                                                                 |    8 
 _Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_ListChangeLossSetting#568.def                                            |   16 
 _Main/BL/Type_ChangeLossSettingExcel/StaticMethod_CheckImport.qbl                                                                              |   39 +
 _Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSMS64/_ROOT_Component_DialogZEDPPSMS64.def                                                    |   22 
 _Main/BL/Relations/Relation_ChangeLossSettingExcel_MacroPlan_MacroPlan_ChangeLossSettingExcel.qbl                                              |   23 
 _Main/BL/Type_FinishedEngineInventory/StaticMethod_Synchronize.qbl                                                                             |   11 
 _Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSPIR/Component_pnlActions.def                                                                 |   40 +
 _Main/BL/Type_AOnlineAndMOfflinePlanPIR/Attribute_Version.qbl                                                                                  |    8 
 _Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSMS64/Component_pnlActions.def                                                                |   50 +
 _Main/BL/Type_CustomerDemandPPAIDS/StaticMethod_GenerateData.qbl                                                                               |   18 
 _Main/BL/Type_AssemblyOnlinePlanPush/Attribute_FactoryName.qbl                                                                                 |    8 
 _Main/BL/Type_AOnlineAndMOfflinePlanPIRData/Attribute_PlanningDate.qbl                                                                         |    8 
 _Main/BL/Type_AOnlineAndMOfflinePlanMS64/DefaultValue_Werk.qbl                                                                                 |    6 
 _Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_ListChangeLossSetting_568_MenuEdit_OnClick.def                            |   24 
 _Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSMS64/Response_pnlActions_btnApply_OnClick.def                                                |   19 
 _Main/BL/Type_AssemblyOnlinePlanPush/StaticMethod_GenerateData.qbl                                                                             |   55 +
 _Main/BL/Type_AOnlineAndMOfflinePlanMS64/Attribute_Product.qbl                                                                                 |    8 
 _Main/BL/Type_AssemblyOnlinePlanPush/Attribute_PlanningQty.qbl                                                                                 |    8 
 _Main/UI/MacroPlannerWebApp/Component_Form568/Response_pOperation_Button633_OnClick.def                                                        |   16 
 _Main/BL/Type_AOnlineAndMOfflinePlanPIR/Attribute_EndDate.qbl                                                                                  |    8 
 _Main/BL/Type_ChangeLossSettingExcel/StaticMethod_ExportTemplate.qbl                                                                           |   15 
 _Main/BL/Type_AOnlineAndMOfflinePlanPIR/StaticMethod_GenerateData.qbl                                                                          |   30 
 _Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_ListChangeLossSetting_568_MenuNew_OnClick.def                             |   22 
 _Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSMS64/Response_pnlActions_btnCancel_OnClick.def                                               |   15 
 _Main/BL/Type_AOnlineAndMOfflinePlanMS64/_ROOT_Type_AOnlineAndMOfflinePlanMS64.qbl                                                             |   10 
 _Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSMS64/Response_pnlActions_btnOk_OnClick.def                                                   |   16 
 _Main/BL/Type_InterfaceLoginfoMiddle/DefaultValue_Response.qbl                                                                                 |    6 
 _Main/BL/Type_MachineStockData/StaticMethod_Synchronize.qbl                                                                                    |    9 
 _Main/BL/Type_AOnlineAndMOfflinePlanMS64/DefaultValue_Version.qbl                                                                              |    6 
 _Main/BL/Type_DispatchShiftPlan/StaticMethod_Dispatch.qbl                                                                                      |    7 
 _Main/BL/Type_AOnlineAndMOfflinePlanMS64/Attribute_VersionTo.qbl                                                                               |    8 
 _var/_Main/Data/MP_ChangeoverLossSetting.xlsx                                                                                                  |    0 
 _Main/BL/Type_ChangeLossSettingExcel/StaticMethod_GetDefalutName.qbl                                                                           |   10 
 _Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_listActionBarPageChangeLossSetting#1.def                                 |   10 
 _Main/BL/Type_AOnlineAndMOfflinePlanMS64Data/DefaultValue_Product.qbl                                                                          |    6 
 _Main/BL/EDI/Broker_MP_ExportChangeLossSettingsBroker.qbl                                                                                      |   45 +
 _Main/BL/Type_AssemblyOnlinePlanPush/Attribute_Sequence.qbl                                                                                    |    8 
 _Main/BL/Type_AssemblyOnlinePlanPush/_ROOT_Type_AssemblyOnlinePlanPPPSPush.qbl                                                                 |   10 
 _Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_PanelHeader_ButtonImport_OnClick.def                                      |   33 +
 _Main/BL/Type_ChangeLossSettingExcel/StaticMethod_Import.qbl                                                                                   |   42 +
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Method_OnOK.def                                                        |    2 
 _Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_PanelHeader_ButtonHeader_OnClick.def                                      |   23 
 _Main/BL/Relations/Relation_AssemblyOnlinePlanPPPSPush_InterfaceLoginfo_InterfaceLoginfo_Assemb.qbl                                            |   23 
 _Main/BL/Type_InterfaceLoginfoMiddle/TypeIndex_InterfaceLoginfoMiddleTypeIndex.qbl                                                             |   12 
 _Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSPIR/_ROOT_Component_DialogZEDPPSPIR.def                                                      |   22 
 _Main/BL/Type_AOnlineAndMOfflinePlanMS64/Attribute_StartDate.qbl                                                                               |    8 
 _Main/BL/Type_ChangeLossSettingExcel/Attribute_ChangeLossNr.qbl                                                                                |    8 
 _Main/BL/Type_ChangeLossSettingExcel/Attribute_Unit.qbl                                                                                        |    9 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Method_New.def                                                         |    4 
 /dev/null                                                                                                                                      |   17 
 _Main/BL/Type_AssemblyOnlinePlanPush/DefaultValue_Fac.qbl                                                                                      |    6 
 _Main/BL/Type_InterfaceLoginfoMiddle/Attribute_Name.qbl                                                                                        |    8 
 _Main/UI/MacroPlannerWebApp/Component_Form568/Response_pOperation_Button593_OnClick.def                                                        |   16 
 _Main/BL/Type_AOnlineAndMOfflinePlanMS64/Attribute_Werk.qbl                                                                                    |    8 
 _Main/BL/Type_AOnlineAndMOfflinePlanPIR/Attribute_Werk.qbl                                                                                     |    8 
 _Main/BL/Type_AssemblyOnlinePlanPush/Attribute_VersionName.qbl                                                                                 |    8 
 118 files changed, 1,727 insertions(+), 77 deletions(-)

diff --git a/_Main/BL/EDI/Broker_IL_InterfaceLogInfoMiddlesBroker.qbl b/_Main/BL/EDI/Broker_IL_InterfaceLogInfoMiddlesBroker.qbl
new file mode 100644
index 0000000..09ca4c4
--- /dev/null
+++ b/_Main/BL/EDI/Broker_IL_InterfaceLogInfoMiddlesBroker.qbl
@@ -0,0 +1,68 @@
+Quintiq file version 2.0
+#parent: #root
+EDIBroker IL_InterfaceLogInfoMiddlesBroker
+{
+  MDSDefinition: InterfaceDataset
+  TimeZone: 'ACT'
+  UseOSTimeZone: false
+  EDIModelLink.Destination DestinationInterfaceLogInfoMiddles
+  {
+    EDIMLTable InterfaceLoginfoMiddle
+    {
+      PrimaryKeyColumns: ID
+      TargetType: InterfaceLoginfoMiddle
+      TypeIndex: InterfaceLoginfoMiddleTypeIndex
+      EDIMLColumn FinishTime { Attribute: FinishTime ValueType: DateTime }
+      EDIMLColumn ID { Attribute: ID ValueType: Number }
+      EDIMLColumn Name { Attribute: Name ValueType: String }
+      EDIMLColumn Response { Attribute: Response ValueType: String }
+    }
+  }
+  EDIODBCLink.Source SourceInterfaceLogInfoMiddles
+  {
+    DataIntegrityStrategy: 'Disabled'
+    SettingsEngineLink: 'domainmodel.ediremotedatasourcedefinition.remotestorage.vwed'
+    EDIODBCLinkTable InterfaceLoginfoMiddle
+    {
+      OthersMayCreateTable: true
+      OthersMayDeleteRow: true
+      OthersMayDropTable: true
+      OthersMayFlushTable: true
+      OthersMayInsertRow: true
+      PrimaryKeyColumns: ID
+      RecordModificationHintStrategy: 'None'
+      EDIODBCLinkColumn FinishTime
+      {
+        OthersMayUpdateColumn: true
+        ValueType: DateTime
+      }
+      EDIODBCLinkColumn ID
+      {
+        OthersMayUpdateColumn: true
+        ValueType: Number
+      }
+      EDIODBCLinkColumn Name
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+      EDIODBCLinkColumn Response
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+    }
+  }
+  EDITransformation.Transformation TransformationInterfaceLogInfoMiddles
+  {
+    EDITableTransformation
+    {
+      InputTable: InterfaceLoginfoMiddle
+      OutputTable: InterfaceLoginfoMiddle
+      EDIColumnMatch { InputColumn: FinishTime OutputColumn: FinishTime }
+      EDIColumnMatch { InputColumn: ID OutputColumn: ID }
+      EDIColumnMatch { InputColumn: Name OutputColumn: Name }
+      EDIColumnMatch { InputColumn: Response OutputColumn: Response }
+    }
+  }
+}
diff --git a/_Main/BL/EDI/Broker_MP_ExportChangeLossSettingsBroker.qbl b/_Main/BL/EDI/Broker_MP_ExportChangeLossSettingsBroker.qbl
new file mode 100644
index 0000000..e7936d6
--- /dev/null
+++ b/_Main/BL/EDI/Broker_MP_ExportChangeLossSettingsBroker.qbl
@@ -0,0 +1,45 @@
+Quintiq file version 2.0
+#parent: #root
+EDIBroker MP_ExportChangeLossSettingsBroker
+{
+  MDSDefinition: MacroPlan
+  TimeZone: 'ACT'
+  UseOSTimeZone: false
+  EDIModelLink.Source InputChangeLossSettingsFromModel
+  {
+    EDIMLTable ChangeLossSettingExcel
+    {
+      TargetType: ChangeLossSettingExcel
+      EDIMLColumn ChangeLossNr { Attribute: ChangeLossNr ValueType: Number }
+      EDIMLColumn Product1 { Attribute: Product1 ValueType: String }
+      EDIMLColumn Product2 { Attribute: Product2 ValueType: String }
+      EDIMLColumn Unit { Attribute: Unit ValueType: String }
+    }
+  }
+  EDITransformation.Transformation TransformChangeLossSettingsForExport
+  {
+    EDITableTransformation
+    {
+      InputTable: ChangeLossSettingExcel
+      OutputTable: ChangeoverLossSetting
+      EDIColumnMatch { InputColumn: ChangeLossNr OutputColumn: ChangeLossNr }
+      EDIColumnMatch { InputColumn: Product1 OutputColumn: Product1 }
+      EDIColumnMatch { InputColumn: Product2 OutputColumn: Product2 }
+      EDIColumnMatch { InputColumn: Unit OutputColumn: Unit }
+    }
+  }
+  EDIXLSLink.Destination OutputChangeLossSettingsToExcel
+  {
+    FileName: 'MP_ChangeoverLossSettings'
+    EDIXLSLinkTable ChangeoverLossSetting
+    {
+      Columns:
+      [
+        EDIXLSLinkColumn ChangeLossNr { ValueType: Number }
+        EDIXLSLinkColumn Product1 { ValueType: String }
+        EDIXLSLinkColumn Product2 { ValueType: String }
+        EDIXLSLinkColumn Unit { ValueType: String }
+      ]
+    }
+  }
+}
diff --git a/_Main/BL/EDI/Broker_MP_ImportChangeLossSettingsBroker.qbl b/_Main/BL/EDI/Broker_MP_ImportChangeLossSettingsBroker.qbl
new file mode 100644
index 0000000..011a29e
--- /dev/null
+++ b/_Main/BL/EDI/Broker_MP_ImportChangeLossSettingsBroker.qbl
@@ -0,0 +1,49 @@
+Quintiq file version 2.0
+#parent: #root
+EDIBroker MP_ImportChangeLossSettingsBroker
+{
+  MDSDefinition: MacroPlan
+  TimeZone: 'ACT'
+  UseOSTimeZone: false
+  EDIModelLink.Destination OutputChangeLossSettingsToModel
+  {
+    EDIMLTable ChangeLossSettingExcel
+    {
+      PrimaryKeyColumns: Product1
+      PrimaryKeyColumns: Product2
+      PrimaryKeyColumns: Unit
+      TargetType: ChangeLossSettingExcel
+      TypeIndex: ChangeLossSettingTypeIndex
+      EDIMLColumn ChangeLossNr { Attribute: ChangeLossNr ValueType: Number }
+      EDIMLColumn Product1 { Attribute: Product1 ValueType: String }
+      EDIMLColumn Product2 { Attribute: Product2 ValueType: String }
+      EDIMLColumn Unit { Attribute: Unit ValueType: String }
+    }
+  }
+  EDITransformation.Transformation TransformChangeLossSettingsForImport
+  {
+    EDITableTransformation
+    {
+      InputTable: ChangeoverLossSetting
+      OutputTable: ChangeLossSettingExcel
+      EDIColumnMatch { InputColumn: ChangeLossNr OutputColumn: ChangeLossNr }
+      EDIColumnMatch { InputColumn: Product1 OutputColumn: Product1 }
+      EDIColumnMatch { InputColumn: Product2 OutputColumn: Product2 }
+      EDIColumnMatch { InputColumn: Unit OutputColumn: Unit }
+    }
+  }
+  EDIXLSLink.Source InputChangeLossSettingsFromExcel
+  {
+    FileName: 'MP_ChangeoverLossSetting.xlsx'
+    EDIXLSLinkTable ChangeoverLossSetting
+    {
+      Columns:
+      [
+        EDIXLSLinkColumn ChangeLossNr { ValueType: Number }
+        EDIXLSLinkColumn Product1 { ValueType: String }
+        EDIXLSLinkColumn Product2 { ValueType: String }
+        EDIXLSLinkColumn Unit { ValueType: String }
+      ]
+    }
+  }
+}
diff --git a/_Main/BL/InfoMessages.qbl b/_Main/BL/InfoMessages.qbl
index 97e2fd6..ea643a4 100644
--- a/_Main/BL/InfoMessages.qbl
+++ b/_Main/BL/InfoMessages.qbl
@@ -102,6 +102,10 @@
   {
     DefaultText: 'ds-yunrong-gw.dmp.vwfawedl.mobi'
   }
+  InfoMessage InterfaceDataset_AssemblyOnlinePlanPPPSPush_Name
+  {
+    DefaultText: 'Assembly online plan - PPPS'
+  }
   InfoMessage InterfaceDataset_ContentType
   {
     DefaultText: 'application/json'
@@ -150,6 +154,18 @@
   {
     DefaultText: '/authorization/token/api/open/token/generateToken?grant_type=client_credentials&client_id=19KxoxPF25cy96K8TL&client_secret='
   }
+  InfoMessage MP_ChangeLossSettingExcel_Import_NullInputRequiredField
+  {
+    DefaultText: 'The import field is empty.'
+  }
+  InfoMessage MP_ChangeLossSettingExcel_Import_ProductNoExist
+  {
+    DefaultText: 'The entered product does not exist.'
+  }
+  InfoMessage MP_ChangeLossSettingExcel_Import_UnitNoExist
+  {
+    DefaultText: 'The entered unit does not exist.'
+  }
   InfoMessage MP_ChangeLossSetting_CheckNull
   {
     DefaultText: 'The required field is blank.'
diff --git a/_Main/BL/Relations/Relation_AOnlineAndMOfflinePlanMS64_InterfaceDataset_InterfaceDataset_AOnlin.qbl b/_Main/BL/Relations/Relation_AOnlineAndMOfflinePlanMS64_InterfaceDataset_InterfaceDataset_AOnlin.qbl
new file mode 100644
index 0000000..d0fae83
--- /dev/null
+++ b/_Main/BL/Relations/Relation_AOnlineAndMOfflinePlanMS64_InterfaceDataset_InterfaceDataset_AOnlin.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation AOnlineAndMOfflinePlanMS64_InterfaceDataset_InterfaceDataset_AOnlineAndMOfflinePlanMS64
+{
+  #keys: '1[415136.0.1039640163]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide InterfaceDataset
+  {
+    #keys: '3[415136.0.1039640165][415136.0.1039640164][415136.0.1039640166]'
+    Cardinality: '0to1'
+    ObjectDefinition: AOnlineAndMOfflinePlanMS64
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide AOnlineAndMOfflinePlanMS64
+  {
+    #keys: '3[415136.0.1039640168][415136.0.1039640167][415136.0.1039640169]'
+    Cardinality: '1toN'
+    ObjectDefinition: InterfaceDataset
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_AOnlineAndMOfflinePlanMS64_MS64Data_AOnlineAndMOfflinePlanMS64Data_.qbl b/_Main/BL/Relations/Relation_AOnlineAndMOfflinePlanMS64_MS64Data_AOnlineAndMOfflinePlanMS64Data_.qbl
new file mode 100644
index 0000000..82ca49b
--- /dev/null
+++ b/_Main/BL/Relations/Relation_AOnlineAndMOfflinePlanMS64_MS64Data_AOnlineAndMOfflinePlanMS64Data_.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation AOnlineAndMOfflinePlanMS64_MS64Data_AOnlineAndMOfflinePlanMS64Data_MS64
+{
+  #keys: '1[415136.0.1039640176]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide MS64Data
+  {
+    #keys: '3[415136.0.1039640178][415136.0.1039640177][415136.0.1039640179]'
+    Cardinality: '0to1'
+    ObjectDefinition: AOnlineAndMOfflinePlanMS64
+    OwningSide: 'Owned'
+  }
+  RelationSide.RightSide MS64
+  {
+    #keys: '3[415136.0.1039640181][415136.0.1039640180][415136.0.1039640182]'
+    Cardinality: '0to1'
+    ObjectDefinition: AOnlineAndMOfflinePlanMS64Data
+    OwningSide: 'Reference'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_AOnlineAndMOfflinePlanPIR_InterfaceDataset_InterfaceDataset_AOnline.qbl b/_Main/BL/Relations/Relation_AOnlineAndMOfflinePlanPIR_InterfaceDataset_InterfaceDataset_AOnline.qbl
new file mode 100644
index 0000000..a6b8863
--- /dev/null
+++ b/_Main/BL/Relations/Relation_AOnlineAndMOfflinePlanPIR_InterfaceDataset_InterfaceDataset_AOnline.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation AOnlineAndMOfflinePlanPIR_InterfaceDataset_InterfaceDataset_AOnlineAndMOfflinePlanPIR
+{
+  #keys: '1[415136.0.1039640067]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide InterfaceDataset
+  {
+    #keys: '3[415136.0.1039640069][415136.0.1039640068][415136.0.1039640070]'
+    Cardinality: '0to1'
+    ObjectDefinition: AOnlineAndMOfflinePlanPIR
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide AOnlineAndMOfflinePlanPIR
+  {
+    #keys: '3[415136.0.1039640072][415136.0.1039640071][415136.0.1039640073]'
+    Cardinality: '1toN'
+    ObjectDefinition: InterfaceDataset
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_AOnlineAndMOfflinePlanPIR_PIRData_AOnlineAndMOfflinePlanPIRData_PIR.qbl b/_Main/BL/Relations/Relation_AOnlineAndMOfflinePlanPIR_PIRData_AOnlineAndMOfflinePlanPIRData_PIR.qbl
new file mode 100644
index 0000000..c2525bc
--- /dev/null
+++ b/_Main/BL/Relations/Relation_AOnlineAndMOfflinePlanPIR_PIRData_AOnlineAndMOfflinePlanPIRData_PIR.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation AOnlineAndMOfflinePlanPIR_PIRData_AOnlineAndMOfflinePlanPIRData_PIR
+{
+  #keys: '1[415136.0.1039640080]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide PIRData
+  {
+    #keys: '3[415136.0.1039640082][415136.0.1039640081][415136.0.1039640083]'
+    Cardinality: '1toN'
+    ObjectDefinition: AOnlineAndMOfflinePlanPIR
+    OwningSide: 'Owned'
+  }
+  RelationSide.RightSide PIR
+  {
+    #keys: '3[415136.0.1039640085][415136.0.1039640084][415136.0.1039640086]'
+    Cardinality: '0to1'
+    ObjectDefinition: AOnlineAndMOfflinePlanPIRData
+    OwningSide: 'Reference'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_AssemblyOnlinePlanPPPSPush_InterfaceDataset_InterfaceDataset_Assemb.qbl b/_Main/BL/Relations/Relation_AssemblyOnlinePlanPPPSPush_InterfaceDataset_InterfaceDataset_Assemb.qbl
new file mode 100644
index 0000000..13b7cc5
--- /dev/null
+++ b/_Main/BL/Relations/Relation_AssemblyOnlinePlanPPPSPush_InterfaceDataset_InterfaceDataset_Assemb.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation AssemblyOnlinePlanPPPSPush_InterfaceDataset_InterfaceDataset_AssemblyOnlinePlanPPPSPush
+{
+  #keys: '1[415136.0.1029932763]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide InterfaceDataset
+  {
+    #keys: '3[415136.0.1029932765][415136.0.1029932764][415136.0.1029932766]'
+    Cardinality: '0to1'
+    ObjectDefinition: AssemblyOnlinePlanPPPSPush
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide AssemblyOnlinePlanPPPSPush
+  {
+    #keys: '3[415136.0.1029932768][415136.0.1029932767][415136.0.1029932769]'
+    Cardinality: '1toN'
+    ObjectDefinition: InterfaceDataset
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_AssemblyOnlinePlanPPPSPush_InterfaceLoginfo_InterfaceLoginfo_Assemb.qbl b/_Main/BL/Relations/Relation_AssemblyOnlinePlanPPPSPush_InterfaceLoginfo_InterfaceLoginfo_Assemb.qbl
new file mode 100644
index 0000000..19ba157
--- /dev/null
+++ b/_Main/BL/Relations/Relation_AssemblyOnlinePlanPPPSPush_InterfaceLoginfo_InterfaceLoginfo_Assemb.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation AssemblyOnlinePlanPPPSPush_InterfaceLoginfo_InterfaceLoginfo_AssemblyOnlinePlanPPPSPush
+{
+  #keys: '1[415136.0.1029932776]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide InterfaceLoginfo
+  {
+    #keys: '3[415136.0.1029932778][415136.0.1029932777][415136.0.1029932779]'
+    Cardinality: '0to1'
+    ObjectDefinition: AssemblyOnlinePlanPPPSPush
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide AssemblyOnlinePlanPPPSPush
+  {
+    #keys: '3[415136.0.1029932781][415136.0.1029932780][415136.0.1029932782]'
+    Cardinality: '1toN'
+    ObjectDefinition: InterfaceLoginfo
+    OwningSide: 'Reference'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_ChangeLossSettingExcel_MacroPlan_MacroPlan_ChangeLossSettingExcel.qbl b/_Main/BL/Relations/Relation_ChangeLossSettingExcel_MacroPlan_MacroPlan_ChangeLossSettingExcel.qbl
new file mode 100644
index 0000000..7e0918c
--- /dev/null
+++ b/_Main/BL/Relations/Relation_ChangeLossSettingExcel_MacroPlan_MacroPlan_ChangeLossSettingExcel.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation ChangeLossSettingExcel_MacroPlan_MacroPlan_ChangeLossSettingExcel
+{
+  #keys: '1[415136.0.1035218354]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide MacroPlan
+  {
+    #keys: '3[415136.0.1035218356][415136.0.1035218355][415136.0.1035218357]'
+    Cardinality: '0to1'
+    ObjectDefinition: ChangeLossSettingExcel
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide ChangeLossSettingExcel
+  {
+    #keys: '3[415136.0.1035218359][415136.0.1035218358][415136.0.1035218360]'
+    Cardinality: '1toN'
+    ObjectDefinition: MacroPlan
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_InterfaceLoginfoMiddle_InterfaceDataset_InterfaceDataset_InterfaceL.qbl b/_Main/BL/Relations/Relation_InterfaceLoginfoMiddle_InterfaceDataset_InterfaceDataset_InterfaceL.qbl
new file mode 100644
index 0000000..e081a8f
--- /dev/null
+++ b/_Main/BL/Relations/Relation_InterfaceLoginfoMiddle_InterfaceDataset_InterfaceDataset_InterfaceL.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation InterfaceLoginfoMiddle_InterfaceDataset_InterfaceDataset_InterfaceLoginfoMiddle
+{
+  #keys: '1[415136.0.1035642038]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide InterfaceDataset
+  {
+    #keys: '3[415136.0.1035642040][415136.0.1035642039][415136.0.1035642041]'
+    Cardinality: '0to1'
+    ObjectDefinition: InterfaceLoginfoMiddle
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide InterfaceLoginfoMiddle
+  {
+    #keys: '3[415136.0.1035642043][415136.0.1035642042][415136.0.1035642044]'
+    Cardinality: '1toN'
+    ObjectDefinition: InterfaceDataset
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Type_AOnlineAndMOfflinePlanMS64/Attribute_EndDate.qbl b/_Main/BL/Type_AOnlineAndMOfflinePlanMS64/Attribute_EndDate.qbl
new file mode 100644
index 0000000..b9e9140
--- /dev/null
+++ b/_Main/BL/Type_AOnlineAndMOfflinePlanMS64/Attribute_EndDate.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute EndDate
+{
+  #keys: '3[415136.0.1039640140][415136.0.1039640139][415136.0.1039640141]'
+  Description: '缁撴潫鏃ユ湡'
+  ValueType: Date
+}
diff --git a/_Main/BL/Type_AOnlineAndMOfflinePlanMS64/Attribute_IsActive.qbl b/_Main/BL/Type_AOnlineAndMOfflinePlanMS64/Attribute_IsActive.qbl
new file mode 100644
index 0000000..3e4245e
--- /dev/null
+++ b/_Main/BL/Type_AOnlineAndMOfflinePlanMS64/Attribute_IsActive.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute IsActive
+{
+  #keys: '3[415136.0.1039640227][415136.0.1039640226][415136.0.1039640228]'
+  Description: '鏄惁婵�娲�'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_AOnlineAndMOfflinePlanMS64/Attribute_Product.qbl b/_Main/BL/Type_AOnlineAndMOfflinePlanMS64/Attribute_Product.qbl
new file mode 100644
index 0000000..775fd68
--- /dev/null
+++ b/_Main/BL/Type_AOnlineAndMOfflinePlanMS64/Attribute_Product.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Product
+{
+  #keys: '3[415136.0.1039640197][415136.0.1039640196][415136.0.1039640198]'
+  Description: '鐗╂枡鍙�'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_AOnlineAndMOfflinePlanMS64/Attribute_StartDate.qbl b/_Main/BL/Type_AOnlineAndMOfflinePlanMS64/Attribute_StartDate.qbl
new file mode 100644
index 0000000..09b22be
--- /dev/null
+++ b/_Main/BL/Type_AOnlineAndMOfflinePlanMS64/Attribute_StartDate.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute StartDate
+{
+  #keys: '3[415136.0.1039640137][415136.0.1039640136][415136.0.1039640138]'
+  Description: '寮�濮嬫椂闂�'
+  ValueType: Date
+}
diff --git a/_Main/BL/Type_AOnlineAndMOfflinePlanMS64/Attribute_Version.qbl b/_Main/BL/Type_AOnlineAndMOfflinePlanMS64/Attribute_Version.qbl
new file mode 100644
index 0000000..52108f8
--- /dev/null
+++ b/_Main/BL/Type_AOnlineAndMOfflinePlanMS64/Attribute_Version.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Version
+{
+  #keys: '3[415136.0.1039640134][415136.0.1039640133][415136.0.1039640135]'
+  Description: '鐗堟湰'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_AOnlineAndMOfflinePlanMS64/Attribute_VersionFrom.qbl b/_Main/BL/Type_AOnlineAndMOfflinePlanMS64/Attribute_VersionFrom.qbl
new file mode 100644
index 0000000..dad9f08
--- /dev/null
+++ b/_Main/BL/Type_AOnlineAndMOfflinePlanMS64/Attribute_VersionFrom.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute VersionFrom
+{
+  #keys: '3[415136.0.1039640207][415136.0.1039640206][415136.0.1039640208]'
+  Description: '浠庣増鏈�'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_AOnlineAndMOfflinePlanMS64/Attribute_VersionTo.qbl b/_Main/BL/Type_AOnlineAndMOfflinePlanMS64/Attribute_VersionTo.qbl
new file mode 100644
index 0000000..c4f21ac
--- /dev/null
+++ b/_Main/BL/Type_AOnlineAndMOfflinePlanMS64/Attribute_VersionTo.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute VersionTo
+{
+  #keys: '3[415136.0.1039640217][415136.0.1039640216][415136.0.1039640218]'
+  Description: '鍒扮増鏈�'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_AOnlineAndMOfflinePlanMS64/Attribute_Werk.qbl b/_Main/BL/Type_AOnlineAndMOfflinePlanMS64/Attribute_Werk.qbl
new file mode 100644
index 0000000..febc7ca
--- /dev/null
+++ b/_Main/BL/Type_AOnlineAndMOfflinePlanMS64/Attribute_Werk.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Werk
+{
+  #keys: '3[415136.0.1039640131][415136.0.1039640130][415136.0.1039640132]'
+  Description: '宸ュ巶浠g爜'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_AOnlineAndMOfflinePlanMS64/DefaultValue_Version.qbl b/_Main/BL/Type_AOnlineAndMOfflinePlanMS64/DefaultValue_Version.qbl
new file mode 100644
index 0000000..1605a4b
--- /dev/null
+++ b/_Main/BL/Type_AOnlineAndMOfflinePlanMS64/DefaultValue_Version.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: Version
+}
diff --git a/_Main/BL/Type_AOnlineAndMOfflinePlanMS64/DefaultValue_Werk.qbl b/_Main/BL/Type_AOnlineAndMOfflinePlanMS64/DefaultValue_Werk.qbl
new file mode 100644
index 0000000..b54c735
--- /dev/null
+++ b/_Main/BL/Type_AOnlineAndMOfflinePlanMS64/DefaultValue_Werk.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: Werk
+}
diff --git a/_Main/BL/Type_AOnlineAndMOfflinePlanMS64/_ROOT_Type_AOnlineAndMOfflinePlanMS64.qbl b/_Main/BL/Type_AOnlineAndMOfflinePlanMS64/_ROOT_Type_AOnlineAndMOfflinePlanMS64.qbl
new file mode 100644
index 0000000..5bead81
--- /dev/null
+++ b/_Main/BL/Type_AOnlineAndMOfflinePlanMS64/_ROOT_Type_AOnlineAndMOfflinePlanMS64.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type AOnlineAndMOfflinePlanMS64
+{
+  #keys: '5[415136.0.1039640128][415136.0.1039640126][0.0.0][415136.0.1039640127][415136.0.1039640129]'
+  BaseType: Object
+  Description: '瑁呴厤涓婄嚎璁″垝+鏈哄姞涓嬬嚎璁″垝-鏌ヨ鏉′欢'
+  StructuredName: 'AOnlineAndMOfflinePlanMS64s'
+}
diff --git a/_Main/BL/Type_AOnlineAndMOfflinePlanMS64Data/Attribute_Product.qbl b/_Main/BL/Type_AOnlineAndMOfflinePlanMS64Data/Attribute_Product.qbl
new file mode 100644
index 0000000..45ff6e7
--- /dev/null
+++ b/_Main/BL/Type_AOnlineAndMOfflinePlanMS64Data/Attribute_Product.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Product
+{
+  #keys: '3[415136.0.1039640151][415136.0.1039640150][415136.0.1039640152]'
+  Description: '鐗╂枡鍙�'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_AOnlineAndMOfflinePlanMS64Data/DefaultValue_Product.qbl b/_Main/BL/Type_AOnlineAndMOfflinePlanMS64Data/DefaultValue_Product.qbl
new file mode 100644
index 0000000..6e10c8e
--- /dev/null
+++ b/_Main/BL/Type_AOnlineAndMOfflinePlanMS64Data/DefaultValue_Product.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: Product
+}
diff --git a/_Main/BL/Type_AOnlineAndMOfflinePlanMS64Data/_ROOT_Type_AOnlineAndMOfflinePlanMS64Data.qbl b/_Main/BL/Type_AOnlineAndMOfflinePlanMS64Data/_ROOT_Type_AOnlineAndMOfflinePlanMS64Data.qbl
new file mode 100644
index 0000000..f4ff4f8
--- /dev/null
+++ b/_Main/BL/Type_AOnlineAndMOfflinePlanMS64Data/_ROOT_Type_AOnlineAndMOfflinePlanMS64Data.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type AOnlineAndMOfflinePlanMS64Data
+{
+  #keys: '5[415136.0.1039640148][415136.0.1039640146][0.0.0][415136.0.1039640147][415136.0.1039640149]'
+  BaseType: Object
+  Description: '瑁呴厤涓婄嚎璁″垝+鏈哄姞涓嬬嚎璁″垝-鏁版嵁'
+  StructuredName: 'AOnlineAndMOfflinePlanMS64Datas'
+}
diff --git a/_Main/BL/Type_AOnlineAndMOfflinePlanPIR/Attribute_EndDate.qbl b/_Main/BL/Type_AOnlineAndMOfflinePlanPIR/Attribute_EndDate.qbl
new file mode 100644
index 0000000..549395e
--- /dev/null
+++ b/_Main/BL/Type_AOnlineAndMOfflinePlanPIR/Attribute_EndDate.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute EndDate
+{
+  #keys: '3[415136.0.1039640058][415136.0.1039640057][415136.0.1039640059]'
+  Description: '缁撴潫鏃ユ湡'
+  ValueType: Date
+}
diff --git a/_Main/BL/Type_AOnlineAndMOfflinePlanPIR/Attribute_StartDate.qbl b/_Main/BL/Type_AOnlineAndMOfflinePlanPIR/Attribute_StartDate.qbl
new file mode 100644
index 0000000..279fc98
--- /dev/null
+++ b/_Main/BL/Type_AOnlineAndMOfflinePlanPIR/Attribute_StartDate.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute StartDate
+{
+  #keys: '3[415136.0.1039640048][415136.0.1039640047][415136.0.1039640049]'
+  Description: '寮�濮嬫椂闂�'
+  ValueType: Date
+}
diff --git a/_Main/BL/Type_AOnlineAndMOfflinePlanPIR/Attribute_Version.qbl b/_Main/BL/Type_AOnlineAndMOfflinePlanPIR/Attribute_Version.qbl
new file mode 100644
index 0000000..1ba610c
--- /dev/null
+++ b/_Main/BL/Type_AOnlineAndMOfflinePlanPIR/Attribute_Version.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Version
+{
+  #keys: '3[415136.0.1039640038][415136.0.1039640037][415136.0.1039640039]'
+  Description: '鐗堟湰'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_AOnlineAndMOfflinePlanPIR/Attribute_Werk.qbl b/_Main/BL/Type_AOnlineAndMOfflinePlanPIR/Attribute_Werk.qbl
new file mode 100644
index 0000000..cd7a4e7
--- /dev/null
+++ b/_Main/BL/Type_AOnlineAndMOfflinePlanPIR/Attribute_Werk.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Werk
+{
+  #keys: '3[415136.0.1039640028][415136.0.1039640027][415136.0.1039640029]'
+  Description: '宸ュ巶浠g爜'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_AOnlineAndMOfflinePlanPIR/StaticMethod_GenerateData.qbl b/_Main/BL/Type_AOnlineAndMOfflinePlanPIR/StaticMethod_GenerateData.qbl
new file mode 100644
index 0000000..73c5697
--- /dev/null
+++ b/_Main/BL/Type_AOnlineAndMOfflinePlanPIR/StaticMethod_GenerateData.qbl
@@ -0,0 +1,30 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GenerateData (
+  InterfaceDataset owner,
+  String werk,
+  const MacroPlan macroplan,
+  Date startdate,
+  Date enddate
+)
+{
+  TextBody:
+  [*
+    // 鐢勫叞楦� Aug-23-2024 (created)
+    owner.AOnlineAndMOfflinePlanPIR( relflush );
+    pir                    := owner.AOnlineAndMOfflinePlanPIR( relnew, Werk := werk, Version := macroplan.ScenarioName(), StartDate := startdate, EndDate := enddate );
+    totalrows              := 0;
+    traverse( macroplan, AssemblyOnlinePlanColumn, column ){
+      traverse( column, AssemblyOnlinePlanCell, cell, cell.Value() <> '' and cell.AssemblyOnlinePlanRow().RowNr() = '1' ){
+        quantityrow        := cell.AssemblyOnlinePlanRow();
+    
+        pir.PIRData( relnew, Product           := quantityrow.ProductID()
+                                           , PlanningDate            := column.ColumnDate()
+                                           , PlanningQty             := [Number]cell.Value());
+      }
+    }
+    totalrows              := totalrows + pir.PIRData( relsize );
+    
+    //traverse( macroplan, OfflinePlanTable
+  *]
+}
diff --git a/_Main/BL/Type_AOnlineAndMOfflinePlanPIR/_ROOT_Type_AOnlineAndMOfflinePlanPIR.qbl b/_Main/BL/Type_AOnlineAndMOfflinePlanPIR/_ROOT_Type_AOnlineAndMOfflinePlanPIR.qbl
new file mode 100644
index 0000000..7c26cdc
--- /dev/null
+++ b/_Main/BL/Type_AOnlineAndMOfflinePlanPIR/_ROOT_Type_AOnlineAndMOfflinePlanPIR.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type AOnlineAndMOfflinePlanPIR
+{
+  #keys: '5[415136.0.1039640013][415136.0.1039640011][0.0.0][415136.0.1039640012][415136.0.1039640014]'
+  BaseType: Object
+  Description: '瑁呴厤涓婄嚎璁″垝+鏈哄姞涓嬬嚎璁″垝-鏌ヨ鏉′欢'
+  StructuredName: 'AOnlineAndMOfflinePlanPIRs'
+}
diff --git a/_Main/BL/Type_AOnlineAndMOfflinePlanPIRData/Attribute_PlanningDate.qbl b/_Main/BL/Type_AOnlineAndMOfflinePlanPIRData/Attribute_PlanningDate.qbl
new file mode 100644
index 0000000..b8f1839
--- /dev/null
+++ b/_Main/BL/Type_AOnlineAndMOfflinePlanPIRData/Attribute_PlanningDate.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute PlanningDate
+{
+  #keys: '3[415136.0.1039640107][415136.0.1039640106][415136.0.1039640108]'
+  Description: '鎺掍骇鏃ユ湡'
+  ValueType: Date
+}
diff --git a/_Main/BL/Type_AOnlineAndMOfflinePlanPIRData/Attribute_PlanningQty.qbl b/_Main/BL/Type_AOnlineAndMOfflinePlanPIRData/Attribute_PlanningQty.qbl
new file mode 100644
index 0000000..2f029a0
--- /dev/null
+++ b/_Main/BL/Type_AOnlineAndMOfflinePlanPIRData/Attribute_PlanningQty.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute PlanningQty
+{
+  #keys: '3[415136.0.1039640117][415136.0.1039640116][415136.0.1039640118]'
+  Description: '瀵瑰簲鏃ユ湡鐨勮鍒掓暟閲�'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_AOnlineAndMOfflinePlanPIRData/Attribute_Product.qbl b/_Main/BL/Type_AOnlineAndMOfflinePlanPIRData/Attribute_Product.qbl
new file mode 100644
index 0000000..6a8e404
--- /dev/null
+++ b/_Main/BL/Type_AOnlineAndMOfflinePlanPIRData/Attribute_Product.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Product
+{
+  #keys: '3[415136.0.1039640097][415136.0.1039640096][415136.0.1039640098]'
+  Description: '鐗╂枡鍙�'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_AOnlineAndMOfflinePlanPIRData/_ROOT_Type_AOnlineAndMOfflinePlanPIRData.qbl b/_Main/BL/Type_AOnlineAndMOfflinePlanPIRData/_ROOT_Type_AOnlineAndMOfflinePlanPIRData.qbl
new file mode 100644
index 0000000..18331d8
--- /dev/null
+++ b/_Main/BL/Type_AOnlineAndMOfflinePlanPIRData/_ROOT_Type_AOnlineAndMOfflinePlanPIRData.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type AOnlineAndMOfflinePlanPIRData
+{
+  #keys: '5[415136.0.1039640021][415136.0.1039640019][0.0.0][415136.0.1039640020][415136.0.1039640022]'
+  BaseType: Object
+  Description: '瑁呴厤涓婄嚎璁″垝+鏈哄姞涓嬬嚎璁″垝-鏁版嵁'
+  StructuredName: 'AOnlineAndMOfflinePlanPIRDatas'
+}
diff --git a/_Main/BL/Type_Archive/StaticMethod_GenerateForecast.qbl b/_Main/BL/Type_Archive/StaticMethod_GenerateForecast.qbl
index 0b65024..a363c8e 100644
--- a/_Main/BL/Type_Archive/StaticMethod_GenerateForecast.qbl
+++ b/_Main/BL/Type_Archive/StaticMethod_GenerateForecast.qbl
@@ -14,7 +14,7 @@
     traverse ( archiveExecutionStatus, TemporaryDemandData, tdd ,tdd.Origin() = "" or tdd.StartDate() >= macroPlan.StartOfPlanning().Date()) {
       targetProduct_MP       := select( macroPlan, Product_MP, tempPMP, tempPMP.ID() = tdd.ProductID() );
       targetStockingPoint_MP := select( macroPlan, StockingPoint_MP, tempSPMP, tempSPMP.ID() = tdd.StockingPointID() );
-      info( tdd.SalesSegmentName() );
+      // info( tdd.SalesSegmentName() );
       if ( not isnull( targetProduct_MP ) and not isnull( targetStockingPoint_MP ) ) {
         forcest := Forecast::Create( targetProduct_MP,
                           targetStockingPoint_MP,
diff --git a/_Main/BL/Type_Archive/StaticMethod_Success.qbl b/_Main/BL/Type_Archive/StaticMethod_Success.qbl
index 5844f72..2e39f8a 100644
--- a/_Main/BL/Type_Archive/StaticMethod_Success.qbl
+++ b/_Main/BL/Type_Archive/StaticMethod_Success.qbl
@@ -23,7 +23,11 @@
       archiveExecutionStatus.AES_TemporaryDemandData().Source().FlatQuery( "truncate table A_Forecasts" );
       
       // 杩斿洖鎴愬姛娑堟伅
-      RequirementImportExecutionStatus::Create( archiveExecutionStatus, code, "Complete", userName, Translations::A_VWED_RequirementImportSuccessful(), true );
+      if( message <> ''){
+        RequirementImportExecutionStatus::Create( archiveExecutionStatus, code, "Complete", userName, message, true );
+      }else{
+        RequirementImportExecutionStatus::Create( archiveExecutionStatus, code, "Complete", userName, Translations::A_VWED_RequirementImportSuccessful(), true );
+      }
     } else {
       RequirementImportExecutionStatus::Create( archiveExecutionStatus, code, "Complete", userName, message, false );
     }
diff --git a/_Main/BL/Type_AssemblyOnlinePlanPush/Attribute_Fac.qbl b/_Main/BL/Type_AssemblyOnlinePlanPush/Attribute_Fac.qbl
new file mode 100644
index 0000000..c909dfa
--- /dev/null
+++ b/_Main/BL/Type_AssemblyOnlinePlanPush/Attribute_Fac.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Fac
+{
+  #keys: '3[415136.0.1029932754][415136.0.1029932753][415136.0.1029932755]'
+  Description: '宸ュ巶绠�鍐�'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_AssemblyOnlinePlanPush/Attribute_FactoryName.qbl b/_Main/BL/Type_AssemblyOnlinePlanPush/Attribute_FactoryName.qbl
new file mode 100644
index 0000000..7c9c007
--- /dev/null
+++ b/_Main/BL/Type_AssemblyOnlinePlanPush/Attribute_FactoryName.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute FactoryName
+{
+  #keys: '3[415136.0.1029932760][415136.0.1029932759][415136.0.1029932761]'
+  Description: '宸ュ巶鍚嶇О'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_AssemblyOnlinePlanPush/Attribute_InterfaceTime.qbl b/_Main/BL/Type_AssemblyOnlinePlanPush/Attribute_InterfaceTime.qbl
new file mode 100644
index 0000000..af3653d
--- /dev/null
+++ b/_Main/BL/Type_AssemblyOnlinePlanPush/Attribute_InterfaceTime.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute InterfaceTime
+{
+  #keys: '3[415136.0.1029932757][415136.0.1029932756][415136.0.1029932758]'
+  Description: '鎺ュ彛鏃堕棿'
+  ValueType: DateTime
+}
diff --git a/_Main/BL/Type_AssemblyOnlinePlanPush/Attribute_PlanningDate.qbl b/_Main/BL/Type_AssemblyOnlinePlanPush/Attribute_PlanningDate.qbl
new file mode 100644
index 0000000..63f7945
--- /dev/null
+++ b/_Main/BL/Type_AssemblyOnlinePlanPush/Attribute_PlanningDate.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute PlanningDate
+{
+  #keys: '3[415136.0.1029932714][415136.0.1029932713][415136.0.1029932715]'
+  Description: '璁″垝鏃ユ湡'
+  ValueType: Date
+}
diff --git a/_Main/BL/Type_AssemblyOnlinePlanPush/Attribute_PlanningQty.qbl b/_Main/BL/Type_AssemblyOnlinePlanPush/Attribute_PlanningQty.qbl
new file mode 100644
index 0000000..7c018f5
--- /dev/null
+++ b/_Main/BL/Type_AssemblyOnlinePlanPush/Attribute_PlanningQty.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute PlanningQty
+{
+  #keys: '3[415136.0.1029932727][415136.0.1029932726][415136.0.1029932728]'
+  Description: '瀵瑰簲鏃ユ湡鐨勪笂绾胯鍒掓暟閲�'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_AssemblyOnlinePlanPush/Attribute_Product.qbl b/_Main/BL/Type_AssemblyOnlinePlanPush/Attribute_Product.qbl
new file mode 100644
index 0000000..2bd80b3
--- /dev/null
+++ b/_Main/BL/Type_AssemblyOnlinePlanPush/Attribute_Product.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Product
+{
+  #keys: '3[415136.0.1029932704][415136.0.1029932703][415136.0.1029932705]'
+  Description: '鐗╂枡鍙�'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_AssemblyOnlinePlanPush/Attribute_Sequence.qbl b/_Main/BL/Type_AssemblyOnlinePlanPush/Attribute_Sequence.qbl
new file mode 100644
index 0000000..df023e7
--- /dev/null
+++ b/_Main/BL/Type_AssemblyOnlinePlanPush/Attribute_Sequence.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Sequence
+{
+  #keys: '3[415136.0.1029932737][415136.0.1029932736][415136.0.1029932738]'
+  Description: '瀵瑰簲鏃ユ湡鐨勪笂绾块『搴�'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_AssemblyOnlinePlanPush/Attribute_VersionFlag.qbl b/_Main/BL/Type_AssemblyOnlinePlanPush/Attribute_VersionFlag.qbl
new file mode 100644
index 0000000..b652f30
--- /dev/null
+++ b/_Main/BL/Type_AssemblyOnlinePlanPush/Attribute_VersionFlag.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute VersionFlag
+{
+  #keys: '3[415136.0.1029932747][415136.0.1029932746][415136.0.1029932748]'
+  Description: '鐗堟湰鏍囪瘑'
+  ValueType: Boolean
+}
diff --git a/_Main/BL/Type_AssemblyOnlinePlanPush/Attribute_VersionName.qbl b/_Main/BL/Type_AssemblyOnlinePlanPush/Attribute_VersionName.qbl
new file mode 100644
index 0000000..e2a012a
--- /dev/null
+++ b/_Main/BL/Type_AssemblyOnlinePlanPush/Attribute_VersionName.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute VersionName
+{
+  #keys: '3[415136.0.1029932750][415136.0.1029932749][415136.0.1029932751]'
+  Description: '鐗堟湰鍚嶇О'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_AssemblyOnlinePlanPush/DefaultValue_Fac.qbl b/_Main/BL/Type_AssemblyOnlinePlanPush/DefaultValue_Fac.qbl
new file mode 100644
index 0000000..386d17b
--- /dev/null
+++ b/_Main/BL/Type_AssemblyOnlinePlanPush/DefaultValue_Fac.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: Fac
+}
diff --git a/_Main/BL/Type_AssemblyOnlinePlanPush/DefaultValue_FactoryName.qbl b/_Main/BL/Type_AssemblyOnlinePlanPush/DefaultValue_FactoryName.qbl
new file mode 100644
index 0000000..2ff5775
--- /dev/null
+++ b/_Main/BL/Type_AssemblyOnlinePlanPush/DefaultValue_FactoryName.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: FactoryName
+}
diff --git a/_Main/BL/Type_AssemblyOnlinePlanPush/DefaultValue_VersionName.qbl b/_Main/BL/Type_AssemblyOnlinePlanPush/DefaultValue_VersionName.qbl
new file mode 100644
index 0000000..34a947a
--- /dev/null
+++ b/_Main/BL/Type_AssemblyOnlinePlanPush/DefaultValue_VersionName.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: VersionName
+}
diff --git a/_Main/BL/Type_AssemblyOnlinePlanPush/StaticMethod_GenerateData.qbl b/_Main/BL/Type_AssemblyOnlinePlanPush/StaticMethod_GenerateData.qbl
new file mode 100644
index 0000000..d33daa3
--- /dev/null
+++ b/_Main/BL/Type_AssemblyOnlinePlanPush/StaticMethod_GenerateData.qbl
@@ -0,0 +1,55 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GenerateData (
+  const MacroPlan macroplan,
+  InterfaceDataset interfaceDataset,
+  String executor,
+  Boolean versionflag
+)
+{
+  Description: '鐢熸垚鍙互涓嬪彂鐨勫鎴烽渶姹傦紙PPA+IDS锛夋暟鎹�'
+  TextBody:
+  [*
+    // 鐢勫叞楦� Aug-20-2024 (created)
+    cdlast                 := maxobject( interfaceDataset, AssemblyOnlinePlanPPPSPush, cd, cd.InterfaceTime(), cd.PlanningDate(), cd.Product() );
+    if( not isnull( cdlast ) ){
+      loginfo              := cdlast.InterfaceLoginfo();
+      if( not loginfo.IsShow() ){
+        loginfo.Delete();
+      }else{
+        loginfo.Last( false );
+      }
+      interfaceDataset.AssemblyOnlinePlanPPPSPush( relflush );
+    }
+    nowdate                := DateTime::ActualTime();
+    loginfo                := interfaceDataset.InterfaceLoginfo( relnew, ExecuteUser := executor
+                                                                 , Name := Translations::InterfaceDataset_AssemblyOnlinePlanPPPSPush_Name()
+                                                                 , InterfaceDateTime := nowdate
+                                                                 , Message := '瑁呴厤涓婄嚎璁″垝-PPPS浼犺緭鑷虫暟鎹腑鍙帮紙鍖呭惈鎺掑簭锛�/SAP锛堜笉鍖呭惈鎺掑簭锛�'
+                                                                 , IsShow := false
+                                                                 , Last := true
+                                                                 , ReturnSuccess := true
+                                                                 , ReturnMsg := 'Success'
+                                                                 , Success := true
+                                                                  );
+    traverse( macroplan, AssemblyOnlinePlanColumn, column ){
+      traverse( column, AssemblyOnlinePlanCell, cell, cell.Value() <> '' and cell.AssemblyOnlinePlanRow().RowNr() = '1' ){
+        quantityrow        := cell.AssemblyOnlinePlanRow();
+        ordercell          := selectobject( column, AssemblyOnlinePlanCell, ocell, ocell.AssemblyOnlinePlanRow().ProductID() = quantityrow.ProductID() 
+                                            and ocell.AssemblyOnlinePlanRow().ProductionLine() = quantityrow.ProductionLine() 
+                                            and ocell.AssemblyOnlinePlanRow().RowNr() = '2' );
+    
+        cd                  :=interfaceDataset.AssemblyOnlinePlanPPPSPush( relnew, Product           := quantityrow.ProductID()
+                                                                           , PlanningDate            := column.ColumnDate()
+                                                                           , PlanningQty             := [Number]cell.Value()
+                                                                           , Sequence                := ordercell.Value()
+                                                                           , VersionName             := macroplan.ScenarioName()
+                                                                           , InterfaceTime           := nowdate
+                                                                           , VersionFlag             := versionflag
+                                                                           );
+        loginfo.AssemblyOnlinePlanPPPSPush( relinsert, cd );
+      }
+    }
+    loginfo.TotalRow( loginfo.AssemblyOnlinePlanPPPSPush( relsize ) );
+  *]
+}
diff --git a/_Main/BL/Type_AssemblyOnlinePlanPush/_ROOT_Type_AssemblyOnlinePlanPPPSPush.qbl b/_Main/BL/Type_AssemblyOnlinePlanPush/_ROOT_Type_AssemblyOnlinePlanPPPSPush.qbl
new file mode 100644
index 0000000..a68005b
--- /dev/null
+++ b/_Main/BL/Type_AssemblyOnlinePlanPush/_ROOT_Type_AssemblyOnlinePlanPPPSPush.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type AssemblyOnlinePlanPPPSPush
+{
+  #keys: '5[415136.0.1029932700][415136.0.1029932698][0.0.0][415136.0.1029932699][415136.0.1029932701]'
+  BaseType: Object
+  Description: '3.5瑁呴厤涓婄嚎璁″垝-PPPS浼犺緭鑷虫暟鎹腑鍙帮紙鍖呭惈鎺掑簭锛�/SAP锛堜笉鍖呭惈鎺掑簭锛�'
+  StructuredName: 'AssemblyOnlinePlanPPPSPushs'
+}
diff --git a/_Main/BL/Type_ChangeLossSettingExcel/Attribute_ChangeLossNr.qbl b/_Main/BL/Type_ChangeLossSettingExcel/Attribute_ChangeLossNr.qbl
new file mode 100644
index 0000000..379f527
--- /dev/null
+++ b/_Main/BL/Type_ChangeLossSettingExcel/Attribute_ChangeLossNr.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ChangeLossNr
+{
+  #keys: '3[415136.0.1035218301][415136.0.1035218300][415136.0.1035218302]'
+  Description: '鎹㈠瀷鎹熷け锛堝彴锛�'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_ChangeLossSettingExcel/Attribute_Product1.qbl b/_Main/BL/Type_ChangeLossSettingExcel/Attribute_Product1.qbl
new file mode 100644
index 0000000..0e7d165
--- /dev/null
+++ b/_Main/BL/Type_ChangeLossSettingExcel/Attribute_Product1.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Product1
+{
+  #keys: '3[415136.0.1035218324][415136.0.1035218323][415136.0.1035218325]'
+  Description: '浜у搧1'
+  IsReadOnly: true
+  ValueType: String
+}
diff --git a/_Main/BL/Type_ChangeLossSettingExcel/Attribute_Product2.qbl b/_Main/BL/Type_ChangeLossSettingExcel/Attribute_Product2.qbl
new file mode 100644
index 0000000..77b29db
--- /dev/null
+++ b/_Main/BL/Type_ChangeLossSettingExcel/Attribute_Product2.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Product2
+{
+  #keys: '3[415136.0.1035218327][415136.0.1035218326][415136.0.1035218328]'
+  Description: '浜у搧2'
+  IsReadOnly: true
+  ValueType: String
+}
diff --git a/_Main/BL/Type_ChangeLossSettingExcel/Attribute_Unit.qbl b/_Main/BL/Type_ChangeLossSettingExcel/Attribute_Unit.qbl
new file mode 100644
index 0000000..ae7ecf7
--- /dev/null
+++ b/_Main/BL/Type_ChangeLossSettingExcel/Attribute_Unit.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Unit
+{
+  #keys: '3[415136.0.1035218331][415136.0.1035218330][415136.0.1035218332]'
+  Description: '鍗曚綅'
+  IsReadOnly: true
+  ValueType: String
+}
diff --git a/_Main/BL/Type_ChangeLossSettingExcel/StaticMethod_CheckImport.qbl b/_Main/BL/Type_ChangeLossSettingExcel/StaticMethod_CheckImport.qbl
new file mode 100644
index 0000000..8e48b1d
--- /dev/null
+++ b/_Main/BL/Type_ChangeLossSettingExcel/StaticMethod_CheckImport.qbl
@@ -0,0 +1,39 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod CheckImport (
+  MacroPlan macroplan
+)
+{
+  TextBody:
+  [*
+    // 鐢勫叞楦� Aug-22-2024 (created)
+    if( exists( macroplan, ChangeLossSettingExcel, excel, excel.Product1() = '' 
+                or excel.Product2() = '' 
+                or excel.Unit() = '' 
+                or excel.ChangeLossNr() = 0 ) ){
+      error( Translations::MP_ChangeLossSettingExcel_Import_NullInputRequiredField() );
+    }
+    //瀵煎叆浜у搧鏄惁瀛樺湪
+    if( exists( macroplan, ChangeLossSettingExcel, excel, not exists( macroplan, Product_MP, product, product.ID() = excel.Product1() or product.ID() = excel.Product2() ) ) ){
+      error( Translations::MP_ChangeLossSettingExcel_Import_ProductNoExist() );
+    }
+    //瀵煎叆浜х嚎鏄惁瀛樺湪
+    if( exists( macroplan, ChangeLossSettingExcel, excel, not exists( macroplan, Unit, unit, unit.ID() = excel.Unit() ) ) ){
+      error( Translations::MP_ChangeLossSettingExcel_Import_UnitNoExist() );
+    }
+    //瀵煎叆鐨勪袱涓骇鍝佺浉绛�
+    if( exists( macroplan, ChangeLossSettingExcel, excel, excel.Product1() = excel.Product2() ) ){
+      error( Translations::MP_ChangeLossSetting_SameProduct() );
+    }
+    //閲嶅瀵煎叆鏍¢獙
+    //if( selectduplicates( owner, LaneExcel, excel, excel.StartFrom(), 
+    //                      excel.EndTo(), 
+    //                      excel.StartStockingPoint(), 
+    //                      excel.EndStockingPoint(), 
+    //                      excel.TransporationType(), 
+    //                      excel.Product(), 
+    //                      excel.TransporationTime() ).Size() > 0 ){
+    //  error( Translations::MP_LaneExcel_Import_RepeatKey() );
+    //}
+  *]
+}
diff --git a/_Main/BL/Type_ChangeLossSettingExcel/StaticMethod_ExportTemplate.qbl b/_Main/BL/Type_ChangeLossSettingExcel/StaticMethod_ExportTemplate.qbl
new file mode 100644
index 0000000..cf221ac
--- /dev/null
+++ b/_Main/BL/Type_ChangeLossSettingExcel/StaticMethod_ExportTemplate.qbl
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod ExportTemplate (
+  MacroPlan macroplan,
+  Boolean isxlsxformat
+) as BinaryValue
+{
+  TextBody:
+  [*
+    // 鐢勫叞楦� Aug-22-2024 (created)
+    value := macroplan.MP_ExportChangeLossSettingsBroker().ExecuteToXLS( isxlsxformat ).AsBinaryValue();
+    
+    return value;
+  *]
+}
diff --git a/_Main/BL/Type_ChangeLossSettingExcel/StaticMethod_GetDefalutName.qbl b/_Main/BL/Type_ChangeLossSettingExcel/StaticMethod_GetDefalutName.qbl
new file mode 100644
index 0000000..390d381
--- /dev/null
+++ b/_Main/BL/Type_ChangeLossSettingExcel/StaticMethod_GetDefalutName.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GetDefalutName () as String
+{
+  TextBody:
+  [*
+    // 鐢勫叞楦� Aug-22-2024 (created)
+    return 'MP_ChangeoverLossSetting.xlsx';
+  *]
+}
diff --git a/_Main/BL/Type_ChangeLossSettingExcel/StaticMethod_Import.qbl b/_Main/BL/Type_ChangeLossSettingExcel/StaticMethod_Import.qbl
new file mode 100644
index 0000000..94fe124
--- /dev/null
+++ b/_Main/BL/Type_ChangeLossSettingExcel/StaticMethod_Import.qbl
@@ -0,0 +1,42 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod Import (
+  MacroPlan macroplan,
+  BinaryValue binaryvalue
+)
+{
+  TextBody:
+  [*
+    // 鐢勫叞楦� Aug-22-2024 (created)
+    
+    macroplan.ValidateBroker( typeof( MP_ImportChangeLossSettingsBroker ).ShortName(), macroplan.MP_ImportChangeLossSettingsBroker().Source(), binaryvalue );
+    progress( 'Importing lanes', DateTime::ActualTime() );
+    macroplan.MP_ImportChangeLossSettingsBroker().ExecuteFromXLS( binaryvalue.AsBinaryData(), true );
+    
+    try{
+      ChangeLossSettingExcel::CheckImport( macroplan );
+    }onerror{
+      //鏍¢獙澶辫触鍚庡垹闄�
+      macroplan.ChangeLossSettingExcel( relflush );
+      error( e.GeneralInformation() );
+    }
+    //閬嶅巻澶勭悊瀵煎叆鐨勬暟鎹�
+    traverse( macroplan, ChangeLossSettingExcel, excel ){
+      cls               := selectobject(  macroplan, ChangeLossSetting, cls, cls.ProductFirst().ID() = excel.Product1()
+                                          and cls.ProductSecond().ID() = excel.Product2()
+                                          and cls.Unit().ID() = excel.Unit() );
+      if( isnull( cls ) ){
+        cls             := macroplan.ChangeLossSetting( relnew, ChangeLossNr := excel.ChangeLossNr() );
+        product1        := selectobject( macroplan, Product_MP, product, product.ID() = excel.Product1() );
+        product2        := selectobject( macroplan, Product_MP, product, product.ID() = excel.Product2() );
+        unit            := selectobject( macroplan, Unit, unit, unit.ID() = excel.Unit() );
+        cls.ProductFirst( relset, product1 );
+        cls.ProductSecond( relset, product2 );
+        cls.Unit( relset, unit );
+      }else {
+        cls.ChangeLossNr( excel.ChangeLossNr() );
+      }
+      excel.Delete();
+    }
+  *]
+}
diff --git a/_Main/BL/Type_ChangeLossSettingExcel/TypeIndex_ChangeLossSettingTypeIndex.qbl b/_Main/BL/Type_ChangeLossSettingExcel/TypeIndex_ChangeLossSettingTypeIndex.qbl
new file mode 100644
index 0000000..79e5846
--- /dev/null
+++ b/_Main/BL/Type_ChangeLossSettingExcel/TypeIndex_ChangeLossSettingTypeIndex.qbl
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: #root
+TypeIndex ChangeLossSettingTypeIndex
+{
+  Attributes:
+  [
+    TypeIndexAttribute
+    {
+      ModelElement: Product2
+    }
+    TypeIndexAttribute
+    {
+      ModelElement: Product1
+    }
+    TypeIndexAttribute
+    {
+      ModelElement: Unit
+    }
+  ]
+}
diff --git a/_Main/BL/Type_ChangeLossSettingExcel/_ROOT_Type_ChangeLossSettingExcel.qbl b/_Main/BL/Type_ChangeLossSettingExcel/_ROOT_Type_ChangeLossSettingExcel.qbl
new file mode 100644
index 0000000..1e4d6ef
--- /dev/null
+++ b/_Main/BL/Type_ChangeLossSettingExcel/_ROOT_Type_ChangeLossSettingExcel.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type ChangeLossSettingExcel
+{
+  #keys: '5[415136.0.1035218297][415136.0.1035218295][0.0.0][415136.0.1035218296][415136.0.1035218298]'
+  BaseType: Object
+  Description: '鎹㈠瀷璁剧疆瀵煎叆瀵煎嚭绫�'
+  StructuredName: 'ChangeLossSettingExcels'
+}
diff --git a/_Main/BL/Type_CustomerDemandPPAIDS/StaticMethod_GenerateData.qbl b/_Main/BL/Type_CustomerDemandPPAIDS/StaticMethod_GenerateData.qbl
index e61e4bd..6ab92b1 100644
--- a/_Main/BL/Type_CustomerDemandPPAIDS/StaticMethod_GenerateData.qbl
+++ b/_Main/BL/Type_CustomerDemandPPAIDS/StaticMethod_GenerateData.qbl
@@ -22,15 +22,15 @@
       interfaceDataset.CustomerDemandPPAIDS( relflush );
     }
     nowdate                := DateTime::ActualTime();
-    loginfo                := interfaceDataset.InterfaceLoginfo( relnew, ExecuteUser := executor
-                                                                 , Name := Translations::InterfaceDataset_CustomerDemandPPAIDS_Name()
-                                                                 , InterfaceDateTime := DateTime::ActualTime()
-                                                                 , Message := '瀹㈡埛闇�姹傦紙PPA+IDS锛夋暟鎹帹閫�'
-                                                                 , IsShow := false
-                                                                 , Last := true
-                                                                 , ReturnSuccess := true
-                                                                 , ReturnMsg := 'Success'
-                                                                 , Success := true
+    loginfo                := interfaceDataset.InterfaceLoginfo( relnew, ExecuteUser         := executor
+                                                                 , Name                      := Translations::InterfaceDataset_CustomerDemandPPAIDS_Name()
+                                                                 , InterfaceDateTime         := nowdate
+                                                                 , Message                   := '瀹㈡埛闇�姹傦紙PPA+IDS锛夋暟鎹帹閫�'
+                                                                 , Last                      := true
+                                                                 , IsShow                    := false
+                                                                 , ReturnSuccess             := true
+                                                                 , ReturnMsg                 := 'Success'
+                                                                 , Success                   := true
                                                                   );
     traverse( macroplan, SalesDemand.astype( Forecast ), forecast ){
       cd                  :=interfaceDataset.CustomerDemandPPAIDS( relnew, Product           := forecast.ProductID()
diff --git a/_Main/BL/Type_DispatchShiftPlan/StaticMethod_Dispatch.qbl b/_Main/BL/Type_DispatchShiftPlan/StaticMethod_Dispatch.qbl
index cbf8db1..1402b5a 100644
--- a/_Main/BL/Type_DispatchShiftPlan/StaticMethod_Dispatch.qbl
+++ b/_Main/BL/Type_DispatchShiftPlan/StaticMethod_Dispatch.qbl
@@ -2,12 +2,16 @@
 #parent: #root
 StaticMethod Dispatch (
   const MacroPlan macroPlan,
-  RecycleBin owner
+  RecycleBin owner,
+  String versionFlag
 )
 {
   TextBody:
   [*
     // Akari Aug-21-2024 (created)
+    owner.DispatchShiftPlan( relflush );
+    // owner.RB_DispatchShiftPlanBroker().Source().FlatQuery( "truncate table A_DispatchShiftPlan" );
+    
     now := DateTime::Now();
     macroPlanName := macroPlan.MDSMacroPlan().Description();
     traverse( macroPlan,Unit.UnitPeriod.astype( UnitPeriodTime ).ShiftPlan,shiftPlan ){
@@ -25,6 +29,7 @@
                                 ShiftDate := shiftPlan.UnitPeriodTime().Period_MP().StartDate(),
                                 Tips := shiftPlan.Remark(),
                                 VersionName := macroPlanName,
+                                VersionFlag := versionFlag,
                                 FactoryName := factory.ID(),
                                 InterfaceTime := now
                                 );
diff --git a/_Main/BL/Type_FinishedEngineInventory/StaticMethod_Synchronize.qbl b/_Main/BL/Type_FinishedEngineInventory/StaticMethod_Synchronize.qbl
index 0bde4d2..efe4c0f 100644
--- a/_Main/BL/Type_FinishedEngineInventory/StaticMethod_Synchronize.qbl
+++ b/_Main/BL/Type_FinishedEngineInventory/StaticMethod_Synchronize.qbl
@@ -22,12 +22,17 @@
       cnv2.SetCustomConversion();
       cnv2.CustomFormatString( 'yyyy-MM-dd' );
       
-    //  sadatalist := construct( ShippingActualDatas );
+      sadatalist := construct( FinishedEngineInventorys );
       for( seq := 0;seq < data.Size();seq++){
         item := data.Get(seq);
-        FinishedEngineInventory::GenerateData( loginfo, cnv2, item );
-    //    sadatalist.Add( sadata );
+        sadata := FinishedEngineInventory::GenerateData( loginfo, cnv2, item );
+        sadatalist.Add( sadata );
       }
+      
+      options := DatasetFindOptions::Construct( 'MacroPlan' ).IncludeOffline( true ); //to load we must search offline datasets.
+      mdskey := DatasetController::FindUnique( options );
+    
+      MDSMacroPlan::Root( mdskey ) -> InventoryInterfaceData::SynchronizeInventory( owner, sadatalist );
     }
   *]
 }
diff --git a/_Main/BL/Type_InterfaceLoginfo/DefaultValue_IsShow.qbl b/_Main/BL/Type_InterfaceLoginfo/DefaultValue_IsShow.qbl
deleted file mode 100644
index 8bd79cf..0000000
--- a/_Main/BL/Type_InterfaceLoginfo/DefaultValue_IsShow.qbl
+++ /dev/null
@@ -1,7 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-DefaultValue
-{
-  ISOValue: 'true'
-  TargetAttribute: IsShow
-}
diff --git a/_Main/BL/Type_InterfaceLoginfo/StaticMethod_SyncMiddle.qbl b/_Main/BL/Type_InterfaceLoginfo/StaticMethod_SyncMiddle.qbl
new file mode 100644
index 0000000..2c269ac
--- /dev/null
+++ b/_Main/BL/Type_InterfaceLoginfo/StaticMethod_SyncMiddle.qbl
@@ -0,0 +1,21 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SyncMiddle (
+  InterfaceDataset owner
+)
+{
+  TextBody:
+  [*
+    // 鐢勫叞楦� Aug-23-2024 (created)
+    owner.IL_InterfaceLogInfoMiddlesBroker().Execute();
+    // 娓呯┖涓存椂鏁版嵁搴�
+    owner.IL_InterfaceLogInfoMiddlesBroker().Source().FlatQuery( "truncate table A_InterfaceLogInfoMiddle" );
+    traverse( owner, InterfaceLoginfoMiddle, middle ){
+      loginfo := selectobject( owner, InterfaceLoginfo, loginfo, loginfo.Name() = middle.Name() and loginfo.IsShow() = false and loginfo.Last() = true );
+      loginfo.FinishTime( middle.FinishTime() );
+      loginfo.Response( middle.Response() );
+      loginfo.IsShow( false );
+      middle.Delete();
+    }
+  *]
+}
diff --git a/_Main/BL/Type_InterfaceLoginfoMiddle/Attribute_FinishTime.qbl b/_Main/BL/Type_InterfaceLoginfoMiddle/Attribute_FinishTime.qbl
new file mode 100644
index 0000000..ef73cdd
--- /dev/null
+++ b/_Main/BL/Type_InterfaceLoginfoMiddle/Attribute_FinishTime.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute FinishTime
+{
+  #keys: '3[415136.0.1035642031][415136.0.1035642030][415136.0.1035642032]'
+  Description: '瀹屾垚鏃堕棿'
+  ValueType: DateTime
+}
diff --git a/_Main/BL/Type_InterfaceLoginfoMiddle/Attribute_ID.qbl b/_Main/BL/Type_InterfaceLoginfoMiddle/Attribute_ID.qbl
new file mode 100644
index 0000000..543dca0
--- /dev/null
+++ b/_Main/BL/Type_InterfaceLoginfoMiddle/Attribute_ID.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ID
+{
+  #keys: '3[415136.0.1035643101][415136.0.1035643100][415136.0.1035643102]'
+  IsReadOnly: true
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_InterfaceLoginfoMiddle/Attribute_Name.qbl b/_Main/BL/Type_InterfaceLoginfoMiddle/Attribute_Name.qbl
new file mode 100644
index 0000000..936f812
--- /dev/null
+++ b/_Main/BL/Type_InterfaceLoginfoMiddle/Attribute_Name.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Name
+{
+  #keys: '3[415136.0.1035642019][415136.0.1035642018][415136.0.1035642020]'
+  Description: '鎺ュ彛鍚嶇О'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_InterfaceLoginfoMiddle/Attribute_Response.qbl b/_Main/BL/Type_InterfaceLoginfoMiddle/Attribute_Response.qbl
new file mode 100644
index 0000000..1c588e2
--- /dev/null
+++ b/_Main/BL/Type_InterfaceLoginfoMiddle/Attribute_Response.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Response
+{
+  #keys: '3[415136.0.1035642035][415136.0.1035642034][415136.0.1035642036]'
+  Description: '鎺ュ彛杩斿洖鏁版嵁'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_InterfaceLoginfoMiddle/DefaultValue_Name.qbl b/_Main/BL/Type_InterfaceLoginfoMiddle/DefaultValue_Name.qbl
new file mode 100644
index 0000000..86c3d59
--- /dev/null
+++ b/_Main/BL/Type_InterfaceLoginfoMiddle/DefaultValue_Name.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: Name
+}
diff --git a/_Main/BL/Type_InterfaceLoginfoMiddle/DefaultValue_Response.qbl b/_Main/BL/Type_InterfaceLoginfoMiddle/DefaultValue_Response.qbl
new file mode 100644
index 0000000..daf5a1a
--- /dev/null
+++ b/_Main/BL/Type_InterfaceLoginfoMiddle/DefaultValue_Response.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: Response
+}
diff --git a/_Main/BL/Type_InterfaceLoginfoMiddle/TypeIndex_InterfaceLoginfoMiddleTypeIndex.qbl b/_Main/BL/Type_InterfaceLoginfoMiddle/TypeIndex_InterfaceLoginfoMiddleTypeIndex.qbl
new file mode 100644
index 0000000..8f14f02
--- /dev/null
+++ b/_Main/BL/Type_InterfaceLoginfoMiddle/TypeIndex_InterfaceLoginfoMiddleTypeIndex.qbl
@@ -0,0 +1,12 @@
+Quintiq file version 2.0
+#parent: #root
+TypeIndex InterfaceLoginfoMiddleTypeIndex
+{
+  Attributes:
+  [
+    TypeIndexAttribute
+    {
+      ModelElement: ID
+    }
+  ]
+}
diff --git a/_Main/BL/Type_InterfaceLoginfoMiddle/_ROOT_Type_InterfaceLoginfoMiddle.qbl b/_Main/BL/Type_InterfaceLoginfoMiddle/_ROOT_Type_InterfaceLoginfoMiddle.qbl
new file mode 100644
index 0000000..a08d708
--- /dev/null
+++ b/_Main/BL/Type_InterfaceLoginfoMiddle/_ROOT_Type_InterfaceLoginfoMiddle.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type InterfaceLoginfoMiddle
+{
+  #keys: '5[415136.0.1035642012][415136.0.1035642010][0.0.0][415136.0.1035642011][415136.0.1035642013]'
+  BaseType: Object
+  Description: '鎺ュ彛鏃ュ織涓棿涓存椂琛�'
+  StructuredName: 'InterfaceLoginfoMiddles'
+}
diff --git "a/_Main/BL/Type_InventoryInterfaceData/StaticMethod_SynchronizeInventory\043575.qbl" "b/_Main/BL/Type_InventoryInterfaceData/StaticMethod_SynchronizeInventory\043575.qbl"
new file mode 100644
index 0000000..b3ccbaf
--- /dev/null
+++ "b/_Main/BL/Type_InventoryInterfaceData/StaticMethod_SynchronizeInventory\043575.qbl"
@@ -0,0 +1,24 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SynchronizeInventory (
+  MacroPlan macroplan,
+  InterfaceDataset owner,
+  const FinishedEngineInventorys inventorys
+)
+{
+  Description: '鍙戝姩鏈烘垚鍝佸簱瀛�'
+  TextBody:
+  [*
+    
+    //娓呯┖鍘熸湁鐨勫簱瀛樻洿鏂版暟鎹�
+    //traverse( interfaceDataset, InventoryInterfaceData, iid, iid.Date() = date ){
+    //  iid.Delete();
+    //}
+    // 鑾峰彇鎸囧畾鏃ユ湡搴撳瓨鎺ュ彛鏁版嵁
+    //鍙戝姩鏈烘垚鍝佸簱瀛�
+    traverse( inventorys, Elements, inventory ){
+      product    := select( macroplan, Product_MP, product, product.Notes() = inventory.FourCode() );
+      InventoryInterfaceData::Generate( owner, inventory.DDay(), product.ID(), inventory.BIPlace(), [Number]inventory.Total() );
+    }
+  *]
+}
diff --git a/_Main/BL/Type_MachineStockData/StaticMethod_Synchronize.qbl b/_Main/BL/Type_MachineStockData/StaticMethod_Synchronize.qbl
index ac78819..4a74306 100644
--- a/_Main/BL/Type_MachineStockData/StaticMethod_Synchronize.qbl
+++ b/_Main/BL/Type_MachineStockData/StaticMethod_Synchronize.qbl
@@ -24,8 +24,13 @@
       
     //  sadatalist := construct( ShippingActualDatas );
       for( seq := 0;seq < data.Size();seq++){
-        item := data.Get(seq);
-        MachineStockData::GenerateData( loginfo, cnv2, item );
+        item         := data.Get(seq);
+        inventory    :=MachineStockData::GenerateData( loginfo, cnv2, item );
+        inventoryname := inventory.Lgort();
+        if( inventory.Fac() = 'DL' and inventory.Lgort() = 'All' ){
+          inventoryname := inventory.LineType();
+        }
+        InventoryInterfaceData::Generate( owner, inventory.DDay(), inventory.MaterialNo(), inventoryname, [Number]inventory.Total() );
     //    sadatalist.Add( sadata );
       }
     }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupRestraint.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupRestraint.def
index 3fde688..f6b290e 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupRestraint.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupRestraint.def
@@ -5,14 +5,14 @@
   BaseType: 'WebActionBarGroup'
   Children:
   [
-    Component ButtonChangeLossSetting
+    Component ButtonChangeoverLossSetting
     {
       #keys: '[415136.0.747550259]'
       BaseType: 'WebButton'
       Properties:
       [
         Image: 'GEAR'
-        Label: 'Change loss setting'
+        Label: 'Changeover loss setting'
         Taborder: 0
       ]
     }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupRestraint_ButtonChangeLossSetting_OnClic.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupRestraint_ButtonChangeoverLossSetting_On.def
similarity index 77%
rename from _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupRestraint_ButtonChangeLossSetting_OnClic.def
rename to _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupRestraint_ButtonChangeoverLossSetting_On.def
index d04f14a..30f172a 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupRestraint_ButtonChangeLossSetting_OnClic.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupRestraint_ButtonChangeoverLossSetting_On.def
@@ -1,6 +1,6 @@
 Quintiq file version 2.0
-#parent: ActionBarGroupRestraint/ButtonChangeLossSetting
-Response OnClick () id:Response_MacroPlanner_ActionBarGroupRestraint_ButtonChangeLossSetting_OnClick
+#parent: ActionBarGroupRestraint/ButtonChangeoverLossSetting
+Response OnClick () id:Response_MacroPlanner_ActionBarGroupRestraint_ButtonChangeoverLossSetting_OnClick
 {
   #keys: '[415136.0.748214014]'
   CanBindMultiple: false
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Method_Edit.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Method_Edit.def
index fc9c24e..223e502 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Method_Edit.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Method_Edit.def
@@ -2,7 +2,7 @@
 #parent: #root
 Method Edit (
   ChangeLossSetting selection
-) id:Method_DialogCreateEditChangeLossSetting_Edit
+) id:Method_DialogCreateEditChangeoverLossSetting_Edit
 {
   #keys: '[415136.0.746200731]'
   Body:
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Method_New.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Method_New.def
index 8e07d45..f7be2ae 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Method_New.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Method_New.def
@@ -1,8 +1,8 @@
 Quintiq file version 2.0
 #parent: #root
 Method New (
-  FormChangeLossSetting form
-) id:Method_DialogCreateEditChangeLossSetting_New
+  FormChangeoverLossSetting form
+) id:Method_DialogCreateEditChangeoverLossSetting_New
 {
   #keys: '[415136.0.746200358]'
   Body:
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Method_OnOK.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Method_OnOK.def
index 8135b6d..140fd36 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Method_OnOK.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Method_OnOK.def
@@ -1,6 +1,6 @@
 Quintiq file version 2.0
 #parent: #root
-Method OnOK () id:Method_DialogCreateEditChangeLossSetting_OnOK
+Method OnOK () id:Method_DialogCreateEditChangeoverLossSetting_OnOK
 {
   #keys: '[415136.0.746200837]'
   Body:
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/_ROOT_Component_DialogCreateEditChangeLossSetting.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/_ROOT_Component_DialogCreateEditChangeoverLossSetting.def
similarity index 84%
rename from _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/_ROOT_Component_DialogCreateEditChangeLossSetting.def
rename to _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/_ROOT_Component_DialogCreateEditChangeoverLossSetting.def
index 0caebb1..7d83f47 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/_ROOT_Component_DialogCreateEditChangeLossSetting.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/_ROOT_Component_DialogCreateEditChangeoverLossSetting.def
@@ -1,7 +1,7 @@
 Quintiq file version 2.0
 #root
 #parent: MacroPlannerWebApp
-OrphanComponent DialogCreateEditChangeLossSetting
+OrphanComponent DialogCreateEditChangeoverLossSetting
 {
   #keys: '[415136.0.735612161]'
   BaseType: 'WebForm'
@@ -23,7 +23,7 @@
     {
       #keys: '[415136.0.735612354]'
       BaseType: 'WebDataHolder'
-      Databinding: 'FormChangeLossSetting'
+      Databinding: 'FormChangeoverLossSetting'
       Properties:
       [
         Taborder: 1
@@ -38,6 +38,6 @@
     ExcludeFromActiveComponent: true
     Image: 'GEAR'
     Padding: 'false'
-    Title: 'Change loss setting'
+    Title: 'Changeover loss setting'
   ]
 }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Method_New.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Method_New.def
index 96f304f..3974309 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Method_New.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Method_New.def
@@ -3,7 +3,7 @@
 Method New (
   Routing selection,
   FormRoutings formrouting
-) id:Method_DialogCreateEditThermalTrialRatio_New
+) id:Method_DialogCreateEditHotTestRatio_New
 {
   #keys: '[415136.0.756141435]'
   Body:
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Method_OnOK.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Method_OnOK.def
index 0c62b57..57fd815 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Method_OnOK.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Method_OnOK.def
@@ -1,6 +1,6 @@
 Quintiq file version 2.0
 #parent: #root
-Method OnOK () id:Method_DialogCreateEditThermalTrialRatio_OnOK
+Method OnOK () id:Method_DialogCreateEditHotTestRatio_OnOK
 {
   #keys: '[415136.0.762562093]'
   Body:
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Method_SetDefaultValue.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Method_SetDefaultValue.def
index 3930cf2..acc2c38 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Method_SetDefaultValue.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Method_SetDefaultValue.def
@@ -1,6 +1,6 @@
 Quintiq file version 2.0
 #parent: #root
-Method SetDefaultValue () id:Method_DialogCreateEditThermalTrialRatio_SetDefaultValue
+Method SetDefaultValue () id:Method_DialogCreateEditHotTestRatio_SetDefaultValue
 {
   #keys: '[415136.0.756141199]'
   Body:
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/_ROOT_Component_DialogCreateEditThermalTrialRatio.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/_ROOT_Component_DialogCreateEditHotTestRatio.def
similarity index 89%
rename from _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/_ROOT_Component_DialogCreateEditThermalTrialRatio.def
rename to _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/_ROOT_Component_DialogCreateEditHotTestRatio.def
index dd793e2..994e996 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/_ROOT_Component_DialogCreateEditThermalTrialRatio.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/_ROOT_Component_DialogCreateEditHotTestRatio.def
@@ -1,7 +1,7 @@
 Quintiq file version 2.0
 #root
 #parent: MacroPlannerWebApp
-OrphanComponent DialogCreateEditThermalTrialRatio
+OrphanComponent DialogCreateEditHotTestRatio
 {
   #keys: '[415136.0.756140026]'
   BaseType: 'WebForm'
@@ -37,6 +37,6 @@
     EscapeButton: 'btnCancel'
     ExcludeFromActiveComponent: true
     Padding: 'false'
-    Title: 'Thermal trial ratio'
+    Title: 'Hot test ratio'
   ]
 }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSMS64/Component_pnlActions.def b/_Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSMS64/Component_pnlActions.def
new file mode 100644
index 0000000..1733369
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSMS64/Component_pnlActions.def
@@ -0,0 +1,50 @@
+Quintiq file version 2.0
+Component pnlActions
+{
+  #keys: '[415136.0.1033612182]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component btnApply
+    {
+      #keys: '[415136.0.1033612184]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Label: 'Apply'
+        Taborder: 0
+      ]
+    }
+    Component btnOk
+    {
+      #keys: '[415136.0.1033612186]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Label: 'OK'
+        Taborder: 1
+      ]
+    }
+    Component btnCancel
+    {
+      #keys: '[415136.0.1033612188]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Label: 'Cancel'
+        Taborder: 2
+      ]
+    }
+  ]
+  Properties:
+  [
+    Alignment: 'trailing'
+    Border: true
+    ExcludeFromActiveComponent: true
+    FixedSize: true
+    Orientation: 'horizontal'
+    Padding: 'true'
+    Style: 'footer'
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSMS64/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSMS64/Component_pnlContent.def
new file mode 100644
index 0000000..d7da3c3
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSMS64/Component_pnlContent.def
@@ -0,0 +1,103 @@
+Quintiq file version 2.0
+Component pnlContent
+{
+  #keys: '[415136.0.1033612180]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component efFactory id:efFactory_891
+    {
+      #keys: '[415136.0.1033612218]'
+      BaseType: 'WebEditField'
+      Properties:
+      [
+        Label: '宸ュ巶浠g爜'
+        Taborder: 0
+      ]
+    }
+    Component dsStartDate id:dsStartDate_57
+    {
+      #keys: '[415136.0.1033612231]'
+      BaseType: 'WebDateSelector'
+      Properties:
+      [
+        Label: '寮�濮嬫棩鏈�'
+        Taborder: 1
+      ]
+    }
+    Component dsEndDate id:dsEndDate_963
+    {
+      #keys: '[415136.0.1033612244]'
+      BaseType: 'WebDateSelector'
+      Properties:
+      [
+        Label: '缁撴潫鏃ユ湡'
+        Taborder: 2
+      ]
+    }
+    Component efOriginMacroPlan
+    {
+      #keys: '[415136.0.1033612274]'
+      BaseType: 'WebEditField'
+      Properties:
+      [
+        Label: '浠庣増鏈�'
+        Taborder: 3
+      ]
+    }
+    Component efDestinationMacroPlan
+    {
+      #keys: '[415136.0.1033612302]'
+      BaseType: 'WebEditField'
+      Properties:
+      [
+        Label: '鍒扮増鏈�'
+        Taborder: 4
+      ]
+    }
+    Component cbActiveVersion
+    {
+      #keys: '[415136.0.1033612322]'
+      BaseType: 'WebCheckbox'
+      Properties:
+      [
+        Checked: true
+        Label: '鏄惁婵�娲荤増鏈�'
+        Taborder: 5
+      ]
+    }
+    Component ddlProduct
+    {
+      #keys: '[415136.0.1034848130]'
+      BaseType: 'WebDropDownList'
+      Databinding: 'Product_MP'
+      Children:
+      [
+        Component deContent
+        {
+          #keys: '[415136.0.1034848132]'
+          BaseType: 'WebDataExtractor'
+          Properties:
+          [
+            DataType: 'MacroPlan'
+            FixedFilter: 'object.IsLeaf()'
+            Source: 'MacroPlan'
+            Taborder: 0
+            Transformation: 'Product_MP'
+          ]
+        }
+      ]
+      Properties:
+      [
+        DisplayField: 'Name'
+        Label: '鐗╂枡鍙�'
+        Taborder: 6
+      ]
+    }
+  ]
+  Properties:
+  [
+    Padding: 'true'
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSMS64/Response_pnlActions_btnApply_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSMS64/Response_pnlActions_btnApply_OnClick.def
new file mode 100644
index 0000000..b44ee8d
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSMS64/Response_pnlActions_btnApply_OnClick.def
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: pnlActions/btnApply
+Response OnClick () id:Response_pnlActions_btnApply_OnClick
+{
+  #keys: '[415136.0.1033612190]'
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  GroupServerCalls: true
+  Precondition:
+  [*
+    return Form.HasChanges();
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      Form.ApplyChanges();
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSMS64/Response_pnlActions_btnCancel_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSMS64/Response_pnlActions_btnCancel_OnClick.def
new file mode 100644
index 0000000..69114aa
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSMS64/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.1033612192]'
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      Form.Close();
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSMS64/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSMS64/Response_pnlActions_btnOk_OnClick.def
new file mode 100644
index 0000000..074b6bc
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSMS64/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.1033612191]'
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      Form.ApplyChanges();
+      Form.Close();
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSMS64/_ROOT_Component_DialogZEDPPSMS64.def b/_Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSMS64/_ROOT_Component_DialogZEDPPSMS64.def
new file mode 100644
index 0000000..eaa6f12
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSMS64/_ROOT_Component_DialogZEDPPSMS64.def
@@ -0,0 +1,22 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent DialogZEDPPSMS64
+{
+  #keys: '[415136.0.1033612178]'
+  BaseType: 'WebForm'
+  Children:
+  [
+    #child: pnlContent
+    #child: pnlActions
+  ]
+  Properties:
+  [
+    Alignment: 'trailing'
+    EnterButton: 'btnOk'
+    EscapeButton: 'btnCancel'
+    ExcludeFromActiveComponent: true
+    Padding: 'false'
+    Title: 'ZED_PPS_MS64'
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSPIR/Component_pnlActions.def b/_Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSPIR/Component_pnlActions.def
new file mode 100644
index 0000000..8a9a900
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSPIR/Component_pnlActions.def
@@ -0,0 +1,40 @@
+Quintiq file version 2.0
+Component pnlActions
+{
+  #keys: '[415136.0.1033611817]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component btnOk
+    {
+      #keys: '[415136.0.1033611821]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Label: 'OK'
+        Taborder: 0
+      ]
+    }
+    Component btnCancel
+    {
+      #keys: '[415136.0.1033611823]'
+      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_DialogZEDPPSPIR/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSPIR/Component_pnlContent.def
new file mode 100644
index 0000000..2be7df6
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSPIR/Component_pnlContent.def
@@ -0,0 +1,54 @@
+Quintiq file version 2.0
+Component pnlContent
+{
+  #keys: '[415136.0.1033611815]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component efFactory
+    {
+      #keys: '[415136.0.1033611885]'
+      BaseType: 'WebEditField'
+      Properties:
+      [
+        Label: '宸ュ巶浠g爜'
+        Taborder: 0
+      ]
+    }
+    Component efMacroPlan
+    {
+      #keys: '[415136.0.1033611906]'
+      BaseType: 'WebEditField'
+      Properties:
+      [
+        Label: '鐗堟湰'
+        Taborder: 1
+      ]
+    }
+    Component dsStartDate
+    {
+      #keys: '[415136.0.1033611945]'
+      BaseType: 'WebDateSelector'
+      Properties:
+      [
+        Label: '璁″垝寮�濮嬫椂闂�'
+        Taborder: 2
+      ]
+    }
+    Component dsEndDate
+    {
+      #keys: '[415136.0.1033611978]'
+      BaseType: 'WebDateSelector'
+      Properties:
+      [
+        Label: '璁″垝缁撴潫鏃堕棿'
+        Taborder: 3
+      ]
+    }
+  ]
+  Properties:
+  [
+    Padding: 'true'
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSPIR/Response_pnlActions_btnCancel_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSPIR/Response_pnlActions_btnCancel_OnClick.def
new file mode 100644
index 0000000..18a0c9d
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSPIR/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.1033611827]'
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      Form.Close();
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSPIR/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSPIR/Response_pnlActions_btnOk_OnClick.def
new file mode 100644
index 0000000..63e94cb
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSPIR/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.1033611826]'
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      Form.ApplyChanges();
+      Form.Close();
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSPIR/_ROOT_Component_DialogZEDPPSPIR.def b/_Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSPIR/_ROOT_Component_DialogZEDPPSPIR.def
new file mode 100644
index 0000000..b246e29
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSPIR/_ROOT_Component_DialogZEDPPSPIR.def
@@ -0,0 +1,22 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent DialogZEDPPSPIR
+{
+  #keys: '[415136.0.1033611813]'
+  BaseType: 'WebForm'
+  Children:
+  [
+    #child: pnlContent
+    #child: pnlActions
+  ]
+  Properties:
+  [
+    Alignment: 'trailing'
+    EnterButton: 'btnOk'
+    EscapeButton: 'btnCancel'
+    ExcludeFromActiveComponent: true
+    Padding: 'false'
+    Title: 'ZED_PPS_PIR'
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form568/Component_pOperation.def b/_Main/UI/MacroPlannerWebApp/Component_Form568/Component_pOperation.def
index 0a1c73c..0a92700 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_Form568/Component_pOperation.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form568/Component_pOperation.def
@@ -13,7 +13,7 @@
       [
         Image: 'EXPORT1'
         Label: '瀵煎嚭'
-        Taborder: 0
+        Taborder: 2
       ]
     }
     Component bDownload id:bDownload_774
@@ -24,7 +24,7 @@
       [
         Image: 'DOWNLOAD'
         Label: '涓嬭浇'
-        Taborder: 1
+        Taborder: 3
       ]
     }
     Component dhXMLDataListener
@@ -50,7 +50,27 @@
       ]
       Properties:
       [
-        Taborder: 2
+        Taborder: 4
+      ]
+    }
+    Component Button593
+    {
+      #keys: '[414996.1.20921786]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Label: '鍙戝竷鐗堟湰'
+        Taborder: 0
+      ]
+    }
+    Component Button633
+    {
+      #keys: '[414996.1.20921810]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Label: '姹囨姤鐗堟湰'
+        Taborder: 1
       ]
     }
   ]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form568/Response_pOperation_Button593_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_Form568/Response_pOperation_Button593_OnClick.def
new file mode 100644
index 0000000..c85d3c1
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form568/Response_pOperation_Button593_OnClick.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: pOperation/Button593
+Response OnClick () id:Response_pOperation_Button593_OnClick
+{
+  #keys: '[414996.1.20921852]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      DispatchShiftPlan::Dispatch( MacroPlan,RecycleBin,this.Label() );
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form568/Response_pOperation_Button633_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_Form568/Response_pOperation_Button633_OnClick.def
new file mode 100644
index 0000000..78c0710
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form568/Response_pOperation_Button633_OnClick.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: pOperation/Button633
+Response OnClick () id:Response_pOperation_Button633_OnClick
+{
+  #keys: '[414996.1.20921936]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      DispatchShiftPlan::Dispatch( MacroPlan,RecycleBin,this.Label() );
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_ListChangeLossSetting.def "b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_ListChangeLossSetting\043568.def"
similarity index 83%
rename from _Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_ListChangeLossSetting.def
rename to "_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_ListChangeLossSetting\043568.def"
index 213c5f6..d1ab712 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_ListChangeLossSetting.def
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_ListChangeLossSetting\043568.def"
@@ -1,13 +1,13 @@
 Quintiq file version 2.0
-Component ListChangeLossSetting
+Component ListChangeLossSetting id:ListChangeLossSetting_568
 {
-  #keys: '[415136.0.735611728]'
+  #keys: '[415136.0.1033650293]'
   BaseType: 'WebList'
   Children:
   [
     Component DataExtractorChangeLossSetting
     {
-      #keys: '[415136.0.735611729]'
+      #keys: '[415136.0.1033650294]'
       BaseType: 'WebDataExtractor'
       Properties:
       [
@@ -17,14 +17,14 @@
         Transformation: 'ChangeLossSetting'
       ]
     }
-    #child: listActionBarPageChangeLossSetting
+    #child: listActionBarPageChangeLossSetting_1
     Component DataSetLevelChangeLossSetting
     {
-      #keys: '[415136.0.735611734]'
+      #keys: '[415136.0.1033650296]'
       BaseType: 'WebDataSetLevel'
       Children:
       [
-        #child: listContextMenuChangeLossSetting
+        #child: listContextMenuChangeLossSetting_1
       ]
       Properties:
       [
@@ -40,9 +40,9 @@
   ]
   ResponseDefinitions:
   [
-    DelegatedResponseDefinition OnClick id:Responsedef_ListChangeLossSetting_WebMenu_OnClick
+    DelegatedResponseDefinition OnClick id:Responsedef_ListChangeLossSetting_568_WebMenu_OnClick
     {
-      #keys: '[415136.0.747540770]'
+      #keys: '[415136.0.1033650287]'
       Initiator: 'WebMenu'
       IsInherited: false
       ResponseType: 'OnClick'
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_PanelHeader.def b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_PanelHeader.def
new file mode 100644
index 0000000..53cde5c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_PanelHeader.def
@@ -0,0 +1,35 @@
+Quintiq file version 2.0
+Component PanelHeader
+{
+  #keys: '[415136.0.1033690374]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component ButtonImport
+    {
+      #keys: '[415136.0.1033690395]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Image: 'IMPORT1'
+        Taborder: 0
+      ]
+    }
+    Component ButtonHeader
+    {
+      #keys: '[415136.0.1033690437]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Image: 'EXPORT1'
+        Taborder: 1
+      ]
+    }
+  ]
+  Properties:
+  [
+    FixedSize: true
+    Orientation: 'horizontal'
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_PanelList.def b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_PanelList.def
new file mode 100644
index 0000000..6e18d88
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_PanelList.def
@@ -0,0 +1,14 @@
+Quintiq file version 2.0
+Component PanelList
+{
+  #keys: '[415136.0.1033650239]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    #child: ListChangeLossSetting_568
+  ]
+  Properties:
+  [
+    Taborder: 1
+  ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_listActionBarPageChangeLossSetting\0431.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_listActionBarPageChangeLossSetting\0431.def"
new file mode 100644
index 0000000..adcfae2
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_listActionBarPageChangeLossSetting\0431.def"
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listActionBarPageChangeLossSetting id:listActionBarPageChangeLossSetting_1
+{
+  #keys: '[415136.0.1033650295]'
+  BaseType: 'listActionBarPage'
+  Properties:
+  [
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_listActionBarPageChangeLossSetting.def b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_listActionBarPageChangeLossSetting.def
deleted file mode 100644
index 0576b9a..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_listActionBarPageChangeLossSetting.def
+++ /dev/null
@@ -1,10 +0,0 @@
-Quintiq file version 2.0
-Component listActionBarPageChangeLossSetting
-{
-  #keys: '[415136.0.735611731]'
-  BaseType: 'listActionBarPage'
-  Properties:
-  [
-    Taborder: 1
-  ]
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_listContextMenuChangeLossSetting.def "b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_listContextMenuChangeLossSetting\0431.def"
similarity index 72%
rename from _Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_listContextMenuChangeLossSetting.def
rename to "_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_listContextMenuChangeLossSetting\0431.def"
index da9fbff..91dedf2 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_listContextMenuChangeLossSetting.def
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_listContextMenuChangeLossSetting\0431.def"
@@ -1,13 +1,13 @@
 Quintiq file version 2.0
-Component listContextMenuChangeLossSetting
+Component listContextMenuChangeLossSetting id:listContextMenuChangeLossSetting_1
 {
-  #keys: '[415136.0.735611736]'
+  #keys: '[415136.0.1033650297]'
   BaseType: 'listContextMenu'
   Children:
   [
     Component MenuNew
     {
-      #keys: '[415136.0.735612003]'
+      #keys: '[415136.0.1033650298]'
       BaseType: 'WebMenu'
       Properties:
       [
@@ -18,7 +18,7 @@
     }
     Component MenuEdit
     {
-      #keys: '[415136.0.735612046]'
+      #keys: '[415136.0.1033650299]'
       BaseType: 'WebMenu'
       Properties:
       [
@@ -29,7 +29,7 @@
     }
     Component MenuDelete
     {
-      #keys: '[415136.0.735612088]'
+      #keys: '[415136.0.1033650300]'
       BaseType: 'WebMenu'
       Properties:
       [
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_ListChangeLossSetting_568_MenuDelete_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_ListChangeLossSetting_568_MenuDelete_OnClick.def
new file mode 100644
index 0000000..cf6ce84
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_ListChangeLossSetting_568_MenuDelete_OnClick.def
@@ -0,0 +1,21 @@
+Quintiq file version 2.0
+#parent: ListChangeLossSetting_568
+Response OnClick (
+  structured[ChangeLossSetting] selection
+) id:Response_ListChangeLossSetting_568_MenuDelete_OnClick
+{
+  #keys: '[415136.0.1033650291]'
+  CanBindMultiple: false
+  DefinitionID => /ListChangeLossSetting_568/Responsedef_ListChangeLossSetting_568_WebMenu_OnClick
+  Initiator: 'MenuDelete'
+  QuillAction
+  {
+    Body:
+    [*
+      traverse( selection, Elements, e ){
+        e.Delete();
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_ListChangeLossSetting_568_MenuEdit_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_ListChangeLossSetting_568_MenuEdit_OnClick.def
new file mode 100644
index 0000000..f80189c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_ListChangeLossSetting_568_MenuEdit_OnClick.def
@@ -0,0 +1,24 @@
+Quintiq file version 2.0
+#parent: ListChangeLossSetting_568
+Response OnClick (
+  ChangeLossSetting selection
+) id:Response_ListChangeLossSetting_568_MenuEdit_OnClick
+{
+  #keys: '[415136.0.1033650290]'
+  CanBindMultiple: false
+  DefinitionID => /ListChangeLossSetting_568/Responsedef_ListChangeLossSetting_568_WebMenu_OnClick
+  Initiator: 'MenuEdit'
+  Precondition:
+  [*
+    return MacroPlan::HasMacroPlan( MacroPlan, feedback );
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      dlg := construct( DialogCreateEditChangeoverLossSetting );
+      dlg.Edit( selection );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_ListChangeLossSetting_568_MenuNew_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_ListChangeLossSetting_568_MenuNew_OnClick.def
new file mode 100644
index 0000000..17360b7
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_ListChangeLossSetting_568_MenuNew_OnClick.def
@@ -0,0 +1,22 @@
+Quintiq file version 2.0
+#parent: ListChangeLossSetting_568
+Response OnClick () id:Response_ListChangeLossSetting_568_MenuNew_OnClick
+{
+  #keys: '[415136.0.1033650289]'
+  CanBindMultiple: false
+  DefinitionID => /ListChangeLossSetting_568/Responsedef_ListChangeLossSetting_568_WebMenu_OnClick
+  Initiator: 'MenuNew'
+  Precondition:
+  [*
+    return MacroPlan::HasMacroPlan( MacroPlan, feedback );
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      dlg := construct( DialogCreateEditChangeoverLossSetting );
+      dlg.New( FormChangeoverLossSetting );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_ListChangeLossSetting_MenuDelete_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_ListChangeLossSetting_MenuDelete_OnClick.def
deleted file mode 100644
index ae6d5c1..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_ListChangeLossSetting_MenuDelete_OnClick.def
+++ /dev/null
@@ -1,21 +0,0 @@
-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
deleted file mode 100644
index 94565f7..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_ListChangeLossSetting_MenuEdit_OnClick.def
+++ /dev/null
@@ -1,24 +0,0 @@
-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
deleted file mode 100644
index 0ad7fde..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_ListChangeLossSetting_MenuNew_OnClick.def
+++ /dev/null
@@ -1,22 +0,0 @@
-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_FormChangeLossSetting/Response_PanelHeader_ButtonHeader_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_PanelHeader_ButtonHeader_OnClick.def
new file mode 100644
index 0000000..482d218
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_PanelHeader_ButtonHeader_OnClick.def
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: PanelHeader/ButtonHeader
+Response OnClick () id:Response_PanelHeader_ButtonHeader_OnClick
+{
+  #keys: '[415136.0.1033690473]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  Precondition:
+  [*
+    return not isnull( MacroPlan );
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      //
+      binaryValue := ChangeLossSettingExcel::ExportTemplate( MacroPlan, true );
+      
+      Application.Download( ChangeLossSettingExcel::GetDefalutName(), binaryValue.AsBinaryData() );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_PanelHeader_ButtonImport_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_PanelHeader_ButtonImport_OnClick.def
new file mode 100644
index 0000000..ef11ed7
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_PanelHeader_ButtonImport_OnClick.def
@@ -0,0 +1,33 @@
+Quintiq file version 2.0
+#parent: PanelHeader/ButtonImport
+Response OnClick () id:Response_PanelHeader_ButtonImport_OnClick
+{
+  #keys: '[415136.0.1035340153]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  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();
+          
+          ChangeLossSettingExcel::Import( MacroPlan, webFileBinaryData );
+          
+          WebMessageBox::Success( Translations::A_VWED_Success() );
+        }
+      } onerror {
+        WebMessageBox::Error( e.GeneralInformation() );
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/_ROOT_Component_FormChangeLossSetting.def b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/_ROOT_Component_FormChangeLossSetting.def
deleted file mode 100644
index 62cfd05..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/_ROOT_Component_FormChangeLossSetting.def
+++ /dev/null
@@ -1,17 +0,0 @@
-Quintiq file version 2.0
-#root
-#parent: MacroPlannerWebApp
-OrphanComponent FormChangeLossSetting
-{
-  #keys: '[415136.0.735611670]'
-  BaseType: 'WebForm'
-  Children:
-  [
-    #child: ListChangeLossSetting
-  ]
-  Properties:
-  [
-    Image: 'GEAR'
-    Title: 'Change loss setting'
-  ]
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/_ROOT_Component_FormChangeoverLossSetting.def b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/_ROOT_Component_FormChangeoverLossSetting.def
new file mode 100644
index 0000000..9b6f964
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/_ROOT_Component_FormChangeoverLossSetting.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent FormChangeoverLossSetting
+{
+  #keys: '[415136.0.735611670]'
+  BaseType: 'WebForm'
+  Children:
+  [
+    #child: PanelHeader
+    #child: PanelList
+  ]
+  Properties:
+  [
+    Image: 'GEAR'
+    Title: 'Changeover loss setting'
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceLoginfo/Component_ListInterfaceLoginfo.def b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceLoginfo/Component_ListInterfaceLoginfo.def
index 9c5085b..a3d7985 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceLoginfo/Component_ListInterfaceLoginfo.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceLoginfo/Component_ListInterfaceLoginfo.def
@@ -11,7 +11,8 @@
       BaseType: 'WebDataExtractor'
       Properties:
       [
-        DataType: 'external[InterfaceDataset]'
+        DataType: 'InterfaceDataset'
+        FixedFilter: 'object.IsShow()'
         Source: 'InterfaceDataset'
         Taborder: 0
         Transformation: 'InterfaceLoginfo'
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormRoutings/Component_listContextMenuRoutings.def b/_Main/UI/MacroPlannerWebApp/Component_FormRoutings/Component_listContextMenuRoutings.def
index edcc552..1fe70ea 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormRoutings/Component_listContextMenuRoutings.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormRoutings/Component_listContextMenuRoutings.def
@@ -13,7 +13,7 @@
         Taborder: 11
       ]
     }
-    Component MenuThermalTrialRatio
+    Component MenuHotTestRatio
     {
       #keys: '[415136.0.761890786]'
       BaseType: 'WebMenu'
@@ -21,7 +21,7 @@
       [
         Image: 'OSZILLOGRAPH'
         Taborder: 12
-        Title: 'Thermal trial ratio'
+        Title: 'Hot test ratio'
       ]
     }
     Component MenuSetUphillRouting
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormRoutings/Response_MacroPlanner_ListRoutings_MenuThermalTrialRatio_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormRoutings/Response_MacroPlanner_ListRoutings_MenuHotTestRatio_OnClick.def
similarity index 73%
rename from _Main/UI/MacroPlannerWebApp/Component_FormRoutings/Response_MacroPlanner_ListRoutings_MenuThermalTrialRatio_OnClick.def
rename to _Main/UI/MacroPlannerWebApp/Component_FormRoutings/Response_MacroPlanner_ListRoutings_MenuHotTestRatio_OnClick.def
index c85b4f6..46b6cd4 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormRoutings/Response_MacroPlanner_ListRoutings_MenuThermalTrialRatio_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormRoutings/Response_MacroPlanner_ListRoutings_MenuHotTestRatio_OnClick.def
@@ -2,12 +2,12 @@
 #parent: ListRoutings
 Response OnClick (
   Routing selection
-) id:Response_ListRoutings_MenuThermalTrialRatio_OnClick
+) id:Response_MacroPlanner_ListRoutings_MenuHotTestRatio_OnClick
 {
   #keys: '[415136.0.761890849]'
   CanBindMultiple: false
   DefinitionID => /ListRoutings/Responsedef_ListRoutings_WebMenu_OnClick
-  Initiator: 'MenuThermalTrialRatio'
+  Initiator: 'MenuHotTestRatio'
   Precondition:
   [*
     return MacroPlan::HasMacroPlan( DataHolderActiveScenario.Data(), feedback );
@@ -16,7 +16,7 @@
   {
     Body:
     [*
-      dlg := construct( DialogCreateEditThermalTrialRatio );
+      dlg := construct( DialogCreateEditHotTestRatio );
       dlg.New( selection, FormRoutings );
     *]
     GroupServerCalls: false
diff --git a/_Main/UI/MacroPlannerWebApp/Views/Change_loss_setting_view.vw b/_Main/UI/MacroPlannerWebApp/Views/Change_loss_setting_view.vw
index cb2cbed..0d6a63f 100644
--- a/_Main/UI/MacroPlannerWebApp/Views/Change_loss_setting_view.vw
+++ b/_Main/UI/MacroPlannerWebApp/Views/Change_loss_setting_view.vw
@@ -4,11 +4,11 @@
   {
     forms
     {
-      form_FormChangeLossSetting
+      form_FormChangeoverLossSetting
       {
-        title: 'QMacroPlanner::FormChangeLossSetting'
+        title: 'QMacroPlanner::FormChangeoverLossSetting'
         shown: true
-        componentID: 'QMacroPlanner::FormChangeLossSetting'
+        componentID: 'QMacroPlanner::FormChangeoverLossSetting'
         layout
         {
           mode: 'open'
@@ -19,10 +19,18 @@
         }
         components
         {
-          FormChangeLossSetting_ListChangeLossSetting
+          FormChangeoverLossSetting_PanelHeader
+          {
+            sizeRatio: 1
+          }
+          FormChangeoverLossSetting_PanelList
+          {
+            sizeRatio: 1
+          }
+          FormChangeoverLossSetting_ListChangeLossSetting
           {
           }
-          FormChangeLossSetting_DataSetLevelChangeLossSetting
+          FormChangeoverLossSetting_DataSetLevelChangeLossSetting
           {
             groupDepth: -1
             column_Unit_ID
diff --git a/_var/_Main/Data/MP_ChangeLossSetting.xlsx b/_var/_Main/Data/MP_ChangeLossSetting.xlsx
new file mode 100644
index 0000000..3e99527
--- /dev/null
+++ b/_var/_Main/Data/MP_ChangeLossSetting.xlsx
Binary files differ
diff --git a/_var/_Main/Data/MP_ChangeoverLossSetting.xlsx b/_var/_Main/Data/MP_ChangeoverLossSetting.xlsx
new file mode 100644
index 0000000..47f6222
--- /dev/null
+++ b/_var/_Main/Data/MP_ChangeoverLossSetting.xlsx
Binary files differ

--
Gitblit v1.9.3