From 03f93088637930acbda3cd0b405114e0b00c13e4 Mon Sep 17 00:00:00 2001
From: xiaoding721 <33130084+xiaoding721@users.noreply.github.com>
Date: 星期一, 30 九月 2024 17:29:00 +0800
Subject: [PATCH] Merge branch 'dev' of http://47.101.211.7:10101/r/VWED into dev
---
_Main/BL/Type_OfflinePlanImportData/Attribute_Date.qbl | 7
_Main/BL/Relations/Relation_AssemblyOnlinePlanVersionRow_Cell_AssemblyOnlinePlanVersionCell_Row.qbl | 23
_Main/BL/InfoMessages.qbl | 2
_Main/BL/Relations/Relation_AssemblyOnlinePlanVersionColumn_InterfaceDataset_InterfaceDataset_A.qbl | 34
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_OnCreated.def | 7
_Main/UI/MacroPlannerWebApp/Component_FormMachiningPipelineReport/Response_OnCreated.def | 7
_Main/UI/MacroPlannerWebApp/Component_DialogAssemblyOnlineQuantity/Component_pnlContent.def | 11
_Main/BL/Type_OfflinePlanCell/Method_QuantityGreaterThan0.qbl | 9
_Main/UI/MacroPlannerWebApp/Component_DialogTransferMinimumQuantity/Component_cmContent.def | 69 +
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_GetCCFactory.qbl | 12
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Response_OnCreated.def | 7
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/_ROOT_Component_FormOfflinePlan.def | 2
_Main/UI/MacroPlanner/Component_frmStandardAnalysis627/Component_swTop.def | 29
_Main/BL/Type_AssemblyOnlinePlanCell0/Attribute_Shift.qbl | 8
_Main/BL/Type_AssemblyOnlinePlanCell0/Attribute_InventoryWeight.qbl | 8
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader1_799_bConfirm_OnClick.def | 24
_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Component_PanelExport.def | 1
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Component_pHeader1#799.def | 85 +
_Main/BL/Type_OfflinePlanColumn/Attribute_IsShow.qbl | 7
_Main/UI/MacroPlanner/Component_frmStandardAnalysis627/Component_swTopMost.def | 20
_Main/UI/MacroPlannerWebApp/Component_DialogWholeShiftSystem/Component_ListEntity.def | 22
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_InitiateSearch.qbl | 27
_Main/BL/Type_AssemblyOnlinePlanCell0/DefaultValue_Value.qbl | 6
_Main/BL/Type_MacroPlan/Attribute_A_PreviousScenaioName.qbl | 8
_Main/BL/Type_FinancialProductionSource/Method_AfterImport.qbl | 8
_Main/UI/MacroPlannerWebApp/Component_DialogTransferMinimumQuantity/Component_pnlContent.def | 56 -
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Component_PanelExport.def | 2
_Main/BL/Type_TransferMinimumQuantity/_ROOT_Type_TransferMinimumQuantity.qbl | 9
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEdit/_ROOT_Component_DialogCreateEditTransferMinimumQuantity.def | 32
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_OnCreated.def | 7
_Main/UI/MacroPlannerWebApp/Component_FormEnginePipelineReport/Component_PanelExport#570.def | 3
_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_InitiateSearch.qbl | 27
_Main/BL/Type_FinancialProductionRow/Method_Initialize.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Component_pContent#611.def | 27
_Main/BL/Type_ChangeLossSetting/StaticMethod_ValidateInput.qbl | 8
_Main/BL/Type_OfflinePlanImportData/StaticMethod_Upload.qbl | 66 +
_Main/UI/MacroPlannerWebApp/Component_DialogTransferMinimumQuantity/Response_lstContent_mNew_OnClick.def | 23
_Main/BL/Type_FinancialProductionCell/Attribute_Quantity.qbl | 8
_Main/UI/MacroPlannerWebApp/Component_DialogTransferMinimumQuantity/Response_lstContent_mEdit_OnClick.def | 21
_Main/BL/Type_OfflinePlanImportData/StaticMethod_UpdateCell.qbl | 31
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEdit/Component_pnlContent.def | 36
_Main/BL/Type_AssemblyOnlinePlanVersionRow/_ROOT_Type_AssemblyOnlinePlanVersionRow.qbl | 10
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlan/Component_pHeader.def | 2
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_InitializeNew.qbl | 164 +-
_Main/Sys/Repr/Global/OfflinePlanCell.qrp | 21
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader1_799_bRestore_OnClick.def | 8
_Main/UI/MacroPlannerWebApp/Component_DialogTransferMinimumQuantity/Response_lstContent_mDelete_OnClick.def | 19
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader1_799_bGenerateReport_OnClick.def | 8
_Main/BL/Type_AssemblyOnlinePlanCell0/StaticMethod_Download.qbl | 47 +
_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_Initialize.qbl | 9
_Main/BL/Type_MachiningPipelineSource0/StaticMethod_InitiateSearch.qbl | 26
_Main/BL/Type_OfflinePlanColumn/DefaultValue_IsShow.qbl | 7
_Main/BL/Type_AssemblyOnlinePlanCell0/DefaultValue_Shift.qbl | 6
_Main/BL/Type_FinancialProductionSource/StaticMethod_InitiateSearch.qbl | 28
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEdit/Response_pnlActions_btnCancel_OnClick.def | 15
_Main/metadata.properties | 2
_Main/BL/Type_InventorySummarySource/StaticMethod_Initialize.qbl | 11
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelFinancialSalesReportOperation.def | 2
_Main/BL/Type_MachiningPipelineSource0/StaticMethod_Initialize.qbl | 46
_Main/BL/Type_OfflinePlanCell/StaticMethod_DeductionOfReplacementLoss.qbl | 2
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEdit/Component_pnlActions.def | 40
_Main/BL/Type_Unit/Method_WholeShiftFiltering.qbl | 6
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Component_PanelExport#670.def | 6
_Main/BL/Type_AssemblyOnlinePlanColumn0/DefaultValue_ColumnName.qbl | 6
_Main/BL/Type_FinancialProductionReport/Method_Generate.qbl | 14
_Main/BL/Type_AssemblyOnlineQuantity/Attribute_DLZKM.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_DialogTransferMinimumQuantity/Component_abpContent.def | 10
_Main/BL/Type_AssemblyOnlinePlanColumn0/Attribute_ColumnIndex.qbl | 7
_Main/BL/Type_AssemblyOnlinePlanVersionRow/Attribute_ProductionLine.qbl | 7
_Main/BL/Type_FinancialSalesSource/StaticMethod_Download.qbl | 5
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Component_pHeader2.def | 26
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Response_pnlActions_btnOk_OnClick.def | 2
_Main/BL/Type_AssemblyOnlinePlanColumn0/_ROOT_Type_AssemblyOnlinePlanVersionColumn#0.qbl | 10
_Main/UI/MacroPlannerWebApp/Component_FormEnginePipelineReport/Response_OnCreated.def | 7
_Main/BL/Type_TransferMinimumQuantity/Attribute_Quantity.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEdit/Response_pnlContent_ddslProductID_OnCreated.def | 18
_Main/BL/Type_OfflinePlanImportData/Attribute_Order.qbl | 7
_Main/BL/Type_InventorySummarySource/StaticMethod_InitiateSearch.qbl | 31
_Main/BL/Type_OfflinePlanImportData/_ROOT_Type_OfflinePlanImportData.qbl | 9
_Main/BL/Type_AssemblyOnlinePlanCell0/Attribute_ProductionSerialNumber.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEdit/Method_Edit.def | 16
_Main/BL/Type_AssemblyOnlinePlanVersionRow/Attribute_RowNr.qbl | 7
_Main/BL/Type_FinancialSalesSource/StaticMethod_Initialize.qbl | 36
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelExport.def | 1
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader1_799_bImport_OnClick.def | 45 +
_Main/BL/Relations/Relation_OfflinePlanCell_OfflinePlanColumn_OfflinePlanColumn_OfflinePlanCell.qbl | 2
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader1_799_bDownload_OnClick.def | 22
_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Component_mbMainMenu.def | 4
_Main/UI/MacroPlannerWebApp/Views/Change_loss_setting_view.vw | 10
_Main/UI/MacroPlannerWebApp/Component_DialogTransferMinimumQuantity/Response_lstContent_mSelectAll_OnClick.def | 17
_Main/UI/MacroPlannerWebApp/Component_DialogWholeShiftSystem/Response_pHeader_bDeselectAll_OnClick.def | 22
_Main/BL/Relations/Relation_OfflinePlanImportData_MacroPlan_MacroPlan_OfflinePlanImportData.qbl | 23
_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_ListChangeLossSetting#568.def | 2
_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_GetCCFactory.qbl | 12
_Main/BL/Type_FinancialProductionRow/Method_Initialize#110.qbl | 2
_Main/BL/Type_OfflinePlanCell/Function_CalcQuantity.qbl | 14
_Main/UI/MacroPlannerWebApp/Component_DialogTransferMinimumQuantity/Component_lstContent.def | 59 +
_Main/BL/Relations/Relation_AssemblyOnlinePlanVersionRow_InterfaceDataset_InterfaceDataset_Asse.qbl | 23
_Main/BL/Type_ChangeLossSettingExcel/StaticMethod_CheckImport.qbl | 2
_Main/BL/Type_OfflinePlanCell/StaticMethod_Download.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelExport_545_bRefresh_OnClick.def | 2
_Main/BL/Type_AssemblyOnlinePlanCell0/Attribute_Value.qbl | 7
_Main/BL/Type_FinancialWeeklyReport/StaticMethod_Initialize.qbl | 18
_Main/UI/MacroPlannerWebApp/Component_FormMachiningPipelineReport/Component_PanelExport.def | 3
_Main/BL/Type_OfflinePlanImportData/Attribute_ProductID.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEdit/Method_New.def | 14
_Main/BL/Relations/Relation_OfflinePlanCell_OfflinePlanRow_OfflinePlanRow_OfflinePlanCell.qbl | 2
_Main/BL/Type_AssemblyOnlinePlanVersionRow/DefaultValue_RowNr.qbl | 6
_Main/BL/Type_FinancialWeeklyReport/StaticMethod_GetDefaultDLUnit.qbl | 3
_Main/BL/Type_OfflinePlanColumn/Function_CalcColumnIndex.qbl | 13
_Main/UI/MacroPlannerWebApp/Component_DialogWholeShiftSystem/Component_pHeader.def | 27
_Main/BL/Type_ChangeLossSettingExcel/StaticMethod_ExportTemplate.qbl | 2
_Main/BL/Type_OfflinePlanCell/Function_CalcIsQuantity.qbl | 13
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader2_sDateFilter_OnUserChanged.def | 26
_Main/BL/Type_AssemblyOnlinePlanCell0/StaticMethod_RefreshData.qbl | 36
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Component_pnlContent.def | 23
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelExport#545.def | 1
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlan/Response_MatrixEditor951_480_OnUpdateValue.def | 28
_Main/BL/Type_TransferMinimumQuantity/Attribute_ProductID.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEdit/Response_pnlActions_btnOk_OnClick.def | 15
_Main/BL/Type_OfflinePlanImportData/Attribute_Quantity.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_DialogWholeShiftSystem/Component_listContextMenu902#1.def | 2
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Component_MatrixEditor951.def | 9
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Component_pHeader.def | 65 -
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Response_PanelExport_bRefresh_OnClick#57.def | 2
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEdit/Method_OnOK.def | 17
_Main/UI/MacroPlanner/Component_frmStandardAnalysis627/_ROOT_Component_frmStandardAnalysis627.def | 16
_Main/BL/Type_ChangeLossSettingExcel/StaticMethod_Import.qbl | 8
_Main/BL/Type_EnginePipelineSource/StaticMethod_InitiateSearch.qbl | 26
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_MatrixEditor951_OnUpdateValue.def | 2
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader1_799_bSaveAsDraft_OnClick.def | 8
_Main/BL/Type_AssemblyOnlinePlanVersionRow/DefaultValue_ProductID.qbl | 6
_Main/BL/Type_ChangeLossSetting/Attribute_ChangeLossNumber.qbl | 7
_Main/BL/Type_AssemblyOnlinePlanCell/StaticMethod_RefreshData.qbl | 4
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Response_OnCreated.def | 9
_Main/BL/Type_AssemblyOnlinePlanColumn0/Attribute_ColumnName.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelFinancialProductionReportOperation.def | 2
_Main/BL/Relations/Relation_TransferMinimumQuantity_MacroPlan_MacroPlan_TransferMinimumQuantity.qbl | 23
_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_OnCreated.def | 7
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader1_799_bDeductChangeoverLoss_OnClick.def | 8
_Main/BL/Type_FinancialProductionSource/StaticMethod_Download.qbl | 5
_Main/BL/Type_FinancialWeeklyReport/StaticMethod_GetDefaultCCUnit.qbl | 3
_Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/Component_PanelHeader.def | 1
_Main/BL/Type_OfflinePlanCell/Attribute_IsQuantity.qbl | 7
_Main/BL/Type_AssemblyOnlinePlanVersionRow/DefaultValue_Type.qbl | 6
_Main/BL/Type_FinancialProductionSource/StaticMethod_Initialize.qbl | 10
_Main/BL/Type_AssemblyOnlinePlanVersionRow/Attribute_Type.qbl | 15
_Main/UI/MacroPlannerWebApp/Component_DialogWholeShiftSystem/Component_pnlContent.def | 1
_Main/BL/Type_FinancialSalesSource/StaticMethod_InitializeNew.qbl | 145 +++
_Main/UI/MacroPlannerWebApp/Component_DialogTransferMinimumQuantity/_ROOT_Component_DialogTransferMinimumQuantity.def | 2
_Main/BL/Type_AssemblyOnlinePlanColumn0/Attribute_ColumnDate.qbl | 7
_Main/BL/Type_OfflinePlanRow/Attribute_Notes.qbl | 1
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_GetDLFactory.qbl | 12
/dev/null | 22
_Main/BL/Type_AssemblyOnlinePlanCell0/_ROOT_Type_AssemblyOnlinePlanVersionCell#0.qbl | 10
_Main/BL/Type_AssemblyOnlinePlanVersionRow/Attribute_ProductID.qbl | 7
_Main/BL/Relations/Relation_AssemblyOnlinePlanVersionColumn_Cell_AssemblyOnlinePlanVersionCell_.qbl | 23
_Main/BL/Type_AssemblyOnlinePlanVersionRow/DefaultValue_ProductionLine.qbl | 6
_Main/BL/Type_FinancialSalesSource/StaticMethod_InitiateSearch.qbl | 28
_Main/BL/Type_AssemblyOnlinePlanCell0/Attribute_Quantity.qbl | 7
_Main/BL/Type_OfflinePlanCell/StaticMethod_RefreshOfflinePlan.qbl | 86 +
161 files changed, 2,232 insertions(+), 457 deletions(-)
diff --git a/_Main/BL/InfoMessages.qbl b/_Main/BL/InfoMessages.qbl
index 84c6052..fa931f1 100644
--- a/_Main/BL/InfoMessages.qbl
+++ b/_Main/BL/InfoMessages.qbl
@@ -172,7 +172,7 @@
}
InfoMessage MP_ChangeLossSettingExcel_Import_PositiveInteger
{
- DefaultText: 'The import ChangeLossNr is not positive integer.'
+ DefaultText: 'The import ChangeLossNr is not positive number.'
}
InfoMessage MP_ChangeLossSettingExcel_Import_ProductNoExist
{
diff --git a/_Main/BL/Relations/Relation_AssemblyOnlinePlanVersionColumn_Cell_AssemblyOnlinePlanVersionCell_.qbl b/_Main/BL/Relations/Relation_AssemblyOnlinePlanVersionColumn_Cell_AssemblyOnlinePlanVersionCell_.qbl
new file mode 100644
index 0000000..e92f156
--- /dev/null
+++ b/_Main/BL/Relations/Relation_AssemblyOnlinePlanVersionColumn_Cell_AssemblyOnlinePlanVersionCell_.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation AssemblyOnlinePlanVersionColumn_Cell_AssemblyOnlinePlanVersionCell_Column
+{
+ #keys: '1[415136.0.1174730270]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide Cell
+ {
+ #keys: '3[415136.0.1174730272][415136.0.1174730271][415136.0.1174730273]'
+ Cardinality: '1toN'
+ ObjectDefinition: AssemblyOnlinePlanVersionColumn
+ OwningSide: 'Owned'
+ }
+ RelationSide.RightSide Column
+ {
+ #keys: '3[415136.0.1174730275][415136.0.1174730274][415136.0.1174730276]'
+ Cardinality: '0to1'
+ ObjectDefinition: AssemblyOnlinePlanVersionCell
+ OwningSide: 'Reference'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_AssemblyOnlinePlanVersionColumn_InterfaceDataset_InterfaceDataset_A.qbl b/_Main/BL/Relations/Relation_AssemblyOnlinePlanVersionColumn_InterfaceDataset_InterfaceDataset_A.qbl
new file mode 100644
index 0000000..5933f11
--- /dev/null
+++ b/_Main/BL/Relations/Relation_AssemblyOnlinePlanVersionColumn_InterfaceDataset_InterfaceDataset_A.qbl
@@ -0,0 +1,34 @@
+Quintiq file version 2.0
+#parent: #root
+Relation AssemblyOnlinePlanVersionColumn_InterfaceDataset_InterfaceDataset_AssemblyOnlinePlanVersionColumn
+{
+ #keys: '1[415136.0.1176550032]'
+ DeclarativeSequenceRelationStrategy
+ {
+ #keys: '13[0.0.0][415136.0.1176550051][415136.0.1176550045][415136.0.1176550052][415136.0.1176550046][415136.0.1176550053][415136.0.1176550047][415136.0.1176550054][415136.0.1176550048][415136.0.1176550055][415136.0.1176550049][415136.0.1176550056][415136.0.1176550050]'
+ SequenceElementSuffix: 'AssemblyOnlinePlanVersionColumn'
+ SequenceSuffix: 'AssemblyOnlinePlanVersionColumn'
+ SortAttributes:
+ [
+ DeclarativeSequenceRelationSortAttribute
+ {
+ #keys: '1[415136.0.1176550058]'
+ Attribute: 'ColumnDate'
+ }
+ ]
+ }
+ RelationSide.LeftSide InterfaceDataset
+ {
+ #keys: '3[415136.0.1176550034][415136.0.1176550033][415136.0.1176550035]'
+ Cardinality: '0to1'
+ ObjectDefinition: AssemblyOnlinePlanVersionColumn
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide AssemblyOnlinePlanVersionColumn
+ {
+ #keys: '3[415136.0.1176550037][415136.0.1176550036][415136.0.1176550038]'
+ Cardinality: '1toN'
+ ObjectDefinition: InterfaceDataset
+ OwningSide: 'Owned'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_AssemblyOnlinePlanVersionRow_Cell_AssemblyOnlinePlanVersionCell_Row.qbl b/_Main/BL/Relations/Relation_AssemblyOnlinePlanVersionRow_Cell_AssemblyOnlinePlanVersionCell_Row.qbl
new file mode 100644
index 0000000..ff699e8
--- /dev/null
+++ b/_Main/BL/Relations/Relation_AssemblyOnlinePlanVersionRow_Cell_AssemblyOnlinePlanVersionCell_Row.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation AssemblyOnlinePlanVersionRow_Cell_AssemblyOnlinePlanVersionCell_Row
+{
+ #keys: '1[415136.0.1174730181]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide Cell
+ {
+ #keys: '3[415136.0.1174730183][415136.0.1174730182][415136.0.1174730184]'
+ Cardinality: '1toN'
+ ObjectDefinition: AssemblyOnlinePlanVersionRow
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide Row
+ {
+ #keys: '3[415136.0.1174730186][415136.0.1174730185][415136.0.1174730187]'
+ Cardinality: '0to1'
+ ObjectDefinition: AssemblyOnlinePlanVersionCell
+ OwningSide: 'Reference'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_AssemblyOnlinePlanVersionRow_InterfaceDataset_InterfaceDataset_Asse.qbl b/_Main/BL/Relations/Relation_AssemblyOnlinePlanVersionRow_InterfaceDataset_InterfaceDataset_Asse.qbl
new file mode 100644
index 0000000..7b963fb
--- /dev/null
+++ b/_Main/BL/Relations/Relation_AssemblyOnlinePlanVersionRow_InterfaceDataset_InterfaceDataset_Asse.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation AssemblyOnlinePlanVersionRow_InterfaceDataset_InterfaceDataset_AssemblyOnlinePlanVersionRow
+{
+ #keys: '1[415136.0.1176550018]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide InterfaceDataset
+ {
+ #keys: '3[415136.0.1176550020][415136.0.1176550019][415136.0.1176550021]'
+ Cardinality: '0to1'
+ ObjectDefinition: AssemblyOnlinePlanVersionRow
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide AssemblyOnlinePlanVersionRow
+ {
+ #keys: '3[415136.0.1176550023][415136.0.1176550022][415136.0.1176550024]'
+ Cardinality: '1toN'
+ ObjectDefinition: InterfaceDataset
+ OwningSide: 'Owned'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_OfflinePlanCell_OfflinePlanColumn_OfflinePlanColumn_OfflinePlanCell.qbl b/_Main/BL/Relations/Relation_OfflinePlanCell_OfflinePlanColumn_OfflinePlanColumn_OfflinePlanCell.qbl
index 44c130e..1966dbf 100644
--- a/_Main/BL/Relations/Relation_OfflinePlanCell_OfflinePlanColumn_OfflinePlanColumn_OfflinePlanCell.qbl
+++ b/_Main/BL/Relations/Relation_OfflinePlanCell_OfflinePlanColumn_OfflinePlanColumn_OfflinePlanCell.qbl
@@ -18,6 +18,6 @@
#keys: '3[413988.0.1296697094][413988.0.1296697093][413988.0.1296697095]'
Cardinality: '1toN'
ObjectDefinition: OfflinePlanColumn
- OwningSide: 'Owned'
+ OwningSide: 'Reference'
}
}
diff --git a/_Main/BL/Relations/Relation_OfflinePlanCell_OfflinePlanRow_OfflinePlanRow_OfflinePlanCell.qbl b/_Main/BL/Relations/Relation_OfflinePlanCell_OfflinePlanRow_OfflinePlanRow_OfflinePlanCell.qbl
index dfd7e00..68171d0 100644
--- a/_Main/BL/Relations/Relation_OfflinePlanCell_OfflinePlanRow_OfflinePlanRow_OfflinePlanCell.qbl
+++ b/_Main/BL/Relations/Relation_OfflinePlanCell_OfflinePlanRow_OfflinePlanRow_OfflinePlanCell.qbl
@@ -18,6 +18,6 @@
#keys: '3[413988.0.1296697107][413988.0.1296697106][413988.0.1296697108]'
Cardinality: '1toN'
ObjectDefinition: OfflinePlanRow
- OwningSide: 'Reference'
+ OwningSide: 'Owned'
}
}
diff --git a/_Main/BL/Relations/Relation_OfflinePlanImportData_MacroPlan_MacroPlan_OfflinePlanImportData.qbl b/_Main/BL/Relations/Relation_OfflinePlanImportData_MacroPlan_MacroPlan_OfflinePlanImportData.qbl
new file mode 100644
index 0000000..1c92a84
--- /dev/null
+++ b/_Main/BL/Relations/Relation_OfflinePlanImportData_MacroPlan_MacroPlan_OfflinePlanImportData.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation OfflinePlanImportData_MacroPlan_MacroPlan_OfflinePlanImportData
+{
+ #keys: '1[413988.0.1558681405]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide MacroPlan
+ {
+ #keys: '3[413988.0.1558681407][413988.0.1558681406][413988.0.1558681408]'
+ Cardinality: '0to1'
+ ObjectDefinition: OfflinePlanImportData
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide OfflinePlanImportData
+ {
+ #keys: '3[413988.0.1558681410][413988.0.1558681409][413988.0.1558681411]'
+ Cardinality: '1toN'
+ ObjectDefinition: MacroPlan
+ OwningSide: 'Owned'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_TransferMinimumQuantity_MacroPlan_MacroPlan_TransferMinimumQuantity.qbl b/_Main/BL/Relations/Relation_TransferMinimumQuantity_MacroPlan_MacroPlan_TransferMinimumQuantity.qbl
new file mode 100644
index 0000000..17a5fbe
--- /dev/null
+++ b/_Main/BL/Relations/Relation_TransferMinimumQuantity_MacroPlan_MacroPlan_TransferMinimumQuantity.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation TransferMinimumQuantity_MacroPlan_MacroPlan_TransferMinimumQuantity
+{
+ #keys: '1[413988.0.1584313394]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide MacroPlan
+ {
+ #keys: '3[413988.0.1584313396][413988.0.1584313395][413988.0.1584313397]'
+ Cardinality: '0to1'
+ ObjectDefinition: TransferMinimumQuantity
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide TransferMinimumQuantity
+ {
+ #keys: '3[413988.0.1584313399][413988.0.1584313398][413988.0.1584313400]'
+ Cardinality: '1toN'
+ ObjectDefinition: MacroPlan
+ OwningSide: 'Owned'
+ }
+}
diff --git a/_Main/BL/Type_AssemblyOnlinePlanCell/StaticMethod_RefreshData.qbl b/_Main/BL/Type_AssemblyOnlinePlanCell/StaticMethod_RefreshData.qbl
index 457a74f..df7f2c7 100644
--- a/_Main/BL/Type_AssemblyOnlinePlanCell/StaticMethod_RefreshData.qbl
+++ b/_Main/BL/Type_AssemblyOnlinePlanCell/StaticMethod_RefreshData.qbl
@@ -11,7 +11,9 @@
macroPlan.AssemblyOnlinePlanColumn( relflush );
// 鎵捐閰嶇嚎琛�
- oprs := selectsortedset( opt, OfflinePlanRow, tempOPR, tempOPR.ProductionLine() = "DL-MoMo" or tempOPR.ProductionLine() = "CC-MoMo", tempOPR.ProductionLine(), tempOPR.ProductID(), tempOPR.Type() );
+ oprs := selectsortedset( opt, OfflinePlanRow, tempOPR,
+ tempOPR.ProductionLine() = "DL MoMo" or tempOPR.ProductionLine() = "CC MoMo" or tempOPR.ProductionLine() = "DL ZKM",
+ tempOPR.ProductionLine(), tempOPR.ProductID(), tempOPR.Type() );
opcs := selectsortedset( opt, OfflinePlanColumn, tempOPC, true, tempOPC.ColumnDate() );
// 鐢熸垚琛ㄦ牸
diff --git a/_Main/BL/Type_AssemblyOnlinePlanCell0/Attribute_InventoryWeight.qbl b/_Main/BL/Type_AssemblyOnlinePlanCell0/Attribute_InventoryWeight.qbl
new file mode 100644
index 0000000..a536175
--- /dev/null
+++ b/_Main/BL/Type_AssemblyOnlinePlanCell0/Attribute_InventoryWeight.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute InventoryWeight
+{
+ #keys: '3[415136.0.1174730142][415136.0.1174730141][415136.0.1174730143]'
+ Description: '鍓╀綑搴撳瓨 - 鏈�灏忓簱瀛�'
+ ValueType: Real
+}
diff --git a/_Main/BL/Type_AssemblyOnlinePlanCell0/Attribute_ProductionSerialNumber.qbl b/_Main/BL/Type_AssemblyOnlinePlanCell0/Attribute_ProductionSerialNumber.qbl
new file mode 100644
index 0000000..839fa49
--- /dev/null
+++ b/_Main/BL/Type_AssemblyOnlinePlanCell0/Attribute_ProductionSerialNumber.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductionSerialNumber
+{
+ #keys: '3[415136.0.1174730145][415136.0.1174730144][415136.0.1174730146]'
+ ValueType: Number
+}
diff --git a/_Main/BL/Type_AssemblyOnlinePlanCell0/Attribute_Quantity.qbl b/_Main/BL/Type_AssemblyOnlinePlanCell0/Attribute_Quantity.qbl
new file mode 100644
index 0000000..bfb6bf5
--- /dev/null
+++ b/_Main/BL/Type_AssemblyOnlinePlanCell0/Attribute_Quantity.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Quantity
+{
+ #keys: '3[415136.0.1174730148][415136.0.1174730147][415136.0.1174730149]'
+ ValueType: Real
+}
diff --git a/_Main/BL/Type_AssemblyOnlinePlanCell0/Attribute_Shift.qbl b/_Main/BL/Type_AssemblyOnlinePlanCell0/Attribute_Shift.qbl
new file mode 100644
index 0000000..b9b6d77
--- /dev/null
+++ b/_Main/BL/Type_AssemblyOnlinePlanCell0/Attribute_Shift.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Shift
+{
+ #keys: '3[415136.0.1174730151][415136.0.1174730150][415136.0.1174730152]'
+ Description: '鐝'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_AssemblyOnlinePlanCell0/Attribute_Value.qbl b/_Main/BL/Type_AssemblyOnlinePlanCell0/Attribute_Value.qbl
new file mode 100644
index 0000000..ef0e9df
--- /dev/null
+++ b/_Main/BL/Type_AssemblyOnlinePlanCell0/Attribute_Value.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Value
+{
+ #keys: '3[415136.0.1174730154][415136.0.1174730153][415136.0.1174730155]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_AssemblyOnlinePlanCell0/DefaultValue_Shift.qbl b/_Main/BL/Type_AssemblyOnlinePlanCell0/DefaultValue_Shift.qbl
new file mode 100644
index 0000000..b925fd8
--- /dev/null
+++ b/_Main/BL/Type_AssemblyOnlinePlanCell0/DefaultValue_Shift.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+ TargetAttribute: Shift
+}
diff --git a/_Main/BL/Type_AssemblyOnlinePlanCell0/DefaultValue_Value.qbl b/_Main/BL/Type_AssemblyOnlinePlanCell0/DefaultValue_Value.qbl
new file mode 100644
index 0000000..913414b
--- /dev/null
+++ b/_Main/BL/Type_AssemblyOnlinePlanCell0/DefaultValue_Value.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+ TargetAttribute: Value
+}
diff --git a/_Main/BL/Type_AssemblyOnlinePlanCell0/StaticMethod_Download.qbl b/_Main/BL/Type_AssemblyOnlinePlanCell0/StaticMethod_Download.qbl
new file mode 100644
index 0000000..3fc9100
--- /dev/null
+++ b/_Main/BL/Type_AssemblyOnlinePlanCell0/StaticMethod_Download.qbl
@@ -0,0 +1,47 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod Download (
+ MacroPlan macroPlan
+) as BinaryValue
+{
+ TextBody:
+ [*
+ xmlDOMI := XMLDOMImplementation::Create();
+ xmlDOM := xmlDOMI.CreateDocumentFromString( '<?xml version="1.0" encoding="UTF-16"?><table><name>Sheet1</name></table>' );
+
+ tableElement := xmlDOM.GetElementByTagName( "table", 0 );
+
+ opcs := selectsortedset( macroPlan, AssemblyOnlinePlanColumn, tempOPC, true, tempOPC.ColumnDate() );
+ oprs := selectsortedset( macroPlan, AssemblyOnlinePlanRow, tempOPR, true, tempOPR.ProductionLine(), tempOPR.ProductID(), tempOPR.Type() );
+ traverse ( opcs, Elements, opc ) {
+ column := xmlDOM.CreateElement( "column" );
+ name := xmlDOM.CreateElement( "name" );
+ type := xmlDOM.CreateElement( "type" );
+ name.TextContent( ifexpr( opc.ColumnDate() < macroPlan.StartOfPlanning().Date(), "", opc.ColumnDate().Format( "Y/M2/D2" ) ) );
+ type.TextContent( "String" );
+ column.AppendChild( name );
+ column.AppendChild( type );
+
+ traverse ( oprs, Elements, opr ) {
+ c := select( opc, AssemblyOnlinePlanCell, tempOPC, tempOPC.AssemblyOnlinePlanRow() = opr );
+ cell := xmlDOM.CreateElement( "cell" );
+ cell.SetAttribute( "value", guard( c.Value(), "" ) );
+ column.AppendChild( cell );
+ }
+
+ tableElement.AppendChild( column );
+ }
+
+ xmlString := xmlDOMI.CreateSerializer().WriteToString( xmlDOM )
+
+ //info( xmlString );
+
+ tableGroupHandle := TableGroupHandle::Create( "Sheet1" );
+ tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlString ) );
+ tableGroupHandle.Add( tableHandle );
+
+ binaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true );
+
+ return binaryData.AsBinaryValue();
+ *]
+}
diff --git a/_Main/BL/Type_AssemblyOnlinePlanCell0/StaticMethod_RefreshData.qbl b/_Main/BL/Type_AssemblyOnlinePlanCell0/StaticMethod_RefreshData.qbl
new file mode 100644
index 0000000..457a74f
--- /dev/null
+++ b/_Main/BL/Type_AssemblyOnlinePlanCell0/StaticMethod_RefreshData.qbl
@@ -0,0 +1,36 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod RefreshData (
+ MacroPlan macroPlan,
+ OfflinePlanTable opt
+)
+{
+ TextBody:
+ [*
+ macroPlan.AssemblyOnlinePlanRow( relflush );
+ macroPlan.AssemblyOnlinePlanColumn( relflush );
+
+ // 鎵捐閰嶇嚎琛�
+ oprs := selectsortedset( opt, OfflinePlanRow, tempOPR, tempOPR.ProductionLine() = "DL-MoMo" or tempOPR.ProductionLine() = "CC-MoMo", tempOPR.ProductionLine(), tempOPR.ProductID(), tempOPR.Type() );
+ opcs := selectsortedset( opt, OfflinePlanColumn, tempOPC, true, tempOPC.ColumnDate() );
+
+ // 鐢熸垚琛ㄦ牸
+ traverse ( opcs, Elements, opc ) {
+ aopc := macroPlan.AssemblyOnlinePlanColumn( relnew, ColumnDate := opc.ColumnDate(), ColumnIndex := opc.ColumnIndex() );
+ traverse ( oprs, Elements, opr ) {
+ aopr := select( macroPlan, AssemblyOnlinePlanRow, tempAOPR, tempAOPR.ProductID() = opr.ProductID() and tempAOPR.ProductionLine() = opr.ProductionLine() and tempAOPR.Type() = opr.Type() );
+ if ( isnull( aopr ) ) {
+ aopr := macroPlan.AssemblyOnlinePlanRow( relnew, ProductID := opr.ProductID(), ProductionLine := opr.ProductionLine(), Type := opr.Type() );
+ }
+
+ cellOPC := select( opr, OfflinePlanCell, tempOPC, tempOPC.OfflinePlanColumn() = opc );
+ if ( not isnull( cellOPC ) ) {
+ cellAOPC := aopc.AssemblyOnlinePlanCell( relnew, Value := cellOPC.Value() );
+ cellAOPC.AssemblyOnlinePlanRow( relset, aopr );
+ }
+ }
+ }
+
+ // 澶勭悊鏃ュ巻浜嬩欢
+ *]
+}
diff --git "a/_Main/BL/Type_AssemblyOnlinePlanCell0/_ROOT_Type_AssemblyOnlinePlanVersionCell\0430.qbl" "b/_Main/BL/Type_AssemblyOnlinePlanCell0/_ROOT_Type_AssemblyOnlinePlanVersionCell\0430.qbl"
new file mode 100644
index 0000000..e6e9c7a
--- /dev/null
+++ "b/_Main/BL/Type_AssemblyOnlinePlanCell0/_ROOT_Type_AssemblyOnlinePlanVersionCell\0430.qbl"
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type AssemblyOnlinePlanVersionCell
+{
+ #keys: '5[415136.0.1174730139][415136.0.1174730137][0.0.0][415136.0.1174730138][415136.0.1174730140]'
+ BaseType: Object
+ Description: '瑁呴厤涓婄嚎璁″垝鐗堟湰'
+ StructuredName: 'AssemblyOnlinePlanVersionCells'
+}
diff --git a/_Main/BL/Type_AssemblyOnlinePlanColumn0/Attribute_ColumnDate.qbl b/_Main/BL/Type_AssemblyOnlinePlanColumn0/Attribute_ColumnDate.qbl
new file mode 100644
index 0000000..b0847b4
--- /dev/null
+++ b/_Main/BL/Type_AssemblyOnlinePlanColumn0/Attribute_ColumnDate.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ColumnDate
+{
+ #keys: '3[415136.0.1174730129][415136.0.1174730128][415136.0.1174730130]'
+ ValueType: Date
+}
diff --git a/_Main/BL/Type_AssemblyOnlinePlanColumn0/Attribute_ColumnIndex.qbl b/_Main/BL/Type_AssemblyOnlinePlanColumn0/Attribute_ColumnIndex.qbl
new file mode 100644
index 0000000..e898d87
--- /dev/null
+++ b/_Main/BL/Type_AssemblyOnlinePlanColumn0/Attribute_ColumnIndex.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ColumnIndex
+{
+ #keys: '3[415136.0.1174730132][415136.0.1174730131][415136.0.1174730133]'
+ ValueType: Number
+}
diff --git a/_Main/BL/Type_AssemblyOnlinePlanColumn0/Attribute_ColumnName.qbl b/_Main/BL/Type_AssemblyOnlinePlanColumn0/Attribute_ColumnName.qbl
new file mode 100644
index 0000000..da7556e
--- /dev/null
+++ b/_Main/BL/Type_AssemblyOnlinePlanColumn0/Attribute_ColumnName.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ColumnName
+{
+ #keys: '3[415136.0.1174730135][415136.0.1174730134][415136.0.1174730136]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_AssemblyOnlinePlanColumn0/DefaultValue_ColumnName.qbl b/_Main/BL/Type_AssemblyOnlinePlanColumn0/DefaultValue_ColumnName.qbl
new file mode 100644
index 0000000..2ba9476
--- /dev/null
+++ b/_Main/BL/Type_AssemblyOnlinePlanColumn0/DefaultValue_ColumnName.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+ TargetAttribute: ColumnName
+}
diff --git "a/_Main/BL/Type_AssemblyOnlinePlanColumn0/_ROOT_Type_AssemblyOnlinePlanVersionColumn\0430.qbl" "b/_Main/BL/Type_AssemblyOnlinePlanColumn0/_ROOT_Type_AssemblyOnlinePlanVersionColumn\0430.qbl"
new file mode 100644
index 0000000..022a9c2
--- /dev/null
+++ "b/_Main/BL/Type_AssemblyOnlinePlanColumn0/_ROOT_Type_AssemblyOnlinePlanVersionColumn\0430.qbl"
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type AssemblyOnlinePlanVersionColumn
+{
+ #keys: '5[415136.0.1174730126][415136.0.1174730124][0.0.0][415136.0.1174730125][415136.0.1174730127]'
+ BaseType: Object
+ Description: '瑁呴厤涓婄嚎璁″垝鐗堟湰'
+ StructuredName: 'AssemblyOnlinePlanVersionColumns'
+}
diff --git a/_Main/BL/Type_AssemblyOnlinePlanVersionRow/Attribute_ProductID.qbl b/_Main/BL/Type_AssemblyOnlinePlanVersionRow/Attribute_ProductID.qbl
new file mode 100644
index 0000000..0435960
--- /dev/null
+++ b/_Main/BL/Type_AssemblyOnlinePlanVersionRow/Attribute_ProductID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductID
+{
+ #keys: '3[415136.0.1174730079][415136.0.1174730078][415136.0.1174730080]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_AssemblyOnlinePlanVersionRow/Attribute_ProductionLine.qbl b/_Main/BL/Type_AssemblyOnlinePlanVersionRow/Attribute_ProductionLine.qbl
new file mode 100644
index 0000000..688eed9
--- /dev/null
+++ b/_Main/BL/Type_AssemblyOnlinePlanVersionRow/Attribute_ProductionLine.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductionLine
+{
+ #keys: '3[415136.0.1174730082][415136.0.1174730081][415136.0.1174730083]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_AssemblyOnlinePlanVersionRow/Attribute_RowNr.qbl b/_Main/BL/Type_AssemblyOnlinePlanVersionRow/Attribute_RowNr.qbl
new file mode 100644
index 0000000..1eb0d1c
--- /dev/null
+++ b/_Main/BL/Type_AssemblyOnlinePlanVersionRow/Attribute_RowNr.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute RowNr
+{
+ #keys: '3[415136.0.1174730085][415136.0.1174730084][415136.0.1174730086]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_AssemblyOnlinePlanVersionRow/Attribute_Type.qbl b/_Main/BL/Type_AssemblyOnlinePlanVersionRow/Attribute_Type.qbl
new file mode 100644
index 0000000..128135c
--- /dev/null
+++ b/_Main/BL/Type_AssemblyOnlinePlanVersionRow/Attribute_Type.qbl
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Type
+{
+ #keys: '3[415136.0.1174730088][415136.0.1174730087][415136.0.1174730089]'
+ Description:
+ [*
+ 浜х嚎鍚嶈 锛�0
+ Quantity琛岋細1
+ Order琛� 锛�2
+ 鍚堣琛� 锛�3
+ 鐝琛� 锛�4
+ *]
+ ValueType: String
+}
diff --git a/_Main/BL/Type_AssemblyOnlinePlanVersionRow/DefaultValue_ProductID.qbl b/_Main/BL/Type_AssemblyOnlinePlanVersionRow/DefaultValue_ProductID.qbl
new file mode 100644
index 0000000..98649b2
--- /dev/null
+++ b/_Main/BL/Type_AssemblyOnlinePlanVersionRow/DefaultValue_ProductID.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+ TargetAttribute: ProductID
+}
diff --git a/_Main/BL/Type_AssemblyOnlinePlanVersionRow/DefaultValue_ProductionLine.qbl b/_Main/BL/Type_AssemblyOnlinePlanVersionRow/DefaultValue_ProductionLine.qbl
new file mode 100644
index 0000000..c59ec43
--- /dev/null
+++ b/_Main/BL/Type_AssemblyOnlinePlanVersionRow/DefaultValue_ProductionLine.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+ TargetAttribute: ProductionLine
+}
diff --git a/_Main/BL/Type_AssemblyOnlinePlanVersionRow/DefaultValue_RowNr.qbl b/_Main/BL/Type_AssemblyOnlinePlanVersionRow/DefaultValue_RowNr.qbl
new file mode 100644
index 0000000..a05f652
--- /dev/null
+++ b/_Main/BL/Type_AssemblyOnlinePlanVersionRow/DefaultValue_RowNr.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+ TargetAttribute: RowNr
+}
diff --git a/_Main/BL/Type_AssemblyOnlinePlanVersionRow/DefaultValue_Type.qbl b/_Main/BL/Type_AssemblyOnlinePlanVersionRow/DefaultValue_Type.qbl
new file mode 100644
index 0000000..fd112e9
--- /dev/null
+++ b/_Main/BL/Type_AssemblyOnlinePlanVersionRow/DefaultValue_Type.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+ TargetAttribute: Type
+}
diff --git a/_Main/BL/Type_AssemblyOnlinePlanVersionRow/_ROOT_Type_AssemblyOnlinePlanVersionRow.qbl b/_Main/BL/Type_AssemblyOnlinePlanVersionRow/_ROOT_Type_AssemblyOnlinePlanVersionRow.qbl
new file mode 100644
index 0000000..232548b
--- /dev/null
+++ b/_Main/BL/Type_AssemblyOnlinePlanVersionRow/_ROOT_Type_AssemblyOnlinePlanVersionRow.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type AssemblyOnlinePlanVersionRow
+{
+ #keys: '5[415136.0.1174730076][415136.0.1174730074][0.0.0][415136.0.1174730075][415136.0.1174730077]'
+ BaseType: Object
+ Description: '瑁呴厤涓婄嚎璁″垝鐗堟湰'
+ StructuredName: 'AssemblyOnlinePlanVersionRows'
+}
diff --git a/_Main/BL/Type_AssemblyOnlineQuantity/Attribute_DLZKM.qbl b/_Main/BL/Type_AssemblyOnlineQuantity/Attribute_DLZKM.qbl
new file mode 100644
index 0000000..cf7b59f
--- /dev/null
+++ b/_Main/BL/Type_AssemblyOnlineQuantity/Attribute_DLZKM.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute DLZKM
+{
+ #keys: '3[415754.0.315331249][415754.0.315331248][415754.0.315331250]'
+ ValueType: Number
+}
diff --git a/_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_GetCCFactory.qbl b/_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_GetCCFactory.qbl
new file mode 100644
index 0000000..6e57ba1
--- /dev/null
+++ b/_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_GetCCFactory.qbl
@@ -0,0 +1,12 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GetCCFactory () const as String
+{
+ TextBody:
+ [*
+ // 鐢勫叞楦� Jun-25-2024 (created)
+ return '闀挎槬宸ュ巶';
+ //return 'VWED CC';
+ //return 'Assembly Plant (France)';
+ *]
+}
diff --git a/_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_Initialize.qbl b/_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_Initialize.qbl
index 1fadf1f..25ae29f 100644
--- a/_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_Initialize.qbl
+++ b/_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_Initialize.qbl
@@ -11,6 +11,7 @@
produtparent := CCEngineLogisticsCostReport::GetDefaultProductParent();
name := CCEngineLogisticsCostReport::GetDefaultName();
allunit := CCEngineLogisticsCostReport::GetDefaultAllUnit();
+ ccfactory := CCEngineLogisticsCostReport::GetCCFactory();
ccunit := CCEngineLogisticsCostReport::GetDefaultCCUnit();
ccline := CCEngineLogisticsCostReport::GetStockingPointCCLine();
ccrent := CCEngineLogisticsCostReport::GetStockingPointCCRent();
@@ -36,7 +37,7 @@
//鏌ヨ瀵瑰簲鐨勫彂鍔ㄦ満鎴愭湰
enginecosts := selectset( owner, LogisticsCostEngine, engine, engine.Generation().ToLower() = product.Generation().ToLower()
and engine.MLB_MQB() = product.MQBMLB()
- and engine.Factory() = ccunit );
+ and engine.Factory() = ccfactory );//ccunit
if( not isnull( enginecosts ) and enginecosts.Size() > 0 ){
ccrow := table.GetRow( row.Name() );
products.Add( product );
@@ -66,7 +67,7 @@
//鏌ヨ瀵瑰簲鐨勫彂鍔ㄦ満鎴愭湰
enginecosts := selectset( owner, LogisticsCostEngine, engine, engine.Generation().ToLower() = product.Generation().ToLower()
and engine.MLB_MQB() = product.MQBMLB()
- and engine.Factory() = ccunit );
+ and engine.Factory() = ccfactory );
if( not isnull( enginecosts ) and enginecosts.Size() > 0 ){
ccrow := table.GetRow( row.Name() );
products.Add( product );
@@ -110,7 +111,7 @@
//鍦ㄥ彂鍔ㄦ満鎴愭湰鍙傛暟琛ㄦ壘鍒板搴旂殑鍖呰瀹归噺
enginecost := selectobject( enginecosts, Elements, engine, engine.Generation().ToLower() = product.Generation().ToLower()
and engine.MLB_MQB() = product.MQBMLB()
- and engine.Factory() = ccunit );
+ and engine.Factory() = ccfactory );
//鍦ㄨ繍杈撴垚鏈弬鏁拌〃閲屾壘鍒板彂鍔ㄦ満瀵瑰簲杩愯緭鍗曚环鍜岃杞藉閲�
transcost := selectobject( transcosts, Elements, trans, trans.Origin() = ccline
and trans.Destination() = ccrent
@@ -143,7 +144,7 @@
//鏌ヨ瀵瑰簲鐨勫彂鍔ㄦ満鎴愭湰
enginecosts := selectset( owner, LogisticsCostEngine, engine, engine.Generation().ToLower() = product.Generation().ToLower()
and engine.MLB_MQB() = product.MQBMLB()
- and engine.Factory() = ccunit );
+ and engine.Factory() = ccfactory );
if( not isnull( enginecosts ) and enginecosts.Size() > 0 ){
row := table.GetRow( pisp.ProductID() );
products.Add( product );
diff --git a/_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_InitiateSearch.qbl b/_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_InitiateSearch.qbl
new file mode 100644
index 0000000..a6cdcd8
--- /dev/null
+++ b/_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_InitiateSearch.qbl
@@ -0,0 +1,27 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod InitiateSearch (
+ MacroPlan owner
+) as CCEngineLogisticsCostReport
+{
+ TextBody:
+ [*
+ // 鐢勫叞楦� Sep-29-2024 (created)
+ allunit := DLEngineLogisticsCostReport::GetDefaultAllUnit();
+ search := owner.CCEngineLogisticsCostSearch();
+ if( isnull( search ) ){
+ owner.CCEngineLogisticsCostSearch( relnew, Generation := allunit, MqbMlb := allunit, Power := allunit );
+ }else{
+ search := owner.CCEngineLogisticsCostSearch();
+ search.Generation( allunit );
+ search.MqbMlb( allunit );
+ search.Power( allunit );
+ }
+ table := selectobject( owner, CCEngineLogisticsCostReport, table, table.IsShow() );
+ if( not isnull( table ) ){
+ products := selectset( owner, Product_MP, product, true );
+ table.Generate( search, products );
+ }
+ return table;
+ *]
+}
diff --git a/_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_GetCCFactory.qbl b/_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_GetCCFactory.qbl
new file mode 100644
index 0000000..6e57ba1
--- /dev/null
+++ b/_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_GetCCFactory.qbl
@@ -0,0 +1,12 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GetCCFactory () const as String
+{
+ TextBody:
+ [*
+ // 鐢勫叞楦� Jun-25-2024 (created)
+ return '闀挎槬宸ュ巶';
+ //return 'VWED CC';
+ //return 'Assembly Plant (France)';
+ *]
+}
diff --git a/_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_GetDLFactory.qbl b/_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_GetDLFactory.qbl
new file mode 100644
index 0000000..16d53c9
--- /dev/null
+++ b/_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_GetDLFactory.qbl
@@ -0,0 +1,12 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GetDLFactory () const as String
+{
+ TextBody:
+ [*
+ // 鐢勫叞楦� Jun-25-2024 (created)
+ return '澶ц繛宸ュ巶';
+ //return 'VWED DL';
+ //return 'Assembly Plant (France)';
+ *]
+}
diff --git a/_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_InitializeNew.qbl b/_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_InitializeNew.qbl
index c37810c..90133e3 100644
--- a/_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_InitializeNew.qbl
+++ b/_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_InitializeNew.qbl
@@ -13,9 +13,11 @@
allunit := DLEngineLogisticsCostReport::GetDefaultAllUnit();
ccunit := DLEngineLogisticsCostReport::GetDefaultCCUnit();
dlunit := DLEngineLogisticsCostReport::GetDefaultDLUnit();
+ ccfactory := DLEngineLogisticsCostReport::GetCCFactory();
+ dlfactory := DLEngineLogisticsCostReport::GetDLFactory();
//dlline := DLEngineLogisticsCostReport::GetStockingPointDLLine();
- ccrent := DLEngineLogisticsCostReport::GetStockingPointCCRent();
- dlrent := DLEngineLogisticsCostReport::GetStockingPointCCRent();
+ //ccrent := DLEngineLogisticsCostReport::GetStockingPointCCRent();
+ //dlrent := DLEngineLogisticsCostReport::GetStockingPointCCRent();
startofplanning := owner.StartOfPlanning().Date();
//startofyear := startofplanning.StartOfYear();
@@ -28,14 +30,74 @@
products := construct( Product_MPs );
table.GenerateColumn( owner );
+ //澶栫搴撲粨鍌ㄨ垂鐢細浠撳偍鏁伴噺/鍖呰瀹归噺*浠撳偍鍗曚环锛屽湪Actual inventories閲屽彇鍒伴暱鏄ュ绉熷簱/澶ц繛澶栫搴撹鍙戝姩鏈虹殑浠撳偍閲忥紝鏍规嵁鍙戝姩鏈哄彿鎵惧埌瀵瑰簲鐨凣eneration 鍜屾í绾靛埗锛屽湪鍙戝姩鏈烘垚鏈弬鏁拌〃閲屾壘鍒板搴旂殑浠撳偍鍗曚环鍜屽寘瑁呭閲忥紝鐢ㄥ叕寮忚绠楋紝鏈堝害杩涜姹囨��
+ //闀挎槬澶栫搴撳叆搴�/鍑哄簱璐圭敤锛屽ぇ杩炲彂鍔ㄦ満鐨勯暱鏄ュ绉熷簱鐨凬ew supply
+ traverse( owner, StockingPoint_MP, stockingpoint, stockingpoint.ID().EndsWith( '澶栫搴�' ) ){
+ // unit := stockingpoint.Unit();
+ // parentunits := unit.GetAllParent();
+ //鏄惁灞炰簬闀挎槬澶栫搴�
+ isccrent := stockingpoint.ID().StartsWith( '闀挎槬' ) or stockingpoint.ID().StartsWith( 'CC' );
+ //鏄惁灞炰簬澶ц繛鍙戝姩鏈虹殑闀挎槬澶栫搴�
+ isdltoccrent := stockingpoint.ID().StartsWith( '澶ц繛鍙戝姩鏈虹殑闀挎槬' );
+ //鏄惁灞炰簬澶ц繛澶栫搴�
+ isdlrent := stockingpoint.ID().StartsWith( '澶ц繛' ) or stockingpoint.ID().StartsWith( 'DL' );
+ if( isccrent or isdlrent ){
+ traverse( stockingpoint, ProductInStockingPoint_MP, pisp, pisp.Product_MP().IsLeaf()
+ and exists( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and pispip.Period_MP().StartDate() < startofnextyear and pispip.NewSupplyQuantity() <> 0 ) ){
+ //鑾峰彇琛�
+ product := pisp.Product_MP();
+ productparents := product.GetAllParent();
+ if( exists( productparents, Elements, e, e.ID() = produtparent ) ){//鏌ヨ浜у搧绫诲瀷鏄彂鍔ㄦ満
+ row := table.GetRow( pisp.ProductID() );
+ enginecosts := selectset( owner, LogisticsCostEngine, engine, engine.Generation().ToLower() = product.Generation().ToLower() and engine.MLB_MQB() = product.MQBMLB() );
+ if( not isnull( enginecosts ) and enginecosts.Size() > 0 ){
+ products.Add( pisp.Product_MP() );
+ traverse( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and pispip.Period_MP().StartDate() < startofnextyear and pispip.NewSupplyQuantity() <> 0 ){
+ periodtime := pispip.Start().StartOfMonth().Date();
+ periodname := periodtime.Format( "M2/D2/Y" );
+ column := selectobject( table, Column, column, column.Name() = periodname and column.StartDate() = periodtime );
+ cell := selectobject( row, Cell, cell, cell.Column() = column );
+
+ if( isccrent or isdltoccrent){
+ //鍦ㄥ彂鍔ㄦ満鎴愭湰鍙傛暟琛ㄦ壘鍒板搴旂殑鍖呰瀹归噺
+ enginecost := selectobject( enginecosts, Elements, engine, engine.StartDate() <= pispip.Start().Date() and engine.EndDate() >= pispip.Start().Date()
+ and engine.Factory() = ccfactory );
+ if( not isnull( enginecost ) ){
+ quantity := [Number]pispip.NewSupplyQuantity();
+ if( isccrent ){
+ cost := ceil( quantity / enginecost.PackagingCapacity() ) * enginecost.StoragePrice();//鍥涜垗浜斿叆
+ cell.CCRentStorCost( cell.CCRentStorCost() + cost );
+ }else{
+ cell.CCRentQuantity( cell.CCRentQuantity() + quantity );
+ //闀挎槬澶栫搴撳叆搴撹垂鐢細鍏ュ簱閲�/鍖呰瀹归噺*鍏ュ簱鍗曚环
+ entercost := ceil( quantity / enginecost.PackagingCapacity() ) * enginecost.WarehousingPrice();
+ //闀挎槬澶栫搴撳嚭搴撹垂鐢�: 鍑哄簱閲�/鍖呰瀹归噺*鍑哄簱鍗曚环
+ outcost := ceil( quantity / enginecost.PackagingCapacity() ) * enginecost.WarehousingPrice();
+ cell.CCRentInCost( cell.CCRentInCost() + entercost );
+ cell.CCRentOutOfCost( cell.CCRentOutOfCost() + outcost );
+ }
+ }
+ } else {
+ //鍦ㄥ彂鍔ㄦ満鎴愭湰鍙傛暟琛ㄦ壘鍒板搴旂殑鍖呰瀹归噺
+ enginecost := selectobject( enginecosts, Elements, engine, engine.StartDate() <= pispip.Start().Date() and engine.EndDate() >= pispip.Start().Date()
+ and engine.Factory() = dlfactory );
+ if( not isnull( enginecost ) ){
+ cost := ceil( [Number]pispip.NewSupplyQuantity() / enginecost.PackagingCapacity() ) * enginecost.StoragePrice();//鍥涜垗浜斿叆
+ cell.DLRentStorCost( cell.DLRentStorCost() + cost );
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
//鍦� trip plan閲屾壘鍒板ぇ杩炶閰嶇嚎杈瑰簱鍒板ぇ杩炲绉熷簱鐨勮繍杈撴暟閲�//澶ц繛鍘傚唴搴撳埌澶栫搴�
traverse( owner, Unit.Lane.LaneLeg, laneleg ){
//璧峰搴撳瓨鐐规槸鍚︽槸澶ц繛瑁呴厤绾胯竟搴�
- // originsp := selectobject( owner, StockingPoint_MP, sp, sp.ID() = laneleg.OriginStockingPointID() );
- isdlspline := laneleg.OriginStockingPointID().EndsWith( '鍘傚唴搴�' ) and ( laneleg.OriginStockingPointID().StartsWith( '澶ц繛' ) or laneleg.OriginStockingPointID().StartsWith( 'DL' ) );//table.IsInUnit( originsp, dlline );
+ isdlspline := laneleg.OriginStockingPointID().EndsWith( '鍘傚唴搴�' ) and ( laneleg.OriginStockingPointID().StartsWith( '澶ц繛' ) or laneleg.OriginStockingPointID().StartsWith( 'DL' ) );
//鐩殑鍦版槸鍚︽槸澶ц繛澶栫搴�
- // destisp := selectobject( owner, StockingPoint_MP, sp, sp.ID() = laneleg.DestinationStockingPointID() );
- isdlrent := laneleg.DestinationStockingPointID().EndsWith( '澶栫搴�' ) and ( laneleg.DestinationStockingPointID().StartsWith( '澶ц繛' ) or laneleg.DestinationStockingPointID().StartsWith( 'DL' ) );//table.IsInUnit( destisp, dlrent );
+ isdlrent := laneleg.DestinationStockingPointID().EndsWith( '澶栫搴�' ) and ( laneleg.DestinationStockingPointID().StartsWith( '澶ц繛' ) or laneleg.DestinationStockingPointID().StartsWith( 'DL' ) );
if( isdlspline and isdlrent ){
traverse( laneleg, Trip, trip, trip.Departure().Date() < startofnextyear ){//鐢变簬闇�瑕佽�冭檻浜у搧杩愯緭lead time锛屾瘡涓湀鐨勬眹鎬绘暟鎹渶瑕佹帹杩熶袱澶╄繘琛岃绠�
periodtime := trip.Departure().StartOfMonth().Date();
@@ -54,7 +116,7 @@
//鍦ㄥ彂鍔ㄦ満鎴愭湰鍙傛暟琛ㄦ壘鍒板搴旂殑鍖呰瀹归噺
enginecost := selectobject( enginecosts, Elements, engine, engine.Generation().ToLower() = product.Generation().ToLower()
and engine.MLB_MQB() = product.MQBMLB()
- and engine.Factory() = dlunit );
+ and engine.Factory() = dlfactory );
//鍦ㄨ繍杈撴垚鏈弬鏁拌〃閲屾壘鍒板彂鍔ㄦ満瀵瑰簲杩愯緭鍗曚环鍜岃杞藉閲�
transcost := selectobject( transcosts, Elements, trans, trans.Origin() = laneleg.OriginStockingPointID()
and trans.Destination() = laneleg.DestinationStockingPointID()
@@ -66,29 +128,12 @@
cost := ceil( ceil( quantity / enginecost.PackagingCapacity() ) / transcost.LoadingCapacity() ) * transcost.TransportPrice();//鍥涜垗浜斿叆
cell.WerkToDLRentTransCost( cell.WerkToDLRentTransCost() + cost );
}
- // if( isccrent ){//鐩殑鍦版槸闀挎槬澶栫搴�
- // //鍦ㄥ彂鍔ㄦ満鎴愭湰鍙傛暟琛ㄦ壘鍒板搴旂殑鍖呰瀹归噺
- // enginecost := selectobject( enginecosts, Elements, engine, engine.Generation().ToLower() = product.Generation().ToLower()
- // and engine.MLB_MQB() = product.MQBMLB()
- // and engine.Factory() = ccunit );
- // if( not isnull( enginecost ) ){
- // products.Add( product );
- // cell := selectobject( row, Cell, cell, cell.Column() = column );
- // cell.CCRentQuantity( cell.CCRentQuantity() + quantity );
- // //闀挎槬澶栫搴撳叆搴撹垂鐢細鍏ュ簱閲�/鍖呰瀹归噺*鍏ュ簱鍗曚环
- // entercost := ceil( quantity / enginecost.PackagingCapacity() ) * enginecost.WarehousingPrice();
- // //闀挎槬澶栫搴撳嚭搴撹垂鐢�: 鍑哄簱閲�/鍖呰瀹归噺*鍑哄簱鍗曚环
- // outcost := ceil( quantity / enginecost.PackagingCapacity() ) * enginecost.WarehousingPrice();
- // cell.CCRentEnterCost( cell.CCRentEnterCost() + entercost );
- // cell.CCRentOutCost( cell.CCRentOutCost() + outcost );
- // }
- // }
}
}
}
}
}
- //澶ц繛澶栫搴撳叆搴撹垂鐢細鍏ュ簱閲�/鍖呰瀹归噺*鍏ュ簱鍗曚环锛屽叆搴撻噺绛変簬澶ц繛宸ュ巶璇ヤ骇鍝佷骇閲忓噺鍘诲彂寰�闀挎槬鐨勬暟閲�-newSupply
+ //澶ц繛澶栫搴撳叆搴撹垂鐢細鍏ュ簱閲�/鍖呰瀹归噺*鍏ュ簱鍗曚环锛屽叆搴撻噺绛変簬澶ц繛宸ュ巶璇ヤ骇鍝佷骇閲忓噺鍘诲彂寰�闀挎槬(澶ц繛鐨勯暱鏄ュ绉熷簱锛夌殑鏁伴噺-newSupply
traverse( owner, FinancialProductionSource, source, not source.IsImport() ){//璐㈠姟浜ч噺鎶ヨ〃闈炲鍏�
traverse( source, FinancialProductionReport, report, not report.IsShow() ){//璐㈠姟浜ч噺鎶ヨ〃涓嶆樉绀�
traverse( report, FinancialProductionRow, row, row.Unit() = dlunit and exists( row, FinancialProductionCell, cell, cell.Value() <> '0' and cell.FinancialProductionColumn().IsDay() ) ){//璐㈠姟浜ч噺鎶ヨ〃閲岀殑澶ц繛浜ч噺, 涓嶄负0
@@ -98,7 +143,7 @@
//鏌ヨ瀵瑰簲鐨勫彂鍔ㄦ満鎴愭湰
enginecosts := selectset( owner, LogisticsCostEngine, engine, engine.Generation().ToLower() = product.Generation().ToLower()
and engine.MLB_MQB() = product.MQBMLB()
- and engine.Factory() = dlunit );
+ and engine.Factory() = dlfactory );
if( not isnull( enginecosts ) and enginecosts.Size() > 0 ){
products.Add( product );
ccrow := table.GetRow( row.Name() );
@@ -126,7 +171,7 @@
//鏌ヨ瀵瑰簲鐨勫彂鍔ㄦ満鎴愭湰
enginecosts := selectset( owner, LogisticsCostEngine, engine, engine.Generation().ToLower() = product.Generation().ToLower()
and engine.MLB_MQB() = product.MQBMLB()
- and engine.Factory() = dlunit );
+ and engine.Factory() = dlfactory );
if( not isnull( enginecosts ) and enginecosts.Size() > 0 ){
products.Add( product );
ccrow := table.GetRow( row.Name() );
@@ -149,17 +194,15 @@
product := selectobject( owner, Product_MP, product, product.ID() = tprow.ProductID() );
productparents := product.GetAllParent();
if( exists( productparents, Elements, e, e.ID() = produtparent ) ){//鏌ヨ浜у搧绫诲瀷鏄彂鍔ㄦ満
- //璧峰搴撳瓨鐐规槸鍚︽槸澶ц繛
- originsp := selectobject( owner, StockingPoint_MP, sp, sp.ID() = tprow.SourceStockpoingPointID() );
- isdl := table.IsInUnit( originsp, dlunit );
- //鐩殑鍦板簱瀛樼偣鏄惁鏄暱鏄�
- destisp := selectobject( owner, StockingPoint_MP, sp, sp.ID() = tprow.TargetStockpoingPointID() );
- iscc := table.IsInUnit( destisp, ccunit );
+ //璧峰搴撳瓨鐐规槸鍚︽槸澶ц繛(澶ц繛鍘傚唴搴擄級
+ isdl := tprow.SourceStockpoingPointID().EndsWith( '鍘傚唴搴�' ) and ( tprow.TargetStockpoingPointID().StartsWith( '澶ц繛' ) or tprow.TargetStockpoingPointID().StartsWith( 'DL' ) );
+ //鐩殑鍦板簱瀛樼偣鏄惁鏄暱鏄ワ紙闀挎槬澶栫搴擄級
+ iscc := tprow.TargetStockpoingPointID().EndsWith( '澶栫搴�' ) and ( tprow.TargetStockpoingPointID().StartsWith( '闀挎槬' ) or tprow.TargetStockpoingPointID().StartsWith( 'CC' ) );
if( isdl and iscc ){
//鏌ヨ瀵瑰簲鐨勫彂鍔ㄦ満鎴愭湰
enginecosts := selectset( owner, LogisticsCostEngine, engine, engine.Generation().ToLower() = product.Generation().ToLower()
and engine.MLB_MQB() = product.MQBMLB()
- and engine.Factory() = ccunit );
+ and engine.Factory() = ccfactory );
//鍦ㄨ繍杈撴垚鏈弬鏁拌〃閲屾壘鍒板彂鍔ㄦ満瀵瑰簲杩愯緭鍗曚环鍜岃杞藉閲�
transcosts := selectset( owner, LogisticsCostTransport, trans, trans.Origin() = tprow.SourceStockpoingPointID()
and trans.Destination() = tprow.TargetStockpoingPointID()
@@ -190,7 +233,7 @@
salessegment := forecast.SalesSegment_MP();
parentsalessegments := salessegment.GetAllParent();
//鏄惁灞炰簬闀挎槬
- iscc := salessegment.Name() = ccunit or exists( parentsalessegments, Elements, psalessegment, psalessegment.Name() = ccunit );
+ iscc := salessegment.Name().StartsWith( 'Changechun' ) or exists( parentsalessegments, Elements, psalessegment, psalessegment.Name().StartsWith( 'Changechun' ) );
if( iscc ){
product := forecast.Product_MP();
productparents := product.GetAllParent();
@@ -198,7 +241,7 @@
//鏌ヨ瀵瑰簲鐨勫彂鍔ㄦ満鎴愭湰
enginecosts := selectset( owner, LogisticsCostEngine, engine, engine.Generation().ToLower() = product.Generation().ToLower()
and engine.MLB_MQB() = product.MQBMLB()
- and engine.Factory() = ccunit );
+ and engine.Factory() = ccfactory );
if( not isnull( enginecosts ) and enginecosts.Size() > 0 ){
products.Add( forecast.Product_MP() );
row := table.GetRow( forecast.ProductID() );
@@ -219,54 +262,7 @@
}
}
}
- //澶栫搴撲粨鍌ㄨ垂鐢細浠撳偍鏁伴噺/鍖呰瀹归噺*浠撳偍鍗曚环锛屽湪Actual inventories閲屽彇鍒伴暱鏄ュ绉熷簱/澶ц繛澶栫搴撹鍙戝姩鏈虹殑浠撳偍閲忥紝鏍规嵁鍙戝姩鏈哄彿鎵惧埌瀵瑰簲鐨凣eneration 鍜屾í绾靛埗锛屽湪鍙戝姩鏈烘垚鏈弬鏁拌〃閲屾壘鍒板搴旂殑浠撳偍鍗曚环鍜屽寘瑁呭閲忥紝鐢ㄥ叕寮忚绠楋紝鏈堝害杩涜姹囨��
- traverse( owner, StockingPoint_MP, stockingpoint ){
- unit := stockingpoint.Unit();
- parentunits := unit.GetAllParent();
- //鏄惁灞炰簬闀挎槬澶栫搴�
- isccrent := stockingpoint.ID() = ccrent or unit.ID() = ccrent or exists( parentunits, Elements, punit, punit.ID() = ccrent );
- //鏄惁灞炰簬澶ц繛澶栫搴�
- isdlrent := stockingpoint.ID() = dlrent or unit.ID() = dlrent or exists( parentunits, Elements, punit, punit.ID() = dlrent );
- if( isccrent or isdlrent ){
- traverse( stockingpoint, ProductInStockingPoint_MP, pisp, pisp.Product_MP().IsLeaf()
- and exists( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and pispip.Period_MP().StartDate() < startofnextyear and pispip.NewSupplyQuantity() <> 0 ) ){
- //鑾峰彇琛�
- product := pisp.Product_MP();
- productparents := product.GetAllParent();
- if( exists( productparents, Elements, e, e.ID() = produtparent ) ){//鏌ヨ浜у搧绫诲瀷鏄彂鍔ㄦ満
- row := table.GetRow( pisp.ProductID() );
- enginecosts := selectset( owner, LogisticsCostEngine, engine, engine.Generation().ToLower() = product.Generation().ToLower() and engine.MLB_MQB() = product.MQBMLB() );
- if( not isnull( enginecosts ) and enginecosts.Size() > 0 ){
- products.Add( pisp.Product_MP() );
- traverse( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and pispip.Period_MP().StartDate() < startofnextyear and pispip.NewSupplyQuantity() <> 0 ){
- periodtime := pispip.Start().StartOfMonth().Date();
- periodname := periodtime.Format( "M2/D2/Y" );
- column := selectobject( table, Column, column, column.Name() = periodname and column.StartDate() = periodtime );
- cell := selectobject( row, Cell, cell, cell.Column() = column );
-
- if( isccrent ){
- //鍦ㄥ彂鍔ㄦ満鎴愭湰鍙傛暟琛ㄦ壘鍒板搴旂殑鍖呰瀹归噺
- enginecost := selectobject( enginecosts, Elements, engine, engine.StartDate() <= pispip.Start().Date() and engine.EndDate() >= pispip.Start().Date()
- and engine.Factory() = ccunit );
- if( not isnull( enginecost ) ){
- cost := ceil( [Number]pispip.NewSupplyQuantity() / enginecost.PackagingCapacity() ) * enginecost.StoragePrice();//鍥涜垗浜斿叆
- cell.CCRentStorCost( cell.CCRentStorCost() + cost );
- }
- } else {
- //鍦ㄥ彂鍔ㄦ満鎴愭湰鍙傛暟琛ㄦ壘鍒板搴旂殑鍖呰瀹归噺
- enginecost := selectobject( enginecosts, Elements, engine, engine.StartDate() <= pispip.Start().Date() and engine.EndDate() >= pispip.Start().Date()
- and engine.Factory() = dlunit );
- if( not isnull( enginecost ) ){
- cost := ceil( [Number]pispip.NewSupplyQuantity() / enginecost.PackagingCapacity() ) * enginecost.StoragePrice();//鍥涜垗浜斿叆
- cell.DLRentStorCost( cell.DLRentStorCost() + cost );
- }
- }
- }
- }
- }
- }
- }
- }
+
rows := selectsortedset( table, Row, row, row.Name() );
i := 0;
traverse( rows, Elements, e ){
diff --git a/_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_InitiateSearch.qbl b/_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_InitiateSearch.qbl
new file mode 100644
index 0000000..997f6ba
--- /dev/null
+++ b/_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_InitiateSearch.qbl
@@ -0,0 +1,27 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod InitiateSearch (
+ MacroPlan owner
+) as DLEngineLogisticsCostReport
+{
+ TextBody:
+ [*
+ // 鐢勫叞楦� Sep-29-2024 (created)
+ allunit := DLEngineLogisticsCostReport::GetDefaultAllUnit();
+ search := owner.DLEngineLogisticsCostSearch();
+ if( isnull( search ) ){
+ owner.DLEngineLogisticsCostSearch( relnew, Generation := allunit, MqbMlb := allunit, Power := allunit );
+ }else{
+ search := owner.DLEngineLogisticsCostSearch();
+ search.Generation( allunit );
+ search.MqbMlb( allunit );
+ search.Power( allunit );
+ }
+ table := selectobject( owner, DLEngineLogisticsCostReport, table, table.IsShow() );
+ if( not isnull( table ) ){
+ products := selectset( owner, Product_MP, product, true );
+ table.Generate( search, products );
+ }
+ return table;
+ *]
+}
diff --git a/_Main/BL/Type_ChangeLossSetting/Attribute_ChangeLossNr.qbl b/_Main/BL/Type_ChangeLossSetting/Attribute_ChangeLossNr.qbl
deleted file mode 100644
index 3632e29..0000000
--- a/_Main/BL/Type_ChangeLossSetting/Attribute_ChangeLossNr.qbl
+++ /dev/null
@@ -1,8 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute ChangeLossNr
-{
- #keys: '3[415136.0.738030098][415136.0.738030097][415136.0.738030099]'
- Description: '鎹㈠瀷鎹熷け锛堝彴锛�'
- ValueType: Number
-}
diff --git a/_Main/BL/Type_ChangeLossSetting/Attribute_ChangeLossNumber.qbl b/_Main/BL/Type_ChangeLossSetting/Attribute_ChangeLossNumber.qbl
new file mode 100644
index 0000000..f110070
--- /dev/null
+++ b/_Main/BL/Type_ChangeLossSetting/Attribute_ChangeLossNumber.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ChangeLossNumber
+{
+ #keys: '3[415136.0.1176550071][415136.0.1176550070][415136.0.1176550072]'
+ ValueType: Real
+}
diff --git a/_Main/BL/Type_ChangeLossSetting/StaticMethod_ValidateInput.qbl b/_Main/BL/Type_ChangeLossSetting/StaticMethod_ValidateInput.qbl
index 6980d92..ebd5300 100644
--- a/_Main/BL/Type_ChangeLossSetting/StaticMethod_ValidateInput.qbl
+++ b/_Main/BL/Type_ChangeLossSetting/StaticMethod_ValidateInput.qbl
@@ -9,15 +9,17 @@
Product_MP product2,
Date startdate,
Date enddate,
- Number number
+ String number
) as Boolean
{
TextBody:
[*
// 鐢勫叞楦� Jun-5-2024 (created)
feedback := '';
-
- if( isnull( unit ) or isnull( product1 ) or isnull( product2 ) or number < 1 ){
+ if( [Number]number < 0 ){
+ feedback := Translations::MP_ChangeLossSettingExcel_Import_PositiveInteger();
+ }
+ if( isnull( unit ) or isnull( product1 ) or isnull( product2 ) or [Number]number = 0 ){
feedback := Translations::MP_ChangeLossSetting_CheckNull();
}
if( product1 = product2 ){
diff --git a/_Main/BL/Type_ChangeLossSettingExcel/StaticMethod_CheckImport.qbl b/_Main/BL/Type_ChangeLossSettingExcel/StaticMethod_CheckImport.qbl
index de86c3f..7acf689 100644
--- a/_Main/BL/Type_ChangeLossSettingExcel/StaticMethod_CheckImport.qbl
+++ b/_Main/BL/Type_ChangeLossSettingExcel/StaticMethod_CheckImport.qbl
@@ -16,7 +16,7 @@
error( Translations::MP_ChangeLossSettingExcel_Import_NullInputRequiredField() );
}
//瀵煎叆鐨勬暟閲忓皬浜�0
- if( exists( macroplan, ChangeLossSettingExcel, excel, [Real]excel.ChangeLossNumber() > 0 and ceil( [Real]excel.ChangeLossNumber() ) <> floor( [Real]excel.ChangeLossNumber() ) ) ){
+ if( exists( macroplan, ChangeLossSettingExcel, excel, [Real]excel.ChangeLossNumber() <= 0 ) ){
error( Translations::MP_ChangeLossSettingExcel_Import_PositiveInteger() );
}
//瀵煎叆浜у搧鏄惁瀛樺湪
diff --git a/_Main/BL/Type_ChangeLossSettingExcel/StaticMethod_ExportTemplate.qbl b/_Main/BL/Type_ChangeLossSettingExcel/StaticMethod_ExportTemplate.qbl
index eb73c40..22f4c62 100644
--- a/_Main/BL/Type_ChangeLossSettingExcel/StaticMethod_ExportTemplate.qbl
+++ b/_Main/BL/Type_ChangeLossSettingExcel/StaticMethod_ExportTemplate.qbl
@@ -9,7 +9,7 @@
[*
// 鐢勫叞楦� Aug-22-2024 (created)
traverse( macroplan, ChangeLossSetting, cls ){
- macroplan.ChangeLossSettingExcel( relnew, Product1 := cls.ProductFirst().ID(), Product2 := cls.ProductSecond().ID(), Unit := cls.Unit().ID(), ChangeLossNumber := [String]cls.ChangeLossNr(), StartDate := cls.StartDate(), EndDate := cls.EndDate() );
+ macroplan.ChangeLossSettingExcel( relnew, Product1 := cls.ProductFirst().ID(), Product2 := cls.ProductSecond().ID(), Unit := cls.Unit().ID(), ChangeLossNumber := [String]cls.ChangeLossNumber(), StartDate := cls.StartDate(), EndDate := cls.EndDate() );
}
value := macroplan.MP_ExportChangeLossSettingsBroker().ExecuteToXLS( isxlsxformat ).AsBinaryValue();
macroplan.ChangeLossSettingExcel( relflush );
diff --git a/_Main/BL/Type_ChangeLossSettingExcel/StaticMethod_Import.qbl b/_Main/BL/Type_ChangeLossSettingExcel/StaticMethod_Import.qbl
index 2e8db80..7332ee9 100644
--- a/_Main/BL/Type_ChangeLossSettingExcel/StaticMethod_Import.qbl
+++ b/_Main/BL/Type_ChangeLossSettingExcel/StaticMethod_Import.qbl
@@ -28,13 +28,14 @@
and cls.Unit().ID() = excel.Unit()
and cls.StartDate() = excel.StartDate()
and cls.EndDate() = excel.EndDate() );
+ info( excel.ChangeLossNumber() );
if( isnull( cls ) ){
product1 := selectobject( macroplan, Product_MP, product, product.ID() = excel.Product1() );
product2 := selectobject( macroplan, Product_MP, product, product.ID() = excel.Product2() );
unit := selectobject( macroplan, Unit, unit, unit.ID() = excel.Unit() );
feedback := '';
- if( ChangeLossSetting::ValidateInput( feedback, macroplan, null( ChangeLossSetting ), unit, product1, product2, excel.StartDate(), excel.EndDate(), [Number]excel.ChangeLossNumber() ) ){
- cls := macroplan.ChangeLossSetting( relnew, ChangeLossNr := [Number]excel.ChangeLossNumber() );
+ if( ChangeLossSetting::ValidateInput( feedback, macroplan, null( ChangeLossSetting ), unit, product1, product2, excel.StartDate(), excel.EndDate(), excel.ChangeLossNumber() ) ){
+ cls := macroplan.ChangeLossSetting( relnew, ChangeLossNumber := [Real]excel.ChangeLossNumber() );
cls.ProductFirst( relset, product1 );
cls.ProductSecond( relset, product2 );
@@ -47,8 +48,9 @@
error( feedback );
}
}else {
- cls.ChangeLossNr( [Number]excel.ChangeLossNumber() );
+ cls.ChangeLossNumber( [Real]excel.ChangeLossNumber() );
}
+ info( '-------------------', cls.ChangeLossNumber() );
excel.Delete();
}
*]
diff --git a/_Main/BL/Type_EnginePipelineSource/StaticMethod_InitiateSearch.qbl b/_Main/BL/Type_EnginePipelineSource/StaticMethod_InitiateSearch.qbl
new file mode 100644
index 0000000..2c3837f
--- /dev/null
+++ b/_Main/BL/Type_EnginePipelineSource/StaticMethod_InitiateSearch.qbl
@@ -0,0 +1,26 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod InitiateSearch (
+ MacroPlan owner
+) as EnginePipelineReport
+{
+ TextBody:
+ [*
+ // 鐢勫叞楦� Sep-29-2024 (created)
+ search := owner.EnginePipelineSearch();
+ if( isnull( search ) ){
+ owner.EnginePipelineSearch( relnew, StartDate := Date::MinDate(), EndDate := Date::MaxDate(), TimeUnit := Translations::MP_GlobalParameters_Day() );
+ }else{
+ search := owner.EnginePipelineSearch();
+ search.TimeUnit( Translations::MP_GlobalParameters_Day() );
+ search.StartDate( Date::MinDate() );
+ search.EndDate( Date::MaxDate() );
+ }
+ table := selectobject( owner, EnginePipelineSource.Report, table, table.IsShow() );
+ if( not isnull( table ) ){
+ products := selectset( owner, Product_MP, product, true );
+ table.Generate( search, products );
+ }
+ return table;
+ *]
+}
diff --git a/_Main/BL/Type_FinancialProductionCell/Attribute_Quantity.qbl b/_Main/BL/Type_FinancialProductionCell/Attribute_Quantity.qbl
new file mode 100644
index 0000000..a34b687
--- /dev/null
+++ b/_Main/BL/Type_FinancialProductionCell/Attribute_Quantity.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Quantity
+{
+ #keys: '3[415136.0.1167140019][415136.0.1167140018][415136.0.1167140020]'
+ Description: '鏁伴噺'
+ ValueType: Real
+}
diff --git a/_Main/BL/Type_FinancialProductionReport/Method_Generate.qbl b/_Main/BL/Type_FinancialProductionReport/Method_Generate.qbl
index c7c7b0d..45e40f0 100644
--- a/_Main/BL/Type_FinancialProductionReport/Method_Generate.qbl
+++ b/_Main/BL/Type_FinancialProductionReport/Method_Generate.qbl
@@ -29,16 +29,22 @@
sumcell := selectobject( column, FinancialProductionCell, c, c.FinancialProductionRow() = sumrow );
if( isnull( sumcell ) ){
- sumcell := column.FinancialProductionCell( relnew, Value := '0' );
+ sumcell := column.FinancialProductionCell( relnew, Quantity := 0 );
sumrow.FinancialProductionCell( relinsert, sumcell );
}
- showcell := column.FinancialProductionCell( relnew, Value := cell.Value() );
+ showcell := column.FinancialProductionCell( relnew, Quantity := cell.Quantity() );
showrow.FinancialProductionCell( relinsert, showcell );
- value := [Real]cell.Value() + [Real]sumcell.Value();
- sumcell.Value( [String]value );
+ // value := [Real]cell.Value() + [Real]sumcell.Value();
+ sumcell.Quantity( sumcell.Quantity() + cell.Quantity() );
}
}
}
+
+ traverse( this, FinancialProductionRow, row ){
+ traverse( row, FinancialProductionCell, cell ){
+ cell.Value( [String]([Number]cell.Quantity()) );
+ }
+ }
*]
}
diff --git "a/_Main/BL/Type_FinancialProductionRow/Method_Initialize\043110.qbl" "b/_Main/BL/Type_FinancialProductionRow/Method_Initialize\043110.qbl"
index 9f6d003..bdd6e85 100644
--- "a/_Main/BL/Type_FinancialProductionRow/Method_Initialize\043110.qbl"
+++ "b/_Main/BL/Type_FinancialProductionRow/Method_Initialize\043110.qbl"
@@ -10,7 +10,7 @@
TextBody:
[*
// 鐢勫叞楦� Jun-24-2024 (created)
- cell := column.FinancialProductionCell( relnew, Value := '' );
+ cell := column.FinancialProductionCell( relnew, Quantity := 0 );
this.FinancialProductionCell( relinsert, cell );
if( unit <> FinancialProductionReport::GetDefaultAllUnit() ){
diff --git a/_Main/BL/Type_FinancialProductionRow/Method_Initialize.qbl b/_Main/BL/Type_FinancialProductionRow/Method_Initialize.qbl
index da223ae..e2695ab 100644
--- a/_Main/BL/Type_FinancialProductionRow/Method_Initialize.qbl
+++ b/_Main/BL/Type_FinancialProductionRow/Method_Initialize.qbl
@@ -2,7 +2,7 @@
#parent: #root
Method Initialize (
FinancialProductionColumn column,
- Number quantity
+ Real quantity
)
{
TextBody:
@@ -10,7 +10,8 @@
// 鐢勫叞楦� Jun-24-2024 (created)
cell := selectobject( this, FinancialProductionCell, cell, cell.FinancialProductionColumn() = column );
- value := [Number]cell.Value() + quantity;
- cell.Value( [String]value );
+ //value := [Number]cell.Value() + quantity;
+ //cell.Value( [String]value );
+ cell.Quantity( cell.Quantity() + quantity );
*]
}
diff --git a/_Main/BL/Type_FinancialProductionSource/Method_AfterImport.qbl b/_Main/BL/Type_FinancialProductionSource/Method_AfterImport.qbl
index 3d1ed85..bb784f2 100644
--- a/_Main/BL/Type_FinancialProductionSource/Method_AfterImport.qbl
+++ b/_Main/BL/Type_FinancialProductionSource/Method_AfterImport.qbl
@@ -28,11 +28,13 @@
allcell := selectobject( allrow, FinancialProductionCell, allcell, allcell.FinancialProductionColumn().Name() = column.Name() );
// info( isnull( unitcell ), isnull( allcell ), cell.Value(), unitcell.Value(), allcell.Value() );
if( not isnull( unitcell ) ){
- unitcell.Value( cell.Value() );
+ // unitcell.Value( cell.Value() );
+ unitcell.Quantity( [Real]cell.Value() );
}
if( not isnull( allcell ) ){
- value := [Real]cell.Value() + [Real]allcell.Value();
- allcell.Value( [String]value );
+ // value := [Real]cell.Value() + [Real]allcell.Value();
+ // allcell.Value( [String]value );
+ allcell.Quantity( allcell.Quantity() + [Real]allcell.Value() );
}
}
}
diff --git a/_Main/BL/Type_FinancialProductionSource/StaticMethod_Download.qbl b/_Main/BL/Type_FinancialProductionSource/StaticMethod_Download.qbl
index 87f56b0..ed8f090 100644
--- a/_Main/BL/Type_FinancialProductionSource/StaticMethod_Download.qbl
+++ b/_Main/BL/Type_FinancialProductionSource/StaticMethod_Download.qbl
@@ -33,7 +33,8 @@
tableElement.AppendChild( productcolumnelement );
tableElement.AppendChild( unitcolumnelement );
- traverse ( table, FinancialProductionColumn, column ) {
+ minindex := min( table, FinancialProductionColumn, column, not column.IsDay(), column.Index() );
+ traverse ( table, FinancialProductionColumn, column, not column.IsDay() ) {
columnelement := xmlDOM.CreateElement( "column" );
nameelement := xmlDOM.CreateElement( "name" );
typeelement := xmlDOM.CreateElement( "type" );
@@ -45,7 +46,7 @@
cells := selectsortedset( column, FinancialProductionCell, cell, cell.FinancialProductionRow().RowNr() );
traverse ( cells, Elements, c ) {
- if( column.Index() = 0 ){
+ if( column.Index() = minindex ){
row := c.FinancialProductionRow();
//Product
productcellElement := xmlDOM.CreateElement( "cell" );
diff --git a/_Main/BL/Type_FinancialProductionSource/StaticMethod_Initialize.qbl b/_Main/BL/Type_FinancialProductionSource/StaticMethod_Initialize.qbl
index dec7ca1..0aa4ae5 100644
--- a/_Main/BL/Type_FinancialProductionSource/StaticMethod_Initialize.qbl
+++ b/_Main/BL/Type_FinancialProductionSource/StaticMethod_Initialize.qbl
@@ -36,7 +36,7 @@
table.GenerateColumn( owner );
//鍙栧綋鍓嶇増鏈殑product planning閲宯ew supply瀛楁锛屽垎澶ц繛鍜岄暱鏄ュ伐鍘傜殑浜х嚎锛岃繘琛屽姞鎬�
//traverse( owner, StockingPoint_MP, stockingpoint ){
- traverse( owner, StockingPoint_MP, stockingpoint, stockingpoint.ID().EndsWith( '鍘傚唴搴�' ) ){
+ traverse( owner, StockingPoint_MP, stockingpoint, stockingpoint.ID().EndsWith( '鍘傚唴搴�' ) or stockingpoint.ID() = '澶ц繛澶栫搴�' ){
iscc := stockingpoint.ID().StartsWith( 'CC' ) or stockingpoint.ID().StartsWith( '闀挎槬' );
isdl := stockingpoint.ID().StartsWith( 'DL' ) or stockingpoint.ID().StartsWith( '澶ц繛' );
// unit := stockingpoint.Unit();
@@ -59,12 +59,12 @@
dayperiodname := dayperiodtime.Format( "M2/D2/Y" );
periodtime := pispip.Start().StartOfMonth().Date();
periodname := periodtime.Format( "M2/D2/Y" );
- quantity := [Number]pispip.NewSupplyQuantity();//鍥涜垗浜斿叆
+ // quantity := [Number]pispip.NewSupplyQuantity();//鍥涜垗浜斿叆
daycolumn := selectobject( table, FinancialProductionColumn, column, column.Name() = dayperiodname and column.Period() = dayperiodtime and column.IsDay() );
column := selectobject( table, FinancialProductionColumn, column, column.Name() = periodname and column.Period() = periodtime and not column.IsDay() );
- factoryrow.Initialize( daycolumn, quantity );
- factoryrow.Initialize( column, quantity );
- allrow.Initialize( column, quantity );
+ factoryrow.Initialize( daycolumn, pispip.NewSupplyQuantity() );
+ factoryrow.Initialize( column, pispip.NewSupplyQuantity() );
+ allrow.Initialize( column, pispip.NewSupplyQuantity() );
}
}
}
diff --git a/_Main/BL/Type_FinancialProductionSource/StaticMethod_InitiateSearch.qbl b/_Main/BL/Type_FinancialProductionSource/StaticMethod_InitiateSearch.qbl
new file mode 100644
index 0000000..748afbf
--- /dev/null
+++ b/_Main/BL/Type_FinancialProductionSource/StaticMethod_InitiateSearch.qbl
@@ -0,0 +1,28 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod InitiateSearch (
+ MacroPlan owner
+) as FinancialProductionReport
+{
+ TextBody:
+ [*
+ // 鐢勫叞楦� Sep-29-2024 (created)
+ allunit := FinancialProductionReport::GetDefaultAllUnit();
+ search := owner.FinancialProductionSearch();
+ if( isnull( owner.FinancialProductionSearch() ) ){
+ owner.FinancialProductionSearch( relnew, Unit := allunit, Generation := allunit, MqbMlb := allunit, Power := allunit );
+ }else{
+ search := owner.FinancialProductionSearch();
+ search.Unit( allunit );
+ search.Generation( allunit );
+ search.MqbMlb( allunit );
+ search.Power( allunit );
+ }
+ table := selectobject( owner, FinancialProductionSource.FinancialProductionReport, table, table.IsShow() );
+ if( not isnull( table ) ){
+ products := selectset( owner, Product_MP, product, true );
+ table.Generate( search, products );
+ }
+ return table;
+ *]
+}
diff --git a/_Main/BL/Type_FinancialSalesSource/StaticMethod_Download.qbl b/_Main/BL/Type_FinancialSalesSource/StaticMethod_Download.qbl
index 6fe5b7f..fcbd81e 100644
--- a/_Main/BL/Type_FinancialSalesSource/StaticMethod_Download.qbl
+++ b/_Main/BL/Type_FinancialSalesSource/StaticMethod_Download.qbl
@@ -33,7 +33,8 @@
tableElement.AppendChild( productcolumnelement );
tableElement.AppendChild( unitcolumnelement );
- traverse ( table, FinancialSalesColumn, column ) {
+ minindex := min( table, FinancialSalesColumn, column, not column.IsDay(), column.Index() );
+ traverse ( table, FinancialSalesColumn, column, not column.IsDay() ) {
columnelement := xmlDOM.CreateElement( "column" );
nameelement := xmlDOM.CreateElement( "name" );
typeelement := xmlDOM.CreateElement( "type" );
@@ -45,7 +46,7 @@
cells := selectsortedset( column, FinancialSalesCell, cell, cell.FinancialSalesRow().RowNr() );
traverse ( cells, Elements, c ) {
- if( column.Index() = 0 ){
+ if( column.Index() = minindex ){
row := c.FinancialSalesRow();
//Product
productcellElement := xmlDOM.CreateElement( "cell" );
diff --git a/_Main/BL/Type_FinancialSalesSource/StaticMethod_Initialize.qbl b/_Main/BL/Type_FinancialSalesSource/StaticMethod_Initialize.qbl
index d2b2932..8677d00 100644
--- a/_Main/BL/Type_FinancialSalesSource/StaticMethod_Initialize.qbl
+++ b/_Main/BL/Type_FinancialSalesSource/StaticMethod_Initialize.qbl
@@ -83,27 +83,29 @@
//鏄惁灞炰簬闀挎槬瑁呴厤绾�
// iscc := unit.ID() = ccspline or exists( parentunits, Elements, punit, punit.ID() = ccspline );
// if( table.IsInUnit( stockingpoint, ccspline ) ){
- traverse( stockingpoint, ProductInStockingPoint_MP, pisp, pisp.Product_MP().IsLeaf() and pisp.Product_MP().MQBMLB() = 'MQB'
+ traverse( stockingpoint, ProductInStockingPoint_MP, pisp, pisp.Product_MP().IsLeaf()
and exists( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and pispip.Period_MP().StartDate() < startofnextyear
and ( pispip.DependentDemandAndSalesDemandQuantity() <> 0 or pispip.NewSupplyQuantity() <> 0 ) ) ){//浜у搧涓篗QB
product := pisp.Product_MP();
allrow := table.GetRow( allunit, product );
- ccrow := table.GetRow( ccunit, product );
- products.Add( product );
- traverse( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical()
- and pispip.Period_MP().StartDate() < startofnextyear
- and ( pispip.DependentDemandAndSalesDemandQuantity() <> 0 or pispip.NewSupplyQuantity() <> 0 ) ){
- dayperiodtime := pispip.Start().Date();
- dayperiodname := dayperiodtime.Format( "M2/D2/Y" );
- periodtime := pispip.Start().StartOfMonth().Date();
- periodname := periodtime.Format( "M2/D2/Y" );
- daycolumn := selectobject( table, FinancialSalesColumn, column, column.Name() = dayperiodname and column.Period() = dayperiodtime and column.IsDay() );
- column := selectobject( table, FinancialSalesColumn, column, column.Name() = periodname and column.Period() = periodtime and not column.IsDay() );
- quantity := ifexpr( isdl, [Number]pispip.NewSupplyQuantity(), [Number]pispip.DependentDemandAndSalesDemandQuantity() );//鍥涜垗浜斿叆
-
- ccrow.Initialize( column, quantity );//鍙朤otal Demand瀛楁鎸夋湀姹囨�婚渶姹傛暟閲�
- ccrow.Initialize( daycolumn, quantity );
- allrow.Initialize( column, quantity );
+ if( isdl or pisp.Product_MP().MQBMLB() = 'MQB' ){
+ factoryrow := table.GetRow( ifexpr( isdl, dlunit, ccunit ), product );
+ products.Add( product );
+ traverse( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical()
+ and pispip.Period_MP().StartDate() < startofnextyear
+ and ( pispip.DependentDemandAndSalesDemandQuantity() <> 0 or pispip.NewSupplyQuantity() <> 0 ) ){
+ dayperiodtime := pispip.Start().Date();
+ dayperiodname := dayperiodtime.Format( "M2/D2/Y" );
+ periodtime := pispip.Start().StartOfMonth().Date();
+ periodname := periodtime.Format( "M2/D2/Y" );
+ daycolumn := selectobject( table, FinancialSalesColumn, column, column.Name() = dayperiodname and column.Period() = dayperiodtime and column.IsDay() );
+ column := selectobject( table, FinancialSalesColumn, column, column.Name() = periodname and column.Period() = periodtime and not column.IsDay() );
+ quantity := ifexpr( isdl, [Number]pispip.NewSupplyQuantity(), [Number]pispip.DependentDemandAndSalesDemandQuantity() );//鍥涜垗浜斿叆
+
+ factoryrow.Initialize( column, quantity );//鍙朤otal Demand瀛楁鎸夋湀姹囨�婚渶姹傛暟閲�
+ factoryrow.Initialize( daycolumn, quantity );
+ allrow.Initialize( column, quantity );
+ }
}
}
// }
diff --git a/_Main/BL/Type_FinancialSalesSource/StaticMethod_InitializeNew.qbl b/_Main/BL/Type_FinancialSalesSource/StaticMethod_InitializeNew.qbl
new file mode 100644
index 0000000..bfd4632
--- /dev/null
+++ b/_Main/BL/Type_FinancialSalesSource/StaticMethod_InitializeNew.qbl
@@ -0,0 +1,145 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod InitializeNew (
+ MacroPlan owner
+)
+{
+ Description: '鍒濆鍖�'
+ TextBody:
+ [*
+ // 鐢勫叞楦� Jun-24-2024 (created)
+ owner.FinancialSalesSource( relflush );
+ products := construct( Product_MPs );
+ allunit := FinancialSalesReport::GetDefaultAllUnit();
+ ccunit := FinancialSalesReport::GetDefaultCCUnit();
+ dlunit := FinancialSalesReport::GetDefaultDLUnit();
+ ccsalessegment := FinancialSalesReport::GetSalesSegmentCC();
+ tjsalessegment := FinancialSalesReport::GetSalesSegmentTJ();
+ fssalessegment := FinancialSalesReport::GetSalesSegmentFS();
+ //ccspline := FinancialSalesReport::GetStockingPointCCLine();
+ //dlspline := FinancialSalesReport::GetStockingPointDLLine();
+ //ccrent := FinancialSalesReport::GetStockingPointCCRent();
+
+ source := owner.FinancialSalesSource( relnew, IsImport := false, Name := FinancialSalesReport::GetDefaultName() );
+ table := source.FinancialSalesReport( relnew, ID := source.Name(), Name := source.Name(), IsImport := false );
+ showtable := source.FinancialSalesReport( relnew, ID := source.Name() + 'Show', Name := source.Name(), IsImport := false, IsShow := true );
+ startofplanning := owner.StartOfPlanning().Date();
+ //startofyear := startofplanning.StartOfYear();
+ startofnextyear := startofplanning.StartOfNextYear();
+
+ search := owner.FinancialSalesSearch( relnew, Unit := allunit, Generation := allunit, MqbMlb := allunit, Power := allunit );
+
+ table.GenerateColumn( owner );
+
+ //棣栧厛鍦╢orecast鐣岄潰鏌ユ壘sales segment涓洪暱鏄ョ殑鎵�鏈夐渶姹傦紝璇嗗埆鍑篗LB鐨勬墍鏈変骇鍝侊紝姣忎釜浜у搧鎸夋湀姹囨�婚渶姹傛暟閲�
+ traverse( owner, SalesDemand.astype( Forecast ), forecast, not isnull( forecast.SalesSegment_MP() ) and forecast.StartDate() < startofnextyear and forecast.Quantity() <> 0
+ and exists( forecast, PlanningSalesDemandInPeriod, psdip, psdip.Quantity() <> 0 ) ){
+ salessegment := forecast.SalesSegment_MP();
+ parentsalessegments := salessegment.GetAllParent();
+ stockingpoint := forecast.StockingPointID();
+ product := forecast.Product_MP();
+ //鏄惁灞炰簬闀挎槬
+ iscc := salessegment.Name().StartsWith( ccsalessegment ) or exists( parentsalessegments, Elements, psalessegment, psalessegment.Name().StartsWith( ccsalessegment ) );
+ isccrent := iscc and stockingpoint.EndsWith( '澶栫搴�' ) and ( stockingpoint.StartsWith( 'CC' ) or stockingpoint.StartsWith( '闀挎槬' ) );
+ isdl := salessegment.Name().StartsWith( tjsalessegment ) or salessegment.Name().StartsWith( fssalessegment )
+ or exists( parentsalessegments, Elements, psalessegment, psalessegment.Name().StartsWith( tjsalessegment ) )
+ or exists( parentsalessegments, Elements, psalessegment, psalessegment.Name().StartsWith( fssalessegment ) );
+ //Forecast鐨凷ales Segment涓洪暱鏄ワ紝璇嗗埆鍑篗LB鐨勬墍鏈変骇鍝佹眹鎬�
+ //澶ц繛璐㈠姟閿�閲忥細棣栧厛鍦╢orecast鐣岄潰鏌ユ壘Sales Segment鏄ぉ娲ュ拰浣涘北鐨勬墍鏈夐渶姹傦紝姣忎釜浜у搧鎸夋湀姹囨�婚渶姹傛暟閲� and forecast.Product_MP().MQBMLB() = 'MLB' )
+ if( ( iscc and product.MQBMLB() = 'MLB' ) or ( isccrent and product.MQBMLB() = 'MQB' ) or isdl ){
+
+ //鑾峰彇鍚堣琛�
+ allrow := table.GetRow( allunit, product );
+ //鑾峰彇宸ュ巶琛�
+ factoryrow := table.GetRow( ifexpr( isdl, dlunit, ccunit ), product );
+
+ products.Add( product );
+ traverse( forecast, PlanningSalesDemandInPeriod, psdip, psdip.Quantity() <> 0 ){
+ dayperiodtime := psdip.StartDate();
+ dayperiodname := dayperiodtime.Format( "M2/D2/Y" );
+ periodtime := psdip.StartDate().StartOfMonth();
+ periodname := periodtime.Format( "M2/D2/Y" );
+ // info( '-------------------------', periodname, periodtime );
+ daycolumn := selectobject( table, FinancialSalesColumn, column, column.Name() = dayperiodname and column.Period() = dayperiodtime and column.IsDay() );
+ column := selectobject( table, FinancialSalesColumn, column, column.Name() = periodname and column.Period() = periodtime and not column.IsDay() );
+ // info( '-------------------------', column.Name() );
+ quantity := [Number]psdip.Quantity();//鍥涜垗浜斿叆
+
+ factoryrow.Initialize( column, quantity );
+ factoryrow.Initialize( daycolumn, quantity );
+ allrow.Initialize( column, quantity );
+ }
+ }
+ }
+ //浠嶱roduct planning鏌ユ壘搴撳瓨鐐逛负澶ц繛鍙戝姩鏈虹殑闀挎槬澶栫搴擄紝鍙朜ew supply瀛楁鎸夋湀姹囨�婚渶姹傛暟閲�
+ traverse( owner, StockingPoint_MP, stockingpoint, stockingpoint.ID() = '澶ц繛鍙戝姩鏈虹殑闀挎槬澶栫搴�' ){
+ traverse( stockingpoint, ProductInStockingPoint_MP, pisp, pisp.Product_MP().IsLeaf()
+ and exists( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and pispip.Period_MP().StartDate() < startofnextyear
+ and ( pispip.DependentDemandAndSalesDemandQuantity() <> 0 or pispip.NewSupplyQuantity() <> 0 ) ) ){//浜у搧涓篗QB
+ product := pisp.Product_MP();
+ allrow := table.GetRow( allunit, product );
+ factoryrow := table.GetRow( dlunit, product );
+ products.Add( product );
+ traverse( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical()
+ and pispip.Period_MP().StartDate() < startofnextyear
+ and ( pispip.DependentDemandAndSalesDemandQuantity() <> 0 or pispip.NewSupplyQuantity() <> 0 ) ){
+ dayperiodtime := pispip.Start().Date();
+ dayperiodname := dayperiodtime.Format( "M2/D2/Y" );
+ periodtime := pispip.Start().StartOfMonth().Date();
+ periodname := periodtime.Format( "M2/D2/Y" );
+ daycolumn := selectobject( table, FinancialSalesColumn, column, column.Name() = dayperiodname and column.Period() = dayperiodtime and column.IsDay() );
+ column := selectobject( table, FinancialSalesColumn, column, column.Name() = periodname and column.Period() = periodtime and not column.IsDay() );
+ quantity := [Number]pispip.NewSupplyQuantity();//鍥涜垗浜斿叆
+
+ factoryrow.Initialize( column, quantity );//鍙朤otal Demand瀛楁鎸夋湀姹囨�婚渶姹傛暟閲�
+ factoryrow.Initialize( daycolumn, quantity );
+ allrow.Initialize( column, quantity );
+ }
+ }
+ // }
+ }
+ //startofnextyearlead := startofplanning.StartOfNextYear() + FinancialSalesReport::GetDefaultTripLeadingTime();
+ //澶ц繛璐㈠姟閿�閲忥細闀挎槬鐨勯渶姹傞渶瑕佸湪trip plan閲岄潰鎵惧埌璧峰搴撳瓨鐐逛负澶ц繛瑁呴厤绾胯竟搴擄紝鐩殑鍦颁负闀挎槬澶栫搴撶殑浜у搧锛岀敱浜庨渶瑕佽�冭檻浜у搧杩愯緭lead time锛屾瘡涓湀鐨勬眹鎬绘暟鎹渶瑕佹帹杩熶袱澶╄繘琛岃绠�
+ //traverse( owner, Unit.Lane.LaneLeg, laneleg ){
+ // //璧峰搴撳瓨鐐规槸鍚︽槸澶ц繛瑁呴厤绾胯竟搴�
+ // originsp := selectobject( owner, StockingPoint_MP, sp, sp.ID() = laneleg.OriginStockingPointID() );
+ // isdlspline := table.IsInUnit( originsp, dlspline );
+ // //鐩殑鍦版槸鍚︽槸闀挎槬澶栫搴�
+ // destisp := selectobject( owner, StockingPoint_MP, sp, sp.ID() = laneleg.DestinationStockingPointID() );
+ // isccrent := table.IsInUnit( destisp, ccrent );
+ // if( isdlspline and isccrent ){
+ // traverse( laneleg, Trip, trip, trip.Arrival() < startofnextyearlead and exists( trip, ProductInTrip, pit, pit.Quantity() <> 0 ) ){
+ //// periodtime := ( trip.Arrival() - FinancialSalesReport::GetDefaultTripLeadingTime() ).StartOfMonth().Date();
+ // dayperiodtime := trip.Departure().Date();
+ // dayperiodname := dayperiodtime.Format( "M2/D2/Y" );
+ // periodtime := trip.Departure().StartOfMonth().Date();
+ // periodname := periodtime.Format( "M2/D2/Y" );
+ //
+ // daycolumn := selectobject( table, FinancialSalesColumn, column, column.Name() = dayperiodname and column.Period() = dayperiodtime and column.IsDay() );
+ // column := selectobject( table, FinancialSalesColumn, column, column.Name() = periodname and column.Period() = periodtime and not column.IsDay() );
+ // if( not isnull( column ) ){
+ // traverse( trip, ProductInTrip, pit, pit.Quantity() <> 0 ){
+ // product := pit.Product_MP();
+ // products.Add( product );
+ // quantity := [Number]pit.Quantity();//鍥涜垗浜斿叆
+ // dlrow := table.GetRow( dlunit, pit.Product_MP() );
+ // dlrow.Initialize( column, quantity );//姹囨�绘暟閲�
+ // dlrow.Initialize( daycolumn, quantity );
+ //
+ // allrow := table.GetRow( allunit, pit.Product_MP() );
+ // allrow.Initialize( column, quantity );
+ // }
+ // }
+ // }
+ // }
+ //}
+
+ rows := selectsortedset( table, FinancialSalesRow, row, row.Name() );
+ i := 0;
+ traverse( rows, Elements, e ){
+ e.RowNr( i );
+ i := i + 1;
+ }
+ showtable.Generate( search, products );
+ *]
+}
diff --git a/_Main/BL/Type_FinancialSalesSource/StaticMethod_InitiateSearch.qbl b/_Main/BL/Type_FinancialSalesSource/StaticMethod_InitiateSearch.qbl
new file mode 100644
index 0000000..eeff011
--- /dev/null
+++ b/_Main/BL/Type_FinancialSalesSource/StaticMethod_InitiateSearch.qbl
@@ -0,0 +1,28 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod InitiateSearch (
+ MacroPlan owner
+) as FinancialSalesReport
+{
+ TextBody:
+ [*
+ // 鐢勫叞楦� Sep-29-2024 (created)
+ allunit := FinancialSalesReport::GetDefaultAllUnit();
+ search := owner.FinancialSalesSearch();
+ if( isnull( search ) ){
+ owner.FinancialSalesSearch( relnew, Unit := allunit, Generation := allunit, MqbMlb := allunit, Power := allunit );
+ }else{
+ search := owner.FinancialSalesSearch();
+ search.Unit( allunit );
+ search.Generation( allunit );
+ search.MqbMlb( allunit );
+ search.Power( allunit );
+ }
+ table := selectobject( owner, FinancialSalesSource.FinancialSalesReport, table, table.IsShow() );
+ if( not isnull( table ) ){
+ products := selectset( owner, Product_MP, product, true );
+ table.Generate( search, products );
+ }
+ return table;
+ *]
+}
diff --git a/_Main/BL/Type_FinancialWeeklyReport/StaticMethod_GetDefaultCCUnit.qbl b/_Main/BL/Type_FinancialWeeklyReport/StaticMethod_GetDefaultCCUnit.qbl
index 7bf8369..eda6e70 100644
--- a/_Main/BL/Type_FinancialWeeklyReport/StaticMethod_GetDefaultCCUnit.qbl
+++ b/_Main/BL/Type_FinancialWeeklyReport/StaticMethod_GetDefaultCCUnit.qbl
@@ -5,7 +5,8 @@
TextBody:
[*
// 鐢勫叞楦� Jun-28-2024 (created)
- return '闀挎槬宸ュ巶';
+ //return '闀挎槬宸ュ巶';
+ return 'VWED CC';
//return 'Assembly Plant (France)';
*]
}
diff --git a/_Main/BL/Type_FinancialWeeklyReport/StaticMethod_GetDefaultDLUnit.qbl b/_Main/BL/Type_FinancialWeeklyReport/StaticMethod_GetDefaultDLUnit.qbl
index 781dc80..bdc2b39 100644
--- a/_Main/BL/Type_FinancialWeeklyReport/StaticMethod_GetDefaultDLUnit.qbl
+++ b/_Main/BL/Type_FinancialWeeklyReport/StaticMethod_GetDefaultDLUnit.qbl
@@ -5,7 +5,8 @@
TextBody:
[*
// 鐢勫叞楦� Jun-28-2024 (created)
- return '澶ц繛宸ュ巶';
+ //return '澶ц繛宸ュ巶';
+ return 'VWED DL';
//return 'Assembly Plant (Spain)';
*]
}
diff --git a/_Main/BL/Type_FinancialWeeklyReport/StaticMethod_Initialize.qbl b/_Main/BL/Type_FinancialWeeklyReport/StaticMethod_Initialize.qbl
index dcd3b98..ba8dd8d 100644
--- a/_Main/BL/Type_FinancialWeeklyReport/StaticMethod_Initialize.qbl
+++ b/_Main/BL/Type_FinancialWeeklyReport/StaticMethod_Initialize.qbl
@@ -44,38 +44,38 @@
ccsvaluecumulant := [Real]0;
traverse( table, FinancialWeeklyColumn, column ){
- productioncolumn := selectobject( productiontable, FinancialProductionColumn, pcolumn, pcolumn.Name() = column.Name() and pcolumn.Period() = column.Period() );
- salescolumn := selectobject( salestable, FinancialSalesColumn, scolumn, scolumn.Name() = column.Name() and scolumn.Period() = column.Period() );
+ productioncolumn := selectobject( productiontable, FinancialProductionColumn, pcolumn, pcolumn.Name() = column.Name() and pcolumn.Period() = column.Period() and not pcolumn.IsDay() );
+ salescolumn := selectobject( salestable, FinancialSalesColumn, scolumn, scolumn.Name() = column.Name() and scolumn.Period() = column.Period() and not scolumn.IsDay() );
//浜ч噺姹囨��
totalpvalue := [Real]0;
dlpvalue := [Real]0;
ccpvalue := [Real]0;
- traverse( productioncolumn, FinancialProductionCell, cell, [Real]cell.Value() > 0 ){
+ traverse( productioncolumn, FinancialProductionCell, cell, cell.Quantity() > 0 ){
unit := cell.FinancialProductionRow().Unit();
if( unit = allunit ){
- totalpvalue := totalpvalue + [Real]cell.Value();
+ totalpvalue := totalpvalue + cell.Quantity();
if( column.Period() = startofplanning.StartOfMonth().Date() ){
totalpvaluecumulant := totalpvaluecumulant - cell.PlanValue();
}
}else if( unit = dlunit ){
- dlpvalue := dlpvalue + [Real]cell.Value();
+ dlpvalue := dlpvalue + cell.Quantity();
if( column.Period() = startofplanning.StartOfMonth().Date() ){
dlpvaluecumulant := dlpvaluecumulant - cell.PlanValue();
}
}else if( unit = ccunit ){
- ccpvalue := ccpvalue + [Real]cell.Value();
+ ccpvalue := ccpvalue + cell.Quantity();
if( column.Period() = startofplanning.StartOfMonth().Date() ){
ccpvaluecumulant := ccpvaluecumulant - cell.PlanValue();
}
}
}
- totalpcell := column.FinancialWeeklyCell( relnew, Value := [String]totalpvalue );
+ totalpcell := column.FinancialWeeklyCell( relnew, Value := [String]( [Number]totalpvalue ) );
totalproduction.FinancialWeeklyCell( relinsert, totalpcell );
- dlpcell := column.FinancialWeeklyCell( relnew, Value := [String]dlpvalue );
+ dlpcell := column.FinancialWeeklyCell( relnew, Value := [String]( [Number]dlpvalue ) );
dlproduction.FinancialWeeklyCell( relinsert, dlpcell );
- ccpcell := column.FinancialWeeklyCell( relnew, Value := [String]ccpvalue );
+ ccpcell := column.FinancialWeeklyCell( relnew, Value := [String]( [Number]ccpvalue ) );
ccproduction.FinancialWeeklyCell( relinsert, ccpcell );
//閿�閲忔眹鎬�
diff --git a/_Main/BL/Type_InventorySummarySource/StaticMethod_Initialize.qbl b/_Main/BL/Type_InventorySummarySource/StaticMethod_Initialize.qbl
index 5bdd2d7..ec32de3 100644
--- a/_Main/BL/Type_InventorySummarySource/StaticMethod_Initialize.qbl
+++ b/_Main/BL/Type_InventorySummarySource/StaticMethod_Initialize.qbl
@@ -26,17 +26,17 @@
startofyear := startofplanning.StartOfYear();
startofnextyear := startofplanning.StartOfNextYear();
- search := owner.InventorySummarySearch( relnew, Unit := allunit, Generation := allunit, MqbMlb := allunit, Power := allunit, StartDate := Date::MinDate(), EndDate := Date::MaxDate() );
+ search := owner.InventorySummarySearch( relnew, Unit := allunit, Generation := allunit, MqbMlb := allunit, Power := allunit, Category := Translations::MP_GlobalParameters_Day(), StartDate := Date::MinDate(), EndDate := Date::MaxDate() );
table.GenerateColumn( owner, 'All', startofyear, startofnextyear );
//info( '-----------------------------------', table.InventorySummaryColumn( relsize ) );
//搴撳瓨鏁伴噺涓篈ctual inventories閲岄潰鐨勭偣Planned inventories瀛楁搴撳瓨閲忓姞鎬�
- //traverse( owner, StockingPoint_MP, stockingpoint ){
- traverse( owner, StockingPoint_MP, stockingpoint, stockingpoint.ID().EndsWith( '鍘傚唴搴�' ) ){
+ traverse( owner, StockingPoint_MP, stockingpoint ){
+ //traverse( owner, StockingPoint_MP, stockingpoint, stockingpoint.ID().EndsWith( '鍘傚唴搴�' ) ){
// unit := stockingpoint.Unit();
// parentunits := unit.GetAllParent();
//鏄惁灞炰簬闀挎槬宸ュ巶
- iscc := stockingpoint.ID().StartsWith( 'CC' );//unit.ID() = ccalineunit or unit.ID() = ccmplineunit or exists( parentunits, Elements, punit, punit.ID() = ccalineunit or punit.ID() = ccmplineunit );
+ iscc := stockingpoint.ID().StartsWith( 'CC' ) or stockingpoint.ID() = '闀挎槬' ;//unit.ID() = ccalineunit or unit.ID() = ccmplineunit or exists( parentunits, Elements, punit, punit.ID() = ccalineunit or punit.ID() = ccmplineunit );
// iscc := stockingpoint.ID().StartsWith( 'CC' ) or unit.ID().StartsWith( 'CC' ) or exists( parentunits, Elements, punit, punit.ID().StartsWith( 'CC' ) );
//鏄惁灞炰簬澶ц繛宸ュ巶
isdl := stockingpoint.ID().StartsWith( '澶ц繛' );//unit.ID() = dlalienunit or unit.ID() = dlmplineunit or exists( parentunits, Elements, punit, punit.ID() = dlalienunit or punit.ID() = dlmplineunit );
@@ -59,6 +59,7 @@
and pispip.Period_MP().TimeUnit() = Translations::MP_GlobalParameters_Day(), pispip.Start() );
traverse( pispips, Elements, pispip ){
+ products.Add( pisp.Product_MP() );
period := pispip.Period_MP();
periodtime := period.Start().Date();
periodname := periodtime.Format( "M2/D2/Y" );
@@ -150,7 +151,7 @@
if( exists( e, InventorySummaryCell, cell, cell.AverageInventory() <> 0 or cell.EndingInventory() <> 0 or cell.MaximumInventory() <> 0 or cell.MinimumInventory() <> 0 ) ){
e.RowNr( i );
i := i + 1;
- }{
+ }else{
e.Delete();
}
}
diff --git a/_Main/BL/Type_InventorySummarySource/StaticMethod_InitiateSearch.qbl b/_Main/BL/Type_InventorySummarySource/StaticMethod_InitiateSearch.qbl
new file mode 100644
index 0000000..4003115
--- /dev/null
+++ b/_Main/BL/Type_InventorySummarySource/StaticMethod_InitiateSearch.qbl
@@ -0,0 +1,31 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod InitiateSearch (
+ MacroPlan owner
+) as InventorySummaryReport
+{
+ TextBody:
+ [*
+ // 鐢勫叞楦� Sep-29-2024 (created)
+ allunit := InventorySummaryReport::GetDefaultAllUnit();
+ search := owner.InventorySummarySearch();
+ if( isnull( search ) ){
+ owner.InventorySummarySearch( relnew, Unit := allunit, Generation := allunit, MqbMlb := allunit, Power := allunit, Category := Translations::MP_GlobalParameters_Day(), StartDate := Date::MinDate(), EndDate := Date::MaxDate() );
+ }else{
+ search := owner.InventorySummarySearch();
+ search.Unit( allunit );
+ search.Generation( allunit );
+ search.MqbMlb( allunit );
+ search.Power( allunit );
+ search.Category( Translations::MP_GlobalParameters_Day() );
+ search.StartDate( Date::MinDate() );
+ search.EndDate( Date::MaxDate() );
+ }
+ table := selectobject( owner, InventorySummarySource.InventorySummaryReport, table, table.IsShow() );
+ if( not isnull( table ) ){
+ products := selectset( owner, Product_MP, product, true );
+ table.Generate( search, products );
+ }
+ return table;
+ *]
+}
diff --git a/_Main/BL/Type_MachiningPipelineSource0/StaticMethod_Initialize.qbl b/_Main/BL/Type_MachiningPipelineSource0/StaticMethod_Initialize.qbl
index de5f0d3..ca7ed85 100644
--- a/_Main/BL/Type_MachiningPipelineSource0/StaticMethod_Initialize.qbl
+++ b/_Main/BL/Type_MachiningPipelineSource0/StaticMethod_Initialize.qbl
@@ -9,8 +9,8 @@
// 鐢勫叞楦� Jun-24-2024 (created)
owner.FinancialProductionSource( relflush );
productparent := MachiningPipelineReport::GetDefaultProductParent();
- ccunit := MachiningPipelineReport::GetDefaultCCUnit();
- dlunit := MachiningPipelineReport::GetDefaultDLUnit();
+ //ccunit := MachiningPipelineReport::GetDefaultCCUnit();
+ //dlunit := MachiningPipelineReport::GetDefaultDLUnit();
//allunit := EnginePipelineReport::GetDefaultAllUnit();
source := owner.MachiningPipelineSource( relnew, Name := MachiningPipelineReport::GetDefaultName() );
table := source.Report( relnew, ID := source.Name(), Name := source.Name() );
@@ -32,19 +32,21 @@
//鏄惁灞炰簬澶ц繛宸ュ巶
isdl := stockingpoint.ID().StartsWith( 'DL' ) or unit.ID().StartsWith( 'DL' ) or exists( parentunits, Elements, punit, punit.ID().StartsWith( 'DL' ) );//unit.ID() = dlunit or exists( parentunits, Elements, punit, punit.ID() = dlunit );
//鏄惁灞炰簬闀挎槬瑁呴厤绾緾C鍘傚唴搴�
- isccassemnly := stockingpoint.ID().EndsWith( '鍘傚唴搴�' ) and ( stockingpoint.ID().StartsWith( 'CC' ) or stockingpoint.ID().StartsWith( '闀挎槬' ) );//unit.ID() = MachiningPipelineReport::GetDefaultCCAssemnlyUnit() or exists( parentunits, Elements, punit, punit.ID() = MachiningPipelineReport::GetDefaultCCAssemnlyUnit() );
+ // isccassemnly := stockingpoint.ID().EndsWith( '鍘傚唴搴�' ) and ( stockingpoint.ID().StartsWith( 'CC' ) or stockingpoint.ID().StartsWith( '闀挎槬' ) );//unit.ID() = MachiningPipelineReport::GetDefaultCCAssemnlyUnit() or exists( parentunits, Elements, punit, punit.ID() = MachiningPipelineReport::GetDefaultCCAssemnlyUnit() );
//鏄惁灞炰簬澶ц繛瑁呴厤绾緿L鍘傚唴搴�
- isdlassemnly := stockingpoint.ID().EndsWith( '鍘傚唴搴�' ) and ( stockingpoint.ID().StartsWith( 'DL' ) or stockingpoint.ID().StartsWith( '澶ц繛' ) );//unit.ID() = MachiningPipelineReport::GetDefaultDLAssemnlyUnit() or exists( parentunits, Elements, punit, punit.ID() = MachiningPipelineReport::GetDefaultDLAssemnlyUnit() );
+ // isdlassemnly := stockingpoint.ID().EndsWith( '鍘傚唴搴�' ) and ( stockingpoint.ID().StartsWith( 'DL' ) or stockingpoint.ID().StartsWith( '澶ц繛' ) );//unit.ID() = MachiningPipelineReport::GetDefaultDLAssemnlyUnit() or exists( parentunits, Elements, punit, punit.ID() = MachiningPipelineReport::GetDefaultDLAssemnlyUnit() );
//鏄惁灞炰簬闀挎槬鏈哄姞浜х嚎
isccproduction := stockingpoint.ID().EndsWith( '绾胯竟搴�' ) and ( stockingpoint.ID().StartsWith( 'CC' ) or stockingpoint.ID().StartsWith( '闀挎槬' ) );//unit.ID() = MachiningPipelineReport::GetDefaultCCProductionUnit() or exists( parentunits, Elements, punit, punit.ID() = MachiningPipelineReport::GetDefaultCCProductionUnit() );
//鏄惁灞炰簬澶ц繛鏈哄姞浜х嚎
isdlproduction := unit.ID().EndsWith( 'MoMo' ) and unit.ID().StartsWith( 'DL' );//unit.ID() = MachiningPipelineReport::GetDefaultDLProductionUnit() or exists( parentunits, Elements, punit, punit.ID() = MachiningPipelineReport::GetDefaultDLProductionUnit() );
if( iscc or isdl ){
traverse( stockingpoint, ProductInStockingPoint_MP, pisp, pisp.Product_MP().IsLeaf() and not pisp.IsSystem()
- // and exists( pisp.Product_MP().GetAllParent(), Elements, e, e.ID() = productparent )
- and exists( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and pispip.Period_MP().TimeUnit() = Translations::MP_GlobalParameters_Day() and ( pispip.NewSupplyQuantity() <> 0 or pispip.PlannedInventoryLevelEnd() <> 0 ) ) ){
+ and exists( pisp.Product_MP().GetAllParent(), Elements, e, e.ID() = productparent )
+ and exists( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and pispip.Period_MP().TimeUnit() = Translations::MP_GlobalParameters_Day() and ( pispip.NewSupplyQuantity() <> 0 or pispip.PlannedInventoryLevelEnd() <> 0 or pispip.DependentDemandAndSalesDemandQuantity() <> 0 ) ) ){
+ isccassemnly := stockingpoint.ID().EndsWith( pisp.Product_MP().ParentID() + '绾胯竟搴�' ) and ( stockingpoint.ID().StartsWith( 'CC' ) or stockingpoint.ID().StartsWith( '闀挎槬' ) );
+ isdlassemnly := stockingpoint.ID().EndsWith( pisp.Product_MP().ParentID() ) and ( stockingpoint.ID().StartsWith( 'DL' ) or stockingpoint.ID().StartsWith( '澶ц繛' ) );
pispips := selectsortedset( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical()
- and pispip.Period_MP().TimeUnit() = Translations::MP_GlobalParameters_Day() and ( pispip.NewSupplyQuantity() <> 0 or pispip.PlannedInventoryLevelEnd() <> 0 ), pispip.Start() );
+ and pispip.Period_MP().TimeUnit() = Translations::MP_GlobalParameters_Day() and ( pispip.NewSupplyQuantity() <> 0 or pispip.PlannedInventoryLevelEnd() <> 0 or pispip.DependentDemandAndSalesDemandQuantity() <> 0 ), pispip.Start() );
traverse( pispips, Elements, pispip ){
supplyquantity := [Number]pispip.NewSupplyQuantity();//鍥涜垗浜斿叆
//澶�
@@ -54,12 +56,13 @@
//瑁呴厤绾�
if( isccassemnly or isdlassemnly ){
+ quantity := [Number]pispip.DependentDemandAndSalesDemandQuantity();//鍥涜垗浜斿叆
if( isccassemnly ){
- daycolumn.CCAssemblyPlanQty( daycolumn.CCAssemblyPlanQty() + supplyquantity );
- weekcolumn.CCAssemblyPlanQty( weekcolumn.CCAssemblyPlanQty() + supplyquantity );
+ daycolumn.CCAssemblyPlanQty( daycolumn.CCAssemblyPlanQty() + quantity );
+ weekcolumn.CCAssemblyPlanQty( weekcolumn.CCAssemblyPlanQty() + quantity );
} else {
- daycolumn.DLAssemblyPlanQty( daycolumn.DLAssemblyPlanQty() + supplyquantity );
- weekcolumn.DLAssemblyPlanQty( weekcolumn.DLAssemblyPlanQty() + supplyquantity );
+ daycolumn.DLAssemblyPlanQty( daycolumn.DLAssemblyPlanQty() + quantity );
+ weekcolumn.DLAssemblyPlanQty( weekcolumn.DLAssemblyPlanQty() + quantity );
}
}
@@ -95,17 +98,17 @@
productparents := product.GetAllParent();
if( exists( productparents, Elements, e, e.ID() = productparent ) ){//鏌ヨ浜у搧绫诲瀷鏄彂鍔ㄦ満
//璧峰搴撳瓨鐐规槸鍚︽槸澶ц繛or闀挎槬
- originsp := selectobject( owner, StockingPoint_MP, sp, sp.ID() = tprow.SourceStockpoingPointID() );
- originunit := originsp.Unit();
- originparentunits := originunit.GetAllParent();
- originiscc := originsp.ID() = ccunit or originunit.ID() = ccunit or exists( originparentunits, Elements, punit, punit.ID() = ccunit );
- originisdl := originsp.ID() = dlunit or originunit.ID() = dlunit or exists( originparentunits, Elements, punit, punit.ID() = dlunit );
+ // originsp := selectobject( owner, StockingPoint_MP, sp, sp.ID() = tprow.SourceStockpoingPointID() );
+ // originunit := originsp.Unit();
+ // originparentunits := originunit.GetAllParent();
+ originiscc := tprow.SourceStockpoingPointID() = 'CC';//originsp.ID() = ccunit or originunit.ID() = ccunit or exists( originparentunits, Elements, punit, punit.ID() = ccunit );
+ originisdl := tprow.SourceStockpoingPointID() = 'DL';//originsp.ID() = dlunit or originunit.ID() = dlunit or exists( originparentunits, Elements, punit, punit.ID() = dlunit );
//鐩殑鍦版槸鍚︽槸闀挎槬澶栫搴�
- destisp := selectobject( owner, StockingPoint_MP, sp, sp.ID() = tprow.TargetStockpoingPointID() );
- destiunit := destisp.Unit();
- destiparentunits := destiunit.GetAllParent();
- destiiscc := destisp.ID() = ccunit or destiunit.ID() = ccunit or exists( destiparentunits, Elements, punit, punit.ID() = ccunit );
- destiisdl := destisp.ID() = dlunit or destiunit.ID() = dlunit or exists( destiparentunits, Elements, punit, punit.ID() = dlunit );
+ // destisp := selectobject( owner, StockingPoint_MP, sp, sp.ID() = tprow.TargetStockpoingPointID() );
+ // destiunit := destisp.Unit();
+ // destiparentunits := destiunit.GetAllParent();
+ destiiscc := tprow.TargetStockpoingPointID() = 'CC';//destisp.ID() = ccunit or destiunit.ID() = ccunit or exists( destiparentunits, Elements, punit, punit.ID() = ccunit );
+ destiisdl := tprow.TargetStockpoingPointID() = 'DL';//destisp.ID() = dlunit or destiunit.ID() = dlunit or exists( destiparentunits, Elements, punit, punit.ID() = dlunit );
if( ( originiscc and destiisdl ) or ( originisdl and destiiscc ) ){
row := table.GetRow( tprow.ProductID() );
traverse( tprow, TransferPlanCell, tpcell, tpcell.TransferPlanColumn().ColumnDate() <> Date::MinDate() ){
@@ -114,7 +117,6 @@
//鍛�
weekcolumn := table.GetColumnByUnit( Translations::MP_GlobalParameters_Week(), tpcell.TransferPlanColumn().ColumnDate() );
quantity := [Real]tpcell.Value();//鍥涜垗浜斿叆
-
if( not isnull( daycolumn ) ){
row.SetCellTransferValue( daycolumn, ( originiscc and destiisdl ), quantity );
}
diff --git a/_Main/BL/Type_MachiningPipelineSource0/StaticMethod_InitiateSearch.qbl b/_Main/BL/Type_MachiningPipelineSource0/StaticMethod_InitiateSearch.qbl
new file mode 100644
index 0000000..2f69e1e
--- /dev/null
+++ b/_Main/BL/Type_MachiningPipelineSource0/StaticMethod_InitiateSearch.qbl
@@ -0,0 +1,26 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod InitiateSearch (
+ MacroPlan owner
+) as MachiningPipelineReport
+{
+ TextBody:
+ [*
+ // 鐢勫叞楦� Sep-29-2024 (created)
+ search := owner.MachiningPipelineSearch();
+ if( isnull( search ) ){
+ owner.MachiningPipelineSearch( relnew, StartDate := Date::MinDate(), EndDate := Date::MaxDate(), TimeUnit := Translations::MP_GlobalParameters_Day() );
+ }else{
+ search := owner.MachiningPipelineSearch();
+ search.TimeUnit( Translations::MP_GlobalParameters_Day() );
+ search.StartDate( Date::MinDate() );
+ search.EndDate( Date::MaxDate() );
+ }
+ table := selectobject( owner, MachiningPipelineSource.Report, table, table.IsShow() );
+ if( not isnull( table ) ){
+ products := selectset( owner, Product_MP, product, true );
+ table.Generate( search, products );
+ }
+ return table;
+ *]
+}
diff --git a/_Main/BL/Type_MacroPlan/Attribute_A_PreviousScenaioName.qbl b/_Main/BL/Type_MacroPlan/Attribute_A_PreviousScenaioName.qbl
new file mode 100644
index 0000000..8fd2023
--- /dev/null
+++ b/_Main/BL/Type_MacroPlan/Attribute_A_PreviousScenaioName.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute A_PreviousScenaioName
+{
+ #keys: '3[413988.0.1581730054][413988.0.1581730053][413988.0.1581730055]'
+ Description: '鐢ㄤ簬涓嬬嚎璁″垝纭鍔熻兘'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_OfflinePlanCell/Attribute_IsQuantity.qbl b/_Main/BL/Type_OfflinePlanCell/Attribute_IsQuantity.qbl
new file mode 100644
index 0000000..3f8f7a2
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanCell/Attribute_IsQuantity.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute IsQuantity
+{
+ #keys: '3[413988.0.1565814440][413988.0.1565814439][413988.0.1565814441]'
+ ValueType: Boolean
+}
diff --git a/_Main/BL/Type_OfflinePlanCell/Function_CalcIsQuantity.qbl b/_Main/BL/Type_OfflinePlanCell/Function_CalcIsQuantity.qbl
new file mode 100644
index 0000000..eef4ef2
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanCell/Function_CalcIsQuantity.qbl
@@ -0,0 +1,13 @@
+Quintiq file version 2.0
+#parent: #root
+Function CalcIsQuantity
+{
+ TextBody:
+ [*
+ // lihongji Sep-27-2024 (created)
+
+ value := ifexpr( this.OfflinePlanRow().Type() = "1" and this.OfflinePlanColumn().ColumnIndex() > 1 and this.Quantity() > 0, true, false );
+
+ this.IsQuantity( value );
+ *]
+}
diff --git a/_Main/BL/Type_OfflinePlanCell/Function_CalcQuantity.qbl b/_Main/BL/Type_OfflinePlanCell/Function_CalcQuantity.qbl
new file mode 100644
index 0000000..9a7da92
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanCell/Function_CalcQuantity.qbl
@@ -0,0 +1,14 @@
+Quintiq file version 2.0
+#parent: #root
+Function CalcQuantity
+{
+ TextBody:
+ [*
+ // lihongji Sep-27-2024 (created)
+
+ value := ifexpr( ( this.OfflinePlanRow().Type() = "1" or this.OfflinePlanRow().Type() = "2" ) and this.OfflinePlanColumn().ColumnIndex() > 1,
+ guard( [Number]this.Value(), 0 ), 0 );
+
+ this.Quantity( value );
+ *]
+}
diff --git a/_Main/BL/Type_OfflinePlanCell/Method_QuantityGreaterThan0.qbl b/_Main/BL/Type_OfflinePlanCell/Method_QuantityGreaterThan0.qbl
new file mode 100644
index 0000000..f5715e6
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanCell/Method_QuantityGreaterThan0.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#parent: #root
+Method QuantityGreaterThan0 (
+ String type,
+ String pl
+) as Boolean
+{
+ TextBody: 'return this.OfflinePlanRow().Type() = type and this.OfflinePlanRow().ProductionLine() = pl and this.Quantity() > 0.0;'
+}
diff --git a/_Main/BL/Type_OfflinePlanCell/StaticMethod_DeductionOfReplacementLoss.qbl b/_Main/BL/Type_OfflinePlanCell/StaticMethod_DeductionOfReplacementLoss.qbl
index bf4f206..bc4f716 100644
--- a/_Main/BL/Type_OfflinePlanCell/StaticMethod_DeductionOfReplacementLoss.qbl
+++ b/_Main/BL/Type_OfflinePlanCell/StaticMethod_DeductionOfReplacementLoss.qbl
@@ -36,7 +36,7 @@
tempOPC.OfflinePlanRow().Type() = "1" and
tempOPC.OfflinePlanRow().ProductID() = firstOrderCell.OfflinePlanRow().ProductID()
);
- firstQuantityCell.Value( [String] ( [Number]firstQuantityCell.Value() - cls.ChangeLossNr() ) );
+ firstQuantityCell.Value( [String] ( [Number]firstQuantityCell.Value() - cls.ChangeLossNumber() ) );
// info( "褰撳墠鍒楁椂闂达細", opc.ColumnDate().Format( "Y-M2-D2" ), " 褰撳墠搴忓彿锛�", i, " 鍗曞厓鏍肩殑鍊硷細", firstOrderCell.Value(), " 浜у搧鍚嶏細", firstOrderCell.OfflinePlanRow().ProductID(),
// "涓嬩竴涓簭鍙凤細", i + 1, " 鍗曞厓鏍肩殑鍊硷細", secondOrderCell.Value(), " 浜у搧鍚嶏細", secondOrderCell.OfflinePlanRow().ProductID() );
}
diff --git a/_Main/BL/Type_OfflinePlanCell/StaticMethod_Download.qbl b/_Main/BL/Type_OfflinePlanCell/StaticMethod_Download.qbl
index d9685ab..b91c95f 100644
--- a/_Main/BL/Type_OfflinePlanCell/StaticMethod_Download.qbl
+++ b/_Main/BL/Type_OfflinePlanCell/StaticMethod_Download.qbl
@@ -1,7 +1,8 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Download (
- MacroPlan macroPlan
+ MacroPlan macroPlan,
+ OfflinePlanRows selectedOPRs
) as BinaryValue
{
TextBody:
@@ -13,12 +14,12 @@
opt := maxselect( macroPlan, OfflinePlanTable, tempOPT, true, tempOPT.SaveDateTime() );
opcs := selectsortedset( opt, OfflinePlanColumn, tempOPC, true, tempOPC.ColumnDate() );
- oprs := selectsortedset( opt, OfflinePlanRow, tempOPR, true, tempOPR.ProductionLine(), tempOPR.ProductID(), tempOPR.Type() );
+ oprs := selectsortedset( selectedOPRs, Elements, tempOPR, true, tempOPR.ProductionLine(), tempOPR.ProductID(), tempOPR.Type() );
traverse ( opcs, Elements, opc ) {
column := xmlDOM.CreateElement( "column" );
name := xmlDOM.CreateElement( "name" );
type := xmlDOM.CreateElement( "type" );
- name.TextContent( ifexpr( opc.ColumnDate() < macroPlan.StartOfPlanning().Date(), "", opc.ColumnDate().Format( "Y/M2/D2" ) ) );
+ name.TextContent( ifexpr( opc.ColumnDate() < macroPlan.StartOfPlanning().Date(), "*", opc.ColumnDate().Format( "Y/M2/D2" ) ) );
type.TextContent( "String" );
column.AppendChild( name );
column.AppendChild( type );
diff --git a/_Main/BL/Type_OfflinePlanCell/StaticMethod_RefreshOfflinePlan.qbl b/_Main/BL/Type_OfflinePlanCell/StaticMethod_RefreshOfflinePlan.qbl
index 98e9f56..131d267 100644
--- a/_Main/BL/Type_OfflinePlanCell/StaticMethod_RefreshOfflinePlan.qbl
+++ b/_Main/BL/Type_OfflinePlanCell/StaticMethod_RefreshOfflinePlan.qbl
@@ -35,12 +35,13 @@
}
// 璧嬪�煎崟鍏冩牸
- cellQuantity := opc.OfflinePlanCell( relnew, Value := [String]ns.Quantity().Round( 0 ), Shift := ns.PeriodTask_MP().UnitPeriod().astype( UnitPeriodTimeBase ).ShiftPattern().Name(), Quantity := ns.Quantity() );
- cellQuantity.OfflinePlanRow( relset, oprQuantity );
- cellOrder := opc.OfflinePlanCell( relnew, Value := "鍗曞彿" + [String]ns.Quantity().Round( 0 ) + "_" + [String]( ns.ProductInStockingPointInPeriodPlanningLeaf().InventoryLevelEnd() - ns.ProductInStockingPointInPeriodPlanningLeaf().MinInventoryLevel() ),
- Quantity := ns.Quantity(),
- InventoryWeight := ns.ProductInStockingPointInPeriodPlanningLeaf().InventoryLevelEnd() - ns.ProductInStockingPointInPeriodPlanningLeaf().MinInventoryLevel() );
- cellOrder.OfflinePlanRow( relset, oprOrder );
+ cellQuantity := oprQuantity.OfflinePlanCell( relnew, Value := [String]ns.Quantity().Round( 0 ), Shift := ns.PeriodTask_MP().UnitPeriod().astype( UnitPeriodTimeBase ).ShiftPattern().Name() );
+ cellQuantity.OfflinePlanColumn( relset, opc );
+ cellOrder := oprOrder.OfflinePlanCell( relnew,
+ // Value := "鍗曞彿" + [String]ns.Quantity().Round( 0 ) + "_" + [String]( ns.ProductInStockingPointInPeriodPlanningLeaf().InventoryLevelEnd() - ns.ProductInStockingPointInPeriodPlanningLeaf().MinInventoryLevel() ),
+ Value := [String]ns.Quantity().Round( 0 ),
+ InventoryWeight := ns.ProductInStockingPointInPeriodPlanningLeaf().InventoryLevelEnd() - ns.ProductInStockingPointInPeriodPlanningLeaf().MinInventoryLevel() );
+ cellOrder.OfflinePlanColumn( relset, opc );
}
}
@@ -59,30 +60,30 @@
typeOPC := opt.OfflinePlanColumn( relnew, ColumnDate := macroPlan.StartOfPlanning().Date() - 1 );
traverse ( opt, OfflinePlanRow, opr ) {
if ( opr.Type() = "0" ) {
- productLineCell := productOPC.OfflinePlanCell( relnew, Value := opr.ProductionLine() );
- productLineCell.OfflinePlanRow( relset, opr );
+ productLineCell := opr.OfflinePlanCell( relnew, Value := opr.ProductionLine() );
+ productLineCell.OfflinePlanColumn( relset, productOPC );
} else if( opr.Type() = "1" ) {
- productCell := productOPC.OfflinePlanCell( relnew, Value := opr.ProductID() + ifexpr( opr.Notes() = "", "", "-" + opr.Notes() ) );
- productCell.OfflinePlanRow( relset, opr );
- typeCell := typeOPC.OfflinePlanCell( relnew, Value := "Quantity" );
- typeCell.OfflinePlanRow( relset, opr );
+ productCell := opr.OfflinePlanCell( relnew, Value := opr.ProductID() + ifexpr( opr.Notes() = "", "", "-" + opr.Notes() ) );
+ productCell.OfflinePlanColumn( relset, productOPC );
+ typeCell := opr.OfflinePlanCell( relnew, Value := "Quantity" );
+ typeCell.OfflinePlanColumn( relset, typeOPC );
} else if ( opr.Type() = "2" ) {
- typeCell := typeOPC.OfflinePlanCell( relnew, Value := "Order" );
- typeCell.OfflinePlanRow( relset, opr );
+ typeCell := opr.OfflinePlanCell( relnew, Value := "Order" );
+ typeCell.OfflinePlanColumn( relset, typeOPC );
} else if ( opr.Type() = "3" ) {
- totalCell := productOPC.OfflinePlanCell( relnew, Value := "鍚堣" );
- totalCell.OfflinePlanRow( relset, opr );
- totalCell := typeOPC.OfflinePlanCell( relnew, Value := "鎬婚噺" );
- totalCell.OfflinePlanRow( relset, opr );
+ totalCell := opr.OfflinePlanCell( relnew, Value := "鍚堣" );
+ totalCell.OfflinePlanColumn( relset, productOPC );
+ totalCell := opr.OfflinePlanCell( relnew, Value := "鎬婚噺" );
+ totalCell.OfflinePlanColumn( relset, typeOPC );
} else if ( opr.Type() = "4" ) {
- shiftCell := typeOPC.OfflinePlanCell( relnew, Value := "鐝" );
- shiftCell.OfflinePlanRow( relset, opr );
+ shiftCell := opr.OfflinePlanCell( relnew, Value := "鐝" );
+ shiftCell.OfflinePlanColumn( relset, typeOPC );
} else if ( opr.Type() = "5" ) {
- shiftStartDateCell := typeOPC.OfflinePlanCell( relnew, Value := "鐝寮�濮嬫椂闂�" );
- shiftStartDateCell.OfflinePlanRow( relset, opr );
+ shiftStartDateCell := opr.OfflinePlanCell( relnew, Value := "鐝寮�濮嬫椂闂�" );
+ shiftStartDateCell.OfflinePlanColumn( relset, typeOPC );
} else if ( opr.Type() = "6" ) {
- shiftEndDateCell := typeOPC.OfflinePlanCell( relnew, Value := "鐝缁撴潫鏃堕棿" );
- shiftEndDateCell.OfflinePlanRow( relset, opr );
+ shiftEndDateCell := opr.OfflinePlanCell( relnew, Value := "鐝缁撴潫鏃堕棿" );
+ shiftEndDateCell.OfflinePlanColumn( relset, typeOPC );
}
}
@@ -92,35 +93,39 @@
shiftStartDateOPRs := selectset( opt, OfflinePlanRow, tempOPR, tempOPR.Type() = "5" );
shiftEndDateOPRs := selectset( opt, OfflinePlanRow, tempOPR, tempOPR.Type() = "6" );
traverse ( opt, OfflinePlanColumn, opc, opc.OfflinePlanCell( relsize ) > 0 and opc.ColumnDate() >= macroPlan.StartOfPlanning().Date() ) {
+ // 琛ュ叏鎬婚噺
traverse ( totalOPRs, Elements, totalOPR ) {
total := sum( opc, OfflinePlanCell, tempOPC, tempOPC.OfflinePlanRow().ProductionLine() = totalOPR.ProductionLine() and tempOPC.OfflinePlanRow().Type() = "1", [Real]tempOPC.Value() );
- totalCell := opc.OfflinePlanCell( relnew, Value := [String]total );
- totalCell.OfflinePlanRow( relset, totalOPR );
+ totalCell := totalOPR.OfflinePlanCell( relnew, Value := [String]total );
+ totalCell.OfflinePlanColumn( relset, opc );
}
+ // &鐝
traverse ( shiftOPRs, Elements, shiftOPR ) {
shift := select( opc, OfflinePlanCell, tempOPC, tempOPC.OfflinePlanRow().ProductionLine() = shiftOPR.ProductionLine() and tempOPC.OfflinePlanRow().Type() = "1" );
if ( not isnull( shift ) ) {
- shiftCell := opc.OfflinePlanCell( relnew, Value := shift.Shift() );
- shiftCell.OfflinePlanRow( relset, shiftOPR );
+ shiftCell := shiftOPR.OfflinePlanCell( relnew, Value := shift.Shift() );
+ shiftCell.OfflinePlanColumn( relset, opc );
}
}
+ // 鐝寮�濮嬫椂闂�
traverse ( shiftStartDateOPRs, Elements, ssdOPR ) {
shift := select( opc, OfflinePlanCell, tempOPC, tempOPC.OfflinePlanRow().ProductionLine() = ssdOPR.ProductionLine() and tempOPC.OfflinePlanRow().Type() = "1" );
if ( not isnull( shift ) ) {
startDate := guard( minselect( macroPlan, ShiftPattern.ShiftDayTime, tempSDT, tempSDT.ShiftPattern().Name() = shift.Shift(), tempSDT.Sequence() ).StartDateTime().Format( "H:m" ), "" );
- startDateCell := opc.OfflinePlanCell( relnew, Value := startDate );
- startDateCell.OfflinePlanRow( relset, ssdOPR );
+ startDateCell := ssdOPR.OfflinePlanCell( relnew, Value := startDate );
+ startDateCell.OfflinePlanColumn( relset, opc );
}
}
+ // 鐝缁撴潫鏃堕棿
traverse ( shiftEndDateOPRs, Elements, sedOPR ) {
shift := select( opc, OfflinePlanCell, tempOPC, tempOPC.OfflinePlanRow().ProductionLine() = sedOPR.ProductionLine() and tempOPC.OfflinePlanRow().Type() = "1" );
if ( not isnull( shift ) ) {
endDate := guard( maxselect( macroPlan, ShiftPattern.ShiftDayTime, tempSDT, tempSDT.ShiftPattern().Name() = shift.Shift(), tempSDT.Sequence() ).EndDateTIme().Format( "H:m" ), "" );
- endDateCell := opc.OfflinePlanCell( relnew, Value := endDate );
- endDateCell.OfflinePlanRow( relset, sedOPR );
+ endDateCell := sedOPR.OfflinePlanCell( relnew, Value := endDate );
+ endDateCell.OfflinePlanColumn( relset, opc );
}
}
}
@@ -136,6 +141,18 @@
indexDate := indexDate + 1;
}
+ // 琛ュ叏绌烘牸瀛�
+ traverse ( opt, OfflinePlanRow, opr ) {
+ traverse ( opt, OfflinePlanColumn, opc ) {
+ cell := select( opr, OfflinePlanCell, tempOPC, tempOPC.OfflinePlanColumn() = opc );
+ if ( isnull( cell ) ) {
+ cell := opr.OfflinePlanCell( relnew, Value := "" );
+ cell.OfflinePlanColumn( relset, opc );
+ }
+ }
+ }
+
+ Transaction::Transaction().Propagate( attribute( OfflinePlanCell, Quantity ) );
Transaction::Transaction().PropagateAll();
// 璁剧疆鐢熶骇椤哄簭
@@ -146,12 +163,13 @@
nextColumn := indexColumn.NextColumn();
while ( not isnull( indexColumn.NextColumn() )
- // and indexColumn.ColumnDate() <= Date::Construct( 2024, 4, 16 ) // 娴嬭瘯瀹為檯鍦烘櫙鏃跺彲浠ヨ繃婊�
+ // and indexColumn.ColumnDate() <= Date::Construct( 2020, 4, 1 ) // 娴嬭瘯瀹為檯鍦烘櫙鏃跺彲浠ヨ繃婊�
) {
productionSerialNumber := 1;
opcs := selectsortedset( indexColumn, OfflinePlanCell, tempOPC, tempOPC.FindType( "2", pl ), tempOPC.InventoryWeight() );
initialSize := opcs.Size();
- if ( opcs.Size() > 0 ) {
+ info( "璁″垝寮�濮嬫椂闂达細", macroPlan.StartOfPlanning().Date().Format( "Y-M2-D2" ), " 绱㈠紩鏃堕棿锛�", indexDate.Format( "Y-M2-D2" ), " 涓暟锛�", opcs.Size() );
+ if ( opcs.Size() > 0 ) {
// 鍒ゅ畾1
previousOPC := maxselect( previousColumn, OfflinePlanCell, tempOPC, tempOPC.FindType( "2", pl ), tempOPC.ProductionSerialNumber() );
if ( isnull( previousOPC ) or indexColumn.ColumnDate() = macroPlan.StartOfPlanning().Date() ) {
diff --git a/_Main/BL/Type_OfflinePlanColumn/Attribute_IsShow.qbl b/_Main/BL/Type_OfflinePlanColumn/Attribute_IsShow.qbl
new file mode 100644
index 0000000..8871340
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanColumn/Attribute_IsShow.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute IsShow
+{
+ #keys: '3[413988.0.1565821671][413988.0.1565821670][413988.0.1565821672]'
+ ValueType: Boolean
+}
diff --git a/_Main/BL/Type_OfflinePlanColumn/DefaultValue_IsShow.qbl b/_Main/BL/Type_OfflinePlanColumn/DefaultValue_IsShow.qbl
new file mode 100644
index 0000000..8bd79cf
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanColumn/DefaultValue_IsShow.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+ ISOValue: 'true'
+ TargetAttribute: IsShow
+}
diff --git a/_Main/BL/Type_OfflinePlanColumn/Function_CalcColumnIndex.qbl b/_Main/BL/Type_OfflinePlanColumn/Function_CalcColumnIndex.qbl
new file mode 100644
index 0000000..05e1a7d
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanColumn/Function_CalcColumnIndex.qbl
@@ -0,0 +1,13 @@
+Quintiq file version 2.0
+#parent: #root
+Function CalcColumnIndex
+{
+ TextBody:
+ [*
+ // lihongji Sep-27-2024 (created)
+
+ value := guard( this.PreviousColumn().ColumnIndex() + 1, 0 )
+
+ this.ColumnIndex( value );
+ *]
+}
diff --git a/_Main/BL/Type_OfflinePlanImportData/Attribute_Date.qbl b/_Main/BL/Type_OfflinePlanImportData/Attribute_Date.qbl
new file mode 100644
index 0000000..14e1f42
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanImportData/Attribute_Date.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Date
+{
+ #keys: '3[413988.0.1558681449][413988.0.1558681448][413988.0.1558681450]'
+ ValueType: Date
+}
diff --git a/_Main/BL/Type_OfflinePlanImportData/Attribute_Order.qbl b/_Main/BL/Type_OfflinePlanImportData/Attribute_Order.qbl
new file mode 100644
index 0000000..41491b7
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanImportData/Attribute_Order.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Order
+{
+ #keys: '3[413988.0.1558681429][413988.0.1558681428][413988.0.1558681430]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_OfflinePlanImportData/Attribute_ProductID.qbl b/_Main/BL/Type_OfflinePlanImportData/Attribute_ProductID.qbl
new file mode 100644
index 0000000..d98b8b5
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanImportData/Attribute_ProductID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductID
+{
+ #keys: '3[413988.0.1558681419][413988.0.1558681418][413988.0.1558681420]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_OfflinePlanImportData/Attribute_Quantity.qbl b/_Main/BL/Type_OfflinePlanImportData/Attribute_Quantity.qbl
new file mode 100644
index 0000000..5a025ff
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanImportData/Attribute_Quantity.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Quantity
+{
+ #keys: '3[413988.0.1558681439][413988.0.1558681438][413988.0.1558681440]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_OfflinePlanImportData/StaticMethod_UpdateCell.qbl b/_Main/BL/Type_OfflinePlanImportData/StaticMethod_UpdateCell.qbl
new file mode 100644
index 0000000..c29622a
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanImportData/StaticMethod_UpdateCell.qbl
@@ -0,0 +1,31 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod UpdateCell (
+ GeneralExcelImportAndExportDataTable table,
+ GeneralExcelImportAndExportDataRow row,
+ OfflinePlanTable opt,
+ OfflinePlanRow opr
+)
+{
+ TextBody:
+ [*
+ traverse ( table, GeneralExcelImportAndExportDataColumn, column ) {
+ if ( column.ColumnIndex() = 0 ) {
+ cell := select( column, GeneralExcelImportAndExportDataCell, tempColumn, tempColumn.GeneralExcelImportAndExportDataRow() = row );
+ opc := select( opt, OfflinePlanColumn, tempOPC, tempOPC.ColumnIndex() = 0 );
+ opcell := opr.OfflinePlanCell( relnew, Value := cell.Value() );
+ opcell.OfflinePlanColumn( relset, opc );
+ } else if ( column.ColumnIndex() = 1 ) {
+ cell := select( column, GeneralExcelImportAndExportDataCell, tempColumn, tempColumn.GeneralExcelImportAndExportDataRow() = row );
+ opc := select( opt, OfflinePlanColumn, tempOPC, tempOPC.ColumnIndex() = 1 );
+ opcell := opr.OfflinePlanCell( relnew, Value := cell.Value() );
+ opcell.OfflinePlanColumn( relset, opc );
+ } else {
+ cell := select( column, GeneralExcelImportAndExportDataCell, tempColumn, tempColumn.GeneralExcelImportAndExportDataRow() = row );
+ opc := select( opt, OfflinePlanColumn, tempOPC, tempOPC.ColumnName() = column.Name() );
+ opcell := opr.OfflinePlanCell( relnew, Value := cell.Value() );
+ opcell.OfflinePlanColumn( relset, opc );
+ }
+ }
+ *]
+}
diff --git a/_Main/BL/Type_OfflinePlanImportData/StaticMethod_Upload.qbl b/_Main/BL/Type_OfflinePlanImportData/StaticMethod_Upload.qbl
new file mode 100644
index 0000000..9060059
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanImportData/StaticMethod_Upload.qbl
@@ -0,0 +1,66 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod Upload (
+ MacroPlan macroPlan,
+ OfflinePlanTable opt,
+ GeneralExcelImportAndExportDataTable table
+)
+{
+ TextBody:
+ [*
+ indexUnitID := "";
+ indexProductID := "";
+
+ traverse ( table, GeneralExcelImportAndExportDataRow, row ) {
+ firstColumn := select( table, GeneralExcelImportAndExportDataColumn, tempC, tempC.ColumnIndex() = 0 );
+ secondColumn := select( table, GeneralExcelImportAndExportDataColumn, tempC, tempC.ColumnIndex() = 1 );
+
+ firstCell := select( row, GeneralExcelImportAndExportDataCell, tempC, tempC.GeneralExcelImportAndExportDataColumn() = firstColumn );
+ u := select( macroPlan, Unit, tempU, tempU.ID() = firstCell.Value() );
+ product := select( macroPlan, Product_MP, tempPMP, tempPMP.ID() = firstCell.Value() );
+
+ secondCell := select( row, GeneralExcelImportAndExportDataCell, tempC, tempC.GeneralExcelImportAndExportDataColumn() = secondColumn );
+
+ if ( not isnull( u ) and secondCell.Value() = "" ) {
+ indexUnitID := u.ID();
+ opr := select( opt, OfflinePlanRow, tempOPR, tempOPR.ProductionLine() = indexUnitID and tempOPR.ProductID() = "" and tempOPR.Type() = "0" );
+ opr.OfflinePlanCell( relflush );
+
+ OfflinePlanImportData::UpdateCell( table, row, opt, opr );
+ } else if ( not isnull( product ) and secondCell.Value() = "Quantity" ) {
+ indexProductID := product.ID();
+ opr := select( opt, OfflinePlanRow, tempOPR, tempOPR.ProductionLine() = indexUnitID and tempOPR.ProductID() = indexProductID and tempOPR.Type() = "1" );
+ opr.OfflinePlanCell( relflush );
+
+ OfflinePlanImportData::UpdateCell( table, row, opt, opr );
+ } else if ( isnull( product ) and secondCell.Value() = "Order" ) {
+ opr := select( opt, OfflinePlanRow, tempOPR, tempOPR.ProductionLine() = indexUnitID and tempOPR.ProductID() = indexProductID and tempOPR.Type() = "2" );
+ opr.OfflinePlanCell( relflush );
+
+ OfflinePlanImportData::UpdateCell( table, row, opt, opr );
+ } else if ( firstCell.Value() = "鍚堣" and secondCell.Value() = "鎬婚噺" ) {
+ opr := select( opt, OfflinePlanRow, tempOPR, tempOPR.ProductionLine() = indexUnitID and tempOPR.ProductID() = "Z" and tempOPR.Type() = "3" );
+ opr.OfflinePlanCell( relflush );
+
+ OfflinePlanImportData::UpdateCell( table, row, opt, opr );
+ } else if ( firstCell.Value() = "" and secondCell.Value() = "鐝" ) {
+ opr := select( opt, OfflinePlanRow, tempOPR, tempOPR.ProductionLine() = indexUnitID and tempOPR.ProductID() = "Z" and tempOPR.Type() = "4" );
+ opr.OfflinePlanCell( relflush );
+
+ OfflinePlanImportData::UpdateCell( table, row, opt, opr );
+ } else if ( firstCell.Value() = "" and secondCell.Value() = "鐝寮�濮嬫椂闂�" ) {
+ opr := select( opt, OfflinePlanRow, tempOPR, tempOPR.ProductionLine() = indexUnitID and tempOPR.ProductID() = "Z" and tempOPR.Type() = "5" );
+ opr.OfflinePlanCell( relflush );
+
+ OfflinePlanImportData::UpdateCell( table, row, opt, opr );
+ } else if ( firstCell.Value() = "" and secondCell.Value() = "鐝缁撴潫鏃堕棿" ) {
+ opr := select( opt, OfflinePlanRow, tempOPR, tempOPR.ProductionLine() = indexUnitID and tempOPR.ProductID() = "Z" and tempOPR.Type() = "6" );
+ opr.OfflinePlanCell( relflush );
+
+ OfflinePlanImportData::UpdateCell( table, row, opt, opr );
+ } else {
+ error( "瀵煎叆澶辫触锛屾暟鎹紓甯�" );
+ }
+ }
+ *]
+}
diff --git a/_Main/BL/Type_OfflinePlanImportData/_ROOT_Type_OfflinePlanImportData.qbl b/_Main/BL/Type_OfflinePlanImportData/_ROOT_Type_OfflinePlanImportData.qbl
new file mode 100644
index 0000000..ae1bf89
--- /dev/null
+++ b/_Main/BL/Type_OfflinePlanImportData/_ROOT_Type_OfflinePlanImportData.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type OfflinePlanImportData
+{
+ #keys: '5[413988.0.1558681402][413988.0.1558681400][0.0.0][413988.0.1558681401][413988.0.1558681403]'
+ BaseType: Object
+ StructuredName: 'OfflinePlanImportDatas'
+}
diff --git a/_Main/BL/Type_OfflinePlanRow/Attribute_Notes.qbl b/_Main/BL/Type_OfflinePlanRow/Attribute_Notes.qbl
index b3d7f68..5630cec 100644
--- a/_Main/BL/Type_OfflinePlanRow/Attribute_Notes.qbl
+++ b/_Main/BL/Type_OfflinePlanRow/Attribute_Notes.qbl
@@ -3,5 +3,6 @@
Attribute Notes
{
#keys: '3[415754.0.180041713][415754.0.180041712][415754.0.180041714]'
+ Description: '4浣嶇爜'
ValueType: String
}
diff --git a/_Main/BL/Type_TransferMinimumQuantity/Attribute_ProductID.qbl b/_Main/BL/Type_TransferMinimumQuantity/Attribute_ProductID.qbl
new file mode 100644
index 0000000..07fa71a
--- /dev/null
+++ b/_Main/BL/Type_TransferMinimumQuantity/Attribute_ProductID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductID
+{
+ #keys: '3[413988.0.1584313375][413988.0.1584313374][413988.0.1584313376]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_TransferMinimumQuantity/Attribute_Quantity.qbl b/_Main/BL/Type_TransferMinimumQuantity/Attribute_Quantity.qbl
new file mode 100644
index 0000000..b575bdf
--- /dev/null
+++ b/_Main/BL/Type_TransferMinimumQuantity/Attribute_Quantity.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Quantity
+{
+ #keys: '3[413988.0.1584313385][413988.0.1584313384][413988.0.1584313386]'
+ ValueType: Real
+}
diff --git a/_Main/BL/Type_TransferMinimumQuantity/_ROOT_Type_TransferMinimumQuantity.qbl b/_Main/BL/Type_TransferMinimumQuantity/_ROOT_Type_TransferMinimumQuantity.qbl
new file mode 100644
index 0000000..47a1a91
--- /dev/null
+++ b/_Main/BL/Type_TransferMinimumQuantity/_ROOT_Type_TransferMinimumQuantity.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type TransferMinimumQuantity
+{
+ #keys: '5[413988.0.1584313371][413988.0.1584313369][0.0.0][413988.0.1584313370][413988.0.1584313372]'
+ BaseType: Object
+ StructuredName: 'TransferMinimumQuantitys'
+}
diff --git a/_Main/BL/Type_Unit/Method_WholeShiftFiltering.qbl b/_Main/BL/Type_Unit/Method_WholeShiftFiltering.qbl
new file mode 100644
index 0000000..b110d74
--- /dev/null
+++ b/_Main/BL/Type_Unit/Method_WholeShiftFiltering.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+Method WholeShiftFiltering () declarative remote as Boolean
+{
+ TextBody: 'return this.HasCapacityTypeTime() or this.HasCapacityTypeTransportQuantity();'
+}
diff --git a/_Main/Sys/Repr/Global/OfflinePlanCell.qrp b/_Main/Sys/Repr/Global/OfflinePlanCell.qrp
new file mode 100644
index 0000000..0dade67
--- /dev/null
+++ b/_Main/Sys/Repr/Global/OfflinePlanCell.qrp
@@ -0,0 +1,21 @@
+Quintiq file version 2.0
+#parent: #root
+TypeRepresentation OfflinePlanCell
+{
+ AttributeRepresentation Value
+ {
+ AttributeKey: '[413988.0.1296697079]'
+ Conditional:
+ [
+ DataRepresentation.Conditional
+ {
+ BackgroundColor: '$FF3399'
+ ConditionBody: 'object.IsQuantity()'
+ ConversionBody: ''
+ DefaultBackgroundColor: false
+ InheritConversion: false
+ }
+ ]
+ }
+ RelationRepresentation OfflinePlanColumn { RelationKey: '[413988.0.1296697090]' Visibility: 'Normal' }
+}
diff --git a/_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Component_mbMainMenu.def b/_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Component_mbMainMenu.def
index 07043ad..ab7805e 100644
--- a/_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Component_mbMainMenu.def
+++ b/_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Component_mbMainMenu.def
@@ -85,6 +85,8 @@
Component ComponentMenu702 { #keys: '[413988.0.1234424010]' BaseType: 'ComponentMenu' Properties: [ ComponentType: 'frmStandardAnalysis822' Text: 'Interface Dataset' ] }
Component menuSeparator891 { #keys: '[413988.0.1263894630]' BaseType: 'Menu' Properties: [ Separator: true ] }
Component MenuWholeShift { #keys: '[413988.0.1263894682]' BaseType: 'Menu' Properties: [ Image: 'FISH_BOWL' Text: '娴嬭瘯鏁寸彮' ] }
+ Component menuSeparator604 { #keys: '[413988.0.1559834087]' BaseType: 'Menu' Properties: [ Separator: true ] }
+ Component ComponentMenu710 { #keys: '[413988.0.1559834106]' BaseType: 'ComponentMenu' Properties: [ ComponentType: 'frmStandardAnalysis627' Text: '' ] }
]
Properties:
[
@@ -104,10 +106,12 @@
c: ComponentMenu469
c: ComponentMenu357
c: ComponentMenu702
+ c: ComponentMenu710
c: menuSeparator222
c: ComponentMenu347
c: menuSeparator891
c: MenuWholeShift
+ c: menuSeparator604
}
]
}
diff --git a/_Main/UI/MacroPlanner/Component_frmStandardAnalysis627/Component_swTop.def b/_Main/UI/MacroPlanner/Component_frmStandardAnalysis627/Component_swTop.def
new file mode 100644
index 0000000..2e97d32
--- /dev/null
+++ b/_Main/UI/MacroPlanner/Component_frmStandardAnalysis627/Component_swTop.def
@@ -0,0 +1,29 @@
+Quintiq file version 2.0
+Component swTop
+{
+ #keys: '[530.0.3531806]'
+ BaseType: 'swTop'
+ IsDerived: true
+ Children:
+ [
+ Component spTopLeft
+ {
+ #keys: '[530.0.3531807]'
+ BaseType: 'spTopLeft'
+ IsDerived: true
+ Children:
+ [
+ Component Analysis
+ {
+ #keys: '[530.0.3532065]'
+ BaseType: 'Analysis'
+ IsDerived: true
+ Properties:
+ [
+ GlobalInstance: 'RecycleBin'
+ ]
+ }
+ ]
+ }
+ ]
+}
diff --git a/_Main/UI/MacroPlanner/Component_frmStandardAnalysis627/Component_swTopMost.def b/_Main/UI/MacroPlanner/Component_frmStandardAnalysis627/Component_swTopMost.def
new file mode 100644
index 0000000..8a8fcd7
--- /dev/null
+++ b/_Main/UI/MacroPlanner/Component_frmStandardAnalysis627/Component_swTopMost.def
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+Component swTopMost
+{
+ #keys: '[530.0.3531801]'
+ BaseType: 'swTopMost'
+ IsDerived: true
+ Children:
+ [
+ Component SplitterPane1
+ {
+ #keys: '[530.0.3531802]'
+ BaseType: 'SplitterPane1'
+ IsDerived: true
+ Children:
+ [
+ #child: swTop
+ ]
+ }
+ ]
+}
diff --git a/_Main/UI/MacroPlanner/Component_frmStandardAnalysis627/_ROOT_Component_frmStandardAnalysis627.def b/_Main/UI/MacroPlanner/Component_frmStandardAnalysis627/_ROOT_Component_frmStandardAnalysis627.def
new file mode 100644
index 0000000..a0e4ead
--- /dev/null
+++ b/_Main/UI/MacroPlanner/Component_frmStandardAnalysis627/_ROOT_Component_frmStandardAnalysis627.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlanner
+OrphanComponent frmStandardAnalysis627
+{
+ #keys: '[413988.0.1559834123]'
+ BaseType: 'frmStandardAnalysis'
+ Children:
+ [
+ #child: swTopMost
+ ]
+ Properties:
+ [
+ Title: 'RecycleBin'
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogAssemblyOnlineQuantity/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogAssemblyOnlineQuantity/Component_pnlContent.def
index 84293b3..506672c 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogAssemblyOnlineQuantity/Component_pnlContent.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogAssemblyOnlineQuantity/Component_pnlContent.def
@@ -27,6 +27,17 @@
Taborder: 1
]
}
+ Component npDLZKM
+ {
+ #keys: '[415754.0.318111807]'
+ BaseType: 'WebNumberPicker'
+ Properties:
+ [
+ DataBinding: 'MacroPlan.AssemblyOnlineQuantity.DLZKM'
+ Label: 'DL-ZKM (pcs)'
+ Taborder: 2
+ ]
+ }
]
Properties:
[
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEdit/Component_pnlActions.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEdit/Component_pnlActions.def
new file mode 100644
index 0000000..73baecb
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEdit/Component_pnlActions.def
@@ -0,0 +1,40 @@
+Quintiq file version 2.0
+Component pnlActions
+{
+ #keys: '[413988.0.1584412873]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component btnOk
+ {
+ #keys: '[413988.0.1584412877]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Label: 'OK'
+ Taborder: 0
+ ]
+ }
+ Component btnCancel
+ {
+ #keys: '[413988.0.1584412879]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Label: 'Cancel'
+ Taborder: 1
+ ]
+ }
+ ]
+ Properties:
+ [
+ Alignment: 'trailing'
+ Border: true
+ ExcludeFromActiveComponent: true
+ FixedSize: true
+ Orientation: 'horizontal'
+ Padding: 'true'
+ Style: 'footer'
+ Taborder: 1
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEdit/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEdit/Component_pnlContent.def
new file mode 100644
index 0000000..62574ab
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEdit/Component_pnlContent.def
@@ -0,0 +1,36 @@
+Quintiq file version 2.0
+Component pnlContent
+{
+ #keys: '[413988.0.1584412871]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component ddslProductID
+ {
+ #keys: '[413988.0.1584413067]'
+ BaseType: 'WebDropDownStringList'
+ Properties:
+ [
+ DataBinding: 'DataHolderDialogData.Data.ProductID'
+ Label: 'Product ID'
+ Taborder: 0
+ ]
+ }
+ Component npQuantity
+ {
+ #keys: '[413988.0.1584413087]'
+ BaseType: 'WebNumberPicker'
+ Properties:
+ [
+ DataBinding: 'DataHolderDialogData.Data.Quantity'
+ Label: 'Quantity'
+ Taborder: 1
+ ]
+ }
+ ]
+ Properties:
+ [
+ Padding: 'true'
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEdit/Method_Edit.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEdit/Method_Edit.def
new file mode 100644
index 0000000..9d58235
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEdit/Method_Edit.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: #root
+Method Edit (
+ TransferMinimumQuantity selection
+) id:Method_DialogCreateEditTransferMinimumQuantity_Edit
+{
+ #keys: '[413988.0.1584413050]'
+ Body:
+ [*
+ data := shadow( selection );
+
+ DataHolderDialogData.Data( &data );
+
+ ApplicationMacroPlanner.ShowFormModal( this );
+ *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEdit/Method_New.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEdit/Method_New.def
new file mode 100644
index 0000000..2f11379
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEdit/Method_New.def
@@ -0,0 +1,14 @@
+Quintiq file version 2.0
+#parent: #root
+Method New () id:Method_DialogCreateEditTransferMinimumQuantity_New
+{
+ #keys: '[413988.0.1584413052]'
+ Body:
+ [*
+ data := MacroPlan.TransferMinimumQuantity( relshadow );
+
+ DataHolderDialogData.Data( &data );
+
+ ApplicationMacroPlanner.ShowFormModal( this );
+ *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEdit/Method_OnOK.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEdit/Method_OnOK.def
new file mode 100644
index 0000000..f9b5433
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEdit/Method_OnOK.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: #root
+Method OnOK () id:Method_DialogCreateEditTransferMinimumQuantity_OnOK
+{
+ #keys: '[413988.0.1584413053]'
+ Body:
+ [*
+ // On ok
+ Form.ApplyChanges();
+
+ data := DataHolderDialogData.Data();
+
+ data.Commit();
+
+ Form.Close();
+ *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEdit/Response_pnlActions_btnCancel_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEdit/Response_pnlActions_btnCancel_OnClick.def
new file mode 100644
index 0000000..27bdb3b
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEdit/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: '[413988.0.1584412883]'
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ Form.Close();
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEdit/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEdit/Response_pnlActions_btnOk_OnClick.def
new file mode 100644
index 0000000..5876a55
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEdit/Response_pnlActions_btnOk_OnClick.def
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+#parent: pnlActions/btnOk
+Response OnClick () id:Response_pnlActions_btnOk_OnClick
+{
+ #keys: '[413988.0.1584412882]'
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ QuillAction
+ {
+ Body:
+ [*
+ Form.OnOK();
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEdit/Response_pnlContent_ddslProductID_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEdit/Response_pnlContent_ddslProductID_OnCreated.def
new file mode 100644
index 0000000..6a38990
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEdit/Response_pnlContent_ddslProductID_OnCreated.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: pnlContent/ddslProductID
+Response OnCreated () id:Response_pnlContent_ddslProductID_OnCreated
+{
+ #keys: '[413988.0.1584413155]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebComponent_OnCreated'
+ QuillAction
+ {
+ Body:
+ [*
+ ids := selectuniquevalues( MacroPlan, Product_MP, tempPMP, true, tempPMP.ID() );
+
+ this.Strings( ids.Concatenate( ";" ) );
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEdit/_ROOT_Component_DialogCreateEditTransferMinimumQuantity.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEdit/_ROOT_Component_DialogCreateEditTransferMinimumQuantity.def
new file mode 100644
index 0000000..1aea87b
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEdit/_ROOT_Component_DialogCreateEditTransferMinimumQuantity.def
@@ -0,0 +1,32 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent DialogCreateEditTransferMinimumQuantity
+{
+ #keys: '[413988.0.1584412869]'
+ BaseType: 'WebForm'
+ Children:
+ [
+ #child: pnlContent
+ #child: pnlActions
+ Component DataHolderDialogData id:DataHolderDialogData_438
+ {
+ #keys: '[413988.0.1584413005]'
+ BaseType: 'WebDataHolder'
+ Databinding: 'shadow[TransferMinimumQuantity]*'
+ Properties:
+ [
+ Taborder: 2
+ ]
+ }
+ ]
+ Properties:
+ [
+ Alignment: 'trailing'
+ EnterButton: 'btnOk'
+ EscapeButton: 'btnCancel'
+ ExcludeFromActiveComponent: true
+ Padding: 'false'
+ Title: 'TransferMinimumQuantity'
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Component_pnlContent.def
index 94aa80b..5aec729 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Component_pnlContent.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Component_pnlContent.def
@@ -89,18 +89,6 @@
Taborder: 2
]
}
- Component npChangeLossNr
- {
- #keys: '[415136.0.738250237]'
- BaseType: 'WebNumberPicker'
- Properties:
- [
- DataBinding: 'dhDialogData.Data.ChangeLossNr'
- Label: 'Change loss number'
- Min: '0'
- Taborder: 5
- ]
- }
Component dsStartDate
{
#keys: '[415136.0.1132411785]'
@@ -123,6 +111,17 @@
Taborder: 4
]
}
+ Component efChangeLossNr
+ {
+ #keys: '[415136.0.1176801957]'
+ BaseType: 'WebEditField'
+ Properties:
+ [
+ DataBinding: 'dhDialogData.Data.ChangeLossNumber'
+ Label: 'Change loss number'
+ Taborder: 5
+ ]
+ }
]
Properties:
[
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Response_pnlActions_btnOk_OnClick.def
index 5def9ee..3d1e36b 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Response_pnlActions_btnOk_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Response_pnlActions_btnOk_OnClick.def
@@ -6,7 +6,7 @@
DefinitionID: 'Responsedef_WebButton_OnClick'
Precondition:
[*
- return ChangeLossSetting::ValidateInput( feedback, MacroPlan, dhDialogData.Data().WrappedInstance(), ddlUnit.Data(), ddlProduct1.Data(), ddlProduct2.Data(), dsStartDate.Date(), dsEndDate.Date(), [Number]npChangeLossNr.Number() );
+ return ChangeLossSetting::ValidateInput( feedback, MacroPlan, dhDialogData.Data().WrappedInstance(), ddlUnit.Data(), ddlProduct1.Data(), ddlProduct2.Data(), dsStartDate.Date(), dsEndDate.Date(), efChangeLossNr.Text() );
*]
QuillAction
{
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogTransferMinimumQuantity/Component_abpContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogTransferMinimumQuantity/Component_abpContent.def
new file mode 100644
index 0000000..0d81068
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogTransferMinimumQuantity/Component_abpContent.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component abpContent
+{
+ #keys: '[413988.0.1584413600]'
+ BaseType: 'listActionBarPage'
+ Properties:
+ [
+ Taborder: 1
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogTransferMinimumQuantity/Component_cmContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogTransferMinimumQuantity/Component_cmContent.def
new file mode 100644
index 0000000..f8104df
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogTransferMinimumQuantity/Component_cmContent.def
@@ -0,0 +1,69 @@
+Quintiq file version 2.0
+Component cmContent
+{
+ #keys: '[413988.0.1584413605]'
+ BaseType: 'listContextMenu'
+ Children:
+ [
+ Component MenuSeparator
+ {
+ #keys: '[121142.1.1147171519]'
+ BaseType: 'MenuSeparator'
+ IsDerived: true
+ Properties:
+ [
+ Taborder: 3
+ ]
+ }
+ Component mSelectAll
+ {
+ #keys: '[413988.0.1584413729]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ Image: 'SELECTION_VIEW'
+ Shortcut: 'Ctrl+A'
+ Taborder: 2
+ Title: 'Select all'
+ ]
+ }
+ Component mNew
+ {
+ #keys: '[413988.0.1584413791]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ Image: 'ADD2'
+ Taborder: 4
+ Title: 'New'
+ ]
+ }
+ Component mEdit
+ {
+ #keys: '[413988.0.1584413813]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ BindOnDoubleClick: true
+ Image: 'PENCIL'
+ Taborder: 5
+ Title: 'Edit'
+ ]
+ }
+ Component mDelete
+ {
+ #keys: '[413988.0.1584413835]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ Image: 'DELETE'
+ Taborder: 6
+ Title: 'Delete'
+ ]
+ }
+ ]
+ Properties:
+ [
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogTransferMinimumQuantity/Component_lstContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogTransferMinimumQuantity/Component_lstContent.def
new file mode 100644
index 0000000..de9e1d8
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogTransferMinimumQuantity/Component_lstContent.def
@@ -0,0 +1,59 @@
+Quintiq file version 2.0
+Component lstContent
+{
+ #keys: '[413988.0.1584413597]'
+ BaseType: 'WebList'
+ Children:
+ [
+ Component deContent
+ {
+ #keys: '[413988.0.1584413598]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'MacroPlan'
+ Source: 'MacroPlan'
+ Taborder: 0
+ Transformation: 'TransferMinimumQuantity'
+ ]
+ }
+ #child: abpContent
+ Component dslContent
+ {
+ #keys: '[413988.0.1584413603]'
+ BaseType: 'WebDataSetLevel'
+ Children:
+ [
+ #child: cmContent
+ ]
+ Properties:
+ [
+ Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"ProductID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}}]'
+ ContextMenu: 'cmContent'
+ Taborder: 2
+ ]
+ }
+ ]
+ Properties:
+ [
+ Taborder: 0
+ ]
+ ResponseDefinitions:
+ [
+ DelegatedResponseDefinition OnClick id:Responsedef_lstContent_WebMenu_OnClick
+ {
+ #keys: '[413988.0.1584413922]'
+ Initiator: 'WebMenu'
+ IsInherited: false
+ ResponseType: 'OnClick'
+ Arguments:
+ [
+ ResponseDefinitionArgument selection
+ {
+ #keys: '[3751.0.8761425]'
+ Binding: 'this.Selection()'
+ }
+ ]
+ }
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogTransferMinimumQuantity/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogTransferMinimumQuantity/Component_pnlContent.def
index 3ff0626..1c826a3 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogTransferMinimumQuantity/Component_pnlContent.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogTransferMinimumQuantity/Component_pnlContent.def
@@ -5,61 +5,7 @@
BaseType: 'WebPanel'
Children:
[
- Component npCylinderBlock
- {
- #keys: '[413988.0.1273522242]'
- BaseType: 'WebNumberPicker'
- Properties:
- [
- DataBinding: 'MacroPlan.CylinderBlock'
- Label: '缂镐綋(pcs)'
- Taborder: 0
- ]
- }
- Component npCylinderHead
- {
- #keys: '[413988.0.1273522255]'
- BaseType: 'WebNumberPicker'
- Properties:
- [
- DataBinding: 'MacroPlan.CylinderHead'
- Label: '缂哥洊(pcs)'
- Taborder: 1
- ]
- }
- Component npConnectingRod
- {
- #keys: '[413988.0.1273522267]'
- BaseType: 'WebNumberPicker'
- Properties:
- [
- DataBinding: 'MacroPlan.ConnectingRod'
- Label: '杩炴潌(pcs)'
- Taborder: 2
- ]
- }
- Component npCrankshaft
- {
- #keys: '[413988.0.1273522280]'
- BaseType: 'WebNumberPicker'
- Properties:
- [
- DataBinding: 'MacroPlan.Crankshaft'
- Label: '鏇茶酱(pcs)'
- Taborder: 3
- ]
- }
- Component npBalanceAxis
- {
- #keys: '[413988.0.1273522292]'
- BaseType: 'WebNumberPicker'
- Properties:
- [
- DataBinding: 'MacroPlan.BalanceAxis'
- Label: '骞宠 杞�(pcs)'
- Taborder: 4
- ]
- }
+ #child: lstContent
]
Properties:
[
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogTransferMinimumQuantity/Response_lstContent_mDelete_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogTransferMinimumQuantity/Response_lstContent_mDelete_OnClick.def
new file mode 100644
index 0000000..22cdd1b
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogTransferMinimumQuantity/Response_lstContent_mDelete_OnClick.def
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: lstContent
+Response OnClick (
+ structured[TransferMinimumQuantity] selection
+) id:Response_lstContent_mDelete_OnClick
+{
+ #keys: '[413988.0.1584415019]'
+ CanBindMultiple: false
+ DefinitionID => /lstContent/Responsedef_lstContent_WebMenu_OnClick
+ Initiator: 'mDelete'
+ QuillAction
+ {
+ Body:
+ [*
+ MacroPlan::DeleteObjects( selection );
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogTransferMinimumQuantity/Response_lstContent_mEdit_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogTransferMinimumQuantity/Response_lstContent_mEdit_OnClick.def
new file mode 100644
index 0000000..e14a266
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogTransferMinimumQuantity/Response_lstContent_mEdit_OnClick.def
@@ -0,0 +1,21 @@
+Quintiq file version 2.0
+#parent: lstContent
+Response OnClick (
+ TransferMinimumQuantity selection
+) id:Response_lstContent_mEdit_OnClick
+{
+ #keys: '[413988.0.1584414766]'
+ CanBindMultiple: false
+ DefinitionID => /lstContent/Responsedef_lstContent_WebMenu_OnClick
+ Initiator: 'mEdit'
+ QuillAction
+ {
+ Body:
+ [*
+ dlg := construct( DialogCreateEditTransferMinimumQuantity );
+
+ dlg.Edit( selection );
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogTransferMinimumQuantity/Response_lstContent_mNew_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogTransferMinimumQuantity/Response_lstContent_mNew_OnClick.def
new file mode 100644
index 0000000..9100d24
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogTransferMinimumQuantity/Response_lstContent_mNew_OnClick.def
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: lstContent
+Response OnClick () id:Response_lstContent_mNew_OnClick
+{
+ #keys: '[413988.0.1584414263]'
+ CanBindMultiple: false
+ DefinitionID => /lstContent/Responsedef_lstContent_WebMenu_OnClick
+ Initiator: 'mNew'
+ Precondition:
+ [*
+ return not isnull( MacroPlan );
+ *]
+ QuillAction
+ {
+ Body:
+ [*
+ dlg := construct( DialogCreateEditTransferMinimumQuantity );
+
+ dlg.New();
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogTransferMinimumQuantity/Response_lstContent_mSelectAll_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogTransferMinimumQuantity/Response_lstContent_mSelectAll_OnClick.def
new file mode 100644
index 0000000..6775177
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogTransferMinimumQuantity/Response_lstContent_mSelectAll_OnClick.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: lstContent
+Response OnClick () id:Response_lstContent_mSelectAll_OnClick
+{
+ #keys: '[413988.0.1584414036]'
+ CanBindMultiple: false
+ DefinitionID => /lstContent/Responsedef_lstContent_WebMenu_OnClick
+ Initiator: 'mSelectAll'
+ QuillAction
+ {
+ Body:
+ [*
+ this.SelectAll();
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogTransferMinimumQuantity/_ROOT_Component_DialogTransferMinimumQuantity.def b/_Main/UI/MacroPlannerWebApp/Component_DialogTransferMinimumQuantity/_ROOT_Component_DialogTransferMinimumQuantity.def
index b2f9f0d..12c8a5f 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogTransferMinimumQuantity/_ROOT_Component_DialogTransferMinimumQuantity.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogTransferMinimumQuantity/_ROOT_Component_DialogTransferMinimumQuantity.def
@@ -16,6 +16,8 @@
EnterButton: 'btnOk'
EscapeButton: 'btnCancel'
ExcludeFromActiveComponent: true
+ MinimumColumns: 50
+ MinimumRows: 30
Padding: 'false'
]
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogWholeShiftSystem/Component_ListEntity.def b/_Main/UI/MacroPlannerWebApp/Component_DialogWholeShiftSystem/Component_ListEntity.def
index 9993e10..2e353d2 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogWholeShiftSystem/Component_ListEntity.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogWholeShiftSystem/Component_ListEntity.def
@@ -12,10 +12,10 @@
Properties:
[
DataType: 'MacroPlan'
- FixedFilter: 'not object.GetIsSystem() and object.IsUnit();'
+ FixedFilter: 'not object.GetIsSystem() and object.IsUnit() and object.WholeShiftFiltering();'
Source: 'MacroPlan'
Taborder: 0
- Transformation: 'RootEntity'
+ Transformation: 'Unit'
]
}
Component DataSetLevelRootEntity
@@ -25,27 +25,11 @@
Children:
[
#child: listContextMenu902_1
- Component DataSetLevelChildEntity
- {
- #keys: '[414702.2.1845329623]'
- BaseType: 'WebDataSetLevel'
- Properties:
- [
- Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeAllConstraint","columnid":"All constraints","title":"All constraints","subtotals":"","tooltip":"","width":-1,"display":"shown"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DisplayName","title":"Name","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"DisplayName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DisplayCapacityType","title":"Capacity type","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"DisplayCapacityType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ImgIsToFill","title":"ImgIsToFill","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ImgIsToFill"}}]'
- ContextMenu: 'listContextMenu902'
- FixedFilter: 'not object.GetIsSystem() and object.IsUnit();'
- RelationFromParent: 'ChildEntity'
- RelationRepeating: 'ChildEntity'
- SortCriteria: 'DisplayIndex'
- Taborder: 0
- ]
- }
]
Properties:
[
Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeAllConstraint","columnid":"All constraints","title":"All constraints","subtotals":"","tooltip":"","width":-1,"display":"shown"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DisplayName","title":"Name","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"DisplayName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DisplayCapacityType","title":"Capacity type","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"DisplayCapacityType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ImgIsToFill","title":"ImgIsToFill","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ImgIsToFill"}}]'
ContextMenu: 'listContextMenu902'
- RelationFromParent: 'ChildEntity'
SortCriteria: 'DisplayIndex'
Taborder: 1
]
@@ -55,7 +39,7 @@
Properties:
[
DefaultExpandLevels: 100
- Taborder: 0
+ Taborder: 1
]
ResponseDefinitions:
[
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_DialogWholeShiftSystem/Component_listContextMenu902\0431.def" "b/_Main/UI/MacroPlannerWebApp/Component_DialogWholeShiftSystem/Component_listContextMenu902\0431.def"
index b97df8e..f04789c 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_DialogWholeShiftSystem/Component_listContextMenu902\0431.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_DialogWholeShiftSystem/Component_listContextMenu902\0431.def"
@@ -52,6 +52,6 @@
]
Properties:
[
- Taborder: 1
+ Taborder: 0
]
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogWholeShiftSystem/Component_pHeader.def b/_Main/UI/MacroPlannerWebApp/Component_DialogWholeShiftSystem/Component_pHeader.def
new file mode 100644
index 0000000..9e302b1
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogWholeShiftSystem/Component_pHeader.def
@@ -0,0 +1,27 @@
+Quintiq file version 2.0
+Component pHeader
+{
+ #keys: '[413988.0.1584415148]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component bDeselectAll
+ {
+ #keys: '[413988.0.1585579042]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Image: 'SELECTION_DELETE'
+ Label: 'Deselect all'
+ Taborder: 0
+ ]
+ }
+ ]
+ Properties:
+ [
+ Border: true
+ FixedSize: true
+ Orientation: 'horizontal'
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogWholeShiftSystem/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogWholeShiftSystem/Component_pnlContent.def
index 0216bca..cf54825 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogWholeShiftSystem/Component_pnlContent.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogWholeShiftSystem/Component_pnlContent.def
@@ -6,6 +6,7 @@
Children:
[
#child: ListEntity
+ #child: pHeader
]
Properties:
[
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogWholeShiftSystem/Response_pHeader_bDeselectAll_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogWholeShiftSystem/Response_pHeader_bDeselectAll_OnClick.def
new file mode 100644
index 0000000..6676b9a
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogWholeShiftSystem/Response_pHeader_bDeselectAll_OnClick.def
@@ -0,0 +1,22 @@
+Quintiq file version 2.0
+#parent: pHeader/bDeselectAll
+Response OnClick () id:Response_pHeader_bDeselectAll_OnClick
+{
+ #keys: '[413988.0.1585579057]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ Precondition:
+ [*
+ return not isnull( MacroPlan );
+ *]
+ QuillAction
+ {
+ Body:
+ [*
+ traverse ( MacroPlan, Unit, u ) {
+ u.IsToFill( false );
+ }
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlan/Component_pHeader.def b/_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlan/Component_pHeader.def
index 68b8f49..3e8f767 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlan/Component_pHeader.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlan/Component_pHeader.def
@@ -21,7 +21,7 @@
BaseType: 'WebButton'
Properties:
[
- Label: 'Online quantity'
+ Label: 'Filing line volume'
Taborder: 2
]
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlan/Response_MatrixEditor951_480_OnUpdateValue.def b/_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlan/Response_MatrixEditor951_480_OnUpdateValue.def
new file mode 100644
index 0000000..3e6eb15
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlan/Response_MatrixEditor951_480_OnUpdateValue.def
@@ -0,0 +1,28 @@
+Quintiq file version 2.0
+#parent: MatrixEditor951_480
+Response OnUpdateValue (
+ AssemblyOnlinePlanRow row,
+ AssemblyOnlinePlanColumn column,
+ AssemblyOnlinePlanCell cell,
+ String value,
+ String oldvalue
+) id:Response_MatrixEditor951_480_OnUpdateValue
+{
+ #keys: '[415754.0.313052247]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebMatrixEditor_OnUpdateValue'
+ Precondition:
+ [*
+ return not isnull( MacroPlan );
+ *]
+ QuillAction
+ {
+ Body:
+ [*
+ if ( row.Type() = "1" and column.ColumnDate() >= MacroPlan.StartOfPlanning().Date() and cell.Value() <> "" ) {
+ cell.Value( value );
+ }
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Component_PanelExport\043670.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Component_PanelExport\043670.def"
index f56b008..f78bec0 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Component_PanelExport\043670.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Component_PanelExport\043670.def"
@@ -12,7 +12,8 @@
Properties:
[
Image: 'EXPORT1'
- Taborder: 1
+ Label: '瀵煎嚭'
+ Taborder: 2
]
}
Component ButtonSearch
@@ -32,7 +33,8 @@
Properties:
[
Image: 'IMPORT1'
- Taborder: 2
+ Label: '瀵煎叆'
+ Taborder: 1
]
}
Component bRefresh
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Response_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Response_OnCreated.def
index 3ada041..7221c3c 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Response_OnCreated.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Response_OnCreated.def
@@ -10,13 +10,10 @@
Body:
[*
//鍒濆鍖�
- //if( not exists( MacroPlan, FinancialProductionSource, source, not source.IsImport() ) ){
- // CCEngineLogisticsCostReport::Initialize( MacroPlan );
- //}
- //info( '------------------1----------------' );
+ table := CCEngineLogisticsCostReport::InitiateSearch( MacroPlan );
//table := selectobject( MacroPlan, CCEngineLogisticsCostReport, table, table.IsShow() );
//info( '------------------2----------------', table.IsImport(), table.IsShow() );
- //DataHolderTable.Data( table );
+ DataHolderTable.Data( table );
//dhSearch.Data( table.MacroPlan().CCEngineLogisticsCostSearch() );
*]
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_ListChangeLossSetting\043568.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_ListChangeLossSetting\043568.def"
index 13d921e..19e17fb 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_ListChangeLossSetting\043568.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_ListChangeLossSetting\043568.def"
@@ -28,7 +28,7 @@
]
Properties:
[
- Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Unit.ID","title":"Unit","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"Unit.ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductFirst.ID","title":"Product1","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ProductFirst.ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductSecond.ID","title":"Product2","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ProductSecond.ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StartDate","title":"StartDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StartDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"EndDate","title":"EndDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"EndDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ChangeLossNr","title":"ChangeLossNr","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ChangeLossNr"}}]'
+ Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Unit.ID","title":"Unit","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"Unit.ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductFirst.ID","title":"Product1","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ProductFirst.ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductSecond.ID","title":"Product2","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ProductSecond.ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StartDate","title":"StartDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StartDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"EndDate","title":"EndDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"EndDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ChangeLossNumber","title":"ChangeLossNumber","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ChangeLossNumber"}}]'
ContextMenu: 'listContextMenuChangeLossSetting'
Taborder: 2
]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Component_PanelExport.def b/_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Component_PanelExport.def
index 6b21362..3955c6c 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Component_PanelExport.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Component_PanelExport.def
@@ -12,6 +12,7 @@
Properties:
[
Image: 'EXPORT1'
+ Label: '瀵煎嚭'
Taborder: 1
]
}
@@ -32,6 +33,7 @@
Properties:
[
Image: 'IMPORT1'
+ Label: '瀵煎叆'
Taborder: 2
]
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Response_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Response_OnCreated.def
index 090c39f..7802afc 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Response_OnCreated.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Response_OnCreated.def
@@ -10,13 +10,10 @@
Body:
[*
//鍒濆鍖�
- //if( not exists( MacroPlan, FinancialProductionSource, source, not source.IsImport() ) ){
- // DLEngineLogisticsCostReport::Initialize( MacroPlan );
- //}
- //info( '------------------1----------------' );
- //table := selectobject( MacroPlan, DLEngineLogisticsCostReport, table, table.IsShow() );
+ table := DLEngineLogisticsCostReport::InitiateSearch( MacroPlan );
+ //table := selectobject( MacroPlan, DLEngineLogisticsCostReport, table, table.IsShow() );/
//info( '------------------2----------------', table.IsImport(), table.IsShow() );
- //DataHolderTable.Data( table );
+ DataHolderTable.Data( table );
//dhSearch.Data( table.MacroPlan().DLEngineLogisticsCostSearch() );
//info( '------------------2----------------', isnull( dhSearch.Data() ) );
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Response_PanelExport_bRefresh_OnClick\04357.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Response_PanelExport_bRefresh_OnClick\04357.def"
index 13ea574..109cc6d 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Response_PanelExport_bRefresh_OnClick\04357.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Response_PanelExport_bRefresh_OnClick\04357.def"
@@ -13,7 +13,7 @@
{
Body:
[*
- DLEngineLogisticsCostReport::Initialize( MacroPlan );
+ DLEngineLogisticsCostReport::InitializeNew( MacroPlan );
table := selectobject( MacroPlan, DLEngineLogisticsCostReport, table, table.IsShow() );
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormEnginePipelineReport/Component_PanelExport\043570.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormEnginePipelineReport/Component_PanelExport\043570.def"
index ec10521..d819dc1 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormEnginePipelineReport/Component_PanelExport\043570.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormEnginePipelineReport/Component_PanelExport\043570.def"
@@ -11,7 +11,8 @@
BaseType: 'WebButton'
Properties:
[
- Image: 'IMPORT1'
+ Image: 'EXPORT1'
+ Label: '瀵煎嚭'
Taborder: 1
]
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormEnginePipelineReport/Response_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormEnginePipelineReport/Response_OnCreated.def
index 16152ac..ca04bd3 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormEnginePipelineReport/Response_OnCreated.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormEnginePipelineReport/Response_OnCreated.def
@@ -9,13 +9,10 @@
{
Body:
[*
- //if( not isnull( MacroPlan.EnginePipelineSource() ) ){
- // EnginePipelineSource::Initialize( MacroPlan );
- //}
- //info( '------------------1----------------' );
+ table := EnginePipelineSource::InitiateSearch( MacroPlan );
//table := selectobject( MacroPlan, EnginePipelineSource.Report, table, table.IsShow() );
//info( '------------------2----------------', table.IsShow() );
- //DataHolderTable.Data( table );
+ DataHolderTable.Data( table );
//dhSearch.Data( table.Source().Search() );
*]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelExport.def b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelExport.def
index d776a17..512bfd5 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelExport.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelExport.def
@@ -12,6 +12,7 @@
Properties:
[
Image: 'EXPORT1'
+ Label: '瀵煎嚭'
Taborder: 1
]
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelFinancialProductionReportOperation.def b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelFinancialProductionReportOperation.def
index 3b019a4..8bd7043 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelFinancialProductionReportOperation.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelFinancialProductionReportOperation.def
@@ -23,6 +23,7 @@
Properties:
[
Image: 'IMPORT1'
+ Label: '瀵煎叆'
Taborder: 1
]
}
@@ -33,6 +34,7 @@
Properties:
[
Image: 'EXPORT1'
+ Label: '瀵煎嚭'
Taborder: 2
]
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_OnCreated.def
index 03e00bf..3c15265 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_OnCreated.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_OnCreated.def
@@ -10,13 +10,10 @@
Body:
[*
//鍒濆鍖�
- //if( not exists( MacroPlan, FinancialProductionSource, source, not source.IsImport() ) ){
- // FinancialProductionSource::Initialize( MacroPlan );
- //}
- //info( '------------------1----------------' );
+ table := FinancialProductionSource::InitiateSearch( MacroPlan );
//table := selectobject( MacroPlan, FinancialProductionSource.FinancialProductionReport, table, not table.IsImport() and table.IsShow() );
//info( '------------------2----------------', table.IsImport(), table.IsShow() );
- //DataHolderTable.Data( table );
+ DataHolderTable.Data( table );
//dhSearch.Data( MacroPlan.FinancialProductionSearch() );
*]
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelExport\043545.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelExport\043545.def"
index 9f9b106..c3e5888 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelExport\043545.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelExport\043545.def"
@@ -12,6 +12,7 @@
Properties:
[
Image: 'EXPORT1'
+ Label: '瀵煎嚭'
Taborder: 1
]
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelFinancialSalesReportOperation.def b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelFinancialSalesReportOperation.def
index b204aa7..c007602 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelFinancialSalesReportOperation.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelFinancialSalesReportOperation.def
@@ -23,6 +23,7 @@
Properties:
[
Image: 'IMPORT1'
+ Label: '瀵煎叆'
Taborder: 1
]
}
@@ -33,6 +34,7 @@
Properties:
[
Image: 'EXPORT1'
+ Label: '瀵煎嚭'
Taborder: 2
]
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_OnCreated.def
index 8afab20..c61aeb4 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_OnCreated.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_OnCreated.def
@@ -9,13 +9,10 @@
{
Body:
[*
- //if( not exists( MacroPlan, FinancialSalesSource, source, not source.IsImport() ) ){
- // FinancialSalesSource::Initialize( MacroPlan );
- //}
- //info( '------------------1----------------' );
+ table := FinancialSalesSource::InitiateSearch( MacroPlan );
//table := selectobject( MacroPlan, FinancialSalesSource.FinancialSalesReport, table, not table.IsImport() and table.IsShow() );
//info( '------------------2----------------', table.IsImport(), table.IsShow() );
- //DataHolderTable.Data( table );
+ DataHolderTable.Data( table );
//dhSearch.Data( MacroPlan.FinancialSalesSearch() );
*]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelExport_545_bRefresh_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelExport_545_bRefresh_OnClick.def
index 76278ef..8485ba6 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelExport_545_bRefresh_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelExport_545_bRefresh_OnClick.def
@@ -13,7 +13,7 @@
{
Body:
[*
- FinancialSalesSource::Initialize( MacroPlan );
+ FinancialSalesSource::InitializeNew( MacroPlan );
table := selectobject( MacroPlan, FinancialSalesSource.FinancialSalesReport, table, not table.IsImport() and table.IsShow() );
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/Component_PanelHeader.def b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/Component_PanelHeader.def
index 7b37425..14a5d3b 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/Component_PanelHeader.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/Component_PanelHeader.def
@@ -12,6 +12,7 @@
Properties:
[
Image: 'EXPORT1'
+ Label: '瀵煎嚭'
Taborder: 0
]
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Component_PanelExport.def b/_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Component_PanelExport.def
index b1ddee6..5654402 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Component_PanelExport.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Component_PanelExport.def
@@ -12,6 +12,7 @@
Properties:
[
Image: 'EXPORT1'
+ Label: '瀵煎嚭'
Taborder: 1
]
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_OnCreated.def
index 7f67159..379e9a6 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_OnCreated.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_OnCreated.def
@@ -9,13 +9,10 @@
{
Body:
[*
- //if( not isnull( MacroPlan.InventorySummarySource() ) ){
- // InventorySummarySource::Initialize( MacroPlan, InterfaceDataset );
- //}
- //info( '------------------1----------------' );
+ table := InventorySummarySource::InitiateSearch( MacroPlan );
//table := selectobject( MacroPlan, InventorySummarySource.InventorySummaryReport, table, table.IsShow() );
//info( '------------------2----------------', table.IsShow() );
- //DataHolderTable.Data( table );
+ DataHolderTable.Data( table );
//dhSearch.Data( table.InventorySummarySource().InventorySummarySearch() );
*]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormMachiningPipelineReport/Component_PanelExport.def b/_Main/UI/MacroPlannerWebApp/Component_FormMachiningPipelineReport/Component_PanelExport.def
index 7c71f89..f09e76f 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormMachiningPipelineReport/Component_PanelExport.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormMachiningPipelineReport/Component_PanelExport.def
@@ -11,7 +11,8 @@
BaseType: 'WebButton'
Properties:
[
- Image: 'IMPORT1'
+ Image: 'EXPORT1'
+ Label: '瀵煎叆'
Taborder: 1
]
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormMachiningPipelineReport/Response_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormMachiningPipelineReport/Response_OnCreated.def
index 90189c0..f9c1344 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormMachiningPipelineReport/Response_OnCreated.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormMachiningPipelineReport/Response_OnCreated.def
@@ -9,13 +9,10 @@
{
Body:
[*
- //if( not isnull( MacroPlan.EnginePipelineSource() ) ){
- // MachiningPipelineSource::Initialize( MacroPlan );
- //}
- //info( '------------------1----------------' );
+ table := MachiningPipelineSource::InitiateSearch( MacroPlan );
//table := selectobject( MacroPlan, MachiningPipelineSource.Report, table, table.IsShow() );
//info( '------------------2----------------', table.IsShow() );
- //DataHolderTable.Data( table );
+ DataHolderTable.Data( table );
//dhSearch.Data( table.Source().Search() );
*]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Component_MatrixEditor951.def b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Component_MatrixEditor951.def
index 463493b..8777a1d 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Component_MatrixEditor951.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Component_MatrixEditor951.def
@@ -44,12 +44,10 @@
BaseType: 'WebDataExtractor'
Properties:
[
- DataType: 'OfflinePlanTable'
- FilterArguments: 'entities:QLibMacroPlannerWebUI::ApplicationMacroPlanner.DataHolderCheckedEntities'
- FixedFilter: 'object.Filter( entities )'
- Source: 'dhOfflinePlanTable'
+ DataType: 'structured[OfflinePlanRow]'
+ Source: 'dhSelectedOfflinePlanRow'
Taborder: 0
- Transformation: 'OfflinePlanRow'
+ Transformation: 'Elements'
]
}
]
@@ -73,6 +71,7 @@
Properties:
[
DataType: 'OfflinePlanTable'
+ FixedFilter: 'object.IsShow()'
Source: 'dhOfflinePlanTable'
Taborder: 0
Transformation: 'OfflinePlanColumn'
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Component_pContent\043611.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Component_pContent\043611.def"
index a78013e..859f9c4 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Component_pContent\043611.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Component_pContent\043611.def"
@@ -16,6 +16,33 @@
Taborder: 1
]
}
+ Component dhSelectedOfflinePlanRow
+ {
+ #keys: '[413988.0.1557550767]'
+ BaseType: 'WebDataHolder'
+ Databinding: 'structured[OfflinePlanRow]*'
+ Children:
+ [
+ Component deSelectedOfflinePlanRow
+ {
+ #keys: '[413988.0.1557550817]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'OfflinePlanTable'
+ FilterArguments: 'entities:QLibMacroPlannerWebUI::ApplicationMacroPlanner.DataHolderCheckedEntities'
+ FixedFilter: 'object.Filter( entities )'
+ Source: 'dhOfflinePlanTable'
+ Taborder: 0
+ Transformation: 'OfflinePlanRow'
+ ]
+ }
+ ]
+ Properties:
+ [
+ Taborder: 2
+ ]
+ }
]
Properties:
[
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Component_pHeader.def b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Component_pHeader.def
index a935cd4..dea8989 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Component_pHeader.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Component_pHeader.def
@@ -1,76 +1,17 @@
Quintiq file version 2.0
Component pHeader
{
- #keys: '[413988.0.1296872680]'
+ #keys: '[413988.0.1568330469]'
BaseType: 'WebPanel'
Children:
[
- Component bRefresh
- {
- #keys: '[413988.0.1296860898]'
- BaseType: 'WebButton'
- Properties:
- [
- Image: 'REFRESH'
- Taborder: 0
- ]
- }
- Component bDownload
- {
- #keys: '[413988.0.1296875316]'
- BaseType: 'WebButton'
- Properties:
- [
- Label: 'Download'
- Taborder: 1
- ]
- }
- Component bDeductionOfReplacementLoss
- {
- #keys: '[413988.0.1297911732]'
- BaseType: 'WebButton'
- Properties:
- [
- Label: 'Deduction of replacement loss'
- Taborder: 2
- ]
- }
- Component bRestore
- {
- #keys: '[413988.0.1297911774]'
- BaseType: 'WebButton'
- Properties:
- [
- Label: 'Restore'
- Taborder: 3
- ]
- }
- Component bSaveAsDraft
- {
- #keys: '[413988.0.1297973728]'
- BaseType: 'WebButton'
- Properties:
- [
- Label: 'Save as draft'
- Taborder: 4
- ]
- }
- Component bConfirm
- {
- #keys: '[413988.0.1297973782]'
- BaseType: 'WebButton'
- Properties:
- [
- Label: 'Confirm'
- Taborder: 5
- ]
- }
+ #child: pHeader1_799
+ #child: pHeader2
]
Properties:
[
Border: true
FixedSize: true
- Orientation: 'horizontal'
Taborder: 0
]
}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Component_pHeader1\043799.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Component_pHeader1\043799.def"
new file mode 100644
index 0000000..acea00e
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Component_pHeader1\043799.def"
@@ -0,0 +1,85 @@
+Quintiq file version 2.0
+Component pHeader1 id:pHeader1_799
+{
+ #keys: '[413988.0.1568330588]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component bGenerateReport
+ {
+ #keys: '[413988.0.1568330589]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Label: 'Generate report'
+ Taborder: 0
+ ]
+ }
+ Component bDownload
+ {
+ #keys: '[413988.0.1568330590]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Label: 'Download'
+ Taborder: 1
+ ]
+ }
+ Component bDeductChangeoverLoss
+ {
+ #keys: '[413988.0.1568330591]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Label: 'Deduct changeover loss'
+ Taborder: 3
+ ]
+ }
+ Component bRestore
+ {
+ #keys: '[413988.0.1568330592]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Label: 'Restore'
+ Taborder: 4
+ ]
+ }
+ Component bSaveAsDraft
+ {
+ #keys: '[413988.0.1568330593]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Label: 'Save as draft'
+ Taborder: 5
+ ]
+ }
+ Component bConfirm
+ {
+ #keys: '[413988.0.1568330594]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Label: 'Confirm'
+ Taborder: 6
+ ]
+ }
+ Component bImport
+ {
+ #keys: '[413988.0.1568330595]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Label: 'Import'
+ Taborder: 2
+ ]
+ }
+ ]
+ Properties:
+ [
+ FixedSize: true
+ Orientation: 'horizontal'
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Component_pHeader2.def b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Component_pHeader2.def
new file mode 100644
index 0000000..50678f7
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Component_pHeader2.def
@@ -0,0 +1,26 @@
+Quintiq file version 2.0
+Component pHeader2
+{
+ #keys: '[413988.0.1568330735]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component sDateFilter
+ {
+ #keys: '[413988.0.1567271085]'
+ BaseType: 'WebSlider'
+ Properties:
+ [
+ NumberOfColumns: 100
+ Taborder: 0
+ Visible: false
+ ]
+ }
+ ]
+ Properties:
+ [
+ FixedSize: true
+ Orientation: 'horizontal'
+ Taborder: 1
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_MatrixEditor951_OnUpdateValue.def b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_MatrixEditor951_OnUpdateValue.def
index a646cdb..4aeee49 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_MatrixEditor951_OnUpdateValue.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_MatrixEditor951_OnUpdateValue.def
@@ -23,6 +23,8 @@
cell.IsQuantityChange( true );
cell.Value( value );
cell.Quantity( [Real]value );
+ } else if ( row.Type() = "2" and column.ColumnDate() >= MacroPlan.StartOfPlanning().Date() ) {
+ cell.Value( value );
}
*]
GroupServerCalls: false
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader1_799_bConfirm_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader1_799_bConfirm_OnClick.def
new file mode 100644
index 0000000..0f75914
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader1_799_bConfirm_OnClick.def
@@ -0,0 +1,24 @@
+Quintiq file version 2.0
+#parent: pHeader1_799/bConfirm
+Response OnClick () id:Response_pHeader1_799_bConfirm_OnClick
+{
+ #keys: '[413988.0.1568330582]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ Precondition:
+ [*
+ return not isnull( MacroPlan ) and MacroPlan.A_PreviousScenaioName() <> MacroPlan.ScenarioName();
+ *]
+ QuillAction
+ {
+ Body:
+ [*
+ OfflinePlanCell::SynchronizeToNewSupply( MacroPlan, dhOfflinePlanTable.Data() );
+
+ MacroPlan.A_PreviousScenaioName( MacroPlan.ScenarioName() );
+
+ WebMessageBox::Success( Translations::A_VWED_Success() );
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader_bDeductionOfReplacementLoss_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader1_799_bDeductChangeoverLoss_OnClick.def
similarity index 66%
rename from _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader_bDeductionOfReplacementLoss_OnClick.def
rename to _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader1_799_bDeductChangeoverLoss_OnClick.def
index 16a2713..b50a224 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader_bDeductionOfReplacementLoss_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader1_799_bDeductChangeoverLoss_OnClick.def
@@ -1,13 +1,13 @@
Quintiq file version 2.0
-#parent: pHeader/bDeductionOfReplacementLoss
-Response OnClick () id:Response_pHeader_bDeductionOfReplacementLoss_OnClick
+#parent: pHeader1_799/bDeductChangeoverLoss
+Response OnClick () id:Response_pHeader1_799_bDeductChangeoverLoss_OnClick
{
- #keys: '[413988.0.1297973984]'
+ #keys: '[413988.0.1568330585]'
CanBindMultiple: false
DefinitionID: 'Responsedef_WebButton_OnClick'
Precondition:
[*
- return not isnull( MacroPlan );
+ return not isnull( MacroPlan ) and MacroPlan.A_PreviousScenaioName() <> MacroPlan.ScenarioName();
*]
QuillAction
{
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader1_799_bDownload_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader1_799_bDownload_OnClick.def
new file mode 100644
index 0000000..5558821
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader1_799_bDownload_OnClick.def
@@ -0,0 +1,22 @@
+Quintiq file version 2.0
+#parent: pHeader1_799/bDownload
+Response OnClick () id:Response_pHeader1_799_bDownload_OnClick
+{
+ #keys: '[413988.0.1568330586]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ Precondition:
+ [*
+ return not isnull( MacroPlan );
+ *]
+ QuillAction
+ {
+ Body:
+ [*
+ binaryValue := OfflinePlanCell::Download( MacroPlan, dhSelectedOfflinePlanRow.Data() );
+
+ Application.Download( "Offline plan.xlsx", binaryValue.AsBinaryData() );
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader_bRefresh_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader1_799_bGenerateReport_OnClick.def
similarity index 65%
rename from _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader_bRefresh_OnClick.def
rename to _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader1_799_bGenerateReport_OnClick.def
index 94d48f9..96194e0 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader_bRefresh_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader1_799_bGenerateReport_OnClick.def
@@ -1,13 +1,13 @@
Quintiq file version 2.0
-#parent: pHeader/bRefresh
-Response OnClick () id:Response_pHeader_bRefresh_OnClick
+#parent: pHeader1_799/bGenerateReport
+Response OnClick () id:Response_pHeader1_799_bGenerateReport_OnClick
{
- #keys: '[413988.0.1297973814]'
+ #keys: '[413988.0.1568330587]'
CanBindMultiple: false
DefinitionID: 'Responsedef_WebButton_OnClick'
Precondition:
[*
- return not isnull( MacroPlan );
+ return not isnull( MacroPlan ) and MacroPlan.A_PreviousScenaioName() <> MacroPlan.ScenarioName();
*]
QuillAction
{
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader1_799_bImport_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader1_799_bImport_OnClick.def
new file mode 100644
index 0000000..d81e24c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader1_799_bImport_OnClick.def
@@ -0,0 +1,45 @@
+Quintiq file version 2.0
+#parent: pHeader1_799/bImport
+Response OnClick () id:Response_pHeader1_799_bImport_OnClick
+{
+ #keys: '[413988.0.1568330581]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ Precondition:
+ [*
+ return not isnull( MacroPlan ) and MacroPlan.A_PreviousScenaioName() <> MacroPlan.ScenarioName();
+ *]
+ QuillAction
+ {
+ Body:
+ [*
+ try {
+ uploadJsonString := Application.GetFile();
+ if ( uploadJsonString <> "" ) {
+ uploadJson := JSON::Parse( uploadJsonString );
+ Archive::VerifyTheFileName( uploadJson );
+
+ fileName := uploadJson.Get( "name" ).GetString();
+ base64String := uploadJson.Get( "data" ).GetString();
+
+ webFileBinaryData := BinaryData::FromBase64EncodedString( base64String ).AsBinaryValue();
+
+ generalExcelImportAndExportDataSource := GeneralExcelImportAndExportDataSource::Upload( RecycleBin, webFileBinaryData, fileName );
+ generalExcelImportAndExportDataSource.ReadStructure();
+
+ selection := select( generalExcelImportAndExportDataSource, GeneralExcelImportAndExportDataTable, tempGEIAEDT, tempGEIAEDT.Name() = "Sheet1" );
+
+ OfflinePlanImportData::Upload( MacroPlan, dhOfflinePlanTable.Data(), selection );
+
+ // 鍚庣画鍒犻櫎
+ // generalExcelImportAndExportDataSource.Delete();
+
+ WebMessageBox::Success( Translations::A_VWED_Success() );
+ }
+ } onerror {
+ WebMessageBox::Error( e.GeneralInformation() );
+ }
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader_bRestore_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader1_799_bRestore_OnClick.def
similarity index 71%
rename from _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader_bRestore_OnClick.def
rename to _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader1_799_bRestore_OnClick.def
index 14e4993..8b98925 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader_bRestore_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader1_799_bRestore_OnClick.def
@@ -1,13 +1,13 @@
Quintiq file version 2.0
-#parent: pHeader/bRestore
-Response OnClick () id:Response_pHeader_bRestore_OnClick
+#parent: pHeader1_799/bRestore
+Response OnClick () id:Response_pHeader1_799_bRestore_OnClick
{
- #keys: '[413988.0.1297974069]'
+ #keys: '[413988.0.1568330584]'
CanBindMultiple: false
DefinitionID: 'Responsedef_WebButton_OnClick'
Precondition:
[*
- return not isnull( MacroPlan );
+ return not isnull( MacroPlan ) and MacroPlan.A_PreviousScenaioName() <> MacroPlan.ScenarioName();
*]
QuillAction
{
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader_bSaveAsDraft_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader1_799_bSaveAsDraft_OnClick.def
similarity index 62%
rename from _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader_bSaveAsDraft_OnClick.def
rename to _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader1_799_bSaveAsDraft_OnClick.def
index e94ded1..1ec387e 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader_bSaveAsDraft_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader1_799_bSaveAsDraft_OnClick.def
@@ -1,13 +1,13 @@
Quintiq file version 2.0
-#parent: pHeader/bSaveAsDraft
-Response OnClick () id:Response_pHeader_bSaveAsDraft_OnClick
+#parent: pHeader1_799/bSaveAsDraft
+Response OnClick () id:Response_pHeader1_799_bSaveAsDraft_OnClick
{
- #keys: '[413988.0.1297974155]'
+ #keys: '[413988.0.1568330583]'
CanBindMultiple: false
DefinitionID: 'Responsedef_WebButton_OnClick'
Precondition:
[*
- return not isnull( MacroPlan );
+ return not isnull( MacroPlan ) and MacroPlan.A_PreviousScenaioName() <> MacroPlan.ScenarioName();
*]
QuillAction
{
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader2_sDateFilter_OnUserChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader2_sDateFilter_OnUserChanged.def
new file mode 100644
index 0000000..d95c376
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader2_sDateFilter_OnUserChanged.def
@@ -0,0 +1,26 @@
+Quintiq file version 2.0
+#parent: pHeader2/sDateFilter
+Response OnUserChanged () id:Response_pHeader2_sDateFilter_OnUserChanged
+{
+ #keys: '[413988.0.1568579788]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebSlider_OnUserChanged'
+ Precondition:
+ [*
+ return not isnull( MacroPlan );
+ *]
+ QuillAction
+ {
+ Body:
+ [*
+ traverse ( dhOfflinePlanTable.Data(), OfflinePlanColumn, opc ) {
+ opc.IsShow( true );
+
+ if ( opc.ColumnIndex() > 1 and opc.ColumnIndex() < this.EndReal() ) {
+ opc.IsShow( false );
+ }
+ }
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader_bConfirm_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader_bConfirm_OnClick.def
deleted file mode 100644
index ef72979..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader_bConfirm_OnClick.def
+++ /dev/null
@@ -1,22 +0,0 @@
-Quintiq file version 2.0
-#parent: pHeader/bConfirm
-Response OnClick () id:Response_pHeader_bConfirm_OnClick
-{
- #keys: '[413988.0.1297974240]'
- CanBindMultiple: false
- DefinitionID: 'Responsedef_WebButton_OnClick'
- Precondition:
- [*
- return not isnull( MacroPlan );
- *]
- QuillAction
- {
- Body:
- [*
- OfflinePlanCell::SynchronizeToNewSupply( MacroPlan, dhOfflinePlanTable.Data() );
-
- WebMessageBox::Success( Translations::A_VWED_Success() );
- *]
- GroupServerCalls: false
- }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader_bDownload_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader_bDownload_OnClick.def
deleted file mode 100644
index 7e12122..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader_bDownload_OnClick.def
+++ /dev/null
@@ -1,22 +0,0 @@
-Quintiq file version 2.0
-#parent: pHeader/bDownload
-Response OnClick () id:Response_pHeader_bDownload_OnClick
-{
- #keys: '[413988.0.1297973899]'
- CanBindMultiple: false
- DefinitionID: 'Responsedef_WebButton_OnClick'
- Precondition:
- [*
- return not isnull( MacroPlan );
- *]
- QuillAction
- {
- Body:
- [*
- binaryValue := OfflinePlanCell::Download( MacroPlan );
-
- Application.Download( "Offline plan.xlsx", binaryValue.AsBinaryData() );
- *]
- GroupServerCalls: false
- }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/_ROOT_Component_FormOfflinePlan.def b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/_ROOT_Component_FormOfflinePlan.def
index be8fe4d..8d1b9fc 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/_ROOT_Component_FormOfflinePlan.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/_ROOT_Component_FormOfflinePlan.def
@@ -7,8 +7,8 @@
BaseType: 'WebForm'
Children:
[
- #child: pHeader
#child: pContent
+ #child: pHeader
]
Properties:
[
diff --git a/_Main/UI/MacroPlannerWebApp/Views/Change_loss_setting_view.vw b/_Main/UI/MacroPlannerWebApp/Views/Change_loss_setting_view.vw
index d72a303..3bafc0d 100644
--- a/_Main/UI/MacroPlannerWebApp/Views/Change_loss_setting_view.vw
+++ b/_Main/UI/MacroPlannerWebApp/Views/Change_loss_setting_view.vw
@@ -78,14 +78,14 @@
subtotals: ''
width: 150
}
- column_ChangeLossNr
+ column_ChangeLossNumber
{
- columnId: 'ChangeLossNr'
- dataPath: 'ChangeLossNr'
- dataType: 'number'
+ columnId: 'ChangeLossNumber'
+ dataPath: 'ChangeLossNumber'
+ dataType: 'real'
index: 5
subtotals: ''
- width: 150
+ width: 183
}
}
}
diff --git a/_Main/metadata.properties b/_Main/metadata.properties
index 6123311..14be557 100644
--- a/_Main/metadata.properties
+++ b/_Main/metadata.properties
@@ -1,6 +1,6 @@
component=submodel
kind=Quintiq Metadata File
name=MacroPlanner
-version.component=2022.3.0.0
+version.component=2022.3.0.56
version.fileformat=2
version.quintiq=6.3.3.0 , build 248673
--
Gitblit v1.9.3