From a43f01cebe400883d31dbd3a1f1b593c61aa2a0d Mon Sep 17 00:00:00 2001
From: yanweiyuan3 <yanweiyuan3@gmail.com>
Date: 星期四, 21 九月 2023 10:06:00 +0800
Subject: [PATCH] Merge branch 'dev_yy' into dev
---
LibMacroPlanner/BL/Type_Scenario/Method_CanSelect.qbl | 3
_Main/BL/Type_GlobalDTOTable/StaticMethod_GetVersionData.qbl | 47
_Main/BL/Type_VersionControl/Attribute_ReleaseTime.qbl | 8
_Main/BL/Type_VersionControl/StaticMethod_GetVersionInfo.qbl | 30
_Main/BL/InfoMessages.qbl | 2
_Main/BL/Type_OrderLockLog/Attribute_UnitOfMeasureName.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_ListVersionOfSOPDetails.def | 41
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_PanelVersionOfSOP.def | 14
_Main/BL/Type_VersionStatusDetail/DefaultValue_User.qbl | 6
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_OnOk.def | 15
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_PanelVersionOfSOPHeader.def | 65
_Main/UI/MacroPlannerWebApp/Views/OrderLock.vw | 351 +++++
_Main/BL/Type_MappingVersionControl/Attribute_Qty.qbl | 8
_Main/BL/Type_VersionStatusDetail/DefaultValue_Notes.qbl | 6
_Main/BL/Relations/Relation_VersionStatus_GlobalOTDTable_GlobalOTDTable_VersionStatus.qbl | 23
_Main/BL/Type_VersionControl/Attribute_Notes.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_listContextMenuVersionOfSOPDetails.def | 10
_Main/BL/Type_VersionControl/_ROOT_Type_VersionControl.qbl | 10
_Main/BL/Type_MappingVersionControl/Attribute_ProductID.qbl | 9
_Main/BL/Type_VersionControl/StaticMethod_ReleaseNewVersion.qbl | 20
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_PanelVersionOfSOPDetails.def | 15
_Main/BL/Type_OrderLockLog/Attribute_OrderID.qbl | 7
_Main/BL/Type_VersionStatusDetail/Attribute_CreateTime.qbl | 8
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/_ROOT_Component_FormOrderLock.def | 55
_Main/BL/Type_VersionStatus/Attribute_Notes.qbl | 8
_var/_Main/ModelSettings/Common/Development/_ROOT_Role_Development.properties | 6
_Main/BL/Type_VersionControl/Attribute_VersionID.qbl | 8
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Response_PanelVersionOfSOPHeader_ButtonVersionOfSOPHeaderRelease_OnClick.def | 21
_Main/BL/Type_OrderLockLog/Attribute_End.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_RadioButtonGroupOrderLockHeader_OnChanged.def | 69 +
_Main/BL/Type_VersionStatusDetail/StaticMethod_FindStatus.qbl | 18
_Main/BL/Type_VersionStatusDetail/StaticMethod_GetFullVersionID.qbl | 20
_Main/BL/Type_VersionStatus/StaticMethod_CreateOrUpdate.qbl | 37
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_MatrixEditorProductPlanning_679_MenuUnlock_OnClick.def | 30
_Main/BL/Type_MappingVersionControl/Attribute_DataTo.qbl | 8
_Main/BL/Type_OrderLockLog/Attribute_LastModify.qbl | 8
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_listContextMenuVersionOfSOP.def | 10
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_ListVersionOfSOP.def | 41
_Main/BL/Type_MappingVersionControl/Attribute_CreateTime.qbl | 8
_Main/BL/Type_VersionStatusDetail/Attribute_ReleaseTime.qbl | 8
_Main/BL/Type_VersionStatusDetail/Attribute_SortNumber.qbl | 7
_Main/BL/Type_MappingVersionControl/Attribute_VersionID.qbl | 9
LibMacroPlanner/BL/Type_Scenario/Attribute_IsReleased.qbl | 9
_Main/BL/EDI/Broker_Broker_OTD_VersionControlToDB.qbl | 133 +
LibMacroPlanner/BL/Type_ScenarioMP/Method_SetReleased.qbl | 6
_Main/BL/Type_Scenario/Attribute_IsOrderLocked.qbl | 8
_Main/BL/Type_VersionControl/StaticMethod_CreateNewVersion.qbl | 47
_Main/BL/Type_VersionStatusDetail/_ROOT_Type_VersionStatusDetail.qbl | 10
_Main/UI/MacroPlannerWebApp/Component_DialogVersionIDCopy/Response_pnlActions_btnOk_OnClick.def | 16
_Main/BL/Type_VersionControl/StaticMethod_FindLatestVersion.qbl | 22
_Main/BL/Type_CustomerOrder/Attribute_LastModifyTime.qbl | 8
_Main/BL/Type_VersionControl/Attribute_User.qbl | 8
_Main/BL/Type_VersionStatusDetail/Attribute_SingleVersionName.qbl | 8
_Main/BL/Type_MappingVersionControl/Attribute_EndTime.qbl | 9
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_matrixeditorContextMenuProductPlanning#1.def | 57
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_TIANMA_JITUAN_ListScenario_MenuSaveNewVersion_OnClick.def | 49
_Main/BL/Type_VersionStatus/Attribute_LastVersionName.qbl | 8
_Main/UI/MacroPlannerWebApp/Component_DialogVersionIDCopy/Component_pnlActions.def | 52
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_ButtonOrderLockHeaderClear_OnClick.def | 20
_Main/BL/Type_OrderLockLog/Attribute_ProductID.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Response_pnlActions_btnOk_OnClick.def | 22
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/_ROOT_Component_DialogCreateEditScenario.def | 1
_Main/BL/Type_VersionControl/Attribute_SingleVersionName.qbl | 8
_Main/BL/Type_GlobalDTOTable/StaticMethod_GetNextCalType.qbl | 41
_Main/BL/Type_VersionStatus/StaticMethod_GetBusinessTypeStatus.qbl | 64
_Main/BL/Type_OrderLockLog/Attribute_SalesSegmentName.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Component_pnlActions.def | 10
_Main/BL/EDI/Broker_Broker_OTD_VersionControl.qbl | 133 +
_Main/BL/Type_VersionStatusDetail/StaticMethod_CreateOrUpdate.qbl | 38
_Main/BL/Type_GlobalDTOTable/StaticMethod_GetOutputVersionData.qbl | 71 +
_Main/BL/Type_VersionStatus/Attribute_SortNumber.qbl | 8
_Main/UI/MacroPlannerWebApp/Component_DialogVersionIDCopy/Component_pnlContent.def | 24
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_ListOrderLock#844.def | 42
LibMacroPlanner/BL/InfoMessages.qbl | 4
_Main/BL/Type_VersionStatus/StaticMethod_FindLatestStatus.qbl | 18
_Main/BL/Type_OrderLockLog/Attribute_IsFirmed#2.qbl | 7
_Main/BL/Type_CustomerOrder/Attribute_LastModify.qbl | 8
_Main/BL/Type_MappingVersionControl/_ROOT_Type_MappingVersionControl.qbl | 10
_Main/BL/Type_Scenario/Attribute_IsCreateNewVersion.qbl | 8
_Main/BL/Type_OrderLockLog/_ROOT_Type_OrderLockLog.qbl | 10
_Main/BL/Type_Scenario/Method_SetReleased.qbl | 5
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_MatrixEditorProductPlanning_679_MenuLock_OnClick.def | 34
_Main/BL/Type_VersionControl/StaticMethod_FindReleasedVersions.qbl | 19
_Main/UI/MacroPlannerWebApp/Component_DialogVersionIDCopy/Response_pnlActions_btnCancel_OnClick.def | 15
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLock.def | 16
_Main/BL/Type_VersionStatusDetail/Attribute_Notes.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_TIANMA_JITUAN_ListScenario_MenuRelaeaseNewVersion_OnClick.def | 52
_Main/BL/Type_Scenario/Attribute_VersionID.qbl | 8
_Main/BL/Type_Scenario/DefaultValue_VersionID.qbl | 6
_Main/BL/Type_VersionControl/Attribute_IsReleased.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_listActionBarPageOrderLock#1.def | 10
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_MatrixEditorProductPlanning#679.def | 210 +++
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLockPlanning.def | 17
_Main/BL/Type_OrderLockLog/DefaultValue_LastModify.qbl | 6
_Main/BL/Type_VersionControl/StaticMethod_ReleaseLatestVersion.qbl | 10
_Main/BL/Type_VersionStatus/Attribute_LastReleaseTime.qbl | 8
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLockHeader#545.def | 125 +
_Main/BL/Type_VersionControl/Attribute_CreateTime.qbl | 8
_Main/BL/Type_MappingVersionControl/Attribute_VersionName.qbl | 8
_Main/BL/Type_OrderLockLog/Attribute_Price.qbl | 7
_Main/BL/Type_VersionStatus/Attribute_BusinessType.qbl | 8
_Main/BL/Relations/Relation_MappingVersionControl_GlobalOTDTable_GlobalOTDTable_MappingVersionC.qbl | 23
_Main/BL/Type_MappingVersionControl/Attribute_DataFrom.qbl | 8
_Main/UI/MacroPlannerWebApp/Component_DialogVersionIDCopy/Method_JustShow.def | 10
_Main/BL/Type_OrderLockLog/Attribute_EndDate.qbl | 7
_Main/BL/Type_VersionStatusDetail/Attribute_User.qbl | 8
_Main/BL/Type_VersionControl/StaticMethod_CreateNewSceneVersion.qbl | 37
_Main/BL/Type_VersionControl/StaticMethod_FindLatestUpdateVersion.qbl | 22
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Response_PanelVersionOfSOPHeader_ButtonVersionOfSOPHeaderCopy_OnClick.def | 21
_Main/BL/Relations/Relation_VersionStatusDetail_VersionStatus_VersionStatus_VersionStatusDetail.qbl | 23
_Main/BL/Type_MappingVersionControl/Attribute_User.qbl | 8
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderCustomerOrder_O.def | 51
_Main/BL/Type_VersionControl/StaticMethod_Create.qbl | 29
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderPlanDeliver_OnC.def | 51
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCopyScenario_OnClick.def | 12
LibMacroPlanner/BL/Type_Scenario/Method_SetReleased.qbl | 12
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_matrixEditorActionBarPageProductPlanning#1.def | 10
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_listActionBarPageVersionOfSOPDetails.def | 10
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_listActionBarPageVersionOfSOP.def | 10
_Main/UI/MacroPlannerWebApp/Views/SOP_Versions.vw | 351 +++++
_Main/BL/Relations/Relation_OrderLockLog_MacroPlan_MacroPlan_OrderLockLog.qbl | 23
_Main/BL/Type_MappingVersionControl/TypeIndex_TypeIndexVersionControl.qbl | 28
_Main/BL/Type_VersionStatusDetail/Attribute_VersionID.qbl | 8
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Component_PanelGeneral#549.def | 11
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/_ROOT_Component_FormVersionOfSOP.def | 82 +
_Main/BL/Type_OrderLockLog/Attribute_Quantity.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelMatrix#780.def | 24
.gitignore | 2
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_NewScenario#549.def | 1
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Response_PanelVersionOfSOPHeader_ButtonVersionOfSOPHeaderFresh_OnClick.def | 23
_Main/BL/Type_VersionControl/Attribute_LongVersionName.qbl | 8
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLockOrder.def | 15
_Main/BL/Type_VersionStatusDetail/DefaultValue_SingleVersionName.qbl | 6
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_MatrixEditorProductPlanning_679_OnCheckEditability.def | 43
_Main/BL/Type_OrderLockLog/Attribute_LastModifyTime.qbl | 8
_Main/BL/Type_VersionControl/StaticMethod_CopyVersion.qbl | 59
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_NewScenario.def | 1
_Main/BL/Type_VersionStatus/_ROOT_Type_VersionStatus.qbl | 10
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_MatrixEditorProductPlanning_679_OnUserSelectionChanged.def | 19
_Main/BL/Type_MappingVersionControl/Attribute_ReleaseTime.qbl | 8
_Main/BL/Type_OrderLockLog/Attribute_StockingPointID.qbl | 7
_Main/BL/Relations/Relation_VersionControl_GlobalOTDTable_GlobalOTDTable_VersionControl.qbl | 23
_Main/BL/Type_OrderLockLog/Attribute_CustomerName#23.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Component_ListScenario.def | 114 +
_Main/BL/Type_VersionControl/StaticMethod_FindByFullVersionID.qbl | 17
_Main/UI/MacroPlannerWebApp/Component_DialogVersionIDCopy/_ROOT_Component_DialogVersionIDCopy.def | 24
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_ButtonOrderLockHeader_OnClick.def | 58
_Main/BL/Type_GlobalDTOTable/StaticMethod_GetBusinessTypeName.qbl | 32
_Main/BL/Type_MappingVersionControl/Attribute_StartTime.qbl | 9
_Main/BL/Type_VersionControl/Attribute_CalType.qbl | 8
_Main/UI/MacroPlannerWebApp/Component_DialogVersionIDCopy/Response_pnlActions_btnApply_OnClick.def | 19
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_listContextMenuOrderLock#1.def | 10
_Main/BL/Type_VersionStatus/Attribute_BusinessName.qbl | 8
_Main/BL/Type_VersionControl/Attribute_BusinessType.qbl | 8
_Main/BL/Type_MappingVersionControl/Attribute_StockingPointID.qbl | 9
_Main/BL/Type_VersionStatus/Attribute_LastUser.qbl | 8
156 files changed, 4,133 insertions(+), 4 deletions(-)
diff --git a/.gitignore b/.gitignore
index 00e3f69..6868dd4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -23,3 +23,5 @@
**/LibUserSettings/**
/.idea
+_Main/UI/MacroPlannerWebApp/_ROOT_Project_MacroPlannerWebApp.qp
+*.properties
diff --git a/LibMacroPlanner/BL/InfoMessages.qbl b/LibMacroPlanner/BL/InfoMessages.qbl
index 05bad47..cfaabd1 100644
--- a/LibMacroPlanner/BL/InfoMessages.qbl
+++ b/LibMacroPlanner/BL/InfoMessages.qbl
@@ -529,6 +529,10 @@
{
DefaultText: 'Revert'
}
+ InfoMessage Scenario_General_IsReleased
+ {
+ DefaultText: 'Not allowed on a released scenario'
+ }
InfoMessage Strategy_CampaignOptimizer_DisableTooltip
{
DefaultText: 'When disabled, the optimizer is only allowed to replan the quantities of the campaigns based on the constraints of the campaigns created manually.'
diff --git a/LibMacroPlanner/BL/Type_Scenario/Attribute_IsReleased.qbl b/LibMacroPlanner/BL/Type_Scenario/Attribute_IsReleased.qbl
new file mode 100644
index 0000000..37963e6
--- /dev/null
+++ b/LibMacroPlanner/BL/Type_Scenario/Attribute_IsReleased.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute IsReleased
+{
+ #keys: '3[412960.0.172790038][412960.0.172790037][412960.0.172790039]'
+ Description: '璇ョ増鏈槸鍚﹀凡鍙戝竷'
+ ValueType: Boolean
+ InterfaceProperties { Accessibility: 'Module' }
+}
diff --git a/LibMacroPlanner/BL/Type_Scenario/Method_CanSelect.qbl b/LibMacroPlanner/BL/Type_Scenario/Method_CanSelect.qbl
index ee79d24..072d7c9 100644
--- a/LibMacroPlanner/BL/Type_Scenario/Method_CanSelect.qbl
+++ b/LibMacroPlanner/BL/Type_Scenario/Method_CanSelect.qbl
@@ -32,6 +32,9 @@
{
feedback_o := Translations::Scenario_General_IsDeleted();
}
+ else if( this.IsReleased() ){
+ feedback_o := Translations::Scenario_General_IsReleased();
+ }
return feedback_o = '';
*]
diff --git a/LibMacroPlanner/BL/Type_Scenario/Method_SetReleased.qbl b/LibMacroPlanner/BL/Type_Scenario/Method_SetReleased.qbl
new file mode 100644
index 0000000..c30613e
--- /dev/null
+++ b/LibMacroPlanner/BL/Type_Scenario/Method_SetReleased.qbl
@@ -0,0 +1,12 @@
+Quintiq file version 2.0
+#parent: #root
+Method SetReleased
+{
+ Description: '璁剧疆鏌愬満鏅殑鍙戝竷鐘舵��'
+ IsAbstract: true
+ TextBody:
+ [*
+ // Administrator Sep-15-2023 (created)
+ this.IsReleased( true );
+ *]
+}
diff --git a/LibMacroPlanner/BL/Type_ScenarioMP/Method_SetReleased.qbl b/LibMacroPlanner/BL/Type_ScenarioMP/Method_SetReleased.qbl
new file mode 100644
index 0000000..b84962e
--- /dev/null
+++ b/LibMacroPlanner/BL/Type_ScenarioMP/Method_SetReleased.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+MethodOverride SetReleased
+{
+ TextBody: 'this.IsReleased( true );'
+}
diff --git a/_Main/BL/EDI/Broker_Broker_OTD_VersionControl.qbl b/_Main/BL/EDI/Broker_Broker_OTD_VersionControl.qbl
new file mode 100644
index 0000000..b3723db
--- /dev/null
+++ b/_Main/BL/EDI/Broker_Broker_OTD_VersionControl.qbl
@@ -0,0 +1,133 @@
+Quintiq file version 2.0
+#parent: #root
+EDIBroker Broker_OTD_VersionControl
+{
+ MDSDefinition: GlobalOTDTable
+ TimeZone: 'ACT'
+ UseOSTimeZone: false
+ EDIModelLink.Destination MappingVersionControl
+ {
+ EDIMLTable MappingVersionControl
+ {
+ PrimaryKeyColumns: EndTime
+ PrimaryKeyColumns: ProductID
+ PrimaryKeyColumns: StartTime
+ PrimaryKeyColumns: StockingPointID
+ PrimaryKeyColumns: VersionID
+ TargetType: MappingVersionControl
+ TypeIndex: TypeIndexVersionControl
+ EDIMLColumn CreateTime { Attribute: CreateTime ValueType: DateTime }
+ EDIMLColumn DataFrom { Attribute: DataFrom ValueType: String }
+ EDIMLColumn DataTo { Attribute: DataTo ValueType: String }
+ EDIMLColumn EndTime { Attribute: EndTime ValueType: DateTime }
+ EDIMLColumn ProductID { Attribute: ProductID ValueType: String }
+ EDIMLColumn Qty { Attribute: Qty ValueType: Real }
+ EDIMLColumn ReleaseTime { Attribute: ReleaseTime ValueType: DateTime }
+ EDIMLColumn StartTime { Attribute: StartTime ValueType: DateTime }
+ EDIMLColumn StockingPointID { Attribute: StockingPointID ValueType: String }
+ EDIMLColumn User { Attribute: User ValueType: String }
+ EDIMLColumn VersionID { Attribute: VersionID ValueType: String }
+ EDIMLColumn VersionName { Attribute: VersionName ValueType: String }
+ }
+ }
+ EDIODBCLink.Source MID_VERSIONCONTROL
+ {
+ DataIntegrityStrategy: 'Disabled'
+ SettingsEngineLink: 'domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle'
+ EDIODBCLinkTable MID_VERSIONCONTROL
+ {
+ OthersMayCreateTable: true
+ OthersMayDeleteRow: true
+ OthersMayDropTable: true
+ OthersMayFlushTable: true
+ OthersMayInsertRow: true
+ Parameters: '/owner="TIANMA"'
+ PrimaryKeyColumns: ENDTIME
+ PrimaryKeyColumns: ID
+ PrimaryKeyColumns: PRODUCTID
+ PrimaryKeyColumns: STARTTIME
+ PrimaryKeyColumns: STOCKINGPOINTID
+ RecordModificationHintStrategy: 'None'
+ EDIODBCLinkColumn CREATETIME
+ {
+ OthersMayUpdateColumn: true
+ ValueType: DateTime
+ }
+ EDIODBCLinkColumn DATAFROM
+ {
+ OthersMayUpdateColumn: true
+ ValueType: String
+ }
+ EDIODBCLinkColumn DATATO
+ {
+ OthersMayUpdateColumn: true
+ ValueType: String
+ }
+ EDIODBCLinkColumn ENDTIME
+ {
+ OthersMayUpdateColumn: true
+ ValueType: DateTime
+ }
+ EDIODBCLinkColumn ID
+ {
+ OthersMayUpdateColumn: true
+ ValueType: String
+ }
+ EDIODBCLinkColumn NAME
+ {
+ OthersMayUpdateColumn: true
+ ValueType: String
+ }
+ EDIODBCLinkColumn PRODUCTID
+ {
+ OthersMayUpdateColumn: true
+ ValueType: String
+ }
+ EDIODBCLinkColumn QTY
+ {
+ OthersMayUpdateColumn: true
+ ValueType: Real
+ }
+ EDIODBCLinkColumn RELEASETIME
+ {
+ OthersMayUpdateColumn: true
+ ValueType: DateTime
+ }
+ EDIODBCLinkColumn STARTTIME
+ {
+ OthersMayUpdateColumn: true
+ ValueType: DateTime
+ }
+ EDIODBCLinkColumn STOCKINGPOINTID
+ {
+ OthersMayUpdateColumn: true
+ ValueType: String
+ }
+ EDIODBCLinkColumn USER
+ {
+ OthersMayUpdateColumn: true
+ ValueType: String
+ }
+ }
+ }
+ EDITransformation.Transformation TransformationVersionControl
+ {
+ EDITableTransformation
+ {
+ InputTable: MID_VERSIONCONTROL
+ OutputTable: MappingVersionControl
+ EDIColumnMatch { InputColumn: CREATETIME OutputColumn: CreateTime }
+ EDIColumnMatch { InputColumn: DATAFROM OutputColumn: DataFrom }
+ EDIColumnMatch { InputColumn: DATATO OutputColumn: DataTo }
+ EDIColumnMatch { InputColumn: ENDTIME OutputColumn: EndTime }
+ EDIColumnMatch { InputColumn: ID OutputColumn: VersionID }
+ EDIColumnMatch { InputColumn: NAME OutputColumn: VersionName }
+ EDIColumnMatch { InputColumn: PRODUCTID OutputColumn: ProductID }
+ EDIColumnMatch { InputColumn: QTY OutputColumn: Qty }
+ EDIColumnMatch { InputColumn: RELEASETIME OutputColumn: ReleaseTime }
+ EDIColumnMatch { InputColumn: STARTTIME OutputColumn: StartTime }
+ EDIColumnMatch { InputColumn: STOCKINGPOINTID OutputColumn: StockingPointID }
+ EDIColumnMatch { InputColumn: USER OutputColumn: User }
+ }
+ }
+}
diff --git a/_Main/BL/EDI/Broker_Broker_OTD_VersionControlToDB.qbl b/_Main/BL/EDI/Broker_Broker_OTD_VersionControlToDB.qbl
new file mode 100644
index 0000000..f767cde
--- /dev/null
+++ b/_Main/BL/EDI/Broker_Broker_OTD_VersionControlToDB.qbl
@@ -0,0 +1,133 @@
+Quintiq file version 2.0
+#parent: #root
+EDIBroker Broker_OTD_VersionControlToDB
+{
+ MDSDefinition: GlobalOTDTable
+ TimeZone: 'ACT'
+ UseOSTimeZone: false
+ EDIModelLink.Source MappingVersionControlToDB
+ {
+ EDIMLTable MappingVersionControl
+ {
+ PrimaryKeyColumns: EndTime
+ PrimaryKeyColumns: ProductID
+ PrimaryKeyColumns: StartTime
+ PrimaryKeyColumns: StockingPointID
+ PrimaryKeyColumns: VersionID
+ TargetType: MappingVersionControl
+ TypeIndex: TypeIndexVersionControl
+ EDIMLColumn CreateTime { Attribute: CreateTime ValueType: DateTime }
+ EDIMLColumn DataFrom { Attribute: DataFrom ValueType: String }
+ EDIMLColumn DataTo { Attribute: DataTo ValueType: String }
+ EDIMLColumn EndTime { Attribute: EndTime ValueType: DateTime }
+ EDIMLColumn ProductID { Attribute: ProductID ValueType: String }
+ EDIMLColumn Qty { Attribute: Qty ValueType: Real }
+ EDIMLColumn ReleaseTime { Attribute: ReleaseTime ValueType: DateTime }
+ EDIMLColumn StartTime { Attribute: StartTime ValueType: DateTime }
+ EDIMLColumn StockingPointID { Attribute: StockingPointID ValueType: String }
+ EDIMLColumn User { Attribute: User ValueType: String }
+ EDIMLColumn VersionID { Attribute: VersionID ValueType: String }
+ EDIMLColumn VersionName { Attribute: VersionName ValueType: String }
+ }
+ }
+ EDIODBCLink.Destination MID_VERSIONCONTROLTODB
+ {
+ DataIntegrityStrategy: 'Disabled'
+ SettingsEngineLink: 'domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle'
+ EDIODBCLinkTable MID_VERSIONCONTROL
+ {
+ MayCreateTable: true
+ MayDeleteRow: true
+ MayDropTable: true
+ MayFlushTable: true
+ MayInsertRow: true
+ Parameters: '/owner="TIANMA"'
+ PrimaryKeyColumns: ENDTIME
+ PrimaryKeyColumns: ID
+ PrimaryKeyColumns: PRODUCTID
+ PrimaryKeyColumns: STARTTIME
+ PrimaryKeyColumns: STOCKINGPOINTID
+ RecordModificationHintStrategy: 'None'
+ EDIODBCLinkColumn CREATETIME
+ {
+ MayUpdateColumn: true
+ ValueType: DateTime
+ }
+ EDIODBCLinkColumn DATAFROM
+ {
+ MayUpdateColumn: true
+ ValueType: String
+ }
+ EDIODBCLinkColumn DATATO
+ {
+ MayUpdateColumn: true
+ ValueType: String
+ }
+ EDIODBCLinkColumn ENDTIME
+ {
+ MayUpdateColumn: true
+ ValueType: DateTime
+ }
+ EDIODBCLinkColumn ID
+ {
+ MayUpdateColumn: true
+ ValueType: String
+ }
+ EDIODBCLinkColumn NAME
+ {
+ MayUpdateColumn: true
+ ValueType: String
+ }
+ EDIODBCLinkColumn PRODUCTID
+ {
+ MayUpdateColumn: true
+ ValueType: String
+ }
+ EDIODBCLinkColumn QTY
+ {
+ MayUpdateColumn: true
+ ValueType: Real
+ }
+ EDIODBCLinkColumn RELEASETIME
+ {
+ MayUpdateColumn: true
+ ValueType: DateTime
+ }
+ EDIODBCLinkColumn STARTTIME
+ {
+ MayUpdateColumn: true
+ ValueType: DateTime
+ }
+ EDIODBCLinkColumn STOCKINGPOINTID
+ {
+ MayUpdateColumn: true
+ ValueType: String
+ }
+ EDIODBCLinkColumn USER
+ {
+ MayUpdateColumn: true
+ ValueType: String
+ }
+ }
+ }
+ EDITransformation.Transformation TransformationVersionControlToDB
+ {
+ EDITableTransformation
+ {
+ InputTable: MappingVersionControl
+ OutputTable: MID_VERSIONCONTROL
+ EDIColumnMatch { InputColumn: CreateTime OutputColumn: CREATETIME }
+ EDIColumnMatch { InputColumn: DataFrom OutputColumn: DATAFROM }
+ EDIColumnMatch { InputColumn: DataTo OutputColumn: DATATO }
+ EDIColumnMatch { InputColumn: EndTime OutputColumn: ENDTIME }
+ EDIColumnMatch { InputColumn: ProductID OutputColumn: PRODUCTID }
+ EDIColumnMatch { InputColumn: Qty OutputColumn: QTY }
+ EDIColumnMatch { InputColumn: ReleaseTime OutputColumn: RELEASETIME }
+ EDIColumnMatch { InputColumn: StartTime OutputColumn: STARTTIME }
+ EDIColumnMatch { InputColumn: StockingPointID OutputColumn: STOCKINGPOINTID }
+ EDIColumnMatch { InputColumn: User OutputColumn: USER }
+ EDIColumnMatch { InputColumn: VersionID OutputColumn: ID }
+ EDIColumnMatch { InputColumn: VersionName OutputColumn: NAME }
+ }
+ }
+}
diff --git a/_Main/BL/InfoMessages.qbl b/_Main/BL/InfoMessages.qbl
index 65cc139..952d7d5 100644
--- a/_Main/BL/InfoMessages.qbl
+++ b/_Main/BL/InfoMessages.qbl
@@ -10,4 +10,4 @@
{
DefaultText: 'Please input validate value !'
}
-}
+}
\ No newline at end of file
diff --git a/_Main/BL/Relations/Relation_MappingVersionControl_GlobalOTDTable_GlobalOTDTable_MappingVersionC.qbl b/_Main/BL/Relations/Relation_MappingVersionControl_GlobalOTDTable_GlobalOTDTable_MappingVersionC.qbl
new file mode 100644
index 0000000..39dd1eb
--- /dev/null
+++ b/_Main/BL/Relations/Relation_MappingVersionControl_GlobalOTDTable_GlobalOTDTable_MappingVersionC.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation MappingVersionControl_GlobalOTDTable_GlobalOTDTable_MappingVersionControl
+{
+ #keys: '1[412960.0.150120043]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide GlobalOTDTable
+ {
+ #keys: '3[412960.0.150120045][412960.0.150120044][412960.0.150120046]'
+ Cardinality: '0to1'
+ ObjectDefinition: MappingVersionControl
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide MappingVersionControl
+ {
+ #keys: '3[412960.0.150120048][412960.0.150120047][412960.0.150120049]'
+ Cardinality: '1toN'
+ ObjectDefinition: GlobalOTDTable
+ OwningSide: 'Owned'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_OrderLockLog_MacroPlan_MacroPlan_OrderLockLog.qbl b/_Main/BL/Relations/Relation_OrderLockLog_MacroPlan_MacroPlan_OrderLockLog.qbl
new file mode 100644
index 0000000..cb254ef
--- /dev/null
+++ b/_Main/BL/Relations/Relation_OrderLockLog_MacroPlan_MacroPlan_OrderLockLog.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation OrderLockLog_MacroPlan_MacroPlan_OrderLockLog
+{
+ #keys: '1[412960.0.217504333]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide MacroPlan
+ {
+ #keys: '3[412960.0.217504335][412960.0.217504334][412960.0.217504336]'
+ Cardinality: '0to1'
+ ObjectDefinition: OrderLockLog
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide OrderLockLog
+ {
+ #keys: '3[412960.0.217504338][412960.0.217504337][412960.0.217504339]'
+ Cardinality: '1toN'
+ ObjectDefinition: MacroPlan
+ OwningSide: 'Owned'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_VersionControl_GlobalOTDTable_GlobalOTDTable_VersionControl.qbl b/_Main/BL/Relations/Relation_VersionControl_GlobalOTDTable_GlobalOTDTable_VersionControl.qbl
new file mode 100644
index 0000000..bb27705
--- /dev/null
+++ b/_Main/BL/Relations/Relation_VersionControl_GlobalOTDTable_GlobalOTDTable_VersionControl.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation VersionControl_GlobalOTDTable_GlobalOTDTable_VersionControl
+{
+ #keys: '1[412960.0.134860006]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide GlobalOTDTable
+ {
+ #keys: '3[412960.0.134860008][412960.0.134860007][412960.0.134860009]'
+ Cardinality: '0to1'
+ ObjectDefinition: VersionControl
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide VersionControl
+ {
+ #keys: '3[412960.0.134860011][412960.0.134860010][412960.0.134860012]'
+ Cardinality: '1toN'
+ ObjectDefinition: GlobalOTDTable
+ OwningSide: 'Owned'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_VersionStatusDetail_VersionStatus_VersionStatus_VersionStatusDetail.qbl b/_Main/BL/Relations/Relation_VersionStatusDetail_VersionStatus_VersionStatus_VersionStatusDetail.qbl
new file mode 100644
index 0000000..41e591c
--- /dev/null
+++ b/_Main/BL/Relations/Relation_VersionStatusDetail_VersionStatus_VersionStatus_VersionStatusDetail.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation VersionStatusDetail_VersionStatus_VersionStatus_VersionStatusDetail
+{
+ #keys: '1[412960.0.143214355]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide VersionStatus
+ {
+ #keys: '3[412960.0.143214357][412960.0.143214356][412960.0.143214358]'
+ Cardinality: '0to1'
+ ObjectDefinition: VersionStatusDetail
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide VersionStatusDetail
+ {
+ #keys: '3[412960.0.143214360][412960.0.143214359][412960.0.143214361]'
+ Cardinality: '1toN'
+ ObjectDefinition: VersionStatus
+ OwningSide: 'Owned'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_VersionStatus_GlobalOTDTable_GlobalOTDTable_VersionStatus.qbl b/_Main/BL/Relations/Relation_VersionStatus_GlobalOTDTable_GlobalOTDTable_VersionStatus.qbl
new file mode 100644
index 0000000..effee95
--- /dev/null
+++ b/_Main/BL/Relations/Relation_VersionStatus_GlobalOTDTable_GlobalOTDTable_VersionStatus.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation VersionStatus_GlobalOTDTable_GlobalOTDTable_VersionStatus
+{
+ #keys: '1[412960.0.134830056]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide GlobalOTDTable
+ {
+ #keys: '3[412960.0.134830058][412960.0.134830057][412960.0.134830059]'
+ Cardinality: '0to1'
+ ObjectDefinition: VersionStatus
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide VersionStatus
+ {
+ #keys: '3[412960.0.134830061][412960.0.134830060][412960.0.134830062]'
+ Cardinality: '1toN'
+ ObjectDefinition: GlobalOTDTable
+ OwningSide: 'Owned'
+ }
+}
diff --git a/_Main/BL/Type_CustomerOrder/Attribute_LastModify.qbl b/_Main/BL/Type_CustomerOrder/Attribute_LastModify.qbl
new file mode 100644
index 0000000..14a756a
--- /dev/null
+++ b/_Main/BL/Type_CustomerOrder/Attribute_LastModify.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute LastModify
+{
+ #keys: '3[412960.0.217504307][412960.0.217504306][412960.0.217504308]'
+ Description: '鏈�鍚庝慨鏀逛汉'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_CustomerOrder/Attribute_LastModifyTime.qbl b/_Main/BL/Type_CustomerOrder/Attribute_LastModifyTime.qbl
new file mode 100644
index 0000000..530eb19
--- /dev/null
+++ b/_Main/BL/Type_CustomerOrder/Attribute_LastModifyTime.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute LastModifyTime
+{
+ #keys: '3[412960.0.217504317][412960.0.217504316][412960.0.217504318]'
+ Description: '鏈�鍚庢搷浣滄椂闂�'
+ ValueType: DateTime
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/StaticMethod_GetBusinessTypeName.qbl b/_Main/BL/Type_GlobalDTOTable/StaticMethod_GetBusinessTypeName.qbl
new file mode 100644
index 0000000..20d4032
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/StaticMethod_GetBusinessTypeName.qbl
@@ -0,0 +1,32 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GetBusinessTypeName (
+ String name
+) as String
+{
+ Description: '浠庝簨涓氶儴涓枃鍚嶇О鍒扮缉鍐欑殑杞崲'
+ TextBody:
+ [*
+ // Administrator Sep-13-2023 (created)
+ result := "";
+ if( name = "闆嗗洟" ){
+ result := "TM";
+ }else if( name = "鎵嬫満浜嬩笟閮�" ){
+ result := "SJ";
+ }else if( name = "IT浜嬩笟閮�" ){
+ result := "IT";
+ }else if( name = "杞﹁浇浜嬩笟閮�" ){
+ result := "CZ";
+ }else if( name = "姹借溅鐢靛瓙浜嬩笟閮�" ){
+ result := "QD";
+ }else if( name = "涓撴樉浜嬩笟閮�" ){
+ result := "ZX";
+ }else if( name = "绌挎埓浜嬩笟閮�" ){
+ result := "CD";
+ }else if( name = "闈㈡澘" ){
+ result := "MB";
+ }
+
+ return result;
+ *]
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/StaticMethod_GetNextCalType.qbl b/_Main/BL/Type_GlobalDTOTable/StaticMethod_GetNextCalType.qbl
new file mode 100644
index 0000000..97b09dc
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/StaticMethod_GetNextCalType.qbl
@@ -0,0 +1,41 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GetNextCalType (
+ String latestcaltype,
+ String businesstype
+) as String
+{
+ Description: '鑾峰彇涓嬩竴涓绠楁楠�'
+ TextBody:
+ [*
+ // Administrator Sep-13-2023 (created)
+ result := "";
+ if( businesstype = "TM"){
+ if( latestcaltype = "" ){
+ result := "SCENE";
+ }else if( latestcaltype = "SCENE" ){
+ result := "TM_SOP_R1";
+ }else if( latestcaltype = "TM_SOP_R1" ){
+ result := "TM_SOP_R2";
+ }else if( latestcaltype = "TM_SOP_R2" ){
+ error( "This version is ended" );
+ }
+ }else{
+ if( latestcaltype = "TM_SOP_R1" ){
+ result := businesstype + "_SOP_R1";
+ }else if( latestcaltype = "TM_SOP_R2" ){
+ result := businesstype + "_MPS_R1";
+ }else if( latestcaltype = businesstype + "_MPS_R1" ){
+ result := businesstype + "_MRP_R1";
+ }else if( latestcaltype = businesstype + "_MRP_R1" ){
+ result := businesstype + "_MPS_R2";
+ }else if( latestcaltype = businesstype + "_MPS_R2" ){
+ result := businesstype + "_MRP_R2";
+ }else if( latestcaltype = businesstype + "_MRP_R2" ){
+ error( "This version is ended" );
+ }
+ }
+
+ return result;
+ *]
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/StaticMethod_GetOutputVersionData.qbl b/_Main/BL/Type_GlobalDTOTable/StaticMethod_GetOutputVersionData.qbl
new file mode 100644
index 0000000..a8610b8
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/StaticMethod_GetOutputVersionData.qbl
@@ -0,0 +1,71 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GetOutputVersionData (
+ GlobalOTDTable owner,
+ MacroPlan macroplan,
+ String businessname
+)
+{
+ Description: '褰㈡垚骞跺彂閫佺増鏈暟鎹�'
+ TextBody:
+ [*
+ // Administrator Sep-14-2023 (created)
+ businesstype := GlobalOTDTable::GetBusinessTypeName( businessname );
+
+ // Clean exist data
+ traverse( owner, MappingVersionControl, mpc, true ){
+ mpc.Delete();
+ }
+
+ // Get Latest version
+ latestversion := VersionControl::FindLatestUpdateVersion( owner, businesstype );
+ createtime := latestversion.CreateTime();
+ datafrom := businesstype;
+ releasetime := latestversion.ReleaseTime();
+ versionid := latestversion.VersionID() + "-" + latestversion.CalType();
+ info( versionid );
+ versionname := latestversion.LongVersionName();
+ user := latestversion.User();
+
+ // Get Data list to deal
+ listtodeal := selectset( macroplan,
+ Product_MP.ProductInStockingPoint_MP.ProductInStockingPointInPeriod,
+ pispip,
+ pispip.SalesDemandQuantity() > 0 );
+
+ if( latestversion.CalType() = "TM_SOP_R1" ){
+ listtodeal := selectset( macroplan,
+ Product_MP.ProductInStockingPoint_MP.ProductInStockingPointInPeriod,
+ pispip,
+ pispip.ProductInStockingPoint_MP().ProductID().StartsWith( "C1" ) );
+ }
+
+ traverse( listtodeal, Elements, item, true ){
+ endtime := item.End();
+ productid := item.ProductInStockingPoint_MP().ProductID();
+ qty := item.SalesDemandQuantity();
+ starttime := item.Start();
+ stockingpointid := item.StockingPointInPeriod().StockingPointID();
+ datato := "TM";
+ if( businesstype <> "TM" ){
+ datato := "TM";
+ }
+ owner.MappingVersionControl( relnew,
+ CreateTime := createtime,
+ DataFrom := datafrom,
+ DataTo := datato,
+ EndTime := endtime,
+ ProductID := productid,
+ Qty := qty,
+ ReleaseTime := releasetime,
+ StartTime := starttime,
+ StockingPointID := stockingpointid,
+ User := user,
+ VersionID := versionid,
+ VersionName := versionname )
+ }
+
+ // Send Data To DB
+ owner.Broker_OTD_VersionControlToDB().Execute();
+ *]
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/StaticMethod_GetVersionData.qbl b/_Main/BL/Type_GlobalDTOTable/StaticMethod_GetVersionData.qbl
new file mode 100644
index 0000000..b094140
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/StaticMethod_GetVersionData.qbl
@@ -0,0 +1,47 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GetVersionData (
+ GlobalOTDTable owner,
+ String businessname
+)
+{
+ Description: '鎶藉彇骞跺鐞嗙増鏈暟鎹�'
+ TextBody:
+ [*
+ // Administrator Sep-14-2023 (created)
+ businesstype := GlobalOTDTable::GetBusinessTypeName( businessname );
+ releasetime := DateTime::ActualTime();
+ // Clean exist data
+ traverse( owner, MappingVersionControl, mpc, true ){
+ mpc.Delete();
+ }
+
+ // Get Data From DB
+ owner.Broker_OTD_VersionControl().Execute();
+
+ // Get Data list to deal
+ listtodeal := selectset( owner, MappingVersionControl, item, item.DataTo() = businesstype );
+
+ traverse( listtodeal, Elements, item, true ){
+ versionid := item.VersionID();
+ existversion := VersionControl::FindByFullVersionID( owner, versionid );
+ if( isnull( existversion ) ){
+ longversionname := item.VersionName();
+ longversionnamelist := longversionname.Tokenize( "-" );
+ shortversionname := longversionnamelist.Element( longversionnamelist.Size() - 1 );
+ caltype := shortversionname.SubString( 0, 10 );
+ shortversionid := versionid.ReplaceAll( "-" + caltype, "" );
+ newversioncontrol := VersionControl::Create( owner,
+ item.DataFrom(),
+ caltype,
+ item.CreateTime(),
+ shortversionid,
+ longversionname,
+ shortversionname,
+ item.User() );
+ newversioncontrol.IsReleased( true );
+ newversioncontrol.ReleaseTime( releasetime );
+ }
+ }
+ *]
+}
diff --git a/_Main/BL/Type_MappingVersionControl/Attribute_CreateTime.qbl b/_Main/BL/Type_MappingVersionControl/Attribute_CreateTime.qbl
new file mode 100644
index 0000000..412204a
--- /dev/null
+++ b/_Main/BL/Type_MappingVersionControl/Attribute_CreateTime.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute CreateTime
+{
+ #keys: '3[412960.0.150120147][412960.0.150120146][412960.0.150120148]'
+ Description: '鍒涘缓鏃堕棿'
+ ValueType: DateTime
+}
diff --git a/_Main/BL/Type_MappingVersionControl/Attribute_DataFrom.qbl b/_Main/BL/Type_MappingVersionControl/Attribute_DataFrom.qbl
new file mode 100644
index 0000000..d35de79
--- /dev/null
+++ b/_Main/BL/Type_MappingVersionControl/Attribute_DataFrom.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute DataFrom
+{
+ #keys: '3[412960.0.150120067][412960.0.150120066][412960.0.150120068]'
+ Description: '鏁版嵁鍙戝嚭鐨勯儴闂ㄥ悕绉�'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_MappingVersionControl/Attribute_DataTo.qbl b/_Main/BL/Type_MappingVersionControl/Attribute_DataTo.qbl
new file mode 100644
index 0000000..c08ce30
--- /dev/null
+++ b/_Main/BL/Type_MappingVersionControl/Attribute_DataTo.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute DataTo
+{
+ #keys: '3[412960.0.150120077][412960.0.150120076][412960.0.150120078]'
+ Description: '鎺ユ敹鏁版嵁鐨勯儴闂ㄥ悕绉�'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_MappingVersionControl/Attribute_EndTime.qbl b/_Main/BL/Type_MappingVersionControl/Attribute_EndTime.qbl
new file mode 100644
index 0000000..bd00968
--- /dev/null
+++ b/_Main/BL/Type_MappingVersionControl/Attribute_EndTime.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute EndTime
+{
+ #keys: '3[412960.0.150120127][412960.0.150120126][412960.0.150120128]'
+ Description: '缁撴潫鏃堕棿'
+ IsReadOnly: true
+ ValueType: DateTime
+}
diff --git a/_Main/BL/Type_MappingVersionControl/Attribute_ProductID.qbl b/_Main/BL/Type_MappingVersionControl/Attribute_ProductID.qbl
new file mode 100644
index 0000000..8806689
--- /dev/null
+++ b/_Main/BL/Type_MappingVersionControl/Attribute_ProductID.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductID
+{
+ #keys: '3[412960.0.150120087][412960.0.150120086][412960.0.150120088]'
+ Description: '鐗╂枡缂栫爜'
+ IsReadOnly: true
+ ValueType: String
+}
diff --git a/_Main/BL/Type_MappingVersionControl/Attribute_Qty.qbl b/_Main/BL/Type_MappingVersionControl/Attribute_Qty.qbl
new file mode 100644
index 0000000..572c5c9
--- /dev/null
+++ b/_Main/BL/Type_MappingVersionControl/Attribute_Qty.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Qty
+{
+ #keys: '3[412960.0.150120097][412960.0.150120096][412960.0.150120098]'
+ Description: '鏁伴噺'
+ ValueType: Real
+}
diff --git a/_Main/BL/Type_MappingVersionControl/Attribute_ReleaseTime.qbl b/_Main/BL/Type_MappingVersionControl/Attribute_ReleaseTime.qbl
new file mode 100644
index 0000000..9bab647
--- /dev/null
+++ b/_Main/BL/Type_MappingVersionControl/Attribute_ReleaseTime.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ReleaseTime
+{
+ #keys: '3[412960.0.150120157][412960.0.150120156][412960.0.150120158]'
+ Description: '鍙戝竷鏃堕棿'
+ ValueType: DateTime
+}
diff --git a/_Main/BL/Type_MappingVersionControl/Attribute_StartTime.qbl b/_Main/BL/Type_MappingVersionControl/Attribute_StartTime.qbl
new file mode 100644
index 0000000..270b408
--- /dev/null
+++ b/_Main/BL/Type_MappingVersionControl/Attribute_StartTime.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute StartTime
+{
+ #keys: '3[412960.0.150120117][412960.0.150120116][412960.0.150120118]'
+ Description: '寮�濮嬫椂闂�'
+ IsReadOnly: true
+ ValueType: DateTime
+}
diff --git a/_Main/BL/Type_MappingVersionControl/Attribute_StockingPointID.qbl b/_Main/BL/Type_MappingVersionControl/Attribute_StockingPointID.qbl
new file mode 100644
index 0000000..b8f18c4
--- /dev/null
+++ b/_Main/BL/Type_MappingVersionControl/Attribute_StockingPointID.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute StockingPointID
+{
+ #keys: '3[412960.0.150120107][412960.0.150120106][412960.0.150120108]'
+ Description: '搴撳瓨鐐圭紪鐮�'
+ IsReadOnly: true
+ ValueType: String
+}
diff --git a/_Main/BL/Type_MappingVersionControl/Attribute_User.qbl b/_Main/BL/Type_MappingVersionControl/Attribute_User.qbl
new file mode 100644
index 0000000..484ce50
--- /dev/null
+++ b/_Main/BL/Type_MappingVersionControl/Attribute_User.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute User
+{
+ #keys: '3[412960.0.150120137][412960.0.150120136][412960.0.150120138]'
+ Description: '鐢ㄦ埛鍚嶇О'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_MappingVersionControl/Attribute_VersionID.qbl b/_Main/BL/Type_MappingVersionControl/Attribute_VersionID.qbl
new file mode 100644
index 0000000..c64363f
--- /dev/null
+++ b/_Main/BL/Type_MappingVersionControl/Attribute_VersionID.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute VersionID
+{
+ #keys: '3[412960.0.150120057][412960.0.150120056][412960.0.150120058]'
+ Description: '鏁版嵁搴撴娊鍙栫殑鍏ㄩ噺鐗堟湰鍙�'
+ IsReadOnly: true
+ ValueType: String
+}
diff --git a/_Main/BL/Type_MappingVersionControl/Attribute_VersionName.qbl b/_Main/BL/Type_MappingVersionControl/Attribute_VersionName.qbl
new file mode 100644
index 0000000..e6417f2
--- /dev/null
+++ b/_Main/BL/Type_MappingVersionControl/Attribute_VersionName.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute VersionName
+{
+ #keys: '3[412960.0.150124918][412960.0.150124917][412960.0.150124919]'
+ Description: '鐗堟湰鍚嶇О'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_MappingVersionControl/TypeIndex_TypeIndexVersionControl.qbl b/_Main/BL/Type_MappingVersionControl/TypeIndex_TypeIndexVersionControl.qbl
new file mode 100644
index 0000000..b1b5794
--- /dev/null
+++ b/_Main/BL/Type_MappingVersionControl/TypeIndex_TypeIndexVersionControl.qbl
@@ -0,0 +1,28 @@
+Quintiq file version 2.0
+#parent: #root
+TypeIndex TypeIndexVersionControl
+{
+ Attributes:
+ [
+ TypeIndexAttribute
+ {
+ ModelElement: VersionID
+ }
+ TypeIndexAttribute
+ {
+ ModelElement: EndTime
+ }
+ TypeIndexAttribute
+ {
+ ModelElement: StockingPointID
+ }
+ TypeIndexAttribute
+ {
+ ModelElement: StartTime
+ }
+ TypeIndexAttribute
+ {
+ ModelElement: ProductID
+ }
+ ]
+}
diff --git a/_Main/BL/Type_MappingVersionControl/_ROOT_Type_MappingVersionControl.qbl b/_Main/BL/Type_MappingVersionControl/_ROOT_Type_MappingVersionControl.qbl
new file mode 100644
index 0000000..ff148d7
--- /dev/null
+++ b/_Main/BL/Type_MappingVersionControl/_ROOT_Type_MappingVersionControl.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type MappingVersionControl
+{
+ #keys: '5[412960.0.150120040][412960.0.150120038][0.0.0][412960.0.150120039][412960.0.150120041]'
+ BaseType: Object
+ Description: '鐗堟湰鎺у埗涓棿琛�'
+ StructuredName: 'MappingVersionControls'
+}
diff --git "a/_Main/BL/Type_OrderLockLog/Attribute_CustomerName\04323.qbl" "b/_Main/BL/Type_OrderLockLog/Attribute_CustomerName\04323.qbl"
new file mode 100644
index 0000000..77e60f5
--- /dev/null
+++ "b/_Main/BL/Type_OrderLockLog/Attribute_CustomerName\04323.qbl"
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute CustomerName
+{
+ #keys: '3[412960.0.217504426][412960.0.217504425][412960.0.217504427]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_OrderLockLog/Attribute_End.qbl b/_Main/BL/Type_OrderLockLog/Attribute_End.qbl
new file mode 100644
index 0000000..bc7fd91
--- /dev/null
+++ b/_Main/BL/Type_OrderLockLog/Attribute_End.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute End
+{
+ #keys: '3[412960.0.217504488][412960.0.217504487][412960.0.217504489]'
+ ValueType: Date
+}
diff --git a/_Main/BL/Type_OrderLockLog/Attribute_EndDate.qbl b/_Main/BL/Type_OrderLockLog/Attribute_EndDate.qbl
new file mode 100644
index 0000000..3f4c39b
--- /dev/null
+++ b/_Main/BL/Type_OrderLockLog/Attribute_EndDate.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute EndDate
+{
+ #keys: '3[412960.0.217504467][412960.0.217504466][412960.0.217504468]'
+ ValueType: Date
+}
diff --git "a/_Main/BL/Type_OrderLockLog/Attribute_IsFirmed\0432.qbl" "b/_Main/BL/Type_OrderLockLog/Attribute_IsFirmed\0432.qbl"
new file mode 100644
index 0000000..7594124
--- /dev/null
+++ "b/_Main/BL/Type_OrderLockLog/Attribute_IsFirmed\0432.qbl"
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute IsFirmed
+{
+ #keys: '3[412960.0.217504477][412960.0.217504476][412960.0.217504478]'
+ ValueType: Boolean
+}
diff --git a/_Main/BL/Type_OrderLockLog/Attribute_LastModify.qbl b/_Main/BL/Type_OrderLockLog/Attribute_LastModify.qbl
new file mode 100644
index 0000000..9e81f78
--- /dev/null
+++ b/_Main/BL/Type_OrderLockLog/Attribute_LastModify.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute LastModify
+{
+ #keys: '3[412960.0.217504501][412960.0.217504500][412960.0.217504502]'
+ Description: '鏈�鍚庝慨鏀逛汉'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_OrderLockLog/Attribute_LastModifyTime.qbl b/_Main/BL/Type_OrderLockLog/Attribute_LastModifyTime.qbl
new file mode 100644
index 0000000..8698211
--- /dev/null
+++ b/_Main/BL/Type_OrderLockLog/Attribute_LastModifyTime.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute LastModifyTime
+{
+ #keys: '3[412960.0.217504498][412960.0.217504497][412960.0.217504499]'
+ Description: '鏈�鍚庢搷浣滄椂闂�'
+ ValueType: DateTime
+}
diff --git a/_Main/BL/Type_OrderLockLog/Attribute_OrderID.qbl b/_Main/BL/Type_OrderLockLog/Attribute_OrderID.qbl
new file mode 100644
index 0000000..fe37524
--- /dev/null
+++ b/_Main/BL/Type_OrderLockLog/Attribute_OrderID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute OrderID
+{
+ #keys: '3[412960.0.217504386][412960.0.217504385][412960.0.217504387]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_OrderLockLog/Attribute_Price.qbl b/_Main/BL/Type_OrderLockLog/Attribute_Price.qbl
new file mode 100644
index 0000000..b0c9e62
--- /dev/null
+++ b/_Main/BL/Type_OrderLockLog/Attribute_Price.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Price
+{
+ #keys: '3[412960.0.217504457][412960.0.217504456][412960.0.217504458]'
+ ValueType: Real
+}
diff --git a/_Main/BL/Type_OrderLockLog/Attribute_ProductID.qbl b/_Main/BL/Type_OrderLockLog/Attribute_ProductID.qbl
new file mode 100644
index 0000000..46b6f3b
--- /dev/null
+++ b/_Main/BL/Type_OrderLockLog/Attribute_ProductID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductID
+{
+ #keys: '3[412960.0.217504396][412960.0.217504395][412960.0.217504397]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_OrderLockLog/Attribute_Quantity.qbl b/_Main/BL/Type_OrderLockLog/Attribute_Quantity.qbl
new file mode 100644
index 0000000..5216b60
--- /dev/null
+++ b/_Main/BL/Type_OrderLockLog/Attribute_Quantity.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Quantity
+{
+ #keys: '3[412960.0.217504437][412960.0.217504436][412960.0.217504438]'
+ ValueType: Real
+}
diff --git a/_Main/BL/Type_OrderLockLog/Attribute_SalesSegmentName.qbl b/_Main/BL/Type_OrderLockLog/Attribute_SalesSegmentName.qbl
new file mode 100644
index 0000000..8e484e2
--- /dev/null
+++ b/_Main/BL/Type_OrderLockLog/Attribute_SalesSegmentName.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute SalesSegmentName
+{
+ #keys: '3[412960.0.217504406][412960.0.217504405][412960.0.217504407]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_OrderLockLog/Attribute_StockingPointID.qbl b/_Main/BL/Type_OrderLockLog/Attribute_StockingPointID.qbl
new file mode 100644
index 0000000..a344af9
--- /dev/null
+++ b/_Main/BL/Type_OrderLockLog/Attribute_StockingPointID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute StockingPointID
+{
+ #keys: '3[412960.0.217504416][412960.0.217504415][412960.0.217504417]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_OrderLockLog/Attribute_UnitOfMeasureName.qbl b/_Main/BL/Type_OrderLockLog/Attribute_UnitOfMeasureName.qbl
new file mode 100644
index 0000000..fccc2cb
--- /dev/null
+++ b/_Main/BL/Type_OrderLockLog/Attribute_UnitOfMeasureName.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute UnitOfMeasureName
+{
+ #keys: '3[412960.0.217504447][412960.0.217504446][412960.0.217504448]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_OrderLockLog/DefaultValue_LastModify.qbl b/_Main/BL/Type_OrderLockLog/DefaultValue_LastModify.qbl
new file mode 100644
index 0000000..6ef422d
--- /dev/null
+++ b/_Main/BL/Type_OrderLockLog/DefaultValue_LastModify.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+ TargetAttribute: LastModify
+}
diff --git a/_Main/BL/Type_OrderLockLog/_ROOT_Type_OrderLockLog.qbl b/_Main/BL/Type_OrderLockLog/_ROOT_Type_OrderLockLog.qbl
new file mode 100644
index 0000000..ac23238
--- /dev/null
+++ b/_Main/BL/Type_OrderLockLog/_ROOT_Type_OrderLockLog.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type OrderLockLog
+{
+ #keys: '5[412960.0.217504330][412960.0.217504328][0.0.0][412960.0.217504329][412960.0.217504331]'
+ BaseType: Object
+ Description: '璁㈠崟閿佸畾鎿嶄綔鏃ュ織'
+ StructuredName: 'OrderLockLogs'
+}
diff --git a/_Main/BL/Type_Scenario/Attribute_IsCreateNewVersion.qbl b/_Main/BL/Type_Scenario/Attribute_IsCreateNewVersion.qbl
new file mode 100644
index 0000000..9f65a98
--- /dev/null
+++ b/_Main/BL/Type_Scenario/Attribute_IsCreateNewVersion.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute IsCreateNewVersion
+{
+ #keys: '3[412960.0.155630021][412960.0.155630020][412960.0.155630022]'
+ Description: '鏄惁鍒涘缓浠庨泦鍥OP寮�濮嬬殑鍏ㄦ柊鐗堟湰'
+ ValueType: Boolean
+}
diff --git a/_Main/BL/Type_Scenario/Attribute_IsOrderLocked.qbl b/_Main/BL/Type_Scenario/Attribute_IsOrderLocked.qbl
new file mode 100644
index 0000000..75d68aa
--- /dev/null
+++ b/_Main/BL/Type_Scenario/Attribute_IsOrderLocked.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute IsOrderLocked
+{
+ #keys: '3[412960.0.212420059][412960.0.212420058][412960.0.212420060]'
+ Description: '璁㈠崟閿佸畾鐨勬槸鍚﹂攣瀹氱瓫閫夋潯浠�'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_Scenario/Attribute_VersionID.qbl b/_Main/BL/Type_Scenario/Attribute_VersionID.qbl
new file mode 100644
index 0000000..9acdd4a
--- /dev/null
+++ b/_Main/BL/Type_Scenario/Attribute_VersionID.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute VersionID
+{
+ #keys: '3[412960.0.150120035][412960.0.150120034][412960.0.150120036]'
+ Description: '褰撳墠鍦烘櫙瀵瑰簲鐨勭増鏈彿锛屼簬鍒涘缓鐗堟湰鏃剁‘瀹�'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_Scenario/DefaultValue_VersionID.qbl b/_Main/BL/Type_Scenario/DefaultValue_VersionID.qbl
new file mode 100644
index 0000000..b1c7729
--- /dev/null
+++ b/_Main/BL/Type_Scenario/DefaultValue_VersionID.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+ TargetAttribute: VersionID
+}
diff --git a/_Main/BL/Type_Scenario/Method_SetReleased.qbl b/_Main/BL/Type_Scenario/Method_SetReleased.qbl
new file mode 100644
index 0000000..9406560
--- /dev/null
+++ b/_Main/BL/Type_Scenario/Method_SetReleased.qbl
@@ -0,0 +1,5 @@
+Quintiq file version 2.0
+#parent: #root
+Method SetReleased #extension
+{
+}
diff --git a/_Main/BL/Type_VersionControl/Attribute_BusinessType.qbl b/_Main/BL/Type_VersionControl/Attribute_BusinessType.qbl
new file mode 100644
index 0000000..74d04b8
--- /dev/null
+++ b/_Main/BL/Type_VersionControl/Attribute_BusinessType.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute BusinessType
+{
+ #keys: '3[412960.0.134860020][412960.0.134860019][412960.0.134860021]'
+ Description: '鍙戝嚭璇ョ増鏈殑浜嬩笟閮紝鐢ㄤ簬璇嗗埆鍜屾牎楠屾槸鍚︽墍鏈変簨涓氶儴鍧囨湁鍥炰紶鏁版嵁锛岀洰鍓嶅彇鍊艰寖鍥翠负[ 闆嗗洟(TM)锛屾墜鏈轰簨涓氶儴(SJ)锛孖T浜嬩笟閮�(IT)锛岃溅杞戒簨涓氶儴(CZ)锛屾苯杞︾數瀛愪簨涓氶儴(QD)锛屼笓鏄句簨涓氶儴(ZX)锛岀┛鎴翠簨涓氶儴(CD)] 銆�'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_VersionControl/Attribute_CalType.qbl b/_Main/BL/Type_VersionControl/Attribute_CalType.qbl
new file mode 100644
index 0000000..6b16db1
--- /dev/null
+++ b/_Main/BL/Type_VersionControl/Attribute_CalType.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute CalType
+{
+ #keys: '3[412960.0.136134246][412960.0.136134245][412960.0.136134247]'
+ Description: '璁$畻绫诲瀷锛岀敤浜庢爣娉ㄤ负鍝竴姝ヨ绠楃敓鎴愮殑璇ョ増鏈紝濡係OP_R1'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_VersionControl/Attribute_CreateTime.qbl b/_Main/BL/Type_VersionControl/Attribute_CreateTime.qbl
new file mode 100644
index 0000000..b5f3fe6
--- /dev/null
+++ b/_Main/BL/Type_VersionControl/Attribute_CreateTime.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute CreateTime
+{
+ #keys: '3[412960.0.136134256][412960.0.136134255][412960.0.136134257]'
+ Description: '鍒涘缓璇ョ増鏈殑鏃堕棿'
+ ValueType: DateTime
+}
diff --git a/_Main/BL/Type_VersionControl/Attribute_IsReleased.qbl b/_Main/BL/Type_VersionControl/Attribute_IsReleased.qbl
new file mode 100644
index 0000000..af56d17
--- /dev/null
+++ b/_Main/BL/Type_VersionControl/Attribute_IsReleased.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute IsReleased
+{
+ #keys: '3[412960.0.134830023][412960.0.134830022][412960.0.134830024]'
+ ValueType: Boolean
+}
diff --git a/_Main/BL/Type_VersionControl/Attribute_LongVersionName.qbl b/_Main/BL/Type_VersionControl/Attribute_LongVersionName.qbl
new file mode 100644
index 0000000..95ba375
--- /dev/null
+++ b/_Main/BL/Type_VersionControl/Attribute_LongVersionName.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute LongVersionName
+{
+ #keys: '3[412960.0.136134236][412960.0.136134235][412960.0.136134237]'
+ Description: '璇ョ増鏈彿瀵瑰簲鐨勭増鏈悕绉帮紝鍚嶇О涓虹敤浜庡墠绔睍绀虹殑鏍煎紡锛屽SCENE(2023-09-06 15:06:57)'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_VersionControl/Attribute_Notes.qbl b/_Main/BL/Type_VersionControl/Attribute_Notes.qbl
new file mode 100644
index 0000000..68c4a77
--- /dev/null
+++ b/_Main/BL/Type_VersionControl/Attribute_Notes.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Notes
+{
+ #keys: '3[412960.0.136138830][412960.0.136138829][412960.0.136138831]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_VersionControl/Attribute_ReleaseTime.qbl b/_Main/BL/Type_VersionControl/Attribute_ReleaseTime.qbl
new file mode 100644
index 0000000..20eac64
--- /dev/null
+++ b/_Main/BL/Type_VersionControl/Attribute_ReleaseTime.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ReleaseTime
+{
+ #keys: '3[412960.0.136134266][412960.0.136134265][412960.0.136134267]'
+ Description: '鍙戝竷璇ョ増鏈殑鏃堕棿'
+ ValueType: DateTime
+}
diff --git a/_Main/BL/Type_VersionControl/Attribute_SingleVersionName.qbl b/_Main/BL/Type_VersionControl/Attribute_SingleVersionName.qbl
new file mode 100644
index 0000000..27d31f3
--- /dev/null
+++ b/_Main/BL/Type_VersionControl/Attribute_SingleVersionName.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute SingleVersionName
+{
+ #keys: '3[412960.0.136138782][412960.0.136138781][412960.0.136138783]'
+ Description: '鍗曚釜鐗堟湰鐨勫悕瀛楋紝鍗冲皬鐗堟湰鍚�'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_VersionControl/Attribute_User.qbl b/_Main/BL/Type_VersionControl/Attribute_User.qbl
new file mode 100644
index 0000000..d67d534
--- /dev/null
+++ b/_Main/BL/Type_VersionControl/Attribute_User.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute User
+{
+ #keys: '3[412960.0.134830093][412960.0.134830092][412960.0.134830094]'
+ Description: '鍒涘缓璇ョ増鏈殑鐢ㄦ埛'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_VersionControl/Attribute_VersionID.qbl b/_Main/BL/Type_VersionControl/Attribute_VersionID.qbl
new file mode 100644
index 0000000..e211102
--- /dev/null
+++ b/_Main/BL/Type_VersionControl/Attribute_VersionID.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute VersionID
+{
+ #keys: '3[412960.0.134860030][412960.0.134860029][412960.0.134860031]'
+ Description: '11浣嶆暟鐨勬椂闂存埑鎷兼帴鑰屾垚鐨勬枃鏈紝浠呭寘鍚暟瀛楅儴鍒�'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_VersionControl/StaticMethod_CopyVersion.qbl b/_Main/BL/Type_VersionControl/StaticMethod_CopyVersion.qbl
new file mode 100644
index 0000000..bf6fb53
--- /dev/null
+++ b/_Main/BL/Type_VersionControl/StaticMethod_CopyVersion.qbl
@@ -0,0 +1,59 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod CopyVersion (
+ GlobalOTDTable owner,
+ String businessname
+) as VersionControl
+{
+ Description: '澶嶅埗褰撳墠鐗堟湰骞舵洿鏂扮増鏈彿'
+ TextBody:
+ [*
+ // Administrator Sep-13-2023 (created)
+ createtime := DateTime::ActualTime();
+ user := QuintiqUser::CurrentUser().Username();
+ starttime := DateTime::Construct(1970,1,1,0,0,0);
+ // Get the local scenario businesstype
+ businesstype := GlobalOTDTable::GetBusinessTypeName( businessname );
+
+ // Get the older version info
+ oldversionid := "";
+ oldversionname := "";
+
+ latestversion := VersionControl::FindLatestUpdateVersion( owner, businesstype );
+ copyversionid := latestversion.VersionID();
+ info( copyversionid );
+
+ if( copyversionid.FindString( "-", 0 ) > 0 ){
+ latestversionlist := copyversionid.Tokenize( "-" );
+ latestversionnamelist := latestversion.LongVersionName().Tokenize( "-" );
+ for( i := 0; i < latestversionlist.Size() - 1; i := i + 1 ){
+ if( oldversionid = "" ){
+ oldversionid := latestversionlist.Element( i );
+ oldversionname := latestversionnamelist.Element( i );
+ }else{
+ oldversionid := oldversionid + "-" + latestversionlist.Element( i );
+ oldversionname := oldversionname + "-" + latestversionnamelist.Element( i );
+ }
+ info( oldversionid );
+ }
+ if( oldversionid <> "" ){
+ oldversionid := oldversionid + "-";
+ oldversionname := oldversionname + "-";
+ }
+ info( oldversionid );
+ }
+
+ // Calculate new version info
+ additionversionid := ( createtime.MinutesAsReal( starttime ) * 60 * 10 + createtime.SecondOfMinute() ).Round( 0 );
+ newversionid := oldversionid + [String]additionversionid;
+ newcaltype := latestversion.CalType();
+ newsingleversionname := newcaltype + "(" + createtime.Format( "Y/M2/D2 H:m:s" ) + ")";
+ newversionname := oldversionname + newsingleversionname;
+ info( newversionid );
+
+ // Create new version
+ newversion := VersionControl::Create( owner, businesstype, newcaltype, createtime, newversionid, newversionname, newsingleversionname, user );
+
+ return newversion;
+ *]
+}
diff --git a/_Main/BL/Type_VersionControl/StaticMethod_Create.qbl b/_Main/BL/Type_VersionControl/StaticMethod_Create.qbl
new file mode 100644
index 0000000..22a6355
--- /dev/null
+++ b/_Main/BL/Type_VersionControl/StaticMethod_Create.qbl
@@ -0,0 +1,29 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod Create (
+ GlobalOTDTable owner,
+ String businesstype,
+ String caltype,
+ DateTime createtime,
+ String versionid,
+ String versionname,
+ String singleversionname,
+ String user
+) as VersionControl
+{
+ Description: '鍒涘缓鐗堟湰'
+ TextBody:
+ [*
+ // Administrator Sep-13-2023 (created)
+ newversion := owner.VersionControl( relnew,
+ BusinessType := businesstype,
+ CalType := caltype,
+ CreateTime := createtime,
+ VersionID := versionid,
+ LongVersionName := versionname,
+ SingleVersionName := singleversionname,
+ User := user );
+
+ return newversion;
+ *]
+}
diff --git a/_Main/BL/Type_VersionControl/StaticMethod_CreateNewSceneVersion.qbl b/_Main/BL/Type_VersionControl/StaticMethod_CreateNewSceneVersion.qbl
new file mode 100644
index 0000000..450646d
--- /dev/null
+++ b/_Main/BL/Type_VersionControl/StaticMethod_CreateNewSceneVersion.qbl
@@ -0,0 +1,37 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod CreateNewSceneVersion (
+ GlobalOTDTable owner,
+ String businessname
+) as VersionControl
+{
+ Description: '闅忓垱寤哄満鏅繘琛岀増鏈垱寤�'
+ TextBody:
+ [*
+ // Administrator Sep-13-2023 (created)
+ createtime := DateTime::ActualTime();
+ user := QuintiqUser::CurrentUser().Username();
+ starttime := DateTime::Construct(1970,1,1,0,0,0);
+ // Get the local scenario businesstype
+ businesstype := GlobalOTDTable::GetBusinessTypeName( businessname );
+
+ // Get the older version info
+ oldversion_id := "";
+ oldversion_name := "";
+ oldcaltype := "";
+
+ // Calculate new version info
+ additionversionid := ( createtime.MinutesAsReal( starttime ) * 60 * 10 + createtime.SecondOfMinute() ).Round( 0 );
+ newversionid := oldversion_id + [String]additionversionid;
+ newcaltype := GlobalOTDTable::GetNextCalType( oldcaltype, businesstype );
+ newsingleversionname := newcaltype + "(" + createtime.Format( "Y/M2/D2 H:m:s" ) + ")";
+ newversionname := oldversion_name + newsingleversionname;
+
+ // Create new version
+ newversion := VersionControl::Create( owner, businesstype, newcaltype, createtime, newversionid, newversionname, newsingleversionname, user );
+ newversion.IsReleased( true );
+ newversion.ReleaseTime( createtime );
+
+ return newversion;
+ *]
+}
diff --git a/_Main/BL/Type_VersionControl/StaticMethod_CreateNewVersion.qbl b/_Main/BL/Type_VersionControl/StaticMethod_CreateNewVersion.qbl
new file mode 100644
index 0000000..8f05fb1
--- /dev/null
+++ b/_Main/BL/Type_VersionControl/StaticMethod_CreateNewVersion.qbl
@@ -0,0 +1,47 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod CreateNewVersion (
+ GlobalOTDTable owner,
+ String businessname
+) as VersionControl
+{
+ Description: '鍦ㄤ笂涓�鐗堟湰鍚庢坊鍔犳柊鐗堟湰鍙峰苟鐢熸垚鏂扮増鏈�'
+ TextBody:
+ [*
+ // Administrator Sep-13-2023 (created)
+ createtime := DateTime::ActualTime();
+ user := QuintiqUser::CurrentUser().Username();
+ starttime := DateTime::Construct(1970,1,1,0,0,0);
+ // Get the local scenario businesstype
+ businesstype := GlobalOTDTable::GetBusinessTypeName( businessname );
+
+ // Get the older version info
+ oldversion_id := "";
+ oldversion_name := "";
+ oldcaltype := "";
+
+ latestversion := VersionControl::FindLatestUpdateVersion( owner, businesstype );
+
+ if( isnull( latestversion ) and not businesstype = "TM" ){
+ error( "Can't find last version in " + businesstype.AsQUILL() );
+ }
+ else if( not isnull( latestversion ) ){
+ oldversion_id := latestversion.VersionID() + "-";
+ oldversion_name := latestversion.LongVersionName() + "-";
+ oldcaltype := latestversion.CalType();
+ }
+
+
+ // Calculate new version info
+ additionversionid := ( createtime.MinutesAsReal( starttime ) * 60 * 10 + createtime.SecondOfMinute() ).Round( 0 );
+ newversionid := oldversion_id + [String]additionversionid;
+ newcaltype := GlobalOTDTable::GetNextCalType( oldcaltype, businesstype );
+ newsingleversionname := newcaltype + "(" + createtime.Format( "Y/M2/D2 H:m:s" ) + ")";
+ newversionname := oldversion_name + newsingleversionname;
+
+ // Create new version
+ newversion := VersionControl::Create( owner, businesstype, newcaltype, createtime, newversionid, newversionname, newsingleversionname, user );
+
+ return newversion;
+ *]
+}
diff --git a/_Main/BL/Type_VersionControl/StaticMethod_FindByFullVersionID.qbl b/_Main/BL/Type_VersionControl/StaticMethod_FindByFullVersionID.qbl
new file mode 100644
index 0000000..a281109
--- /dev/null
+++ b/_Main/BL/Type_VersionControl/StaticMethod_FindByFullVersionID.qbl
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod FindByFullVersionID (
+ GlobalOTDTable owner,
+ String versionid
+) as VersionControl
+{
+ Description: '閫氳繃鍏ㄩ噺鐗堟湰鍙疯繘琛屾煡鎵�'
+ TextBody:
+ [*
+ // Administrator Sep-14-2023 (created)
+ // Get the version data
+ resultversion := select( owner, VersionControl, version, version.VersionID() + "-" + version.CalType() = versionid );
+
+ return resultversion;
+ *]
+}
diff --git a/_Main/BL/Type_VersionControl/StaticMethod_FindLatestUpdateVersion.qbl b/_Main/BL/Type_VersionControl/StaticMethod_FindLatestUpdateVersion.qbl
new file mode 100644
index 0000000..4450bf4
--- /dev/null
+++ b/_Main/BL/Type_VersionControl/StaticMethod_FindLatestUpdateVersion.qbl
@@ -0,0 +1,22 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod FindLatestUpdateVersion (
+ GlobalOTDTable globalotdtable,
+ String businesstype
+) as VersionControl
+{
+ Description: '鑾峰彇鏌愪簨涓氶儴鐩墠鏈�鏂扮殑鐗堟湰鍙�'
+ TextBody:
+ [*
+ // Administrator Sep-13-2023 (created)
+
+ // Get the latest version data
+ latestversion := maxselect( globalotdtable,
+ VersionControl,
+ version,
+ version.BusinessType()=businesstype and version.IsReleased()=true,
+ version.CreateTime() );
+
+ return latestversion;
+ *]
+}
diff --git a/_Main/BL/Type_VersionControl/StaticMethod_FindLatestVersion.qbl b/_Main/BL/Type_VersionControl/StaticMethod_FindLatestVersion.qbl
new file mode 100644
index 0000000..df4f8f4
--- /dev/null
+++ b/_Main/BL/Type_VersionControl/StaticMethod_FindLatestVersion.qbl
@@ -0,0 +1,22 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod FindLatestVersion (
+ GlobalOTDTable globalotdtable,
+ String businesstype
+) as VersionControl
+{
+ Description: '鑾峰彇鏌愪簨涓氶儴鐩墠鏈�鏂扮殑鐗堟湰鍙�'
+ TextBody:
+ [*
+ // Administrator Sep-13-2023 (created)
+
+ // Get the latest version data
+ latestversion := maxselect( globalotdtable,
+ VersionControl,
+ version,
+ version.BusinessType()=businesstype,
+ version.CreateTime() );
+
+ return latestversion;
+ *]
+}
diff --git a/_Main/BL/Type_VersionControl/StaticMethod_FindReleasedVersions.qbl b/_Main/BL/Type_VersionControl/StaticMethod_FindReleasedVersions.qbl
new file mode 100644
index 0000000..7e7ec19
--- /dev/null
+++ b/_Main/BL/Type_VersionControl/StaticMethod_FindReleasedVersions.qbl
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod FindReleasedVersions (
+ GlobalOTDTable globalotdtable,
+ String businesstype,
+ String versionid
+) as owning VersionControls
+{
+ Description: '鑾峰彇鏌愪簨涓氶儴鐩墠鏈�鏂扮殑鐗堟湰鍙�'
+ TextBody:
+ [*
+ // Administrator Sep-13-2023 (created)
+
+ // Get the latest version data
+ latestversion := selectset( globalotdtable, VersionControl, version, version.BusinessType()=businesstype and version.IsReleased()=true and version.VersionID().FindString( versionid, 0 ) = 0 );
+
+ return &latestversion;
+ *]
+}
diff --git a/_Main/BL/Type_VersionControl/StaticMethod_GetVersionInfo.qbl b/_Main/BL/Type_VersionControl/StaticMethod_GetVersionInfo.qbl
new file mode 100644
index 0000000..03b2084
--- /dev/null
+++ b/_Main/BL/Type_VersionControl/StaticMethod_GetVersionInfo.qbl
@@ -0,0 +1,30 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GetVersionInfo (
+ GlobalOTDTable owner,
+ String businessname
+) as owning Strings
+{
+ Description: '鑾峰彇澶х増鏈増鏈彿鍙婄増鏈悕绉�'
+ TextBody:
+ [*
+ // Administrator Sep-13-2023 (created)
+ businesstyoe := GlobalOTDTable::GetBusinessTypeName( businessname );
+ result := construct( Strings );
+ rootversion := VersionControl::FindLatestVersion( owner, businesstyoe );
+
+ if( not isnull( rootversion ) ){
+ result.Add( rootversion.VersionID() );
+ result.Add( rootversion.LongVersionName() );
+ result.Add( rootversion.VersionID() + "-" + rootversion.CalType() );
+ result.Add( rootversion.SingleVersionName() );
+ }else{
+ result.Add( "" );
+ result.Add( "" );
+ result.Add( "" );
+ result.Add( "" );
+ }
+
+ return &result;
+ *]
+}
diff --git a/_Main/BL/Type_VersionControl/StaticMethod_ReleaseLatestVersion.qbl b/_Main/BL/Type_VersionControl/StaticMethod_ReleaseLatestVersion.qbl
new file mode 100644
index 0000000..43541f1
--- /dev/null
+++ b/_Main/BL/Type_VersionControl/StaticMethod_ReleaseLatestVersion.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod ReleaseLatestVersion
+{
+ Description: '鍙戝竷褰撳墠鐗堟湰锛屽緟缂栧啓'
+ TextBody:
+ [*
+ // Administrator Sep-14-2023 (created)
+ *]
+}
diff --git a/_Main/BL/Type_VersionControl/StaticMethod_ReleaseNewVersion.qbl b/_Main/BL/Type_VersionControl/StaticMethod_ReleaseNewVersion.qbl
new file mode 100644
index 0000000..f90a939
--- /dev/null
+++ b/_Main/BL/Type_VersionControl/StaticMethod_ReleaseNewVersion.qbl
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod ReleaseNewVersion (
+ GlobalOTDTable owner,
+ String businesstype
+)
+{
+ Description: '鍙戝竷鏂扮増鏈�'
+ TextBody:
+ [*
+ // Administrator Sep-13-2023 (created)
+ releasetime := DateTime::ActualTime();
+
+ // Create new version
+ newversion := VersionControl::CreateNewVersion( owner, businesstype );
+
+ newversion.IsReleased( true );
+ newversion.ReleaseTime( releasetime );
+ *]
+}
diff --git a/_Main/BL/Type_VersionControl/_ROOT_Type_VersionControl.qbl b/_Main/BL/Type_VersionControl/_ROOT_Type_VersionControl.qbl
new file mode 100644
index 0000000..8064a9d
--- /dev/null
+++ b/_Main/BL/Type_VersionControl/_ROOT_Type_VersionControl.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type VersionControl
+{
+ #keys: '5[412960.0.134860003][412960.0.134860001][0.0.0][412960.0.134860002][412960.0.134860004]'
+ BaseType: Object
+ Description: '鍌ㄥ瓨鍏ㄩ噺鐗堟湰鐘舵�佺殑object'
+ StructuredName: 'VersionControls'
+}
diff --git a/_Main/BL/Type_VersionStatus/Attribute_BusinessName.qbl b/_Main/BL/Type_VersionStatus/Attribute_BusinessName.qbl
new file mode 100644
index 0000000..877b0b7
--- /dev/null
+++ b/_Main/BL/Type_VersionStatus/Attribute_BusinessName.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute BusinessName
+{
+ #keys: '3[412960.0.134830239][412960.0.134830238][412960.0.134830240]'
+ Description: '灞曠ず鐢ㄤ簨涓氶儴鍚嶇О'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_VersionStatus/Attribute_BusinessType.qbl b/_Main/BL/Type_VersionStatus/Attribute_BusinessType.qbl
new file mode 100644
index 0000000..bba8e24
--- /dev/null
+++ b/_Main/BL/Type_VersionStatus/Attribute_BusinessType.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute BusinessType
+{
+ #keys: '3[412960.0.134830072][412960.0.134830071][412960.0.134830073]'
+ Description: '浜嬩笟閮ㄥ悕绉�'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_VersionStatus/Attribute_LastReleaseTime.qbl b/_Main/BL/Type_VersionStatus/Attribute_LastReleaseTime.qbl
new file mode 100644
index 0000000..9c76657
--- /dev/null
+++ b/_Main/BL/Type_VersionStatus/Attribute_LastReleaseTime.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute LastReleaseTime
+{
+ #keys: '3[412960.0.136138799][412960.0.136138798][412960.0.136138800]'
+ Description: '鏈�鍚庡悓姝ョ殑鏃堕棿'
+ ValueType: DateTime
+}
diff --git a/_Main/BL/Type_VersionStatus/Attribute_LastUser.qbl b/_Main/BL/Type_VersionStatus/Attribute_LastUser.qbl
new file mode 100644
index 0000000..e0f1ac0
--- /dev/null
+++ b/_Main/BL/Type_VersionStatus/Attribute_LastUser.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute LastUser
+{
+ #keys: '3[412960.0.136138809][412960.0.136138808][412960.0.136138810]'
+ Description: '鏈�鍚庢搷浣滀汉'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_VersionStatus/Attribute_LastVersionName.qbl b/_Main/BL/Type_VersionStatus/Attribute_LastVersionName.qbl
new file mode 100644
index 0000000..83a20e1
--- /dev/null
+++ b/_Main/BL/Type_VersionStatus/Attribute_LastVersionName.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute LastVersionName
+{
+ #keys: '3[412960.0.136138768][412960.0.136138767][412960.0.136138769]'
+ Description: '鏈�缁堟嫾鎺ヨ�屾垚鐨勭増鏈悕绉�'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_VersionStatus/Attribute_Notes.qbl b/_Main/BL/Type_VersionStatus/Attribute_Notes.qbl
new file mode 100644
index 0000000..ac77f08
--- /dev/null
+++ b/_Main/BL/Type_VersionStatus/Attribute_Notes.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Notes
+{
+ #keys: '3[412960.0.136138819][412960.0.136138818][412960.0.136138820]'
+ Description: '澶囨敞'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_VersionStatus/Attribute_SortNumber.qbl b/_Main/BL/Type_VersionStatus/Attribute_SortNumber.qbl
new file mode 100644
index 0000000..29f8260
--- /dev/null
+++ b/_Main/BL/Type_VersionStatus/Attribute_SortNumber.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute SortNumber
+{
+ #keys: '3[412960.0.136138758][412960.0.136138757][412960.0.136138759]'
+ Description: '搴忓彿'
+ ValueType: Number
+}
diff --git a/_Main/BL/Type_VersionStatus/StaticMethod_CreateOrUpdate.qbl b/_Main/BL/Type_VersionStatus/StaticMethod_CreateOrUpdate.qbl
new file mode 100644
index 0000000..a33f467
--- /dev/null
+++ b/_Main/BL/Type_VersionStatus/StaticMethod_CreateOrUpdate.qbl
@@ -0,0 +1,37 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod CreateOrUpdate (
+ GlobalOTDTable owner,
+ String businesstype,
+ String businessname,
+ DateTime lastreleasetime,
+ String lastuser,
+ String lastversionname,
+ String notes,
+ Number sortnumber
+)
+{
+ Description: '鍒涘缓鏂扮殑鐗堟湰鍙戝竷鐘舵��'
+ TextBody:
+ [*
+ // Administrator Sep-13-2023 (created)
+ // Find exist status
+ existstatus := VersionStatus::FindLatestStatus( owner, businesstype );
+ if( isnull( existstatus ) ){
+ owner.VersionStatus( relnew,
+ BusinessType := businesstype,
+ BusinessName := businessname,
+ LastReleaseTime := lastreleasetime,
+ LastUser := lastuser,
+ LastVersionName := lastversionname,
+ Notes := notes,
+ SortNumber := sortnumber );
+ }else{
+ existstatus.LastReleaseTime( lastreleasetime );
+ existstatus.LastUser( lastuser );
+ existstatus.LastVersionName( lastversionname );
+ existstatus.Notes( notes );
+ existstatus.SortNumber( sortnumber );
+ }
+ *]
+}
diff --git a/_Main/BL/Type_VersionStatus/StaticMethod_FindLatestStatus.qbl b/_Main/BL/Type_VersionStatus/StaticMethod_FindLatestStatus.qbl
new file mode 100644
index 0000000..5a58dc6
--- /dev/null
+++ b/_Main/BL/Type_VersionStatus/StaticMethod_FindLatestStatus.qbl
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod FindLatestStatus (
+ GlobalOTDTable globalotdtable,
+ String businesstype
+) as VersionStatus
+{
+ Description: '鑾峰彇鏌愪簨涓氶儴鐩墠鏈�鏂扮殑鍙戝竷鐘舵��'
+ TextBody:
+ [*
+ // Administrator Sep-13-2023 (created)
+
+ // Get the latest version data
+ lateststatus := select( globalotdtable, VersionStatus, version, version.BusinessType()=businesstype );
+
+ return lateststatus;
+ *]
+}
diff --git a/_Main/BL/Type_VersionStatus/StaticMethod_GetBusinessTypeStatus.qbl b/_Main/BL/Type_VersionStatus/StaticMethod_GetBusinessTypeStatus.qbl
new file mode 100644
index 0000000..dec4ba1
--- /dev/null
+++ b/_Main/BL/Type_VersionStatus/StaticMethod_GetBusinessTypeStatus.qbl
@@ -0,0 +1,64 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GetBusinessTypeStatus (
+ GlobalOTDTable owner,
+ String rootversionid
+)
+{
+ Description: '鍒锋柊鎵�鏈変簨涓氶儴鐨勫彂甯冩儏鍐�'
+ TextBody:
+ [*
+ // Administrator Sep-13-2023 (created)
+ // Get business type list
+ businesstypes := "闆嗗洟,闈㈡澘,鎵嬫満浜嬩笟閮�,IT浜嬩笟閮�,杞﹁浇浜嬩笟閮�,姹借溅鐢靛瓙浜嬩笟閮�,涓撴樉浜嬩笟閮�,绌挎埓浜嬩笟閮�";
+ businesstypelist := businesstypes.Tokenize( "," );
+
+ sortnumber := 0;
+ sortdetailnumber := 0;
+ traverse( businesstypelist, Elements, businessname, true ){
+ // info( businessname );
+ // Get the local scenario businesstype
+ businesstype := GlobalOTDTable::GetBusinessTypeName( businessname );
+ sortnumber := sortnumber + 1;
+ lastversion := VersionControl::FindLatestUpdateVersion( owner, businesstype );
+ if( not isnull( lastversion ) ){
+ VersionStatus::CreateOrUpdate( owner,
+ businesstype,
+ businessname,
+ lastversion.ReleaseTime(),
+ lastversion.User(),
+ lastversion.SingleVersionName(),
+ lastversion.Notes(),
+ sortnumber );
+ }else{
+ existstatus := VersionStatus::FindLatestStatus( owner, businesstype );
+ if( isnull( existstatus ) ){
+ owner.VersionStatus( relnew,
+ BusinessType := businesstype,
+ BusinessName := businessname,
+ SortNumber := sortnumber
+ );
+ }
+ }
+
+ rootstatus := VersionStatus::FindLatestStatus( owner, businesstype );
+ // Get the versions list
+ versionlist := VersionControl::FindReleasedVersions( owner, businesstype, rootversionid );
+ // info( rootversionid );
+ if( not isnull( versionlist ) ){
+ traverse( versionlist, Elements, version, true ){
+ info( version.VersionID() );
+ sortdetailnumber := sortdetailnumber + 1;
+ VersionStatusDetail::CreateOrUpdate( rootstatus,
+ version.VersionID() + "-" + version.CalType(),
+ version.CreateTime(),
+ version.ReleaseTime(),
+ version.SingleVersionName(),
+ version.User(),
+ version.Notes(),
+ sortdetailnumber );
+ }
+ }
+ }
+ *]
+}
diff --git a/_Main/BL/Type_VersionStatus/_ROOT_Type_VersionStatus.qbl b/_Main/BL/Type_VersionStatus/_ROOT_Type_VersionStatus.qbl
new file mode 100644
index 0000000..eb167dc
--- /dev/null
+++ b/_Main/BL/Type_VersionStatus/_ROOT_Type_VersionStatus.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type VersionStatus
+{
+ #keys: '5[412960.0.134830053][412960.0.134830051][0.0.0][412960.0.134830052][412960.0.134830054]'
+ BaseType: Object
+ Description: '鍚勪簨涓氶儴鐨勭増鏈彂甯冪姸鎬佹暟鎹�'
+ StructuredName: 'VersionStatuss'
+}
diff --git a/_Main/BL/Type_VersionStatusDetail/Attribute_CreateTime.qbl b/_Main/BL/Type_VersionStatusDetail/Attribute_CreateTime.qbl
new file mode 100644
index 0000000..6fbf202
--- /dev/null
+++ b/_Main/BL/Type_VersionStatusDetail/Attribute_CreateTime.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute CreateTime
+{
+ #keys: '3[412960.0.143214324][412960.0.143214323][412960.0.143214325]'
+ Description: '鍒涘缓璇ョ増鏈殑鏃堕棿'
+ ValueType: DateTime
+}
diff --git a/_Main/BL/Type_VersionStatusDetail/Attribute_Notes.qbl b/_Main/BL/Type_VersionStatusDetail/Attribute_Notes.qbl
new file mode 100644
index 0000000..9c73a1a
--- /dev/null
+++ b/_Main/BL/Type_VersionStatusDetail/Attribute_Notes.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Notes
+{
+ #keys: '3[412960.0.143214333][412960.0.143214332][412960.0.143214334]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_VersionStatusDetail/Attribute_ReleaseTime.qbl b/_Main/BL/Type_VersionStatusDetail/Attribute_ReleaseTime.qbl
new file mode 100644
index 0000000..0558ae9
--- /dev/null
+++ b/_Main/BL/Type_VersionStatusDetail/Attribute_ReleaseTime.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ReleaseTime
+{
+ #keys: '3[412960.0.143214336][412960.0.143214335][412960.0.143214337]'
+ Description: '鍙戝竷璇ョ増鏈殑鏃堕棿'
+ ValueType: DateTime
+}
diff --git a/_Main/BL/Type_VersionStatusDetail/Attribute_SingleVersionName.qbl b/_Main/BL/Type_VersionStatusDetail/Attribute_SingleVersionName.qbl
new file mode 100644
index 0000000..f4bcfc5
--- /dev/null
+++ b/_Main/BL/Type_VersionStatusDetail/Attribute_SingleVersionName.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute SingleVersionName
+{
+ #keys: '3[412960.0.143214339][412960.0.143214338][412960.0.143214340]'
+ Description: '鍗曚釜鐗堟湰鐨勫悕瀛楋紝鍗冲皬鐗堟湰鍚�'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_VersionStatusDetail/Attribute_SortNumber.qbl b/_Main/BL/Type_VersionStatusDetail/Attribute_SortNumber.qbl
new file mode 100644
index 0000000..796a03e
--- /dev/null
+++ b/_Main/BL/Type_VersionStatusDetail/Attribute_SortNumber.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute SortNumber
+{
+ #keys: '3[412960.0.143220022][412960.0.143220021][412960.0.143220023]'
+ ValueType: Number
+}
diff --git a/_Main/BL/Type_VersionStatusDetail/Attribute_User.qbl b/_Main/BL/Type_VersionStatusDetail/Attribute_User.qbl
new file mode 100644
index 0000000..14f56cd
--- /dev/null
+++ b/_Main/BL/Type_VersionStatusDetail/Attribute_User.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute User
+{
+ #keys: '3[412960.0.143214342][412960.0.143214341][412960.0.143214343]'
+ Description: '鍒涘缓璇ョ増鏈殑鐢ㄦ埛'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_VersionStatusDetail/Attribute_VersionID.qbl b/_Main/BL/Type_VersionStatusDetail/Attribute_VersionID.qbl
new file mode 100644
index 0000000..7b4634c
--- /dev/null
+++ b/_Main/BL/Type_VersionStatusDetail/Attribute_VersionID.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute VersionID
+{
+ #keys: '3[412960.0.143214345][412960.0.143214344][412960.0.143214346]'
+ Description: '鍏ㄩ噺鐗堟湰鍙�'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_VersionStatusDetail/DefaultValue_Notes.qbl b/_Main/BL/Type_VersionStatusDetail/DefaultValue_Notes.qbl
new file mode 100644
index 0000000..cc97344
--- /dev/null
+++ b/_Main/BL/Type_VersionStatusDetail/DefaultValue_Notes.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+ TargetAttribute: Notes
+}
diff --git a/_Main/BL/Type_VersionStatusDetail/DefaultValue_SingleVersionName.qbl b/_Main/BL/Type_VersionStatusDetail/DefaultValue_SingleVersionName.qbl
new file mode 100644
index 0000000..b8282a9
--- /dev/null
+++ b/_Main/BL/Type_VersionStatusDetail/DefaultValue_SingleVersionName.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+ TargetAttribute: SingleVersionName
+}
diff --git a/_Main/BL/Type_VersionStatusDetail/DefaultValue_User.qbl b/_Main/BL/Type_VersionStatusDetail/DefaultValue_User.qbl
new file mode 100644
index 0000000..10b59e9
--- /dev/null
+++ b/_Main/BL/Type_VersionStatusDetail/DefaultValue_User.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+ TargetAttribute: User
+}
diff --git a/_Main/BL/Type_VersionStatusDetail/StaticMethod_CreateOrUpdate.qbl b/_Main/BL/Type_VersionStatusDetail/StaticMethod_CreateOrUpdate.qbl
new file mode 100644
index 0000000..2f27674
--- /dev/null
+++ b/_Main/BL/Type_VersionStatusDetail/StaticMethod_CreateOrUpdate.qbl
@@ -0,0 +1,38 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod CreateOrUpdate (
+ VersionStatus owner,
+ String versionid,
+ DateTime createtime,
+ DateTime releasetime,
+ String versionname,
+ String user,
+ String notes,
+ Number sortnumber
+)
+{
+ Description: '鍒涘缓鏂扮殑鐗堟湰鍙戝竷鐘舵�佽鎯�'
+ TextBody:
+ [*
+ // Administrator Sep-13-2023 (created)
+ // Find exist status
+ existstatusdetail := VersionStatusDetail::FindStatus( owner, versionid );
+ if( isnull( existstatusdetail ) ){
+ owner.VersionStatusDetail( relnew,
+ CreateTime := createtime,
+ ReleaseTime := releasetime,
+ SingleVersionName := versionname,
+ User := user,
+ VersionID := versionid,
+ Notes := notes,
+ SortNumber := sortnumber );
+ }else{
+ existstatusdetail.CreateTime( createtime );
+ existstatusdetail.ReleaseTime( releasetime );
+ existstatusdetail.SingleVersionName( versionname );
+ existstatusdetail.User( user );
+ existstatusdetail.Notes( notes );
+ existstatusdetail.SortNumber( sortnumber );
+ }
+ *]
+}
diff --git a/_Main/BL/Type_VersionStatusDetail/StaticMethod_FindStatus.qbl b/_Main/BL/Type_VersionStatusDetail/StaticMethod_FindStatus.qbl
new file mode 100644
index 0000000..732af48
--- /dev/null
+++ b/_Main/BL/Type_VersionStatusDetail/StaticMethod_FindStatus.qbl
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod FindStatus (
+ VersionStatus owner,
+ String versionid
+) as VersionStatusDetail
+{
+ Description: '閫氳繃鐗堟湰鍙锋煡鎵炬槸鍚︽湁瀛樺湪鐨勭姸鎬佽鎯�'
+ TextBody:
+ [*
+ // Administrator Sep-13-2023 (created)
+
+ // Get the latest version data
+ lateststatusdetail := select( owner, VersionStatusDetail, version, version.VersionID()=versionid );
+
+ return lateststatusdetail;
+ *]
+}
diff --git a/_Main/BL/Type_VersionStatusDetail/StaticMethod_GetFullVersionID.qbl b/_Main/BL/Type_VersionStatusDetail/StaticMethod_GetFullVersionID.qbl
new file mode 100644
index 0000000..acb76c0
--- /dev/null
+++ b/_Main/BL/Type_VersionStatusDetail/StaticMethod_GetFullVersionID.qbl
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GetFullVersionID (
+ VersionStatus owner
+) as String
+{
+ Description: '鑾峰彇鍏ㄩ噺鐗堟湰鍙�'
+ TextBody:
+ [*
+ // Administrator Sep-13-2023 (created)
+ result := "";
+ latestversion := maxselect( owner, VersionStatusDetail, version, true, version.CreateTime() );
+
+ if( not isnull( latestversion ) ){
+ result := latestversion.VersionID();
+ }
+
+ return result;
+ *]
+}
diff --git a/_Main/BL/Type_VersionStatusDetail/_ROOT_Type_VersionStatusDetail.qbl b/_Main/BL/Type_VersionStatusDetail/_ROOT_Type_VersionStatusDetail.qbl
new file mode 100644
index 0000000..4b4532a
--- /dev/null
+++ b/_Main/BL/Type_VersionStatusDetail/_ROOT_Type_VersionStatusDetail.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type VersionStatusDetail
+{
+ #keys: '5[412960.0.143214315][412960.0.143214313][0.0.0][412960.0.143214314][412960.0.143214316]'
+ BaseType: Object
+ Description: '鍌ㄥ瓨瀵瑰簲鍙戝竷鐘舵�佷笅鐗堟湰鐘舵�佺殑鏁版嵁'
+ StructuredName: 'VersionStatusDetails'
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Component_PanelGeneral\043549.def" "b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Component_PanelGeneral\043549.def"
index 13a5531..f8a1684 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Component_PanelGeneral\043549.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Component_PanelGeneral\043549.def"
@@ -51,5 +51,16 @@
Taborder: 4
]
}
+ Component CheckboxIsCreateNewVersion
+ {
+ #keys: '[412960.0.157150313]'
+ BaseType: 'WebCheckbox'
+ Properties:
+ [
+ DataBinding: 'DataHolderDialogData.Data.IsCreateNewVersion'
+ Label: 'Create a new version'
+ Taborder: 7
+ ]
+ }
]
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Component_pnlActions.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Component_pnlActions.def
new file mode 100644
index 0000000..61bc669
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Component_pnlActions.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component pnlActions #extension
+{
+ Children:
+ [
+ Component btnOK #extension
+ {
+ }
+ ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_NewScenario\043549.def" "b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_NewScenario\043549.def"
index cc2b308..2f95d09 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_NewScenario\043549.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_NewScenario\043549.def"
@@ -20,6 +20,7 @@
DataHolderActionCopy.Data( false );
DataHolderDialogData.Data( &scenario );
DataHolderDialogData.Data().EnableSync( enableSync );
+ DataHolderDialogData.Data().IsCreateNewVersion( true );
ApplicationMacroPlanner.ShowFormModal( this );
*]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_NewScenario.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_NewScenario.def
index d48922f..ad05250 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_NewScenario.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_NewScenario.def
@@ -19,6 +19,7 @@
DataHolderActionCopy.Data( false );
DataHolderDialogData.Data( &scenario );
+ DataHolderDialogData.Data().IsCreateNewVersion( true );
ApplicationMacroPlanner.ShowFormModal( this );
*]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_OnOk.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_OnOk.def
index e97d405..5d283ea 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_OnOk.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_OnOk.def
@@ -17,6 +17,21 @@
newscenario := null( Scenario );
strategy := null( Strategy );
+ // New version
+ globalotdtable := GlobalOTDTable;
+ testbusinesstype := "闆嗗洟";
+ if( data.IsCreateNewVersion() ){
+ VersionControl::CreateNewSceneVersion( globalotdtable, testbusinesstype );
+ }else{
+ VersionControl::CopyVersion( globalotdtable, testbusinesstype );
+ }
+ versionname := VersionControl::GetVersionInfo( globalotdtable, testbusinesstype ).Element( 3 );
+
+ // Get Version Name
+ if( data.Name() = "" ){
+ data.Name( versionname );
+ }
+
// Copy scenario
if( isnull( data.WrappedInstance() ) )
{
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Response_pnlActions_btnOk_OnClick.def
new file mode 100644
index 0000000..e56830c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Response_pnlActions_btnOk_OnClick.def
@@ -0,0 +1,22 @@
+Quintiq file version 2.0
+#parent: pnlActions/btnOK
+Response OnClick () id:Response_pnlActions_btnOK_OnClick #extension
+{
+ Precondition:
+ [*
+ data := DataHolderDialogData.Data();
+ return not isnull( data )
+ and Scenario::ValidateInput( feedback,
+ ScenarioManager,
+ // edtName.Text(),
+ "for version",
+ data.WrappedInstance(),
+ '',
+ GlobalParameters_MP::GetKB_New(),
+ 'Test',
+ RadioButtonGroupStorageState.BoundValue(),
+ Domain.MDSStorageDefinitionManager().Enabled(),
+ Domain.MDSStorageDefinitionManager().DatasetStoreEnabled(),
+ Domain.MDSStorageDefinitionManager().DatabaseEnabled() );
+ *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/_ROOT_Component_DialogCreateEditScenario.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/_ROOT_Component_DialogCreateEditScenario.def
index c446fac..c7bba6d 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/_ROOT_Component_DialogCreateEditScenario.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/_ROOT_Component_DialogCreateEditScenario.def
@@ -6,5 +6,6 @@
Children:
[
#child: pnlContent
+ #child: pnlActions
]
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogVersionIDCopy/Component_pnlActions.def b/_Main/UI/MacroPlannerWebApp/Component_DialogVersionIDCopy/Component_pnlActions.def
new file mode 100644
index 0000000..b965c94
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogVersionIDCopy/Component_pnlActions.def
@@ -0,0 +1,52 @@
+Quintiq file version 2.0
+Component pnlActions
+{
+ #keys: '[412960.0.149440162]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component btnApply
+ {
+ #keys: '[412960.0.149440164]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Label: 'Apply'
+ Taborder: 0
+ Visible: false
+ ]
+ }
+ Component btnOk
+ {
+ #keys: '[412960.0.149440166]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Label: 'OK'
+ Taborder: 1
+ ]
+ }
+ Component btnCancel
+ {
+ #keys: '[412960.0.149440168]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Label: 'Cancel'
+ Taborder: 2
+ Visible: false
+ ]
+ }
+ ]
+ Properties:
+ [
+ Alignment: 'trailing'
+ Border: true
+ ExcludeFromActiveComponent: true
+ FixedSize: true
+ Orientation: 'horizontal'
+ Padding: 'true'
+ Style: 'footer'
+ Taborder: 1
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogVersionIDCopy/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogVersionIDCopy/Component_pnlContent.def
new file mode 100644
index 0000000..4b48663
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogVersionIDCopy/Component_pnlContent.def
@@ -0,0 +1,24 @@
+Quintiq file version 2.0
+Component pnlContent
+{
+ #keys: '[412960.0.149440160]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component lblContent
+ {
+ #keys: '[412960.0.149330142]'
+ BaseType: 'WebLabel'
+ Properties:
+ [
+ FixedSize: false
+ Taborder: 0
+ ]
+ }
+ ]
+ Properties:
+ [
+ Padding: 'true'
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogVersionIDCopy/Method_JustShow.def b/_Main/UI/MacroPlannerWebApp/Component_DialogVersionIDCopy/Method_JustShow.def
new file mode 100644
index 0000000..c96d6db
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogVersionIDCopy/Method_JustShow.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#parent: #root
+Method JustShow () id:Method_DialogVersionIDCopy_JustShow
+{
+ #keys: '[412960.0.149561615]'
+ Body:
+ [*
+ ApplicationMacroPlanner.ShowFormModal( this );
+ *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogVersionIDCopy/Response_pnlActions_btnApply_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogVersionIDCopy/Response_pnlActions_btnApply_OnClick.def
new file mode 100644
index 0000000..0d2dfc5
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogVersionIDCopy/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: '[412960.0.149440170]'
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ GroupServerCalls: true
+ Precondition:
+ [*
+ return Form.HasChanges();
+ *]
+ QuillAction
+ {
+ Body:
+ [*
+ Form.ApplyChanges();
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogVersionIDCopy/Response_pnlActions_btnCancel_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogVersionIDCopy/Response_pnlActions_btnCancel_OnClick.def
new file mode 100644
index 0000000..a410594
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogVersionIDCopy/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: '[412960.0.149440172]'
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ Form.Close();
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogVersionIDCopy/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogVersionIDCopy/Response_pnlActions_btnOk_OnClick.def
new file mode 100644
index 0000000..e7234ce
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogVersionIDCopy/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: '[412960.0.149440171]'
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ Form.ApplyChanges();
+ Form.Close();
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogVersionIDCopy/_ROOT_Component_DialogVersionIDCopy.def b/_Main/UI/MacroPlannerWebApp/Component_DialogVersionIDCopy/_ROOT_Component_DialogVersionIDCopy.def
new file mode 100644
index 0000000..3a9db4f
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogVersionIDCopy/_ROOT_Component_DialogVersionIDCopy.def
@@ -0,0 +1,24 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent DialogVersionIDCopy
+{
+ #keys: '[412960.0.149440158]'
+ BaseType: 'WebForm'
+ Children:
+ [
+ #child: pnlContent
+ #child: pnlActions
+ ]
+ Properties:
+ [
+ Alignment: 'trailing'
+ Description: '灞曠ず鍏ㄩ噺鐗堟湰鍙蜂互澶嶅埗'
+ EnterButton: 'btnOk'
+ EscapeButton: 'btnCancel'
+ ExcludeFromActiveComponent: true
+ Image: 'DATA_COPY'
+ Padding: 'false'
+ Title: '鍏ㄩ噺鐗堟湰鍙�'
+ ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_ListOrderLock\043844.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_ListOrderLock\043844.def"
new file mode 100644
index 0000000..17d2167
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_ListOrderLock\043844.def"
@@ -0,0 +1,42 @@
+Quintiq file version 2.0
+Component ListOrderLock id:ListOrderLock_844
+{
+ #keys: '[412960.0.217980651]'
+ BaseType: 'WebList'
+ Children:
+ [
+ Component DataExtractorOrderLock743
+ {
+ #keys: '[412960.0.217980652]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'structured[CustomerOrder]'
+ Description: '鑾峰彇璁㈠崟'
+ Source: 'DataHolderOrderLock'
+ Taborder: 0
+ Transformation: 'Elements'
+ ]
+ }
+ #child: listActionBarPageOrderLock_1
+ Component DataSetLevelOrderLock
+ {
+ #keys: '[412960.0.217980654]'
+ BaseType: 'WebDataSetLevel'
+ Children:
+ [
+ #child: listContextMenuOrderLock_1
+ ]
+ Properties:
+ [
+ Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderID","title":"OrderID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"ProductID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesSegmentName","title":"SalesSegmentName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SalesSegmentName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerName","title":"CustomerName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasureName","title":"UnitOfMeasureName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasureName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Price","title":"Price","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Price"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"EndDate","title":"EndDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"EndDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsFirmed","title":"IsFirmed","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsFirmed"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"First.AsPlanningBaseSalesDemandInPeriod.End","title":"End","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"First.AsPlanningBaseSalesDemandInPeriod.End"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"LastModify","title":"LastModify","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"LastModify"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"LastModifyTime","title":"LastModifyTime","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"LastModifyTime"}}]'
+ ContextMenu: 'listContextMenuOrderLock'
+ Taborder: 2
+ ]
+ }
+ ]
+ Properties:
+ [
+ Taborder: 0
+ ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_MatrixEditorProductPlanning\043679.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_MatrixEditorProductPlanning\043679.def"
new file mode 100644
index 0000000..401adf5
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_MatrixEditorProductPlanning\043679.def"
@@ -0,0 +1,210 @@
+Quintiq file version 2.0
+Component MatrixEditorProductPlanning id:MatrixEditorProductPlanning_679
+{
+ #keys: '[412960.0.220270414]'
+ BaseType: 'WebMatrixEditor'
+ Children:
+ [
+ Component MatrixEditorCellPISPIP
+ {
+ #keys: '[412960.0.220270415]'
+ BaseType: 'WebMatrixEditorCell'
+ Children:
+ [
+ Component DataExtractorPISPIP
+ {
+ #keys: '[412960.0.220270416]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'structured[ProductInStockingPoint_MP]'
+ FixedFilter: 'not object.ProductInStockingPoint_MP().IsSystem() and object.ProductInStockingPoint_MP().IsLeaf()'
+ Source: 'ApplicationMacroPlanner.DataHolderPISP'
+ Taborder: 0
+ Transformation: 'Elements.ProductInStockingPointInPeriod'
+ ]
+ }
+ ]
+ Properties:
+ [
+ Attributes: 'DisplaySupplyQuantity;DependentDemandAndSalesDemandQuantity;TargetInventoryLevel;InventoryLevelEnd;StockLevelInDays'
+ Column: 'Period_MP'
+ Row: 'ProductInStockingPoint_MP'
+ Taborder: 2
+ ]
+ }
+ Component MatrixEditorRowsPISP
+ {
+ #keys: '[412960.0.220270417]'
+ BaseType: 'WebMatrixEditorHeaderLevel'
+ Children:
+ [
+ Component DataExtractorPISP
+ {
+ #keys: '[412960.0.220270418]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'CustomerOrder'
+ ExtractionMode: 'Selected'
+ FixedFilter: 'not object.IsSystem() and object.IsLeaf()'
+ Source: 'ListOrderLock'
+ Taborder: 0
+ Transformation: 'ProductInStockingPoint_MP'
+ ]
+ }
+ ]
+ Properties:
+ [
+ Legend: 'Name'
+ SortCriteria: 'Product_MP.DisplayIndex;Name'
+ Taborder: 0
+ ]
+ }
+ Component MatrixEditorColumnsPeriod
+ {
+ #keys: '[412960.0.220270419]'
+ BaseType: 'WebMatrixEditorHeaderLevel'
+ Children:
+ [
+ Component DataExtractorPeriod
+ {
+ #keys: '[412960.0.220270420]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'structured[Period_MP]'
+ Source: 'ApplicationMacroPlanner.DataHolderPeriods'
+ Taborder: 0
+ Transformation: 'Elements'
+ ]
+ }
+ ]
+ Properties:
+ [
+ Legend: 'Start'
+ SortCriteria: 'Start'
+ Taborder: 1
+ ]
+ }
+ Component UserConfigurableInformationMatrixEditorProductPlanning
+ {
+ #keys: '[412960.0.220270421]'
+ BaseType: 'WebUserConfigurableInformation'
+ Properties:
+ [
+ Identifier: 'Cell: PISPIP'
+ ObjectType: 'ProductInStockingPointInPeriod'
+ Taborder: 3
+ Text: 'Test text'
+ Tooltip: '<table><tr><td><b>SYNONYM(object.InventoryLevelEnd())</b></td><td>VALUE( MacroPlan::GetDisplayValue( object.InventoryLevelEnd() ) )</td><td>VALUE(object.ProductInStockingPoint_MP().UnitOfMeasureName())</td><td><b>Inventory holding cost </b></td><td>VALUE(object.TotalBaseInventoryHoldingCost())VALUE( \' \'+ object.ProductInStockingPoint_MP().StockingPoint_MP().Currency_MP().Symbol() )</td><td>VALUE( \'[\' + object.TotalBaseInventoryHoldingCostPerQuantity().Format(\'N(Dec(2))\') )</td><td>VALUE( object.ProductInStockingPoint_MP().StockingPoint_MP().Currency_MP().Symbol() + \'/\' + object.ProductInStockingPoint_MP().UnitOfMeasure_MP().Name() + \']\' ) </td></tr><tr><td><b>SYNONYM(object.StockLevelInDays())</b></td><td>VALUE(object.StockLevelInDays)</td><td>day</td></tr><tr><td><b>Total supply </b></td><td>VALUE(object.SupplyQuantity())</td><td>VALUE(object.ProductInStockingPoint_MP().UnitOfMeasureName())</td><td/><td><b>Total demand </b></td><td>VALUE(object.GetDemandQuantity())</td><td>VALUE(object.ProductInStockingPoint_MP().UnitOfMeasureName())</td></tr><br><tr><td><b>Inventory start </b></td><td>VALUE( guard( MacroPlan::GetDisplayValue( object.InventoryLevelStartPISPIP().InventoryLevelEnd() ), 0.0 ) )</td><td>VALUE(object.ProductInStockingPoint_MP().UnitOfMeasureName())</td><td/><td><b>Sales demand </b></td><td>VALUE(object.SalesDemandQuantity())</td><td>VALUE(object.ProductInStockingPoint_MP().UnitOfMeasureName())</td></tr><tr><td><b>New supply </b></td><td>VALUE(object.NewSupplyQuantity())</td><td>VALUE(object.ProductInStockingPoint_MP().UnitOfMeasureName())</td><td/><td><b>Dependent demand </b></td><td>VALUE(object.DependentDemandQuantity())</td><td>VALUE(object.ProductInStockingPoint_MP().UnitOfMeasureName())</td></tr><tr><td><b>Inventory supply </b></td><td>VALUE(object.InventorySupplyQuantity())</td><td>VALUE(object.ProductInStockingPoint_MP().UnitOfMeasureName())</td><td/><td><b>Fulfilled demand </b></td><td>VALUE(object.FulfilledDemandQuantity() )</td><td>VALUE(object.ProductInStockingPoint_MP().UnitOfMeasureName())</td></tr></table><hr>VALUE( object.ImgHasFeedback() ) VALUE( ifexpr( object.HasFeedback() , " Feedback message exist. Refer to Supply Planning matrix for details." , "" ) )'
+ ]
+ }
+ #child: matrixEditorActionBarPageProductPlanning_1
+ #child: matrixeditorContextMenuProductPlanning_1
+ ]
+ Properties:
+ [
+ AllowAttributeConfiguration: true
+ AllowMultipleAttributes: true
+ Columns: 'MatrixEditorColumnsPeriod'
+ ContextMenu: 'matrixeditorContextMenuProductPlanning'
+ Rows: 'MatrixEditorRowsPISP'
+ ShowEditability: true
+ ShowSingleAttribute: true
+ Taborder: 0
+ ]
+ ResponseDefinitions:
+ [
+ DelegatedResponseDefinition OnClick id:Responsedef_MatrixEditorProductPlanning_679_WebMenu_OnClick
+ {
+ #keys: '[412960.0.220270401]'
+ Initiator: 'WebMenu'
+ IsInherited: false
+ ResponseType: 'OnClick'
+ Arguments:
+ [
+ ResponseDefinitionArgument selection
+ {
+ #keys: '[6763.0.7990336]'
+ Binding: 'this.Selection()'
+ }
+ ]
+ }
+ DelegatedResponseDefinition OnClick id:Responsedef_MatrixEditorProductPlanning_679_WebButton_OnClick
+ {
+ #keys: '[412960.0.220270400]'
+ Initiator: 'WebButton'
+ IsInherited: false
+ ResponseType: 'OnClick'
+ Arguments:
+ [
+ ResponseDefinitionArgument selection
+ {
+ #keys: '[6763.0.7990409]'
+ Binding: 'this.Selection()'
+ }
+ ]
+ }
+ DelegatedResponseDefinition OnClick id:Responsedef_MatrixEditorProductPlanning_679_WebMenu_OnClick_119
+ {
+ #keys: '[412960.0.220270399]'
+ Initiator: 'WebMenu'
+ IsInherited: false
+ ResponseType: 'OnClick'
+ Arguments:
+ [
+ ResponseDefinitionArgument selectedrows
+ {
+ #keys: '[6763.0.7990482]'
+ Binding: 'this.SelectedRows()'
+ }
+ ]
+ }
+ DelegatedResponseDefinition OnClick id:Responsedef_MatrixEditorProductPlanning_679_WebButton_OnClick_720
+ {
+ #keys: '[412960.0.220270398]'
+ Initiator: 'WebButton'
+ IsInherited: false
+ ResponseType: 'OnClick'
+ Arguments:
+ [
+ ResponseDefinitionArgument selectedrows
+ {
+ #keys: '[6763.0.7990555]'
+ Binding: 'this.SelectedRows()'
+ }
+ ]
+ }
+ DelegatedResponseDefinition OnClick id:Responsedef_MatrixEditorProductPlanning_679_WebMenu_OnClick_640
+ {
+ #keys: '[412960.0.220270397]'
+ Initiator: 'WebMenu'
+ IsInherited: false
+ ResponseType: 'OnClick'
+ Arguments:
+ [
+ ResponseDefinitionArgument selectedcolumns
+ {
+ #keys: '[6763.0.7990628]'
+ Binding: 'this.SelectedColumns()'
+ }
+ ]
+ }
+ DelegatedResponseDefinition OnClick id:Responsedef_MatrixEditorProductPlanning_679_WebButton_OnClick_582
+ {
+ #keys: '[412960.0.220270396]'
+ Initiator: 'WebButton'
+ IsInherited: false
+ ResponseType: 'OnClick'
+ Arguments:
+ [
+ ResponseDefinitionArgument selectedcolumns
+ {
+ #keys: '[6763.0.7990701]'
+ Binding: 'this.SelectedColumns()'
+ }
+ ]
+ }
+ ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelMatrix\043780.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelMatrix\043780.def"
new file mode 100644
index 0000000..3aee833
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelMatrix\043780.def"
@@ -0,0 +1,24 @@
+Quintiq file version 2.0
+Component PanelMatrix id:PanelMatrix_780
+{
+ #keys: '[412960.0.220270412]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component DataHolderSelectedPISPIPsInProductPlanningMatrix
+ {
+ #keys: '[412960.0.220270413]'
+ BaseType: 'WebDataHolder'
+ Databinding: 'structured[ProductInStockingPointInPeriod]*'
+ Properties:
+ [
+ Taborder: 1
+ ]
+ }
+ #child: MatrixEditorProductPlanning_679
+ ]
+ Properties:
+ [
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLock.def b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLock.def
new file mode 100644
index 0000000..8565401
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLock.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+Component PanelOrderLock
+{
+ #keys: '[412960.0.212571359]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ #child: PanelOrderLockHeader_545
+ #child: PanelOrderLockOrder
+ #child: PanelOrderLockPlanning
+ ]
+ Properties:
+ [
+ Taborder: 0
+ ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLockHeader\043545.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLockHeader\043545.def"
new file mode 100644
index 0000000..4ff0600
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLockHeader\043545.def"
@@ -0,0 +1,125 @@
+Quintiq file version 2.0
+Component PanelOrderLockHeader id:PanelOrderLockHeader_545
+{
+ #keys: '[412960.0.212571440]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component LabelOrderLockHeaderVersion
+ {
+ #keys: '[412960.0.212571441]'
+ BaseType: 'WebLabel'
+ Properties:
+ [
+ Description: 'MPS鐗堟湰鍚嶇О'
+ Label: 'MPS鐗堟湰锛�'
+ Taborder: 0
+ ]
+ }
+ Component EditFieldOrderLockHeader
+ {
+ #keys: '[412960.0.212571468]'
+ BaseType: 'WebEditField'
+ Properties:
+ [
+ Description: '妯$硦鎼滅储绛涢�夋'
+ PlaceHolder: '妯$硦鎼滅储'
+ Taborder: 1
+ ]
+ }
+ Component DateSelectorOrderLockHeaderCustomerOrder
+ {
+ #keys: '[412960.0.212571527]'
+ BaseType: 'WebDateSelector'
+ Properties:
+ [
+ Date: 2023-01-01
+ Description: '瀹㈡埛闇�姹傛椂闂�'
+ Label: '瀹㈡埛闇�姹傛椂闂�'
+ Taborder: 3
+ ]
+ }
+ Component DateSelectorOrderLockHeaderPlanDeliver
+ {
+ #keys: '[412960.0.212571611]'
+ BaseType: 'WebDateSelector'
+ Properties:
+ [
+ Date: 2023-01-01
+ Description: '璁″垝浜や粯鏃堕棿'
+ Label: '璁″垝浜や粯鏃堕棿'
+ Taborder: 4
+ ]
+ }
+ Component ButtonOrderLockHeader
+ {
+ #keys: '[412960.0.212571669]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ ButtonSize: 'compact'
+ Description: '妯$硦鎼滅储鎸夐挳'
+ Label: '鎼滅储'
+ Taborder: 2
+ ]
+ }
+ Component RadioButtonGroupOrderLockHeader
+ {
+ #keys: '[412960.0.212571696]'
+ BaseType: 'WebRadioButtonGroup'
+ Properties:
+ [
+ BoundValue: 'all'
+ ButtonLabels: '宸查攣瀹�;鏈攣瀹�;鍏ㄩ儴'
+ ButtonValues: 'locked;unlocked;all'
+ DataBinding: 'DataHolderOrderLockGlobal.Data.IsOrderLocked'
+ Description: '鏄惁閿佸畾鐨勭偣閫夋'
+ Orientation: 'horizontal'
+ Taborder: 5
+ ]
+ }
+ Component ButtonOrderLockHeaderLock
+ {
+ #keys: '[412960.0.221760476]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ ButtonSize: 'compact'
+ Description: '璁㈠崟閿佸畾'
+ Label: '閿佸畾'
+ Taborder: 7
+ ]
+ }
+ Component ButtonOrderLockHeaderUnlock
+ {
+ #keys: '[412960.0.221760488]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ ButtonSize: 'compact'
+ Description: '璁㈠崟瑙i攣'
+ Label: '瑙i攣'
+ Taborder: 8
+ ]
+ }
+ Component ButtonOrderLockHeaderClear
+ {
+ #keys: '[412960.0.223264324]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ ButtonSize: 'compact'
+ Description: '娓呴櫎绛涢�夐」'
+ Label: '娓呴櫎绛涢��'
+ Taborder: 6
+ ]
+ }
+ ]
+ Properties:
+ [
+ Description: '鏀剧疆lable锛屾寜閽瓑'
+ FixedSize: true
+ Orientation: 'horizontal'
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLockOrder.def b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLockOrder.def
new file mode 100644
index 0000000..3a8891a
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLockOrder.def
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+Component PanelOrderLockOrder
+{
+ #keys: '[412960.0.217980613]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ #child: ListOrderLock_844
+ ]
+ Properties:
+ [
+ Description: '璁㈠崟淇℃伅灞曠ず'
+ Taborder: 1
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLockPlanning.def b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLockPlanning.def
new file mode 100644
index 0000000..e908a3c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLockPlanning.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+Component PanelOrderLockPlanning
+{
+ #keys: '[412960.0.220270252]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ #child: PanelMatrix_780
+ ]
+ Properties:
+ [
+ Border: true
+ Description: '璁㈠崟瀵瑰簲鐨勮鍒掓暟鎹�'
+ Taborder: 2
+ Title: '璁″垝璇︽儏'
+ ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_listActionBarPageOrderLock\0431.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_listActionBarPageOrderLock\0431.def"
new file mode 100644
index 0000000..a529251
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_listActionBarPageOrderLock\0431.def"
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listActionBarPageOrderLock id:listActionBarPageOrderLock_1
+{
+ #keys: '[412960.0.217980653]'
+ BaseType: 'listActionBarPage'
+ Properties:
+ [
+ Taborder: 1
+ ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_listContextMenuOrderLock\0431.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_listContextMenuOrderLock\0431.def"
new file mode 100644
index 0000000..bc2e00d
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_listContextMenuOrderLock\0431.def"
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listContextMenuOrderLock id:listContextMenuOrderLock_1
+{
+ #keys: '[412960.0.217980655]'
+ BaseType: 'listContextMenu'
+ Properties:
+ [
+ Taborder: 0
+ ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_matrixEditorActionBarPageProductPlanning\0431.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_matrixEditorActionBarPageProductPlanning\0431.def"
new file mode 100644
index 0000000..4e41b90
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_matrixEditorActionBarPageProductPlanning\0431.def"
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component matrixEditorActionBarPageProductPlanning id:matrixEditorActionBarPageProductPlanning_1
+{
+ #keys: '[412960.0.220270422]'
+ BaseType: 'matrixEditorActionBarPage'
+ Properties:
+ [
+ Taborder: 5
+ ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_matrixeditorContextMenuProductPlanning\0431.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_matrixeditorContextMenuProductPlanning\0431.def"
new file mode 100644
index 0000000..79d4472
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_matrixeditorContextMenuProductPlanning\0431.def"
@@ -0,0 +1,57 @@
+Quintiq file version 2.0
+Component matrixeditorContextMenuProductPlanning id:matrixeditorContextMenuProductPlanning_1
+{
+ #keys: '[412960.0.220270423]'
+ BaseType: 'matrixeditorContextMenu'
+ Children:
+ [
+ Component MenuCopy
+ {
+ #keys: '[138034.3.1296123318]'
+ BaseType: 'MenuCopy'
+ IsDerived: true
+ Properties:
+ [
+ Taborder: 2
+ ]
+ }
+ Component MenuSeparator3
+ {
+ #keys: '[412960.0.220270424]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ Separator: true
+ Taborder: 1
+ ]
+ }
+ Component MenuLock
+ {
+ #keys: '[412960.0.220270427]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ DelegationID: 'ActionBarPlan_Lock'
+ Image: 'LOCK'
+ Taborder: 3
+ Title: 'Lock'
+ ]
+ }
+ Component MenuUnlock
+ {
+ #keys: '[412960.0.220270428]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ DelegationID: 'ActionBarPlan_Unlock'
+ Image: 'LOCK_OPEN'
+ Taborder: 4
+ Title: 'Unlock'
+ ]
+ }
+ ]
+ Properties:
+ [
+ Taborder: 4
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_MatrixEditorProductPlanning_679_MenuLock_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_MatrixEditorProductPlanning_679_MenuLock_OnClick.def
new file mode 100644
index 0000000..38cee0b
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_MatrixEditorProductPlanning_679_MenuLock_OnClick.def
@@ -0,0 +1,34 @@
+Quintiq file version 2.0
+#parent: MatrixEditorProductPlanning_679
+Response OnClick (
+ structured[ProductInStockingPointInPeriod] selection
+) id:Response_MatrixEditorProductPlanning_679_MenuLock_OnClick
+{
+ #keys: '[412960.0.220270410]'
+ CanBindMultiple: false
+ DefinitionID => /MatrixEditorProductPlanning_679/Responsedef_MatrixEditorProductPlanning_679_WebMenu_OnClick
+ Initiator: 'MenuLock'
+ Precondition:
+ [*
+ return ProductInStockingPointInPeriod::CanLockUnlock( selection, feedback );
+ *]
+ QuillAction
+ {
+ Body:
+ [*
+ // Lock total supply quantity for PISPIPs
+ // This is a workaround, we supposedly set the bindingtype of selection as the subtype, but
+ // the response would have trouble handling multiple cell selection, so for now, we bind the base type
+ // then select the subtype
+
+
+ pispipLeafs := selectset( selection,
+ Elements.astype( ProductInStockingPointInPeriodPlanningLeaf ),
+ pispip,
+ true );
+
+ ProductInStockingPointInPeriod::LockUnlockPlanning( pispipLeafs, true, true );
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_MatrixEditorProductPlanning_679_MenuUnlock_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_MatrixEditorProductPlanning_679_MenuUnlock_OnClick.def
new file mode 100644
index 0000000..7615c08
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_MatrixEditorProductPlanning_679_MenuUnlock_OnClick.def
@@ -0,0 +1,30 @@
+Quintiq file version 2.0
+#parent: MatrixEditorProductPlanning_679
+Response OnClick (
+ structured[ProductInStockingPointInPeriod] selection
+) id:Response_MatrixEditorProductPlanning_679_MenuUnlock_OnClick
+{
+ #keys: '[412960.0.220270407]'
+ CanBindMultiple: false
+ DefinitionID => /MatrixEditorProductPlanning_679/Responsedef_MatrixEditorProductPlanning_679_WebMenu_OnClick
+ Initiator: 'MenuUnlock'
+ Precondition:
+ [*
+ return ProductInStockingPointInPeriod::CanLockUnlock( selection, feedback );
+ *]
+ QuillAction
+ {
+ Body:
+ [*
+ // Unlock the total supply quantity of pispips
+ // This is a workaround, we supposedly set the bindingtype of selection as the subtype, but
+ // the response would have trouble handling multiple cell selection, so for now, we bind the base type
+ // then select the subtype
+
+ pispipLeafs := selectset( selection, Elements.astype( ProductInStockingPointInPeriodPlanningLeaf ), pispip,
+ true );
+ ProductInStockingPointInPeriod::LockUnlockPlanning( pispipLeafs, false, true );
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_MatrixEditorProductPlanning_679_OnCheckEditability.def b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_MatrixEditorProductPlanning_679_OnCheckEditability.def
new file mode 100644
index 0000000..2dea2ca
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_MatrixEditorProductPlanning_679_OnCheckEditability.def
@@ -0,0 +1,43 @@
+Quintiq file version 2.0
+#parent: MatrixEditorProductPlanning_679
+Response OnCheckEditability (
+ structured[ProductInStockingPointInPeriodPlanning] cell,
+ Real value
+) id:Response_MatrixEditorProductPlanning_679_OnCheckEditability
+{
+ #keys: '[412960.0.220270404]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebMatrixEditor_OnCheckEditability'
+ QuillAction
+ {
+ Body:
+ [*
+ //Precondition
+ attributes := construct( Strings );
+ attributes.Add(focusedattribute);
+ isSupply_o := false;
+ feedback :="";
+
+ cond := MacroPlan.CanPlan( feedback )
+ and ProductInStockingPointInPeriod::CanEnterSupplyQuantity( feedback,
+ cell,
+ attributes,
+ isSupply_o );
+ if( cond )
+ {
+ if( isSupply_o )
+ {
+ periods := selectset( cell, Elements.Period_MP, period, true );
+ cond := ScenarioManager::CanStartSmartPlan( ScenarioManager,
+ DataHolderActiveScenario.Data(),
+ true,
+ periods,
+ feedback );
+ }
+ }
+ editinfo.CanEdit( cond );
+ editinfo.UserHint( feedback );
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_MatrixEditorProductPlanning_679_OnUserSelectionChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_MatrixEditorProductPlanning_679_OnUserSelectionChanged.def
new file mode 100644
index 0000000..d90381f
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_MatrixEditorProductPlanning_679_OnUserSelectionChanged.def
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: MatrixEditorProductPlanning_679
+Response OnUserSelectionChanged (
+ structured[ProductInStockingPointInPeriod] selection
+) id:Response_MatrixEditorProductPlanning_679_OnUserSelectionChanged
+{
+ #keys: '[412960.0.220270402]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebMatrixEditor_OnUserSelectionChanged'
+ QuillAction
+ {
+ Body:
+ [*
+ //Assign selection to data holder
+ DataHolderSelectedPISPIPsInProductPlanningMatrix.Data( selection.Copy() );
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_ButtonOrderLockHeaderClear_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_ButtonOrderLockHeaderClear_OnClick.def
new file mode 100644
index 0000000..2adc0a4
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_ButtonOrderLockHeaderClear_OnClick.def
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: PanelOrderLockHeader_545/ButtonOrderLockHeaderClear
+Response OnClick () id:Response_PanelOrderLockHeader_545_ButtonOrderLockHeaderClear_OnClick
+{
+ #keys: '[412960.0.223264347]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ EditFieldOrderLockHeader.Text( "" );
+ DateSelectorOrderLockHeaderCustomerOrder.Date( Date::Construct(2023,1,1) );
+ DateSelectorOrderLockHeaderPlanDeliver.Date( Date::Construct(2023,1,1) );
+ RadioButtonGroupOrderLockHeader.BoundValue( "all" );
+ DataExtractorOrderLock.FixedFilter( "true" );
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_ButtonOrderLockHeader_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_ButtonOrderLockHeader_OnClick.def
new file mode 100644
index 0000000..ddeca1c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_ButtonOrderLockHeader_OnClick.def
@@ -0,0 +1,58 @@
+Quintiq file version 2.0
+#parent: PanelOrderLockHeader_545/ButtonOrderLockHeader
+Response OnClick () id:Response_PanelOrderLockHeader_545_ButtonOrderLockHeader_OnClick
+{
+ #keys: '[412960.0.221841965]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ thisfilter := "( object.OrderID().LikeUserLocale( " + EditFieldOrderLockHeader.Text().AsQUILL() + " )"
+ + " or " + "object.ProductID().LikeUserLocale( " + EditFieldOrderLockHeader.Text().AsQUILL() + " )"
+ + " or " + "object.UnitOfMeasureName().LikeUserLocale( " + EditFieldOrderLockHeader.Text().AsQUILL() + " )"
+ + " or " + "object.StockingPointID().LikeUserLocale( " + EditFieldOrderLockHeader.Text().AsQUILL() + " )"
+ + " or " + "object.CustomerName().LikeUserLocale( " + EditFieldOrderLockHeader.Text().AsQUILL() + " )"
+ + " or " + "object.SalesSegmentName().LikeUserLocale( " + EditFieldOrderLockHeader.Text().AsQUILL() + " ) )" ;
+
+ existfilter := DataExtractorOrderLock.FixedFilter();
+ if( existfilter = "true" ){
+ existfilter := "";
+ }
+ existfilterlist := existfilter.Tokenize( " and " );
+
+ newfilter := "";
+ findcount := 0;
+ traverse( existfilterlist, Elements, filter ){
+ if( filter.FindString( "OrderID()", 0 ) >= 0 ){
+ if( newfilter = "" ){
+ newfilter := thisfilter;
+ }else{
+ newfilter := newfilter + " and " + thisfilter;
+ }
+ findcount := 1;
+ }else{
+ if( newfilter = "" ){
+ newfilter := filter;
+ }else{
+ newfilter := newfilter + " and " + filter;
+ }
+ }
+ }
+
+ if( findcount = 0 ){
+ if( newfilter = "" ){
+ newfilter := thisfilter;
+ }else{
+ newfilter := newfilter + " and " + thisfilter;
+ }
+ }
+
+ info( newfilter );
+
+ DataExtractorOrderLock.FixedFilter( newfilter );
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderCustomerOrder_O.def b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderCustomerOrder_O.def
new file mode 100644
index 0000000..5fa0f71
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderCustomerOrder_O.def
@@ -0,0 +1,51 @@
+Quintiq file version 2.0
+#parent: PanelOrderLockHeader_545/DateSelectorOrderLockHeaderCustomerOrder
+Response OnChanged () id:Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderCustomerOrder_OnChanged
+{
+ #keys: '[412960.0.221842202]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebDateTimeFieldBase_OnChanged'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ existfilter := DataExtractorOrderLock.FixedFilter();
+ if( existfilter = "true" ){
+ existfilter := "";
+ }
+ existfilterlist := existfilter.Tokenize( " and " );
+
+ newfilter := "";
+ findcount := 0;
+ traverse( existfilterlist, Elements, filter ){
+ if( filter.FindString( "EndDate()", 0 ) >= 0 ){
+ if( newfilter = "" ){
+ newfilter := "( object.EndDate() = " + this.Date().AsQUILL() + " )";
+ }else{
+ newfilter := newfilter + " and " + "( object.EndDate() = " + this.Date().AsQUILL() + " )";
+ }
+ findcount := 1;
+ }else{
+ if( newfilter = "" ){
+ newfilter := filter;
+ }else{
+ newfilter := newfilter + " and " + filter;
+ }
+ }
+ }
+
+ if( findcount = 0 ){
+ if( newfilter = "" ){
+ newfilter := "( object.EndDate() = " + this.Date().AsQUILL() + " )";
+ }else{
+ newfilter := newfilter + " and " + "( object.EndDate() = " + this.Date().AsQUILL() + " )";
+ }
+ }
+
+ info( newfilter );
+
+ DataExtractorOrderLock.FixedFilter( newfilter );
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderPlanDeliver_OnC.def b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderPlanDeliver_OnC.def
new file mode 100644
index 0000000..a5fda9c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderPlanDeliver_OnC.def
@@ -0,0 +1,51 @@
+Quintiq file version 2.0
+#parent: PanelOrderLockHeader_545/DateSelectorOrderLockHeaderPlanDeliver
+Response OnChanged () id:Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderPlanDeliver_OnChanged
+{
+ #keys: '[412960.0.221842649]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebDateTimeFieldBase_OnChanged'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ existfilter := DataExtractorOrderLock.FixedFilter();
+ if( existfilter = "true" ){
+ existfilter := "";
+ }
+ existfilterlist := existfilter.Tokenize( " and " );
+
+ newfilter := "";
+ findcount := 0;
+ traverse( existfilterlist, Elements, filter ){
+ if( filter.FindString( "End()", 0 ) >= 0 and filter.FindString( "EndDate()", 0 ) < 0 ){
+ if( newfilter = "" ){
+ newfilter := "( object.First().AsPlanningBaseSalesDemandInPeriod().End().Date() = " + this.Date().AsQUILL() + " )";
+ }else{
+ newfilter := newfilter + " and " + "( object.First().AsPlanningBaseSalesDemandInPeriod().End().Date() = " + this.Date().AsQUILL() + " )";
+ }
+ findcount := 1;
+ }else{
+ if( newfilter = "" ){
+ newfilter := filter;
+ }else{
+ newfilter := newfilter + " and " + filter;
+ }
+ }
+ }
+
+ if( findcount = 0 ){
+ if( newfilter = "" ){
+ newfilter := "( object.First().AsPlanningBaseSalesDemandInPeriod().End().Date() = " + this.Date().AsQUILL() + " )";
+ }else{
+ newfilter := newfilter + " and " + "( object.First().AsPlanningBaseSalesDemandInPeriod().End().Date() = " + this.Date().AsQUILL() + " )";
+ }
+ }
+
+ info( newfilter );
+
+ DataExtractorOrderLock.FixedFilter( newfilter );
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_RadioButtonGroupOrderLockHeader_OnChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_RadioButtonGroupOrderLockHeader_OnChanged.def
new file mode 100644
index 0000000..5e6da38
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_RadioButtonGroupOrderLockHeader_OnChanged.def
@@ -0,0 +1,69 @@
+Quintiq file version 2.0
+#parent: PanelOrderLockHeader_545/RadioButtonGroupOrderLockHeader
+Response OnChanged () id:Response_PanelOrderLockHeader_545_RadioButtonGroupOrderLockHeader_OnChanged
+{
+ #keys: '[412960.0.221843171]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebRadioButtonGroup_OnChanged'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ existfilter := DataExtractorOrderLock.FixedFilter();
+ if( existfilter = "true" ){
+ existfilter := "";
+ }
+ existfilterlist := existfilter.Tokenize( " and " );
+
+ newfilter := "";
+ findcount := 0;
+ traverse( existfilterlist, Elements, filter ){
+ if( filter.FindString( "IsFirmed()", 0 ) >= 0 ){
+ if( this.BoundValue() = "locked" ){
+ if( newfilter = "" ){
+ newfilter := "( object.IsFirmed() = true )";
+ }else{
+ newfilter := newfilter + " and " + "( object.IsFirmed() = true )";
+ }
+ }else if( this.BoundValue() = "unlocked" ){
+ if( newfilter = "" ){
+ newfilter := "( object.IsFirmed() = false )";
+ }else{
+ newfilter := newfilter + " and " + "( object.IsFirmed() = false )";
+ }
+ }else if( this.BoundValue() = "all" ){
+ newfilter := newfilter + "";
+ }
+ findcount := 1;
+ }else{
+ if( newfilter = "" ){
+ newfilter := filter;
+ }else{
+ newfilter := newfilter + " and " + filter;
+ }
+ }
+ }
+
+ if( findcount = 0 ){
+ if( this.BoundValue() = "locked" ){
+ if( newfilter = "" ){
+ newfilter := "( object.IsFirmed() = true )";
+ }else{
+ newfilter := newfilter + " and " + "( object.IsFirmed() = true )";
+ }
+ }else if( this.BoundValue() = "unlocked" ){
+ if( newfilter = "" ){
+ newfilter := "( object.IsFirmed() = false )";
+ }else{
+ newfilter := newfilter + " and " + "( object.IsFirmed() = false )";
+ }
+ }else if( this.BoundValue() = "all" ){
+ newfilter := newfilter + "";
+ }
+ }
+
+ DataExtractorOrderLock.FixedFilter( newfilter );
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/_ROOT_Component_FormOrderLock.def b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/_ROOT_Component_FormOrderLock.def
new file mode 100644
index 0000000..6834735
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/_ROOT_Component_FormOrderLock.def
@@ -0,0 +1,55 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent FormOrderLock
+{
+ #keys: '[412960.0.212511678]'
+ BaseType: 'WebForm'
+ Children:
+ [
+ #child: PanelOrderLock
+ Component DataHolderOrderLock
+ {
+ #keys: '[412960.0.212571799]'
+ BaseType: 'WebDataHolder'
+ Databinding: 'structured[CustomerOrder]*'
+ Children:
+ [
+ Component DataExtractorOrderLock
+ {
+ #keys: '[412960.0.212571816]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'MacroPlan'
+ Description: '鎶藉彇璁㈠崟鏁版嵁'
+ Source: 'MacroPlan'
+ Taborder: 0
+ Transformation: 'SalesDemand.astype(CustomerOrder)'
+ ]
+ }
+ ]
+ Properties:
+ [
+ Taborder: 1
+ ]
+ }
+ Component DataHolderOrderLockGlobal
+ {
+ #keys: '[412960.0.212571897]'
+ BaseType: 'WebDataHolder'
+ Databinding: 'shadow[Scenario]*'
+ Properties:
+ [
+ Description: '瀛樺偍鏄惁閿佸畾鐨勭瓫閫夋潯浠�'
+ Taborder: 2
+ ]
+ }
+ ]
+ Properties:
+ [
+ Description: '璁㈠崟閿佸畾瑙i攣鐣岄潰'
+ Image: 'DATA_LOCK'
+ Title: '璁㈠崟閿佸畾瑙i攣鐣岄潰'
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Component_ListScenario.def b/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Component_ListScenario.def
index 71d6ba4..015e693 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Component_ListScenario.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Component_ListScenario.def
@@ -1,4 +1,118 @@
Quintiq file version 2.0
Component ListScenario #extension
{
+ Children:
+ [
+ Component DataSetLevelScenario #extension
+ {
+ Children:
+ [
+ Component listContextMenuScenarioFolder #extension
+ {
+ Children:
+ [
+ Component MenuRelaeaseNewVersion
+ {
+ #keys: '[412960.0.168283194]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ DelegationID: 'ActionBarScenario_Release'
+ Description: '鍙戝竷鏂扮増鏈�'
+ Image: 'EDITOR_ALGORITHM'
+ Taborder: 10
+ Title: 'Release New Version...'
+ ]
+ }
+ Component MenuCopyScenario #extension
+ {
+ }
+ Component MenuSaveNewVersion
+ {
+ #keys: '[412960.0.172960163]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ DelegationID: 'ActionBarScenario_Save'
+ Description: '鍙戝竷鏂扮増鏈�'
+ Image: 'DATA_DISK'
+ Taborder: 11
+ Title: 'Save New Version...'
+ ]
+ }
+ Component MenuSeparator2 #extension
+ {
+ Properties:
+ [
+ Taborder: 12
+ ]
+ }
+ Component MenuSeparator3 #extension
+ {
+ Properties:
+ [
+ Taborder: 14
+ ]
+ }
+ Component MenuSelectScenario #extension
+ {
+ Properties:
+ [
+ Taborder: 13
+ ]
+ }
+ Component MenuEditAuthorization #extension
+ {
+ Properties:
+ [
+ Taborder: 15
+ ]
+ }
+ Component MenuSeparator4 #extension
+ {
+ Properties:
+ [
+ Taborder: 16
+ ]
+ }
+ Component MenuLoadScenario #extension
+ {
+ Properties:
+ [
+ Taborder: 17
+ ]
+ }
+ Component MenuUnloadScenario #extension
+ {
+ Properties:
+ [
+ Taborder: 18
+ ]
+ }
+ Component MenuSeparator5 #extension
+ {
+ Properties:
+ [
+ Taborder: 19
+ ]
+ }
+ Component MenuAdministration #extension
+ {
+ Properties:
+ [
+ Taborder: 20
+ ]
+ }
+ Component MenuRestoreItem #extension
+ {
+ Properties:
+ [
+ Taborder: 21
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCopyScenario_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCopyScenario_OnClick.def
new file mode 100644
index 0000000..93390c2
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCopyScenario_OnClick.def
@@ -0,0 +1,12 @@
+Quintiq file version 2.0
+#parent: ListScenario
+Response OnClick (
+ ScenarioMP selection
+) id:Response_ListScenario_MenuCopyScenario_OnClick #extension
+{
+ Precondition:
+ [*
+ feedback := ApplicationMacroPlanner.HasValidDataset( selection );
+ return feedback = '' and selection.CanCopy( feedback );
+ *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_TIANMA_JITUAN_ListScenario_MenuRelaeaseNewVersion_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_TIANMA_JITUAN_ListScenario_MenuRelaeaseNewVersion_OnClick.def
new file mode 100644
index 0000000..745d231
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_TIANMA_JITUAN_ListScenario_MenuRelaeaseNewVersion_OnClick.def
@@ -0,0 +1,52 @@
+Quintiq file version 2.0
+#parent: ListScenario
+Response OnClick (
+ ScenarioMP selection
+) id:Response_ListScenario_MenuRelaeaseNewVersion_OnClick
+{
+ #keys: '[412960.0.170112594]'
+ CanBindMultiple: false
+ DefinitionID => /ListScenario/Responsedef_ListScenario_WebMenu_OnClick
+ Initiator: 'MenuRelaeaseNewVersion'
+ Precondition:
+ [*
+ feedback := ApplicationMacroPlanner.HasValidDataset( selection );
+ return feedback = '' and selection.CanCopy( feedback );
+ *]
+ QuillAction
+ {
+ Body:
+ [*
+ // Copy scenario
+ owner := GlobalOTDTable;
+ macroplan := MacroPlan;
+ testbusinesstype := "闆嗗洟";
+
+ VersionControl::ReleaseNewVersion( owner, testbusinesstype );
+ GlobalOTDTable::GetOutputVersionData( owner, macroplan, testbusinesstype );
+ selection.SetReleased();
+
+ versionname := VersionControl::GetVersionInfo( owner, testbusinesstype ).Element( 3 );
+ // Get the active scenario
+ //data := selection;
+ newscenario := null( Scenario );
+ strategy := null( Strategy );
+
+ data := ScenarioManager.ScenarioNode( relshadow,
+ ScenarioMP,
+ Parent := selection,
+ Name := versionname,
+ SelectedStrategy := selection.SelectedStrategy(),
+ State := selection.State() );
+
+ scenario := data.Parent().astype( ScenarioMP );
+ strategy := data.SelectedStrategy();
+
+ newscenario:= scenario.Copy( data.Parent(), versionname, "",
+ data.Comment(), data.State() );
+
+ newscenario.SelectedStrategy( relset, strategy );
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_TIANMA_JITUAN_ListScenario_MenuSaveNewVersion_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_TIANMA_JITUAN_ListScenario_MenuSaveNewVersion_OnClick.def
new file mode 100644
index 0000000..1f8b93b
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_TIANMA_JITUAN_ListScenario_MenuSaveNewVersion_OnClick.def
@@ -0,0 +1,49 @@
+Quintiq file version 2.0
+#parent: ListScenario
+Response OnClick (
+ ScenarioMP selection
+) id:Response_ListScenario_MenuSaveNewVersion_OnClick
+{
+ #keys: '[412960.0.171680443]'
+ CanBindMultiple: false
+ DefinitionID => /ListScenario/Responsedef_ListScenario_WebMenu_OnClick
+ Initiator: 'MenuSaveNewVersion'
+ Precondition:
+ [*
+ feedback := ApplicationMacroPlanner.HasValidDataset( selection );
+ return feedback = '' and selection.CanCopy( feedback );
+ *]
+ QuillAction
+ {
+ Body:
+ [*
+ // Copy scenario
+ owner := GlobalOTDTable;
+ macroplan := MacroPlan;
+ testbusinesstype := "闆嗗洟";
+
+ VersionControl::CopyVersion( owner, testbusinesstype );
+
+ versionname := VersionControl::GetVersionInfo( owner, testbusinesstype ).Element( 3 );
+ // Copy scenario
+ newscenario := null( Scenario );
+ strategy := null( Strategy );
+
+ data := ScenarioManager.ScenarioNode( relshadow,
+ ScenarioMP,
+ Parent := selection,
+ Name := versionname,
+ SelectedStrategy := selection.SelectedStrategy(),
+ State := selection.State() );
+
+ scenario := data.Parent().astype( ScenarioMP );
+ strategy := data.SelectedStrategy();
+
+ newscenario:= scenario.Copy( data.Parent(), versionname, "",
+ data.Comment(), data.State() );
+
+ newscenario.SelectedStrategy( relset, strategy );
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_ListVersionOfSOP.def b/_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_ListVersionOfSOP.def
new file mode 100644
index 0000000..79d85e4
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_ListVersionOfSOP.def
@@ -0,0 +1,41 @@
+Quintiq file version 2.0
+Component ListVersionOfSOP
+{
+ #keys: '[412960.0.134950322]'
+ BaseType: 'WebList'
+ Children:
+ [
+ Component DataExtractorVersionOfSOP642
+ {
+ #keys: '[412960.0.134950323]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'structured[VersionStatus]'
+ Source: 'DataHolderVersionOfSOP'
+ Taborder: 0
+ Transformation: 'Elements'
+ ]
+ }
+ #child: listActionBarPageVersionOfSOP
+ Component DataSetLevelVersionOfSOP
+ {
+ #keys: '[412960.0.134950328]'
+ BaseType: 'WebDataSetLevel'
+ Children:
+ [
+ #child: listContextMenuVersionOfSOP
+ ]
+ Properties:
+ [
+ Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SortNumber","title":"SortNumber","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SortNumber"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessName","title":"BusinessName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BusinessName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"LastVersionName","title":"LastVersionName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"LastVersionName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"LastReleaseTime","title":"LastReleaseTime","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"LastReleaseTime"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"LastUser","title":"LastUser","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"LastUser"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Notes","title":"Notes","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Notes"}}]'
+ ContextMenu: 'listContextMenuVersionOfSOP'
+ Taborder: 2
+ ]
+ }
+ ]
+ Properties:
+ [
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_ListVersionOfSOPDetails.def b/_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_ListVersionOfSOPDetails.def
new file mode 100644
index 0000000..be02538
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_ListVersionOfSOPDetails.def
@@ -0,0 +1,41 @@
+Quintiq file version 2.0
+Component ListVersionOfSOPDetails
+{
+ #keys: '[412960.0.142180298]'
+ BaseType: 'WebList'
+ Children:
+ [
+ Component DataExtractorVersionOfSOPDetails
+ {
+ #keys: '[412960.0.142180299]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'structured[VersionStatusDetail]'
+ Source: 'DataHolderVersionOfSOPDetails'
+ Taborder: 0
+ Transformation: 'Elements'
+ ]
+ }
+ #child: listActionBarPageVersionOfSOPDetails
+ Component DataSetLevelVersionOfSOPDetails
+ {
+ #keys: '[412960.0.142180304]'
+ BaseType: 'WebDataSetLevel'
+ Children:
+ [
+ #child: listContextMenuVersionOfSOPDetails
+ ]
+ Properties:
+ [
+ Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SortNumber","title":"SortNumber","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SortNumber"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SingleVersionName","title":"SingleVersionName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SingleVersionName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CreateTime","title":"CreateTime","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CreateTime"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ReleaseTime","title":"ReleaseTime","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ReleaseTime"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"User","title":"User","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"User"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Notes","title":"Notes","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Notes"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"VersionID","title":"VersionID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"VersionID"}}]'
+ ContextMenu: 'listContextMenuVersionOfSOPDetails'
+ Taborder: 2
+ ]
+ }
+ ]
+ Properties:
+ [
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_PanelVersionOfSOP.def b/_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_PanelVersionOfSOP.def
new file mode 100644
index 0000000..d36cfe7
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_PanelVersionOfSOP.def
@@ -0,0 +1,14 @@
+Quintiq file version 2.0
+Component PanelVersionOfSOP
+{
+ #keys: '[412960.0.134980204]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ #child: ListVersionOfSOP
+ ]
+ Properties:
+ [
+ Taborder: 1
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_PanelVersionOfSOPDetails.def b/_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_PanelVersionOfSOPDetails.def
new file mode 100644
index 0000000..ea7f4ea
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_PanelVersionOfSOPDetails.def
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+Component PanelVersionOfSOPDetails
+{
+ #keys: '[412960.0.140720490]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ #child: ListVersionOfSOPDetails
+ ]
+ Properties:
+ [
+ Description: '浜嬩笟閮ㄥ彂甯冪姸鎬佽鎯卲anel'
+ Taborder: 2
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_PanelVersionOfSOPHeader.def b/_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_PanelVersionOfSOPHeader.def
new file mode 100644
index 0000000..b99ab6c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_PanelVersionOfSOPHeader.def
@@ -0,0 +1,65 @@
+Quintiq file version 2.0
+Component PanelVersionOfSOPHeader
+{
+ #keys: '[412960.0.137940569]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component ButtonVersionOfSOPHeaderFresh
+ {
+ #keys: '[412960.0.138000879]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ ButtonSize: 'compact'
+ Description: '鐢ㄤ簬鍒锋柊鍚勪簨涓氶儴褰撳墠鐗堟湰鍙戝竷鐘舵�佺殑鎸夐挳'
+ Label: '鍒锋柊'
+ Taborder: 1
+ ]
+ }
+ Component ButtonVersionOfSOPHeaderCopy
+ {
+ #keys: '[412960.0.138000890]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ ButtonSize: 'compact'
+ Description: '鐢ㄤ簬澶嶅埗閫変腑鐨勭増鏈叏閲忕増鏈彿鐨勬寜閽�'
+ Label: '鍏ㄩ噺鐗堟湰鍙峰鍒�'
+ Taborder: 2
+ ]
+ }
+ Component ButtonVersionOfSOPHeaderRelease
+ {
+ #keys: '[412960.0.142110396]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ ButtonSize: 'compact'
+ Description: '鍙戝竷涓�涓柊鐗堟湰'
+ Label: '娴嬭瘯鐢ㄧ増鏈彂甯�'
+ Taborder: 3
+ Visible: false
+ ]
+ }
+ Component LabelVersionOfSOPHeader
+ {
+ #keys: '[412960.0.138000861]'
+ BaseType: 'WebLabel'
+ Properties:
+ [
+ Description: '鐗堟湰鍙峰睍绀哄'
+ FixedSize: false
+ Taborder: 0
+ ]
+ }
+ ]
+ Properties:
+ [
+ Description: '鐢ㄤ簬鏀剧疆琛ㄥご淇℃伅鍙婃寜閽殑panel'
+ FixedSize: true
+ Orientation: 'horizontal'
+ Style: 'header'
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_listActionBarPageVersionOfSOP.def b/_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_listActionBarPageVersionOfSOP.def
new file mode 100644
index 0000000..b858147
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_listActionBarPageVersionOfSOP.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listActionBarPageVersionOfSOP
+{
+ #keys: '[412960.0.134950325]'
+ BaseType: 'listActionBarPage'
+ Properties:
+ [
+ Taborder: 1
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_listActionBarPageVersionOfSOPDetails.def b/_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_listActionBarPageVersionOfSOPDetails.def
new file mode 100644
index 0000000..1ace6df
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_listActionBarPageVersionOfSOPDetails.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listActionBarPageVersionOfSOPDetails
+{
+ #keys: '[412960.0.142180301]'
+ BaseType: 'listActionBarPage'
+ Properties:
+ [
+ Taborder: 1
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_listContextMenuVersionOfSOP.def b/_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_listContextMenuVersionOfSOP.def
new file mode 100644
index 0000000..bdded9e
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_listContextMenuVersionOfSOP.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listContextMenuVersionOfSOP
+{
+ #keys: '[412960.0.134950330]'
+ BaseType: 'listContextMenu'
+ Properties:
+ [
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_listContextMenuVersionOfSOPDetails.def b/_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_listContextMenuVersionOfSOPDetails.def
new file mode 100644
index 0000000..74b47c7
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_listContextMenuVersionOfSOPDetails.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listContextMenuVersionOfSOPDetails
+{
+ #keys: '[412960.0.142180306]'
+ BaseType: 'listContextMenu'
+ Properties:
+ [
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Response_PanelVersionOfSOPHeader_ButtonVersionOfSOPHeaderCopy_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Response_PanelVersionOfSOPHeader_ButtonVersionOfSOPHeaderCopy_OnClick.def
new file mode 100644
index 0000000..ff0fa8b
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Response_PanelVersionOfSOPHeader_ButtonVersionOfSOPHeaderCopy_OnClick.def
@@ -0,0 +1,21 @@
+Quintiq file version 2.0
+#parent: PanelVersionOfSOPHeader/ButtonVersionOfSOPHeaderCopy
+Response OnClick () id:Response_PanelVersionOfSOPHeader_ButtonVersionOfSOPHeaderCopy_OnClick
+{
+ #keys: '[412960.0.149330244]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ QuillAction
+ {
+ Body:
+ [*
+ owner := GlobalOTDTable;
+ testbusinesstype := "闆嗗洟";
+ rootversionid := VersionControl::GetVersionInfo( owner, testbusinesstype ).Element( 2 );
+ dlg := construct( DialogVersionIDCopy );
+ dlg.lblContent().Text( rootversionid );
+ dlg.JustShow();
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Response_PanelVersionOfSOPHeader_ButtonVersionOfSOPHeaderFresh_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Response_PanelVersionOfSOPHeader_ButtonVersionOfSOPHeaderFresh_OnClick.def
new file mode 100644
index 0000000..d0a18a1
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Response_PanelVersionOfSOPHeader_ButtonVersionOfSOPHeaderFresh_OnClick.def
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: PanelVersionOfSOPHeader/ButtonVersionOfSOPHeaderFresh
+Response OnClick () id:Response_PanelVersionOfSOPHeader_ButtonVersionOfSOPHeaderFresh_OnClick
+{
+ #keys: '[412960.0.133611384]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ QuillAction
+ {
+ Body:
+ [*
+ owner := GlobalOTDTable;
+ testbusinesstype := "闆嗗洟";
+ //GlobalOTDTable::GetVersionData( owner, testbusinesstype );
+ rootversionid := VersionControl::GetVersionInfo( owner, testbusinesstype ).Element( 0 );
+ DataExtractorVersionOfSOPDetails.FixedFilter( "object.VersionID().FindString( " + rootversionid.AsQUILL() + ", 0 ) = 0" );
+ rootversionname := VersionControl::GetVersionInfo( owner, testbusinesstype ).Element( 1 );
+ LabelVersionOfSOPHeader.Text( rootversionname );
+ VersionStatus::GetBusinessTypeStatus( owner, rootversionid );
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Response_PanelVersionOfSOPHeader_ButtonVersionOfSOPHeaderRelease_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Response_PanelVersionOfSOPHeader_ButtonVersionOfSOPHeaderRelease_OnClick.def
new file mode 100644
index 0000000..a3136f5
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Response_PanelVersionOfSOPHeader_ButtonVersionOfSOPHeaderRelease_OnClick.def
@@ -0,0 +1,21 @@
+Quintiq file version 2.0
+#parent: PanelVersionOfSOPHeader/ButtonVersionOfSOPHeaderRelease
+Response OnClick () id:Response_PanelVersionOfSOPHeader_ButtonVersionOfSOPHeaderRelease_OnClick
+{
+ #keys: '[412960.0.142110414]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ owner := GlobalOTDTable;
+ macroplan := MacroPlan;
+ testbusinesstype := "闆嗗洟";
+
+ VersionControl::ReleaseNewVersion( owner, testbusinesstype );
+ //GlobalOTDTable::GetOutputVersionData( owner, macroplan, testbusinesstype );
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/_ROOT_Component_FormVersionOfSOP.def b/_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/_ROOT_Component_FormVersionOfSOP.def
new file mode 100644
index 0000000..9a4348d
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/_ROOT_Component_FormVersionOfSOP.def
@@ -0,0 +1,82 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent FormVersionOfSOP
+{
+ #keys: '[412960.0.135200328]'
+ BaseType: 'WebForm'
+ Children:
+ [
+ #child: PanelVersionOfSOP
+ Component DataHolderVersionOfSOP
+ {
+ #keys: '[412960.0.134980222]'
+ BaseType: 'WebDataHolder'
+ Databinding: 'structured[VersionStatus]*'
+ Children:
+ [
+ Component DataExtractorVersionOfSOP
+ {
+ #keys: '[412960.0.134980234]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'GlobalOTDTable'
+ Source: 'GlobalOTDTable'
+ Taborder: 0
+ Transformation: 'VersionStatus'
+ ]
+ }
+ ]
+ Properties:
+ [
+ Taborder: 3
+ ]
+ }
+ #child: PanelVersionOfSOPHeader
+ #child: PanelVersionOfSOPDetails
+ Component DataHolderVersionOfSOPDetails
+ {
+ #keys: '[412960.0.140750496]'
+ BaseType: 'WebDataHolder'
+ Databinding: 'structured[VersionStatusDetail]*'
+ Children:
+ [
+ Component DataExtractorVersionOfSOPDetails453
+ {
+ #keys: '[412960.0.142212532]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'VersionStatus'
+ ExtractionMode: 'Selected'
+ Source: 'ListVersionOfSOP'
+ Taborder: 0
+ Transformation: 'VersionStatusDetail'
+ ]
+ }
+ ]
+ Properties:
+ [
+ Description: '浜嬩笟閮ㄥ搴旇鎯呮暟鎹�'
+ Taborder: 4
+ ]
+ }
+ Component DataHolderVersionOfSOPCopy
+ {
+ #keys: '[412960.0.166861218]'
+ BaseType: 'WebDataHolder'
+ Databinding: 'shadow[ScenarioMP]*'
+ Properties:
+ [
+ Taborder: 5
+ ]
+ }
+ ]
+ Properties:
+ [
+ Description: 'SOP鐗堟湰鏁版嵁灞曠ず鐣岄潰'
+ Image: 'WINDOW_TIME'
+ Title: 'SOP鍚勪簨涓氶儴鏁版嵁鍚屾鐘舵��'
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Views/OrderLock.vw b/_Main/UI/MacroPlannerWebApp/Views/OrderLock.vw
new file mode 100644
index 0000000..42bce1a
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Views/OrderLock.vw
@@ -0,0 +1,351 @@
+Quintiq file version 2.0
+{
+ viewcontents
+ {
+ forms
+ {
+ form_legacy_1
+ {
+ title: 'Scenario manager'
+ shown: true
+ componentID: 'FormScenarioManager'
+ layout
+ {
+ mode: 'open'
+ rowPosition: 1
+ rowSpan: 8
+ columnPosition: 1
+ columnSpan: 5
+ }
+ components
+ {
+ FormScenarioManager_ListScenario
+ {
+ }
+ FormScenarioManager_DataSetLevelScenario
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 90
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: '鍚嶇О'
+ index: 1
+ subtotals: ''
+ width: 277
+ }
+ column_ChangedBy
+ {
+ columnId: 'ChangedBy'
+ dataPath: 'ChangedBy'
+ dataType: 'string'
+ title: 'Changed by'
+ index: 2
+ subtotals: ''
+ width: 106
+ }
+ column_ChangedOn
+ {
+ columnId: 'ChangedOn'
+ dataPath: 'ChangedOn'
+ dataType: 'datetime'
+ title: 'Changed on'
+ index: 3
+ subtotals: ''
+ width: 99
+ }
+ column_StorageMode
+ {
+ columnId: 'StorageMode'
+ dataPath: 'StorageMode'
+ dataType: 'string'
+ title: 'StorageMode'
+ index: 4
+ subtotals: ''
+ width: 40
+ }
+ }
+ }
+ }
+ form_legacy_2
+ {
+ title: 'Assumptions'
+ shown: true
+ componentID: 'FormAssumptions'
+ layout
+ {
+ mode: 'open'
+ rowPosition: 9
+ rowSpan: 8
+ columnPosition: 1
+ columnSpan: 5
+ }
+ components
+ {
+ FormAssumptions_ListAssumptions
+ {
+ }
+ FormAssumptions_DataSetLevelAssumptions
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Category
+ {
+ columnId: 'Category'
+ dataPath: 'Category'
+ dataType: 'string'
+ title: '绫诲埆'
+ index: 1
+ subtotals: ''
+ width: 108
+ }
+ column_Importance
+ {
+ columnId: 'Importance'
+ dataPath: 'Importance'
+ dataType: 'string'
+ title: '閲嶈鎬�'
+ index: 2
+ subtotals: ''
+ width: 110
+ }
+ column_Title
+ {
+ columnId: 'Title'
+ dataPath: 'Title'
+ dataType: 'string'
+ title: '鏍囬'
+ index: 3
+ subtotals: ''
+ width: 150
+ }
+ column_ChangedBy
+ {
+ columnId: 'ChangedBy'
+ dataPath: 'ChangedBy'
+ dataType: 'string'
+ title: 'Changed by'
+ index: 4
+ subtotals: ''
+ width: 150
+ }
+ column_CreatedOn
+ {
+ columnId: 'CreatedOn'
+ dataPath: 'CreatedOn'
+ dataType: 'datetime'
+ title: 'Created on'
+ index: 5
+ subtotals: ''
+ width: 150
+ }
+ }
+ }
+ }
+ form_FormScenariosKPIsComparison
+ {
+ title: 'QLibMacroPlannerWebUI::FormScenariosKPIsComparison'
+ shown: true
+ componentID: 'QLibMacroPlannerWebUI::FormScenariosKPIsComparison'
+ layout
+ {
+ mode: 'open'
+ rowPosition: 1
+ rowSpan: 16
+ columnPosition: 6
+ columnSpan: 7
+ }
+ components
+ {
+ FormScenariosKPIsComparison_MatrixEditorFinancialKPIs
+ {
+ gridColor: '#c4c4c4'
+ totalHeaderWidth: 200
+ attributeHeaderWidthRatio: 0.6
+ nameHeaderWidthRatio: 0.4
+ columnWidth: 100
+ horizontalGrid: true
+ verticalGrid: true
+ backendState
+ {
+ componentId: 'QLibMacroPlannerWebUI::FormScenariosKPIsComparison.MatrixEditorFinancialKPIs'
+ state
+ {
+ cells
+ {
+ attributes
+ {
+ attribute_DisplayValue
+ {
+ type: 'MatrixEditorWebApiCellDataModelInterest'
+ index: 0
+ rowsubtotal: ''
+ columnsubtotal: ''
+ attribute: 'DisplayValue'
+ }
+ }
+ }
+ columns
+ {
+ sorting
+ {
+ criteria: ''
+ }
+ }
+ rows
+ {
+ sorting
+ {
+ criteria: "datamember:'KPISetting.DisplayIndex'"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ form_FormOptimizerPuzzles
+ {
+ title: 'Optimizer Puzzles'
+ shown: false
+ componentID: 'FormOptimizerPuzzles'
+ layout
+ {
+ mode: 'dockright'
+ index: 0
+ }
+ components
+ {
+ FormOptimizerPuzzles_ListOptimizerPuzzles
+ {
+ }
+ FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: '鍚嶇О'
+ index: 1
+ subtotals: ''
+ width: 109
+ }
+ column_Description
+ {
+ columnId: 'Description'
+ dataPath: 'Description'
+ dataType: 'string'
+ title: '鎻忚堪'
+ index: 2
+ subtotals: ''
+ width: 207
+ }
+ }
+ }
+ }
+ form_FormKPI
+ {
+ title: 'KPI Dashboard'
+ shown: true
+ componentID: 'FormKPI'
+ layout
+ {
+ mode: 'dockright'
+ index: 1
+ }
+ components
+ {
+ FormKPI_PanelKPI
+ {
+ sizeRatio: 1
+ activeChild: 'PanelKPISelection'
+ }
+ FormKPI_PanelKPIDashboard
+ {
+ sizeRatio: 1
+ }
+ FormKPI_PanelKPISelection
+ {
+ sizeRatio: 1
+ }
+ FormKPI_ListKPISelection
+ {
+ QuillViewData
+ {
+ Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
+ }
+ }
+ FormKPI_DataSetLevelKPISelection
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: '鍚嶇О'
+ index: 1
+ subtotals: ''
+ width: 200
+ }
+ }
+ }
+ }
+ }
+ userconfigurableinformation
+ {
+ }
+ page: 'applicationDevelopmentActionBarPageDef'
+ group: ''
+ index: 2
+ image: 'DOCUMENT_LOCK'
+ description: ''
+ }
+ formatversion: 2
+ id: 'OrderLock'
+ name: 'OrderLock'
+ isglobal: false
+ isroot: true
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Views/SOP_Versions.vw b/_Main/UI/MacroPlannerWebApp/Views/SOP_Versions.vw
new file mode 100644
index 0000000..6f6e533
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Views/SOP_Versions.vw
@@ -0,0 +1,351 @@
+Quintiq file version 2.0
+{
+ viewcontents
+ {
+ forms
+ {
+ form_legacy_1
+ {
+ title: 'Scenario manager'
+ shown: true
+ componentID: 'FormScenarioManager'
+ layout
+ {
+ mode: 'open'
+ rowPosition: 1
+ rowSpan: 8
+ columnPosition: 1
+ columnSpan: 5
+ }
+ components
+ {
+ FormScenarioManager_ListScenario
+ {
+ }
+ FormScenarioManager_DataSetLevelScenario
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 90
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: 'Name'
+ index: 1
+ subtotals: ''
+ width: 197
+ }
+ column_ChangedBy
+ {
+ columnId: 'ChangedBy'
+ dataPath: 'ChangedBy'
+ dataType: 'string'
+ title: 'Changed by'
+ index: 2
+ subtotals: ''
+ width: 91
+ }
+ column_ChangedOn
+ {
+ columnId: 'ChangedOn'
+ dataPath: 'ChangedOn'
+ dataType: 'datetime'
+ title: 'Changed on'
+ index: 3
+ subtotals: ''
+ width: 99
+ }
+ column_StorageMode
+ {
+ columnId: 'StorageMode'
+ dataPath: 'StorageMode'
+ dataType: 'string'
+ title: 'StorageMode'
+ index: 4
+ subtotals: ''
+ width: 40
+ }
+ }
+ }
+ }
+ form_legacy_2
+ {
+ title: 'Assumptions'
+ shown: true
+ componentID: 'FormAssumptions'
+ layout
+ {
+ mode: 'open'
+ rowPosition: 9
+ rowSpan: 8
+ columnPosition: 1
+ columnSpan: 5
+ }
+ components
+ {
+ FormAssumptions_ListAssumptions
+ {
+ }
+ FormAssumptions_DataSetLevelAssumptions
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Category
+ {
+ columnId: 'Category'
+ dataPath: 'Category'
+ dataType: 'string'
+ title: 'Category'
+ index: 1
+ subtotals: ''
+ width: 108
+ }
+ column_Importance
+ {
+ columnId: 'Importance'
+ dataPath: 'Importance'
+ dataType: 'string'
+ title: 'Importance'
+ index: 2
+ subtotals: ''
+ width: 110
+ }
+ column_Title
+ {
+ columnId: 'Title'
+ dataPath: 'Title'
+ dataType: 'string'
+ title: 'Title'
+ index: 3
+ subtotals: ''
+ width: 150
+ }
+ column_ChangedBy
+ {
+ columnId: 'ChangedBy'
+ dataPath: 'ChangedBy'
+ dataType: 'string'
+ title: 'Changed by'
+ index: 4
+ subtotals: ''
+ width: 150
+ }
+ column_CreatedOn
+ {
+ columnId: 'CreatedOn'
+ dataPath: 'CreatedOn'
+ dataType: 'datetime'
+ title: 'Created on'
+ index: 5
+ subtotals: ''
+ width: 150
+ }
+ }
+ }
+ }
+ form_FormScenariosKPIsComparison
+ {
+ title: 'QLibMacroPlannerWebUI::FormScenariosKPIsComparison'
+ shown: true
+ componentID: 'QLibMacroPlannerWebUI::FormScenariosKPIsComparison'
+ layout
+ {
+ mode: 'open'
+ rowPosition: 1
+ rowSpan: 16
+ columnPosition: 6
+ columnSpan: 7
+ }
+ components
+ {
+ FormScenariosKPIsComparison_MatrixEditorFinancialKPIs
+ {
+ gridColor: '#c4c4c4'
+ totalHeaderWidth: 200
+ attributeHeaderWidthRatio: 0.6
+ nameHeaderWidthRatio: 0.4
+ columnWidth: 100
+ horizontalGrid: true
+ verticalGrid: true
+ backendState
+ {
+ componentId: 'QLibMacroPlannerWebUI::FormScenariosKPIsComparison.MatrixEditorFinancialKPIs'
+ state
+ {
+ cells
+ {
+ attributes
+ {
+ attribute_DisplayValue
+ {
+ type: 'MatrixEditorWebApiCellDataModelInterest'
+ index: 0
+ rowsubtotal: ''
+ columnsubtotal: ''
+ attribute: 'DisplayValue'
+ }
+ }
+ }
+ columns
+ {
+ sorting
+ {
+ criteria: ''
+ }
+ }
+ rows
+ {
+ sorting
+ {
+ criteria: "datamember:'KPISetting.DisplayIndex'"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ form_FormOptimizerPuzzles
+ {
+ title: 'Optimizer Puzzles'
+ shown: false
+ componentID: 'FormOptimizerPuzzles'
+ layout
+ {
+ mode: 'dockright'
+ index: 0
+ }
+ components
+ {
+ FormOptimizerPuzzles_ListOptimizerPuzzles
+ {
+ }
+ FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: 'Name'
+ index: 1
+ subtotals: ''
+ width: 109
+ }
+ column_Description
+ {
+ columnId: 'Description'
+ dataPath: 'Description'
+ dataType: 'string'
+ title: 'Description'
+ index: 2
+ subtotals: ''
+ width: 207
+ }
+ }
+ }
+ }
+ form_FormKPI
+ {
+ title: 'KPI Dashboard'
+ shown: true
+ componentID: 'FormKPI'
+ layout
+ {
+ mode: 'dockright'
+ index: 1
+ }
+ components
+ {
+ FormKPI_PanelKPI
+ {
+ sizeRatio: 1
+ activeChild: 'PanelKPISelection'
+ }
+ FormKPI_PanelKPIDashboard
+ {
+ sizeRatio: 1
+ }
+ FormKPI_PanelKPISelection
+ {
+ sizeRatio: 1
+ }
+ FormKPI_ListKPISelection
+ {
+ QuillViewData
+ {
+ Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
+ }
+ }
+ FormKPI_DataSetLevelKPISelection
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: 'Name'
+ index: 1
+ subtotals: ''
+ width: 200
+ }
+ }
+ }
+ }
+ }
+ userconfigurableinformation
+ {
+ }
+ page: 'applicationDevelopmentActionBarPageDef'
+ group: ''
+ index: 1
+ image: 'WINDOW_TIME'
+ description: ''
+ }
+ formatversion: 2
+ id: 'SOP_Versions'
+ name: 'SOP Versions'
+ isglobal: false
+ isroot: true
+}
diff --git a/_var/_Main/ModelSettings/Common/Development/_ROOT_Role_Development.properties b/_var/_Main/ModelSettings/Common/Development/_ROOT_Role_Development.properties
index 0b578d4..58f022e 100644
--- a/_var/_Main/ModelSettings/Common/Development/_ROOT_Role_Development.properties
+++ b/_var/_Main/ModelSettings/Common/Development/_ROOT_Role_Development.properties
@@ -204,11 +204,11 @@
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitsfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitsfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle=template:domainmodel.ediremotedatasourcedefinition
-domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.connection=dbodbc1
domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.maxcolumnnamelength=0
domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.maxtablenamelength=0
-domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.parameters=
-domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.parameters=/datasource=orclpdb /owner=TIANMA /chardatatypeforstring /characterencoding=UTF-8 /appdatatypeforstring=wchar
+domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.password=1 E9FE769DABE91891284EBBA6CEA8F41B 479d6f99-cffb-41e6-94f1-d35bdf20703c
domainmodel.ediremotedatasourcedefinition.remotestorage.oracle=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.oracle.connection=dbodbc1
domainmodel.ediremotedatasourcedefinition.remotestorage.oracle.maxcolumnnamelength=0
--
Gitblit v1.9.3