From 1b0f461e0db93c3f504b8be975a5b7ffddbcc584 Mon Sep 17 00:00:00 2001
From: Tianma21 <Administrator@TOTDQAE01.tianmame.cn>
Date: 星期日, 08 十月 2023 13:47:22 +0800
Subject: [PATCH] Merge branch 'dev' of http://47.101.211.7:10101/r/TIANMA_JITUAN into dev
---
_Main/BL/Type_CapacityAndSaleBudgeFilterYear/StaticMethod_Initial.qbl | 2
_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/_ROOT_Component_DialogEditCustomerOrderPriority.def | 32
_Main/BL/Type_PriorityFactor/StaticMethod_GetCoeffcientByName.qbl | 2
_Main/BL/Type_YuxTest/Attribute_TestString.qbl | 7
_Main/BL/Type_OrganCode/_ROOT_Type_OrganCode.qbl | 10
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_OnOk.def | 7
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_OperationCost.qbl | 13
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_PanelInterfaceTest_ButtonSynchronizeDataToMacroPlan_OnClick.def | 24
_Main/BL/Type_Global_MappingUnitOfMeasure_MP/StaticMethod_SynchronizeInterfaceData.qbl | 18
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterMonth/Component_ListCapacityAndSaleBudgeFilterMonth.def | 4
_Main/BL/Type_Global_ShowCell/Attribute_Value.qbl | 7
_Main/BL/Type_CapacityAndSaleBudgeChartRow/StaticMethod_CreateIfNotExist.qbl | 6
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Response_pnlActions_btnOk_OnClick.def | 11
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterItem/Component_ListCapacityAndSaleBudgeFilterItem.def | 4
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_OnClick#106.def | 0
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_CustomOrder.qbl | 13
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_UnitOfMeasure_MP.qbl | 13
_Main/BL/Type_Global_ShowColumn/Attribute_ColumnName.qbl | 7
_Main/UI/MacroPlannerWebApp/Views/Test.vw | 794 ++++
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DataHolderPriorityFactorBusinessType_OnCreated.def | 21
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/_ROOT_Component_FormPriorityPolicy.def | 79
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterYear/Component_ListCapacityAndSaleBudgeFilterYear.def | 4
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_ListInterfaceTest_MenuDelete_OnClick.def | 18
_Main/BL/Type_Global_BrokerExecuteLog/StaticMethod_CreateInOperation.qbl | 16
_Main/BL/Type_FilllingCapacityOrderScheme/StaticMethod_CreateFillingCapacityOrderScheme.qbl | 51
_Main/BL/Type_Global_MappingProduct_MP/Attribute_BOMCount.qbl | 8
_Main/BL/Type_CustomerOrder/Attribute_BusinessType.qbl | 8
_Main/BL/Type_MacroPlan/Method_MappingSalesSegmentData.qbl | 5
_Main/UI/MacroPlannerWebApp/Component_DialogFillingCustomerAndForecast/Component_pnlContent.def | 2
_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Component_PanelFillingCapacityOrder.def | 26
_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Response_pnlActions_btnOk_OnClick.def | 50
_Main/UI/MacroPlannerWebApp/Component_DialogNewPriorityPolicy/Method_Edit.def | 15
_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Component_pnlContent.def | 33
_Main/BL/Type_FillingCapacityOrder/Attribute_State.qbl | 8
_Main/BL/Type_Global_MappingCustomOrder/Attribute_ProductGrade.qbl | 7
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_Operation.qbl | 13
_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlActions_btnCancel_OnClick.def | 15
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_CustomerGrade.qbl | 9
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_Product_MP.qbl | 13
_Main/BL/Type_MacroPlan/Method_MappingCustomerOrderData.qbl | 25
_Main/BL/Type_Global_ShowCell/StaticMethod_SetColumnsAndRows.qbl | 16
_Main/BL/Type_GlobalDTOTable/_ROOT_Type_GlobalOTDTable.qbl | 12
_Main/BL/Type_Global_MappingCustomerGrade/Attribute_CustomerGrade.qbl | 9
_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Component_listContextMenuCustomerAndFillingCapacityOrder.def | 33
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyCoefficient#902.def | 2
_Main/BL/Type_Global_MappingDOI_DSI/Attribute_OrganCode.qbl | 9
_Main/BL/Type_BusinessType/Attribute_DisplayType.qbl | 8
_Main/BL/Type_Global_MappingProduct_MP/Method_SetIsLinkedWithFinishedGoodAttributes_Recursive.qbl | 91
_Main/BL/Type_CapacityAndSaleBudgeFilterPlaceOfProductionOfArray/StaticMethod_CreateIfNotExist.qbl | 2
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Response_pnlActions_btnOk_OnClick.def | 2
_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Method_Edit.def | 15
_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_List832_OnDoubleClick.def | 5
_Main/UI/MacroPlannerWebApp/Component_DialogBusinessType/Method_ClickBtnOk.def | 7
_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_ListSalesDemands.def | 4
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Method_New.def | 18
_Main/BL/Type_Global_MappingOperationBOM/StaticMethod_SynchronizeInterfaceData.qbl | 18
_Main/BL/Type_Global_MappingLane/StaticMethod_CreateByAPI.qbl | 17
_Main/BL/Relations/Relation_CapacityAndSaleBudgeCompareItemRow_GlobalOTDTable_GlobalOTDTable_Ca.qbl | 23
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_listActionBarPageInterfaceTest.def | 10
_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Method_New.def | 6
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnSelectionChanged.def | 1
_Main/BL/Type_Global_MappingCustomOrder/Attribute_OrderType#905.qbl | 7
_Main/BL/Type_MacroPlan/Method_MappingProductData.qbl | 4
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupSalesViews#633.def | 11
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/_ROOT_Component_FormPriorityFactorGrading.def | 4
_Main/BL/Type_Global_ShowRow/_ROOT_Type_Global_ShowRow.qbl | 9
_Main/BL/Type_FillingCapacityOrder/TypeIndex_FillingCapacityOrderTypeIndex.qbl | 12
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_ConversionFactor.qbl | 13
_Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_CreateByAPI.qbl | 16
_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Component_pnlContent.def | 91
_Main/BL/Type_GlobalDTOTable/Method_SynchronizationAllMappingBrokerAndAPIByOption.qbl | 119
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuSalesFillingCapacity_MenuSalesFillingCapac.def | 5
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterItem/Response_OnCreated.def | 2
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Response_pnlContent_isRange_OnChanged.def | 14
_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/_ROOT_Component_DialogOrganCode.def | 33
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenarioAndDoSync_OnClick#545.def | 2
_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listContextMenuBusinessType655.def | 12
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicyFactor_OnCreated.def | 18
_Main/BL/Type_Global_BrokerExecuteLog/StaticMethod_CanRun.qbl | 16
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_OperationBOM.qbl | 13
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_SalesSegment_MP.qbl | 13
_Main/BL/Type_Global_MappingDOI_DSI/Attribute_ProductID.qbl | 9
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicy_OnDataChanged.def | 8
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_InitialForcastDataEx.qbl | 13
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_ListInterfaceTest_MenuCreateShowData_OnClick.def | 23
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_OperationCost.qbl | 13
_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Method_CalculatePriorityResult.def | 13
_Main/BL/Type_Global_MappingConversionFactor/StaticMethod_SynchronizeInterfaceData.qbl | 18
_Main/BL/Type_YuxTest/Attribute_TestDateTime.qbl | 7
_Main/BL/Type_CustomerAndForecastOrder/Attribute_ForecastID.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyOperationButton#713.def | 4
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption4.def | 65
_Main/BL/Type_CustomerAndForecastOrder/StaticMethod_CreateData.qbl | 22
_Main/UI/MacroPlannerWebApp/Views/PriorityTest.vw | 2745 ++++++++++++++
_Main/BL/Type_GlobalDTOTable/Method_SetIsLinkedWithFinishedGoodAttributes.qbl | 45
_Main/BL/Type_CapacityAndSaleBudgeCompareItemColumn/StaticMethod_CreateIfNotExist.qbl | 6
_Main/BL/Type_MacroPlan/Method_MappingForecastData.qbl | 8
_Main/BL/Type_MacroPlan/Method_MappingOperationBOMData.qbl | 79
_Main/BL/Type_FilllingCapacityOrderScheme/StaticMethod_DeleteDetails.qbl | 19
_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_listContextMenuSD.def | 27
_Main/BL/Type_Global_MappingCustomerGrade/Attribute_Customer.qbl | 9
_Main/BL/Type_Global_MappingDOI_DSI/Attribute_DOI.qbl | 8
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_StockingPointCost.qbl | 13
_Main/BL/Type_Global_MappingDOI_DSI/StaticMethod_SynchronizeInterfaceData.qbl | 18
_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Component_pnlActions.def | 40
_Main/BL/Relations/Relation_CapacityAndSaleBudgeCompareItemColumn_GlobalOTDTable_GlobalOTDTable.qbl | 24
_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/_ROOT_Component_FormFillingCapacityOrder.def | 1
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterYear/Response_OnCreated.def | 2
_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/Component_matrixeditorContextMenuShowInterfaceData.def | 10
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_OnSelectionChanged.def | 20
_Main/BL/Relations/Relation_YuxTest_MPSync_MPSync_YuxTest.qbl | 23
_Main/BL/Relations/Relation_Global_ShowColumn_Global_ShowCell_Global_ShowCell_Global_ShowColumn.qbl | 23
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Component_pnlContent.def | 27
_Main/BL/InfoMessages.qbl | 6
_Main/BL/Type_MacroPlan/Method_MappingExternalSupplyData.qbl | 10
_Main/BL/EDI/Broker_GlobalOTDTable_CustomOrder.qbl | 29
_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listContextMenuBusinessType.def | 35
_Main/BL/Type_Global_MappingDOI_DSI/TypeIndex_Global_MappingDOI_DSITypeIndex.qbl | 16
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_ProductInLane.qbl | 13
_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Response_pnlActions_btnOk_OnClick.def | 15
_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_ClickBtnOk.def | 19
_Main/BL/Type_CustomerOrder/Attribute_CustomerPolicy.qbl | 8
_Main/BL/Type_Scenario/Attribute_ScenarioName.qbl | 8
_Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl | 2
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption3.def | 65
_Main/BL/Relations/Relation_GlobalOTDTable_Global_ShowColumn_Global_ShowColumn_GlobalOTDTable.qbl | 23
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_ConversionFactor.qbl | 13
_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Response_TIANMA_JITUAN_ListSalesDemands_MenuPriorityResult_OnClick.def | 19
_Main/BL/Type_MacroPlan/Method_MappingActualPISPIPData.qbl | 9
_Main/BL/Type_PriorityPolicy/StaticMethod_GetCalcStr.qbl | 94
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicyBusinessType_OnCreated.def | 18
_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Component_PanelButton.def | 26
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Response_pnlActions_btnOk_OnClick.def | 10
_Main/BL/Type_LibSOPImpExp_ExportExcel/_ROOT_Type_LibSOPImpExp_ExportExcel.qbl | 6
_Main/BL/Type_PriorityPolicy/StaticMethod_GetCalcFormula.qbl | 22
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_ButtonExportTest_OnClick.def | 21
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/_ROOT_Component_FormInterfaceTest.def | 22
_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListOrganCode_MenuEdit526_OnClick.def | 20
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_OnCreated.def | 2
_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Component_pnlActions.def | 50
_Main/BL/Type_Global_BrokerExecuteLog/Attribute_ExecuteUser.qbl | 8
_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Response_ListCustomerAndFillingCapacityOrder_MenuSelectAll_OnClick.def | 17
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_StockingPointCost.qbl | 13
_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_New.def | 15
_Main/BL/Type_CustomerOrder/StaticMethod_CreateOrUpdate.qbl | 2
_Main/UI/MacroPlannerWebApp/Component_Form367/Component_ListBusinessType.def | 2
_Main/Sys/ImgAttr/Global_BrokerExecuteLog.dme | 25
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_CustomerGrade.qbl | 6
_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Component_ListFillingCapacityOrder.def | 2
_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlActions_btnOk_OnClick.def | 18
_Main/BL/Type_PriorityFactor/StaticMethod_CheckNameValid.qbl | 29
_Main/BL/Type_Global_MappingCustomOrder/Attribute_OrderTime.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_abgInterfaceTest_btnInterfaceTest_OnClick.def | 16
_Main/BL/Type_PriorityFactor/StaticMethod_InitData.qbl | 52
LibMacroPlanner/BL/Relations/Relation_MPSync_ImportExcel_ImportExcel_MPSync.qbl | 2
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceGlobal_BrokerExecuteLog#981.def | 14
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterMonth/Response_OnCreated.def | 2
_Main/BL/Type_CapacityAndSaleBudgeFilterMonth/StaticMethod_Initial.qbl | 2
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_ListPriorityPolicy.def | 4
_Main/BL/Type_ImportExcel/Method_Execute.qbl | 43
_Main/BL/Type_Routing/Method_GetHasTianmaNonSupplierOperationWithNoInput.qbl | 28
_Main/BL/Type_PriorityPolicy/StaticMethod_RollBackStr.qbl | 4
_Main/BL/Type_GlobalDTOTable/StaticMethod_SynchronizationAllMappingBrokerAndAPI.qbl | 40
_Main/BL/Relations/Relation_CapacityAndSaleBudgeChartRow_GlobalOTDTable_GlobalOTDTable_Capacity.qbl | 23
_Main/BL/Type_CapacityAndSaleBudgeChartElement/StaticMethod_TestData.qbl | 6
_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_ListIssueWorkOrder_MenuEdit_OnClick.def | 12
_Main/BL/Type_CustomerOrder/Attribute_OrderTime.qbl | 8
_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Component_pnlActions.def | 40
_Main/UI/MacroPlannerWebApp/Views/FillingCapacityOrder.vw | 4
_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Method_ClickBtnOk.def | 4
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnCreated.def | 7
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_ListInterfaceTest_MenuSelectionAll_OnClick.def | 17
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_AIPISPIP.qbl | 13
_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Response_pnlActions_btnCancel_OnClick.def | 15
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_UnitOfMeasure_MP.qbl | 13
_Main/BL/Type_GlobalDTOTable/Method_CapacityAndSaleBudgeCompare.qbl | 212 +
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Material/Response_OnCreated.def | 3
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_InventorySupply.qbl | 13
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_Forecast.qbl | 13
_Main/UI/MacroPlannerWebApp/Component_Form367/_ROOT_Component_FormBusinessType#367.def | 3
_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/_ROOT_Component_FormCustomerAndForecastOrder.def | 1
_Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_CreateByAPI.qbl | 16
_Main/BL/Relations/Relation_Global_MappingCustomerGrade_GlobalOTDTable_GlobalOTDTable_Global_Ma.qbl | 23
_Main/BL/Type_GlobalDTOTable/Method_Test.qbl | 9
_Main/BL/Type_ScenarioManager/Method_ImportExcels_Tianma.qbl | 29
_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Response_pnlActions_btnCancel_OnClick.def | 15
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceTest.def | 37
_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Component_pnlContent.def | 26
_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/Component_matrixEditorActionBarPageShowInterfaceData.def | 10
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray/Component_ListCapacityAndSaleBudgeFilterPlaceOfProductionOfArray.def | 4
_Main/UI/MacroPlannerWebApp/Component_Form367/Component_ListOrganCode.def | 62
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Component_ListCapacityAndSaleBudge.def | 2
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_PanelInterfaceTest_ButtonPullInterfaceDataToIntermediateTable_OnCli.def | 42
_Main/BL/Type_BusinessType/StaticMethod_GetScenarioNamesStr.qbl | 31
_Main/BL/Type_BusinessType/Attribute_BusinessTypeName.qbl | 1
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DataHolderPriorityFactorBusinessType_OnDataChanged.def | 22
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterBusinessType/Component_ListCapacityAndSaleBudgeFilterBusinessType.def | 4
_Main/BL/Type_GlobalDTOTable/Method_SynchronizeDataToMacroPlan#127.qbl | 14
_Main/BL/Type_Global_MappingUnitOfMeasure_MP/StaticMethod_SynchronizeMacroPlanData.qbl | 31
_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Response_ListCustomerAndFillingCapacityOrder_MenuDelete_OnClick.def | 18
_Main/BL/Type_Global_MappingOperationBOM/Attribute_IsLinkedWithFinishedGood.qbl | 8
_Main/BL/EDI/Broker_GlobalOTDTable_CustomerGrade.qbl | 64
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_OperationBOM.qbl | 13
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuSalesFillingCapacity_MenuSalesFillingS#360.def | 3
_Main/BL/Relations/Relation_Global_ShowRow_Global_ShowCell_Global_ShowCell_Global_ShowRow.qbl | 23
LibMacroPlannerOptimizer/BL/Type_CapacityPlanningSuboptimizer/Method_CapacityPlanningAlgorithmHandleFeasibleOperationDependentDemandInputG.qbl | 39
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_Operation.qbl | 13
_Main/BL/Type_CapacityAndSaleBudgeFilterBusinessType/StaticMethod_CreateIfNotExist.qbl | 2
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ContextMenuSalesFillingCapacity.def | 4
_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Response_PanelButton_ButtonTransform_OnClick.def | 20
_Main/BL/Relations/Relation_GlobalOTDTable_Global_ShowRow_Global_ShowRow_GlobalOTDTable.qbl | 23
_Main/BL/Type_YuxTest/StaticMethod_Export.qbl | 85
LibSOPImportExport/BL/Type_LibSOPImpExp_ImportExcel/Method_CanImport#382.qbl | 4
_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_ListIssueWorkOrder.def | 2
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/_ROOT_Component_FormCapacityAndSaleBudge.def | 12
_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Component_listContextMenuFillingCapacityOrder.def | 1
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicy_OnCreated.def | 19
_Main/UI/MacroPlannerWebApp/Component_FormFillingScheme/Response_ListFillingScheme_MenuDelete_OnClick.def | 3
_Main/BL/Type_Global_ShowRow/Attribute_RowNr.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption1.def | 65
_Main/BL/Type_PriorityPolicy/StaticMethod_RollBackCalcStr.qbl | 44
LibMacroPlannerOptimizer/BL/Type_SelectorFullPuzzle/Method_SetOptimizerInput.qbl | 4
_Main/BL/Type_Global_MappingCustomerGrade/TypeIndex_Global_MappingCustomerGradeTypeIndex.qbl | 20
_Main/BL/Type_BusinessType/Attribute_ScenarioName.qbl | 8
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonAddPriorityPolicy_OnClick.def | 6
_Main/BL/Type_CustomerAndForecastOrder/Attribute_CustomerOrderID.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Component_pnlContent.def | 211
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_DOI_DSI.qbl | 6
_Main/BL/Type_Global_MappingProductInLane/StaticMethod_SynchronizeInterfaceData.qbl | 18
_Main/BL/Type_GlobalDTOTable/Method_SettingSuccessfulDetails.qbl | 20
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_Forecast.qbl | 13
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_ListInterfaceTest.def | 59
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/_ROOT_Component_FormPriorityFactor.def | 30
_Main/BL/Type_BusinessType/StaticMethod_CreateData.qbl | 1
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel351_btn_Add_Material_FOF503_OnClick#222.def | 4
_Main/BL/Type_CustomerAndForecastOrder/StaticMethod_RefreshData.qbl | 56
_Main/BL/Type_MacroPlan/Method_MappingUnitData.qbl | 4
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenario_OnClick#549.def | 2
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetMaterialData.qbl | 11
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicyBusinessType_OnDataChanged.def | 18
_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlContent_DataHolderChoosePriorityPolicy_OnDataChanged.def | 18
_Main/BL/Type_Global_MappingCustomOrder/Attribute_SheetProfitability.qbl | 7
_Main/BL/Type_Global_MappingProduct_MP/StaticMethod_SynchronizeInterfaceData.qbl | 18
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterBusinessType/Response_listContextMenuCapacityAndSaleBudgeFilterYear_1_MenuRefresh_OnClick.def | 2
_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/StaticMethod_SynchronizeInterfaceData.qbl | 18
_Main/BL/Type_Global_MappingCustomerGrade/StaticMethod_SynchronizeInterfaceData.qbl | 18
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_SalesSegment_MP.qbl | 13
_Main/UI/MacroPlannerWebApp/Component_Form367/Component_PanelBusinessType.def | 14
_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Component_mbMainMenu.def | 5
_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlContent_DataHolderChoosePriorityPolicy_OnCreated.def | 18
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Response_pnlContent_isRange_OnCreated.def | 30
_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Method_EditCustomerOrderPriority.def | 17
_Main/BL/Type_GlobalDTOTable/Method_SettingFailureDetails.qbl | 23
_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listActionBarPageOrganCode.def | 10
_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Method_OpenChoose.def | 10
LibSOPImportExport/metadata.properties | 2
_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_Edit.def | 17
_Main/BL/Type_MacroPlan/Method_MappingOperationCostData.qbl | 8
_Main/BL/Type_Global_ShowColumn/_ROOT_Type_Global_ShowColumn.qbl | 9
_Main/BL/Type_PriorityFactor/Attribute_ReflectionType.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuSalesFillingCapacity_MenuSalesFillingSchem.def | 3
_Main/BL/Type_CapacityAndSaleBudgeFilterItem/StaticMethod_Initial.qbl | 2
_Main/BL/Type_OrganCode/Attribute_OrganCodeName.qbl | 8
_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListOrganCode_MenuDelete267_OnClick.def | 19
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_abgInterfaceTest.def | 24
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_listContextMenuPriorityFactor.def | 44
_Main/BL/KnowledgeBaseDomain_MacroPlanner/KnowledgeBase_Knowledge_MP/_ROOT_KnowledgeBase_Knowledge_MP.qbl | 6
_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_Panel418_btn_Add_FM_OnClick#975.def | 3
_Main/BL/Type_PriorityResult/StaticMethod_CalculateScore.qbl | 87
_Main/UI/MacroPlannerWebApp/Component_FormFillingScheme/Response_ListFillingScheme_OnSelectionChanged.def | 20
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuEdit_OnClick.def | 15
_Main/BL/Relations/Relation_OrganCode_BusinessType_BusinessType_OrganCode.qbl | 23
_Main/BL/Type_Global_MappingDOI_DSI/_ROOT_Type_Global_MappingDOI_DSI.qbl | 9
_Main/BL/Type_Global_MappingStockingPointCost/StaticMethod_SynchronizeInterfaceData.qbl | 18
_Main/BL/Type_Global_MappingUnitCost/StaticMethod_SynchronizeInterfaceData.qbl | 18
_var/_Main/ProjSettings/MacroPlannerWebApp/Views/FillingCapacityOrderHistorical.vw | 14
_Main/BL/Type_Global_ShowColumn/StaticMethod_CreateColumn.qbl | 15
_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Response_pnlActions_btnOk_OnClick.def | 15
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel351_btn_Add_Order_FOF449_OnClick#880.def | 3
_Main/BL/Type_PriorityResult/StaticMethod_calculatePriorityResult.qbl | 95
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuDelete_OnClick.def | 1
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_DropDownStringList_OnSelectionCh.def | 2
_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterBusinessType_GlobalOTDTable_GlobalOTDTabl.qbl | 23
_Main/BL/Type_MPSync/Method_RefreshCapacityAndSaleBudgeFilter.qbl | 8
_Main/BL/Type_CapacityAllocationResults/StaticMethod_IterativeGeneration2.qbl | 23
_Main/BL/Type_GlobalDTOTable/Method_CapacityAndSaleBudgeChart.qbl | 0
_Main/BL/Type_Global_MappingCurrency_MP/StaticMethod_CreateByAPI.qbl | 16
LibSOPImportExport/BL/Type_LibSOPImpExp_DataSource/Method_HasAllRequiredFilesForImport.qbl | 4
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_CustomOrder.qbl | 13
_Main/BL/Type_Global_BrokerExecuteLog/Attribute_ExecutionStatus.qbl | 13
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Response_ButtonCapacityAndSaleBudgeCompare_OnClick.def | 14
_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_SynchronizeInterfaceData.qbl | 18
_Main/BL/Type_YuxTest/_ROOT_Type_YuxTest.qbl | 9
_Main/BL/Type_GlobalDTOTable/Method_CapacityAndSaleBudgeCompareExport.qbl | 42
_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_ExportTheFileStream.qbl | 2
_Main/BL/Type_PriorityResult/StaticMethod_GetDetailsValue.qbl | 124
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DataHolderPriorityFactorSelect_OnDataChanged.def | 17
_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterPlaceOfProductionOfArray_GlobalOTDTable_G.qbl | 23
_Main/BL/Type_MPSync/Method_ImportExcels_Tianma.qbl | 22
_Main/BL/Type_CapacityAndSaleBudgeCompareItemRow/StaticMethod_CreateIfNotExist.qbl | 6
_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/_ROOT_Component_FormShowInterfaceData.def | 17
_Main/BL/Type_YuxTest/Attribute_TestReal.qbl | 7
_Main/BL/Type_ImportExcel/_ROOT_Type_ImportExcel.qbl | 6
_Main/BL/Type_Global_MappingLaneLeg/StaticMethod_CreateByAPI.qbl | 16
_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Response_TIANMA_JITUAN_mbMainMenu_MenuGlobalOTDTableTest_OnClick.def | 12
_Main/BL/Type_CustomerOrder/Attribute_OrderType.qbl | 8
_Main/BL/Type_PriorityResult/StaticMethod_CalculateBracketScore.qbl | 19
_Main/BL/Type_FillingCapacityOrder/Attribute_ID.qbl | 8
_Main/BL/Type_PriorityFactorDetails/StaticMethod_InitData.qbl | 111
_Main/BL/Type_MacroPlan/Method_ImportExcels_Tianma.qbl | 47
_Main/BL/Type_CustomerOrder/Attribute_IsAvailable.qbl | 8
_Main/BL/Type_YuxTest/Attribute_TestDate.qbl | 7
_Main/BL/Type_Global_MappingOperation/StaticMethod_SynchronizeInterfaceData.qbl | 18
_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Response_ListCustomerAndFillingCapacityOrder_MenuRefresh_OnClick.def | 17
_Main/BL/Type_PriorityFactor/StaticMethod_GetNameList.qbl | 1
_Main/BL/Type_YuxTest/StaticMethod_ExportTest#887.qbl | 26
_Main/BL/Type_ProductInStockingPointInPeriodPlanningLeaf/FunctionOverride_CalcStockLevelInDays.qbl | 79
_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterMonth_GlobalOTDTable_GlobalOTDTable_Capac.qbl | 23
_Main/BL/Type_PriorityFactor/Attribute_ReflectionAttribute.qbl | 7
_Main/BL/Type_YuxTest/Attribute_TestNumber.qbl | 7
_Main/BL/Relations/Relation_CapacityAndSaleBudgeChartElement_GlobalOTDTable_GlobalOTDTable_Capa.qbl | 23
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_AIPISPIP.qbl | 13
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenarioAndDoSync_OnClick.def | 2
_Main/BL/Type_Global_ShowCell/StaticMethod_CreateShowData_CustomOrder.qbl | 58
_Main/BL/Type_Global_MappingProduct_MP/Attribute_IsLinkedWithFinishedGood.qbl | 8
_Main/BL/EDI/Broker_GlobalOTDTable_DOI_DSI.qbl | 71
_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Response_pnlActions_btnApply_OnClick.def | 19
_Main/BL/Type_Global_ShowCell/_ROOT_Type_Global_ShowCell.qbl | 9
_Main/BL/Type_ProductInStockingPointInPeriodPlanningLeaf/_ROOT_Type_ProductInStockingPointInPeriodPlanningLeaf.qbl | 6
_Main/BL/Type_Global_ShowCell/StaticMethod_ShowData.qbl | 14
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuInit_OnClick.def | 18
_Main/UI/MacroPlannerWebApp/Views/PriorityResults.vw | 4
_Main/BL/Type_Global_MappingOperation/Attribute_IsLinkedWithFinishedGood.qbl | 8
LibMacroPlanner/BL/Type_UnitPeriodTimeBase/Function_CalcTotalAvailableCapacity.qbl | 3
_Main/BL/Type_Global_ShowColumn/Attribute_ColumnIndex.qbl | 7
_Main/BL/Type_GlobalDTOTable/Method_CapacityAndSaleBudgeChart#156.qbl | 301 +
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_DropDownStringList_OnCreated.def | 17
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_Panel351.def | 25
_Main/BL/Type_Global_MappingCustomerGrade/_ROOT_Type_Global_MappingCustomerGrade.qbl | 9
_Main/BL/Type_CapacityAllocationResults/StaticMethod_CreateDate.qbl | 2
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Response_ButtonCapacityAndSaleBudgeChartTest_OnClick.def | 24
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_listContextMenuInterfaceTest.def | 47
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ActionBarGroupSalesViews_ButtonPriority_OnClick.def | 16
_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/_ROOT_Component_FormPriorityResult.def | 4
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_Product_MP.qbl | 13
_Main/BL/Type_CustomerOrder/Attribute_SheetProfitability.qbl | 8
_Main/BL/Relations/Relation_GlobalOTDTable_Global_ShowCell_Global_ShowCell_GlobalOTDTable.qbl | 23
_Main/BL/Type_FillingCapacityOrder/Attribute_OrderType.qbl | 1
_Main/BL/Type_Routing/Method_DoSanityCheckData.qbl | 20
_Main/BL/Relations/Relation_Global_MappingDOI_DSI_GlobalOTDTable_GlobalOTDTable_Global_MappingD.qbl | 23
_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/Component_MatrixEditorShowInterfaceData.def | 97
_Main/UI/MacroPlannerWebApp/Views/Business_Type_Maintain.vw | 351 +
_Main/BL/Type_CustomerOrder/Attribute_SegmentPriority.qbl | 8
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray/Response_listContextMenuCapacityAndSaleBudgeFilterYear_1_MenuRefresh_OnC#663.def | 2
_Main/BL/Type_Global_MappingCustomOrder/Attribute_SegmentPriority.qbl | 7
_Main/UI/MacroPlannerWebApp/Views/接口测试.vw | 223 +
_Main/BL/Type_MacroPlan/Method_MappingOperationData.qbl | 4
_Main/UI/MacroPlannerWebApp/Views/FillingCapacityOrderHistorical.vw | 2
_Main/BL/Type_YuxTest/Attribute_TestBoolean.qbl | 7
_Main/BL/Type_MappingSaleBudge/StaticMethod_Export.qbl | 2
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetBOMBySKU.qbl | 10
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyOperation.def | 2
_Main/BL/Type_Global_MappingSalesSegment_MP/StaticMethod_SynchronizeInterfaceData.qbl | 18
_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterItem_GlobalOTDTable_GlobalOTDTable_Capaci.qbl | 23
LibSOPImportExport/BL/Type_LibSOPImpExp_DataSource/Method_HasAllRequiredFilesForImport#522.qbl | 5
_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterYear_GlobalOTDTable_GlobalOTDTable_Capaci.qbl | 23
_Main/BL/Type_Global_MappingInventorySupply/StaticMethod_SynchronizeInterfaceData.qbl | 18
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_InventorySupply.qbl | 13
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_DOI_DSI.qbl | 9
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetProductInfo#1.qbl | 8
_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/_ROOT_Component_DialogChoosePriorityPolicy.def | 22
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_OnUserSelectionChanged.def | 6
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_liH_Forecast_OnDoubleClick.def | 4
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuDel_OnClick.def | 19
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Component_ChartCapacityAndSaleBudgeChart.def | 4
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Response_ButtonExportCompare_OnClick.def | 2
_Main/BL/Type_ScenarioManager/StaticMethod_AvailableScenarioNames.qbl | 23
_Main/BL/Type_PriorityResult/StaticMethod_GetRemindFormula.qbl | 32
_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Method_ClickBynOk.def | 17
_Main/BL/Type_PriorityResult/Attribute_CustomerOrderID.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListBusinessType_MenuNewOrganCode_OnClick.def | 20
_Main/BL/Type_Global_MappingDOI_DSI/Attribute_DSI.qbl | 8
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Component_PanelGeneral#549.def | 4
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonRollBack_OnClick.def | 2
_Main/BL/Type_CapacityAndSaleBudgeFilterItem/StaticMethod_CreateIfNotExist.qbl | 2
_Main/BL/Type_CustomerOrder/Attribute_ProductGrade.qbl | 8
_Main/BL/Type_MPSync/Method_RefreshCapacityAndSaleBudgeFilter0.qbl | 16
_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Response_TIANMA_JITUAN_ListSalesDemands_MenuEditCustomerOrderPriority_OnClic.def | 21
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Component_MatrixEditorCapacityAndSaleBudgeCompare.def | 12
_Main/BL/Type_Global_MappingCustomerGrade/Attribute_BusinessType.qbl | 9
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenario_OnClick.def | 2
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuEdit_OnClick.def | 2
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuNew_OnClick.def | 19
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption2#456.def | 65
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_applicationDevelopmentActionBarPageDef#1.def | 1
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PriorityPolicyBusinessType_OnSelectionChanged.def | 2
_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Component_ListCustomerAndFillingCapacityOrder.def | 2
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicyFactor_OnDataChanged.def | 18
/dev/null | 12
_Main/BL/Type_LibSOPImpExp_ExportExcel/StaticMethod_IsDataSourceIncluded_Tianma.qbl | 10
_Main/UI/MacroPlannerWebApp/Component_DialogBusinessType/Component_pnlContent.def | 27
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PriorityPolicyBusinessType_OnCreated.def | 5
_Main/BL/Type_Global_MappingForecast/StaticMethod_SynchronizeInterfaceData.qbl | 18
403 files changed, 10,997 insertions(+), 739 deletions(-)
diff --git a/LibMacroPlanner/BL/Relations/Relation_MPSync_ImportExcel_ImportExcel_MPSync.qbl b/LibMacroPlanner/BL/Relations/Relation_MPSync_ImportExcel_ImportExcel_MPSync.qbl
index 9f508eb..c429f65 100644
--- a/LibMacroPlanner/BL/Relations/Relation_MPSync_ImportExcel_ImportExcel_MPSync.qbl
+++ b/LibMacroPlanner/BL/Relations/Relation_MPSync_ImportExcel_ImportExcel_MPSync.qbl
@@ -12,7 +12,6 @@
Cardinality: '1toN'
ObjectDefinition: MPSync
OwningSide: 'Owned'
- InterfaceProperties { Accessibility: 'Module' }
}
RelationSide.RightSide MPSync
{
@@ -20,6 +19,5 @@
Cardinality: '0to1'
ObjectDefinition: ImportExcel
OwningSide: 'Reference'
- InterfaceProperties { Accessibility: 'Module' }
}
}
diff --git a/LibMacroPlanner/BL/Type_UnitPeriodTimeBase/Function_CalcTotalAvailableCapacity.qbl b/LibMacroPlanner/BL/Type_UnitPeriodTimeBase/Function_CalcTotalAvailableCapacity.qbl
index 7b7de81..704abc5 100644
--- a/LibMacroPlanner/BL/Type_UnitPeriodTimeBase/Function_CalcTotalAvailableCapacity.qbl
+++ b/LibMacroPlanner/BL/Type_UnitPeriodTimeBase/Function_CalcTotalAvailableCapacity.qbl
@@ -16,7 +16,8 @@
if( not isnull( planningup ) )
{
- value := planningup.BaseAvailableCapacity().HoursAsReal() * planningup.MaximumLoadPercentage() / 100;
+ value := planningup.BaseAvailableCapacity().HoursAsReal() * planningup.MaximumLoadPercentage() / 100
+ * this.PlanningSystemRatio(); // Tianma fix 20230926
}
}
else
diff --git a/LibMacroPlannerOptimizer/BL/Type_CapacityPlanningSuboptimizer/Method_CapacityPlanningAlgorithmHandleFeasibleOperationDependentDemandInputG.qbl b/LibMacroPlannerOptimizer/BL/Type_CapacityPlanningSuboptimizer/Method_CapacityPlanningAlgorithmHandleFeasibleOperationDependentDemandInputG.qbl
index dcaa2a7..48ca380 100644
--- a/LibMacroPlannerOptimizer/BL/Type_CapacityPlanningSuboptimizer/Method_CapacityPlanningAlgorithmHandleFeasibleOperationDependentDemandInputG.qbl
+++ b/LibMacroPlannerOptimizer/BL/Type_CapacityPlanningSuboptimizer/Method_CapacityPlanningAlgorithmHandleFeasibleOperationDependentDemandInputG.qbl
@@ -9,7 +9,6 @@
Description: 'Assign the optimal quantity from optimizer for dependent demand in input group.'
TextBody:
[*
- // Tianma fix 20230727
// Dependent demand of input group fulfillment
ptperiod := periodtaskoperation.UnitPeriod().Period_MP();
operation := periodtaskoperation.Operation();
@@ -19,22 +18,24 @@
dd,
dd.HasRegularProductForOptimizer() or dd.OperationInput().GetIsProductInOptimizerRun( runcontext.IsPostProcessing() ) )
{
- pispipperiods := construct( Period_MPs, constcontent );
- if ( getfromperiodtask ) // in case we are able to get from period tasks, below method refinds periodtask for (operation, ptperiod) i.e. periodtaskoperation and then output dep.demand periods
- {
- traverse( periodtaskoperation, DependentDemand.ProductInStockingPointInPeriodPlanningLeaf.Period_MP, ddperiod )
- {
- pispipperiods.Add( ddperiod );
- }
- }
- else
- {
- CapacityPlanningSuboptimizer::GetOperationDependentDemandPeriods( ptperiod, operation, &pispipperiods, getfromperiodtask );
- }
+ fulfilledqty := 0.0;
- fulfilledqty := 0.0;
if( operation.HasLeadTime() ) // Get the dependent demands that is located at different period from the period of period task.
{
+ // compute dependent demand periods
+ pispipperiods := construct( Period_MPs, constcontent );
+ if ( getfromperiodtask ) // in case we are able to get from period tasks, below method refinds periodtask for (operation, ptperiod) i.e. periodtaskoperation and then output dep.demand periods
+ {
+ traverse( periodtaskoperation, DependentDemand.ProductInStockingPointInPeriodPlanningLeaf.Period_MP, ddperiod )
+ {
+ pispipperiods.Add( ddperiod );
+ }
+ }
+ else
+ {
+ CapacityPlanningSuboptimizer::GetOperationDependentDemandPeriods( ptperiod, operation, &pispipperiods, getfromperiodtask );
+ }
+
fulfilledqty := sum( pispipperiods, Elements, pispipperiod,
this.GetOptimalValue( program.PartialOperationDemandQtyVariables().Get( dd.OperationInput(), pispipperiod, ptperiod ) ) );
if ( runcontext.IsMetaIteration() and operation.IsBlending() ) // no filtering for numerical sensitive blending operation in meta optimizer
@@ -44,15 +45,15 @@
}
}
else
- {
- fulfilledqty := sum( pispipperiods, Elements, pispipperiod,
- this.GetOptimalValue( program.OperationDemandQtyVariables().Get( dd.OperationInput(), pispipperiod ) ) );
+ {
+ // note that in case there is no lead time then the set of dependent demand periods just equals the singleton set {ptperiod}
+ fulfilledqty := this.GetOptimalValue( program.OperationDemandQtyVariables().Get( dd.OperationInput(), ptperiod ) );
if( runcontext.IsMetaIteration() and operation.IsBlending() ) // no filtering for numerical sensitive blending operation in meta optimizer
{
- fulfilledqty := sum( pispipperiods, Elements, pispipperiod,
- this.GetOptimalValueUnfiltered( program.OperationDemandQtyVariables().Get( dd.OperationInput(), pispipperiod ) ) );
+ fulfilledqty := this.GetOptimalValueUnfiltered( program.OperationDemandQtyVariables().Get( dd.OperationInput(), ptperiod ) );
}
}
+
dd.OptimizerFulfilledQuantity( fulfilledqty );
}
*]
diff --git a/LibMacroPlannerOptimizer/BL/Type_SelectorFullPuzzle/Method_SetOptimizerInput.qbl b/LibMacroPlannerOptimizer/BL/Type_SelectorFullPuzzle/Method_SetOptimizerInput.qbl
index d9e0f40..c34a5c7 100644
--- a/LibMacroPlannerOptimizer/BL/Type_SelectorFullPuzzle/Method_SetOptimizerInput.qbl
+++ b/LibMacroPlannerOptimizer/BL/Type_SelectorFullPuzzle/Method_SetOptimizerInput.qbl
@@ -175,10 +175,12 @@
if ( ddperiodstotal.Size() > 0 )
{
+ minstart := min( ddperiodstotal, Elements, p, p.Start() );
+ minstartperiods := min( periods, Elements, p, p.Start() );
pispiptoadd := selectset( operation,
OperationInput.ProductInStockingPoint_MP.ProductInStockingPointInPeriodPlanning,
pispip,
- ddperiodstotal.Find( pispip.Period_MP() ) > 0
+ pispip.Start() >= minstart and pispip.Start() < minstartperiods // must add the entire block. Don't want gaps in the pispip horizon
and ( pispip.HasRegularProductForOptimizer() or pispip.GetProductIsIncludedInOptimizerRun( runcontext.IsPostProcessing() ) )
and not scope.Contains( pispip.PISPIPInOptimizerRun() ) )
diff --git "a/LibSOPImportExport/BL/Type_LibSOPImpExp_DataSource/Method_HasAllRequiredFilesForImport\043522.qbl" "b/LibSOPImportExport/BL/Type_LibSOPImpExp_DataSource/Method_HasAllRequiredFilesForImport\043522.qbl"
index 4ea6109..af8fd45 100644
--- "a/LibSOPImportExport/BL/Type_LibSOPImpExp_DataSource/Method_HasAllRequiredFilesForImport\043522.qbl"
+++ "b/LibSOPImportExport/BL/Type_LibSOPImpExp_DataSource/Method_HasAllRequiredFilesForImport\043522.qbl"
@@ -1,6 +1,9 @@
Quintiq file version 2.0
#parent: #root
-Method HasAllRequiredFilesForImport (output Strings missingFiles_o, Boolean needUserUploadAllFiles) as Boolean
+Method HasAllRequiredFilesForImport (
+ output Strings missingFiles_o,
+ Boolean needUserUploadAllFiles
+) remote as Boolean
{
TextBody:
[*
diff --git a/LibSOPImportExport/BL/Type_LibSOPImpExp_DataSource/Method_HasAllRequiredFilesForImport.qbl b/LibSOPImportExport/BL/Type_LibSOPImpExp_DataSource/Method_HasAllRequiredFilesForImport.qbl
index b8c6585..a6720f7 100644
--- a/LibSOPImportExport/BL/Type_LibSOPImpExp_DataSource/Method_HasAllRequiredFilesForImport.qbl
+++ b/LibSOPImportExport/BL/Type_LibSOPImpExp_DataSource/Method_HasAllRequiredFilesForImport.qbl
@@ -1,6 +1,8 @@
Quintiq file version 2.0
#parent: #root
-Method HasAllRequiredFilesForImport (output Strings missingFiles_o) as Boolean
+Method HasAllRequiredFilesForImport (
+ output Strings missingFiles_o
+) remote as Boolean
{
TextBody:
[*
diff --git "a/LibSOPImportExport/BL/Type_LibSOPImpExp_ImportExcel/Method_CanImport\043382.qbl" "b/LibSOPImportExport/BL/Type_LibSOPImpExp_ImportExcel/Method_CanImport\043382.qbl"
index 590b315..d9785ad 100644
--- "a/LibSOPImportExport/BL/Type_LibSOPImpExp_ImportExcel/Method_CanImport\043382.qbl"
+++ "b/LibSOPImportExport/BL/Type_LibSOPImpExp_ImportExcel/Method_CanImport\043382.qbl"
@@ -1,6 +1,8 @@
Quintiq file version 2.0
#parent: #root
-Method CanImport (output Strings missingFiles_o) as Boolean
+Method CanImport (
+ output Strings missingFiles_o
+) remote as Boolean
{
Description: 'Checks if necessary files are sufficent before starting import.'
TextBody:
diff --git a/LibSOPImportExport/metadata.properties b/LibSOPImportExport/metadata.properties
index c38fbdb..6d65136 100644
--- a/LibSOPImportExport/metadata.properties
+++ b/LibSOPImportExport/metadata.properties
@@ -5,4 +5,4 @@
system=false
version.component=2022.3.0.0
version.fileformat=2
-version.quintiq=6.3.3.0 NightlyBuild 247983, build 247983
+version.quintiq=6.3.3.0 , build 248673
diff --git a/_Main/BL/EDI/Broker_GlobalOTDTable_CustomOrder.qbl b/_Main/BL/EDI/Broker_GlobalOTDTable_CustomOrder.qbl
index 62a47a5..c405497 100644
--- a/_Main/BL/EDI/Broker_GlobalOTDTable_CustomOrder.qbl
+++ b/_Main/BL/EDI/Broker_GlobalOTDTable_CustomOrder.qbl
@@ -21,12 +21,16 @@
EDIMLColumn OrderDate { Attribute: OrderDate ValueType: Date }
EDIMLColumn OrderID { Attribute: OrderID ValueType: String }
EDIMLColumn OrderLineID { Attribute: OrderLineID ValueType: String }
+ EDIMLColumn OrderTime { Attribute: OrderTime ValueType: Date }
EDIMLColumn OrderType { Attribute: OrderType ValueType: String }
EDIMLColumn Price { Attribute: Price ValueType: Real }
EDIMLColumn PriorityName { Attribute: PriorityName ValueType: String }
+ EDIMLColumn ProductGrade { Attribute: ProductGrade ValueType: String }
EDIMLColumn ProductID { Attribute: ProductID ValueType: String }
EDIMLColumn Quantity { Attribute: Quantity ValueType: Real }
EDIMLColumn SalesSegmentName { Attribute: SalesSegmentName ValueType: String }
+ EDIMLColumn SegmentPriority { Attribute: SegmentPriority ValueType: String }
+ EDIMLColumn SheetProfitability { Attribute: SheetProfitability ValueType: String }
EDIMLColumn StockingPointID { Attribute: StockingPointID ValueType: String }
EDIMLColumn UnitOfMeasureName { Attribute: UnitOfMeasureName ValueType: String }
}
@@ -93,7 +97,7 @@
EDIODBCLinkColumn ORDERTIME
{
OthersMayUpdateColumn: true
- ValueType: String
+ ValueType: DateTime
}
EDIODBCLinkColumn ORDERTYPE
{
@@ -184,12 +188,33 @@
}
EDIColumnMatch { InputColumn: ORDERID OutputColumn: OrderID }
EDIColumnMatch { InputColumn: ORDERLINEID OutputColumn: OrderLineID }
- EDIColumnMatch { InputColumn: ORDERTIME OutputColumn: OrderType }
+ EDIColumnMatch
+ {
+ InputColumn: ORDERTIME
+ OutputColumn: OrderTime
+ Converter
+ {
+ XMLDefinition:
+ [*
+ <?xml version="1.0" encoding="UTF-16"?>
+ <DateTimeToDate xmlns="http://www.quintiq.com/GEB/DateTimeToDate" Key="@1">
+ <IsStandard>true</IsStandard>
+ <IsISO>false</IsISO>
+ <IsCustom>false</IsCustom>
+ <ConversionType>0</ConversionType>
+ </DateTimeToDate>
+ *]
+ }
+ }
+ EDIColumnMatch { InputColumn: ORDERTYPE OutputColumn: OrderType }
EDIColumnMatch { InputColumn: PRICE OutputColumn: Price }
EDIColumnMatch { InputColumn: PRIORITYNAME OutputColumn: PriorityName }
+ EDIColumnMatch { InputColumn: PRODUCTGRADE OutputColumn: ProductGrade }
EDIColumnMatch { InputColumn: PRODUCTID OutputColumn: ProductID }
EDIColumnMatch { InputColumn: QUANTITY OutputColumn: Quantity }
EDIColumnMatch { InputColumn: SALESEGMENTNAME OutputColumn: SalesSegmentName }
+ EDIColumnMatch { InputColumn: SEGMENTPRIORITY OutputColumn: SegmentPriority }
+ EDIColumnMatch { InputColumn: SHEETPROFITABILITY OutputColumn: SheetProfitability }
EDIColumnMatch { InputColumn: STOCKINGPOINTID OutputColumn: StockingPointID }
EDIColumnMatch { InputColumn: UNITOFMEASURENAME OutputColumn: UnitOfMeasureName }
}
diff --git a/_Main/BL/EDI/Broker_GlobalOTDTable_CustomerGrade.qbl b/_Main/BL/EDI/Broker_GlobalOTDTable_CustomerGrade.qbl
new file mode 100644
index 0000000..9ba2dac
--- /dev/null
+++ b/_Main/BL/EDI/Broker_GlobalOTDTable_CustomerGrade.qbl
@@ -0,0 +1,64 @@
+Quintiq file version 2.0
+#parent: #root
+EDIBroker GlobalOTDTable_CustomerGrade
+{
+ MDSDefinition: GlobalOTDTable
+ TimeZone: 'ACT'
+ UseOSTimeZone: false
+ EDIModelLink.Destination Destination16
+ {
+ EDIMLTable Global_MappingCustomerGrade
+ {
+ PrimaryKeyColumns: BusinessType
+ PrimaryKeyColumns: Customer
+ PrimaryKeyColumns: CustomerGrade
+ TargetType: Global_MappingCustomerGrade
+ TypeIndex: Global_MappingCustomerGradeTypeIndex
+ EDIMLColumn BusinessType { Attribute: BusinessType ValueType: String }
+ EDIMLColumn Customer { Attribute: Customer ValueType: String }
+ EDIMLColumn CustomerGrade { Attribute: CustomerGrade ValueType: String }
+ }
+ }
+ EDIODBCLink.Source Source15
+ {
+ DataIntegrityStrategy: 'Disabled'
+ SettingsEngineLink: 'domainmodel.ediremotedatasourcedefinition.remotestorage.oracle'
+ EDIODBCLinkTable MID_CUSTOMERGRADE
+ {
+ OthersMayCreateTable: true
+ OthersMayDeleteRow: true
+ OthersMayDropTable: true
+ OthersMayFlushTable: true
+ OthersMayInsertRow: true
+ Parameters: '/owner="OTD"'
+ PrimaryKeyColumns: CUSTOMER
+ RecordModificationHintStrategy: 'None'
+ EDIODBCLinkColumn BUSINESSTYPE
+ {
+ OthersMayUpdateColumn: true
+ ValueType: String
+ }
+ EDIODBCLinkColumn CUSTOMER
+ {
+ OthersMayUpdateColumn: true
+ ValueType: String
+ }
+ EDIODBCLinkColumn CUSTOMERGRADE
+ {
+ OthersMayUpdateColumn: true
+ ValueType: String
+ }
+ }
+ }
+ EDITransformation.Transformation Transformation15
+ {
+ EDITableTransformation
+ {
+ InputTable: MID_CUSTOMERGRADE
+ OutputTable: Global_MappingCustomerGrade
+ EDIColumnMatch { InputColumn: BUSINESSTYPE OutputColumn: BusinessType }
+ EDIColumnMatch { InputColumn: CUSTOMER OutputColumn: Customer }
+ EDIColumnMatch { InputColumn: CUSTOMERGRADE OutputColumn: CustomerGrade }
+ }
+ }
+}
diff --git a/_Main/BL/EDI/Broker_GlobalOTDTable_DOI_DSI.qbl b/_Main/BL/EDI/Broker_GlobalOTDTable_DOI_DSI.qbl
new file mode 100644
index 0000000..4fcd29e
--- /dev/null
+++ b/_Main/BL/EDI/Broker_GlobalOTDTable_DOI_DSI.qbl
@@ -0,0 +1,71 @@
+Quintiq file version 2.0
+#parent: #root
+EDIBroker GlobalOTDTable_DOI_DSI
+{
+ MDSDefinition: GlobalOTDTable
+ TimeZone: 'ACT'
+ UseOSTimeZone: false
+ EDIModelLink.Destination Destination15
+ {
+ EDIMLTable Global_MappingDOI_DSI
+ {
+ PrimaryKeyColumns: OrganCode
+ PrimaryKeyColumns: ProductID
+ TargetType: Global_MappingDOI_DSI
+ TypeIndex: Global_MappingDOI_DSITypeIndex
+ EDIMLColumn DOI { Attribute: DOI ValueType: String }
+ EDIMLColumn DSI { Attribute: DSI ValueType: String }
+ EDIMLColumn OrganCode { Attribute: OrganCode ValueType: String }
+ EDIMLColumn ProductID { Attribute: ProductID ValueType: String }
+ }
+ }
+ EDIODBCLink.Source Source14
+ {
+ DataIntegrityStrategy: 'Disabled'
+ SettingsEngineLink: 'domainmodel.ediremotedatasourcedefinition.remotestorage.oracle'
+ EDIODBCLinkTable MID_DOI_DSI
+ {
+ OthersMayCreateTable: true
+ OthersMayDeleteRow: true
+ OthersMayDropTable: true
+ OthersMayFlushTable: true
+ OthersMayInsertRow: true
+ Parameters: '/owner="OTD"'
+ PrimaryKeyColumns: ORGANCODE
+ PrimaryKeyColumns: PRODUCTID
+ RecordModificationHintStrategy: 'None'
+ EDIODBCLinkColumn DOI
+ {
+ OthersMayUpdateColumn: true
+ ValueType: String
+ }
+ EDIODBCLinkColumn DSI
+ {
+ OthersMayUpdateColumn: true
+ ValueType: String
+ }
+ EDIODBCLinkColumn ORGANCODE
+ {
+ OthersMayUpdateColumn: true
+ ValueType: String
+ }
+ EDIODBCLinkColumn PRODUCTID
+ {
+ OthersMayUpdateColumn: true
+ ValueType: String
+ }
+ }
+ }
+ EDITransformation.Transformation Transformation14
+ {
+ EDITableTransformation
+ {
+ InputTable: MID_DOI_DSI
+ OutputTable: Global_MappingDOI_DSI
+ EDIColumnMatch { InputColumn: DOI OutputColumn: DOI }
+ EDIColumnMatch { InputColumn: DSI OutputColumn: DSI }
+ EDIColumnMatch { InputColumn: ORGANCODE OutputColumn: OrganCode }
+ EDIColumnMatch { InputColumn: PRODUCTID OutputColumn: ProductID }
+ }
+ }
+}
diff --git a/_Main/BL/InfoMessages.qbl b/_Main/BL/InfoMessages.qbl
index 952d7d5..aa2917b 100644
--- a/_Main/BL/InfoMessages.qbl
+++ b/_Main/BL/InfoMessages.qbl
@@ -10,4 +10,8 @@
{
DefaultText: 'Please input validate value !'
}
-}
\ No newline at end of file
+ InfoMessage PriorityFactor_CheckNameValid
+ {
+ DefaultText: '璇ヤ紭鍏堢骇鍥犲瓙鍚嶇О宸插瓨鍦紒'
+ }
+}
diff --git a/_Main/BL/KnowledgeBaseDomain_MacroPlanner/KnowledgeBase_Knowledge_MP/_ROOT_KnowledgeBase_Knowledge_MP.qbl b/_Main/BL/KnowledgeBaseDomain_MacroPlanner/KnowledgeBase_Knowledge_MP/_ROOT_KnowledgeBase_Knowledge_MP.qbl
new file mode 100644
index 0000000..ea0a67e
--- /dev/null
+++ b/_Main/BL/KnowledgeBaseDomain_MacroPlanner/KnowledgeBase_Knowledge_MP/_ROOT_KnowledgeBase_Knowledge_MP.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#root
+#parent: #root
+KnowledgeBase Knowledge_MP #extension
+{
+}
diff --git a/_Main/BL/Relations/Relation_CapacityAndSaleBudgeChartElement_GlobalOTDTable_GlobalOTDTable_Capa.qbl b/_Main/BL/Relations/Relation_CapacityAndSaleBudgeChartElement_GlobalOTDTable_GlobalOTDTable_Capa.qbl
new file mode 100644
index 0000000..2d5380f
--- /dev/null
+++ b/_Main/BL/Relations/Relation_CapacityAndSaleBudgeChartElement_GlobalOTDTable_GlobalOTDTable_Capa.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation CapacityAndSaleBudgeChartElement_GlobalOTDTable_GlobalOTDTable_CapacityAndSaleBudgeChartElement
+{
+ #keys: '1[414384.0.921264786]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide GlobalOTDTable
+ {
+ #keys: '3[414384.0.921264788][414384.0.921264787][414384.0.921264789]'
+ Cardinality: '0to1'
+ ObjectDefinition: CapacityAndSaleBudgeChartElement
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide CapacityAndSaleBudgeChartElement
+ {
+ #keys: '3[414384.0.921264791][414384.0.921264790][414384.0.921264792]'
+ Cardinality: '1toN'
+ ObjectDefinition: GlobalOTDTable
+ OwningSide: 'Owned'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_CapacityAndSaleBudgeChartElement_ScenarioManager_ScenarioManager_Ca.qbl b/_Main/BL/Relations/Relation_CapacityAndSaleBudgeChartElement_ScenarioManager_ScenarioManager_Ca.qbl
deleted file mode 100644
index fcd971b..0000000
--- a/_Main/BL/Relations/Relation_CapacityAndSaleBudgeChartElement_ScenarioManager_ScenarioManager_Ca.qbl
+++ /dev/null
@@ -1,23 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Relation CapacityAndSaleBudgeChartElement_ScenarioManager_ScenarioManager_CapacityAndSaleBudgeChartElement
-{
- #keys: '1[414384.0.852466576]'
- DefaultRelationStrategy
- {
- }
- RelationSide.LeftSide ScenarioManager
- {
- #keys: '3[414384.0.852466578][414384.0.852466577][414384.0.852466579]'
- Cardinality: '0to1'
- ObjectDefinition: CapacityAndSaleBudgeChartElement
- OwningSide: 'Reference'
- }
- RelationSide.RightSide CapacityAndSaleBudgeChartElement
- {
- #keys: '3[414384.0.852466581][414384.0.852466580][414384.0.852466582]'
- Cardinality: '1toN'
- ObjectDefinition: ScenarioManager
- OwningSide: 'Owned'
- }
-}
diff --git a/_Main/BL/Relations/Relation_CapacityAndSaleBudgeChartRow_GlobalOTDTable_GlobalOTDTable_Capacity.qbl b/_Main/BL/Relations/Relation_CapacityAndSaleBudgeChartRow_GlobalOTDTable_GlobalOTDTable_Capacity.qbl
new file mode 100644
index 0000000..a5fe974
--- /dev/null
+++ b/_Main/BL/Relations/Relation_CapacityAndSaleBudgeChartRow_GlobalOTDTable_GlobalOTDTable_Capacity.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation CapacityAndSaleBudgeChartRow_GlobalOTDTable_GlobalOTDTable_CapacityAndSaleBudgeChartRow
+{
+ #keys: '1[414384.0.921264769]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide GlobalOTDTable
+ {
+ #keys: '3[414384.0.921264771][414384.0.921264770][414384.0.921264772]'
+ Cardinality: '0to1'
+ ObjectDefinition: CapacityAndSaleBudgeChartRow
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide CapacityAndSaleBudgeChartRow
+ {
+ #keys: '3[414384.0.921264774][414384.0.921264773][414384.0.921264775]'
+ Cardinality: '1toN'
+ ObjectDefinition: GlobalOTDTable
+ OwningSide: 'Owned'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_CapacityAndSaleBudgeChartRow_ScenarioManager_ScenarioManager_Capaci.qbl b/_Main/BL/Relations/Relation_CapacityAndSaleBudgeChartRow_ScenarioManager_ScenarioManager_Capaci.qbl
deleted file mode 100644
index 13e8d6d..0000000
--- a/_Main/BL/Relations/Relation_CapacityAndSaleBudgeChartRow_ScenarioManager_ScenarioManager_Capaci.qbl
+++ /dev/null
@@ -1,23 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Relation CapacityAndSaleBudgeChartRow_ScenarioManager_ScenarioManager_CapacityAndSaleBudgeChartRow
-{
- #keys: '1[414384.0.852471828]'
- DefaultRelationStrategy
- {
- }
- RelationSide.LeftSide ScenarioManager
- {
- #keys: '3[414384.0.852471830][414384.0.852471829][414384.0.852471831]'
- Cardinality: '0to1'
- ObjectDefinition: CapacityAndSaleBudgeChartRow
- OwningSide: 'Reference'
- }
- RelationSide.RightSide CapacityAndSaleBudgeChartRow
- {
- #keys: '3[414384.0.852471833][414384.0.852471832][414384.0.852471834]'
- Cardinality: '1toN'
- ObjectDefinition: ScenarioManager
- OwningSide: 'Owned'
- }
-}
diff --git a/_Main/BL/Relations/Relation_CapacityAndSaleBudgeCompareItemColumn_GlobalOTDTable_GlobalOTDTable.qbl b/_Main/BL/Relations/Relation_CapacityAndSaleBudgeCompareItemColumn_GlobalOTDTable_GlobalOTDTable.qbl
new file mode 100644
index 0000000..132284d
--- /dev/null
+++ b/_Main/BL/Relations/Relation_CapacityAndSaleBudgeCompareItemColumn_GlobalOTDTable_GlobalOTDTable.qbl
@@ -0,0 +1,24 @@
+Quintiq file version 2.0
+#parent: #root
+Relation CapacityAndSaleBudgeCompareItemColumn_GlobalOTDTable_GlobalOTDTable_CapacityAndSaleBudgeCompareItemColumn
+{
+ #keys: '1[414384.0.921264730]'
+ ProceduralSequenceRelationStrategy
+ {
+ #keys: '13[0.0.0][414384.0.921264749][414384.0.921264743][414384.0.921264750][414384.0.921264744][414384.0.921264751][414384.0.921264745][414384.0.921264752][414384.0.921264746][414384.0.921264753][414384.0.921264747][414384.0.921264754][414384.0.921264748]'
+ }
+ RelationSide.LeftSide GlobalOTDTable
+ {
+ #keys: '3[414384.0.921264732][414384.0.921264731][414384.0.921264733]'
+ Cardinality: '0to1'
+ ObjectDefinition: CapacityAndSaleBudgeCompareItemColumn
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide CapacityAndSaleBudgeCompareItemColumn
+ {
+ #keys: '3[414384.0.921264735][414384.0.921264734][414384.0.921264736]'
+ Cardinality: '1toN'
+ ObjectDefinition: GlobalOTDTable
+ OwningSide: 'Owned'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_CapacityAndSaleBudgeCompareItemColumn_ScenarioManager_ScenarioManag.qbl b/_Main/BL/Relations/Relation_CapacityAndSaleBudgeCompareItemColumn_ScenarioManager_ScenarioManag.qbl
deleted file mode 100644
index 07afbdf..0000000
--- a/_Main/BL/Relations/Relation_CapacityAndSaleBudgeCompareItemColumn_ScenarioManager_ScenarioManag.qbl
+++ /dev/null
@@ -1,26 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Relation CapacityAndSaleBudgeCompareItemColumn_ScenarioManager_ScenarioManager_CapacityAndSaleBudgeCompareItemColumn
-{
- #keys: '1[414384.0.816631032]'
- ProceduralSequenceRelationStrategy
- {
- #keys: '13[0.0.0][414384.0.827659683][414384.0.827659677][414384.0.827659684][414384.0.827659678][414384.0.827659685][414384.0.827659679][414384.0.827659686][414384.0.827659680][414384.0.827659687][414384.0.827659681][414384.0.827659688][414384.0.827659682]'
- SequenceElementSuffix: 'ColumnInManager'
- SequenceSuffix: 'ColumnInManager'
- }
- RelationSide.LeftSide ScenarioManager
- {
- #keys: '3[414384.0.816631034][414384.0.816631033][414384.0.816631035]'
- Cardinality: '0to1'
- ObjectDefinition: CapacityAndSaleBudgeCompareItemColumn
- OwningSide: 'Reference'
- }
- RelationSide.RightSide CapacityAndSaleBudgeCompareItemColumn
- {
- #keys: '3[414384.0.816631037][414384.0.816631036][414384.0.816631038]'
- Cardinality: '1toN'
- ObjectDefinition: ScenarioManager
- OwningSide: 'Owned'
- }
-}
diff --git a/_Main/BL/Relations/Relation_CapacityAndSaleBudgeCompareItemRow_GlobalOTDTable_GlobalOTDTable_Ca.qbl b/_Main/BL/Relations/Relation_CapacityAndSaleBudgeCompareItemRow_GlobalOTDTable_GlobalOTDTable_Ca.qbl
new file mode 100644
index 0000000..d33c56f
--- /dev/null
+++ b/_Main/BL/Relations/Relation_CapacityAndSaleBudgeCompareItemRow_GlobalOTDTable_GlobalOTDTable_Ca.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation CapacityAndSaleBudgeCompareItemRow_GlobalOTDTable_GlobalOTDTable_CapacityAndSaleBudgeCompareItemRow
+{
+ #keys: '1[414384.0.921264713]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide GlobalOTDTable
+ {
+ #keys: '3[414384.0.921264715][414384.0.921264714][414384.0.921264716]'
+ Cardinality: '0to1'
+ ObjectDefinition: CapacityAndSaleBudgeCompareItemRow
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide CapacityAndSaleBudgeCompareItemRow
+ {
+ #keys: '3[414384.0.921264718][414384.0.921264717][414384.0.921264719]'
+ Cardinality: '1toN'
+ ObjectDefinition: GlobalOTDTable
+ OwningSide: 'Owned'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_CapacityAndSaleBudgeCompareItemRow_ScenarioManager_ScenarioManager_.qbl b/_Main/BL/Relations/Relation_CapacityAndSaleBudgeCompareItemRow_ScenarioManager_ScenarioManager_.qbl
deleted file mode 100644
index 59829f6..0000000
--- a/_Main/BL/Relations/Relation_CapacityAndSaleBudgeCompareItemRow_ScenarioManager_ScenarioManager_.qbl
+++ /dev/null
@@ -1,23 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Relation CapacityAndSaleBudgeCompareItemRow_ScenarioManager_ScenarioManager_CapacityAndSaleBudgeCompareItemRow
-{
- #keys: '1[414384.0.816631016]'
- DefaultRelationStrategy
- {
- }
- RelationSide.LeftSide ScenarioManager
- {
- #keys: '3[414384.0.816631018][414384.0.816631017][414384.0.816631019]'
- Cardinality: '0to1'
- ObjectDefinition: CapacityAndSaleBudgeCompareItemRow
- OwningSide: 'Reference'
- }
- RelationSide.RightSide CapacityAndSaleBudgeCompareItemRow
- {
- #keys: '3[414384.0.816631021][414384.0.816631020][414384.0.816631022]'
- Cardinality: '1toN'
- ObjectDefinition: ScenarioManager
- OwningSide: 'Owned'
- }
-}
diff --git a/_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterBusinessType_GlobalOTDTable_GlobalOTDTabl.qbl b/_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterBusinessType_GlobalOTDTable_GlobalOTDTabl.qbl
new file mode 100644
index 0000000..f0b0349
--- /dev/null
+++ b/_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterBusinessType_GlobalOTDTable_GlobalOTDTabl.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation CapacityAndSaleBudgeFilterBusinessType_GlobalOTDTable_GlobalOTDTable_CapacityAndSaleBudgeFilterBusinessType
+{
+ #keys: '1[414384.0.921264696]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide GlobalOTDTable
+ {
+ #keys: '3[414384.0.921264698][414384.0.921264697][414384.0.921264699]'
+ Cardinality: '0to1'
+ ObjectDefinition: CapacityAndSaleBudgeFilterBusinessType
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide CapacityAndSaleBudgeFilterBusinessType
+ {
+ #keys: '3[414384.0.921264701][414384.0.921264700][414384.0.921264702]'
+ Cardinality: '1toN'
+ ObjectDefinition: GlobalOTDTable
+ OwningSide: 'Owned'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterBusinessType_MPSync_MPSync_CapacityAndSal.qbl b/_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterBusinessType_MPSync_MPSync_CapacityAndSal.qbl
deleted file mode 100644
index fe18a82..0000000
--- a/_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterBusinessType_MPSync_MPSync_CapacityAndSal.qbl
+++ /dev/null
@@ -1,23 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Relation CapacityAndSaleBudgeFilterBusinessType_MPSync_MPSync_CapacityAndSaleBudgeFilterBusinessType
-{
- #keys: '1[414384.0.873958122]'
- DefaultRelationStrategy
- {
- }
- RelationSide.LeftSide MPSync
- {
- #keys: '3[414384.0.873958124][414384.0.873958123][414384.0.873958125]'
- Cardinality: '0to1'
- ObjectDefinition: CapacityAndSaleBudgeFilterBusinessType
- OwningSide: 'Reference'
- }
- RelationSide.RightSide CapacityAndSaleBudgeFilterBusinessType
- {
- #keys: '3[414384.0.873958127][414384.0.873958126][414384.0.873958128]'
- Cardinality: '1toN'
- ObjectDefinition: MPSync
- OwningSide: 'Owned'
- }
-}
diff --git a/_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterItem_GlobalOTDTable_GlobalOTDTable_Capaci.qbl b/_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterItem_GlobalOTDTable_GlobalOTDTable_Capaci.qbl
new file mode 100644
index 0000000..7933192
--- /dev/null
+++ b/_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterItem_GlobalOTDTable_GlobalOTDTable_Capaci.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation CapacityAndSaleBudgeFilterItem_GlobalOTDTable_GlobalOTDTable_CapacityAndSaleBudgeFilterItem
+{
+ #keys: '1[414384.0.921264679]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide GlobalOTDTable
+ {
+ #keys: '3[414384.0.921264681][414384.0.921264680][414384.0.921264682]'
+ Cardinality: '0to1'
+ ObjectDefinition: CapacityAndSaleBudgeFilterItem
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide CapacityAndSaleBudgeFilterItem
+ {
+ #keys: '3[414384.0.921264684][414384.0.921264683][414384.0.921264685]'
+ Cardinality: '1toN'
+ ObjectDefinition: GlobalOTDTable
+ OwningSide: 'Owned'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterItem_ScenarioManager_ScenarioManager_Capa.qbl b/_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterItem_ScenarioManager_ScenarioManager_Capa.qbl
deleted file mode 100644
index 041c7c2..0000000
--- a/_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterItem_ScenarioManager_ScenarioManager_Capa.qbl
+++ /dev/null
@@ -1,23 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Relation CapacityAndSaleBudgeFilterItem_ScenarioManager_ScenarioManager_CapacityAndSaleBudgeFilterItem
-{
- #keys: '1[414384.0.816665103]'
- DefaultRelationStrategy
- {
- }
- RelationSide.LeftSide ScenarioManager
- {
- #keys: '3[414384.0.816665105][414384.0.816665104][414384.0.816665106]'
- Cardinality: '0to1'
- ObjectDefinition: CapacityAndSaleBudgeFilterItem
- OwningSide: 'Reference'
- }
- RelationSide.RightSide CapacityAndSaleBudgeFilterItem
- {
- #keys: '3[414384.0.816665108][414384.0.816665107][414384.0.816665109]'
- Cardinality: '1toN'
- ObjectDefinition: ScenarioManager
- OwningSide: 'Owned'
- }
-}
diff --git a/_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterMonth_GlobalOTDTable_GlobalOTDTable_Capac.qbl b/_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterMonth_GlobalOTDTable_GlobalOTDTable_Capac.qbl
new file mode 100644
index 0000000..d8b447f
--- /dev/null
+++ b/_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterMonth_GlobalOTDTable_GlobalOTDTable_Capac.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation CapacityAndSaleBudgeFilterMonth_GlobalOTDTable_GlobalOTDTable_CapacityAndSaleBudgeFilterMonth
+{
+ #keys: '1[414384.0.921264662]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide GlobalOTDTable
+ {
+ #keys: '3[414384.0.921264664][414384.0.921264663][414384.0.921264665]'
+ Cardinality: '0to1'
+ ObjectDefinition: CapacityAndSaleBudgeFilterMonth
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide CapacityAndSaleBudgeFilterMonth
+ {
+ #keys: '3[414384.0.921264667][414384.0.921264666][414384.0.921264668]'
+ Cardinality: '1toN'
+ ObjectDefinition: GlobalOTDTable
+ OwningSide: 'Owned'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterMonth_ScenarioManager_ScenarioManager_Cap.qbl b/_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterMonth_ScenarioManager_ScenarioManager_Cap.qbl
deleted file mode 100644
index cc133c7..0000000
--- a/_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterMonth_ScenarioManager_ScenarioManager_Cap.qbl
+++ /dev/null
@@ -1,23 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Relation CapacityAndSaleBudgeFilterMonth_ScenarioManager_ScenarioManager_CapacityAndSaleBudgeFilterMonth
-{
- #keys: '1[414384.0.816631074]'
- DefaultRelationStrategy
- {
- }
- RelationSide.LeftSide ScenarioManager
- {
- #keys: '3[414384.0.816631076][414384.0.816631075][414384.0.816631077]'
- Cardinality: '0to1'
- ObjectDefinition: CapacityAndSaleBudgeFilterMonth
- OwningSide: 'Reference'
- }
- RelationSide.RightSide CapacityAndSaleBudgeFilterMonth
- {
- #keys: '3[414384.0.816631079][414384.0.816631078][414384.0.816631080]'
- Cardinality: '1toN'
- ObjectDefinition: ScenarioManager
- OwningSide: 'Owned'
- }
-}
diff --git a/_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterPlaceOfProductionOfArray_GlobalOTDTable_G.qbl b/_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterPlaceOfProductionOfArray_GlobalOTDTable_G.qbl
new file mode 100644
index 0000000..e10c202
--- /dev/null
+++ b/_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterPlaceOfProductionOfArray_GlobalOTDTable_G.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation CapacityAndSaleBudgeFilterPlaceOfProductionOfArray_GlobalOTDTable_GlobalOTDTable_CapacityAndSaleBudgeFilterPlaceOfProductionOfArray
+{
+ #keys: '1[414384.0.921264645]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide GlobalOTDTable
+ {
+ #keys: '3[414384.0.921264647][414384.0.921264646][414384.0.921264648]'
+ Cardinality: '0to1'
+ ObjectDefinition: CapacityAndSaleBudgeFilterPlaceOfProductionOfArray
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide CapacityAndSaleBudgeFilterPlaceOfProductionOfArray
+ {
+ #keys: '3[414384.0.921264650][414384.0.921264649][414384.0.921264651]'
+ Cardinality: '1toN'
+ ObjectDefinition: GlobalOTDTable
+ OwningSide: 'Owned'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterPlaceOfProductionOfArray_MPSync_MPSync_Ca.qbl b/_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterPlaceOfProductionOfArray_MPSync_MPSync_Ca.qbl
deleted file mode 100644
index ef6b268..0000000
--- a/_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterPlaceOfProductionOfArray_MPSync_MPSync_Ca.qbl
+++ /dev/null
@@ -1,23 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Relation CapacityAndSaleBudgeFilterPlaceOfProductionOfArray_MPSync_MPSync_CapacityAndSaleBudgeFilterPlaceOfProductionOfArray
-{
- #keys: '1[414384.0.873958138]'
- DefaultRelationStrategy
- {
- }
- RelationSide.LeftSide MPSync
- {
- #keys: '3[414384.0.873958140][414384.0.873958139][414384.0.873958141]'
- Cardinality: '0to1'
- ObjectDefinition: CapacityAndSaleBudgeFilterPlaceOfProductionOfArray
- OwningSide: 'Reference'
- }
- RelationSide.RightSide CapacityAndSaleBudgeFilterPlaceOfProductionOfArray
- {
- #keys: '3[414384.0.873958143][414384.0.873958142][414384.0.873958144]'
- Cardinality: '1toN'
- ObjectDefinition: MPSync
- OwningSide: 'Owned'
- }
-}
diff --git a/_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterYear_GlobalOTDTable_GlobalOTDTable_Capaci.qbl b/_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterYear_GlobalOTDTable_GlobalOTDTable_Capaci.qbl
new file mode 100644
index 0000000..8df8fb7
--- /dev/null
+++ b/_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterYear_GlobalOTDTable_GlobalOTDTable_Capaci.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation CapacityAndSaleBudgeFilterYear_GlobalOTDTable_GlobalOTDTable_CapacityAndSaleBudgeFilterYear
+{
+ #keys: '1[414384.0.921264628]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide GlobalOTDTable
+ {
+ #keys: '3[414384.0.921264630][414384.0.921264629][414384.0.921264631]'
+ Cardinality: '0to1'
+ ObjectDefinition: CapacityAndSaleBudgeFilterYear
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide CapacityAndSaleBudgeFilterYear
+ {
+ #keys: '3[414384.0.921264633][414384.0.921264632][414384.0.921264634]'
+ Cardinality: '1toN'
+ ObjectDefinition: GlobalOTDTable
+ OwningSide: 'Owned'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterYear_ScenarioManager_ScenarioManager_Capa.qbl b/_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterYear_ScenarioManager_ScenarioManager_Capa.qbl
deleted file mode 100644
index 5fb08a4..0000000
--- a/_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterYear_ScenarioManager_ScenarioManager_Capa.qbl
+++ /dev/null
@@ -1,23 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Relation CapacityAndSaleBudgeFilterYear_ScenarioManager_ScenarioManager_CapacityAndSaleBudgeFilterYear
-{
- #keys: '1[414384.0.816631057]'
- DefaultRelationStrategy
- {
- }
- RelationSide.LeftSide ScenarioManager
- {
- #keys: '3[414384.0.816631059][414384.0.816631058][414384.0.816631060]'
- Cardinality: '0to1'
- ObjectDefinition: CapacityAndSaleBudgeFilterYear
- OwningSide: 'Reference'
- }
- RelationSide.RightSide CapacityAndSaleBudgeFilterYear
- {
- #keys: '3[414384.0.816631062][414384.0.816631061][414384.0.816631063]'
- Cardinality: '1toN'
- ObjectDefinition: ScenarioManager
- OwningSide: 'Owned'
- }
-}
diff --git a/_Main/BL/Relations/Relation_GlobalOTDTable_Global_ShowCell_Global_ShowCell_GlobalOTDTable.qbl b/_Main/BL/Relations/Relation_GlobalOTDTable_Global_ShowCell_Global_ShowCell_GlobalOTDTable.qbl
new file mode 100644
index 0000000..4521d55
--- /dev/null
+++ b/_Main/BL/Relations/Relation_GlobalOTDTable_Global_ShowCell_Global_ShowCell_GlobalOTDTable.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation GlobalOTDTable_Global_ShowCell_Global_ShowCell_GlobalOTDTable
+{
+ #keys: '1[414702.0.483720679]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide Global_ShowCell
+ {
+ #keys: '3[414702.0.483720681][414702.0.483720680][414702.0.483720682]'
+ Cardinality: '1toN'
+ ObjectDefinition: GlobalOTDTable
+ OwningSide: 'Owned'
+ }
+ RelationSide.RightSide GlobalOTDTable
+ {
+ #keys: '3[414702.0.483720684][414702.0.483720683][414702.0.483720685]'
+ Cardinality: '0to1'
+ ObjectDefinition: Global_ShowCell
+ OwningSide: 'Reference'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_GlobalOTDTable_Global_ShowColumn_Global_ShowColumn_GlobalOTDTable.qbl b/_Main/BL/Relations/Relation_GlobalOTDTable_Global_ShowColumn_Global_ShowColumn_GlobalOTDTable.qbl
new file mode 100644
index 0000000..5508eb3
--- /dev/null
+++ b/_Main/BL/Relations/Relation_GlobalOTDTable_Global_ShowColumn_Global_ShowColumn_GlobalOTDTable.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation GlobalOTDTable_Global_ShowColumn_Global_ShowColumn_GlobalOTDTable
+{
+ #keys: '1[414702.0.483720692]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide Global_ShowColumn
+ {
+ #keys: '3[414702.0.483720694][414702.0.483720693][414702.0.483720695]'
+ Cardinality: '1toN'
+ ObjectDefinition: GlobalOTDTable
+ OwningSide: 'Owned'
+ }
+ RelationSide.RightSide GlobalOTDTable
+ {
+ #keys: '3[414702.0.483720697][414702.0.483720696][414702.0.483720698]'
+ Cardinality: '0to1'
+ ObjectDefinition: Global_ShowColumn
+ OwningSide: 'Reference'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_GlobalOTDTable_Global_ShowRow_Global_ShowRow_GlobalOTDTable.qbl b/_Main/BL/Relations/Relation_GlobalOTDTable_Global_ShowRow_Global_ShowRow_GlobalOTDTable.qbl
new file mode 100644
index 0000000..d8f6a4b
--- /dev/null
+++ b/_Main/BL/Relations/Relation_GlobalOTDTable_Global_ShowRow_Global_ShowRow_GlobalOTDTable.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation GlobalOTDTable_Global_ShowRow_Global_ShowRow_GlobalOTDTable
+{
+ #keys: '1[414702.0.483720663]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide Global_ShowRow
+ {
+ #keys: '3[414702.0.483720665][414702.0.483720664][414702.0.483720666]'
+ Cardinality: '1toN'
+ ObjectDefinition: GlobalOTDTable
+ OwningSide: 'Owned'
+ }
+ RelationSide.RightSide GlobalOTDTable
+ {
+ #keys: '3[414702.0.483720668][414702.0.483720667][414702.0.483720669]'
+ Cardinality: '0to1'
+ ObjectDefinition: Global_ShowRow
+ OwningSide: 'Reference'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_Global_MappingCustomerGrade_GlobalOTDTable_GlobalOTDTable_Global_Ma.qbl b/_Main/BL/Relations/Relation_Global_MappingCustomerGrade_GlobalOTDTable_GlobalOTDTable_Global_Ma.qbl
new file mode 100644
index 0000000..9f05865
--- /dev/null
+++ b/_Main/BL/Relations/Relation_Global_MappingCustomerGrade_GlobalOTDTable_GlobalOTDTable_Global_Ma.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation Global_MappingCustomerGrade_GlobalOTDTable_GlobalOTDTable_Global_MappingCustomerGrade
+{
+ #keys: '1[414702.0.445485678]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide GlobalOTDTable
+ {
+ #keys: '3[414702.0.445485680][414702.0.445485679][414702.0.445485681]'
+ Cardinality: '0to1'
+ ObjectDefinition: Global_MappingCustomerGrade
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide Global_MappingCustomerGrade
+ {
+ #keys: '3[414702.0.445485683][414702.0.445485682][414702.0.445485684]'
+ Cardinality: '1toN'
+ ObjectDefinition: GlobalOTDTable
+ OwningSide: 'Owned'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_Global_MappingDOI_DSI_GlobalOTDTable_GlobalOTDTable_Global_MappingD.qbl b/_Main/BL/Relations/Relation_Global_MappingDOI_DSI_GlobalOTDTable_GlobalOTDTable_Global_MappingD.qbl
new file mode 100644
index 0000000..2020f2e
--- /dev/null
+++ b/_Main/BL/Relations/Relation_Global_MappingDOI_DSI_GlobalOTDTable_GlobalOTDTable_Global_MappingD.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation Global_MappingDOI_DSI_GlobalOTDTable_GlobalOTDTable_Global_MappingDOI_DSI
+{
+ #keys: '1[414702.0.445364657]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide GlobalOTDTable
+ {
+ #keys: '3[414702.0.445364659][414702.0.445364658][414702.0.445364660]'
+ Cardinality: '0to1'
+ ObjectDefinition: Global_MappingDOI_DSI
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide Global_MappingDOI_DSI
+ {
+ #keys: '3[414702.0.445364662][414702.0.445364661][414702.0.445364663]'
+ Cardinality: '1toN'
+ ObjectDefinition: GlobalOTDTable
+ OwningSide: 'Owned'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_Global_ShowColumn_Global_ShowCell_Global_ShowCell_Global_ShowColumn.qbl b/_Main/BL/Relations/Relation_Global_ShowColumn_Global_ShowCell_Global_ShowCell_Global_ShowColumn.qbl
new file mode 100644
index 0000000..86258ab
--- /dev/null
+++ b/_Main/BL/Relations/Relation_Global_ShowColumn_Global_ShowCell_Global_ShowCell_Global_ShowColumn.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation Global_ShowColumn_Global_ShowCell_Global_ShowCell_Global_ShowColumn
+{
+ #keys: '1[414702.0.483720723]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide Global_ShowCell
+ {
+ #keys: '3[414702.0.483720725][414702.0.483720724][414702.0.483720726]'
+ Cardinality: '1toN'
+ ObjectDefinition: Global_ShowColumn
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide Global_ShowColumn
+ {
+ #keys: '3[414702.0.483720728][414702.0.483720727][414702.0.483720729]'
+ Cardinality: '0to1'
+ ObjectDefinition: Global_ShowCell
+ OwningSide: 'Reference'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_Global_ShowRow_Global_ShowCell_Global_ShowCell_Global_ShowRow.qbl b/_Main/BL/Relations/Relation_Global_ShowRow_Global_ShowCell_Global_ShowCell_Global_ShowRow.qbl
new file mode 100644
index 0000000..efa77b8
--- /dev/null
+++ b/_Main/BL/Relations/Relation_Global_ShowRow_Global_ShowCell_Global_ShowCell_Global_ShowRow.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation Global_ShowRow_Global_ShowCell_Global_ShowCell_Global_ShowRow
+{
+ #keys: '1[414702.0.483720707]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide Global_ShowCell
+ {
+ #keys: '3[414702.0.483720709][414702.0.483720708][414702.0.483720710]'
+ Cardinality: '1toN'
+ ObjectDefinition: Global_ShowRow
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide Global_ShowRow
+ {
+ #keys: '3[414702.0.483720712][414702.0.483720711][414702.0.483720713]'
+ Cardinality: '0to1'
+ ObjectDefinition: Global_ShowCell
+ OwningSide: 'Reference'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_OrganCode_BusinessType_BusinessType_OrganCode.qbl b/_Main/BL/Relations/Relation_OrganCode_BusinessType_BusinessType_OrganCode.qbl
new file mode 100644
index 0000000..53c42ae
--- /dev/null
+++ b/_Main/BL/Relations/Relation_OrganCode_BusinessType_BusinessType_OrganCode.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation OrganCode_BusinessType_BusinessType_OrganCode
+{
+ #keys: '1[412960.0.276650038]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide BusinessType
+ {
+ #keys: '3[412960.0.276650040][412960.0.276650039][412960.0.276650041]'
+ Cardinality: '0to1'
+ ObjectDefinition: OrganCode
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide OrganCode
+ {
+ #keys: '3[412960.0.276650043][412960.0.276650042][412960.0.276650044]'
+ Cardinality: '1toN'
+ ObjectDefinition: BusinessType
+ OwningSide: 'Owned'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_YuxTest_MPSync_MPSync_YuxTest.qbl b/_Main/BL/Relations/Relation_YuxTest_MPSync_MPSync_YuxTest.qbl
new file mode 100644
index 0000000..743c739
--- /dev/null
+++ b/_Main/BL/Relations/Relation_YuxTest_MPSync_MPSync_YuxTest.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation YuxTest_MPSync_MPSync_YuxTest
+{
+ #keys: '1[414384.0.915854641]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide MPSync
+ {
+ #keys: '3[414384.0.915854643][414384.0.915854642][414384.0.915854644]'
+ Cardinality: '0to1'
+ ObjectDefinition: YuxTest
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide YuxTest
+ {
+ #keys: '3[414384.0.915854646][414384.0.915854645][414384.0.915854647]'
+ Cardinality: '1toN'
+ ObjectDefinition: MPSync
+ OwningSide: 'Owned'
+ }
+}
diff --git a/_Main/BL/Type_BusinessType/Attribute_BusinessTypeName.qbl b/_Main/BL/Type_BusinessType/Attribute_BusinessTypeName.qbl
index f2fb6a3..44f63a3 100644
--- a/_Main/BL/Type_BusinessType/Attribute_BusinessTypeName.qbl
+++ b/_Main/BL/Type_BusinessType/Attribute_BusinessTypeName.qbl
@@ -3,5 +3,6 @@
Attribute BusinessTypeName
{
#keys: '3[414382.0.361554811][414382.0.361554810][414382.0.361554812]'
+ Description: '浜嬩笟閮ㄥ悕绉�'
ValueType: String
}
diff --git a/_Main/BL/Type_BusinessType/Attribute_DisplayType.qbl b/_Main/BL/Type_BusinessType/Attribute_DisplayType.qbl
new file mode 100644
index 0000000..72577fd
--- /dev/null
+++ b/_Main/BL/Type_BusinessType/Attribute_DisplayType.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute DisplayType
+{
+ #keys: '3[412960.0.276650024][412960.0.276650023][412960.0.276650025]'
+ Description: '鏄剧ず绫诲瀷'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_BusinessType/Attribute_ScenarioName.qbl b/_Main/BL/Type_BusinessType/Attribute_ScenarioName.qbl
new file mode 100644
index 0000000..bf93bb5
--- /dev/null
+++ b/_Main/BL/Type_BusinessType/Attribute_ScenarioName.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ScenarioName
+{
+ #keys: '3[412960.0.276650011][412960.0.276650010][412960.0.276650012]'
+ Description: '鍦烘櫙鍚嶇О'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_BusinessType/StaticMethod_CreateData.qbl b/_Main/BL/Type_BusinessType/StaticMethod_CreateData.qbl
index 0606111..f82bfcb 100644
--- a/_Main/BL/Type_BusinessType/StaticMethod_CreateData.qbl
+++ b/_Main/BL/Type_BusinessType/StaticMethod_CreateData.qbl
@@ -2,6 +2,7 @@
#parent: #root
StaticMethod CreateData (
GlobalOTDTable owner,
+ MacroPlan macroPlan,
String businessName
)
{
diff --git a/_Main/BL/Type_BusinessType/StaticMethod_GetBusinessNameStr.qbl b/_Main/BL/Type_BusinessType/StaticMethod_GetBusinessNameStr.qbl
deleted file mode 100644
index eb62f70..0000000
--- a/_Main/BL/Type_BusinessType/StaticMethod_GetBusinessNameStr.qbl
+++ /dev/null
@@ -1,32 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-StaticMethod GetBusinessNameStr (
- GlobalOTDTable owner
-) as String
-{
- TextBody:
- [*
- // NBoTk Sep-7-2023 (created)
-
- // 鑾峰彇businessType 闆嗗悎
- result := "";
- businessTypeList := construct( structured[String]);
-
- traverse( owner,BusinessType,b)
- {
- businessTypeList.Add( b.BusinessTypeName());
- }
-
- // 濡傛灉瀛樺湪businessType鏁版嵁 鍒欒繑鍥� : a,b,c
-
- if( not isnull( businessTypeList ) )
- {
- result := businessTypeList.Concatenate( ";" );
- }
-
- // 娴嬭瘯鏁版嵁
- result := "闆嗗洟闈㈡澘;涓撲笟鏄剧ず浜嬩笟閮�;澶栧崠CELL;闈炴樉;杩愬姩鍋ュ悍;杩愬姩鍋ュ悍浜嬩笟閮�;鎵嬫満浜嬩笟閮�;鐗圭鏄剧ず;姹借溅鐢靛瓙浜嬩笟閮�;杞﹁浇鏄剧ず浜嬩笟閮�;IT浜嬩笟閮�";
-
- return result;
- *]
-}
diff --git a/_Main/BL/Type_BusinessType/StaticMethod_GetScenarioNamesStr.qbl b/_Main/BL/Type_BusinessType/StaticMethod_GetScenarioNamesStr.qbl
new file mode 100644
index 0000000..130ee5a
--- /dev/null
+++ b/_Main/BL/Type_BusinessType/StaticMethod_GetScenarioNamesStr.qbl
@@ -0,0 +1,31 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GetScenarioNamesStr (
+ GlobalOTDTable owner
+) as String
+{
+ TextBody:
+ [*
+ // NBoTk Sep-7-2023 (created)
+ // 鑾峰彇businessType 闆嗗悎
+ result := "";
+ scenarioNameList := construct( structured[String]);
+
+ traverse( owner,BusinessType,b)
+ {
+ scenarioNameList.Add( b.ScenarioName() );
+ }
+
+ // 濡傛灉瀛樺湪businessType鏁版嵁 鍒欒繑鍥� : a,b,c
+
+ if( not isnull( scenarioNameList ) )
+ {
+ result := scenarioNameList.Concatenate( ";" );
+ }
+
+ // 娴嬭瘯鏁版嵁
+ //result := "闆嗗洟闈㈡澘;涓撲笟鏄剧ず浜嬩笟閮�;澶栧崠CELL;闈炴樉;杩愬姩鍋ュ悍;杩愬姩鍋ュ悍浜嬩笟閮�;鎵嬫満浜嬩笟閮�;鐗圭鏄剧ず;姹借溅鐢靛瓙浜嬩笟閮�;杞﹁浇鏄剧ず浜嬩笟閮�;IT浜嬩笟閮�";
+
+ return result;
+ *]
+}
diff --git a/_Main/BL/Type_CapacityAllocationResults/StaticMethod_CreateDate.qbl b/_Main/BL/Type_CapacityAllocationResults/StaticMethod_CreateDate.qbl
index 119198c..2340157 100644
--- a/_Main/BL/Type_CapacityAllocationResults/StaticMethod_CreateDate.qbl
+++ b/_Main/BL/Type_CapacityAllocationResults/StaticMethod_CreateDate.qbl
@@ -19,7 +19,7 @@
traverse ( finaleProductInStockingPoint_MPs, Elements, fpispmp ) {
capacityAllocationResultsRuleConfigurations := selectset( globalOTDTable, CapacityAllocationResultsRuleConfiguration, tempCARRC, tempCARRC.ModuleMaterialCode() = fpispmp.ProductID() and tempCARRC.StockingPointID() = fpispmp.StockingPointID() );
- info( "鐢熶骇鐨勪骇鍝侊細", fpispmp.ProductID(), "------浜у搧鍦ㄥ簱瀛樼偣-------锛�", fpispmp.StockingPointID() );
+ // info( "鐢熶骇鐨勪骇鍝侊細", fpispmp.ProductID(), "------浜у搧鍦ㄥ簱瀛樼偣-------锛�", fpispmp.StockingPointID() );
traverse ( period_MPS, Elements, pmp ) {
// CapacityAllocationResults::IterativeGeneration( globalOTDTable, pisp, 1, null( NewSupply ), -1.0, pmp.StartDate() ); 鑰佺増
CapacityAllocationResults::IterativeGeneration2( globalOTDTable, fpispmp, pmp.StartDate(), capacityAllocationResultsRuleConfigurations, 0, null( NewSupply ), 0.0 );
diff --git a/_Main/BL/Type_CapacityAllocationResults/StaticMethod_IterativeGeneration2.qbl b/_Main/BL/Type_CapacityAllocationResults/StaticMethod_IterativeGeneration2.qbl
index 3f70ca5..b327f63 100644
--- a/_Main/BL/Type_CapacityAllocationResults/StaticMethod_IterativeGeneration2.qbl
+++ b/_Main/BL/Type_CapacityAllocationResults/StaticMethod_IterativeGeneration2.qbl
@@ -13,7 +13,7 @@
TextBody:
[*
numberOfLayers++;
- info( "鐩爣鏃堕棿锛�", targetDate.Format( "Y-M2-D2" ) );
+ //info( "鐩爣鏃堕棿锛�", targetDate.Format( "Y-M2-D2" ) );
info( pisp.Name() );
traverse ( pisp, ProductInStockingPointInPeriodPlanning.astype( ProductInStockingPointInPeriodPlanningLeaf ), pispippl, pispippl.Start().Date() = targetDate ) {
traverse ( pispippl, NewSupply, ns, ns.Quantity() > 0 ) {
@@ -23,14 +23,17 @@
ontype( ns.PeriodTask_MP() ) {
PeriodTaskOperation as pto : {
- info( "Operation鍛ㄦ湡浠诲姟..." );
+ // info( "Operation鍛ㄦ湡浠诲姟..." );
traverse ( ns, PeriodTask_MP.astype( PeriodTaskOperation ).DependentDemand, dd ) {
+ if ( numberOfLayers = 1 ) {
+ currentLayerDependentDemandQuantity := ns.Quantity();
+ }
currentLayerDependentDemandQuantity := currentLayerDependentDemandQuantity *
ns.ProcessOutput().astype( OperationOutput ).Quantity() *
dd.ProcessInput().astype( OperationInput ).Quantity();
- info( "灞傛暟锛�", numberOfLayers, " 褰撳墠渚涘簲鐨刾isp锛�", ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().Name(), " 鎬讳緵搴斿�硷細", ns.Quantity(), " 闇�瑕佷緵搴斿�硷細", currentLayerDependentDemandQuantity,
- " 褰撳墠闇�姹俻isp锛�", dd.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().Name(), " 闇�姹傚�硷細", currentLayerDependentDemandQuantity );
- info( "-----------------------------------------------------------------------------------------------------------------" );
+ // info( "灞傛暟锛�", numberOfLayers, " 褰撳墠渚涘簲鐨刾isp锛�", ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().Name(), " 鎬讳緵搴斿�硷細", ns.Quantity(), " 闇�瑕佷緵搴斿�硷細", currentLayerDependentDemandQuantity,
+ // " 褰撳墠闇�姹俻isp锛�", dd.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().Name(), " 闇�姹傚�硷細", currentLayerDependentDemandQuantity );
+ // info( "-----------------------------------------------------------------------------------------------------------------" );
CapacityAllocationResults::IterativeGeneration2( globalOTDTable,
dd.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP(),
targetDate,
@@ -42,7 +45,7 @@
}
carrc := select( carrcs, Elements, carrc, carrc.PanelMaterialCode() = ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID() );
if ( not isnull( carrc ) ) {
- info( "鎵惧埌闈㈡澘鐗╂枡..." );
+ // info( "鎵惧埌闈㈡澘鐗╂枡..." );
globalOTDTable.CapacityAllocationResults( relnew,
PanelBase := pto.Operation().UnitID(),
PanelMaterialCode := ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID(),
@@ -58,7 +61,7 @@
Description := "",
ID := OS::GenerateGUIDAsString(),
ProductID := ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID(),
- StockingPointID := "",
+ StockingPointID := ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().StockingPointID(),
UserQuantity := currentLayerDependentDemandQuantity,
ManufacturedDate := Date::MinDate()
);
@@ -70,9 +73,9 @@
PeriodTaskLaneLeg as ptll : {
targetDependentDemand := select( ptll, DependentDemand, dd, dd.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID() = ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID() );
currentLayerDependentDemandQuantity := ifexpr( numberOfLayers = 1, targetDependentDemand.Quantity(), currentLayerDependentDemandQuantity );
- info( "灞傛暟锛�", numberOfLayers," 褰撳墠渚涘簲鐨刾isp锛�", ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().Name(), " 鎬讳緵搴斿�硷細", ns.Quantity(), " 闇�瑕佷緵搴斿�硷細", currentLayerDependentDemandQuantity,
- " 褰撳墠闇�姹俻isp锛�", targetDependentDemand.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().Name(), " 闇�姹傚�硷細", currentLayerDependentDemandQuantity );
- info( "LaneLeg鍛ㄦ湡浠诲姟..." );
+ // info( "灞傛暟锛�", numberOfLayers," 褰撳墠渚涘簲鐨刾isp锛�", ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().Name(), " 鎬讳緵搴斿�硷細", ns.Quantity(), " 闇�瑕佷緵搴斿�硷細", currentLayerDependentDemandQuantity,
+ // " 褰撳墠闇�姹俻isp锛�", targetDependentDemand.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().Name(), " 闇�姹傚�硷細", currentLayerDependentDemandQuantity );
+ // info( "LaneLeg鍛ㄦ湡浠诲姟..." );
info( "-----------------------------------------------------------------------------------------------------------------" );
CapacityAllocationResults::IterativeGeneration2( globalOTDTable,
targetDependentDemand.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP(),
diff --git a/_Main/BL/Type_CapacityAndSaleBudgeChartElement/StaticMethod_TestData.qbl b/_Main/BL/Type_CapacityAndSaleBudgeChartElement/StaticMethod_TestData.qbl
index 39c29d0..3d1269f 100644
--- a/_Main/BL/Type_CapacityAndSaleBudgeChartElement/StaticMethod_TestData.qbl
+++ b/_Main/BL/Type_CapacityAndSaleBudgeChartElement/StaticMethod_TestData.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod TestData (
- ScenarioManager scenarioManager
+ GlobalOTDTable parent
)
{
Description: '鐢熸垚娴嬭瘯鏁版嵁'
@@ -11,7 +11,7 @@
info( "鐢熸垚骞村害浜ч攢棰勭畻鎶ヨ〃娴嬭瘯鏁版嵁" )
- scenarioManager.CapacityAndSaleBudgeChartElement( relflush );
+ parent.CapacityAndSaleBudgeChartElement( relflush );
for( sc := 0; sc < 4; sc := sc + 1 ) {
scenarioName := "SC" + [String]sc;
@@ -19,7 +19,7 @@
businessTypeString := "BT" + [String]i;
for( j := 1; j <= 12; j := j + 1 ) {
monthString := "MONTH" + ifexpr( j < 10, "0" + [String]j, [String]j );
- scenarioManager.CapacityAndSaleBudgeChartElement( relnew,
+ parent.CapacityAndSaleBudgeChartElement( relnew,
BusinessTypeOrPlaceOfProductionOfArray := businessTypeString,
TimeStringAndScenarioName := monthString + " - " + scenarioName,
Quantity := Real::Random( 20.0, 30.0 ) );
diff --git a/_Main/BL/Type_CapacityAndSaleBudgeChartRow/StaticMethod_CreateIfNotExist.qbl b/_Main/BL/Type_CapacityAndSaleBudgeChartRow/StaticMethod_CreateIfNotExist.qbl
index cb76a5f..76a61fb 100644
--- a/_Main/BL/Type_CapacityAndSaleBudgeChartRow/StaticMethod_CreateIfNotExist.qbl
+++ b/_Main/BL/Type_CapacityAndSaleBudgeChartRow/StaticMethod_CreateIfNotExist.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateIfNotExist (
- ScenarioManager scenarioManager,
+ GlobalOTDTable parent,
String businessType,
String placeOfProductionOfArray
) as CapacityAndSaleBudgeChartRow
@@ -9,9 +9,9 @@
TextBody:
[*
// yypsybs Sep-18-2023 (created)
- value := select( scenarioManager, CapacityAndSaleBudgeChartRow, row, row.BusinessType() = businessType and row.PlaceOfProductionOfArray() = placeOfProductionOfArray );
+ value := select( parent, CapacityAndSaleBudgeChartRow, row, row.BusinessType() = businessType and row.PlaceOfProductionOfArray() = placeOfProductionOfArray );
if( isnull( value ) ) {
- value := scenarioManager.CapacityAndSaleBudgeChartRow( relnew, BusinessType := businessType, PlaceOfProductionOfArray := placeOfProductionOfArray );
+ value := parent.CapacityAndSaleBudgeChartRow( relnew, BusinessType := businessType, PlaceOfProductionOfArray := placeOfProductionOfArray );
}
return value;
*]
diff --git a/_Main/BL/Type_CapacityAndSaleBudgeCompareItemColumn/StaticMethod_CreateIfNotExist.qbl b/_Main/BL/Type_CapacityAndSaleBudgeCompareItemColumn/StaticMethod_CreateIfNotExist.qbl
index 1e42b21..77bfe99 100644
--- a/_Main/BL/Type_CapacityAndSaleBudgeCompareItemColumn/StaticMethod_CreateIfNotExist.qbl
+++ b/_Main/BL/Type_CapacityAndSaleBudgeCompareItemColumn/StaticMethod_CreateIfNotExist.qbl
@@ -1,16 +1,16 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateIfNotExist (
- ScenarioManager manager,
+ GlobalOTDTable parent,
String columnName
) as CapacityAndSaleBudgeCompareItemColumn
{
TextBody:
[*
// yypsybs Sep-18-2023 (created)
- value := select( manager, CapacityAndSaleBudgeCompareItemColumn, item, item.ColumnName() = columnName );
+ value := select( parent, CapacityAndSaleBudgeCompareItemColumn, item, item.ColumnName() = columnName );
if( isnull( value ) ) {
- value := manager.CapacityAndSaleBudgeCompareItemColumn( relnew, ColumnName := columnName );
+ value := parent.CapacityAndSaleBudgeCompareItemColumn( relnew, ColumnName := columnName );
}
return value;
*]
diff --git a/_Main/BL/Type_CapacityAndSaleBudgeCompareItemRow/StaticMethod_CreateIfNotExist.qbl b/_Main/BL/Type_CapacityAndSaleBudgeCompareItemRow/StaticMethod_CreateIfNotExist.qbl
index e155e81..7a485f5 100644
--- a/_Main/BL/Type_CapacityAndSaleBudgeCompareItemRow/StaticMethod_CreateIfNotExist.qbl
+++ b/_Main/BL/Type_CapacityAndSaleBudgeCompareItemRow/StaticMethod_CreateIfNotExist.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateIfNotExist (
- ScenarioManager scenarioManager,
+ GlobalOTDTable parent,
String businessType,
String placeOfProductionOfArray
) as CapacityAndSaleBudgeCompareItemRow
@@ -9,9 +9,9 @@
TextBody:
[*
// yypsybs Sep-18-2023 (created)
- value := select( scenarioManager, CapacityAndSaleBudgeCompareItemRow, row, row.BusinessType() = businessType and row.PlaceOfProductionOfArray() = placeOfProductionOfArray );
+ value := select( parent, CapacityAndSaleBudgeCompareItemRow, row, row.BusinessType() = businessType and row.PlaceOfProductionOfArray() = placeOfProductionOfArray );
if( isnull( value ) ) {
- value := scenarioManager.CapacityAndSaleBudgeCompareItemRow( relnew, BusinessType := businessType, PlaceOfProductionOfArray := placeOfProductionOfArray );
+ value := parent.CapacityAndSaleBudgeCompareItemRow( relnew, BusinessType := businessType, PlaceOfProductionOfArray := placeOfProductionOfArray );
}
return value;
*]
diff --git a/_Main/BL/Type_CapacityAndSaleBudgeFilterBusinessType/StaticMethod_CreateIfNotExist.qbl b/_Main/BL/Type_CapacityAndSaleBudgeFilterBusinessType/StaticMethod_CreateIfNotExist.qbl
index 4e3f888..33a800b 100644
--- a/_Main/BL/Type_CapacityAndSaleBudgeFilterBusinessType/StaticMethod_CreateIfNotExist.qbl
+++ b/_Main/BL/Type_CapacityAndSaleBudgeFilterBusinessType/StaticMethod_CreateIfNotExist.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateIfNotExist (
- MPSync parent,
+ GlobalOTDTable parent,
String value
)
{
diff --git a/_Main/BL/Type_CapacityAndSaleBudgeFilterItem/StaticMethod_CreateIfNotExist.qbl b/_Main/BL/Type_CapacityAndSaleBudgeFilterItem/StaticMethod_CreateIfNotExist.qbl
index 02b6d70..e05188e 100644
--- a/_Main/BL/Type_CapacityAndSaleBudgeFilterItem/StaticMethod_CreateIfNotExist.qbl
+++ b/_Main/BL/Type_CapacityAndSaleBudgeFilterItem/StaticMethod_CreateIfNotExist.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateIfNotExist (
- ScenarioManager parent,
+ GlobalOTDTable parent,
String itemName
)
{
diff --git a/_Main/BL/Type_CapacityAndSaleBudgeFilterItem/StaticMethod_Initial.qbl b/_Main/BL/Type_CapacityAndSaleBudgeFilterItem/StaticMethod_Initial.qbl
index 1e15a86..14b634a 100644
--- a/_Main/BL/Type_CapacityAndSaleBudgeFilterItem/StaticMethod_Initial.qbl
+++ b/_Main/BL/Type_CapacityAndSaleBudgeFilterItem/StaticMethod_Initial.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Initial (
- ScenarioManager parent
+ GlobalOTDTable parent
)
{
Description: '鍒濆鍖栧姣旈」'
diff --git a/_Main/BL/Type_CapacityAndSaleBudgeFilterMonth/StaticMethod_Initial.qbl b/_Main/BL/Type_CapacityAndSaleBudgeFilterMonth/StaticMethod_Initial.qbl
index ae10a43..f14808d 100644
--- a/_Main/BL/Type_CapacityAndSaleBudgeFilterMonth/StaticMethod_Initial.qbl
+++ b/_Main/BL/Type_CapacityAndSaleBudgeFilterMonth/StaticMethod_Initial.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Initial (
- ScenarioManager parent
+ GlobalOTDTable parent
)
{
Description: '鍒濆鍖栧勾浠�'
diff --git a/_Main/BL/Type_CapacityAndSaleBudgeFilterPlaceOfProductionOfArray/StaticMethod_CreateIfNotExist.qbl b/_Main/BL/Type_CapacityAndSaleBudgeFilterPlaceOfProductionOfArray/StaticMethod_CreateIfNotExist.qbl
index 6bb6aff..3e96143 100644
--- a/_Main/BL/Type_CapacityAndSaleBudgeFilterPlaceOfProductionOfArray/StaticMethod_CreateIfNotExist.qbl
+++ b/_Main/BL/Type_CapacityAndSaleBudgeFilterPlaceOfProductionOfArray/StaticMethod_CreateIfNotExist.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateIfNotExist (
- MPSync parent,
+ GlobalOTDTable parent,
String value
)
{
diff --git a/_Main/BL/Type_CapacityAndSaleBudgeFilterYear/StaticMethod_Initial.qbl b/_Main/BL/Type_CapacityAndSaleBudgeFilterYear/StaticMethod_Initial.qbl
index 7fa388c..dc5898d 100644
--- a/_Main/BL/Type_CapacityAndSaleBudgeFilterYear/StaticMethod_Initial.qbl
+++ b/_Main/BL/Type_CapacityAndSaleBudgeFilterYear/StaticMethod_Initial.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Initial (
- ScenarioManager parent
+ GlobalOTDTable parent
)
{
Description: '鍒濆鍖栧勾浠�'
diff --git a/_Main/BL/Type_CustomerAndForecastOrder/Attribute_CustomerOrderID.qbl b/_Main/BL/Type_CustomerAndForecastOrder/Attribute_CustomerOrderID.qbl
new file mode 100644
index 0000000..19d7605
--- /dev/null
+++ b/_Main/BL/Type_CustomerAndForecastOrder/Attribute_CustomerOrderID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute CustomerOrderID
+{
+ #keys: '3[414382.0.554303146][414382.0.554303145][414382.0.554303147]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_CustomerAndForecastOrder/Attribute_ForecastID.qbl b/_Main/BL/Type_CustomerAndForecastOrder/Attribute_ForecastID.qbl
new file mode 100644
index 0000000..d3d12e5
--- /dev/null
+++ b/_Main/BL/Type_CustomerAndForecastOrder/Attribute_ForecastID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ForecastID
+{
+ #keys: '3[414382.0.554303156][414382.0.554303155][414382.0.554303157]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_CustomerAndForecastOrder/StaticMethod_CreateData.qbl b/_Main/BL/Type_CustomerAndForecastOrder/StaticMethod_CreateData.qbl
new file mode 100644
index 0000000..0f86052
--- /dev/null
+++ b/_Main/BL/Type_CustomerAndForecastOrder/StaticMethod_CreateData.qbl
@@ -0,0 +1,22 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod CreateData (
+ MacroPlan macroPlan
+)
+{
+ TextBody:
+ [*
+ traverse ( macroPlan, SalesDemand.astype( CustomerOrder ), co, true ) {
+ macroPlan.CustomerAndForecastOrder( relnew,
+ OrderID := co.OrderID(),
+ ProductID := co.ProductID(),
+ BusinessType := co.BusinessType(),
+ Customer := co.CustomerName(),
+ CustomerID := co.CustomerID(),
+ Quantity := co.Quantity(),
+ UnitOfMeasureName := co.UnitOfMeasureName(),
+ DemandDate := co.StartDate()
+ );
+ }
+ *]
+}
diff --git a/_Main/BL/Type_CustomerAndForecastOrder/StaticMethod_RefreshData.qbl b/_Main/BL/Type_CustomerAndForecastOrder/StaticMethod_RefreshData.qbl
new file mode 100644
index 0000000..4a04c7d
--- /dev/null
+++ b/_Main/BL/Type_CustomerAndForecastOrder/StaticMethod_RefreshData.qbl
@@ -0,0 +1,56 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod RefreshData (
+ MacroPlan owner,
+ GlobalOTDTable globalOTDTable
+)
+{
+ TextBody:
+ [*
+ // NBoTk Sep-26-2023 (created)
+
+ // 鑾峰彇宸茬粡瀛樺湪 customerOrderID 鍜宖orecastID
+ customerOrderIDs := selectvalues( owner,CustomerAndForecastOrder,c,
+ c.CustomerOrderID() <> '',
+ c.CustomerID()
+ );
+
+ forecastIDs := selectvalues( owner,CustomerAndForecastOrder,c,
+ c.ForecastID() <> '',
+ c.ForecastID()
+ );
+
+
+ // 浠庢暟鎹箹 Global_MappingCustomerOrder Global_MappingForecast 涓幏鍙栨柊鐨勮鍗曟暟鎹�
+
+ traverse( globalOTDTable,Global_MappingCustomOrder,cus)
+ {
+ if ( customerOrderIDs.Find( cus.ID() ) = -1 ) {
+ owner.CustomerAndForecastOrder( relnew,
+ OrderID := cus.OrderID(),
+ ProductID := cus.ProductID(),
+ BusinessType := cus.BusinessType(),
+ Customer := cus.Customer(),
+ CustomerID := cus.CustomerID(),
+ Quantity := cus.Quantity(),
+ UnitOfMeasureName := cus.UnitOfMeasureName(),
+ DemandDate := cus.OrderDate()
+
+ );
+ }
+ }
+
+ traverse( globalOTDTable,Global_MappingForecast,forecast)
+ {
+ if(forecastIDs.Find( forecast.ID() ) = -1 ) {
+ owner.CustomerAndForecastOrder( relnew,
+ ProductID := forecast.ProductID(),
+ BusinessType := forecast.BusinessType(),
+ Quantity := forecast.Quantity(),
+ UnitOfMeasureName := forecast.UnitOfMeasureName(),
+ DemandDate := forecast.EndDate()
+ );
+ }
+ }
+ *]
+}
diff --git a/_Main/BL/Type_CustomerOrder/Attribute_BusinessType.qbl b/_Main/BL/Type_CustomerOrder/Attribute_BusinessType.qbl
new file mode 100644
index 0000000..a39b026
--- /dev/null
+++ b/_Main/BL/Type_CustomerOrder/Attribute_BusinessType.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute BusinessType
+{
+ #keys: '3[414382.0.554303217][414382.0.554303216][414382.0.554303218]'
+ Description: '浜嬩笟閮�'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_CustomerOrder/Attribute_CustomerPolicy.qbl b/_Main/BL/Type_CustomerOrder/Attribute_CustomerPolicy.qbl
new file mode 100644
index 0000000..6647d7a
--- /dev/null
+++ b/_Main/BL/Type_CustomerOrder/Attribute_CustomerPolicy.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute CustomerPolicy
+{
+ #keys: '3[414382.0.554014841][414382.0.554014840][414382.0.554014842]'
+ Description: '瀹㈡埛绛栫暐'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_CustomerOrder/Attribute_IsAvailable.qbl b/_Main/BL/Type_CustomerOrder/Attribute_IsAvailable.qbl
new file mode 100644
index 0000000..1a6ca55
--- /dev/null
+++ b/_Main/BL/Type_CustomerOrder/Attribute_IsAvailable.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute IsAvailable
+{
+ #keys: '3[414382.0.554303237][414382.0.554303236][414382.0.554303238]'
+ Description: '璁㈠崟鏄惁鍙備笌璁″垝'
+ ValueType: Boolean
+}
diff --git a/_Main/BL/Type_CustomerOrder/Attribute_OrderTime.qbl b/_Main/BL/Type_CustomerOrder/Attribute_OrderTime.qbl
new file mode 100644
index 0000000..e89a41d
--- /dev/null
+++ b/_Main/BL/Type_CustomerOrder/Attribute_OrderTime.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute OrderTime
+{
+ #keys: '3[414382.0.554303277][414382.0.554303276][414382.0.554303278]'
+ Description: '璁㈠崟涓嬪崟鏃堕棿'
+ ValueType: Date
+}
diff --git a/_Main/BL/Type_CustomerOrder/Attribute_OrderType.qbl b/_Main/BL/Type_CustomerOrder/Attribute_OrderType.qbl
new file mode 100644
index 0000000..4efd905
--- /dev/null
+++ b/_Main/BL/Type_CustomerOrder/Attribute_OrderType.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute OrderType
+{
+ #keys: '3[414382.0.554303227][414382.0.554303226][414382.0.554303228]'
+ Description: '璁㈠崟绫诲瀷'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_CustomerOrder/Attribute_ProductGrade.qbl b/_Main/BL/Type_CustomerOrder/Attribute_ProductGrade.qbl
new file mode 100644
index 0000000..76e256b
--- /dev/null
+++ b/_Main/BL/Type_CustomerOrder/Attribute_ProductGrade.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductGrade
+{
+ #keys: '3[414382.0.554303247][414382.0.554303246][414382.0.554303248]'
+ Description: '浜у搧绛夌骇'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_CustomerOrder/Attribute_SegmentPriority.qbl b/_Main/BL/Type_CustomerOrder/Attribute_SegmentPriority.qbl
new file mode 100644
index 0000000..6f488d6
--- /dev/null
+++ b/_Main/BL/Type_CustomerOrder/Attribute_SegmentPriority.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute SegmentPriority
+{
+ #keys: '3[414382.0.554303257][414382.0.554303256][414382.0.554303258]'
+ Description: '缁嗗垎甯傚満浼樺厛绾�'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_CustomerOrder/Attribute_SheetProfitability.qbl b/_Main/BL/Type_CustomerOrder/Attribute_SheetProfitability.qbl
new file mode 100644
index 0000000..726b8ab
--- /dev/null
+++ b/_Main/BL/Type_CustomerOrder/Attribute_SheetProfitability.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute SheetProfitability
+{
+ #keys: '3[414382.0.554303267][414382.0.554303266][414382.0.554303268]'
+ Description: '澶у紶鐩堝埄姘村钩'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_CustomerOrder/StaticMethod_CreateOrUpdate.qbl b/_Main/BL/Type_CustomerOrder/StaticMethod_CreateOrUpdate.qbl
index e428bb7..1728622 100644
--- a/_Main/BL/Type_CustomerOrder/StaticMethod_CreateOrUpdate.qbl
+++ b/_Main/BL/Type_CustomerOrder/StaticMethod_CreateOrUpdate.qbl
@@ -58,7 +58,7 @@
// 鏂板/鏇存柊
result := CustomerOrder::FindById( macroPlan, id );
if( isnull( result ) ) {
- CustomerOrder::Create( product, stockingPoint, id, orderDate, quantity, price,
+ result := CustomerOrder::Create( product, stockingPoint, id, orderDate, quantity, price,
priorityName, salesSegmentName, currencyId, unitOfMeasureName,
false, customerName, customerId, orderId, orderLineId, true, true, true );
} else {
diff --git a/_Main/BL/Type_FillingCapacityOrder/Attribute_ID.qbl b/_Main/BL/Type_FillingCapacityOrder/Attribute_ID.qbl
new file mode 100644
index 0000000..a15a6b3
--- /dev/null
+++ b/_Main/BL/Type_FillingCapacityOrder/Attribute_ID.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ID
+{
+ #keys: '3[414702.0.525344991][414702.0.525344990][414702.0.525344992]'
+ IsReadOnly: true
+ ValueType: String
+}
diff --git a/_Main/BL/Type_FillingCapacityOrder/Attribute_OrderType.qbl b/_Main/BL/Type_FillingCapacityOrder/Attribute_OrderType.qbl
index da22dcc..29434aa 100644
--- a/_Main/BL/Type_FillingCapacityOrder/Attribute_OrderType.qbl
+++ b/_Main/BL/Type_FillingCapacityOrder/Attribute_OrderType.qbl
@@ -3,5 +3,6 @@
Attribute OrderType
{
#keys: '3[414382.0.394820190][414382.0.394820189][414382.0.394820191]'
+ Description: '璁㈠崟绫诲瀷鍖呮嫭锛堝弽绛俱�佹巿鏉冿級'
ValueType: String
}
diff --git a/_Main/BL/Type_FillingCapacityOrder/Attribute_State.qbl b/_Main/BL/Type_FillingCapacityOrder/Attribute_State.qbl
new file mode 100644
index 0000000..fa630ba
--- /dev/null
+++ b/_Main/BL/Type_FillingCapacityOrder/Attribute_State.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute State
+{
+ #keys: '3[414702.0.533501330][414702.0.533501329][414702.0.533501331]'
+ Description: '鐘舵�侊紙鏈啿鍑忋�佸凡鍐插噺锛�'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_FillingCapacityOrder/TypeIndex_FillingCapacityOrderTypeIndex.qbl b/_Main/BL/Type_FillingCapacityOrder/TypeIndex_FillingCapacityOrderTypeIndex.qbl
new file mode 100644
index 0000000..41296eb
--- /dev/null
+++ b/_Main/BL/Type_FillingCapacityOrder/TypeIndex_FillingCapacityOrderTypeIndex.qbl
@@ -0,0 +1,12 @@
+Quintiq file version 2.0
+#parent: #root
+TypeIndex FillingCapacityOrderTypeIndex
+{
+ Attributes:
+ [
+ TypeIndexAttribute
+ {
+ ModelElement: ID
+ }
+ ]
+}
diff --git a/_Main/BL/Type_FilllingCapacityOrderScheme/StaticMethod_CreateFillingCapacityOrderScheme.qbl b/_Main/BL/Type_FilllingCapacityOrderScheme/StaticMethod_CreateFillingCapacityOrderScheme.qbl
index 15c7113..3f0ea88 100644
--- a/_Main/BL/Type_FilllingCapacityOrderScheme/StaticMethod_CreateFillingCapacityOrderScheme.qbl
+++ b/_Main/BL/Type_FilllingCapacityOrderScheme/StaticMethod_CreateFillingCapacityOrderScheme.qbl
@@ -8,7 +8,7 @@
TextBody:
[*
// NBoTk Sep-14-2023 (created)
-
+ info('test' )
fillingCapacityOrders := selectset( owner,FillingCapacityOrder,fillingOrder,
not fillingOrder.IsFilling()
);
@@ -34,8 +34,7 @@
salesSegmentName := salesSegmentNameList.Concatenate( ",")
schemeDate := Date::Today();
-
- filllingCapacityOrderScheme := owner.FilllingCapacityOrderScheme(relnew,SchemeName := schemeName,SchemeDate := schemeDate,BusinessType := businessType,Customer := customer,CustomerID := customerID,
+ owner.FilllingCapacityOrderScheme(relnew,SchemeName := schemeName,SchemeDate := schemeDate,BusinessType := businessType,Customer := customer,CustomerID := customerID,
SalesSegmentName := salesSegmentName);
@@ -43,27 +42,35 @@
{
e.SchemeName(schemeName);
e.IsFilling(true);
- filllingCapacityOrderScheme.FillingCapacityOrder(relinsert, e);
}
-
- // 鐗堟湰鍙�
- verNoOrder := select( filllingCapacityOrderScheme,FillingCapacityOrder,o,
- o.VerNo() <> ''
- )
// 闇�瑕佸皢閿�鍞鍗曞拰棰勫敭璁㈠崟鍚屾椂淇濆瓨鍒版柟妗堜腑
- traverse( owner,CustomerAndForecastOrder,order)
- {
-
- fillingOrder := owner.FillingCapacityOrder(relnew,BusinessType := order.BusinessType(),Customer := order.Customer(),CustomerID := order.CustomerID(),
- DemandDate := order.DemandDate(),ForecastDemandDate := order.ForecastDemandDate(),IsFilling := true,
- OrderType := '鎻愭媺',PanelBigSheetQuantity := order.PanelBigSheetQuantity(),ProductID := order.ProductID(),
- Quantity := order.Quantity(),SalesSegmentName := order.SalesSegmentName(),SalesAmount := order.SalesAmount(),
- SchemeName := schemeName,StockingPointID := order.StockingPointID(),UnitOfMeasureName := order.UnitOfMeasureName(),
- VerNo := verNoOrder.VerNo()
- );
-
- filllingCapacityOrderScheme.FillingCapacityOrder(relinsert, fillingOrder);
- }
+ //traverse( owner,CustomerAndForecastOrder,order)
+ //{
+ //
+ // fillingOrder := owner.FillingCapacityOrder(relnew,BusinessType := order.BusinessType(),Customer := order.Customer(),CustomerID := order.CustomerID(),
+ // DemandDate := order.DemandDate(),ForecastDemandDate := order.ForecastDemandDate(),IsFilling := true,
+ // OrderType := '鎻愭媺',PanelBigSheetQuantity := order.PanelBigSheetQuantity(),ProductID := order.ProductID(),
+ // Quantity := order.Quantity(),SalesSegmentName := order.SalesSegmentName(),SalesAmount := order.SalesAmount(),
+ // SchemeName := schemeName,StockingPointID := order.StockingPointID(),UnitOfMeasureName := order.UnitOfMeasureName(),
+ // VerNo := order.VerNo()
+ // );
+ //
+ // filllingCapacityOrderScheme.FillingCapacityOrder(relinsert, fillingOrder);
+ //}
+
+ //// 鏂板鍙嶇/鎺堟潈璁㈠崟 璁㈠崟淇℃伅鍔犲叆濉骇
+ //traverse( owner,H_Forecast,hf)
+ //{
+ // fillingOrder := owner.FillingCapacityOrder(relnew,BusinessType := hf.Department(),Customer := hf.CustomName(),CustomerID := hf.CustomCode(),
+ // DemandDate := Date::Today(),ForecastDemandDate := Date::Today(),IsFilling := true,
+ // OrderType := '鎻愭媺',PanelBigSheetQuantity := 0,ProductID := '',
+ // Quantity := hf.ForecastQty(),SalesSegmentName := '',SalesAmount := 0,
+ // SchemeName := schemeName,StockingPointID := '',UnitOfMeasureName := hf.Util(),
+ // VerNo := ''
+ // );
+ //
+ // filllingCapacityOrderScheme.FillingCapacityOrder(relinsert, fillingOrder);
+ //}
*]
}
diff --git a/_Main/BL/Type_FilllingCapacityOrderScheme/StaticMethod_DeleteDetails.qbl b/_Main/BL/Type_FilllingCapacityOrderScheme/StaticMethod_DeleteDetails.qbl
new file mode 100644
index 0000000..7eeebb0
--- /dev/null
+++ b/_Main/BL/Type_FilllingCapacityOrderScheme/StaticMethod_DeleteDetails.qbl
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod DeleteDetails (
+ MacroPlan owner,
+ String schemeName
+)
+{
+ TextBody:
+ [*
+ // NBoTk Sep-25-2023 (created)
+
+ details := selectset( owner,FillingCapacityOrder,f,true);
+
+ traverse( details,Elements,e)
+ {
+ owner.FillingCapacityOrder(reldelete,e);
+ }
+ *]
+}
diff --git "a/_Main/BL/Type_GlobalDTOTable/Method_CapacityAndSaleBudgeChart\043156.qbl" "b/_Main/BL/Type_GlobalDTOTable/Method_CapacityAndSaleBudgeChart\043156.qbl"
new file mode 100644
index 0000000..6afbad7
--- /dev/null
+++ "b/_Main/BL/Type_GlobalDTOTable/Method_CapacityAndSaleBudgeChart\043156.qbl"
@@ -0,0 +1,301 @@
+Quintiq file version 2.0
+#parent: #root
+Method CapacityAndSaleBudgeChart (
+ MacroPlans macroPlans,
+ String saleOrCapacity,
+ String groupBy,
+ String byBusinessTypeOrByOrgCode,
+ CapacityAndSaleBudgeFilterBusinessTypes businessTypes,
+ CapacityAndSaleBudgeFilterPlaceOfProductionOfArrays placeOfProductionOfArrays,
+ CapacityAndSaleBudgeFilterYears years,
+ CapacityAndSaleBudgeFilterMonths months,
+ MPSync mpSync,
+ GlobalOTDTable otdTable,
+ MacroPlan mappingParent
+)
+{
+ Description: '鎸夊叆鍙傚鐞嗘暟鎹紝浜х敓闇�瑕佺殑CapacityAndSaleBudgeChartElement'
+ TextBody:
+ [*
+ // yypsybs Sep-19-2023 (created)
+ // true, false
+ info( saleOrCapacity );
+ // 鏈�;瀛e害;鍗婂勾;骞�
+ info( groupBy );
+ // 闈㈡澘鍩哄湴;浜嬩笟閮�
+ info( byBusinessTypeOrByOrgCode );
+ traverse( businessTypes, Elements, businessType ) {
+ debuginfo( "businessType : " + businessType.BusinessType() );
+ }
+ traverse( placeOfProductionOfArrays, Elements, placeOfProductionOfArray ) {
+ debuginfo( "placeOfProductionOfArray : " + placeOfProductionOfArray.PlaceOfProductionOfArray() );
+ }
+ traverse( macroPlans, Elements, macroPlan ) {
+ debuginfo( "macroPlan : " + macroPlan.ScenarioName() );
+ }
+ // 骞翠唤涓嶉�夋椂鍏ㄩ��
+ if( years.Size() = 0 ) {
+ years := selectsortedset( this, CapacityAndSaleBudgeFilterYear, item, true, item.YearNo() );
+ }
+ traverse( years, Elements, year ) {
+ debuginfo( "yearNo : " + [String]year.YearNo() );
+ }
+ // 鏈堜唤涓嶉�夋椂鍏ㄩ��
+ if( months.Size() = 0 ) {
+ months := selectsortedset( this, CapacityAndSaleBudgeFilterMonth, item, true, item.MonthNo() );
+ }
+ traverse( months, Elements, month ) {
+ debuginfo( "monthNo : " + [String]month.MonthNo() );
+ }
+
+ // ====娓呯悊鏃ф暟鎹�====
+ this.CapacityAndSaleBudgeChartRow( relflush );
+ this.CapacityAndSaleBudgeChartElement( relflush );
+
+ // ====鎸夐潰鏉垮熀鍦板拰浜嬩笟閮ㄥ浜у搧杩涜绛涢�夊垎缁�====
+ historyData := selectset( mpSync, MappingCapacityAndSaleBudge, item, true );
+ if( businessTypes.Size() > 0 ) {
+ businessTypeStrings := selectuniquevalues( businessTypes, Elements, item, true, item.BusinessType() );
+ historyData := selectset( historyData, Elements, item, businessTypeStrings.Find( item.BusinessType() ) > -1 );
+ }
+ if( placeOfProductionOfArrays.Size() > 0 ) {
+ placeOfProductionOfArrayStrings := selectuniquevalues( placeOfProductionOfArrays, Elements, item, true, item.PlaceOfProductionOfArray() );
+ historyData := selectset( historyData, Elements, item, placeOfProductionOfArrayStrings.Find( item.PlaceOfProductionOfArray() ) > -1 );
+ }
+ //info( "historyData : " + [String]historyData.Size() );
+ traverse( historyData, Elements, item ) {
+ row := CapacityAndSaleBudgeChartRow::CreateIfNotExist( this, item.BusinessType(), item.PlaceOfProductionOfArray() );
+ // 璁板綍姣忚鍖呭惈鍝簺product
+ CapacityAndSaleBudgeChartRowProduct::CreateIfNotExist( row, item.ProductCode() );
+ }
+ rows := selectset( this, CapacityAndSaleBudgeChartRow, item, true );
+ //info( "rows : " + [String]rows.Size() );
+ placeOfProductionOfArrayList := selectuniquevalues( historyData, Elements, item, item.PlaceOfProductionOfArray() );
+ businessTypeList := selectuniquevalues( historyData, Elements, item, item.BusinessType() );
+ // 鐢熸垚鍥捐〃鍏冪礌
+ traverse( years, Elements, year ) {
+ debuginfo( "process year start : " + [String]year.YearNo() );
+ if( byBusinessTypeOrByOrgCode = "闈㈡澘鍩哄湴" and groupBy = "骞�" ) {
+ // 鐩爣
+ traverse( placeOfProductionOfArrayList, Elements, placeOfProductionOfArray ) {
+ productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByPlaceOfProductionOfArray( rows, placeOfProductionOfArray );
+ this.CapacityAndSaleBudgeChartElement( relnew,
+ TimeStringAndScenarioName := [String]year.YearNo() + "骞�-鐩爣",
+ BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ MappingAnnualBudget::GetSheetByYear( productCodeList, mpSync, year.YearNo() ),
+ MappingCapacityAndSaleBudge::GetSheetByYear( productCodeList, mpSync, year.YearNo() ) )
+ );
+ // S&OP
+ traverse( macroPlans, Elements, macroPlan ) {
+ this.CapacityAndSaleBudgeChartElement( relnew,
+ TimeStringAndScenarioName := [String]year.YearNo() + "骞�-" + macroPlan.ScenarioName(),
+ BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ MappingCustomerOrder::GetNewSupplyByYear( productCodeList, macroPlan, year.YearNo() ),
+ Product_MP::GetNewSupplyByYear( productCodeList, macroPlan, year.YearNo() )
+ )
+ );
+ }
+ }
+ }
+ if ( byBusinessTypeOrByOrgCode = "闈㈡澘鍩哄湴" and groupBy = "鍗婂勾" ) {
+ for( halfNo := 1; halfNo <= 2; halfNo := halfNo + 1 ) {
+ traverse( placeOfProductionOfArrayList, Elements, placeOfProductionOfArray ) {
+ productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByPlaceOfProductionOfArray( rows, placeOfProductionOfArray );
+ this.CapacityAndSaleBudgeChartElement( relnew,
+ TimeStringAndScenarioName := [String]year.YearNo() + "骞�-" + ifexpr( halfNo = 1, "涓�", "涓�" ) + "鍗婂勾-鐩爣",
+ BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ MappingAnnualBudget::GetSheetByHalfYear( productCodeList, mpSync, year.YearNo(), halfNo ),
+ MappingCapacityAndSaleBudge::GetSheetByHalfYear( productCodeList, mpSync, year.YearNo(), halfNo ) )
+ );
+ // S&OP
+ traverse( macroPlans, Elements, macroPlan ) {
+ this.CapacityAndSaleBudgeChartElement( relnew,
+ TimeStringAndScenarioName := [String]year.YearNo() + "骞�-" + ifexpr( halfNo = 1, "涓�", "涓�" ) + "鍗婂勾-" + macroPlan.ScenarioName(),
+ BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ MappingCustomerOrder::GetNewSupplyByHalfYear( productCodeList, macroPlan, year.YearNo(), halfNo ),
+ Product_MP::GetNewSupplyByHalfYear( productCodeList, macroPlan, year.YearNo(), halfNo )
+ )
+ );
+ }
+ }
+ }
+ }
+ if ( byBusinessTypeOrByOrgCode = "闈㈡澘鍩哄湴" and groupBy = "瀛e害" ) {
+ for( seasonNo := 1; seasonNo <= 4; seasonNo := seasonNo + 1 ) {
+ traverse( placeOfProductionOfArrayList, Elements, placeOfProductionOfArray ) {
+ productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByPlaceOfProductionOfArray( rows, placeOfProductionOfArray );
+ // info( "productCodeList : " + [String]productCodeList.Size() );
+ // info( "MappingCapacityAndSaleBudge::GetSheetBySeason : " + [String]MappingCapacityAndSaleBudge::GetSheetBySeason( productCodeList, mpSync, [Number]year, seasonNo ) );
+ // info( "seasonNo : " + [String]seasonNo );
+ this.CapacityAndSaleBudgeChartElement( relnew,
+ TimeStringAndScenarioName := [String]year.YearNo() + "骞�-绗�" + [String]seasonNo + "瀛e害-鐩爣",
+ BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ MappingAnnualBudget::GetSheetBySeason( productCodeList, mpSync, year.YearNo(), seasonNo ),
+ MappingCapacityAndSaleBudge::GetSheetBySeason( productCodeList, mpSync, year.YearNo(), seasonNo ) )
+ );
+ // info( "productCodeList : " + [String]productCodeList.Size() );
+ // S&OP
+ traverse( macroPlans, Elements, macroPlan ) {
+ this.CapacityAndSaleBudgeChartElement( relnew,
+ TimeStringAndScenarioName := [String]year.YearNo() + "骞�-绗�" + [String]seasonNo + "瀛e害-" + macroPlan.ScenarioName(),
+ BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ MappingCustomerOrder::GetNewSupplyBySeason( productCodeList, macroPlan, year.YearNo(), seasonNo ) ,
+ Product_MP::GetNewSupplyBySeason( productCodeList, macroPlan, year.YearNo(), seasonNo )
+ )
+ );
+ }
+ }
+ }
+ }
+ if ( byBusinessTypeOrByOrgCode = "闈㈡澘鍩哄湴" and groupBy = "鏈�" ) {
+ traverse( months, Elements, month ) {
+ info( "process month start : " + [String]month.MonthNo() );
+ monthNoString := ifexpr( month.MonthNo() <= 9, "0" + [String]month.MonthNo(), [String]month.MonthNo() );
+ traverse( placeOfProductionOfArrayList, Elements, placeOfProductionOfArray ) {
+ productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByPlaceOfProductionOfArray( rows, placeOfProductionOfArray );
+ this.CapacityAndSaleBudgeChartElement( relnew,
+ TimeStringAndScenarioName := [String]year.YearNo() + "骞�-绗�" + monthNoString + "鏈�-鐩爣",
+ BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ MappingAnnualBudget::GetSheetByMonth( productCodeList, mpSync, year.YearNo(), month.MonthNo() ),
+ MappingCapacityAndSaleBudge::GetSheetByMonth( productCodeList, mpSync, year.YearNo(), month.MonthNo() ) )
+ );
+ // S&OP
+ traverse( macroPlans, Elements, macroPlan ) {
+ this.CapacityAndSaleBudgeChartElement( relnew,
+ TimeStringAndScenarioName := [String]year.YearNo() + "骞�-绗�" + monthNoString + "鏈�-" + macroPlan.ScenarioName(),
+ BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ MappingCustomerOrder::GetNewSupplyByMonth( productCodeList, macroPlan, year.YearNo(), month.MonthNo() ),
+ Product_MP::GetNewSupplyByMonth( productCodeList, macroPlan, year.YearNo(), month.MonthNo() )
+ )
+ );
+ }
+ }
+ info( "process month end : " + [String]month.MonthNo() );
+ }
+ }
+ if( byBusinessTypeOrByOrgCode = "浜嬩笟閮�" and groupBy = "骞�" ) {
+ // 鐩爣
+ traverse( businessTypeList, Elements, businessType ) {
+ productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByBusinessType( rows, businessType );
+ this.CapacityAndSaleBudgeChartElement( relnew,
+ TimeStringAndScenarioName := [String]year.YearNo() + "骞�-鐩爣",
+ BusinessTypeOrPlaceOfProductionOfArray := businessType,
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ MappingAnnualBudget::GetSheetByYear( productCodeList, mpSync, year.YearNo() ),
+ MappingCapacityAndSaleBudge::GetSheetByYear( productCodeList, mpSync, year.YearNo() ) )
+ );
+ // S&OP
+ traverse( macroPlans, Elements, macroPlan ) {
+ this.CapacityAndSaleBudgeChartElement( relnew,
+ TimeStringAndScenarioName := [String]year.YearNo() + "骞�-" + macroPlan.ScenarioName(),
+ BusinessTypeOrPlaceOfProductionOfArray := businessType,
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ MappingCustomerOrder::GetNewSupplyByYear( productCodeList, macroPlan, year.YearNo() ) ,
+ Product_MP::GetNewSupplyByYear( productCodeList, macroPlan, year.YearNo() )
+ )
+ );
+ }
+ }
+ }
+ if ( byBusinessTypeOrByOrgCode = "浜嬩笟閮�" and groupBy = "鍗婂勾" ) {
+ for( halfNo := 1; halfNo <= 2; halfNo := halfNo + 1 ) {
+ traverse( businessTypeList, Elements, businessType ) {
+ productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByBusinessType( rows, businessType );
+ this.CapacityAndSaleBudgeChartElement( relnew,
+ TimeStringAndScenarioName := [String]year.YearNo() + "骞�-" + ifexpr( halfNo = 1, "涓�", "涓�" ) + "鍗婂勾-鐩爣",
+ BusinessTypeOrPlaceOfProductionOfArray := businessType,
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ MappingAnnualBudget::GetSheetByHalfYear( productCodeList, mpSync, year.YearNo(), halfNo ),
+ MappingCapacityAndSaleBudge::GetSheetByHalfYear( productCodeList, mpSync, year.YearNo(), halfNo ) )
+ );
+ // S&OP
+ traverse( macroPlans, Elements, macroPlan ) {
+ this.CapacityAndSaleBudgeChartElement( relnew,
+ TimeStringAndScenarioName := [String]year.YearNo() + "骞�-" + ifexpr( halfNo = 1, "涓�", "涓�" ) + "鍗婂勾-" + macroPlan.ScenarioName(),
+ BusinessTypeOrPlaceOfProductionOfArray := businessType,
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ MappingCustomerOrder::GetNewSupplyByHalfYear( productCodeList, macroPlan, year.YearNo(), halfNo ) ,
+ Product_MP::GetNewSupplyByHalfYear( productCodeList, macroPlan, year.YearNo(), halfNo )
+ )
+ );
+ }
+ }
+ }
+ }
+ if ( byBusinessTypeOrByOrgCode = "浜嬩笟閮�" and groupBy = "瀛e害" ) {
+ for( seasonNo := 1; seasonNo <= 4; seasonNo := seasonNo + 1 ) {
+ debuginfo( "process season start : " + [String]seasonNo );
+ traverse( businessTypeList, Elements, businessType ) {
+ productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByBusinessType( rows, businessType );
+ this.CapacityAndSaleBudgeChartElement( relnew,
+ TimeStringAndScenarioName := [String]year.YearNo() + "骞�-绗�" + [String]seasonNo + "瀛e害-鐩爣",
+ BusinessTypeOrPlaceOfProductionOfArray := businessType,
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ MappingAnnualBudget::GetSheetBySeason( productCodeList, mpSync, year.YearNo(), seasonNo ),
+ MappingCapacityAndSaleBudge::GetSheetBySeason( productCodeList, mpSync, year.YearNo(), seasonNo ) )
+ );
+ // S&OP
+ traverse( macroPlans, Elements, macroPlan ) {
+ this.CapacityAndSaleBudgeChartElement( relnew,
+ TimeStringAndScenarioName := [String]year.YearNo() + "骞�-绗�" + [String]seasonNo + "瀛e害-" + macroPlan.ScenarioName(),
+ BusinessTypeOrPlaceOfProductionOfArray := businessType,
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ MappingCustomerOrder::GetNewSupplyBySeason( productCodeList, macroPlan, year.YearNo(), seasonNo ),
+ Product_MP::GetNewSupplyBySeason( productCodeList, macroPlan, year.YearNo(), seasonNo )
+ )
+ );
+ }
+ }
+ info( "process season end : " + [String]seasonNo );
+ }
+ }
+ if ( byBusinessTypeOrByOrgCode = "浜嬩笟閮�" and groupBy = "鏈�" ) {
+ traverse( months, Elements, month ) {
+ debuginfo( "process month start : " + [String]month.MonthNo() );
+ monthNoString := ifexpr( month.MonthNo() <= 9, "0" + [String]month.MonthNo(), [String]month.MonthNo() );
+ traverse( businessTypeList, Elements, businessType ) {
+ productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByBusinessType( rows, businessType );
+ this.CapacityAndSaleBudgeChartElement( relnew,
+ TimeStringAndScenarioName := [String]year.YearNo() + "骞�-绗�" + monthNoString + "鏈�-鐩爣",
+ BusinessTypeOrPlaceOfProductionOfArray := businessType,
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ MappingCapacityAndSaleBudge::GetSheetByMonth( productCodeList, mpSync, year.YearNo(), month.MonthNo() ),
+ MappingAnnualBudget::GetSheetByMonth( productCodeList, mpSync, year.YearNo(), month.MonthNo() ) )
+ );
+ // S&OP
+ traverse( macroPlans, Elements, macroPlan ) {
+ this.CapacityAndSaleBudgeChartElement( relnew,
+ TimeStringAndScenarioName := [String]year.YearNo() + "骞�-绗�" + monthNoString + "鏈�-" + macroPlan.ScenarioName(),
+ BusinessTypeOrPlaceOfProductionOfArray := businessType,
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ MappingCustomerOrder::GetNewSupplyByMonth( productCodeList, macroPlan, year.YearNo(), month.MonthNo() ) ,
+ Product_MP::GetNewSupplyByMonth( productCodeList, macroPlan, year.YearNo(), month.MonthNo() )
+ )
+ );
+ }
+ }
+ debuginfo( "process month end : " + [String]month.MonthNo() );
+ }
+ }
+ debuginfo( "process year end : " + [String]year.YearNo() )
+ }
+ //info( "CapacityAndSaleBudgeChartElement : " + [String]selectset( this, CapacityAndSaleBudgeChartElement, item, true ).Size() );
+ //traverse( this, CapacityAndSaleBudgeChartRow, row ) {
+ // info( "==鈫�==" );
+ // info( row.BusinessType() );
+ // info( row.PlaceOfProductionOfArray() );
+ // elements := selectset( row, CapacityAndSaleBudgeChartRowProduct, cell, true );
+ // info( elements.Size() );
+ // info( row.GetProductCodes().Concatenate( " | " ) );
+ // info( "==鈫�==" );
+ //}
+ *]
+}
diff --git a/_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeChart.qbl b/_Main/BL/Type_GlobalDTOTable/Method_CapacityAndSaleBudgeChart.qbl
similarity index 100%
rename from _Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeChart.qbl
rename to _Main/BL/Type_GlobalDTOTable/Method_CapacityAndSaleBudgeChart.qbl
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_CapacityAndSaleBudgeCompare.qbl b/_Main/BL/Type_GlobalDTOTable/Method_CapacityAndSaleBudgeCompare.qbl
new file mode 100644
index 0000000..90a0bff
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/Method_CapacityAndSaleBudgeCompare.qbl
@@ -0,0 +1,212 @@
+Quintiq file version 2.0
+#parent: #root
+Method CapacityAndSaleBudgeCompare (
+ MacroPlans macroPlans,
+ CapacityAndSaleBudgeFilterItems items,
+ CapacityAndSaleBudgeFilterYears years,
+ CapacityAndSaleBudgeFilterMonths months,
+ MPSync mpSync,
+ GlobalOTDTable otdTable,
+ MacroPlan mappingParent
+)
+{
+ Description: 'todo : mappingParent鏀逛负mpSync, random鍒犱簡'
+ TextBody:
+ [*
+ // yypsybs Sep-18-2023 (created)
+ // ====涓嶉�夋椂榛樿鍏ㄩ��====
+ if( years.Size() = 0 ) {
+ years := selectsortedset( this, CapacityAndSaleBudgeFilterYear, item, item.YearNo() );
+ }
+ if( months.Size() = 0 ) {
+ months := selectsortedset( this, CapacityAndSaleBudgeFilterMonth, item, item.MonthNo() );
+ }
+ traverse( macroPlans, Elements, item ) {
+ debuginfo( "scenario : " + item.ScenarioName() );
+ }
+ traverse( items, Elements, item ) {
+ debuginfo( "item : " + item.ItemName() );
+ }
+ traverse( years, Elements, item ) {
+ debuginfo( "year : " + [String]item.YearNo() );
+ }
+ traverse( months, Elements, item ) {
+ debuginfo( "month : " + [String]item.MonthNo() );
+ }
+ // ====娓呯悊鏃ф暟鎹�====
+ this.CapacityAndSaleBudgeCompareItemRow( relflush );
+ this.CapacityAndSaleBudgeCompareItemColumn( relflush );
+ // ====姹囨�绘墍鏈夊嚭鐜扮殑浜у搧====
+ historyData := selectset( mpSync, MappingCapacityAndSaleBudge, item, true );
+ debuginfo( "historyData : " + [String]historyData.Size() )
+ traverse( historyData, Elements, one ) {
+ productCode := one.ProductCode();
+ MappingBOM::CreateTestData( mappingParent, "浜嬩笟閮�" + [String](productCode.Length() mod 3), [String](productCode.Length() mod 4), productCode );
+ boms := selectset( mappingParent, MappingBOM, bom, bom.ProductCode() = productCode );
+ if( boms.Size() > 0 ) {
+ bom := boms.First();
+ businessType := bom.BusinessType();
+ placeOfProductionOfArray := one.PlaceOfProductionOfArray();
+ // 鐩稿悓闈㈡澘鍩哄湴鍜屼簨涓氶儴鐨勬斁涓�琛�
+ row := CapacityAndSaleBudgeCompareItemRow::CreateIfNotExist( this, businessType, placeOfProductionOfArray );
+ // 璁板綍姣忚鍖呭惈鍝簺product
+ CapacityAndSaleBudgeCompareItemRowProduct::CreateIfNotExist( row, productCode );
+ } else {
+ debuginfo( "no boms for product : " + productCode );
+ }
+ }
+ debuginfo( "CapacityAndSaleBudgeCompareItemRow : " + [String]selectset( this, CapacityAndSaleBudgeCompareItemRow, item, true ).Size() );
+ // ====浠庡乏鍚戝彸鐢熸垚鍒楀ご涓庡唴瀹�====
+ // 浜嬩笟閮紝缁勭粐
+ debuginfo( "dealing businessType and placeOfProductionOfArray" )
+ columnBusinessType := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "浜嬩笟閮�" );
+ columnPlaceOfProductionOfArray := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "闈㈡澘鍩哄湴" );
+ traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
+ cell := columnBusinessType.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := row.BusinessType() );
+ cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
+ cell := columnPlaceOfProductionOfArray.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := row.PlaceOfProductionOfArray() );
+ cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
+ }
+ // 闈㈡澘鍒嗛厤閲� - 骞村害棰勭畻 (sheets)
+ // 鏍煎紡锛� 闈㈡澘鍒嗛厤閲� - 骞� - 鏈堬紙1-12 & total锛� - 骞村害棰勭畻/scenarioName
+ info( "dealing 闈㈡澘鍒嗛厤閲�" )
+ if( CapacityAndSaleBudgeFilterItem::Contains( items, "闈㈡澘鍒嗛厤閲�" ) ) {
+ traverse( years, Elements, year ) {
+ debuginfo( "闈㈡澘鍒嗛厤閲�" + [String]year.YearNo() + "骞�" );
+ // 鍘嗗彶鏁版嵁
+ debuginfo( "闈㈡澘鍒嗛厤閲�" + [String]year.YearNo() + "骞村巻鍙叉暟鎹�" );
+ traverse( months, Elements, month ) {
+ columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "闈㈡澘鍒嗛厤閲�-" + [String]year.YearNo() + "骞�-" + [String]month.MonthNo() + "鏈�-骞村害棰勭畻" );
+ traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
+ cellReal := MappingCapacityAndSaleBudge::GetSheetByMonth( row.GetProductCodes(), mpSync, DateTime::Now().Year(), month.MonthNo() );
+ cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
+ cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
+ }
+ }
+ columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "闈㈡澘鍒嗛厤閲�-" + [String]year.YearNo() + "骞�-total-骞村害棰勭畻" );
+ traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
+ cellReal := MappingCapacityAndSaleBudge::GetSheetByYear( row.GetProductCodes(), mpSync, year.YearNo() );
+ cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
+ cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
+ }
+ debuginfo( "闈㈡澘鍒嗛厤閲�" + [String]year.YearNo() + "骞碨&OP鏁版嵁" );
+ // S&OP鏁版嵁
+ traverse( macroPlans, Elements, macroPlan ) {
+ traverse( months, Elements, month ) {
+ columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this,
+ "闈㈡澘鍒嗛厤閲�-" + [String]year.YearNo() + "骞�-" + [String]month.MonthNo() + "鏈�-" + macroPlan.ScenarioName() );
+ traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
+ cellReal := Product_MP::GetNewSupplyByMonth( row.GetProductCodes(), macroPlan, year.YearNo(), month.MonthNo() );
+ cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
+ cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
+ }
+ }
+ columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this,
+ "闈㈡澘鍒嗛厤閲�-" + [String]year.YearNo() + "骞�-total-" + macroPlan.ScenarioName() );
+ traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
+ cellReal := Product_MP::GetNewSupplyByYear( row.GetProductCodes(), macroPlan, year.YearNo() );
+ cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
+ cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
+ }
+ }
+ }
+ }
+ // 骞村害閿�鍞
+ debuginfo( "dealing 閿�鍞" )
+ if( CapacityAndSaleBudgeFilterItem::Contains( items, "閿�鍞" ) ) {
+ traverse( years, Elements, year ) {
+ debuginfo( "閿�鍞" + [String]year.YearNo() + "骞�" );
+ // 鍘嗗彶鏁版嵁
+ debuginfo( "閿�鍞" + [String]year.YearNo() + "骞村巻鍙叉暟鎹�" );
+ traverse( months, Elements, month ) {
+ columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "瀵瑰閿�鍞-" + [String]year.YearNo() + "骞�-" + [String]month.MonthNo() + "鏈�-骞村害棰勭畻" );
+ traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
+ cellReal := MappingCapacityAndSaleBudge::GetSaleByMonth( row.GetProductCodes(), mpSync, year.YearNo(), month.MonthNo() );
+ cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
+ cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
+ }
+ }
+ columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "瀵瑰閿�鍞-" + [String]year.YearNo() + "骞�-骞村害棰勭畻" );
+ traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
+ cellReal := MappingCapacityAndSaleBudge::GetSaleByYear( row.GetProductCodes(), mpSync, year.YearNo() );
+ cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
+ cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
+ }
+ debuginfo( "閿�鍞" + [String]year.YearNo() + "骞村巻鍙叉暟鎹甋&OP鏁版嵁" );
+ // S&OP鏁版嵁
+ traverse( macroPlans, Elements, macroPlan ) {
+ traverse( months, Elements, month ) {
+ columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "瀵瑰閿�鍞-" + [String]year.YearNo() + "骞�-" + [String]month.MonthNo() + "鏈�-" + macroPlan.ScenarioName() );
+ traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
+ cellReal := MappingAnnualBudget::GetSaleByMonth( row.GetProductCodes(), mpSync, year.YearNo(), month.MonthNo() );
+ cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
+ cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
+ }
+ }
+ columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "瀵瑰閿�鍞-" + [String]year.YearNo() + "骞�-total-" + macroPlan.ScenarioName() );
+ traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
+ // QID 23
+ cellReal := MappingAnnualBudget::GetSaleByYear( row.GetProductCodes(), mpSync, year.YearNo() );
+ cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
+ cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
+ }
+ }
+ }
+ }
+ // 澶у紶鐩堝埄棰�
+ debuginfo( "dealing 澶у紶鐩堝埄棰�" )
+ traverse( years, Elements, year ) {
+ // 鍘嗗彶鏁版嵁
+ columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "澶у紶鐩堝埄棰�-" + [String]year.YearNo() + "骞�-骞村害棰勭畻" );
+ traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
+ // todo
+ // QID 23
+ cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) );
+ cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
+ }
+ // S&OP鏁版嵁
+ traverse( macroPlans, Elements, macroPlan ) {
+ columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "澶у紶鐩堝埄棰�-" + [String]year.YearNo() + "骞�-" + macroPlan.ScenarioName() );
+ traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
+ cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) );
+ cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
+ }
+ }
+ }
+ // 浜у搧鐩堝埄棰�
+ debuginfo( "dealing 浜у搧鐩堝埄棰�" )
+ traverse( years, Elements, year ) {
+ // 鍘嗗彶鏁版嵁
+ columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "浜у搧鐩堝埄棰�-" + [String]year.YearNo() + "骞�-骞村害棰勭畻" );
+ traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
+ // todo
+ cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) );
+ cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
+ }
+ // S&OP鏁版嵁
+ traverse( macroPlans, Elements, macroPlan ) {
+ columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "浜у搧鐩堝埄棰�-" + [String]year.YearNo() + "骞�-" + macroPlan.ScenarioName() );
+ traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
+ // todo
+ cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) );
+ cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
+ }
+ }
+ }
+
+ // 璁剧疆rowNo鍜宑olumnNo
+ debuginfo( "set rowNo and columnNo" );
+ rowNo := 1;
+ rowSorted := selectsortedset( this, CapacityAndSaleBudgeCompareItemRow, item, item.PlaceOfProductionOfArray() + "_" + item.BusinessType() );
+ traverse( rowSorted, Elements, item ) {
+ item.RowNo( rowNo );
+ rowNo := rowNo + 1;
+ }
+ columnNo := 1;
+ traverse( this, CapacityAndSaleBudgeCompareItemColumn, item ) {
+ item.ColumnNo( columnNo );
+ columnNo := columnNo + 1;
+ }
+ debuginfo( "done" );
+ *]
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_CapacityAndSaleBudgeCompareExport.qbl b/_Main/BL/Type_GlobalDTOTable/Method_CapacityAndSaleBudgeCompareExport.qbl
new file mode 100644
index 0000000..45ee95c
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/Method_CapacityAndSaleBudgeCompareExport.qbl
@@ -0,0 +1,42 @@
+Quintiq file version 2.0
+#parent: #root
+Method CapacityAndSaleBudgeCompareExport () as BinaryValue
+{
+ Description: '瀵煎嚭姣旇緝缁撴灉'
+ TextBody:
+ [*
+ // yypsybs Sep-22-2023 (created)
+ tableName := "骞村害浜ч攢棰勭畻瀵规瘮";
+
+ text:= '<?xml version="1.0" encoding="utf-8" standalone="yes"?><table><name>' + tableName + '</name>';
+
+ // 澶勭悊column <column><name>鐗╂枡缂栫爜</name><type>String</type></column>
+ columnXml := ""
+ traverse( this, CapacityAndSaleBudgeCompareItemColumn, column ) {
+ debuginfo( "columnName : " + column.ColumnName() );
+ columnXml := columnXml + "<column><name>" + column.ColumnName() + "</name><type>String</type></column>";
+ }
+ text := text + columnXml + "</table>"
+
+ // 濉炲唴瀹�
+ xmlDOMImplementation := XMLDOMImplementation::Create();
+ xmlDOMDocument := xmlDOMImplementation.CreateDocumentFromString( text );
+ tableElement:= xmlDOMDocument.GetElementByTagName( "table", 0 );
+ rows := selectsortedset( this, CapacityAndSaleBudgeCompareItemRow, row, row.PlaceOfProductionOfArray() + "_" + row.BusinessType() );
+ traverse ( rows, Elements, row ) {
+ debuginfo( "rowNo : " + [String]row.RowNo() );
+ traverse( row, CapacityAndSaleBudgeCompareItemCell, cell ) {
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, cell.CellContent(), cell.CapacityAndSaleBudgeCompareItemColumn().ColumnName() );
+ }
+ }
+ xmlDOMSerializer := xmlDOMImplementation.CreateSerializer();
+ xmlTableString := xmlDOMSerializer.WriteToString( xmlDOMDocument );
+
+ tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlTableString ) );
+ tableGroupHandle := TableGroupHandle::Create( tableName );
+ tableGroupHandle.Add( tableHandle );
+ tableBinaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true );
+
+ return tableBinaryData.AsBinaryValue();
+ *]
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_AIPISPIP.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_AIPISPIP.qbl
index ac058bb..df86b5a 100644
--- a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_AIPISPIP.qbl
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_AIPISPIP.qbl
@@ -5,16 +5,5 @@
String errorMessage
)
{
- TextBody:
- [*
- this.Global_BrokerExecuteLog( relnew,
- BrokerName := "GlobalOTDTable_AIPISPIP",
- ElementTotal := 0,
- ErrorMessage := errorMessage,
- IsSuccess := false,
- Name := "瀹為檯搴撳瓨鏁版嵁",
- ErrorNo := errorNo,
- ErrorDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" )
- );
- *]
+ TextBody: 'this.SettingFailureDetails( errorNo, errorMessage, "GlobalOTDTable_AIPISPIP", "瀹為檯搴撳瓨鏁版嵁" );'
}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_ConversionFactor.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_ConversionFactor.qbl
index fb840ce..34022c8 100644
--- a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_ConversionFactor.qbl
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_ConversionFactor.qbl
@@ -5,16 +5,5 @@
String errorMessage
)
{
- TextBody:
- [*
- this.Global_BrokerExecuteLog( relnew,
- BrokerName := "GlobalOTDTable_ConversionFactor",
- ElementTotal := 0,
- ErrorMessage := errorMessage,
- IsSuccess := false,
- Name := "鍗曚綅杞崲鍥犲瓙鏁版嵁",
- ErrorNo := errorNo,
- ErrorDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" )
- );
- *]
+ TextBody: 'this.SettingFailureDetails( errorNo, errorMessage, "GlobalOTDTable_ConversionFactor", "鍗曚綅杞崲鍥犲瓙鏁版嵁" );'
}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_CustomOrder.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_CustomOrder.qbl
index 66d92a1..b488e5a 100644
--- a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_CustomOrder.qbl
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_CustomOrder.qbl
@@ -5,16 +5,5 @@
String errorMessage
)
{
- TextBody:
- [*
- this.Global_BrokerExecuteLog( relnew,
- BrokerName := "GlobalOTDTable_CustomOrder",
- ElementTotal := 0,
- ErrorMessage := errorMessage,
- IsSuccess := false,
- Name := "璁㈠崟鏁版嵁",
- ErrorNo := errorNo,
- ErrorDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" )
- );
- *]
+ TextBody: 'this.SettingFailureDetails( errorNo, errorMessage, "GlobalOTDTable_CustomOrder", "璁㈠崟鏁版嵁" );'
}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_CustomerGrade.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_CustomerGrade.qbl
new file mode 100644
index 0000000..95cbb13
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_CustomerGrade.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#parent: #root
+Method OnAsyncExecuteFailure_GlobalOTDTable_CustomerGrade (
+ Number errorNo,
+ String errorMessage
+)
+{
+ TextBody: 'this.SettingFailureDetails( errorNo, errorMessage, "GlobalOTDTable_CustomerGrade", "瀹㈡埛绛夌骇鏁版嵁" );'
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_DOI_DSI.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_DOI_DSI.qbl
new file mode 100644
index 0000000..5989bef
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_DOI_DSI.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#parent: #root
+Method OnAsyncExecuteFailure_GlobalOTDTable_DOI_DSI (
+ Number errorNo,
+ String errorMessage
+)
+{
+ TextBody: 'this.SettingFailureDetails( errorNo, errorMessage, "GlobalOTDTable_DOI_DSI", "DOI_DSI鏁版嵁" );'
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_Forecast.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_Forecast.qbl
index 2384943..21f56b3 100644
--- a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_Forecast.qbl
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_Forecast.qbl
@@ -5,16 +5,5 @@
String errorMessage
)
{
- TextBody:
- [*
- this.Global_BrokerExecuteLog( relnew,
- BrokerName := "GlobalOTDTable_Forecast",
- ElementTotal := 0,
- ErrorMessage := errorMessage,
- IsSuccess := false,
- Name := "棰勬祴鏁版嵁",
- ErrorNo := errorNo,
- ErrorDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" )
- );
- *]
+ TextBody: 'this.SettingFailureDetails( errorNo, errorMessage, "GlobalOTDTable_Forecast", "棰勬祴鏁版嵁" );'
}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_InventorySupply.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_InventorySupply.qbl
index fd32c60..e3cdc5c 100644
--- a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_InventorySupply.qbl
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_InventorySupply.qbl
@@ -5,16 +5,5 @@
String errorMessage
)
{
- TextBody:
- [*
- this.Global_BrokerExecuteLog( relnew,
- BrokerName := "GlobalOTDTable_InventorySupply",
- ElementTotal := 0,
- ErrorMessage := errorMessage,
- IsSuccess := false,
- Name := "搴撳瓨渚涘簲鏁版嵁",
- ErrorNo := errorNo,
- ErrorDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" )
- );
- *]
+ TextBody: 'this.SettingFailureDetails( errorNo, errorMessage, "GlobalOTDTable_InventorySupply", "搴撳瓨渚涘簲鏁版嵁" );'
}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_Operation.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_Operation.qbl
index 3d491fe..3d19d66 100644
--- a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_Operation.qbl
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_Operation.qbl
@@ -5,16 +5,5 @@
String errorMessage
)
{
- TextBody:
- [*
- this.Global_BrokerExecuteLog( relnew,
- BrokerName := "GlobalOTDTable_Operation",
- ElementTotal := 0,
- ErrorMessage := errorMessage,
- IsSuccess := false,
- Name := "鎿嶄綔鏁版嵁",
- ErrorNo := errorNo,
- ErrorDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" )
- );
- *]
+ TextBody: 'this.SettingFailureDetails( errorNo, errorMessage, "GlobalOTDTable_Operation", "鎿嶄綔鏁版嵁" );'
}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_OperationBOM.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_OperationBOM.qbl
index 49e26b7..4c18d21 100644
--- a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_OperationBOM.qbl
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_OperationBOM.qbl
@@ -5,16 +5,5 @@
String errorMessage
)
{
- TextBody:
- [*
- this.Global_BrokerExecuteLog( relnew,
- BrokerName := "GlobalOTDTable_OperationBOM",
- ElementTotal := 0,
- ErrorMessage := errorMessage,
- IsSuccess := false,
- Name := "鎿嶄綔BOM鏁版嵁",
- ErrorNo := errorNo,
- ErrorDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" )
- );
- *]
+ TextBody: 'this.SettingFailureDetails( errorNo, errorMessage, "GlobalOTDTable_OperationBOM", "鎿嶄綔BOM鏁版嵁" );'
}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_OperationCost.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_OperationCost.qbl
index 2364cd5..8dd61ac 100644
--- a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_OperationCost.qbl
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_OperationCost.qbl
@@ -5,16 +5,5 @@
String errorMessage
)
{
- TextBody:
- [*
- this.Global_BrokerExecuteLog( relnew,
- BrokerName := "GlobalOTDTable_OperationCost",
- ElementTotal := 0,
- ErrorMessage := errorMessage,
- IsSuccess := false,
- Name := "鎿嶄綔鎴愭湰鏁版嵁",
- ErrorNo := errorNo,
- ErrorDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" )
- );
- *]
+ TextBody: 'this.SettingFailureDetails( errorNo, errorMessage, "GlobalOTDTable_OperationCost", "鎿嶄綔鎴愭湰鏁版嵁" );'
}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_Product_MP.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_Product_MP.qbl
index 2637fd7..a6c260b 100644
--- a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_Product_MP.qbl
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_Product_MP.qbl
@@ -5,16 +5,5 @@
String errorMessage
)
{
- TextBody:
- [*
- this.Global_BrokerExecuteLog( relnew,
- BrokerName := "GlobalOTDTable_Product_MP",
- ElementTotal := 0,
- ErrorMessage := errorMessage,
- IsSuccess := false,
- Name := "浜у搧鏁版嵁",
- ErrorNo := errorNo,
- ErrorDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" )
- );
- *]
+ TextBody: 'this.SettingFailureDetails( errorNo, errorMessage, "GlobalOTDTable_Product_MP", "浜у搧鏁版嵁" );'
}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_SalesSegment_MP.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_SalesSegment_MP.qbl
index 56d48d9..f861032 100644
--- a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_SalesSegment_MP.qbl
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_SalesSegment_MP.qbl
@@ -5,16 +5,5 @@
String errorMessage
)
{
- TextBody:
- [*
- this.Global_BrokerExecuteLog( relnew,
- BrokerName := "GlobalOTDTable_SalesSegment_MP",
- ElementTotal := 0,
- ErrorMessage := errorMessage,
- IsSuccess := false,
- Name := "閿�鍞儴闂�",
- ErrorNo := errorNo,
- ErrorDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" )
- );
- *]
+ TextBody: 'this.SettingFailureDetails( errorNo, errorMessage, "GlobalOTDTable_SalesSegment_MP", "閿�鍞儴闂�" );'
}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_StockingPointCost.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_StockingPointCost.qbl
index 0f166b2..e77ffa9 100644
--- a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_StockingPointCost.qbl
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_StockingPointCost.qbl
@@ -5,16 +5,5 @@
String errorMessage
)
{
- TextBody:
- [*
- this.Global_BrokerExecuteLog( relnew,
- BrokerName := "GlobalOTDTable_StockingPointCost",
- ElementTotal := 0,
- ErrorMessage := errorMessage,
- IsSuccess := false,
- Name := "搴撳瓨鐐规垚鏈暟鎹�",
- ErrorNo := errorNo,
- ErrorDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" )
- );
- *]
+ TextBody: 'this.SettingFailureDetails( errorNo, errorMessage, "GlobalOTDTable_StockingPointCost", "搴撳瓨鐐规垚鏈暟鎹�" );'
}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_UnitOfMeasure_MP.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_UnitOfMeasure_MP.qbl
index 4974578..6fc9e3b 100644
--- a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_UnitOfMeasure_MP.qbl
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_UnitOfMeasure_MP.qbl
@@ -5,16 +5,5 @@
String errorMessage
)
{
- TextBody:
- [*
- this.Global_BrokerExecuteLog( relnew,
- BrokerName := "GlobalOTDTable_UnitOfMeasure_MP",
- ElementTotal := 0,
- ErrorMessage := errorMessage,
- IsSuccess := false,
- Name := "鍗曚綅鏁版嵁",
- ErrorNo := errorNo,
- ErrorDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" )
- );
- *]
+ TextBody: 'this.SettingFailureDetails( errorNo, errorMessage, "GlobalOTDTable_UnitOfMeasure_MP", "鍗曚綅鏁版嵁" );'
}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_AIPISPIP.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_AIPISPIP.qbl
index a0a1af4..e180696 100644
--- a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_AIPISPIP.qbl
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_AIPISPIP.qbl
@@ -2,16 +2,5 @@
#parent: #root
Method OnAsyncExecute_GlobalOTDTable_AIPISPIP
{
- TextBody:
- [*
- this.Global_BrokerExecuteLog( relnew,
- BrokerName := "GlobalOTDTable_AIPISPIP",
- ElementTotal := this.Global_MappingActualProductInStockingPointInPeriod( relsize ),
- ErrorMessage := "",
- IsSuccess := true,
- Name := "瀹為檯搴撳瓨鏁版嵁",
- SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
- ErrorNo := 0
- );
- *]
+ TextBody: 'this.SettingSuccessfulDetails( "GlobalOTDTable_AIPISPIP", "瀹為檯搴撳瓨鏁版嵁", this.Global_MappingActualProductInStockingPointInPeriod( relsize ) );'
}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_ConversionFactor.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_ConversionFactor.qbl
index b0ad4d2..f9857c3 100644
--- a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_ConversionFactor.qbl
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_ConversionFactor.qbl
@@ -2,16 +2,5 @@
#parent: #root
Method OnAsyncExecute_GlobalOTDTable_ConversionFactor
{
- TextBody:
- [*
- this.Global_BrokerExecuteLog( relnew,
- BrokerName := "GlobalOTDTable_ConversionFactor",
- ElementTotal := this.Global_MappingConversionFactor( relsize ),
- ErrorMessage := "",
- IsSuccess := true,
- Name := "鍗曚綅杞崲鍥犲瓙鏁版嵁",
- SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
- ErrorNo := 0
- );
- *]
+ TextBody: 'this.SettingSuccessfulDetails( "GlobalOTDTable_ConversionFactor", "鍗曚綅杞崲鍥犲瓙鏁版嵁", this.Global_MappingConversionFactor( relsize ) );'
}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_CustomOrder.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_CustomOrder.qbl
index 677960c..d27917a 100644
--- a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_CustomOrder.qbl
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_CustomOrder.qbl
@@ -2,16 +2,5 @@
#parent: #root
Method OnAsyncExecute_GlobalOTDTable_CustomOrder
{
- TextBody:
- [*
- this.Global_BrokerExecuteLog( relnew,
- BrokerName := "GlobalOTDTable_CustomOrder",
- ElementTotal := this.Global_MappingCustomOrder( relsize ),
- ErrorMessage := "",
- IsSuccess := true,
- Name := "璁㈠崟鏁版嵁",
- SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
- ErrorNo := 0
- );
- *]
+ TextBody: 'this.SettingSuccessfulDetails( "GlobalOTDTable_CustomOrder", "璁㈠崟鏁版嵁", this.Global_MappingCustomOrder( relsize ) );'
}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_CustomerGrade.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_CustomerGrade.qbl
new file mode 100644
index 0000000..c47d9ef
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_CustomerGrade.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+Method OnAsyncExecute_GlobalOTDTable_CustomerGrade
+{
+ TextBody: 'this.SettingSuccessfulDetails( "GlobalOTDTable_CustomerGrade", "瀹㈡埛绛夌骇鏁版嵁", this.Global_MappingCustomerGrade( relsize ) );'
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_DOI_DSI.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_DOI_DSI.qbl
new file mode 100644
index 0000000..f8826f9
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_DOI_DSI.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+Method OnAsyncExecute_GlobalOTDTable_DOI_DSI
+{
+ TextBody: 'this.SettingSuccessfulDetails( "GlobalOTDTable_DOI_DSI", "DOI_DSI鏁版嵁", this.Global_MappingDOI_DSI( relsize ) );'
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_Forecast.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_Forecast.qbl
index c9f8835..ec74612 100644
--- a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_Forecast.qbl
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_Forecast.qbl
@@ -2,16 +2,5 @@
#parent: #root
Method OnAsyncExecute_GlobalOTDTable_Forecast
{
- TextBody:
- [*
- this.Global_BrokerExecuteLog( relnew,
- BrokerName := "GlobalOTDTable_Forecast",
- ElementTotal := this.Global_MappingForecast( relsize ),
- ErrorMessage := "",
- IsSuccess := true,
- Name := "棰勬祴鏁版嵁",
- SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
- ErrorNo := 0
- );
- *]
+ TextBody: 'this.SettingSuccessfulDetails( "GlobalOTDTable_Forecast", "棰勬祴鏁版嵁", this.Global_MappingForecast( relsize ) );'
}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_InventorySupply.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_InventorySupply.qbl
index 2ae1628..7745472 100644
--- a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_InventorySupply.qbl
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_InventorySupply.qbl
@@ -2,16 +2,5 @@
#parent: #root
Method OnAsyncExecute_GlobalOTDTable_InventorySupply
{
- TextBody:
- [*
- this.Global_BrokerExecuteLog( relnew,
- BrokerName := "GlobalOTDTable_InventorySupply",
- ElementTotal := this.Global_MappingInventorySupply( relsize ),
- ErrorMessage := "",
- IsSuccess := true,
- Name := "搴撳瓨渚涘簲鏁版嵁",
- SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
- ErrorNo := 0
- );
- *]
+ TextBody: 'this.SettingSuccessfulDetails( "GlobalOTDTable_InventorySupply", "搴撳瓨渚涘簲鏁版嵁", this.Global_MappingInventorySupply( relsize ) );'
}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_Operation.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_Operation.qbl
index 718b9d0..d537c11 100644
--- a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_Operation.qbl
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_Operation.qbl
@@ -2,16 +2,5 @@
#parent: #root
Method OnAsyncExecute_GlobalOTDTable_Operation
{
- TextBody:
- [*
- this.Global_BrokerExecuteLog( relnew,
- BrokerName := "GlobalOTDTable_Operation",
- ElementTotal := this.Global_MappingOperation( relsize ),
- ErrorMessage := "",
- IsSuccess := true,
- Name := "鎿嶄綔鏁版嵁",
- SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
- ErrorNo := 0
- );
- *]
+ TextBody: 'this.SettingSuccessfulDetails( "GlobalOTDTable_Operation", "鎿嶄綔鏁版嵁", this.Global_MappingOperation( relsize ) );'
}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_OperationBOM.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_OperationBOM.qbl
index 12bda61..6902690 100644
--- a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_OperationBOM.qbl
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_OperationBOM.qbl
@@ -2,16 +2,5 @@
#parent: #root
Method OnAsyncExecute_GlobalOTDTable_OperationBOM
{
- TextBody:
- [*
- this.Global_BrokerExecuteLog( relnew,
- BrokerName := "GlobalOTDTable_OperationBOM",
- ElementTotal := this.Global_MappingOperationBOM( relsize ),
- ErrorMessage := "",
- IsSuccess := true,
- Name := "鎿嶄綔BOM鏁版嵁",
- SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
- ErrorNo := 0
- );
- *]
+ TextBody: 'this.SettingSuccessfulDetails( "GlobalOTDTable_OperationBOM", "鎿嶄綔BOM鏁版嵁", this.Global_MappingOperationBOM( relsize ) );'
}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_OperationCost.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_OperationCost.qbl
index 313be5a..58d1ce1 100644
--- a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_OperationCost.qbl
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_OperationCost.qbl
@@ -2,16 +2,5 @@
#parent: #root
Method OnAsyncExecute_GlobalOTDTable_OperationCost
{
- TextBody:
- [*
- this.Global_BrokerExecuteLog( relnew,
- BrokerName := "GlobalOTDTable_OperationCost",
- ElementTotal := this.Global_MappingOperationCost( relsize ),
- ErrorMessage := "",
- IsSuccess := true,
- Name := "鎿嶄綔鎴愭湰鏁版嵁",
- SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
- ErrorNo := 0
- );
- *]
+ TextBody: 'this.SettingSuccessfulDetails( "GlobalOTDTable_OperationCost", "鎿嶄綔鎴愭湰鏁版嵁", this.Global_MappingOperationCost( relsize ) );'
}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_ProductInLane.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_ProductInLane.qbl
index d4da6d7..7b117d2 100644
--- a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_ProductInLane.qbl
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_ProductInLane.qbl
@@ -2,16 +2,5 @@
#parent: #root
Method OnAsyncExecute_GlobalOTDTable_ProductInLane
{
- TextBody:
- [*
- this.Global_BrokerExecuteLog( relnew,
- BrokerName := "GlobalOTDTable_ProductInLane",
- ElementTotal := this.Global_MappingProductInLane( relsize ),
- ErrorMessage := "",
- IsSuccess := true,
- Name := "浜у搧鍦ㄨ溅閬撴暟鎹�",
- SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
- ErrorNo := 0
- );
- *]
+ TextBody: 'this.SettingSuccessfulDetails( "GlobalOTDTable_ProductInLane", "浜у搧鍦ㄨ溅閬撴暟鎹�", this.Global_MappingProductInLane( relsize ) );'
}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_Product_MP.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_Product_MP.qbl
index bac0207..6b8ac8a 100644
--- a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_Product_MP.qbl
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_Product_MP.qbl
@@ -2,16 +2,5 @@
#parent: #root
Method OnAsyncExecute_GlobalOTDTable_Product_MP
{
- TextBody:
- [*
- this.Global_BrokerExecuteLog( relnew,
- BrokerName := "GlobalOTDTable_Product_MP",
- ElementTotal := this.Global_MappingProduct_MP( relsize ),
- ErrorMessage := "",
- IsSuccess := true,
- Name := "浜у搧鏁版嵁",
- SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
- ErrorNo := 0
- );
- *]
+ TextBody: 'this.SettingSuccessfulDetails( "GlobalOTDTable_Product_MP", "浜у搧鏁版嵁", this.Global_MappingProduct_MP( relsize ) );'
}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_SalesSegment_MP.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_SalesSegment_MP.qbl
index 4cf7193..422a176 100644
--- a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_SalesSegment_MP.qbl
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_SalesSegment_MP.qbl
@@ -2,16 +2,5 @@
#parent: #root
Method OnAsyncExecute_GlobalOTDTable_SalesSegment_MP
{
- TextBody:
- [*
- this.Global_BrokerExecuteLog( relnew,
- BrokerName := "GlobalOTDTable_SalesSegment_MP",
- ElementTotal := this.Global_MappingSalesSegment_MP( relsize ),
- ErrorMessage := "",
- IsSuccess := true,
- Name := "閿�鍞儴闂�",
- SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
- ErrorNo := 0
- );
- *]
+ TextBody: 'this.SettingSuccessfulDetails( "GlobalOTDTable_SalesSegment_MP", "閿�鍞儴闂�", this.Global_MappingSalesSegment_MP( relsize ) );'
}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_StockingPointCost.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_StockingPointCost.qbl
index 1e75ed5..9b93f9c 100644
--- a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_StockingPointCost.qbl
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_StockingPointCost.qbl
@@ -2,16 +2,5 @@
#parent: #root
Method OnAsyncExecute_GlobalOTDTable_StockingPointCost
{
- TextBody:
- [*
- this.Global_BrokerExecuteLog( relnew,
- BrokerName := "GlobalOTDTable_StockingPointCost",
- ElementTotal := this.Global_MappingStockingPointCost( relsize ),
- ErrorMessage := "",
- IsSuccess := true,
- Name := "搴撳瓨鐐规垚鏈暟鎹�",
- SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
- ErrorNo := 0
- );
- *]
+ TextBody: 'this.SettingSuccessfulDetails( "GlobalOTDTable_StockingPointCost", "搴撳瓨鐐规垚鏈暟鎹�", this.Global_MappingStockingPointCost( relsize ) );'
}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_UnitOfMeasure_MP.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_UnitOfMeasure_MP.qbl
index d8eb2dd..1192289 100644
--- a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_UnitOfMeasure_MP.qbl
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_UnitOfMeasure_MP.qbl
@@ -2,16 +2,5 @@
#parent: #root
Method OnAsyncExecute_GlobalOTDTable_UnitOfMeasure_MP
{
- TextBody:
- [*
- this.Global_BrokerExecuteLog( relnew,
- BrokerName := "GlobalOTDTable_UnitOfMeasure_MP",
- ElementTotal := this.Global_MappingUnitOfMeasure_MP( relsize ),
- ErrorMessage := "",
- IsSuccess := true,
- Name := "鍗曚綅鏁版嵁",
- SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
- ErrorNo := 0
- );
- *]
+ TextBody: 'this.SettingSuccessfulDetails( "GlobalOTDTable_UnitOfMeasure_MP", "鍗曚綅鏁版嵁", this.Global_MappingUnitOfMeasure_MP( relsize ) );'
}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_SetIsLinkedWithFinishedGoodAttributes.qbl b/_Main/BL/Type_GlobalDTOTable/Method_SetIsLinkedWithFinishedGoodAttributes.qbl
new file mode 100644
index 0000000..5a4ba17
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/Method_SetIsLinkedWithFinishedGoodAttributes.qbl
@@ -0,0 +1,45 @@
+Quintiq file version 2.0
+#parent: #root
+Method SetIsLinkedWithFinishedGoodAttributes
+{
+ Description: 'Method to traverse the supply chain to determine if there are any products that are not used to produce finished goods.'
+ TextBody:
+ [*
+ // Reset IsLinkedWithFinishedGood
+ traverse( this, Global_MappingProduct_MP, instance )
+ {
+ instance.IsLinkedWithFinishedGood( false );
+ }
+
+ traverse( this, Global_MappingOperation, instance )
+ {
+ instance.IsLinkedWithFinishedGood( false );
+ }
+
+ traverse( this, Global_MappingOperationBOM, instance )
+ {
+ instance.IsLinkedWithFinishedGood( false );
+ }
+
+ productspool := selectset( this, Global_MappingProduct_MP, product,
+ product.ProductMajorType() <> "鎴愬搧" );
+ operationspool := this.Global_MappingOperation( relget );
+ operationbomspool := this.Global_MappingOperationBOM( relget );
+
+ // Traverse each finished good and search for linked products/operations/lanes
+ traverse( this, Global_MappingProduct_MP, product,
+ product.ProductMajorType() = "鎴愬搧" )
+ {
+ uniquebomids := construct( Strings );
+ product.IsLinkedWithFinishedGood( false );
+ product.SetIsLinkedWithFinishedGoodAttributes_Recursive( 0, // depth
+ 100, // maxdepth
+ productspool,
+ operationspool,
+ operationbomspool,
+ uniquebomids );
+ uniquebomids := uniquebomids.Unique();
+ product.BOMCount( uniquebomids.Size() );
+ }
+ *]
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_SettingFailureDetails.qbl b/_Main/BL/Type_GlobalDTOTable/Method_SettingFailureDetails.qbl
new file mode 100644
index 0000000..3d9aad0
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/Method_SettingFailureDetails.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Method SettingFailureDetails (
+ Number errorNo,
+ String errorMessage,
+ String brokerName,
+ String name
+)
+{
+ TextBody:
+ [*
+ gbel := select( this, Global_BrokerExecuteLog, tempGBEL, tempGBEL.ExecutionStatus() = "InOperation" and
+ tempGBEL.BrokerName() = brokerName );
+
+ gbel.ExecutionStatus( "Complete" );
+ gbel.ElementTotal( 0 );
+ gbel.ErrorMessage( errorMessage );
+ gbel.IsSuccess( false );
+ gbel.Name( name );
+ gbel.ErrorNo( errorNo );
+ gbel.ErrorDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
+ *]
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_SettingSuccessfulDetails.qbl b/_Main/BL/Type_GlobalDTOTable/Method_SettingSuccessfulDetails.qbl
new file mode 100644
index 0000000..f3f619d
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/Method_SettingSuccessfulDetails.qbl
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: #root
+Method SettingSuccessfulDetails (
+ String brokerName,
+ String name,
+ Number elementTotal
+)
+{
+ TextBody:
+ [*
+ gbel := select( this, Global_BrokerExecuteLog, tempGBEL, tempGBEL.ExecutionStatus() = "InOperation" and
+ tempGBEL.BrokerName() = brokerName );
+
+ gbel.ExecutionStatus( "Complete" );
+ gbel.ElementTotal( elementTotal );
+ gbel.IsSuccess( true );
+ gbel.Name( name );
+ gbel.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
+ *]
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_SynchronizationAllMappingBrokerAndAPIByOption.qbl b/_Main/BL/Type_GlobalDTOTable/Method_SynchronizationAllMappingBrokerAndAPIByOption.qbl
new file mode 100644
index 0000000..31936e3
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/Method_SynchronizationAllMappingBrokerAndAPIByOption.qbl
@@ -0,0 +1,119 @@
+Quintiq file version 2.0
+#parent: #root
+Method SynchronizationAllMappingBrokerAndAPIByOption (
+ String executionUser,
+ Boolean isCustomOrder,
+ Boolean isForeacst,
+ Boolean isUnitOfMeasure_MP,
+ Boolean isSalesSegment_MP,
+ Boolean isProduct_MP,
+ Boolean isConversionFactor,
+ Boolean isOperation,
+ Boolean isOperationBOM,
+ Boolean isProductInLane,
+ Boolean isAIPISPIP,
+ Boolean isInventorySupply,
+ Boolean isStockingPointCost,
+ Boolean isOperationCost,
+ Boolean isDOI_DSI,
+ Boolean isCustomerGrade,
+ Boolean isStockingPoint_MP,
+ Boolean isCurrency_MP,
+ Boolean isCurrencyRate_MP,
+ Boolean isLane,
+ Boolean isLaneLeg
+)
+{
+ TextBody:
+ [*
+ if ( isCustomOrder ) {
+ Global_MappingCustomOrder::SynchronizeInterfaceData( this, executionUser, "GlobalOTDTable_CustomOrder" );
+ }
+
+ if ( isForeacst ) {
+ Global_MappingForecast::SynchronizeInterfaceData( this, executionUser, "GlobalOTDTable_Forecast" );
+ }
+
+ if ( isUnitOfMeasure_MP ) {
+ Global_MappingUnitOfMeasure_MP::SynchronizeInterfaceData( this, executionUser, "GlobalOTDTable_UnitOfMeasure_MP" );
+ }
+
+ if ( isSalesSegment_MP ) {
+ Global_MappingSalesSegment_MP::SynchronizeInterfaceData( this, executionUser, "GlobalOTDTable_SalesSegment_MP" );
+ }
+
+ if ( isProduct_MP ) {
+ Global_MappingProduct_MP::SynchronizeInterfaceData( this, executionUser, "GlobalOTDTable_Product_MP" );
+ }
+
+ if ( isConversionFactor ) {
+ Global_MappingConversionFactor::SynchronizeInterfaceData( this, executionUser, "GlobalOTDTable_ConversionFactor" );
+ }
+
+ if ( isOperation ) {
+ Global_MappingOperation::SynchronizeInterfaceData( this, executionUser, "GlobalOTDTable_Operation" );
+ }
+
+ if ( isOperationBOM ) {
+ Global_MappingOperationBOM::SynchronizeInterfaceData( this, executionUser, "GlobalOTDTable_OperationBOM" );
+ }
+
+ if ( isProductInLane ) {
+ Global_MappingProductInLane::SynchronizeInterfaceData( this, executionUser, "GlobalOTDTable_ProductInLane" );
+ }
+
+ if ( isAIPISPIP ) {
+ Global_MappingActualProductInStockingPointInPeriod::SynchronizeInterfaceData( this, executionUser, "GlobalOTDTable_AIPISPIP" );
+ }
+
+ if ( isInventorySupply ) {
+ Global_MappingInventorySupply::SynchronizeInterfaceData( this, executionUser, "GlobalOTDTable_InventorySupply" );
+ }
+
+ if ( isStockingPointCost ) {
+ Global_MappingStockingPointCost::SynchronizeInterfaceData( this, executionUser, "GlobalOTDTable_StockingPointCost" );
+ }
+
+ if ( isOperationCost ) {
+ Global_MappingOperationCost::SynchronizeInterfaceData( this, executionUser, "GlobalOTDTable_OperationCost" );
+ }
+
+ if ( isDOI_DSI ) {
+ Global_MappingDOI_DSI::SynchronizeInterfaceData( this, executionUser, "GlobalOTDTable_DOI_DSI" );
+ }
+
+ if ( isCustomerGrade ) {
+ Global_MappingCustomerGrade::SynchronizeInterfaceData( this, executionUser, "GlobalOTDTable_CustomerGrade" );
+ }
+
+ if ( isStockingPoint_MP ) {
+ this.Global_MappingStockingPoint_MP( relflush );
+ Global_BrokerExecuteLog::CreateInOperation( this, "StockingPoint_MP", executionUser );
+ this -> OnException( this -> Global_MappingStockingPoint_MP::CreateByAPI() -> Exception(), this );
+ }
+
+ if ( isCurrency_MP ) {
+ this.Global_MappingCurrency_MP( relflush );
+ Global_BrokerExecuteLog::CreateInOperation( this, "Currency_MP", executionUser );
+ this -> OnException( this -> Global_MappingCurrency_MP::CreateByAPI() -> Exception(), this );
+ }
+
+ if ( isCurrencyRate_MP ) {
+ this.Global_MappingCurrencyRate_MP( relflush );
+ Global_BrokerExecuteLog::CreateInOperation( this, "CurrencyRate_MP", executionUser );
+ this -> OnException( this -> Global_MappingCurrencyRate_MP::CreateByAPI() -> Exception(), this );
+ }
+
+ if ( isLane ) {
+ this.Global_MappingLane( relflush );
+ Global_BrokerExecuteLog::CreateInOperation( this, "Lane", executionUser );
+ this -> OnException( this -> Global_MappingLane::CreateByAPI() -> Exception(), this );
+ }
+
+ if ( isLaneLeg ) {
+ this.Global_MappingLaneLeg( relflush );
+ Global_BrokerExecuteLog::CreateInOperation( this, "LaneLeg", executionUser );
+ this -> OnException( this -> Global_MappingLaneLeg::CreateByAPI() -> Exception(), this );
+ }
+ *]
+}
diff --git "a/_Main/BL/Type_GlobalDTOTable/Method_SynchronizeDataToMacroPlan\043127.qbl" "b/_Main/BL/Type_GlobalDTOTable/Method_SynchronizeDataToMacroPlan\043127.qbl"
new file mode 100644
index 0000000..c1d4c3f
--- /dev/null
+++ "b/_Main/BL/Type_GlobalDTOTable/Method_SynchronizeDataToMacroPlan\043127.qbl"
@@ -0,0 +1,14 @@
+Quintiq file version 2.0
+#parent: #root
+Method SynchronizeDataToMacroPlan (
+ MacroPlan macroPlan,
+ Boolean isUnitOfMeasure_MP
+)
+{
+ TextBody:
+ [*
+ if ( isUnitOfMeasure_MP ) {
+ Global_MappingUnitOfMeasure_MP::SynchronizeMacroPlanData( this, macroPlan );
+ }
+ *]
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_Test.qbl b/_Main/BL/Type_GlobalDTOTable/Method_Test.qbl
new file mode 100644
index 0000000..26e43f9
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/Method_Test.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#parent: #root
+Method Test
+{
+ TextBody:
+ [*
+ // KKO2 Sep-27-2023 (created)
+ *]
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/StaticMethod_SynchronizationAllMappingBrokerAndAPI.qbl b/_Main/BL/Type_GlobalDTOTable/StaticMethod_SynchronizationAllMappingBrokerAndAPI.qbl
index 100a489..486c9a6 100644
--- a/_Main/BL/Type_GlobalDTOTable/StaticMethod_SynchronizationAllMappingBrokerAndAPI.qbl
+++ b/_Main/BL/Type_GlobalDTOTable/StaticMethod_SynchronizationAllMappingBrokerAndAPI.qbl
@@ -25,24 +25,28 @@
globalOTDTable.Global_MappingOperationCost( relflush );
globalOTDTable.Global_MappingForecast( relflush );
globalOTDTable.Global_MappingCustomOrder( relflush );
+ globalOTDTable.Global_MappingDOI_DSI( relflush );
+ globalOTDTable.Global_MappingCustomerGrade( relflush );
- globalOTDTable.GlobalOTDTable_UnitOfMeasure_MP().AsyncExecute();
- globalOTDTable.GlobalOTDTable_SalesSegment_MP().AsyncExecute();
- globalOTDTable -> OnException( globalOTDTable -> Global_MappingStockingPoint_MP::CreateByAPI() -> Exception(), globalOTDTable );
- globalOTDTable -> OnException( globalOTDTable -> Global_MappingCurrency_MP::CreateByAPI() -> Exception(), globalOTDTable );
- globalOTDTable -> OnException( globalOTDTable -> Global_MappingCurrencyRate_MP::CreateByAPI() -> Exception(), globalOTDTable );
- globalOTDTable.GlobalOTDTable_Product_MP().AsyncExecute();
- globalOTDTable.GlobalOTDTable_ConversionFactor().AsyncExecute();
- globalOTDTable.GlobalOTDTable_Operation().AsyncExecute();
- globalOTDTable.GlobalOTDTable_OperationBOM().AsyncExecute();
- globalOTDTable -> OnException( globalOTDTable -> Global_MappingLane::CreateByAPI() -> Exception(), globalOTDTable );
- globalOTDTable -> OnException( globalOTDTable -> Global_MappingLaneLeg::CreateByAPI() -> Exception(), globalOTDTable );
- globalOTDTable.GlobalOTDTable_ProductInLane().AsyncExecute();
- globalOTDTable.GlobalOTDTable_AIPISPIP().AsyncExecute();
- globalOTDTable.GlobalOTDTable_InventorySupply().AsyncExecute();
- globalOTDTable.GlobalOTDTable_StockingPointCost().AsyncExecute();
- globalOTDTable.GlobalOTDTable_OperationCost().AsyncExecute();
- globalOTDTable.GlobalOTDTable_Forecast().AsyncExecute();
- globalOTDTable.GlobalOTDTable_CustomOrder().AsyncExecute();
+ //globalOTDTable.GlobalOTDTable_UnitOfMeasure_MP().AsyncExecute();
+ //globalOTDTable.GlobalOTDTable_SalesSegment_MP().AsyncExecute();
+ //globalOTDTable -> OnException( globalOTDTable -> Global_MappingStockingPoint_MP::CreateByAPI() -> Exception(), globalOTDTable );
+ //globalOTDTable -> OnException( globalOTDTable -> Global_MappingCurrency_MP::CreateByAPI() -> Exception(), globalOTDTable );
+ //globalOTDTable -> OnException( globalOTDTable -> Global_MappingCurrencyRate_MP::CreateByAPI() -> Exception(), globalOTDTable );
+ //globalOTDTable.GlobalOTDTable_Product_MP().AsyncExecute();
+ //globalOTDTable.GlobalOTDTable_ConversionFactor().AsyncExecute();
+ //globalOTDTable.GlobalOTDTable_Operation().AsyncExecute();
+ //globalOTDTable.GlobalOTDTable_OperationBOM().AsyncExecute();
+ //globalOTDTable -> OnException( globalOTDTable -> Global_MappingLane::CreateByAPI() -> Exception(), globalOTDTable );
+ //globalOTDTable -> OnException( globalOTDTable -> Global_MappingLaneLeg::CreateByAPI() -> Exception(), globalOTDTable );
+ //globalOTDTable.GlobalOTDTable_ProductInLane().AsyncExecute();
+ //globalOTDTable.GlobalOTDTable_AIPISPIP().AsyncExecute();
+ //globalOTDTable.GlobalOTDTable_InventorySupply().AsyncExecute();
+ //globalOTDTable.GlobalOTDTable_StockingPointCost().AsyncExecute();
+ //globalOTDTable.GlobalOTDTable_OperationCost().AsyncExecute();
+ //globalOTDTable.GlobalOTDTable_Forecast().AsyncExecute();
+ //globalOTDTable.GlobalOTDTable_CustomOrder().AsyncExecute();
+ //globalOTDTable.GlobalOTDTable_DOI_DSI().AsyncExecute();
+ //globalOTDTable.GlobalOTDTable_CustomerGrade().AsyncExecute();
*]
}
diff --git a/_Main/BL/Type_GlobalDTOTable/_ROOT_Type_GlobalOTDTable.qbl b/_Main/BL/Type_GlobalDTOTable/_ROOT_Type_GlobalOTDTable.qbl
index 0518307..c3d49d2 100644
--- a/_Main/BL/Type_GlobalDTOTable/_ROOT_Type_GlobalOTDTable.qbl
+++ b/_Main/BL/Type_GlobalDTOTable/_ROOT_Type_GlobalOTDTable.qbl
@@ -5,5 +5,17 @@
{
#keys: '5[414702.0.83354588][414702.0.83354586][0.0.0][414702.0.83354587][414702.0.83354589]'
BaseType: Object
+ OnCreate:
+ [*
+ this.BusinessType( relnew, BusinessTypeName := "鎵嬫満浜嬩笟閮∣LED" );
+ this.BusinessType( relnew, BusinessTypeName := "涓撲笟鏄剧ず浜嬩笟閮�" );
+ this.BusinessType( relnew, BusinessTypeName := "澶栧崠CELLOLED" );
+ this.BusinessType( relnew, BusinessTypeName := "鎵嬫満浜嬩笟閮�" );
+ this.BusinessType( relnew, BusinessTypeName := "姹借溅鐢靛瓙浜嬩笟閮�" );
+ this.BusinessType( relnew, BusinessTypeName := "鐗圭鏄剧ず" );
+ this.BusinessType( relnew, BusinessTypeName := "杩愬姩鍋ュ悍浜嬩笟閮�" );
+ this.BusinessType( relnew, BusinessTypeName := "杞﹁浇鏄剧ず浜嬩笟閮�" );
+ this.BusinessType( relnew, BusinessTypeName := "IT浜嬩笟閮�" );
+ *]
StructuredName: 'GlobalOTDTables'
}
diff --git a/_Main/BL/Type_Global_BrokerExecuteLog/Attribute_ExecuteUser.qbl b/_Main/BL/Type_Global_BrokerExecuteLog/Attribute_ExecuteUser.qbl
new file mode 100644
index 0000000..4549caf
--- /dev/null
+++ b/_Main/BL/Type_Global_BrokerExecuteLog/Attribute_ExecuteUser.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ExecuteUser
+{
+ #keys: '3[414702.0.498264673][414702.0.498264672][414702.0.498264674]'
+ Description: '鎵ц鐢ㄦ埛'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_Global_BrokerExecuteLog/Attribute_ExecutionStatus.qbl b/_Main/BL/Type_Global_BrokerExecuteLog/Attribute_ExecutionStatus.qbl
new file mode 100644
index 0000000..e4a5392
--- /dev/null
+++ b/_Main/BL/Type_Global_BrokerExecuteLog/Attribute_ExecutionStatus.qbl
@@ -0,0 +1,13 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ExecutionStatus
+{
+ #keys: '3[414702.0.498264686][414702.0.498264685][414702.0.498264687]'
+ Description:
+ [*
+ 鎵ц鐘舵��
+ InOperation
+ Complete
+ *]
+ ValueType: String
+}
diff --git a/_Main/BL/Type_Global_BrokerExecuteLog/StaticMethod_CanRun.qbl b/_Main/BL/Type_Global_BrokerExecuteLog/StaticMethod_CanRun.qbl
new file mode 100644
index 0000000..428134f
--- /dev/null
+++ b/_Main/BL/Type_Global_BrokerExecuteLog/StaticMethod_CanRun.qbl
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod CanRun (
+ GlobalOTDTable globalOTDTable,
+ String brokerName
+) as Boolean
+{
+ TextBody:
+ [*
+ isCanRun := exists( globalOTDTable, Global_BrokerExecuteLog, tempGBEL, tempGBEL.BrokerName() = brokerName and
+ tempGBEL.ExecutionStatus() = "InOperation"
+ );
+
+ return isCanRun;
+ *]
+}
diff --git a/_Main/BL/Type_Global_BrokerExecuteLog/StaticMethod_CreateInOperation.qbl b/_Main/BL/Type_Global_BrokerExecuteLog/StaticMethod_CreateInOperation.qbl
new file mode 100644
index 0000000..5f46a5f
--- /dev/null
+++ b/_Main/BL/Type_Global_BrokerExecuteLog/StaticMethod_CreateInOperation.qbl
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod CreateInOperation (
+ GlobalOTDTable globalOTDTable,
+ String brokerName,
+ String executionUser
+)
+{
+ TextBody:
+ [*
+ globalOTDTable.Global_BrokerExecuteLog( relnew,
+ BrokerName := brokerName,
+ ExecuteUser := executionUser,
+ ExecutionStatus := "InOperation" );
+ *]
+}
diff --git a/_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/StaticMethod_SynchronizeInterfaceData.qbl b/_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/StaticMethod_SynchronizeInterfaceData.qbl
new file mode 100644
index 0000000..e45d793
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/StaticMethod_SynchronizeInterfaceData.qbl
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SynchronizeInterfaceData (
+ GlobalOTDTable globalOTDTable,
+ String executionUser,
+ String brokerName
+)
+{
+ TextBody:
+ [*
+ globalOTDTable.Global_MappingActualProductInStockingPointInPeriod( relflush );
+ isCanRun := Global_BrokerExecuteLog::CanRun( globalOTDTable, brokerName );
+ if ( not isCanRun ) {
+ Global_BrokerExecuteLog::CreateInOperation( globalOTDTable, brokerName, executionUser );
+ globalOTDTable.GlobalOTDTable_AIPISPIP().AsyncExecute();
+ }
+ *]
+}
diff --git a/_Main/BL/Type_Global_MappingConversionFactor/StaticMethod_SynchronizeInterfaceData.qbl b/_Main/BL/Type_Global_MappingConversionFactor/StaticMethod_SynchronizeInterfaceData.qbl
new file mode 100644
index 0000000..58bc3d5
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingConversionFactor/StaticMethod_SynchronizeInterfaceData.qbl
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SynchronizeInterfaceData (
+ GlobalOTDTable globalOTDTable,
+ String executionUser,
+ String brokerName
+)
+{
+ TextBody:
+ [*
+ globalOTDTable.Global_MappingConversionFactor( relflush );
+ isCanRun := Global_BrokerExecuteLog::CanRun( globalOTDTable, brokerName );
+ if ( not isCanRun ) {
+ Global_BrokerExecuteLog::CreateInOperation( globalOTDTable, brokerName, executionUser );
+ globalOTDTable.GlobalOTDTable_ConversionFactor().AsyncExecute();
+ }
+ *]
+}
diff --git a/_Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_CreateByAPI.qbl b/_Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_CreateByAPI.qbl
index 13d9157..e3b0e63 100644
--- a/_Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_CreateByAPI.qbl
+++ b/_Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_CreateByAPI.qbl
@@ -38,14 +38,12 @@
);
}
- globalOTDTable.Global_BrokerExecuteLog( relnew,
- BrokerName := "",
- ElementTotal := globalOTDTable.Global_MappingCurrencyRate_MP( relsize ),
- ErrorMessage := "",
- IsSuccess := true,
- Name := "鎺ュ彛鏁版嵁锛堣揣甯佹眹鐜囷級",
- SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
- ErrorNo := 0
- );
+ gbel := select( globalOTDTable, Global_BrokerExecuteLog, tempGBEL, tempGBEL.ExecutionStatus() = "InOperation" and
+ tempGBEL.BrokerName() = "CurrencyRate_MP" );
+ gbel.ExecutionStatus( "Complete" );
+ gbel.ElementTotal( globalOTDTable.Global_MappingCurrencyRate_MP( relsize ) );
+ gbel.IsSuccess( true );
+ gbel.Name( "鎺ュ彛鏁版嵁锛堣揣甯佹眹鐜囷級" );
+ gbel.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
*]
}
diff --git a/_Main/BL/Type_Global_MappingCurrency_MP/StaticMethod_CreateByAPI.qbl b/_Main/BL/Type_Global_MappingCurrency_MP/StaticMethod_CreateByAPI.qbl
index e938f73..2480088 100644
--- a/_Main/BL/Type_Global_MappingCurrency_MP/StaticMethod_CreateByAPI.qbl
+++ b/_Main/BL/Type_Global_MappingCurrency_MP/StaticMethod_CreateByAPI.qbl
@@ -35,14 +35,12 @@
);
}
- globalOTDTable.Global_BrokerExecuteLog( relnew,
- BrokerName := "",
- ElementTotal := globalOTDTable.Global_MappingCurrency_MP( relsize ),
- ErrorMessage := "",
- IsSuccess := true,
- Name := "鎺ュ彛鏁版嵁锛堣揣甯侊級",
- SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
- ErrorNo := 0
- );
+ gbel := select( globalOTDTable, Global_BrokerExecuteLog, tempGBEL, tempGBEL.ExecutionStatus() = "InOperation" and
+ tempGBEL.BrokerName() = "Currency_MP" );
+ gbel.ExecutionStatus( "Complete" );
+ gbel.ElementTotal( globalOTDTable.Global_MappingCurrency_MP( relsize ) );
+ gbel.IsSuccess( true );
+ gbel.Name( "鎺ュ彛鏁版嵁锛堣揣甯侊級" );
+ gbel.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
*]
}
diff --git a/_Main/BL/Type_Global_MappingCustomOrder/Attribute_OrderTime.qbl b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_OrderTime.qbl
new file mode 100644
index 0000000..a9066b7
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_OrderTime.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute OrderTime
+{
+ #keys: '3[414702.0.462647536][414702.0.462647535][414702.0.462647537]'
+ ValueType: Date
+}
diff --git "a/_Main/BL/Type_Global_MappingCustomOrder/Attribute_OrderType\043905.qbl" "b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_OrderType\043905.qbl"
new file mode 100644
index 0000000..7998bc6
--- /dev/null
+++ "b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_OrderType\043905.qbl"
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute OrderType
+{
+ #keys: '3[414702.0.462647526][414702.0.462647525][414702.0.462647527]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingCustomOrder/Attribute_OrderType.qbl b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_OrderType.qbl
deleted file mode 100644
index 7e887b1..0000000
--- a/_Main/BL/Type_Global_MappingCustomOrder/Attribute_OrderType.qbl
+++ /dev/null
@@ -1,7 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute OrderType
-{
- #keys: '3[414702.0.265050347][414702.0.265050346][414702.0.265050348]'
- ValueType: String
-}
diff --git a/_Main/BL/Type_Global_MappingCustomOrder/Attribute_ProductGrade.qbl b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_ProductGrade.qbl
new file mode 100644
index 0000000..2eff593
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_ProductGrade.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductGrade
+{
+ #keys: '3[414702.0.462647546][414702.0.462647545][414702.0.462647547]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingCustomOrder/Attribute_SegmentPriority.qbl b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_SegmentPriority.qbl
new file mode 100644
index 0000000..47ce029
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_SegmentPriority.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute SegmentPriority
+{
+ #keys: '3[414702.0.462647556][414702.0.462647555][414702.0.462647557]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingCustomOrder/Attribute_SheetProfitability.qbl b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_SheetProfitability.qbl
new file mode 100644
index 0000000..d1c49f7
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_SheetProfitability.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute SheetProfitability
+{
+ #keys: '3[414702.0.462647566][414702.0.462647565][414702.0.462647567]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_SynchronizeInterfaceData.qbl b/_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_SynchronizeInterfaceData.qbl
new file mode 100644
index 0000000..9f855d0
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_SynchronizeInterfaceData.qbl
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SynchronizeInterfaceData (
+ GlobalOTDTable globalOTDTable,
+ String executionUser,
+ String brokerName
+)
+{
+ TextBody:
+ [*
+ globalOTDTable.Global_MappingCustomOrder( relflush );
+ isCanRun := Global_BrokerExecuteLog::CanRun( globalOTDTable, brokerName );
+ if ( not isCanRun ) {
+ Global_BrokerExecuteLog::CreateInOperation( globalOTDTable, brokerName, executionUser );
+ globalOTDTable.GlobalOTDTable_CustomOrder().AsyncExecute();
+ }
+ *]
+}
diff --git a/_Main/BL/Type_Global_MappingCustomerGrade/Attribute_BusinessType.qbl b/_Main/BL/Type_Global_MappingCustomerGrade/Attribute_BusinessType.qbl
new file mode 100644
index 0000000..0c0ee82
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCustomerGrade/Attribute_BusinessType.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute BusinessType
+{
+ #keys: '3[414702.0.445738362][414702.0.445738361][414702.0.445738363]'
+ Description: '浜嬩笟閮�'
+ IsReadOnly: true
+ ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingCustomerGrade/Attribute_Customer.qbl b/_Main/BL/Type_Global_MappingCustomerGrade/Attribute_Customer.qbl
new file mode 100644
index 0000000..046a760
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCustomerGrade/Attribute_Customer.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Customer
+{
+ #keys: '3[414702.0.445738352][414702.0.445738351][414702.0.445738353]'
+ Description: '瀹㈡埛鍚嶇О'
+ IsReadOnly: true
+ ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingCustomerGrade/Attribute_CustomerGrade.qbl b/_Main/BL/Type_Global_MappingCustomerGrade/Attribute_CustomerGrade.qbl
new file mode 100644
index 0000000..cd779bb
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCustomerGrade/Attribute_CustomerGrade.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute CustomerGrade
+{
+ #keys: '3[414702.0.445738372][414702.0.445738371][414702.0.445738373]'
+ Description: '瀹㈡埛绛夌骇'
+ IsReadOnly: true
+ ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingCustomerGrade/StaticMethod_SynchronizeInterfaceData.qbl b/_Main/BL/Type_Global_MappingCustomerGrade/StaticMethod_SynchronizeInterfaceData.qbl
new file mode 100644
index 0000000..073d3d2
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCustomerGrade/StaticMethod_SynchronizeInterfaceData.qbl
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SynchronizeInterfaceData (
+ GlobalOTDTable globalOTDTable,
+ String executionUser,
+ String brokerName
+)
+{
+ TextBody:
+ [*
+ globalOTDTable.Global_MappingCustomerGrade( relflush );
+ isCanRun := Global_BrokerExecuteLog::CanRun( globalOTDTable, brokerName );
+ if ( not isCanRun ) {
+ Global_BrokerExecuteLog::CreateInOperation( globalOTDTable, brokerName, executionUser );
+ globalOTDTable.GlobalOTDTable_CustomerGrade().AsyncExecute();
+ }
+ *]
+}
diff --git a/_Main/BL/Type_Global_MappingCustomerGrade/TypeIndex_Global_MappingCustomerGradeTypeIndex.qbl b/_Main/BL/Type_Global_MappingCustomerGrade/TypeIndex_Global_MappingCustomerGradeTypeIndex.qbl
new file mode 100644
index 0000000..b30282d
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCustomerGrade/TypeIndex_Global_MappingCustomerGradeTypeIndex.qbl
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: #root
+TypeIndex Global_MappingCustomerGradeTypeIndex
+{
+ Attributes:
+ [
+ TypeIndexAttribute
+ {
+ ModelElement: BusinessType
+ }
+ TypeIndexAttribute
+ {
+ ModelElement: Customer
+ }
+ TypeIndexAttribute
+ {
+ ModelElement: CustomerGrade
+ }
+ ]
+}
diff --git a/_Main/BL/Type_Global_MappingCustomerGrade/_ROOT_Type_Global_MappingCustomerGrade.qbl b/_Main/BL/Type_Global_MappingCustomerGrade/_ROOT_Type_Global_MappingCustomerGrade.qbl
new file mode 100644
index 0000000..f568483
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCustomerGrade/_ROOT_Type_Global_MappingCustomerGrade.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type Global_MappingCustomerGrade
+{
+ #keys: '5[414702.0.445485672][414702.0.445485670][0.0.0][414702.0.445485671][414702.0.445485673]'
+ BaseType: Object
+ StructuredName: 'Global_MappingCustomerGrades'
+}
diff --git a/_Main/BL/Type_Global_MappingDOI_DSI/Attribute_DOI.qbl b/_Main/BL/Type_Global_MappingDOI_DSI/Attribute_DOI.qbl
new file mode 100644
index 0000000..d4d3c40
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingDOI_DSI/Attribute_DOI.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute DOI
+{
+ #keys: '3[414702.0.445364709][414702.0.445364708][414702.0.445364710]'
+ Description: '搴撳瓨鍛ㄨ浆澶╂暟'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingDOI_DSI/Attribute_DSI.qbl b/_Main/BL/Type_Global_MappingDOI_DSI/Attribute_DSI.qbl
new file mode 100644
index 0000000..2ad6d72
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingDOI_DSI/Attribute_DSI.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute DSI
+{
+ #keys: '3[414702.0.445364719][414702.0.445364718][414702.0.445364720]'
+ Description: '搴撳瓨鍙敭澶╂暟'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingDOI_DSI/Attribute_OrganCode.qbl b/_Main/BL/Type_Global_MappingDOI_DSI/Attribute_OrganCode.qbl
new file mode 100644
index 0000000..2bd3055
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingDOI_DSI/Attribute_OrganCode.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute OrganCode
+{
+ #keys: '3[414702.0.445364699][414702.0.445364698][414702.0.445364700]'
+ Description: '缁勭粐缂栫爜'
+ IsReadOnly: true
+ ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingDOI_DSI/Attribute_ProductID.qbl b/_Main/BL/Type_Global_MappingDOI_DSI/Attribute_ProductID.qbl
new file mode 100644
index 0000000..51fd7ff
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingDOI_DSI/Attribute_ProductID.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductID
+{
+ #keys: '3[414702.0.445364677][414702.0.445364676][414702.0.445364678]'
+ Description: '鐗╂枡缂栫爜'
+ IsReadOnly: true
+ ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingDOI_DSI/StaticMethod_SynchronizeInterfaceData.qbl b/_Main/BL/Type_Global_MappingDOI_DSI/StaticMethod_SynchronizeInterfaceData.qbl
new file mode 100644
index 0000000..619df91
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingDOI_DSI/StaticMethod_SynchronizeInterfaceData.qbl
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SynchronizeInterfaceData (
+ GlobalOTDTable globalOTDTable,
+ String executionUser,
+ String brokerName
+)
+{
+ TextBody:
+ [*
+ globalOTDTable.Global_MappingDOI_DSI( relflush );
+ isCanRun := Global_BrokerExecuteLog::CanRun( globalOTDTable, brokerName );
+ if ( not isCanRun ) {
+ Global_BrokerExecuteLog::CreateInOperation( globalOTDTable, brokerName, executionUser );
+ globalOTDTable.GlobalOTDTable_DOI_DSI().AsyncExecute();
+ }
+ *]
+}
diff --git a/_Main/BL/Type_Global_MappingDOI_DSI/TypeIndex_Global_MappingDOI_DSITypeIndex.qbl b/_Main/BL/Type_Global_MappingDOI_DSI/TypeIndex_Global_MappingDOI_DSITypeIndex.qbl
new file mode 100644
index 0000000..c088e3b
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingDOI_DSI/TypeIndex_Global_MappingDOI_DSITypeIndex.qbl
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: #root
+TypeIndex Global_MappingDOI_DSITypeIndex
+{
+ Attributes:
+ [
+ TypeIndexAttribute
+ {
+ ModelElement: ProductID
+ }
+ TypeIndexAttribute
+ {
+ ModelElement: OrganCode
+ }
+ ]
+}
diff --git a/_Main/BL/Type_Global_MappingDOI_DSI/_ROOT_Type_Global_MappingDOI_DSI.qbl b/_Main/BL/Type_Global_MappingDOI_DSI/_ROOT_Type_Global_MappingDOI_DSI.qbl
new file mode 100644
index 0000000..628e476
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingDOI_DSI/_ROOT_Type_Global_MappingDOI_DSI.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type Global_MappingDOI_DSI
+{
+ #keys: '5[414702.0.445364654][414702.0.445364652][0.0.0][414702.0.445364653][414702.0.445364655]'
+ BaseType: Object
+ StructuredName: 'Global_MappingDOI_DSIs'
+}
diff --git a/_Main/BL/Type_Global_MappingForecast/StaticMethod_SynchronizeInterfaceData.qbl b/_Main/BL/Type_Global_MappingForecast/StaticMethod_SynchronizeInterfaceData.qbl
new file mode 100644
index 0000000..a9bf8b3
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingForecast/StaticMethod_SynchronizeInterfaceData.qbl
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SynchronizeInterfaceData (
+ GlobalOTDTable globalOTDTable,
+ String executionUser,
+ String brokerName
+)
+{
+ TextBody:
+ [*
+ globalOTDTable.Global_MappingForecast( relflush );
+ isCanRun := Global_BrokerExecuteLog::CanRun( globalOTDTable, brokerName );
+ if ( not isCanRun ) {
+ Global_BrokerExecuteLog::CreateInOperation( globalOTDTable, brokerName, executionUser );
+ globalOTDTable.GlobalOTDTable_Forecast().AsyncExecute();
+ }
+ *]
+}
diff --git a/_Main/BL/Type_Global_MappingInventorySupply/StaticMethod_SynchronizeInterfaceData.qbl b/_Main/BL/Type_Global_MappingInventorySupply/StaticMethod_SynchronizeInterfaceData.qbl
new file mode 100644
index 0000000..c63682f
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingInventorySupply/StaticMethod_SynchronizeInterfaceData.qbl
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SynchronizeInterfaceData (
+ GlobalOTDTable globalOTDTable,
+ String executionUser,
+ String brokerName
+)
+{
+ TextBody:
+ [*
+ globalOTDTable.Global_MappingInventorySupply( relflush );
+ isCanRun := Global_BrokerExecuteLog::CanRun( globalOTDTable, brokerName );
+ if ( not isCanRun ) {
+ Global_BrokerExecuteLog::CreateInOperation( globalOTDTable, brokerName, executionUser );
+ globalOTDTable.GlobalOTDTable_InventorySupply().AsyncExecute();
+ }
+ *]
+}
diff --git a/_Main/BL/Type_Global_MappingLane/StaticMethod_CreateByAPI.qbl b/_Main/BL/Type_Global_MappingLane/StaticMethod_CreateByAPI.qbl
index 6d04074..e46efd6 100644
--- a/_Main/BL/Type_Global_MappingLane/StaticMethod_CreateByAPI.qbl
+++ b/_Main/BL/Type_Global_MappingLane/StaticMethod_CreateByAPI.qbl
@@ -36,14 +36,13 @@
);
}
- globalOTDTable.Global_BrokerExecuteLog( relnew,
- BrokerName := "",
- ElementTotal := globalOTDTable.Global_MappingLane( relsize ),
- ErrorMessage := "",
- IsSuccess := true,
- Name := "鎺ュ彛鏁版嵁锛堣溅閬擄級",
- SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
- ErrorNo := 0
- );
+
+ gbel := select( globalOTDTable, Global_BrokerExecuteLog, tempGBEL, tempGBEL.ExecutionStatus() = "InOperation" and
+ tempGBEL.BrokerName() = "Lane" );
+ gbel.ExecutionStatus( "Complete" );
+ gbel.ElementTotal( globalOTDTable.Global_MappingLane( relsize ) );
+ gbel.IsSuccess( true );
+ gbel.Name( "鎺ュ彛鏁版嵁锛堣溅閬擄級" );
+ gbel.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
*]
}
diff --git a/_Main/BL/Type_Global_MappingLaneLeg/StaticMethod_CreateByAPI.qbl b/_Main/BL/Type_Global_MappingLaneLeg/StaticMethod_CreateByAPI.qbl
index 20f668b..7899f6e 100644
--- a/_Main/BL/Type_Global_MappingLaneLeg/StaticMethod_CreateByAPI.qbl
+++ b/_Main/BL/Type_Global_MappingLaneLeg/StaticMethod_CreateByAPI.qbl
@@ -37,14 +37,12 @@
);
}
- globalOTDTable.Global_BrokerExecuteLog( relnew,
- BrokerName := "",
- ElementTotal := globalOTDTable.Global_MappingLaneLeg( relsize ),
- ErrorMessage := "",
- IsSuccess := true,
- Name := "鎺ュ彛鏁版嵁锛堣溅閬撴敮鏋讹級",
- SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
- ErrorNo := 0
- );
+ gbel := select( globalOTDTable, Global_BrokerExecuteLog, tempGBEL, tempGBEL.ExecutionStatus() = "InOperation" and
+ tempGBEL.BrokerName() = "LaneLeg" );
+ gbel.ExecutionStatus( "Complete" );
+ gbel.ElementTotal( globalOTDTable.Global_MappingLaneLeg( relsize ) );
+ gbel.IsSuccess( true );
+ gbel.Name( "鎺ュ彛鏁版嵁锛堣溅閬撴敮鏋讹級" );
+ gbel.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
*]
}
diff --git a/_Main/BL/Type_Global_MappingOperation/Attribute_IsLinkedWithFinishedGood.qbl b/_Main/BL/Type_Global_MappingOperation/Attribute_IsLinkedWithFinishedGood.qbl
new file mode 100644
index 0000000..76d65ba
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperation/Attribute_IsLinkedWithFinishedGood.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute IsLinkedWithFinishedGood
+{
+ #keys: '3[157968.0.1145180207][157968.0.1145180206][157968.0.1145180208]'
+ Description: 'Updated procedurally for checking whether this object is used to produce a finished good.'
+ ValueType: Boolean
+}
diff --git a/_Main/BL/Type_Global_MappingOperation/StaticMethod_SynchronizeInterfaceData.qbl b/_Main/BL/Type_Global_MappingOperation/StaticMethod_SynchronizeInterfaceData.qbl
new file mode 100644
index 0000000..2d35ace
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperation/StaticMethod_SynchronizeInterfaceData.qbl
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SynchronizeInterfaceData (
+ GlobalOTDTable globalOTDTable,
+ String executionUser,
+ String brokerName
+)
+{
+ TextBody:
+ [*
+ globalOTDTable.Global_MappingOperation( relflush );
+ isCanRun := Global_BrokerExecuteLog::CanRun( globalOTDTable, brokerName );
+ if ( not isCanRun ) {
+ Global_BrokerExecuteLog::CreateInOperation( globalOTDTable, brokerName, executionUser );
+ globalOTDTable.GlobalOTDTable_Operation().AsyncExecute();
+ }
+ *]
+}
diff --git a/_Main/BL/Type_Global_MappingOperationBOM/Attribute_IsLinkedWithFinishedGood.qbl b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_IsLinkedWithFinishedGood.qbl
new file mode 100644
index 0000000..e5ff163
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_IsLinkedWithFinishedGood.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute IsLinkedWithFinishedGood
+{
+ #keys: '3[157968.0.1145180190][157968.0.1145180189][157968.0.1145180191]'
+ Description: 'Updated procedurally for checking whether this object is used to produce a finished good.'
+ ValueType: Boolean
+}
diff --git a/_Main/BL/Type_Global_MappingOperationBOM/StaticMethod_SynchronizeInterfaceData.qbl b/_Main/BL/Type_Global_MappingOperationBOM/StaticMethod_SynchronizeInterfaceData.qbl
new file mode 100644
index 0000000..69c60d3
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperationBOM/StaticMethod_SynchronizeInterfaceData.qbl
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SynchronizeInterfaceData (
+ GlobalOTDTable globalOTDTable,
+ String executionUser,
+ String brokerName
+)
+{
+ TextBody:
+ [*
+ globalOTDTable.Global_MappingOperationBOM( relflush );
+ isCanRun := Global_BrokerExecuteLog::CanRun( globalOTDTable, brokerName );
+ if ( not isCanRun ) {
+ Global_BrokerExecuteLog::CreateInOperation( globalOTDTable, brokerName, executionUser );
+ globalOTDTable.GlobalOTDTable_OperationBOM().AsyncExecute();
+ }
+ *]
+}
diff --git a/_Main/BL/Type_Global_MappingProductInLane/StaticMethod_SynchronizeInterfaceData.qbl b/_Main/BL/Type_Global_MappingProductInLane/StaticMethod_SynchronizeInterfaceData.qbl
new file mode 100644
index 0000000..f2333f5
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingProductInLane/StaticMethod_SynchronizeInterfaceData.qbl
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SynchronizeInterfaceData (
+ GlobalOTDTable globalOTDTable,
+ String executionUser,
+ String brokerName
+)
+{
+ TextBody:
+ [*
+ globalOTDTable.Global_MappingProductInLane( relflush );
+ isCanRun := Global_BrokerExecuteLog::CanRun( globalOTDTable, brokerName );
+ if ( not isCanRun ) {
+ Global_BrokerExecuteLog::CreateInOperation( globalOTDTable, brokerName, executionUser );
+ globalOTDTable.GlobalOTDTable_ProductInLane().AsyncExecute();
+ }
+ *]
+}
diff --git a/_Main/BL/Type_Global_MappingProduct_MP/Attribute_BOMCount.qbl b/_Main/BL/Type_Global_MappingProduct_MP/Attribute_BOMCount.qbl
new file mode 100644
index 0000000..1916cbd
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingProduct_MP/Attribute_BOMCount.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute BOMCount
+{
+ #keys: '3[157968.0.1161166085][157968.0.1161166084][157968.0.1161166086]'
+ Description: 'Number of unique BOM used to produce this finished good.'
+ ValueType: Number
+}
diff --git a/_Main/BL/Type_Global_MappingProduct_MP/Attribute_IsLinkedWithFinishedGood.qbl b/_Main/BL/Type_Global_MappingProduct_MP/Attribute_IsLinkedWithFinishedGood.qbl
new file mode 100644
index 0000000..d2cec36
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingProduct_MP/Attribute_IsLinkedWithFinishedGood.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute IsLinkedWithFinishedGood
+{
+ #keys: '3[157968.0.1145180168][157968.0.1145180167][157968.0.1145180169]'
+ Description: 'Updated procedurally for checking whether this product is used to produce a finished good.'
+ ValueType: Boolean
+}
diff --git a/_Main/BL/Type_Global_MappingProduct_MP/Method_SetIsLinkedWithFinishedGoodAttributes_Recursive.qbl b/_Main/BL/Type_Global_MappingProduct_MP/Method_SetIsLinkedWithFinishedGoodAttributes_Recursive.qbl
new file mode 100644
index 0000000..f0425fa
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingProduct_MP/Method_SetIsLinkedWithFinishedGoodAttributes_Recursive.qbl
@@ -0,0 +1,91 @@
+Quintiq file version 2.0
+#parent: #root
+Method SetIsLinkedWithFinishedGoodAttributes_Recursive (
+ Number depth,
+ Number maxdepth,
+ Global_MappingProduct_MPs productspool,
+ Global_MappingOperations operationspool,
+ Global_MappingOperationBOMs operationbomspool,
+ output Strings uniquebomids_o
+)
+{
+ Description: 'Method to traverse the supply chain recursively to determine if there are any products that are not used to produce finished goods.'
+ TextBody:
+ [*
+ if( not this.IsLinkedWithFinishedGood() )
+ {
+ if( this.ProductMajorType() <> "鎴愬搧" )
+ {
+ uniquebomids_o.Add( this.ID() );
+ }
+
+ depth := depth + 1;
+ this.IsLinkedWithFinishedGood( true );
+
+ if( depth <= maxdepth )
+ {
+ operations := selectset( operationspool, Elements, operation,
+ not operation.IsLinkedWithFinishedGood()
+ and operation.BusinessType() = this.BusinessType()
+ and operation.ProductID() = this.ID() );
+ operationspool.Remove( operations );
+
+ traverse( operations, Elements, operation )
+ {
+ operation.IsLinkedWithFinishedGood( true );
+
+ operationboms := selectset( operationbomspool, Elements, operationbom,
+ not operationbom.IsLinkedWithFinishedGood()
+ and operationbom.BusinessType() = operation.BusinessType()
+ and operationbom.OrganCode() = operation.OrganCode()
+ and operationbom.ProcessSection() = operation.ProcessSection()
+ and operationbom.ProductCode() = operation.ProductID() );
+ operationbomspool.Remove( operationboms );
+
+ traverse( operationboms, Elements, operationbom )
+ {
+ operationbom.IsLinkedWithFinishedGood( true );
+
+ componentproduct := Global_MappingProduct_MP::FindTypeIndexIDAndBusinessType( operationbom.ComponentCode(),
+ operationbom.BusinessType() );
+
+ if( guard( not componentproduct.IsLinkedWithFinishedGood(), false ) )
+ {
+ productspool.Remove( componentproduct );
+ componentproduct.SetIsLinkedWithFinishedGoodAttributes_Recursive( depth,
+ maxdepth,
+ productspool,
+ operationspool,
+ operationbomspool,
+ uniquebomids_o );
+ }
+
+ if( operationbom.AlternativeMaterialCode() <> ""
+ and operationbom.AlternativeMaterialCode() <> operationbom.ComponentCode() )
+ {
+ alternativeproduct := Global_MappingProduct_MP::FindTypeIndexIDAndBusinessType( operationbom.AlternativeMaterialCode(),
+ operationbom.BusinessType() );
+
+ if( guard( not alternativeproduct.IsLinkedWithFinishedGood(), false ) )
+ {
+ productspool.Remove( alternativeproduct );
+ alternativeproduct.SetIsLinkedWithFinishedGoodAttributes_Recursive( depth,
+ maxdepth,
+ productspool,
+ operationspool,
+ operationbomspool,
+ uniquebomids_o );
+ }
+ }
+ }
+ }
+ }
+ else
+ {
+ debuginfo( "Product:", this.ID(),
+ "| BusinessType:", this.BusinessType(),
+ "| Max depth reached, stop searching... (", depth, ")" );
+ }
+ }
+ *]
+}
diff --git a/_Main/BL/Type_Global_MappingProduct_MP/StaticMethod_SynchronizeInterfaceData.qbl b/_Main/BL/Type_Global_MappingProduct_MP/StaticMethod_SynchronizeInterfaceData.qbl
new file mode 100644
index 0000000..9728f0f
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingProduct_MP/StaticMethod_SynchronizeInterfaceData.qbl
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SynchronizeInterfaceData (
+ GlobalOTDTable globalOTDTable,
+ String executionUser,
+ String brokerName
+)
+{
+ TextBody:
+ [*
+ globalOTDTable.Global_MappingProduct_MP( relflush );
+ isCanRun := Global_BrokerExecuteLog::CanRun( globalOTDTable, brokerName );
+ if ( not isCanRun ) {
+ Global_BrokerExecuteLog::CreateInOperation( globalOTDTable, brokerName, executionUser );
+ globalOTDTable.GlobalOTDTable_Product_MP().AsyncExecute();
+ }
+ *]
+}
diff --git a/_Main/BL/Type_Global_MappingSalesSegment_MP/StaticMethod_SynchronizeInterfaceData.qbl b/_Main/BL/Type_Global_MappingSalesSegment_MP/StaticMethod_SynchronizeInterfaceData.qbl
new file mode 100644
index 0000000..76d2c88
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingSalesSegment_MP/StaticMethod_SynchronizeInterfaceData.qbl
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SynchronizeInterfaceData (
+ GlobalOTDTable globalOTDTable,
+ String executionUser,
+ String brokerName
+)
+{
+ TextBody:
+ [*
+ globalOTDTable.Global_MappingSalesSegment_MP( relflush );
+ isCanRun := Global_BrokerExecuteLog::CanRun( globalOTDTable, brokerName );
+ if ( not isCanRun ) {
+ Global_BrokerExecuteLog::CreateInOperation( globalOTDTable, brokerName, executionUser );
+ globalOTDTable.GlobalOTDTable_SalesSegment_MP().AsyncExecute();
+ }
+ *]
+}
diff --git a/_Main/BL/Type_Global_MappingStockingPointCost/StaticMethod_SynchronizeInterfaceData.qbl b/_Main/BL/Type_Global_MappingStockingPointCost/StaticMethod_SynchronizeInterfaceData.qbl
new file mode 100644
index 0000000..82a30f7
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingStockingPointCost/StaticMethod_SynchronizeInterfaceData.qbl
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SynchronizeInterfaceData (
+ GlobalOTDTable globalOTDTable,
+ String executionUser,
+ String brokerName
+)
+{
+ TextBody:
+ [*
+ globalOTDTable.Global_MappingStockingPointCost( relflush );
+ isCanRun := Global_BrokerExecuteLog::CanRun( globalOTDTable, brokerName );
+ if ( not isCanRun ) {
+ Global_BrokerExecuteLog::CreateInOperation( globalOTDTable, brokerName, executionUser );
+ globalOTDTable.GlobalOTDTable_StockingPointCost().AsyncExecute();
+ }
+ *]
+}
diff --git a/_Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_CreateByAPI.qbl b/_Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_CreateByAPI.qbl
index b800ef2..4901d0a 100644
--- a/_Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_CreateByAPI.qbl
+++ b/_Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_CreateByAPI.qbl
@@ -35,14 +35,12 @@
);
}
- globalOTDTable.Global_BrokerExecuteLog( relnew,
- BrokerName := "",
- ElementTotal := globalOTDTable.Global_MappingStockingPoint_MP( relsize ),
- ErrorMessage := "",
- IsSuccess := true,
- Name := "鎺ュ彛鏁版嵁锛堝簱瀛樼偣锛�",
- SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
- ErrorNo := 0
- );
+ gbel := select( globalOTDTable, Global_BrokerExecuteLog, tempGBEL, tempGBEL.ExecutionStatus() = "InOperation" and
+ tempGBEL.BrokerName() = "StockingPoint_MP" );
+ gbel.ExecutionStatus( "Complete" );
+ gbel.ElementTotal( globalOTDTable.Global_MappingStockingPoint_MP( relsize ) );
+ gbel.IsSuccess( true );
+ gbel.Name( "鎺ュ彛鏁版嵁锛堝簱瀛樼偣锛�" );
+ gbel.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
*]
}
diff --git a/_Main/BL/Type_Global_MappingUnitCost/StaticMethod_SynchronizeInterfaceData.qbl b/_Main/BL/Type_Global_MappingUnitCost/StaticMethod_SynchronizeInterfaceData.qbl
new file mode 100644
index 0000000..8eab43a
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingUnitCost/StaticMethod_SynchronizeInterfaceData.qbl
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SynchronizeInterfaceData (
+ GlobalOTDTable globalOTDTable,
+ String executionUser,
+ String brokerName
+)
+{
+ TextBody:
+ [*
+ globalOTDTable.Global_MappingOperationCost( relflush );
+ isCanRun := Global_BrokerExecuteLog::CanRun( globalOTDTable, brokerName );
+ if ( not isCanRun ) {
+ Global_BrokerExecuteLog::CreateInOperation( globalOTDTable, brokerName, executionUser );
+ globalOTDTable.GlobalOTDTable_OperationCost().AsyncExecute();
+ }
+ *]
+}
diff --git a/_Main/BL/Type_Global_MappingUnitOfMeasure_MP/StaticMethod_SynchronizeInterfaceData.qbl b/_Main/BL/Type_Global_MappingUnitOfMeasure_MP/StaticMethod_SynchronizeInterfaceData.qbl
new file mode 100644
index 0000000..a88ea5a
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingUnitOfMeasure_MP/StaticMethod_SynchronizeInterfaceData.qbl
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SynchronizeInterfaceData (
+ GlobalOTDTable globalOTDTable,
+ String executionUser,
+ String brokerName
+)
+{
+ TextBody:
+ [*
+ globalOTDTable.Global_MappingUnitOfMeasure_MP( relflush );
+ isCanRun := Global_BrokerExecuteLog::CanRun( globalOTDTable, brokerName );
+ if ( not isCanRun ) {
+ Global_BrokerExecuteLog::CreateInOperation( globalOTDTable, brokerName, executionUser );
+ globalOTDTable.GlobalOTDTable_UnitOfMeasure_MP().AsyncExecute();
+ }
+ *]
+}
diff --git a/_Main/BL/Type_Global_MappingUnitOfMeasure_MP/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingUnitOfMeasure_MP/StaticMethod_SynchronizeMacroPlanData.qbl
new file mode 100644
index 0000000..d31811e
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingUnitOfMeasure_MP/StaticMethod_SynchronizeMacroPlanData.qbl
@@ -0,0 +1,31 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SynchronizeMacroPlanData (
+ GlobalOTDTable globalOTDTable,
+ MacroPlan macroPlan
+)
+{
+ TextBody:
+ [*
+ global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew,
+ Name := "鍚屾鍗曚綅鏁版嵁",
+ IsSuccess := true
+ );
+
+ try {
+ traverse ( globalOTDTable, Global_MappingUnitOfMeasure_MP, gmuommp ) {
+ unitOfMeasure_MP := select( macroPlan, UnitOfMeasure_MP, tempUOMMP, tempUOMMP.Name() = gmuommp.Name() );
+ if ( isnull( unitOfMeasure_MP ) ) {
+ unitOfMeasure_MP := UnitOfMeasure_MP::Create( macroPlan, gmuommp.Name(), false, false );
+ }
+ if ( gmuommp.IsDefault() ) {
+ unitOfMeasure_MP.SetAsDefault();
+ }
+ }
+ } onerror {
+ global_BrokerExecuteLog.IsSuccess( false );
+ global_BrokerExecuteLog.ErrorNo( e.ErrorNr() );
+ global_BrokerExecuteLog.ErrorMessage( e.GeneralInformation() );
+ }
+ *]
+}
diff --git a/_Main/BL/Type_Global_ShowCell/Attribute_Value.qbl b/_Main/BL/Type_Global_ShowCell/Attribute_Value.qbl
new file mode 100644
index 0000000..a20bc71
--- /dev/null
+++ b/_Main/BL/Type_Global_ShowCell/Attribute_Value.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Value
+{
+ #keys: '3[414702.0.483720762][414702.0.483720761][414702.0.483720763]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_Global_ShowCell/StaticMethod_CreateShowData_CustomOrder.qbl b/_Main/BL/Type_Global_ShowCell/StaticMethod_CreateShowData_CustomOrder.qbl
new file mode 100644
index 0000000..6fc41e2
--- /dev/null
+++ b/_Main/BL/Type_Global_ShowCell/StaticMethod_CreateShowData_CustomOrder.qbl
@@ -0,0 +1,58 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod CreateShowData_CustomOrder (
+ GlobalOTDTable globalOTDTable
+)
+{
+ TextBody:
+ [*
+ businessTypeColumn := Global_ShowColumn::CreateColumn( globalOTDTable, 0, "浜嬩笟閮�" );
+ currencyIDColumn := Global_ShowColumn::CreateColumn( globalOTDTable, 1, "璐у竵" );
+ customerColumn := Global_ShowColumn::CreateColumn( globalOTDTable, 2, "瀹㈡埛鍚嶇О" );
+ customerIDColumn := Global_ShowColumn::CreateColumn( globalOTDTable, 3, "瀹㈡埛ID" );
+ idColumn := Global_ShowColumn::CreateColumn( globalOTDTable, 4, "鍞竴鏍囪瘑" );
+ orderDateColumn := Global_ShowColumn::CreateColumn( globalOTDTable, 5, "璁㈠崟鏃ユ湡" );
+ orderIDColumn := Global_ShowColumn::CreateColumn( globalOTDTable, 6, "璁㈠崟鍙�" );
+ orderLineIDColumn := Global_ShowColumn::CreateColumn( globalOTDTable, 7, "璁㈠崟琛屽彿" );
+ priceColumn := Global_ShowColumn::CreateColumn( globalOTDTable, 8, "鍗曚环" );
+ priorityNameColumn := Global_ShowColumn::CreateColumn( globalOTDTable, 9, "浼樺厛绾у悕绉�" );
+ productIDColumn := Global_ShowColumn::CreateColumn( globalOTDTable, 10, "浜у搧缂栫爜" );
+ stockingPointIDColumn := Global_ShowColumn::CreateColumn( globalOTDTable, 11, "搴撳瓨鐐圭紪鐮�" );
+ salesegmentNameColumn := Global_ShowColumn::CreateColumn( globalOTDTable, 12, "閿�鍞儴闂ㄥ悕绉�" );
+ quantityColumn := Global_ShowColumn::CreateColumn( globalOTDTable, 13, "鏁伴噺" );
+ unitofmeasureNameColumn := Global_ShowColumn::CreateColumn( globalOTDTable, 14, "鍗曚綅" );
+ orderTypeColumn := Global_ShowColumn::CreateColumn( globalOTDTable, 15, "璁㈠崟绫诲瀷" );
+ isAvailableColumn := Global_ShowColumn::CreateColumn( globalOTDTable, 16, "鏄惁鍙敤" );
+ productGradeColumn := Global_ShowColumn::CreateColumn( globalOTDTable, 17, "浜у搧绛夌骇" );
+ segmentPriorityColumn := Global_ShowColumn::CreateColumn( globalOTDTable, 18, "缁嗗垎甯傚満浼樺厛绾�" );
+ sheetProfitabilityColumn := Global_ShowColumn::CreateColumn( globalOTDTable, 19, "澶у紶鐩堝埄" );
+ orderTimeColumn := Global_ShowColumn::CreateColumn( globalOTDTable, 20, "璁㈠崟涓嬪崟鏃堕棿" );
+ i := 1;
+ traverse ( globalOTDTable, Global_MappingCustomOrder, gmco ) {
+ gloabal_ShowRow := globalOTDTable.Global_ShowRow( relnew, RowNr := i );
+ Global_ShowCell::SetColumnsAndRows( globalOTDTable, gmco.BusinessType(), businessTypeColumn, gloabal_ShowRow );
+ Global_ShowCell::SetColumnsAndRows( globalOTDTable, gmco.CurrencyID(), currencyIDColumn, gloabal_ShowRow );
+ Global_ShowCell::SetColumnsAndRows( globalOTDTable, gmco.Customer(), customerColumn, gloabal_ShowRow );
+ Global_ShowCell::SetColumnsAndRows( globalOTDTable, gmco.CustomerID(), customerIDColumn, gloabal_ShowRow );
+ Global_ShowCell::SetColumnsAndRows( globalOTDTable, gmco.ID(), idColumn, gloabal_ShowRow );
+ Global_ShowCell::SetColumnsAndRows( globalOTDTable, guard( gmco.OrderDate().Format( "Y-M2-D2" ), "鏃堕棿鏍煎紡閿欒" ), orderDateColumn, gloabal_ShowRow );
+ Global_ShowCell::SetColumnsAndRows( globalOTDTable, gmco.OrderID(), orderIDColumn, gloabal_ShowRow );
+ Global_ShowCell::SetColumnsAndRows( globalOTDTable, gmco.OrderLineID(), orderLineIDColumn, gloabal_ShowRow );
+ Global_ShowCell::SetColumnsAndRows( globalOTDTable, [String]gmco.Price(), priceColumn, gloabal_ShowRow );
+ Global_ShowCell::SetColumnsAndRows( globalOTDTable, gmco.PriorityName(), priorityNameColumn, gloabal_ShowRow );
+ Global_ShowCell::SetColumnsAndRows( globalOTDTable, gmco.ProductID(), productIDColumn, gloabal_ShowRow );
+ Global_ShowCell::SetColumnsAndRows( globalOTDTable, gmco.StockingPointID(), stockingPointIDColumn, gloabal_ShowRow );
+ Global_ShowCell::SetColumnsAndRows( globalOTDTable, gmco.SalesSegmentName(), salesegmentNameColumn, gloabal_ShowRow );
+ Global_ShowCell::SetColumnsAndRows( globalOTDTable, [String]gmco.Quantity(), quantityColumn, gloabal_ShowRow );
+ Global_ShowCell::SetColumnsAndRows( globalOTDTable, gmco.UnitOfMeasureName(), unitofmeasureNameColumn, gloabal_ShowRow );
+ Global_ShowCell::SetColumnsAndRows( globalOTDTable, gmco.OrderType(), orderTypeColumn, gloabal_ShowRow );
+ Global_ShowCell::SetColumnsAndRows( globalOTDTable, [String]gmco.IsAvailable(), isAvailableColumn, gloabal_ShowRow );
+ Global_ShowCell::SetColumnsAndRows( globalOTDTable, gmco.ProductGrade(), productGradeColumn, gloabal_ShowRow );
+ Global_ShowCell::SetColumnsAndRows( globalOTDTable, gmco.SegmentPriority(), segmentPriorityColumn, gloabal_ShowRow );
+ Global_ShowCell::SetColumnsAndRows( globalOTDTable, gmco.SheetProfitability(), sheetProfitabilityColumn, gloabal_ShowRow );
+ Global_ShowCell::SetColumnsAndRows( globalOTDTable, guard( gmco.OrderTime().Format( "Y-M2-D2" ), "鏃堕棿鏍煎紡閿欒" ), orderTimeColumn, gloabal_ShowRow );
+
+ i++;
+ }
+ *]
+}
diff --git a/_Main/BL/Type_Global_ShowCell/StaticMethod_SetColumnsAndRows.qbl b/_Main/BL/Type_Global_ShowCell/StaticMethod_SetColumnsAndRows.qbl
new file mode 100644
index 0000000..1e31a53
--- /dev/null
+++ b/_Main/BL/Type_Global_ShowCell/StaticMethod_SetColumnsAndRows.qbl
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SetColumnsAndRows (
+ GlobalOTDTable globalOTDTable,
+ String value,
+ Global_ShowColumn global_ShowColumn,
+ Global_ShowRow global_ShowRow
+)
+{
+ TextBody:
+ [*
+ global_ShowCell := globalOTDTable.Global_ShowCell( relnew, Value := value );
+ global_ShowCell.Global_ShowColumn( relset, global_ShowColumn );
+ global_ShowCell.Global_ShowRow( relset, global_ShowRow );
+ *]
+}
diff --git a/_Main/BL/Type_Global_ShowCell/StaticMethod_ShowData.qbl b/_Main/BL/Type_Global_ShowCell/StaticMethod_ShowData.qbl
new file mode 100644
index 0000000..7eebedc
--- /dev/null
+++ b/_Main/BL/Type_Global_ShowCell/StaticMethod_ShowData.qbl
@@ -0,0 +1,14 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod ShowData (
+ GlobalOTDTable globalOTDTable,
+ Global_BrokerExecuteLog global_BrokerExecuteLog
+)
+{
+ TextBody:
+ [*
+ if ( global_BrokerExecuteLog.BrokerName() = "GlobalOTDTable_CustomOrder" ) {
+ Global_ShowCell::CreateShowData_CustomOrder( globalOTDTable );
+ }
+ *]
+}
diff --git a/_Main/BL/Type_Global_ShowCell/_ROOT_Type_Global_ShowCell.qbl b/_Main/BL/Type_Global_ShowCell/_ROOT_Type_Global_ShowCell.qbl
new file mode 100644
index 0000000..51638e9
--- /dev/null
+++ b/_Main/BL/Type_Global_ShowCell/_ROOT_Type_Global_ShowCell.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type Global_ShowCell
+{
+ #keys: '5[414702.0.483720658][414702.0.483720656][0.0.0][414702.0.483720657][414702.0.483720659]'
+ BaseType: Object
+ StructuredName: 'Global_ShowCells'
+}
diff --git a/_Main/BL/Type_Global_ShowColumn/Attribute_ColumnIndex.qbl b/_Main/BL/Type_Global_ShowColumn/Attribute_ColumnIndex.qbl
new file mode 100644
index 0000000..cccd0ed
--- /dev/null
+++ b/_Main/BL/Type_Global_ShowColumn/Attribute_ColumnIndex.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ColumnIndex
+{
+ #keys: '3[414702.0.487974706][414702.0.487974705][414702.0.487974707]'
+ ValueType: Number
+}
diff --git a/_Main/BL/Type_Global_ShowColumn/Attribute_ColumnName.qbl b/_Main/BL/Type_Global_ShowColumn/Attribute_ColumnName.qbl
new file mode 100644
index 0000000..1b0b026
--- /dev/null
+++ b/_Main/BL/Type_Global_ShowColumn/Attribute_ColumnName.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ColumnName
+{
+ #keys: '3[414702.0.483720752][414702.0.483720751][414702.0.483720753]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_Global_ShowColumn/StaticMethod_CreateColumn.qbl b/_Main/BL/Type_Global_ShowColumn/StaticMethod_CreateColumn.qbl
new file mode 100644
index 0000000..2fac7cb
--- /dev/null
+++ b/_Main/BL/Type_Global_ShowColumn/StaticMethod_CreateColumn.qbl
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod CreateColumn (
+ GlobalOTDTable globalOTDTable,
+ Number columnIndex,
+ String columnName
+) as Global_ShowColumn
+{
+ TextBody:
+ [*
+ global_ShowColumn := globalOTDTable.Global_ShowColumn( relnew, ColumnIndex := columnIndex, ColumnName := columnName );
+
+ return global_ShowColumn;
+ *]
+}
diff --git a/_Main/BL/Type_Global_ShowColumn/_ROOT_Type_Global_ShowColumn.qbl b/_Main/BL/Type_Global_ShowColumn/_ROOT_Type_Global_ShowColumn.qbl
new file mode 100644
index 0000000..19f614d
--- /dev/null
+++ b/_Main/BL/Type_Global_ShowColumn/_ROOT_Type_Global_ShowColumn.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type Global_ShowColumn
+{
+ #keys: '5[414702.0.483720653][414702.0.483720651][0.0.0][414702.0.483720652][414702.0.483720654]'
+ BaseType: Object
+ StructuredName: 'Global_ShowColumns'
+}
diff --git a/_Main/BL/Type_Global_ShowRow/Attribute_RowNr.qbl b/_Main/BL/Type_Global_ShowRow/Attribute_RowNr.qbl
new file mode 100644
index 0000000..06bfcac
--- /dev/null
+++ b/_Main/BL/Type_Global_ShowRow/Attribute_RowNr.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute RowNr
+{
+ #keys: '3[414702.0.483720742][414702.0.483720741][414702.0.483720743]'
+ ValueType: Number
+}
diff --git a/_Main/BL/Type_Global_ShowRow/_ROOT_Type_Global_ShowRow.qbl b/_Main/BL/Type_Global_ShowRow/_ROOT_Type_Global_ShowRow.qbl
new file mode 100644
index 0000000..9c143f2
--- /dev/null
+++ b/_Main/BL/Type_Global_ShowRow/_ROOT_Type_Global_ShowRow.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type Global_ShowRow
+{
+ #keys: '5[414702.0.483720648][414702.0.483720646][0.0.0][414702.0.483720647][414702.0.483720649]'
+ BaseType: Object
+ StructuredName: 'Global_ShowRows'
+}
diff --git a/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetBOMBySKU.qbl b/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetBOMBySKU.qbl
index a10fbae..11d0768 100644
--- a/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetBOMBySKU.qbl
+++ b/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetBOMBySKU.qbl
@@ -1,17 +1,17 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SM_GetBOMBySKU (
- MacroPlan Owner,
+ GlobalOTDTable GlobData,
String SKU
-) as MappingBOM
+) as Global_MappingOperationBOM
{
Description: '鏍规嵁SKU鑾峰彇BOM'
TextBody:
[*
- Obj :=null( MappingBOM,constcontent );
- if( not isnull( Owner) and SKU.Length()>0)
+ Obj :=null( Global_MappingOperationBOM,constcontent );
+ if( not isnull( GlobData) and SKU.Length()>0)
{
- Obj := select( Owner,MappingBOM,ObjM,ObjM.ProductCode()=SKU);
+ Obj := select( GlobData,Global_MappingOperationBOM,ObjM,ObjM.ProductCode()=SKU);
}
return Obj;
*]
diff --git a/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetMaterialData.qbl b/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetMaterialData.qbl
index 2850793..850417c 100644
--- a/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetMaterialData.qbl
+++ b/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetMaterialData.qbl
@@ -6,7 +6,8 @@
Number ProductQty,
String ForecastId,
String VCode,
- Date NDate
+ Date NDate,
+ GlobalOTDTable GlobData
) as owning JSON
{
Description: '鑾峰彇鐗╂枡淇℃伅'
@@ -26,15 +27,15 @@
if( Owner.MappingBOM(relsize )>0)
{
// 寰楀埌涓嬩竴绾ф暟鎹�
- AllData:= selectset( Owner, MappingBOM,object,object.ComponentCode()=ParentSKU);
- ObjProduct := null( MappingProduct,constcontent );
+ AllData:= selectset( GlobData, Global_MappingOperationBOM,object,object.ComponentCode()=ParentSKU);
+ ObjProduct := null( Product_MP,constcontent );
ObjUnit := null( Unit,constcontent );
MaterialType:="";
MaterialName:="-";
StockPoint := "";
NRate:=1.0;
NComponentsUsed :=0.0;
- ObjBOM := H_FunctionClass::SM_GetBOMBySKU(Owner,ParentSKU);
+ ObjBOM := H_FunctionClass::SM_GetBOMBySKU(GlobData,ParentSKU);
if(not isnull( ObjBOM))
{
NRate := ObjBOM.ComponentOutputRate();
@@ -59,7 +60,7 @@
ObjProduct:= H_FunctionClass::SM_GetProductInfo(Owner,Obj.ProductCode());
if( not isnull( ObjProduct))
{
- MaterialType:= ObjProduct.ProductMajorType();
+ MaterialType:= ObjProduct.ParentID();
MaterialName:=ObjProduct.Name();
}
ObjUnit:= H_FunctionClass::SM_GetUnitBySKU( Owner,Obj.ProductCode());
diff --git "a/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetProductInfo\0431.qbl" "b/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetProductInfo\0431.qbl"
index 53f30eb..09e6868 100644
--- "a/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetProductInfo\0431.qbl"
+++ "b/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetProductInfo\0431.qbl"
@@ -3,17 +3,17 @@
StaticMethod SM_GetProductInfo (
MacroPlan Owner,
String SKU
-) as MappingProduct
+) as Product_MP
{
Description: '鏍规嵁SKU鑾峰彇鐗╂枡淇℃伅'
TextBody:
[*
// 鏍规嵁SKU鑾峰彇鐗╂枡淇℃伅
- // 娉ㄦ剰锛氱墿鏂欑被鍨嬪彇 ParentID锛�
- Obj := null( MappingProduct,constcontent );
+ // 娉ㄦ剰锛氱墿鏂欑被鍨嬪彇 ParentID
+ Obj := null( Product_MP,constcontent );
if( not isnull( Owner) and SKU.Length()>0)
{
- Obj:= select( Owner,MappingProduct,ObjMP,ObjMP.ID()=SKU);
+ Obj:= select( Owner,Product_MP,ObjMP,ObjMP.ID()=SKU);
}
return Obj;
*]
diff --git a/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_InitialForcastData.qbl b/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_InitialForcastData.qbl
deleted file mode 100644
index d69f3c1..0000000
--- a/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_InitialForcastData.qbl
+++ /dev/null
@@ -1,111 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-StaticMethod SM_InitialForcastData (
- MacroPlan Owner
-) as owning JSON
-{
- Description: '鍒濆鍖栬鍗曢娴嬩俊鎭�'
- TextBody:
- [*
- /**********************************鍒濆鍖栬鍗曢娴嬩俊鎭�***************************************
- *娉細鏈‘瀹氫笂娓搁娴嬭鍗曟洿鏂伴�昏緫鍜屾暟鎹湁鏁堟�э紝杩欓噷杩涜浜屾澶勭悊锛屾柊鐢熸垚涓�涓垪琛紝閬垮厤涓婃父淇℃伅鍙樺姩涓ラ噸
- * 褰卞搷鍔熻兘
- *---------------------璇ュ嚱鏁板凡浣滃簾----------------------
- *****************************************************************************************/
- // 鍒濆鍖栫粨鏋�
- bStatus := false;
- strMsg :="";
-
- try{
- // 娓呴櫎鏃ф暟鎹紝閲嶆柊鎷夊彇
- if(Owner.H_Forecast(relget ).Size()>0)
- {
- traverse( Owner,H_Forecast,Obj,not isnull( Obj))
- {
- Owner.H_Forecast(reldelete, Obj);
- }
- }
-
- // 鑾峰彇棰勬祴璁㈠崟锛氬綋鏈堝拰涔嬪悗鐨�3涓湀棰勬祴鏁版嵁 涓旈娴嬫暟閲�>0鐨�
- AllData:= selectset( Owner, Product_MP.SalesDemand.astype( Forecast ),object,object.EndDate().DateTime().Date() >= Date::ActualDate().StartOfMonth()
- and object.EndDate().DateTime().Date() <= Date::ActualDate().StartOfNextMonth().StartOfNextMonth().StartOfNextMonth().StartOfNextMonth()
- and object.Quantity()>0 );
-
- CustomName:="";
- DepartMent:="";
- idx:=0;
- strOrderCode:="";
- RQty:=0;
- ObjOrderRealQty:=null( H_OrderForecastRealQty,constcontent );
- // ObjPruduct :=null( MappingProduct,constcontent );
- traverse( AllData,Elements,Obj,not isnull(Obj))
- {
- // 杩欓噷鐢ㄦ煡鎵惧悗鎴彇锛屽洜涓轰笉纭畾鏈夊嚑涓í绾匡紝浠ョ涓�涓负鍑�
- idx:=Obj.SalesSegmentName().FindString( "-",0);
- if(idx>0)
- {
- DepartMent:=Obj.SalesSegmentName().SubString( 0,idx);
- CustomName := Obj.SalesSegmentName().SubString( idx+1, Obj.SalesSegmentName().Length() - (idx+1));
- }
- else
- {
- CustomName :=Obj.SalesSegmentName();
- DepartMent := "閮ㄩ棬鏁版嵁鑾峰彇澶辫触锛�"
- }
- // // 浠庣墿鏂欒〃鑾峰彇鐗╂枡淇℃伅
- // ObjPruduct := H_FunctionClass::SM_GetProductInfo( Owner,Obj.ProductID());
- // if( not isnull( ObjPruduct))
- // {
- //
- // }
- // 鍐欏叆棰勬祴璁㈠崟淇℃伅琛�
- strOrderCode:=H_FunctionClass::SM_GenerateID( "OF");
- Owner.H_Forecast(relnew,OrderCode := strOrderCode,
- SKU := Obj.ProductID(),
- CustomCode := CustomName,
- CustomName := CustomName,
- Util:=Obj.UnitOfMeasureName(),
- NeedTime:=Obj.EndDate(),
- ForecastQty:=[Number]Obj.Quantity().Round( 0),
- StockingPointID := Obj.StockingPointID(),
- Department:=DepartMent);
- // 鍐欏叆棰勬祴瀹炴椂淇℃伅
- ObjOrderRealQty := select( Owner,H_OrderForecastRealQty,ObjO,ObjO.CustomCode()=CustomName and ObjO.SKU()=Obj.ProductID()
- and ObjO.Month().StartOfMonth() = Obj.EndDate().StartOfMonth() )
- if( isnull( ObjOrderRealQty))
- {
- Owner.H_OrderForecastRealQty(relnew,CustomCode := CustomName,CustomName := CustomName,ForecastQty := [Number]Obj.Quantity().Round( 0)
- ,ForecatsRealQty := [Number]Obj.Quantity().Round( 0),ID := H_FunctionClass::SM_GenerateID( "OR")
- ,Month := Obj.EndDate(),SKU := Obj.ProductID(),Unit := Obj.UnitOfMeasureName());
- }
- else
- {
- if( [Number]Obj.Quantity().Round( 0)<> ObjOrderRealQty.ForecastQty())
- {
- RQty := [Number]Obj.Quantity().Round( 0) - ObjOrderRealQty.ForecastQty();
- RQty := ObjOrderRealQty.ForecatsRealQty() + RQty;
- if( RQty<0)
- {
- RQty :=0;
- }
- ObjOrderRealQty.ForecastQty([Number]Obj.Quantity().Round( 0));
- ObjOrderRealQty.ForecatsRealQty(RQty);
- }
- }
- }
-
-
- bStatus := true;
- strMsg :="璁㈠崟棰勬祴鍒濆鍖栨垚鍔�!";
- }
- onerror
- {
- strMsg :="璁㈠崟棰勬祴鍒濆鍖栧け璐ワ紝鍙兘褰卞搷鍐插噺璁$畻锛岃鑱旂郴绯荤粺绠$悊鍛橈紒";
- Owner.H_ErrorLogs(relnew,EClassName := "H_FunctionClass",EDateTime := DateTime::ActualGMTTime(),EFunctionName := "SM_InitialForcastData",
- DeveloperInformation := e.DeveloperInformation(),ErrorNr := e.ErrorNr(),DetailedInformation := e.DetailedInformation(),
- GeneralInformation := e.GeneralInformation());
- }
- return JSON::Object().Add( "Status",bStatus)
- .Add( "Msg",strMsg).Build();
- *]
-}
diff --git a/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_InitialForcastDataEx.qbl b/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_InitialForcastDataEx.qbl
index b1801df..d8870c8 100644
--- a/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_InitialForcastDataEx.qbl
+++ b/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_InitialForcastDataEx.qbl
@@ -43,12 +43,15 @@
idx:=0;
RQty:=0;
ObjOrderRealQty:=null( H_OrderForecastRealQty,constcontent );
+ SKU:="";
+ SKUName := "";
traverse( AllData,Elements,Obj,not isnull(Obj))
{
// 娌℃湁瀹㈡埛淇℃伅鍜岄儴闂ㄤ俊鎭紝SalesSegmentName=浜嬩笟閮�+鈥�-鈥�+瀹㈡埛鍚嶇О
CustomName := Obj.SalesSegmentName();
DepartMent := Obj.SalesSegmentName();
+ SKU :=Obj.ProductID();
// 杩欓噷鐢ㄦ煡鎵惧悗鎴彇锛屽洜涓轰笉纭畾鏈夊嚑涓í绾匡紝浠ョ涓�涓负鍑�
idx:=Obj.SalesSegmentName().FindString( "-",0);
if(idx>0)
@@ -56,6 +59,14 @@
DepartMent:=Obj.SalesSegmentName().SubString( 0,idx);
CustomName := Obj.SalesSegmentName().SubString( idx+1, Obj.SalesSegmentName().Length() - (idx+1));
}
+
+ // 鑾峰彇鐗╂枡淇℃伅
+ ObjMaterial := H_FunctionClass::SM_GetProductInfo( Owner,Obj.ProductID());
+ if(not isnull( ObjMaterial))
+ {
+ SKUName := ObjMaterial.Name();
+ }
+
// 鏇存柊棰勬祴淇℃伅锛岄潪鏂版暟鎹洿鏂颁俊鎭��
ObjOrderRealQty := select( Owner,H_OrderForecastRealQty,ObjO,ObjO.CustomCode()=CustomName and ObjO.SKU()=Obj.ProductID()
and ObjO.Month().StartOfMonth() = Obj.EndDate().StartOfMonth() )
@@ -64,7 +75,7 @@
Owner.H_OrderForecastRealQty(relnew,CustomCode := CustomName,CustomName := CustomName,ForecastQty := [Number]Obj.Quantity().Round( 0)
,ForecatsRealQty := [Number]Obj.Quantity().Round( 0),ID := H_FunctionClass::SM_GenerateID( "OR")
,Month := Obj.EndDate(),SKU := Obj.ProductID(),Unit := Obj.UnitOfMeasureName()
- ,Department := DepartMent,VCode := VersionCode);
+ ,Department := DepartMent,VCode := VersionCode,SKUName := SKUName);
}
else
{
diff --git a/_Main/BL/Type_ImportExcel/Method_Execute.qbl b/_Main/BL/Type_ImportExcel/Method_Execute.qbl
new file mode 100644
index 0000000..8bad7ba
--- /dev/null
+++ b/_Main/BL/Type_ImportExcel/Method_Execute.qbl
@@ -0,0 +1,43 @@
+Quintiq file version 2.0
+#parent: #root
+MethodOverride Execute #extension
+{
+ TextBody:
+ [*
+ opt := DatasetFindOptions::Construct( this.MacroPlanDatasetName() );
+ mp := MDSMacroPlan::Find( opt );
+
+ opt := DatasetFindOptions::Construct();
+ scenarioManager := MDSScenarioManager::Find( opt );
+
+ // Only get data source which has all required files uploaded
+ dummyMissingFiles := construct( Strings );
+ needUserUploadAllFiles := true;
+ validUploadedFiles := selectset( this, LibSOPImpExp_DataSourceChildren, ds,
+ ds.HasAllRequiredFilesForImport( dummyMissingFiles, needUserUploadAllFiles ) );
+
+ traverse( validUploadedFiles, Elements, file )
+ {
+ this.LibSOPImpExp_UserInput( relnew, Value := file.Name() );
+ }
+
+ binaryValues := selectvalues( validUploadedFiles, Elements.LibSOPImpExp_DataSourceFile.LibSOPImpExp_ImportUploadedFile, file, true, file.DataAsBinary() );
+ brokerNames := selectvalues( validUploadedFiles, Elements.LibSOPImpExp_DataSourceFile, file, true, file.BrokerName() );
+ userinputvalues := selectuniquevalues( this, LibSOPImpExp_UserInput, userinput,
+ true,
+ userinput.Value() );
+ mpsync := this.MPSync();
+
+ // Reactive way to import
+ o := this
+ ->SetStatusInProgress()
+ ->|mp->ImportExcels_Tianma( userinputvalues, binaryValues.Copy(), brokerNames )
+ ->|scenarioManager->ImportExcels_Tianma( userinputvalues, binaryValues.Copy(), brokerNames )
+ ->|mpsync->ImportExcels_Tianma( userinputvalues, binaryValues.Copy(), brokerNames )
+ ->|this->SetStatusDone()
+ ->|mp->SetLastImportTime()
+ ->Exception();
+
+ this->OnException(o);
+ *]
+}
diff --git a/_Main/BL/Type_ImportExcel/_ROOT_Type_ImportExcel.qbl b/_Main/BL/Type_ImportExcel/_ROOT_Type_ImportExcel.qbl
new file mode 100644
index 0000000..cd6e3ac
--- /dev/null
+++ b/_Main/BL/Type_ImportExcel/_ROOT_Type_ImportExcel.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+TypeSpecialization ImportExcel #extension
+{
+}
diff --git a/_Main/BL/Type_LibSOPImpExp_ExportExcel/StaticMethod_IsDataSourceIncluded_Tianma.qbl b/_Main/BL/Type_LibSOPImpExp_ExportExcel/StaticMethod_IsDataSourceIncluded_Tianma.qbl
new file mode 100644
index 0000000..710f4a0
--- /dev/null
+++ b/_Main/BL/Type_LibSOPImpExp_ExportExcel/StaticMethod_IsDataSourceIncluded_Tianma.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod IsDataSourceIncluded_Tianma (
+ Strings userinputvalues,
+ String datasource_i
+) remote as Boolean
+{
+ Description: 'If data source selected by user to export'
+ TextBody: 'return exists( userinputvalues, Elements, input, input = datasource_i );'
+}
diff --git a/_Main/BL/Type_LibSOPImpExp_ExportExcel/_ROOT_Type_LibSOPImpExp_ExportExcel.qbl b/_Main/BL/Type_LibSOPImpExp_ExportExcel/_ROOT_Type_LibSOPImpExp_ExportExcel.qbl
new file mode 100644
index 0000000..9510e76
--- /dev/null
+++ b/_Main/BL/Type_LibSOPImpExp_ExportExcel/_ROOT_Type_LibSOPImpExp_ExportExcel.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+TypeSpecialization LibSOPImpExp_ExportExcel #extension
+{
+}
diff --git a/_Main/BL/Type_MPSync/Method_ImportExcels_Tianma.qbl b/_Main/BL/Type_MPSync/Method_ImportExcels_Tianma.qbl
new file mode 100644
index 0000000..01d9ef9
--- /dev/null
+++ b/_Main/BL/Type_MPSync/Method_ImportExcels_Tianma.qbl
@@ -0,0 +1,22 @@
+Quintiq file version 2.0
+#parent: #root
+Method ImportExcels_Tianma (
+ Strings userinputvalues,
+ BinaryValues mpBinaryValues_i,
+ Strings mpBrokers_i
+)
+{
+ Description: 'Import from Excel, used by web app.'
+ TextBody:
+ [*
+ // @userInput_i - Array of data group that user imports
+ // @mpBinaryValues_i - Array of uploaded Excels in binary value. Binary at position x matches @mpBrokers_i at same position
+ // @mpBrokers_i - Array of uploaded Excels' broker name
+
+ is3DDrive := false;
+
+ // Check if each data group has files uploaded by user for import
+ this.Import( LibSOPImpExp_ExportExcel::IsDataSourceIncluded_Tianma( userinputvalues, Translations::MPSync_ObjectGroup_ImportProfiles() ),
+ mpBinaryValues_i, mpBrokers_i, is3DDrive, construct( FileItems), construct( Strings ) );
+ *]
+}
diff --git "a/_Main/BL/Type_MPSync/Method_RefreshCapacityAndSaleBudgeFilter\043323.qbl" "b/_Main/BL/Type_MPSync/Method_RefreshCapacityAndSaleBudgeFilter\043323.qbl"
deleted file mode 100644
index 5f2c716..0000000
--- "a/_Main/BL/Type_MPSync/Method_RefreshCapacityAndSaleBudgeFilter\043323.qbl"
+++ /dev/null
@@ -1,15 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Method RefreshCapacityAndSaleBudgeFilter (
- Boolean deleteBeforeCreate
-)
-{
- TextBody:
- [*
- if( deleteBeforeCreate ) {
- this.CapacityAndSaleBudgeFilterBusinessType( relflush );
- this.CapacityAndSaleBudgeFilterPlaceOfProductionOfArray( relflush );
- }
- this.RefreshCapacityAndSaleBudgeFilter();
- *]
-}
diff --git a/_Main/BL/Type_MPSync/Method_RefreshCapacityAndSaleBudgeFilter.qbl b/_Main/BL/Type_MPSync/Method_RefreshCapacityAndSaleBudgeFilter.qbl
index 6c1f176..496ec45 100644
--- a/_Main/BL/Type_MPSync/Method_RefreshCapacityAndSaleBudgeFilter.qbl
+++ b/_Main/BL/Type_MPSync/Method_RefreshCapacityAndSaleBudgeFilter.qbl
@@ -1,6 +1,8 @@
Quintiq file version 2.0
#parent: #root
-Method RefreshCapacityAndSaleBudgeFilter
+Method RefreshCapacityAndSaleBudgeFilter (
+ GlobalOTDTable globalOtdTable
+)
{
TextBody:
[*
@@ -9,12 +11,12 @@
businessTypes := selectuniquevalues( this, MappingCapacityAndSaleBudge, item, item.BusinessType() );
info( [String]businessTypes.Size() );
traverse( businessTypes, Elements, businessType ) {
- CapacityAndSaleBudgeFilterBusinessType::CreateIfNotExist( this, businessType );
+ CapacityAndSaleBudgeFilterBusinessType::CreateIfNotExist( globalOtdTable, businessType );
}
placeOfProductionOfArrays := selectuniquevalues( this, MappingCapacityAndSaleBudge, item, item.PlaceOfProductionOfArray() );
info( [String]placeOfProductionOfArrays.Size() );
traverse( placeOfProductionOfArrays, Elements, placeOfProductionOfArray ) {
- CapacityAndSaleBudgeFilterPlaceOfProductionOfArray::CreateIfNotExist( this, placeOfProductionOfArray );
+ CapacityAndSaleBudgeFilterPlaceOfProductionOfArray::CreateIfNotExist( globalOtdTable, placeOfProductionOfArray );
}
*]
}
diff --git a/_Main/BL/Type_MPSync/Method_RefreshCapacityAndSaleBudgeFilter0.qbl b/_Main/BL/Type_MPSync/Method_RefreshCapacityAndSaleBudgeFilter0.qbl
new file mode 100644
index 0000000..c8d1bbb
--- /dev/null
+++ b/_Main/BL/Type_MPSync/Method_RefreshCapacityAndSaleBudgeFilter0.qbl
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: #root
+Method RefreshCapacityAndSaleBudgeFilter (
+ Boolean deleteBeforeCreate,
+ GlobalOTDTable globalOtdTable
+)
+{
+ TextBody:
+ [*
+ if( deleteBeforeCreate ) {
+ globalOtdTable.CapacityAndSaleBudgeFilterBusinessType( relflush );
+ globalOtdTable.CapacityAndSaleBudgeFilterPlaceOfProductionOfArray( relflush );
+ }
+ this.RefreshCapacityAndSaleBudgeFilter( globalOtdTable );
+ *]
+}
diff --git a/_Main/BL/Type_MacroPlan/Method_ImportExcels_Tianma.qbl b/_Main/BL/Type_MacroPlan/Method_ImportExcels_Tianma.qbl
new file mode 100644
index 0000000..7d409ec
--- /dev/null
+++ b/_Main/BL/Type_MacroPlan/Method_ImportExcels_Tianma.qbl
@@ -0,0 +1,47 @@
+Quintiq file version 2.0
+#parent: #root
+Method ImportExcels_Tianma (
+ Strings userinputvalues,
+ BinaryValues mpBinaryValues_i,
+ Strings mpBrokers_i
+)
+{
+ Description: 'Import from Excel, used by web app.'
+ TextBody:
+ [*
+ // @userinputvalues - Array of data group that user imports
+ // @mpBinaryValues_i - Array of uploaded Excels in binary value. Binary at position x matches @mpBrokers_i at same position
+ // @mpBrokers_i - Array of uploaded Excels' broker name
+
+ is3DDrive := false;
+
+ // Check if each data group has files uploaded by user for import
+ this.Synchronize( LibSOPImpExp_ExportExcel::IsDataSourceIncluded_Tianma( userinputvalues, Translations::MPSync_ObjectGroup_SupplyChainParameters() ),
+ LibSOPImpExp_ExportExcel::IsDataSourceIncluded_Tianma( userinputvalues, Translations::MPSync_ObjectGroup_GlobalParameters() ),
+ LibSOPImpExp_ExportExcel::IsDataSourceIncluded_Tianma( userinputvalues, Translations::MPSync_ObjectGroup_Periods() ),
+ LibSOPImpExp_ExportExcel::IsDataSourceIncluded_Tianma( userinputvalues, Translations::MP_Functionality_InventorySpecifications() ),
+ LibSOPImpExp_ExportExcel::IsDataSourceIncluded_Tianma( userinputvalues, Translations::MP_Functionality_InventorySupplies() ),
+ LibSOPImpExp_ExportExcel::IsDataSourceIncluded_Tianma( userinputvalues, Translations::MPSync_ObjectGroup_Products() ),
+ LibSOPImpExp_ExportExcel::IsDataSourceIncluded_Tianma( userinputvalues, Translations::MPSync_ObjectGroup_Forecasts() ),
+ LibSOPImpExp_ExportExcel::IsDataSourceIncluded_Tianma( userinputvalues, Translations::MPSync_ObjectGroup_ServiceLevels() ),
+ LibSOPImpExp_ExportExcel::IsDataSourceIncluded_Tianma( userinputvalues, Translations::MPSync_ObjectGroup_Campaigns() ),
+ LibSOPImpExp_ExportExcel::IsDataSourceIncluded_Tianma( userinputvalues, Translations::MPSync_ObjectGroup_Entities() ),
+ LibSOPImpExp_ExportExcel::IsDataSourceIncluded_Tianma( userinputvalues, Translations::MPSync_ObjectGroup_Costs() ),
+ LibSOPImpExp_ExportExcel::IsDataSourceIncluded_Tianma( userinputvalues, Translations::MPSync_ObjectGroup_Lanes() ),
+ LibSOPImpExp_ExportExcel::IsDataSourceIncluded_Tianma( userinputvalues, Translations::MPSync_ObjectGroup_Routings() ),
+ LibSOPImpExp_ExportExcel::IsDataSourceIncluded_Tianma( userinputvalues, Translations::MPSync_ObjectGroup_Capacities() ),
+ LibSOPImpExp_ExportExcel::IsDataSourceIncluded_Tianma( userinputvalues, Translations::MP_Functionality_SupplySpecifications() ),
+ LibSOPImpExp_ExportExcel::IsDataSourceIncluded_Tianma( userinputvalues, Translations::MPSync_ObjectGroup_Recipes() ),
+ LibSOPImpExp_ExportExcel::IsDataSourceIncluded_Tianma( userinputvalues, Translations::MP_Designer_Actuals() ),
+ LibSOPImpExp_ExportExcel::IsDataSourceIncluded_Tianma( userinputvalues, Translations::MP_GlobalParameters_KPIFeedbackName() ),
+ LibSOPImpExp_ExportExcel::IsDataSourceIncluded_Tianma( userinputvalues, Translations::MPSync_ObjectGroup_OptimizerPuzzles() ),
+ LibSOPImpExp_ExportExcel::IsDataSourceIncluded_Tianma( userinputvalues, Translations::MPSync_ObjectGroup_PostponementSpecAndFulfillmentRestriction() ),
+ LibSOPImpExp_ExportExcel::IsDataSourceIncluded_Tianma( userinputvalues, Translations::MPSync_ObjectGroup_CustomerOrder() ),
+ false, /* isImportBinary */
+ mpBinaryValues_i,
+ mpBrokers_i,
+ is3DDrive,
+ construct( FileItems ), /* 3ddrive, ignore */
+ construct( Strings ) /* 3ddrive, ignore */ );
+ *]
+}
diff --git a/_Main/BL/Type_MacroPlan/Method_MappingActualPISPIPData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingActualPISPIPData.qbl
index c6520fb..a6f9a24 100644
--- a/_Main/BL/Type_MacroPlan/Method_MappingActualPISPIPData.qbl
+++ b/_Main/BL/Type_MacroPlan/Method_MappingActualPISPIPData.qbl
@@ -9,7 +9,12 @@
TextBody:
[*
// renhao Aug-14-2023 (created)
- listtodeal := selectset( globalOTDTable,Global_MappingActualProductInStockingPointInPeriod,actual,actual.ActualInventoryLevelEnd() > 0 );
+ organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businessTypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() );
+ listtodeal := selectset( globalOTDTable,
+ Global_MappingActualProductInStockingPointInPeriod,
+ actual,
+ ( actual.ActualInventoryLevelEnd() > 0 ) and
+ ( organcodelist.Find( actual.StockingPointID().SubString( 0, 3 ) ) >= 0 ) );
totalcount := listtodeal.Size();
info( "ActualPISPIP has " + totalcount.AsQUILL() + " rows in total" );
@@ -24,7 +29,7 @@
if( not isnull(businessTypes)){
for( i :=0 ;i < businessTypes.Size();i++ ){
- businessType := businessTypes.Element( i);
+ businessType := businessTypes.Element( i );
if( product.BusinessType() = businessType and not product.IsCommon()){
ActualProductInStockingPointInPeriod::CreateOrUpdate( this,
actual.ProductID(),
diff --git a/_Main/BL/Type_MacroPlan/Method_MappingCustomerOrderData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingCustomerOrderData.qbl
index bee6304..9d01ece 100644
--- a/_Main/BL/Type_MacroPlan/Method_MappingCustomerOrderData.qbl
+++ b/_Main/BL/Type_MacroPlan/Method_MappingCustomerOrderData.qbl
@@ -14,7 +14,12 @@
if( isnull( businessTypes ) or businessTypes.Size() = 0 ) {
listToDeal := selectset( globalOTDTable, Global_MappingCustomOrder, item, true );
} else {
- listToDeal := selectset( globalOTDTable, Global_MappingCustomOrder, item, businessTypes.Find( item.BusinessType() ) <> -1 );
+ organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businessTypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() );
+ listToDeal := selectset( globalOTDTable,
+ Global_MappingCustomOrder,
+ item,
+ ( businessTypes.Find( item.BusinessType() ) <> -1 ) and
+ ( organcodelist.Find( item.StockingPointID().SubString( 0, 3 ) ) >= 0 ) );
}
queryStartDate := guard( min( this, Period_MP, item, true, item.StartDate() ) - Duration::Days( 30 ), DateTime::MinDateTime() ).Date();
queryEndDate := guard( max( this, Period_MP, item, true, item.EndDate() ), Date::MaxDate() );
@@ -33,12 +38,18 @@
}
// if( not isnull( Product_MP::FindById( this, item.ProductID() ) ) ){
// info( item.ProductID().AsQUILL() );
- CustomerOrder::CreateOrUpdate( this, item.CurrencyID(), item.Customer(), item.CustomerID(), item.ID(),
- item.OrderDate(), item.OrderID(), item.OrderLineID(), item.Price(),
- priorityName, item.ProductID(),
- item.StockingPointID(),
- item.SalesSegmentName(),
- item.Quantity(), item.UnitOfMeasureName(), item.OrderType(), item.IsAvailable());
+ customOrder := CustomerOrder::CreateOrUpdate( this, item.CurrencyID(), item.Customer(), item.CustomerID(), item.ID(),
+ item.OrderDate(), item.OrderID(), item.OrderLineID(), item.Price(),
+ priorityName, item.ProductID(),
+ item.StockingPointID(),
+ item.SalesSegmentName(),
+ item.Quantity(), item.UnitOfMeasureName(), item.OrderType(), item.IsAvailable());
+ customOrder.BusinessType( item.BusinessType() );
+ customOrder.OrderType( item.OrderType() );
+ customOrder.OrderTime( item.OrderTime() );
+ customOrder.ProductGrade( item.ProductGrade() );
+ customOrder.SegmentPriority( item.SegmentPriority() );
+ customOrder.SheetProfitability( item.SheetProfitability() );
// }else{
// info( "invaild product: " + item.ProductID().AsQUILL() );
// }
diff --git a/_Main/BL/Type_MacroPlan/Method_MappingExternalSupplyData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingExternalSupplyData.qbl
index c6a2bcf..39675d3 100644
--- a/_Main/BL/Type_MacroPlan/Method_MappingExternalSupplyData.qbl
+++ b/_Main/BL/Type_MacroPlan/Method_MappingExternalSupplyData.qbl
@@ -11,7 +11,13 @@
// renhao Aug-14-2023 (created)
queryStartDate := guard( min( this, Period_MP, item, true, item.StartDate() ) - Duration::Days( 30 ), DateTime::MinDateTime() ).Date();
queryEndDate := guard( max( this, Period_MP, item, true, item.EndDate() ), Date::MaxDate() );
- listtodeal := selectset( globalOTDTable,Global_MappingInventorySupply,externalSupply, externalSupply.UserQuantity()>0 and externalSupply.Date() >= queryStartDate /*and externalSupply.Date() <= queryEndDate*/);
+ organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businessTypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() );
+ listtodeal := selectset( globalOTDTable,
+ Global_MappingInventorySupply,
+ externalSupply,
+ ( externalSupply.UserQuantity()>0 ) and
+ ( externalSupply.Date() >= queryStartDate ) and
+ ( organcodelist.Find( externalSupply.StockingPointID().SubString( 0, 3 ) ) >= 0 )/*and externalSupply.Date() <= queryEndDate*/);
totalcount := listtodeal.Size();
description := "鍦ㄩ�斿湪鍒�";
info( "ExternalSupply has " + totalcount.AsQUILL() + " rows in total" );
@@ -32,7 +38,7 @@
if( not isnull(businessTypes)){
for( i :=0 ;i < businessTypes.Size();i++ ){
- businessType := businessTypes.Element( i);
+ businessType := businessTypes.Element( i );
if( product.BusinessType() = businessType and not product.IsCommon()){
InventorySupply::CreateOrUpdate( externalSupply.ID(),
productMP,
diff --git a/_Main/BL/Type_MacroPlan/Method_MappingForecastData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingForecastData.qbl
index 21b752b..5fbb66c 100644
--- a/_Main/BL/Type_MacroPlan/Method_MappingForecastData.qbl
+++ b/_Main/BL/Type_MacroPlan/Method_MappingForecastData.qbl
@@ -14,7 +14,13 @@
if( isnull( businessTypes ) or businessTypes.Size() = 0 ) {
listToDeal := selectset( globalOTDTable, Global_MappingForecast, item, item.Quantity() > 0 );
} else {
- listToDeal := selectset( globalOTDTable, Global_MappingForecast, item, businessTypes.Find( item.BusinessType() ) <> -1 and item.Quantity()>0 );
+ organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businessTypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() );
+ listToDeal := selectset( globalOTDTable,
+ Global_MappingForecast,
+ item,
+ ( businessTypes.Find( item.BusinessType() ) <> -1 ) and
+ ( item.Quantity()>0 ) and
+ ( organcodelist.Find( item.StockingPointID().SubString( 0, 3 ) ) >= 0 ) );
}
queryStartDate := guard( min( this, Period_MP, item, true, item.StartDate() ) - Duration::Days( 30 ), DateTime::MinDateTime() ).Date();
queryEndDate := guard( max( this, Period_MP, item, true, item.EndDate() ), Date::MaxDate() );
diff --git a/_Main/BL/Type_MacroPlan/Method_MappingOperationBOMData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingOperationBOMData.qbl
index ca35281..663464c 100644
--- a/_Main/BL/Type_MacroPlan/Method_MappingOperationBOMData.qbl
+++ b/_Main/BL/Type_MacroPlan/Method_MappingOperationBOMData.qbl
@@ -10,16 +10,17 @@
TextBody:
[*
// yypsybs Aug-21-2023 (created)
-
keyProductList := construct( Strings );
if( isKeyProduct ) {
keyProductList := selectuniquevalues( globalOTDTable, Global_MappingProduct_MP, item, item.ProductMajorType()="鎴愬搧" or item.ProductMajorType()="鍗婃垚鍝�", item.ID() );
}
+ organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businessTypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() );
bomList := selectsortedset( globalOTDTable, Global_MappingOperationBOM, item,
ifexpr( isnull( businessTypes ) or businessTypes.Size() = 0,
true,
// businessTypes.Difference( businessTypes.Difference( item.BusinessType().Tokenize( ", " ) ) ).Size() > 0 )
- businessTypes.Find( item.BusinessType() ) >= 0 )
+ ( businessTypes.Find( item.BusinessType() ) >= 0 ) and
+ ( organcodelist.Find( item.OrganCode() ) >= 0 ) )
// and ifexpr( isKeyProduct,
// keyProductList.Size() > 0 and keyProductList.Find( item.ComponentCode() ) >= 0,
// true )
@@ -59,6 +60,7 @@
// ========鍒嗙粍澶勭悊杈撳叆========
}
+
if( not isnull( stockingPoint)){
if( isKeyProduct){
keyRows := selectset( routingRows,Elements,routingrow,keyProductList.Find( routingrow.ComponentCode())>=0);
@@ -81,5 +83,78 @@
this.MappingOperationBOMDataSupplyPurchase( bom.OrganCode(), bom.ComponentCode(), bom.ComponentType());
}
}
+
+
+ //
+ //keyProductList := construct( Strings );
+ //if( isKeyProduct ) {
+ // keyProductList := selectuniquevalues( globalOTDTable, Global_MappingProduct_MP, item, item.ProductMajorType()="鎴愬搧" or item.ProductMajorType()="鍗婃垚鍝�", item.ID() );
+ //}
+ //bomList := selectsortedset( globalOTDTable, Global_MappingOperationBOM, item,
+ // ifexpr( isnull( businessTypes ) or businessTypes.Size() = 0,
+ // true,
+ //// businessTypes.Difference( businessTypes.Difference( item.BusinessType().Tokenize( ", " ) ) ).Size() > 0 )
+ // businessTypes.Find( item.BusinessType() ) >= 0 )
+ //// and ifexpr( isKeyProduct,
+ //// keyProductList.Size() > 0 and keyProductList.Find( item.ComponentCode() ) >= 0,
+ //// true )
+ // ,
+ // item.OrganCode() + "_" + item.ProductCode() + "_" + item.ProcessSection() );
+ //// 鎸塺outing鍙妑outingStep鍒嗙粍
+ //routingIds := selectuniquevalues( bomList, Elements, item, true, item.OrganCode() + "_" + item.ProductCode() );
+ //traverse( routingIds, Elements, routingId ) {
+ // routingRows := selectset( bomList, Elements, item, true, routingId = item.OrganCode() + "_" + item.ProductCode() );
+ // if( routingRows.Size() > 0 ) {
+ // firstRow := routingRows.Element( 0 );
+ //// stockingPointId := firstRow.OrganCode() + "_" + firstRow.ProductType() + "_Stock";
+ //// inputStockingPointId := firstRow.OrganCode() + "_" + firstRow.ComponentType() + "_Stock";
+ // stockingPointId := firstRow.OrganCode() + "_Stock";
+ //
+ // // ========妫�鏌�========
+ // product := Product_MP::FindProductTypeIndex( firstRow.ProductCode() );
+ // if( not isnull( product ) ) {
+ //// error( "product : " + firstRow.ProductCode() + " not found" );
+ // stockingPoint := StockingPoint_MP::FindStockingPointTypeIndex( stockingPointId );
+ //
+ //// info( stockingPointId.AsQUILL() );
+ // // if( isnull( stockingPoint ) ) {
+ // // error( "stockingPoint : " + stockingPointId + " not found" );
+ // // }
+ // routing := Routing::FindRoutingTypeIndex( routingId );
+ // if( not isnull( routing ) ) {
+ //// error( "routing : " + routingId + " not found" );
+ // // ========澶勭悊杈撳嚭========
+ // if( not isnull( stockingPoint ) ) {
+ //// info( 1 );
+ // operationsInLastSteps := Operation::FindFinalOperationsByRoutingId( this, routingId );
+ // traverse( operationsInLastSteps, Elements, operationsInLastStep ) {
+ // operationsInLastStep.CreateOperationBOM( product, stockingPoint, false, true );
+ // operationsInLastStep.GetOperationBOM( product.ID(), stockingPoint.ID(), false ).Quantity( 1 );
+ // }
+ // // ========鍒嗙粍澶勭悊杈撳叆========
+ //
+ // }
+ // if( not isnull( stockingPoint)){
+ // if( isKeyProduct){
+ // keyRows := selectset( routingRows,Elements,routingrow,keyProductList.Find( routingrow.ComponentCode())>=0);
+ // this.MappingOperationBOMDataRouting( routing,globalOTDTable,keyRows);
+ // }else{
+ // this.MappingOperationBOMDataRouting( routing,globalOTDTable,routingRows);
+ // }
+ //
+ // }
+ // }
+ // }
+ // }
+ //}
+ //if( createPurchaseSupplyMaterial ) {
+ // toCreateBomList := selectuniquevalues( bomList, Elements, item,
+ // item.ComponentType() = "P", item.OrganCode() + item.ComponentCode());
+ // traverse( toCreateBomList, Elements, key ) {
+ // boms := selectset( bomList, Elements, item, item.ComponentType() = "P" and item.OrganCode() + item.ComponentCode() = key );
+ // bom := boms.First();
+ // this.MappingOperationBOMDataSupplyPurchase( bom.OrganCode(), bom.ComponentCode(), bom.ComponentType());
+ // }
+ //}
*]
}
diff --git a/_Main/BL/Type_MacroPlan/Method_MappingOperationCostData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingOperationCostData.qbl
index 1e71d79..9a458dd 100644
--- a/_Main/BL/Type_MacroPlan/Method_MappingOperationCostData.qbl
+++ b/_Main/BL/Type_MacroPlan/Method_MappingOperationCostData.qbl
@@ -1,6 +1,7 @@
Quintiq file version 2.0
#parent: #root
Method MappingOperationCostData (
+ GlobalOTDTable globalOTDTable,
Strings businesstypes
)
{
@@ -14,7 +15,12 @@
if( isnull( businesstypes ) or businesstypes.Size() = 0 ) {
listtodeal := selectset( this, MappingOperation, item, true );
} else {
- listtodeal := selectset( this, MappingOperation, item, businesstypes.Find( item.BusinessType() ) <> -1 );
+ organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businesstypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() );
+ listtodeal := selectset( this,
+ MappingOperation,
+ item,
+ ( businesstypes.Find( item.BusinessType() ) <> -1 ) and
+ ( organcodelist.Find( item.OrganCode() ) >= 0 ) );
}
// Get the list to deal with max sequence number
diff --git a/_Main/BL/Type_MacroPlan/Method_MappingOperationData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingOperationData.qbl
index 29e7e21..b09ed68 100644
--- a/_Main/BL/Type_MacroPlan/Method_MappingOperationData.qbl
+++ b/_Main/BL/Type_MacroPlan/Method_MappingOperationData.qbl
@@ -11,8 +11,10 @@
// 鑾峰彇鏈夊簭鐨勫緟澶勭悊璁板綍
toDealList := construct( Global_MappingOperations ) ;
if( not isnull( businessTypes ) and businessTypes.Size() > 0 ) {
+ organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businessTypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() );
toDealList := selectsortedset( globalOTDTable, Global_MappingOperation, item,
- businessTypes.Find( item.BusinessType() ) >= 0,
+ ( businessTypes.Find( item.BusinessType() ) >= 0 ) and
+ ( organcodelist.Find( item.OrganCode() ) >= 0 ),
// businessTypes.Difference( businessTypes.Difference( item.BusinessType().Tokenize( ", " ) ) ).Size() > 0,
item.SequenceNumber() );
} else {
diff --git a/_Main/BL/Type_MacroPlan/Method_MappingProductData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingProductData.qbl
index ab7398e..1e0929e 100644
--- a/_Main/BL/Type_MacroPlan/Method_MappingProductData.qbl
+++ b/_Main/BL/Type_MacroPlan/Method_MappingProductData.qbl
@@ -23,10 +23,10 @@
}
} else {
if( iskeyproduct = true ){
- listToDeal := selectset( globalOTDTable, Global_MappingProduct_MP, item, item.KeyProduct() = true and businesstypes.Find( item.BusinessType()) >= 0 );
+ listToDeal := selectset( globalOTDTable, Global_MappingProduct_MP, item, item.KeyProduct() = true and businesstypes.Find( item.BusinessType() ) >= 0 );
}
else{
- listToDeal := selectset( globalOTDTable, Global_MappingProduct_MP, item, businesstypes.Find( item.BusinessType()) >= 0 );
+ listToDeal := selectset( globalOTDTable, Global_MappingProduct_MP, item, businesstypes.Find( item.BusinessType() ) >= 0 );
}
}
totalcount := listToDeal.Size();
diff --git a/_Main/BL/Type_MacroPlan/Method_MappingSalesSegmentData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingSalesSegmentData.qbl
index cf459b5..d7f21c2 100644
--- a/_Main/BL/Type_MacroPlan/Method_MappingSalesSegmentData.qbl
+++ b/_Main/BL/Type_MacroPlan/Method_MappingSalesSegmentData.qbl
@@ -14,7 +14,10 @@
if( isnull( businessTypes ) or businessTypes.Size() = 0 ) {
listToDeal := selectset( globalOTDTable, Global_MappingSalesSegment_MP, item, true );
} else {
- listToDeal := selectset( globalOTDTable, Global_MappingSalesSegment_MP, item, businessTypes.Find( item.BusinessType() ) <> -1 );
+ listToDeal := selectset( globalOTDTable,
+ Global_MappingSalesSegment_MP,
+ item,
+ businessTypes.Find( item.BusinessType() ) <> -1 );
}
//nameList := construct( structured[String] );
//nameList := selectvalues( listToDeal, Elements, item, true, item.Name() );
diff --git a/_Main/BL/Type_MacroPlan/Method_MappingUnitData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingUnitData.qbl
index e826ddb..671fe30 100644
--- a/_Main/BL/Type_MacroPlan/Method_MappingUnitData.qbl
+++ b/_Main/BL/Type_MacroPlan/Method_MappingUnitData.qbl
@@ -15,9 +15,11 @@
if( isnull( businesstypes ) or businesstypes.Size() = 0 ) {
listtodeal := selectset( globalOTDTable, Global_MappingOperation, item, true );
} else {
+ organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businesstypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() );
listtodeal := selectset( globalOTDTable, Global_MappingOperation, item,
// businesstypes.Difference( businesstypes.Difference( item.BusinessType().Tokenize( ", " ) ) ).Size() > 0
- businesstypes.Find( item.BusinessType() ) >= 0
+ ( businesstypes.Find( item.BusinessType() ) >= 0 ) and
+ ( organcodelist.Find( item.OrganCode() ) >= 0 )
);
}
diff --git a/_Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl b/_Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl
index b4361d5..875645b 100644
--- a/_Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl
+++ b/_Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl
@@ -131,7 +131,7 @@
// todo 鍒堕�犳垚鏈�-16
info( "InventoryCost Finished, Start OperationCost Mapping" );
- macroPlan.MappingOperationCostData( businessTypes );
+ macroPlan.MappingOperationCostData( globalOTDTable, businessTypes );
// 璁㈠崟棰勬祴-17
Forecast::DoSync( macroPlan, businessTypes ,globalOTDTable);
diff --git a/_Main/BL/Type_MappingSaleBudge/DefaultValue_PlaceOfProductionOfEvaporation.qbl b/_Main/BL/Type_MappingSaleBudge/DefaultValue_PlaceOfProductionOfEvaporation.qbl
deleted file mode 100644
index 0c8ee87..0000000
--- a/_Main/BL/Type_MappingSaleBudge/DefaultValue_PlaceOfProductionOfEvaporation.qbl
+++ /dev/null
@@ -1,6 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-DefaultValue
-{
- TargetAttribute: PlaceOfProductionOfEvaporation
-}
diff --git a/_Main/BL/Type_MappingSaleBudge/StaticMethod_Export.qbl b/_Main/BL/Type_MappingSaleBudge/StaticMethod_Export.qbl
index c469165..c75f124 100644
--- a/_Main/BL/Type_MappingSaleBudge/StaticMethod_Export.qbl
+++ b/_Main/BL/Type_MappingSaleBudge/StaticMethod_Export.qbl
@@ -61,7 +61,7 @@
}
//---------------------------------------------------------------------------------------------
xmlTemplate := xmlTemplate + "</table>";
- info( xmlTemplate );
+ //info( xmlTemplate );
tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlTemplate ) );
XLS::SaveTable( tableHandle, OS::TempPath() + "MappingCapacityAndSaleBudge.xlsx" );
file := OSFile::Construct();
diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_ExportTheFileStream.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_ExportTheFileStream.qbl
index 4b41017..6e0539c 100644
--- a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_ExportTheFileStream.qbl
+++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_ExportTheFileStream.qbl
@@ -31,7 +31,7 @@
xmlDOMSerializer := xmlDOMImplementation.CreateSerializer();
xmlTableString := xmlDOMSerializer.WriteToString( xmlDOMDocument );
-
+ info( xmlTableString );
tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlTableString ) );
tableGroupHandle := TableGroupHandle::Create( "鐗╂枡鏍囩" );
tableGroupHandle.Add( tableHandle );
diff --git a/_Main/BL/Type_Operation/Method_GetHasValidOperationInputOutput.qbl b/_Main/BL/Type_Operation/Method_GetHasValidOperationInputOutput.qbl
deleted file mode 100644
index 09ae8ea..0000000
--- a/_Main/BL/Type_Operation/Method_GetHasValidOperationInputOutput.qbl
+++ /dev/null
@@ -1,38 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Method GetHasValidOperationInputOutput (
- output Strings feedback_o,
- output Strings sanitycheckfeedback_o
-) declarative remote #extension
-{
- TextBody:
- [*
- // desmondt Oct-3-2014 (created)
- feedback := '';
- sanitycheckfeedback := ''
-
- if( ( this.Unit().QuantityToProcess() = GlobalParameters_MP::GetQTProcessIn()
- or not this.Unit().IsSupplier() ) // Tianma change 20230925: If the unit is not a supplier, raise a data issue if there's no input
- and this.OperationInput( relsize ) = 0 )
- {
- feedback := Translations::MP_Operation_ViolateHasValidOperationInputOutput_NoOperationInput();
- sanitycheckfeedback_o.Add( SanityCheckCategoryLevel::GetSanityCheckCategoryDataIssue() );
- }
- else if( this.Unit().QuantityToProcess() = GlobalParameters_MP::GetQTProcessOut()
- and this.OperationOutput( relsize ) = 0 )
- {
- feedback := Translations::MP_Operation_ViolateHasValidOperationInputOutput_NoOperationOutput();
- sanitycheckfeedback := SanityCheckCategoryLevel::GetSanityCheckCategoryDataIssue();
- }
-
- if( not isnull( feedback_o ) and feedback <> '' )
- {
- name := MacroPlan::GetSubstituteName( this.Name() ); // To avoid empty name/name too long
- feedback_o.Add( SanityCheckMessage::GetFormattedMessage( Translations::MP_Process_Instance( this.DefinitionName(), name ),
- feedback ) );
- sanitycheckfeedback_o.Add( sanitycheckfeedback );
- }
-
- return feedback = '';
- *]
-}
diff --git a/_Main/BL/Type_OrganCode/Attribute_OrganCodeName.qbl b/_Main/BL/Type_OrganCode/Attribute_OrganCodeName.qbl
new file mode 100644
index 0000000..bdf1f0e
--- /dev/null
+++ b/_Main/BL/Type_OrganCode/Attribute_OrganCodeName.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute OrganCodeName
+{
+ #keys: '3[412960.0.276650052][412960.0.276650051][412960.0.276650053]'
+ Description: '缁勭粐缂栫爜鍚嶇О'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_OrganCode/_ROOT_Type_OrganCode.qbl b/_Main/BL/Type_OrganCode/_ROOT_Type_OrganCode.qbl
new file mode 100644
index 0000000..3a16e43
--- /dev/null
+++ b/_Main/BL/Type_OrganCode/_ROOT_Type_OrganCode.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type OrganCode
+{
+ #keys: '5[412960.0.276650035][412960.0.276650033][0.0.0][412960.0.276650034][412960.0.276650036]'
+ BaseType: Object
+ Description: '浜嬩笟閮ㄥ搴旂殑缁勭粐缂栫爜闆嗗悎'
+ StructuredName: 'OrganCodes'
+}
diff --git a/_Main/BL/Type_PriorityFactor/Attribute_ReflectionAttribute.qbl b/_Main/BL/Type_PriorityFactor/Attribute_ReflectionAttribute.qbl
new file mode 100644
index 0000000..3f5a69d
--- /dev/null
+++ b/_Main/BL/Type_PriorityFactor/Attribute_ReflectionAttribute.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ReflectionAttribute
+{
+ #keys: '3[414382.0.554303396][414382.0.554303395][414382.0.554303397]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_PriorityFactor/Attribute_ReflectionType.qbl b/_Main/BL/Type_PriorityFactor/Attribute_ReflectionType.qbl
new file mode 100644
index 0000000..49b163b
--- /dev/null
+++ b/_Main/BL/Type_PriorityFactor/Attribute_ReflectionType.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ReflectionType
+{
+ #keys: '3[414382.0.554014806][414382.0.554014805][414382.0.554014807]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_PriorityFactor/StaticMethod_CheckNameValid.qbl b/_Main/BL/Type_PriorityFactor/StaticMethod_CheckNameValid.qbl
new file mode 100644
index 0000000..4fa81fb
--- /dev/null
+++ b/_Main/BL/Type_PriorityFactor/StaticMethod_CheckNameValid.qbl
@@ -0,0 +1,29 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod CheckNameValid (
+ MacroPlan owner,
+ String businessType,
+ Real coefficient,
+ String desc,
+ String name
+) as Boolean
+{
+ TextBody:
+ [*
+ // NBoTk Sep-22-2023 (created)
+
+ value := true;
+
+ // 鍚嶇О鐩稿悓璺宠繃
+ obj := selectobject( owner,PriorityFactor,p,
+ p.BusinessType() = businessType and p.Coefficient() = coefficient and p.Name() = name and p.Desc() = desc
+ );
+
+ if(not isnull( obj) )
+ {
+ value := false;
+ }
+
+ return value;
+ *]
+}
diff --git a/_Main/BL/Type_PriorityFactor/StaticMethod_GetCoeffcientByName.qbl b/_Main/BL/Type_PriorityFactor/StaticMethod_GetCoeffcientByName.qbl
index 9434404..d935ad9 100644
--- a/_Main/BL/Type_PriorityFactor/StaticMethod_GetCoeffcientByName.qbl
+++ b/_Main/BL/Type_PriorityFactor/StaticMethod_GetCoeffcientByName.qbl
@@ -11,7 +11,7 @@
// NBoTk Sep-21-2023 (created)
data := selectobject( owner,PriorityFactor,p,
- p.BusinessType() = businessType and p.Name() = name
+ p.Name() = name
)
return data.Coefficient();
diff --git a/_Main/BL/Type_PriorityFactor/StaticMethod_GetNameList.qbl b/_Main/BL/Type_PriorityFactor/StaticMethod_GetNameList.qbl
index 98115c4..05489f2 100644
--- a/_Main/BL/Type_PriorityFactor/StaticMethod_GetNameList.qbl
+++ b/_Main/BL/Type_PriorityFactor/StaticMethod_GetNameList.qbl
@@ -11,7 +11,6 @@
value := "";
strList := selectuniquevalues( owner,PriorityFactor,p,
- p.BusinessType() = businessType,
p.Name()
);
diff --git a/_Main/BL/Type_PriorityFactor/StaticMethod_InitData.qbl b/_Main/BL/Type_PriorityFactor/StaticMethod_InitData.qbl
index 1d5ff08..956d704 100644
--- a/_Main/BL/Type_PriorityFactor/StaticMethod_InitData.qbl
+++ b/_Main/BL/Type_PriorityFactor/StaticMethod_InitData.qbl
@@ -7,35 +7,37 @@
TextBody:
[*
// NBoTk Sep-15-2023 (created)
-
- info(" init PriorutyFactor");
-
// businessType
// result := "闆嗗洟闈㈡澘;涓撲笟鏄剧ず浜嬩笟閮�;澶栧崠CELL;闈炴樉;杩愬姩鍋ュ悍;杩愬姩鍋ュ悍浜嬩笟閮�;鎵嬫満浜嬩笟閮�;鐗圭鏄剧ず;姹借溅鐢靛瓙浜嬩笟閮�;杞﹁浇鏄剧ず浜嬩笟閮�;IT浜嬩笟閮�";
- businessTypeList := construct( structured[String]);
- businessTypeList.Add( "闆嗗洟闈㈡澘");
- businessTypeList.Add( "涓撲笟鏄剧ず浜嬩笟閮�");
- businessTypeList.Add( "澶栧崠CELL");
- businessTypeList.Add( "闈炴樉");
- businessTypeList.Add( "杩愬姩鍋ュ悍");
- businessTypeList.Add( "杩愬姩鍋ュ悍浜嬩笟閮�");
- businessTypeList.Add( "鎵嬫満浜嬩笟閮ㄩ潰鏉�");
- businessTypeList.Add( "鐗圭鏄剧ず");
- businessTypeList.Add( "姹借溅鐢靛瓙浜嬩笟閮ㄩ潰鏉�");
- businessTypeList.Add( "杞﹁浇鏄剧ず浜嬩笟閮�");
- businessTypeList.Add( "IT浜嬩笟閮�");
- traverse( businessTypeList,Elements,b)
+ businessType := "";
+
+ // 濡傛灉宸茬粡瀛樺湪浼樺厛绾ф暟鎹� 鍒欎笉鍋氬鐞�
+ list := selectset( owner,PriorityFactor,p,true);
+ if( list.Size() = 0 )
{
- owner.PriorityFactor(relnew,Name := "瀹㈡埛绛栫暐" ,Desc := "灏嗕簨涓氶儴璁$畻鐨勪紭鍏堢骇锛屾寜璇ョ粏鍒嗛」姣斾緥闃舵纭畾璇ラ」寰楀垎銆傚锛�81%鈮鈮�100% 5鍒嗭紝61%鈮鈮�80% 4鍒�", BusinessType := b );
- owner.PriorityFactor(relnew,Name := "瀹㈡埛绛夌骇" ,Desc := "鏍规嵁闇�姹傛暟鎹腑瀹㈡埛锛屽尮閰嶅鎴风瓑绾�",BusinessType := b);
- owner.PriorityFactor(relnew,Name := "澶у紶鐩堝埄姘村钩" ,Desc := "1銆佽幏鍙栧鎴�*SKU澶у紶鐩堝埄鏁� 2銆佸畾涔夊鎴�*SKU澶у紶鐩堝埄鏁伴樁姊緱鍒� 3銆佸尮閰嶉渶姹傛暟鎹腑瀹㈡埛鍙奡KU鏁版嵁锛屽緱鍒板搴旈樁姊緱鍒�", BusinessType := b );
- owner.PriorityFactor(relnew,Name := "缁嗗垎甯傚満绛夌骇" ,Desc := "1銆佽幏鍙栧鎴�*SKU瀵瑰簲缁嗗垎甯傚満绛夌骇 2銆佸尮閰嶉渶姹傛暟鎹腑瀹㈡埛鍙奡KU瀵瑰簲缁嗗垎甯傚満璇勫垎绛夌骇锛屽緱鍒板搴旈樁姊緱鍒�", BusinessType := b );
- owner.PriorityFactor(relnew,Name := "闇�姹傜被鍨�" ,Desc := "鍖归厤涓嶅悓闇�姹傜绫伙紝寰楀埌瀵瑰簲寰楀垎", BusinessType := b );
- owner.PriorityFactor(relnew,Name := "璁㈠崟涓嬪崟鏃堕棿" ,Desc := "鏍规嵁闇�姹傝鍗曚腑涓嬪崟鏃堕棿涓庨渶姹傛椂闂村樊鍊硷紝鍖归厤闃舵寰楀垎", BusinessType := b );
- owner.PriorityFactor(relnew,Name := "浜у搧绛夌骇" ,Desc := "1銆佽幏鍙栧鎴�*SKU DOI&DSI鏁� 2銆佸畾涔夊鎴�*SKUDOI&DSI鏁伴樁姊緱鍒� 3銆佸尮閰嶉渶姹傛暟鎹腑瀹㈡埛鍙奡KU鏁版嵁锛屽緱鍒板搴旈樁姊緱鍒�", BusinessType := b );
- owner.PriorityFactor(relnew,Name := "DOI" ,Desc := "1銆佽幏鍙栧鎴�*SKU DOI&DSI鏁� 2銆佸畾涔夊鎴�*SKUDOI&DSI鏁伴樁姊緱鍒� 3銆佸尮閰嶉渶姹傛暟鎹腑瀹㈡埛鍙奡KU鏁版嵁锛屽緱鍒板搴旈樁姊緱鍒�", BusinessType := b );
- owner.PriorityFactor(relnew,Name := "DSI" ,Desc := "1銆佽幏鍙栧鎴�*SKU DOI&DSI鏁� 2銆佸畾涔夊鎴�*SKUDOI&DSI鏁伴樁姊緱鍒� 3銆佸尮閰嶉渶姹傛暟鎹腑瀹㈡埛鍙奡KU鏁版嵁锛屽緱鍒板搴旈樁姊緱鍒�", BusinessType := b );
+
+ // 娣诲姞浜嬩笟閮ㄥ搴旂殑棰勫埗浼樺厛绾у洜瀛愭暟鎹�
+ owner.PriorityFactor(relnew,Name := "瀹㈡埛绛栫暐" ,Desc := "灏嗕簨涓氶儴璁$畻鐨勪紭鍏堢骇锛屾寜璇ョ粏鍒嗛」姣斾緥闃舵纭畾璇ラ」寰楀垎銆傚锛�81%鈮鈮�100% 5鍒嗭紝61%鈮鈮�80% 4鍒�", BusinessType := businessType );
+ owner.PriorityFactor(relnew,Name := "瀹㈡埛绛夌骇" ,Desc := "鏍规嵁闇�姹傛暟鎹腑瀹㈡埛锛屽尮閰嶅鎴风瓑绾�",BusinessType := businessType);
+ owner.PriorityFactor(relnew,Name := "澶у紶鐩堝埄姘村钩" ,Desc := "1銆佽幏鍙栧鎴�*SKU澶у紶鐩堝埄鏁� 2銆佸畾涔夊鎴�*SKU澶у紶鐩堝埄鏁伴樁姊緱鍒� 3銆佸尮閰嶉渶姹傛暟鎹腑瀹㈡埛鍙奡KU鏁版嵁锛屽緱鍒板搴旈樁姊緱鍒�", BusinessType := businessType );
+ owner.PriorityFactor(relnew,Name := "缁嗗垎甯傚満绛夌骇" ,Desc := "1銆佽幏鍙栧鎴�*SKU瀵瑰簲缁嗗垎甯傚満绛夌骇 2銆佸尮閰嶉渶姹傛暟鎹腑瀹㈡埛鍙奡KU瀵瑰簲缁嗗垎甯傚満璇勫垎绛夌骇锛屽緱鍒板搴旈樁姊緱鍒�", BusinessType := businessType );
+ owner.PriorityFactor(relnew,Name := "闇�姹傜被鍨�" ,Desc := "鍖归厤涓嶅悓闇�姹傜绫伙紝寰楀埌瀵瑰簲寰楀垎", BusinessType := businessType );
+ owner.PriorityFactor(relnew,Name := "璁㈠崟涓嬪崟鏃堕棿" ,Desc := "鏍规嵁闇�姹傝鍗曚腑涓嬪崟鏃堕棿涓庨渶姹傛椂闂村樊鍊硷紝鍖归厤闃舵寰楀垎", BusinessType := businessType );
+ owner.PriorityFactor(relnew,Name := "浜у搧绛夌骇" ,Desc := "1銆佽幏鍙栧鎴�*SKU DOI&DSI鏁� 2銆佸畾涔夊鎴�*SKUDOI&DSI鏁伴樁姊緱鍒� 3銆佸尮閰嶉渶姹傛暟鎹腑瀹㈡埛鍙奡KU鏁版嵁锛屽緱鍒板搴旈樁姊緱鍒�", BusinessType := businessType );
+ owner.PriorityFactor(relnew,Name := "DOI" ,Desc := "1銆佽幏鍙栧鎴�*SKU DOI&DSI鏁� 2銆佸畾涔夊鎴�*SKUDOI&DSI鏁伴樁姊緱鍒� 3銆佸尮閰嶉渶姹傛暟鎹腑瀹㈡埛鍙奡KU鏁版嵁锛屽緱鍒板搴旈樁姊緱鍒�", BusinessType := businessType );
+ owner.PriorityFactor(relnew,Name := "DSI" ,Desc := "1銆佽幏鍙栧鎴�*SKU DOI&DSI鏁� 2銆佸畾涔夊鎴�*SKUDOI&DSI鏁伴樁姊緱鍒� 3銆佸尮閰嶉渶姹傛暟鎹腑瀹㈡埛鍙奡KU鏁版嵁锛屽緱鍒板搴旈樁姊緱鍒�", BusinessType := businessType );
+
+ // 浼樺厛绾у洜瀛愮粏鍒�
+ priorityFactorList := selectset( owner,PriorityFactor,p,
+ p.BusinessType() = businessType
+ );
+
+ traverse( priorityFactorList,Elements,e)
+ {
+ PriorityFactorDetails::InitData( owner,e);
+ }
+
}
*]
}
diff --git a/_Main/BL/Type_PriorityFactorDetails/StaticMethod_CreateTestData.qbl b/_Main/BL/Type_PriorityFactorDetails/StaticMethod_CreateTestData.qbl
deleted file mode 100644
index 4954d67..0000000
--- a/_Main/BL/Type_PriorityFactorDetails/StaticMethod_CreateTestData.qbl
+++ /dev/null
@@ -1,15 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-StaticMethod CreateTestData (
- MacroPlan owner
-)
-{
- TextBody:
- [*
- // NBoTk Sep-18-2023 (created)
-
- info( "init data" );
- PriorityFactor::InitData( owner);
- PriorityFactorDetails::InitData( owner);
- *]
-}
diff --git a/_Main/BL/Type_PriorityFactorDetails/StaticMethod_InitData.qbl b/_Main/BL/Type_PriorityFactorDetails/StaticMethod_InitData.qbl
index 9327dbe..1449c61 100644
--- a/_Main/BL/Type_PriorityFactorDetails/StaticMethod_InitData.qbl
+++ b/_Main/BL/Type_PriorityFactorDetails/StaticMethod_InitData.qbl
@@ -1,35 +1,102 @@
Quintiq file version 2.0
#parent: #root
StaticMethod InitData (
- MacroPlan owner
+ MacroPlan owner,
+ PriorityFactor priorityFactor
)
{
TextBody:
[*
// NBoTk Sep-17-2023 (created)
- info(" init PriorutyFactorDetails" );
-
-
-
- traverse( owner, PriorityFactor , p)
+ isBusinessType := false;
+ if( priorityFactor.BusinessType() <> "闆嗗洟闈㈡澘" )
{
- isBusinessType := false;
- if( p.BusinessType() <> "闆嗗洟闈㈡澘" )
- {
- isBusinessType := true;
- }
-
- p.PriorityFactorDetails(relnew,BusinessType := p.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 5,
- IsRange := false,GradingName := "澶х泩",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := p.Name());
- p.PriorityFactorDetails(relnew,BusinessType := p.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 3,
- IsRange := false,GradingName := "灏忕泩",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := p.Name());
- p.PriorityFactorDetails(relnew,BusinessType := p.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 0,
- IsRange := false,GradingName := "鎸佸钩",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := p.Name());
- p.PriorityFactorDetails(relnew,BusinessType := p.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := -3,
- IsRange := false,GradingName := "灏忎簭",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := p.Name());
- p.PriorityFactorDetails(relnew,BusinessType := p.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := -5,
- IsRange := false,GradingName := "澶т簭",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := p.Name());
+ isBusinessType := true;
+ }
+
+ if( priorityFactor.Name() = "澶у紶鐩堝埄姘村钩" )
+ {
+ priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 5,
+ IsRange := false,GradingName := "澶х泩",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
+ priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 3,
+ IsRange := false,GradingName := "灏忕泩",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
+ priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 0,
+ IsRange := false,GradingName := "鎸佸钩",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
+ priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := -3,
+ IsRange := false,GradingName := "灏忎簭",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
+ priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := -5,
+ IsRange := false,GradingName := "澶т簭",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
+ }
+
+ if( priorityFactor.Name() = "瀹㈡埛绛栫暐" )
+ {
+ priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 5,
+ IsRange := false,GradingName := "81%鈮鈮�100%",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
+ priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 4,
+ IsRange := false,GradingName := "61%鈮鈮�80%",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
+ priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 3,
+ IsRange := false,GradingName := "41%鈮鈮�60%",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
+ priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 2,
+ IsRange := false,GradingName := "21%鈮鈮�40%",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
+ priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 1,
+ IsRange := false,GradingName := "1%鈮鈮�20%",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
+ }
+
+ if( priorityFactor.Name() = "缁嗗垎甯傚満绛夌骇" )
+ {
+ priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 5,
+ IsRange := false,GradingName := "鎴樼暐",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
+ priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 3,
+ IsRange := false,GradingName := "閲嶇偣",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
+ priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 1,
+ IsRange := false,GradingName := "娼滃姏",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
+ }
+
+ if( priorityFactor.Name() = "璁㈠崟涓嬪崟鏃堕棿" )
+ {
+ priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 5,
+ IsRange := false,GradingName := "120",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
+ priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 4,
+ IsRange := false,GradingName := "90",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
+ priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 3,
+ IsRange := false,GradingName := "60",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
+ priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 2,
+ IsRange := false,GradingName := "30",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
+ priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 1,
+ IsRange := false,GradingName := "0",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
+ }
+
+ if( priorityFactor.Name() = "闇�姹傜被鍨�" )
+ {
+ priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 5,
+ IsRange := false,GradingName := "鏈夐娴�",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
+ priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 3,
+ IsRange := false,GradingName := "鏃犻娴�",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
+ priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 1,
+ IsRange := false,GradingName := "绾娴�",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
+ }
+
+ if( priorityFactor.Name() = "瀹㈡埛绛夌骇" )
+ {
+ priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 5,
+ IsRange := false,GradingName := "鎴樼暐",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
+ priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 3,
+ IsRange := false,GradingName := "閲嶇偣",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
+ priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 1,
+ IsRange := false,GradingName := "娼滃姏",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
+ }
+
+ if( priorityFactor.Name() = "DOI" or priorityFactor.Name() = "DSI")
+ {
+ priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 5,
+ IsRange := false,GradingName := "<7",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
+ priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 3,
+ IsRange := false,GradingName := "<15",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
+ priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 1,
+ IsRange := false,GradingName := "<30",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
+ priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 1,
+ IsRange := false,GradingName := ">30",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
}
*]
}
diff --git a/_Main/BL/Type_PriorityPolicy/StaticMethod_GetCalcFormula.qbl b/_Main/BL/Type_PriorityPolicy/StaticMethod_GetCalcFormula.qbl
new file mode 100644
index 0000000..c76e0a0
--- /dev/null
+++ b/_Main/BL/Type_PriorityPolicy/StaticMethod_GetCalcFormula.qbl
@@ -0,0 +1,22 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GetCalcFormula (
+ MacroPlan macroPlan,
+ String formula
+) as String
+{
+ TextBody:
+ [*
+ // NBoTk Oct-7-2023 (created)
+ priorityFactor := null( PriorityFactor);
+ traverse( macroPlan,PriorityFactor,p)
+ {
+ if( formula.StartsWith( p.Name()) )
+ {
+ priorityFactor := p;
+ }
+ }
+ value := priorityFactor.Name() + "[" + [String]priorityFactor.Coefficient() +"*L]";
+ return value;
+ *]
+}
diff --git a/_Main/BL/Type_PriorityPolicy/StaticMethod_GetCalcStr.qbl b/_Main/BL/Type_PriorityPolicy/StaticMethod_GetCalcStr.qbl
new file mode 100644
index 0000000..2095877
--- /dev/null
+++ b/_Main/BL/Type_PriorityPolicy/StaticMethod_GetCalcStr.qbl
@@ -0,0 +1,94 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GetCalcStr (
+ MacroPlan macroPlan,
+ String formula,
+ String lastCalcStr
+) as String
+{
+ TextBody:
+ [*
+ // NBoTk Oct-7-2023 (created)
+
+ calcStr := "";
+ remindFormula := formula;
+
+ // 閬嶅巻浼樺厛绾у洜瀛愰厤缃�
+ if( not remindFormula = '' )
+ {
+ // 浠庤捣濮嬩綅缃紑濮嬪尮閰�
+ if(remindFormula.StartsWith( "+" ))
+ {
+ remindFormula := remindFormula.SubString( 1,remindFormula.Length()-1);
+ calcStr := PriorityPolicy::GetCalcFormula(macroPlan,remindFormula);
+ calcStr := lastCalcStr + "+" + calcStr;
+
+ // 鎴彇鎺夊凡缁忚绠楃殑浼樺厛绾у洜瀛� 閫掑綊璁$畻
+ remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan);
+ PriorityPolicy::GetCalcStr( macroPlan,remindFormula,calcStr);
+ }
+ else if( remindFormula.StartsWith( "-" ))
+ {
+ remindFormula := remindFormula.SubString( 1,remindFormula.Length()-1);
+ calcStr := PriorityPolicy::GetCalcFormula(macroPlan,remindFormula);
+ calcStr := lastCalcStr + "-" + calcStr;
+
+ // 鎴彇鎺夊凡缁忚绠楃殑浼樺厛绾у洜瀛� 閫掑綊璁$畻
+ remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan);
+ PriorityPolicy::GetCalcStr( macroPlan,remindFormula,calcStr);
+ }
+ else if( remindFormula.StartsWith( "*" ) )
+ {
+ remindFormula := remindFormula.SubString( 1,remindFormula.Length()-1);
+ calcStr := PriorityPolicy::GetCalcFormula(macroPlan,remindFormula);
+ calcStr := lastCalcStr + "*" + calcStr;
+
+ // 鎴彇鎺夊凡缁忚绠楃殑浼樺厛绾у洜瀛� 閫掑綊璁$畻
+ remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan);
+ PriorityPolicy::GetCalcStr( macroPlan,remindFormula,calcStr);
+ }
+ else if( remindFormula.StartsWith( "/" ) )
+ {
+ remindFormula := remindFormula.SubString( 1,remindFormula.Length()-1);
+ calcStr := PriorityPolicy::GetCalcFormula(macroPlan,remindFormula);
+ calcStr := lastCalcStr + "/" + calcStr;
+
+ // 鎴彇鎺夊凡缁忚绠楃殑浼樺厛绾у洜瀛� 閫掑綊璁$畻
+ remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan);
+ PriorityPolicy::GetCalcStr( macroPlan,remindFormula,calcStr);
+ }
+ else if( remindFormula.StartsWith( "(" ) )
+ {
+ remindFormula := remindFormula.SubString( 1,remindFormula.Length()-1);
+ calcStr := PriorityPolicy::GetCalcFormula(macroPlan,remindFormula);
+ calcStr := lastCalcStr + "{" + calcStr;
+
+ // 鎴彇鎺夊凡缁忚绠楃殑浼樺厛绾у洜瀛� 閫掑綊璁$畻
+ remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan);
+ PriorityPolicy::GetCalcStr( macroPlan,remindFormula,calcStr);
+ }
+ else if( remindFormula.StartsWith( ")" ) )
+ {
+ remindFormula := remindFormula.SubString( 1,remindFormula.Length()-1);
+ calcStr := PriorityPolicy::GetCalcFormula(macroPlan,remindFormula);
+ calcStr := lastCalcStr + ")" + calcStr;
+
+ // 鎴彇鎺夊凡缁忚绠楃殑浼樺厛绾у洜瀛� 閫掑綊璁$畻
+ remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan);
+ PriorityPolicy::GetCalcStr( macroPlan,remindFormula,calcStr);
+ }
+ else
+ {
+ // 涓嶆槸绗﹀彿 鐩存帴鑾峰彇璁$畻鍚庣殑鏁板��
+ calcStr := PriorityPolicy::GetCalcFormula(macroPlan,remindFormula);
+
+ // 鎴彇鎺夊凡缁忚绠楃殑浼樺厛绾у洜瀛� 閫掑綊璁$畻
+ remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan);
+ PriorityPolicy::GetCalcStr( macroPlan,remindFormula,calcStr);
+ }
+
+ }
+
+ return calcStr;
+ *]
+}
diff --git a/_Main/BL/Type_PriorityPolicy/StaticMethod_RollBackCalcStr.qbl b/_Main/BL/Type_PriorityPolicy/StaticMethod_RollBackCalcStr.qbl
new file mode 100644
index 0000000..122b53c
--- /dev/null
+++ b/_Main/BL/Type_PriorityPolicy/StaticMethod_RollBackCalcStr.qbl
@@ -0,0 +1,44 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod RollBackCalcStr (
+ MacroPlan owner,
+ String businessType,
+ String stringData
+) as String
+{
+ TextBody:
+ [*
+ // NBoTk Sep-21-2023 (created)
+ value := stringData;
+
+ symbolList := construct( structured[String]);
+ symbolList.Add( "+")
+ symbolList.Add( "-")
+ symbolList.Add( "x")
+ symbolList.Add( "/")
+ symbolList.Add( "(")
+ symbolList.Add( ")")
+
+ traverse( symbolList,Elements,e)
+ {
+ if( stringData.EndsWith( e ))
+ {
+ end := stringData.Length() - e.Length();
+ value := stringData.SubString( 0,end);
+ }
+ }
+
+ nameList := PriorityFactor::GetDataByBusinessType( owner,"");
+ traverse( nameList,Elements,e)
+ {
+ nameText := e.Name() + "[" + [String]e.Coefficient() + "*L]"
+ if( stringData.EndsWith( nameText))
+ {
+ end := stringData.Length() - nameText.Length();
+ value := stringData.SubString( 0,end);
+ }
+ }
+
+ return value;
+ *]
+}
diff --git a/_Main/BL/Type_PriorityPolicy/StaticMethod_RollBackStr.qbl b/_Main/BL/Type_PriorityPolicy/StaticMethod_RollBackStr.qbl
index 55e5bd0..129f7d7 100644
--- a/_Main/BL/Type_PriorityPolicy/StaticMethod_RollBackStr.qbl
+++ b/_Main/BL/Type_PriorityPolicy/StaticMethod_RollBackStr.qbl
@@ -10,7 +10,6 @@
[*
// NBoTk Sep-21-2023 (created)
value := stringData;
-
symbolList := construct( structured[String]);
symbolList.Add( "+")
symbolList.Add( "-")
@@ -28,7 +27,7 @@
}
}
- nameList := PriorityFactor::GetDataByBusinessType( owner,businessType);
+ nameList := PriorityFactor::GetDataByBusinessType( owner,"");
traverse( nameList,Elements,e)
{
if( stringData.EndsWith( e.Name()))
@@ -37,7 +36,6 @@
value := stringData.SubString( 0,end);
}
}
-
return value;
*]
}
diff --git a/_Main/BL/Type_PriorityResult/Attribute_CustomerOrderID.qbl b/_Main/BL/Type_PriorityResult/Attribute_CustomerOrderID.qbl
new file mode 100644
index 0000000..f65a510
--- /dev/null
+++ b/_Main/BL/Type_PriorityResult/Attribute_CustomerOrderID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute CustomerOrderID
+{
+ #keys: '3[414382.0.554015006][414382.0.554015005][414382.0.554015007]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_PriorityResult/StaticMethod_CalculateBracketScore.qbl b/_Main/BL/Type_PriorityResult/StaticMethod_CalculateBracketScore.qbl
new file mode 100644
index 0000000..962e51e
--- /dev/null
+++ b/_Main/BL/Type_PriorityResult/StaticMethod_CalculateBracketScore.qbl
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod CalculateBracketScore (
+ String calcStr,
+ CustomerOrder customerOrder,
+ String businessType,
+ MacroPlan macroPlan,
+ GlobalOTDTable globalOTDTable
+) as Real
+{
+ Description: '璁$畻鍏紡涓嫭鍙峰唴鐨勬暟鎹�'
+ TextBody:
+ [*
+ // NBoTk Sep-26-2023 (created)
+
+
+ return PriorityResult::CalculateScore( calcStr,customerOrder,businessType,macroPlan,0.0,globalOTDTable);
+ *]
+}
diff --git a/_Main/BL/Type_PriorityResult/StaticMethod_CalculateScore.qbl b/_Main/BL/Type_PriorityResult/StaticMethod_CalculateScore.qbl
new file mode 100644
index 0000000..7b59176
--- /dev/null
+++ b/_Main/BL/Type_PriorityResult/StaticMethod_CalculateScore.qbl
@@ -0,0 +1,87 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod CalculateScore (
+ String formula,
+ CustomerOrder customerOrder,
+ String businessType,
+ MacroPlan macroPlan,
+ Real lastScore,
+ GlobalOTDTable globalOTDTable
+) as Real
+{
+ TextBody:
+ [*
+ // NBoTk Sep-26-2023 (created)
+
+ score := 0.0;
+ remindFormula := formula;
+
+ // 閬嶅巻浼樺厛绾у洜瀛愰厤缃�
+ if( not remindFormula = '' )
+ {
+ // 浠庤捣濮嬩綅缃紑濮嬪尮閰�
+ if(remindFormula.StartsWith( "+" ))
+ {
+ remindFormula := remindFormula.SubString( 1,remindFormula.Length()-1);
+ score := PriorityResult::GetDetailsValue( customerOrder,remindFormula,macroPlan,globalOTDTable);
+ score := lastScore + score;
+
+ // 鎴彇鎺夊凡缁忚绠楃殑浼樺厛绾у洜瀛� 閫掑綊璁$畻
+ remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan);
+ PriorityResult::CalculateScore( remindFormula,customerOrder,businessType,macroPlan,score,globalOTDTable);
+ }
+ else if( remindFormula.StartsWith( "-" ))
+ {
+ remindFormula := remindFormula.SubString( 1,remindFormula.Length()-1);
+ score := PriorityResult::GetDetailsValue( customerOrder,remindFormula,macroPlan,globalOTDTable);
+ score := lastScore - score;
+
+ // 鎴彇鎺夊凡缁忚绠楃殑浼樺厛绾у洜瀛� 閫掑綊璁$畻
+ remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan);
+ PriorityResult::CalculateScore( remindFormula,customerOrder,businessType,macroPlan,score,globalOTDTable);
+ }
+ else if( remindFormula.StartsWith( "*" ) )
+ {
+ remindFormula := remindFormula.SubString( 1,remindFormula.Length()-1);
+ score := PriorityResult::GetDetailsValue( customerOrder,remindFormula,macroPlan,globalOTDTable);
+ score := lastScore * score;
+
+ // 鎴彇鎺夊凡缁忚绠楃殑浼樺厛绾у洜瀛� 閫掑綊璁$畻
+ remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan);
+ PriorityResult::CalculateScore( remindFormula,customerOrder,businessType,macroPlan,score,globalOTDTable);
+ }
+ else if( remindFormula.StartsWith( "/" ) )
+ {
+ remindFormula := remindFormula.SubString( 1,remindFormula.Length()-1);
+ score := PriorityResult::GetDetailsValue( customerOrder,remindFormula,macroPlan,globalOTDTable);
+ score := lastScore / score;
+
+ // 鎴彇鎺夊凡缁忚绠楃殑浼樺厛绾у洜瀛� 閫掑綊璁$畻
+ remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan);
+ PriorityResult::CalculateScore( remindFormula,customerOrder,businessType,macroPlan,score,globalOTDTable);
+ }
+ else if( remindFormula.StartsWith( "(" ) )
+ {
+ // 鎵惧埌绗竴涓粨鏉熺殑 )
+ // 璁$畻鎷彿涓殑鍐呭
+ rightBracket := remindFormula.FindString( ")",0);
+ calcStr := remindFormula.SubString( 1,rightBracket);
+ PriorityResult::CalculateBracketScore(calcStr,customerOrder,businessType,macroPlan,globalOTDTable);
+
+ // 鎴彇 ) 鍚庣殑瀛楃缁х画杩涜璁$畻
+ remindFormula := remindFormula.SubString( rightBracket,remindFormula.Length()-1);
+ }
+ else
+ {
+ // 涓嶆槸绗﹀彿 鐩存帴鑾峰彇璁$畻鍚庣殑鏁板��
+ score := PriorityResult::GetDetailsValue( customerOrder,remindFormula,macroPlan,globalOTDTable);
+ // 鎴彇鎺夊凡缁忚绠楃殑浼樺厛绾у洜瀛� 閫掑綊璁$畻
+ remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan);
+ PriorityResult::CalculateScore( remindFormula,customerOrder,businessType,macroPlan,score,globalOTDTable);
+ }
+ }
+
+ // 娌℃湁鍖归厤 鍏紡璁$畻瀹屾垚
+ return score;
+ *]
+}
diff --git a/_Main/BL/Type_PriorityResult/StaticMethod_GetDetailsValue.qbl b/_Main/BL/Type_PriorityResult/StaticMethod_GetDetailsValue.qbl
new file mode 100644
index 0000000..78c3611
--- /dev/null
+++ b/_Main/BL/Type_PriorityResult/StaticMethod_GetDetailsValue.qbl
@@ -0,0 +1,124 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GetDetailsValue (
+ CustomerOrder customerOrder,
+ String formula,
+ MacroPlan macroPlan,
+ GlobalOTDTable globalOTDTable
+) as Real
+{
+ TextBody:
+ [*
+ // NBoTk Sep-26-2023 (created)
+ // 褰撳墠璁$畻浼樺厛绾у洜瀛愮粏鍒� 濡傛灉鑾峰彇涓嶅埌鍏ㄩ儴鍏堥粯璁や负1
+
+ value := 0.0;
+
+ priorityFactor := null( PriorityFactor);
+ traverse( macroPlan,PriorityFactor,p)
+ {
+ if( formula.StartsWith( p.Name()) )
+ {
+ priorityFactor := p;
+ }
+ }
+
+ if(isnull( priorityFactor) )
+ {
+ value := 1.0;
+ }
+ else
+ {
+ if( "瀹㈡埛绛栫暐" = priorityFactor.Name())
+ {
+ obj := selectobject( priorityFactor,PriorityFactorDetails,p , p.PriorityFactorName() = "瀹㈡埛绛栫暐" and p.GradingName() = customerOrder.CustomerPolicy());
+ gradeTarget := 1.0;
+ if( not isnull( obj ) )
+ {
+ gradeTarget := obj.GradeTarget();
+ }
+ value := priorityFactor.Coefficient() * gradeTarget;
+ }
+
+ if( "澶у紶鐩堝埄姘村钩" = priorityFactor.Name())
+ {
+ obj := selectobject( priorityFactor,PriorityFactorDetails,p , p.PriorityFactorName() = "澶у紶鐩堝埄姘村钩" and p.GradingName() = customerOrder.SheetProfitability());
+ gradeTarget := 1.0;
+ if( not isnull( obj ) )
+ {
+ gradeTarget := obj.GradeTarget();
+ }
+ value := priorityFactor.Coefficient() * gradeTarget;
+ }
+
+ if( "DOI" = priorityFactor.Name())
+ {
+ // DOI鏁版嵁
+ obj := selectobject( globalOTDTable,Global_MappingDOI_DSI,doi,doi.ProductID() = customerOrder.ProductID())
+ doi := 1.0;
+ if( not isnull( obj ) )
+ {
+ doi := [Real]obj.DOI();
+ }
+ value := priorityFactor.Coefficient() * doi;
+ }
+
+ if( "DSI" = priorityFactor.Name())
+ {
+ // DOI鏁版嵁
+ obj := selectobject( globalOTDTable,Global_MappingDOI_DSI,doi,doi.ProductID() = customerOrder.ProductID())
+ dsi := 1.0;
+ if( not isnull( obj ) )
+ {
+ dsi := [Real]obj.DSI();
+ }
+ value := priorityFactor.Coefficient() * dsi;
+ }
+
+ if( "缁嗗垎甯傚満绛夌骇" = priorityFactor.Name())
+ {
+ obj := selectobject( priorityFactor,PriorityFactorDetails,p , p.PriorityFactorName() = "缁嗗垎甯傚満绛夌骇" and p.GradingName() = customerOrder.SegmentPriority());
+ gradeTarget := 1.0;
+ if( not isnull( obj ) )
+ {
+ gradeTarget := obj.GradeTarget();
+ }
+ value := priorityFactor.Coefficient() * gradeTarget;
+ }
+
+ if( "闇�姹傜被鍨�" = priorityFactor.Name())
+ {
+ // 鏈夐娴� 鏃犻娴� 绾娴�
+ obj := selectobject( priorityFactor,PriorityFactorDetails,p,p.GradingName() = customerOrder.OrderType());
+ gradeTarget := 1.0;
+ if( not isnull( obj ) )
+ {
+ gradeTarget := obj.GradeTarget();
+ }
+ value := priorityFactor.Coefficient() * gradeTarget;
+ }
+
+ if( "瀹㈡埛绛夌骇" = priorityFactor.Name())
+ {
+ // 閫氳繃鏁版嵁婀栬绠楀鎴风瓑绾�
+ obj := selectobject( globalOTDTable,Global_MappingCustomerGrade,doi,doi.BusinessType() = customerOrder.BusinessType() and doi.Customer() = customerOrder.CustomerName())
+ customerGrade := 1.0;
+ if( not isnull( obj ) )
+ {
+ customerGrade := [Real]obj.CustomerGrade();
+ }
+ value := priorityFactor.Coefficient() * customerGrade;
+ }
+
+ if( "璁㈠崟涓嬪崟鏃堕棿" = priorityFactor.Name())
+ {
+ // 涓嬪崟鏃堕棿
+ orderTime := customerOrder.OrderTime();
+ days := orderTime.TotalInDays() - customerOrder.EndDate().TotalInDays();
+ obj := selectobject( priorityFactor,PriorityFactorDetails,p , p.PriorityFactorName() = "璁㈠崟涓嬪崟鏃堕棿" and days >= [Number]p.GradingName());
+ value := priorityFactor.Coefficient() * obj.GradeTarget();
+ }
+ }
+ return value;
+ *]
+}
diff --git a/_Main/BL/Type_PriorityResult/StaticMethod_GetRemindFormula.qbl b/_Main/BL/Type_PriorityResult/StaticMethod_GetRemindFormula.qbl
new file mode 100644
index 0000000..3033476
--- /dev/null
+++ b/_Main/BL/Type_PriorityResult/StaticMethod_GetRemindFormula.qbl
@@ -0,0 +1,32 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GetRemindFormula (
+ String formula,
+ MacroPlan macroPlan
+) as String
+{
+ TextBody:
+ [*
+ // NBoTk Sep-26-2023 (created)
+
+ str := "";
+
+ traverse( macroPlan,PriorityFactor,p)
+ {
+ if( formula.StartsWith( p.Name()) )
+ {
+ // 鍒ゆ柇鍓╀綑瀛楃闀垮害
+ if( p.Name().Length() = formula.Length() )
+ {
+ str := ""
+ }
+ else
+ {
+ str := formula.SubString( p.Name().Length(),formula.Length() - p.Name().Length());
+ }
+ }
+ }
+
+ return str;
+ *]
+}
diff --git a/_Main/BL/Type_PriorityResult/StaticMethod_calculatePriorityResult.qbl b/_Main/BL/Type_PriorityResult/StaticMethod_calculatePriorityResult.qbl
new file mode 100644
index 0000000..7cd8770
--- /dev/null
+++ b/_Main/BL/Type_PriorityResult/StaticMethod_calculatePriorityResult.qbl
@@ -0,0 +1,95 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod CalculatePriorityResult (
+ String priorityPolicyName,
+ MacroPlan macroPlan,
+ GlobalOTDTable globalOTDTable
+)
+{
+ TextBody:
+ [*
+ // NBoTk Sep-26-2023 (created)
+
+ // 璁$畻瀹㈡埛璁㈠崟鐨勪紭鍏堢骇寰楀垎 鍥炲~鏉冮噸鏁版嵁 鐢熸垚鏂扮殑Priority鏄庣粏鏁版嵁
+
+ traverse( macroPlan,SalesDemand.astype( CustomerOrder ),e)
+ {
+ // 浜嬩笟閮ㄤ俊鎭�
+ businessType := e.BusinessType();
+
+ // 鑾峰彇瀵瑰簲浜嬩笟閮ㄨ绠楀叕寮�
+ priorityPolicys := selectobject( macroPlan,PriorityPolicy,p,p.BusinessType() = businessType and p.Name() = priorityPolicyName);
+ formula := priorityPolicys.Formula();
+
+ // 閫掑綊澶勭悊璁$畻鍏紡 鑾峰彇褰撳墠璁㈠崟鐨勫緱鍒�
+ value := PriorityResult::CalculateScore( formula,e,businessType,macroPlan,0.0,globalOTDTable);
+ // 鐢熸垚浼樺厛绾у洜瀛愯窇鍒嗙粨鏋�
+ priorityResult := macroPlan.PriorityResult(relnew,CustomerOrderID := e.ID(),BusinessType := businessType,Customer := e.CustomerName(),CustomerID := e.CustomerID(),
+ DemandDate := e.EndDate(),ProductID := e.ProductID(),Quantity := e.Quantity(),SalesSegmentName := e.SalesSegmentName(),
+ StockingPointID := e.StockingPointID(),UnitOfMeasureName := e.UnitOfMeasureName()
+ );
+
+ // 鍒ゆ柇鏄泦鍥� 杩樻槸浜嬩笟閮�
+ if( businessType.FindString( "闆嗗洟",0 ) <> -1)
+ {
+ priorityResult.PriorityResultGroupDetail( relnew,BusinessType := businessType,Customer := e.CustomerName(),CustomerID := e.CustomerID(),
+ DemandDate := e.EndDate(),PriorityPolicyName := priorityPolicyName,PriorityResultScore := value,
+ Quantity := e.Quantity(),SalesSegmentName := e.SalesSegmentName(),StockingPointID := e.StockingPointID(),
+ UnitOfMeasureName := e.UnitOfMeasureName(),PriorityTotalScore := value
+ );
+ }
+ else
+ {
+ priorityResult.PriorityResultBusinessTypeDetail( relnew,BusinessType := businessType,Customer := e.CustomerName(),CustomerID := e.CustomerID(),
+ DemandDate := e.EndDate(),PriorityPolicyName := priorityPolicyName,PriorityResultScore := value,
+ Quantity := e.Quantity(),SalesSegmentName := e.SalesSegmentName(),StockingPointID := e.StockingPointID(),
+ UnitOfMeasureName := e.UnitOfMeasureName(),PriorityTotalScore := value
+ );
+ }
+ }
+
+ // 浼樺厛绾у洜瀛愬鐞嗗畬鎴愬悗 鎺掑簭鍥炲~鏁版嵁
+ resultList := selectsortedset( macroPlan,PriorityResult,result,
+ true,
+ result.PriorityResultScore()
+ )
+
+ // Quintiq浼樺厛绾у垎10绾� 闇�瑕佸垎娈佃绠�
+ subLevel := resultList.Size() div 10;
+ subLevelCount := 0;
+
+ priorityValue := 1;
+ traverse( resultList,Elements,e)
+ {
+ obj := selectobject( macroPlan,SalesDemand.astype( CustomerOrder ),order,
+ order.ID() = e.CustomerOrderID()
+ );
+
+ // 璁㈠崟鏁版嵁涓嶄负绌哄啀鍋氬鐞�
+ if( not isnull( obj ) )
+ {
+ obj.PriorityName([String]priorityValue);
+
+ // 鍒涘缓浼樺厛绾ф暟鎹� 闇�瑕佸厛娓呴櫎涓婁竴娆$殑璁$畻缁撴灉
+ // 鍒ゆ柇褰撳墠customerOrder鏄惁瀛樺湪
+ oldPriority := selectobject( macroPlan,Priority,p,p.Name() = [String]priorityValue);
+ if(isnull( oldPriority ) )
+ {
+ macroPlan.Priority(relnew,Weight := priorityValue,Name := [String]priorityValue);
+ }
+ }
+
+ // 鍒ゆ柇璁$畻鍒嗘鏁伴噺涓嶲uintiq鍘熷浼樺厛绾�
+ subLevelCount := subLevelCount + 1;
+ if( subLevelCount = subLevel )
+ {
+ // 褰撳埌杈惧垎娈垫暟閲忓悗 浼樺厛绾�+1 鍒嗘璁℃暟浠�0寮�濮�
+ if( priorityValue < 10 )
+ {
+ priorityValue := priorityValue + 1;
+ }
+ subLevelCount := 0;
+ }
+ }
+ *]
+}
diff --git a/_Main/BL/Type_ProductInStockingPointInPeriodPlanningLeaf/FunctionOverride_CalcStockLevelInDays.qbl b/_Main/BL/Type_ProductInStockingPointInPeriodPlanningLeaf/FunctionOverride_CalcStockLevelInDays.qbl
new file mode 100644
index 0000000..bd5d786
--- /dev/null
+++ b/_Main/BL/Type_ProductInStockingPointInPeriodPlanningLeaf/FunctionOverride_CalcStockLevelInDays.qbl
@@ -0,0 +1,79 @@
+Quintiq file version 2.0
+#parent: #root
+FunctionOverride CalcStockLevelInDays #extension
+{
+ TextBody:
+ [*
+ totalDays := 0.0;
+
+ if( not this.Period_MP().MacroPlan().IsMetaOptimizerRunning() )
+ {
+ balanceInv := this.InventoryLevelEnd();
+
+ if( balanceInv > 0 )
+ {
+ // Calculate stock level in days
+ futureperiods := selectsortedset( this, ProductInStockingPoint_MP.ProductInStockingPointInPeriodPlanning.astype( ProductInStockingPointInPeriodPlanningLeaf ), p,
+ p.Start() >= this.End(), p.Start() );
+ product := this.ProductInStockingPoint_MP().Product_MP();
+ shelflife := this.ShelfLife();
+ hasshelflife := product.HasShelfLife() and not isnull( shelflife );
+ agevector := RealVector::Construct();
+ quantityvector := RealVector::Construct();
+
+ // Modified logic to consider shelf-life for stock level in days
+ if( hasshelflife )
+ {
+ // Get the age and quantity vector of remaining product stock at the end of period
+ agevector := RealVector::Construct( shelflife.ShelfLifeEndAgeVectorAsBinaryValue() );
+ quantityvector := RealVector::Construct( shelflife.ShelfLifeEndQuantityVectorAsBinaryValue() );
+ }
+
+ /*
+ Track if consecutive future periods has 0 demand (although we have balance supply, but if remaining future periods has 0 demand not consider as coverable).
+ Accumulate the coverable days and only add to total days if manage to find a subsequent period with demand.
+ */
+ traverse( futureperiods, Elements, pispip,
+ // Terminate calculation once remaining supply is 0
+ balanceInv > 0 )
+ {
+ if( balanceInv > 0 )
+ {
+ demandQty := pispip.DependentDemandAndSalesDemandQuantity();
+
+ // Include expired quantity as demand to determine stock level in days
+ if( hasshelflife )
+ {
+ isexpiredinperiodvector := BooleanVector::Construct();
+
+ traverse( agevector.AsValues(), Elements, age )
+ {
+ isexpiredinperiod := not product.GetIsUsableInTargetPeriod( [Real] age, pispip.Start(), pispip.Period_MP() );
+ isexpiredinperiodvector.Append( isexpiredinperiod );
+ agevector.Add( pispip.Period_MP().GetDurationInDaysForShelfLife(), false );
+ }
+
+ // Sum of all elements in the quantity vector that corresponds to element = true in the boolean vector
+ expiredinventoryqty := quantityvector.GetSelection( isexpiredinperiodvector ).Sum();
+ demandQty := demandQty + expiredinventoryqty; // Reduce inventory as expired
+ }
+
+ if( balanceInv > demandQty ) // Remaining supply can cover demand in period
+ {
+ totalDays := totalDays + pispip.Period_MP().DurationInDays();
+ balanceInv := balanceInv - demandQty;
+ }
+ else // Remaining supply partially cover the demand in period
+ {
+ // Main calc logic
+ totalDays := totalDays + ( balanceInv / demandQty * pispip.Period_MP().DurationInDays() );
+ balanceInv := 0.0;
+ }
+ }
+ }
+ }
+ }
+
+ this.StockLevelInDays( totalDays );
+ *]
+}
diff --git a/_Main/BL/Type_ProductInStockingPointInPeriodPlanningLeaf/_ROOT_Type_ProductInStockingPointInPeriodPlanningLeaf.qbl b/_Main/BL/Type_ProductInStockingPointInPeriodPlanningLeaf/_ROOT_Type_ProductInStockingPointInPeriodPlanningLeaf.qbl
new file mode 100644
index 0000000..8c6a2c8
--- /dev/null
+++ b/_Main/BL/Type_ProductInStockingPointInPeriodPlanningLeaf/_ROOT_Type_ProductInStockingPointInPeriodPlanningLeaf.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+TypeSpecialization ProductInStockingPointInPeriodPlanningLeaf #extension
+{
+}
diff --git a/_Main/BL/Type_Routing/Method_DoSanityCheckData.qbl b/_Main/BL/Type_Routing/Method_DoSanityCheckData.qbl
new file mode 100644
index 0000000..c23a63b
--- /dev/null
+++ b/_Main/BL/Type_Routing/Method_DoSanityCheckData.qbl
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: #root
+Method DoSanityCheckData (
+ output Strings feedback_o,
+ output Strings sanitycheckfeedback_o
+) declarative remote #extension
+{
+ TextBody:
+ [*
+ // Adhi Feb-10-2016 (created)
+
+ isvalid := true;
+
+ isvalid := this.GetHasValidInput( feedback_o, sanitycheckfeedback_o ) and isvalid;
+
+ isvalid := this.GetHasTianmaNonSupplierOperationWithNoInput( feedback_o, sanitycheckfeedback_o ) and isvalid;
+
+ return isvalid;
+ *]
+}
diff --git a/_Main/BL/Type_Routing/Method_GetHasTianmaNonSupplierOperationWithNoInput.qbl b/_Main/BL/Type_Routing/Method_GetHasTianmaNonSupplierOperationWithNoInput.qbl
new file mode 100644
index 0000000..ec4ca3e
--- /dev/null
+++ b/_Main/BL/Type_Routing/Method_GetHasTianmaNonSupplierOperationWithNoInput.qbl
@@ -0,0 +1,28 @@
+Quintiq file version 2.0
+#parent: #root
+Method GetHasTianmaNonSupplierOperationWithNoInput (
+ output Strings feedback_o,
+ output Strings sanitycheckfeedback_o
+) declarative remote as Boolean
+{
+ TextBody:
+ [*
+ // Tianma change 20230925: If the unit is not a supplier, raise a data issue if there's no input
+ value := forall( this, RoutingStep.Operation, operation,
+ guard( operation.Unit().IsSupplier(), false )
+ or operation.OperationInput( relsize ) > 0 );
+
+ if( not value )
+ {
+ // Add instance text
+ routingname := MacroPlan::GetSubstituteName( this.Name() );
+ instance := Translations::MP_Routing_Instance( routingname );
+ feedback := SanityCheckMessage::GetFormattedMessage( instance,
+ "闈炰緵搴斿晢鎿嶄綔娌℃湁鎶曞叆鏂欍��" );
+ feedback_o.Add( feedback );
+ sanitycheckfeedback_o.Add( SanityCheckCategoryLevel::GetSanityCheckCategoryDataWarning() );
+ }
+
+ return value;
+ *]
+}
diff --git a/_Main/BL/Type_Scenario/Attribute_ScenarioName.qbl b/_Main/BL/Type_Scenario/Attribute_ScenarioName.qbl
new file mode 100644
index 0000000..d40aac3
--- /dev/null
+++ b/_Main/BL/Type_Scenario/Attribute_ScenarioName.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ScenarioName
+{
+ #keys: '3[412960.0.288500040][412960.0.288500039][412960.0.288500041]'
+ Description: '鍦烘櫙鍚嶇О锛屽搴斾簨涓氶儴&缁勭粐缂栫爜缁存姢涓淮鎶ょ殑鍦烘櫙鍚嶇О'
+ ValueType: String
+}
diff --git "a/_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeChart\04395.qbl" "b/_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeChart\04395.qbl"
deleted file mode 100644
index c543694..0000000
--- "a/_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeChart\04395.qbl"
+++ /dev/null
@@ -1,301 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Method CapacityAndSaleBudgeChart (
- MacroPlans macroPlans,
- String saleOrCapacity,
- String groupBy,
- String byBusinessTypeOrByOrgCode,
- CapacityAndSaleBudgeFilterBusinessTypes businessTypes,
- CapacityAndSaleBudgeFilterPlaceOfProductionOfArrays placeOfProductionOfArrays,
- CapacityAndSaleBudgeFilterYears years,
- CapacityAndSaleBudgeFilterMonths months,
- MPSync mpSync,
- GlobalOTDTable otdTable,
- MacroPlan mappingParent
-)
-{
- Description: '鎸夊叆鍙傚鐞嗘暟鎹紝浜х敓闇�瑕佺殑CapacityAndSaleBudgeChartElement'
- TextBody:
- [*
- // yypsybs Sep-19-2023 (created)
- // true, false
- info( saleOrCapacity );
- // 鏈�;瀛e害;鍗婂勾;骞�
- info( groupBy );
- // 闈㈡澘鍩哄湴;浜嬩笟閮�
- info( byBusinessTypeOrByOrgCode );
- traverse( businessTypes, Elements, businessType ) {
- info( "businessType : " + businessType.BusinessType() );
- }
- traverse( placeOfProductionOfArrays, Elements, placeOfProductionOfArray ) {
- info( "placeOfProductionOfArray : " + placeOfProductionOfArray.PlaceOfProductionOfArray() );
- }
- traverse( macroPlans, Elements, macroPlan ) {
- info( "macroPlan : " + macroPlan.ScenarioName() );
- }
- // 骞翠唤涓嶉�夋椂鍏ㄩ��
- if( years.Size() = 0 ) {
- years := selectsortedset( this, CapacityAndSaleBudgeFilterYear, item, true, item.YearNo() );
- }
- traverse( years, Elements, year ) {
- info( "yearNo : " + [String]year.YearNo() );
- }
- // 鏈堜唤涓嶉�夋椂鍏ㄩ��
- if( months.Size() = 0 ) {
- months := selectsortedset( this, CapacityAndSaleBudgeFilterMonth, item, true, item.MonthNo() );
- }
- traverse( months, Elements, month ) {
- info( "monthNo : " + [String]month.MonthNo() );
- }
-
- // ====娓呯悊鏃ф暟鎹�====
- this.CapacityAndSaleBudgeChartRow( relflush );
- this.CapacityAndSaleBudgeChartElement( relflush );
-
- // ====鎸夐潰鏉垮熀鍦板拰浜嬩笟閮ㄥ浜у搧杩涜绛涢�夊垎缁�====
- historyData := selectset( mpSync, MappingCapacityAndSaleBudge, item, true );
- if( businessTypes.Size() > 0 ) {
- businessTypeStrings := selectuniquevalues( businessTypes, Elements, item, true, item.BusinessType() );
- historyData := selectset( historyData, Elements, item, businessTypeStrings.Find( item.BusinessType() ) > -1 );
- }
- if( placeOfProductionOfArrays.Size() > 0 ) {
- placeOfProductionOfArrayStrings := selectuniquevalues( placeOfProductionOfArrays, Elements, item, true, item.PlaceOfProductionOfArray() );
- historyData := selectset( historyData, Elements, item, placeOfProductionOfArrayStrings.Find( item.PlaceOfProductionOfArray() ) > -1 );
- }
- //info( "historyData : " + [String]historyData.Size() );
- traverse( historyData, Elements, item ) {
- row := CapacityAndSaleBudgeChartRow::CreateIfNotExist( this, item.BusinessType(), item.PlaceOfProductionOfArray() );
- // 璁板綍姣忚鍖呭惈鍝簺product
- CapacityAndSaleBudgeChartRowProduct::CreateIfNotExist( row, item.ProductCode() );
- }
- rows := selectset( this, CapacityAndSaleBudgeChartRow, item, true );
- //info( "rows : " + [String]rows.Size() );
- placeOfProductionOfArrayList := selectuniquevalues( historyData, Elements, item, item.PlaceOfProductionOfArray() );
- businessTypeList := selectuniquevalues( historyData, Elements, item, item.BusinessType() );
- // 鐢熸垚鍥捐〃鍏冪礌
- traverse( years, Elements, year ) {
- info( "process year start : " + [String]year.YearNo() );
- if( byBusinessTypeOrByOrgCode = "闈㈡澘鍩哄湴" and groupBy = "骞�" ) {
- // 鐩爣
- traverse( placeOfProductionOfArrayList, Elements, placeOfProductionOfArray ) {
- productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByPlaceOfProductionOfArray( rows, placeOfProductionOfArray );
- this.CapacityAndSaleBudgeChartElement( relnew,
- TimeStringAndScenarioName := [String]year.YearNo() + "骞�-鐩爣",
- BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
- Quantity := ifexpr( saleOrCapacity = "閿�鍞",
- MappingAnnualBudget::GetSheetByYear( productCodeList, mpSync, year.YearNo() ),
- MappingCapacityAndSaleBudge::GetSheetByYear( productCodeList, mpSync, year.YearNo() ) )
- );
- // S&OP
- traverse( macroPlans, Elements, macroPlan ) {
- this.CapacityAndSaleBudgeChartElement( relnew,
- TimeStringAndScenarioName := [String]year.YearNo() + "骞�-" + macroPlan.ScenarioName(),
- BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
- Quantity := ifexpr( saleOrCapacity = "閿�鍞",
- MappingCustomerOrder::GetNewSupplyByYear( productCodeList, macroPlan, year.YearNo() ),
- Product_MP::GetNewSupplyByYear( productCodeList, macroPlan, year.YearNo() )
- )
- );
- }
- }
- }
- if ( byBusinessTypeOrByOrgCode = "闈㈡澘鍩哄湴" and groupBy = "鍗婂勾" ) {
- for( halfNo := 1; halfNo <= 2; halfNo := halfNo + 1 ) {
- traverse( placeOfProductionOfArrayList, Elements, placeOfProductionOfArray ) {
- productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByPlaceOfProductionOfArray( rows, placeOfProductionOfArray );
- this.CapacityAndSaleBudgeChartElement( relnew,
- TimeStringAndScenarioName := [String]year.YearNo() + "骞�-" + ifexpr( halfNo = 1, "涓�", "涓�" ) + "鍗婂勾-鐩爣",
- BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
- Quantity := ifexpr( saleOrCapacity = "閿�鍞",
- MappingAnnualBudget::GetSheetByHalfYear( productCodeList, mpSync, year.YearNo(), halfNo ),
- MappingCapacityAndSaleBudge::GetSheetByHalfYear( productCodeList, mpSync, year.YearNo(), halfNo ) )
- );
- // S&OP
- traverse( macroPlans, Elements, macroPlan ) {
- this.CapacityAndSaleBudgeChartElement( relnew,
- TimeStringAndScenarioName := [String]year.YearNo() + "骞�-" + ifexpr( halfNo = 1, "涓�", "涓�" ) + "鍗婂勾-" + macroPlan.ScenarioName(),
- BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
- Quantity := ifexpr( saleOrCapacity = "閿�鍞",
- MappingCustomerOrder::GetNewSupplyByHalfYear( productCodeList, macroPlan, year.YearNo(), halfNo ),
- Product_MP::GetNewSupplyByHalfYear( productCodeList, macroPlan, year.YearNo(), halfNo )
- )
- );
- }
- }
- }
- }
- if ( byBusinessTypeOrByOrgCode = "闈㈡澘鍩哄湴" and groupBy = "瀛e害" ) {
- for( seasonNo := 1; seasonNo <= 4; seasonNo := seasonNo + 1 ) {
- traverse( placeOfProductionOfArrayList, Elements, placeOfProductionOfArray ) {
- productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByPlaceOfProductionOfArray( rows, placeOfProductionOfArray );
- // info( "productCodeList : " + [String]productCodeList.Size() );
- // info( "MappingCapacityAndSaleBudge::GetSheetBySeason : " + [String]MappingCapacityAndSaleBudge::GetSheetBySeason( productCodeList, mpSync, [Number]year, seasonNo ) );
- // info( "seasonNo : " + [String]seasonNo );
- this.CapacityAndSaleBudgeChartElement( relnew,
- TimeStringAndScenarioName := [String]year.YearNo() + "骞�-绗�" + [String]seasonNo + "瀛e害-鐩爣",
- BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
- Quantity := ifexpr( saleOrCapacity = "閿�鍞",
- MappingAnnualBudget::GetSheetBySeason( productCodeList, mpSync, year.YearNo(), seasonNo ),
- MappingCapacityAndSaleBudge::GetSheetBySeason( productCodeList, mpSync, year.YearNo(), seasonNo ) )
- );
- // info( "productCodeList : " + [String]productCodeList.Size() );
- // S&OP
- traverse( macroPlans, Elements, macroPlan ) {
- this.CapacityAndSaleBudgeChartElement( relnew,
- TimeStringAndScenarioName := [String]year.YearNo() + "骞�-绗�" + [String]seasonNo + "瀛e害-" + macroPlan.ScenarioName(),
- BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
- Quantity := ifexpr( saleOrCapacity = "閿�鍞",
- MappingCustomerOrder::GetNewSupplyBySeason( productCodeList, macroPlan, year.YearNo(), seasonNo ) ,
- Product_MP::GetNewSupplyBySeason( productCodeList, macroPlan, year.YearNo(), seasonNo )
- )
- );
- }
- }
- }
- }
- if ( byBusinessTypeOrByOrgCode = "闈㈡澘鍩哄湴" and groupBy = "鏈�" ) {
- traverse( months, Elements, month ) {
- info( "process month start : " + [String]month.MonthNo() );
- monthNoString := ifexpr( month.MonthNo() <= 9, "0" + [String]month.MonthNo(), [String]month.MonthNo() );
- traverse( placeOfProductionOfArrayList, Elements, placeOfProductionOfArray ) {
- productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByPlaceOfProductionOfArray( rows, placeOfProductionOfArray );
- this.CapacityAndSaleBudgeChartElement( relnew,
- TimeStringAndScenarioName := [String]year.YearNo() + "骞�-绗�" + monthNoString + "鏈�-鐩爣",
- BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
- Quantity := ifexpr( saleOrCapacity = "閿�鍞",
- MappingAnnualBudget::GetSheetByMonth( productCodeList, mpSync, year.YearNo(), month.MonthNo() ),
- MappingCapacityAndSaleBudge::GetSheetByMonth( productCodeList, mpSync, year.YearNo(), month.MonthNo() ) )
- );
- // S&OP
- traverse( macroPlans, Elements, macroPlan ) {
- this.CapacityAndSaleBudgeChartElement( relnew,
- TimeStringAndScenarioName := [String]year.YearNo() + "骞�-绗�" + monthNoString + "鏈�-" + macroPlan.ScenarioName(),
- BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
- Quantity := ifexpr( saleOrCapacity = "閿�鍞",
- MappingCustomerOrder::GetNewSupplyByMonth( productCodeList, macroPlan, year.YearNo(), month.MonthNo() ),
- Product_MP::GetNewSupplyByMonth( productCodeList, macroPlan, year.YearNo(), month.MonthNo() )
- )
- );
- }
- }
- info( "process month end : " + [String]month.MonthNo() );
- }
- }
- if( byBusinessTypeOrByOrgCode = "浜嬩笟閮�" and groupBy = "骞�" ) {
- // 鐩爣
- traverse( businessTypeList, Elements, businessType ) {
- productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByBusinessType( rows, businessType );
- this.CapacityAndSaleBudgeChartElement( relnew,
- TimeStringAndScenarioName := [String]year.YearNo() + "骞�-鐩爣",
- BusinessTypeOrPlaceOfProductionOfArray := businessType,
- Quantity := ifexpr( saleOrCapacity = "閿�鍞",
- MappingAnnualBudget::GetSheetByYear( productCodeList, mpSync, year.YearNo() ),
- MappingCapacityAndSaleBudge::GetSheetByYear( productCodeList, mpSync, year.YearNo() ) )
- );
- // S&OP
- traverse( macroPlans, Elements, macroPlan ) {
- this.CapacityAndSaleBudgeChartElement( relnew,
- TimeStringAndScenarioName := [String]year.YearNo() + "骞�-" + macroPlan.ScenarioName(),
- BusinessTypeOrPlaceOfProductionOfArray := businessType,
- Quantity := ifexpr( saleOrCapacity = "閿�鍞",
- MappingCustomerOrder::GetNewSupplyByYear( productCodeList, macroPlan, year.YearNo() ) ,
- Product_MP::GetNewSupplyByYear( productCodeList, macroPlan, year.YearNo() )
- )
- );
- }
- }
- }
- if ( byBusinessTypeOrByOrgCode = "浜嬩笟閮�" and groupBy = "鍗婂勾" ) {
- for( halfNo := 1; halfNo <= 2; halfNo := halfNo + 1 ) {
- traverse( businessTypeList, Elements, businessType ) {
- productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByBusinessType( rows, businessType );
- this.CapacityAndSaleBudgeChartElement( relnew,
- TimeStringAndScenarioName := [String]year.YearNo() + "骞�-" + ifexpr( halfNo = 1, "涓�", "涓�" ) + "鍗婂勾-鐩爣",
- BusinessTypeOrPlaceOfProductionOfArray := businessType,
- Quantity := ifexpr( saleOrCapacity = "閿�鍞",
- MappingAnnualBudget::GetSheetByHalfYear( productCodeList, mpSync, year.YearNo(), halfNo ),
- MappingCapacityAndSaleBudge::GetSheetByHalfYear( productCodeList, mpSync, year.YearNo(), halfNo ) )
- );
- // S&OP
- traverse( macroPlans, Elements, macroPlan ) {
- this.CapacityAndSaleBudgeChartElement( relnew,
- TimeStringAndScenarioName := [String]year.YearNo() + "骞�-" + ifexpr( halfNo = 1, "涓�", "涓�" ) + "鍗婂勾-" + macroPlan.ScenarioName(),
- BusinessTypeOrPlaceOfProductionOfArray := businessType,
- Quantity := ifexpr( saleOrCapacity = "閿�鍞",
- MappingCustomerOrder::GetNewSupplyByHalfYear( productCodeList, macroPlan, year.YearNo(), halfNo ) ,
- Product_MP::GetNewSupplyByHalfYear( productCodeList, macroPlan, year.YearNo(), halfNo )
- )
- );
- }
- }
- }
- }
- if ( byBusinessTypeOrByOrgCode = "浜嬩笟閮�" and groupBy = "瀛e害" ) {
- for( seasonNo := 1; seasonNo <= 4; seasonNo := seasonNo + 1 ) {
- info( "process season start : " + [String]seasonNo );
- traverse( businessTypeList, Elements, businessType ) {
- productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByBusinessType( rows, businessType );
- this.CapacityAndSaleBudgeChartElement( relnew,
- TimeStringAndScenarioName := [String]year.YearNo() + "骞�-绗�" + [String]seasonNo + "瀛e害-鐩爣",
- BusinessTypeOrPlaceOfProductionOfArray := businessType,
- Quantity := ifexpr( saleOrCapacity = "閿�鍞",
- MappingAnnualBudget::GetSheetBySeason( productCodeList, mpSync, year.YearNo(), seasonNo ),
- MappingCapacityAndSaleBudge::GetSheetBySeason( productCodeList, mpSync, year.YearNo(), seasonNo ) )
- );
- // S&OP
- traverse( macroPlans, Elements, macroPlan ) {
- this.CapacityAndSaleBudgeChartElement( relnew,
- TimeStringAndScenarioName := [String]year.YearNo() + "骞�-绗�" + [String]seasonNo + "瀛e害-" + macroPlan.ScenarioName(),
- BusinessTypeOrPlaceOfProductionOfArray := businessType,
- Quantity := ifexpr( saleOrCapacity = "閿�鍞",
- MappingCustomerOrder::GetNewSupplyBySeason( productCodeList, macroPlan, year.YearNo(), seasonNo ),
- Product_MP::GetNewSupplyBySeason( productCodeList, macroPlan, year.YearNo(), seasonNo )
- )
- );
- }
- }
- info( "process season end : " + [String]seasonNo );
- }
- }
- if ( byBusinessTypeOrByOrgCode = "浜嬩笟閮�" and groupBy = "鏈�" ) {
- traverse( months, Elements, month ) {
- info( "process month start : " + [String]month.MonthNo() );
- monthNoString := ifexpr( month.MonthNo() <= 9, "0" + [String]month.MonthNo(), [String]month.MonthNo() );
- traverse( businessTypeList, Elements, businessType ) {
- productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByBusinessType( rows, businessType );
- this.CapacityAndSaleBudgeChartElement( relnew,
- TimeStringAndScenarioName := [String]year.YearNo() + "骞�-绗�" + monthNoString + "鏈�-鐩爣",
- BusinessTypeOrPlaceOfProductionOfArray := businessType,
- Quantity := ifexpr( saleOrCapacity = "閿�鍞",
- MappingCapacityAndSaleBudge::GetSheetByMonth( productCodeList, mpSync, year.YearNo(), month.MonthNo() ),
- MappingAnnualBudget::GetSheetByMonth( productCodeList, mpSync, year.YearNo(), month.MonthNo() ) )
- );
- // S&OP
- traverse( macroPlans, Elements, macroPlan ) {
- this.CapacityAndSaleBudgeChartElement( relnew,
- TimeStringAndScenarioName := [String]year.YearNo() + "骞�-绗�" + monthNoString + "鏈�-" + macroPlan.ScenarioName(),
- BusinessTypeOrPlaceOfProductionOfArray := businessType,
- Quantity := ifexpr( saleOrCapacity = "閿�鍞",
- MappingCustomerOrder::GetNewSupplyByMonth( productCodeList, macroPlan, year.YearNo(), month.MonthNo() ) ,
- Product_MP::GetNewSupplyByMonth( productCodeList, macroPlan, year.YearNo(), month.MonthNo() )
- )
- );
- }
- }
- info( "process month end : " + [String]month.MonthNo() );
- }
- }
- info( "process year end : " + [String]year.YearNo() )
- }
- //info( "CapacityAndSaleBudgeChartElement : " + [String]selectset( this, CapacityAndSaleBudgeChartElement, item, true ).Size() );
- //traverse( this, CapacityAndSaleBudgeChartRow, row ) {
- // info( "==鈫�==" );
- // info( row.BusinessType() );
- // info( row.PlaceOfProductionOfArray() );
- // elements := selectset( row, CapacityAndSaleBudgeChartRowProduct, cell, true );
- // info( elements.Size() );
- // info( row.GetProductCodes().Concatenate( " | " ) );
- // info( "==鈫�==" );
- //}
- *]
-}
diff --git a/_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeCompare.qbl b/_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeCompare.qbl
deleted file mode 100644
index d5d4352..0000000
--- a/_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeCompare.qbl
+++ /dev/null
@@ -1,212 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Method CapacityAndSaleBudgeCompare (
- MacroPlans macroPlans,
- CapacityAndSaleBudgeFilterItems items,
- CapacityAndSaleBudgeFilterYears years,
- CapacityAndSaleBudgeFilterMonths months,
- MPSync mpSync,
- GlobalOTDTable otdTable,
- MacroPlan mappingParent
-)
-{
- Description: 'todo : mappingParent鏀逛负mpSync, random鍒犱簡'
- TextBody:
- [*
- // yypsybs Sep-18-2023 (created)
- // ====涓嶉�夋椂榛樿鍏ㄩ��====
- if( years.Size() = 0 ) {
- years := selectsortedset( this, CapacityAndSaleBudgeFilterYear, item, item.YearNo() );
- }
- if( months.Size() = 0 ) {
- months := selectsortedset( this, CapacityAndSaleBudgeFilterMonth, item, item.MonthNo() );
- }
- traverse( macroPlans, Elements, item ) {
- info( "scenario : " + item.ScenarioName() );
- }
- traverse( items, Elements, item ) {
- info( "item : " + item.ItemName() );
- }
- traverse( years, Elements, item ) {
- info( "year : " + [String]item.YearNo() );
- }
- traverse( months, Elements, item ) {
- info( "month : " + [String]item.MonthNo() );
- }
- // ====娓呯悊鏃ф暟鎹�====
- this.CapacityAndSaleBudgeCompareItemRow( relflush );
- this.CapacityAndSaleBudgeCompareItemColumn( relflush );
- // ====姹囨�绘墍鏈夊嚭鐜扮殑浜у搧====
- historyData := selectset( mpSync, MappingCapacityAndSaleBudge, item, true );
- info( "historyData : " + [String]historyData.Size() )
- traverse( historyData, Elements, one ) {
- productCode := one.ProductCode();
- MappingBOM::CreateTestData( mappingParent, "浜嬩笟閮�" + [String](productCode.Length() mod 3), [String](productCode.Length() mod 4), productCode );
- boms := selectset( mappingParent, MappingBOM, bom, bom.ProductCode() = productCode );
- if( boms.Size() > 0 ) {
- bom := boms.First();
- businessType := bom.BusinessType();
- placeOfProductionOfArray := one.PlaceOfProductionOfArray();
- // 鐩稿悓闈㈡澘鍩哄湴鍜屼簨涓氶儴鐨勬斁涓�琛�
- row := CapacityAndSaleBudgeCompareItemRow::CreateIfNotExist( this, businessType, placeOfProductionOfArray );
- // 璁板綍姣忚鍖呭惈鍝簺product
- CapacityAndSaleBudgeCompareItemRowProduct::CreateIfNotExist( row, productCode );
- } else {
- info( "no boms for product : " + productCode );
- }
- }
- info( "CapacityAndSaleBudgeCompareItemRow : " + [String]selectset( this, CapacityAndSaleBudgeCompareItemRow, item, true ).Size() );
- // ====浠庡乏鍚戝彸鐢熸垚鍒楀ご涓庡唴瀹�====
- // 浜嬩笟閮紝缁勭粐
- info( "dealing businessType and placeOfProductionOfArray" )
- columnBusinessType := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "浜嬩笟閮�" );
- columnPlaceOfProductionOfArray := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "闈㈡澘鍩哄湴" );
- traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
- cell := columnBusinessType.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := row.BusinessType() );
- cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
- cell := columnPlaceOfProductionOfArray.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := row.PlaceOfProductionOfArray() );
- cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
- }
- // 闈㈡澘鍒嗛厤閲� - 骞村害棰勭畻 (sheets)
- // 鏍煎紡锛� 闈㈡澘鍒嗛厤閲� - 骞� - 鏈堬紙1-12 & total锛� - 骞村害棰勭畻/scenarioName
- info( "dealing 闈㈡澘鍒嗛厤閲�" )
- if( CapacityAndSaleBudgeFilterItem::Contains( items, "闈㈡澘鍒嗛厤閲�" ) ) {
- traverse( years, Elements, year ) {
- info( "闈㈡澘鍒嗛厤閲�" + [String]year.YearNo() + "骞�" );
- // 鍘嗗彶鏁版嵁
- info( "闈㈡澘鍒嗛厤閲�" + [String]year.YearNo() + "骞村巻鍙叉暟鎹�" );
- traverse( months, Elements, month ) {
- columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "闈㈡澘鍒嗛厤閲�-" + [String]year.YearNo() + "骞�-" + [String]month.MonthNo() + "鏈�-骞村害棰勭畻" );
- traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
- cellReal := MappingCapacityAndSaleBudge::GetSheetByMonth( row.GetProductCodes(), mpSync, DateTime::Now().Year(), month.MonthNo() );
- cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
- cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
- }
- }
- columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "闈㈡澘鍒嗛厤閲�-" + [String]year.YearNo() + "骞�-total-骞村害棰勭畻" );
- traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
- cellReal := MappingCapacityAndSaleBudge::GetSheetByYear( row.GetProductCodes(), mpSync, year.YearNo() );
- cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
- cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
- }
- info( "闈㈡澘鍒嗛厤閲�" + [String]year.YearNo() + "骞碨&OP鏁版嵁" );
- // S&OP鏁版嵁
- traverse( macroPlans, Elements, macroPlan ) {
- traverse( months, Elements, month ) {
- columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this,
- "闈㈡澘鍒嗛厤閲�-" + [String]year.YearNo() + "骞�-" + [String]month.MonthNo() + "鏈�-" + macroPlan.ScenarioName() );
- traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
- cellReal := Product_MP::GetNewSupplyByMonth( row.GetProductCodes(), macroPlan, year.YearNo(), month.MonthNo() );
- cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
- cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
- }
- }
- columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this,
- "闈㈡澘鍒嗛厤閲�-" + [String]year.YearNo() + "骞�-total-" + macroPlan.ScenarioName() );
- traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
- cellReal := Product_MP::GetNewSupplyByYear( row.GetProductCodes(), macroPlan, year.YearNo() );
- cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
- cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
- }
- }
- }
- }
- // 骞村害閿�鍞
- info( "dealing 閿�鍞" )
- if( CapacityAndSaleBudgeFilterItem::Contains( items, "閿�鍞" ) ) {
- traverse( years, Elements, year ) {
- info( "閿�鍞" + [String]year.YearNo() + "骞�" );
- // 鍘嗗彶鏁版嵁
- info( "閿�鍞" + [String]year.YearNo() + "骞村巻鍙叉暟鎹�" );
- traverse( months, Elements, month ) {
- columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "瀵瑰閿�鍞-" + [String]year.YearNo() + "骞�-" + [String]month.MonthNo() + "鏈�-骞村害棰勭畻" );
- traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
- cellReal := MappingCapacityAndSaleBudge::GetSaleByMonth( row.GetProductCodes(), mpSync, year.YearNo(), month.MonthNo() );
- cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
- cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
- }
- }
- columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "瀵瑰閿�鍞-" + [String]year.YearNo() + "骞�-骞村害棰勭畻" );
- traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
- cellReal := MappingCapacityAndSaleBudge::GetSaleByYear( row.GetProductCodes(), mpSync, year.YearNo() );
- cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
- cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
- }
- info( "閿�鍞" + [String]year.YearNo() + "骞村巻鍙叉暟鎹甋&OP鏁版嵁" );
- // S&OP鏁版嵁
- traverse( macroPlans, Elements, macroPlan ) {
- traverse( months, Elements, month ) {
- columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "瀵瑰閿�鍞-" + [String]year.YearNo() + "骞�-" + [String]month.MonthNo() + "鏈�-" + macroPlan.ScenarioName() );
- traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
- cellReal := MappingAnnualBudget::GetSaleByMonth( row.GetProductCodes(), mpSync, year.YearNo(), month.MonthNo() );
- cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
- cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
- }
- }
- columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "瀵瑰閿�鍞-" + [String]year.YearNo() + "骞�-total-" + macroPlan.ScenarioName() );
- traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
- // QID 23
- cellReal := MappingAnnualBudget::GetSaleByYear( row.GetProductCodes(), mpSync, year.YearNo() );
- cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
- cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
- }
- }
- }
- }
- // 澶у紶鐩堝埄棰�
- info( "dealing 澶у紶鐩堝埄棰�" )
- traverse( years, Elements, year ) {
- // 鍘嗗彶鏁版嵁
- columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "澶у紶鐩堝埄棰�-" + [String]year.YearNo() + "骞�-骞村害棰勭畻" );
- traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
- // todo
- // QID 23
- cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) );
- cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
- }
- // S&OP鏁版嵁
- traverse( macroPlans, Elements, macroPlan ) {
- columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "澶у紶鐩堝埄棰�-" + [String]year.YearNo() + "骞�-" + macroPlan.ScenarioName() );
- traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
- cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) );
- cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
- }
- }
- }
- // 浜у搧鐩堝埄棰�
- info( "dealing 浜у搧鐩堝埄棰�" )
- traverse( years, Elements, year ) {
- // 鍘嗗彶鏁版嵁
- columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "浜у搧鐩堝埄棰�-" + [String]year.YearNo() + "骞�-骞村害棰勭畻" );
- traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
- // todo
- cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) );
- cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
- }
- // S&OP鏁版嵁
- traverse( macroPlans, Elements, macroPlan ) {
- columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "浜у搧鐩堝埄棰�-" + [String]year.YearNo() + "骞�-" + macroPlan.ScenarioName() );
- traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
- // todo
- cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) );
- cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
- }
- }
- }
-
- // 璁剧疆rowNo鍜宑olumnNo
- info( "set rowNo and columnNo" );
- rowNo := 1;
- rowSorted := selectsortedset( this, CapacityAndSaleBudgeCompareItemRow, item, item.PlaceOfProductionOfArray() + "_" + item.BusinessType() );
- traverse( rowSorted, Elements, item ) {
- item.RowNo( rowNo );
- rowNo := rowNo + 1;
- }
- columnNo := 1;
- traverse( this, CapacityAndSaleBudgeCompareItemColumn, item ) {
- item.ColumnNo( columnNo );
- columnNo := columnNo + 1;
- }
- info( "done" );
- *]
-}
diff --git a/_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeCompareExport.qbl b/_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeCompareExport.qbl
deleted file mode 100644
index 44dab2e..0000000
--- a/_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeCompareExport.qbl
+++ /dev/null
@@ -1,42 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Method CapacityAndSaleBudgeCompareExport () as BinaryValue
-{
- Description: '瀵煎嚭姣旇緝缁撴灉'
- TextBody:
- [*
- // yypsybs Sep-22-2023 (created)
- tableName := "骞村害浜ч攢棰勭畻瀵规瘮";
-
- text:= '<?xml version="1.0" encoding="utf-8" standalone="yes"?><table><name>' + tableName + '</name>';
-
- // 澶勭悊column <column><name>鐗╂枡缂栫爜</name><type>String</type></column>
- columnXml := ""
- traverse( this, CapacityAndSaleBudgeCompareItemColumn, column ) {
- info( "columnName : " + column.ColumnName() );
- columnXml := columnXml + "<column><name>" + column.ColumnName() + "</name><type>String</type></column>";
- }
- text := text + columnXml + "</table>"
-
- // 濉炲唴瀹�
- xmlDOMImplementation := XMLDOMImplementation::Create();
- xmlDOMDocument := xmlDOMImplementation.CreateDocumentFromString( text );
- tableElement:= xmlDOMDocument.GetElementByTagName( "table", 0 );
- rows := selectsortedset( this, CapacityAndSaleBudgeCompareItemRow, row, row.PlaceOfProductionOfArray() + "_" + row.BusinessType() );
- traverse ( rows, Elements, row ) {
- info( "rowNo : " + [String]row.RowNo() );
- traverse( row, CapacityAndSaleBudgeCompareItemCell, cell ) {
- ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, cell.CellContent(), cell.CapacityAndSaleBudgeCompareItemColumn().ColumnName() );
- }
- }
- xmlDOMSerializer := xmlDOMImplementation.CreateSerializer();
- xmlTableString := xmlDOMSerializer.WriteToString( xmlDOMDocument );
-
- tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlTableString ) );
- tableGroupHandle := TableGroupHandle::Create( tableName );
- tableGroupHandle.Add( tableHandle );
- tableBinaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true );
-
- return tableBinaryData.AsBinaryValue();
- *]
-}
diff --git a/_Main/BL/Type_ScenarioManager/Method_ImportExcels_Tianma.qbl b/_Main/BL/Type_ScenarioManager/Method_ImportExcels_Tianma.qbl
new file mode 100644
index 0000000..2c38e3e
--- /dev/null
+++ b/_Main/BL/Type_ScenarioManager/Method_ImportExcels_Tianma.qbl
@@ -0,0 +1,29 @@
+Quintiq file version 2.0
+#parent: #root
+Method ImportExcels_Tianma (
+ Strings userinputvalues,
+ BinaryValues mpBinaryValues_i,
+ Strings mpBrokers_i
+)
+{
+ Description: 'Import from Excel, used by web app.'
+ TextBody:
+ [*
+ // @userinputvalues - Array of data group that user imports
+ // @mpBinaryValues_i - Array of uploaded Excels in binary value. Binary at position x matches @mpBrokers_i at same position
+ // @mpBrokers_i - Array of uploaded Excels' broker name
+
+ is3DDrive := false;
+
+ // Check if each data group has files uploaded by user for import
+ this.Import( LibSOPImpExp_ExportExcel::IsDataSourceIncluded_Tianma( userinputvalues, Translations::MPSync_ObjectGroup_Strategies() ),
+ LibSOPImpExp_ExportExcel::IsDataSourceIncluded_Tianma( userinputvalues, Translations::MPSync_ObjectGroup_Accounts() ),
+ LibSOPImpExp_ExportExcel::IsDataSourceIncluded_Tianma( userinputvalues, Translations::MPSync_ObjectGroup_Bookmarks() ),
+ LibSOPImpExp_ExportExcel::IsDataSourceIncluded_Tianma( userinputvalues, Translations::MPSync_ObjectGroup_KPISetting() ),
+ mpBinaryValues_i.Copy(),
+ mpBrokers_i,
+ is3DDrive,
+ construct( FileItems ), /* 3ddrive, ignore */
+ construct( Strings ) /* 3ddrive, ignore */ );
+ *]
+}
diff --git a/_Main/BL/Type_ScenarioManager/StaticMethod_AvailableBusinessTypes.qbl b/_Main/BL/Type_ScenarioManager/StaticMethod_AvailableBusinessTypes.qbl
deleted file mode 100644
index 64f7bc4..0000000
--- a/_Main/BL/Type_ScenarioManager/StaticMethod_AvailableBusinessTypes.qbl
+++ /dev/null
@@ -1,18 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-StaticMethod AvailableBusinessTypes () as String
-{
- TextBody:
- [*
- // yypsybs Aug-23-2023 (created)
- strings := "闆嗗洟闈㈡澘;涓撲笟鏄剧ず浜嬩笟閮�;澶栧崠CELL;闈炴樉;杩愬姩鍋ュ悍;杩愬姩鍋ュ悍浜嬩笟閮�;鎵嬫満浜嬩笟閮�;鐗圭鏄剧ず;姹借溅鐢靛瓙浜嬩笟閮�;杞﹁浇鏄剧ず浜嬩笟閮�;IT浜嬩笟閮�;";
-
- //table := KB_BusinessTypesTable;
-
- if( strings.EndsWith( ";" ) ) {
- strings := strings.SubString( 0, strings.Length() - 1 );
- }
-
- return strings;
- *]
-}
diff --git a/_Main/BL/Type_ScenarioManager/StaticMethod_AvailableScenarioNames.qbl b/_Main/BL/Type_ScenarioManager/StaticMethod_AvailableScenarioNames.qbl
new file mode 100644
index 0000000..4956f3d
--- /dev/null
+++ b/_Main/BL/Type_ScenarioManager/StaticMethod_AvailableScenarioNames.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod AvailableScenarioNames (
+ GlobalOTDTable globalOTDTable
+) as String
+{
+ TextBody:
+ [*
+ // yypsybs Aug-23-2023 (created)
+ //strings := "闆嗗洟闈㈡澘;涓撲笟鏄剧ず浜嬩笟閮�;澶栧崠CELL;闈炴樉;杩愬姩鍋ュ悍;杩愬姩鍋ュ悍浜嬩笟閮�;鎵嬫満浜嬩笟閮�;鐗圭鏄剧ず;姹借溅鐢靛瓙浜嬩笟閮�;杞﹁浇鏄剧ず浜嬩笟閮�;IT浜嬩笟閮�;";
+
+ //table := KB_BusinessTypesTable;
+ //
+ //if( strings.EndsWith( ";" ) ) {
+ // strings := strings.SubString( 0, strings.Length() - 1 );
+ //}
+
+ // 浣跨敤businessType鑾峰彇鏁版嵁
+ strings := BusinessType::GetScenarioNamesStr( globalOTDTable);
+
+ return strings;
+ *]
+}
diff --git a/_Main/BL/Type_YuxTest/Attribute_TestBoolean.qbl b/_Main/BL/Type_YuxTest/Attribute_TestBoolean.qbl
new file mode 100644
index 0000000..7a1e8b7
--- /dev/null
+++ b/_Main/BL/Type_YuxTest/Attribute_TestBoolean.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute TestBoolean
+{
+ #keys: '3[414384.0.915854691][414384.0.915854690][414384.0.915854692]'
+ ValueType: Boolean
+}
diff --git a/_Main/BL/Type_YuxTest/Attribute_TestDate.qbl b/_Main/BL/Type_YuxTest/Attribute_TestDate.qbl
new file mode 100644
index 0000000..f96d5cd
--- /dev/null
+++ b/_Main/BL/Type_YuxTest/Attribute_TestDate.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute TestDate
+{
+ #keys: '3[414384.0.915854704][414384.0.915854703][414384.0.915854705]'
+ ValueType: Date
+}
diff --git a/_Main/BL/Type_YuxTest/Attribute_TestDateTime.qbl b/_Main/BL/Type_YuxTest/Attribute_TestDateTime.qbl
new file mode 100644
index 0000000..4ebf668
--- /dev/null
+++ b/_Main/BL/Type_YuxTest/Attribute_TestDateTime.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute TestDateTime
+{
+ #keys: '3[414384.0.915854714][414384.0.915854713][414384.0.915854715]'
+ ValueType: DateTime
+}
diff --git a/_Main/BL/Type_YuxTest/Attribute_TestNumber.qbl b/_Main/BL/Type_YuxTest/Attribute_TestNumber.qbl
new file mode 100644
index 0000000..95e5da0
--- /dev/null
+++ b/_Main/BL/Type_YuxTest/Attribute_TestNumber.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute TestNumber
+{
+ #keys: '3[414384.0.915854681][414384.0.915854680][414384.0.915854682]'
+ ValueType: Number
+}
diff --git a/_Main/BL/Type_YuxTest/Attribute_TestReal.qbl b/_Main/BL/Type_YuxTest/Attribute_TestReal.qbl
new file mode 100644
index 0000000..1852888
--- /dev/null
+++ b/_Main/BL/Type_YuxTest/Attribute_TestReal.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute TestReal
+{
+ #keys: '3[414384.0.915854668][414384.0.915854667][414384.0.915854669]'
+ ValueType: Real
+}
diff --git a/_Main/BL/Type_YuxTest/Attribute_TestString.qbl b/_Main/BL/Type_YuxTest/Attribute_TestString.qbl
new file mode 100644
index 0000000..5965156
--- /dev/null
+++ b/_Main/BL/Type_YuxTest/Attribute_TestString.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute TestString
+{
+ #keys: '3[414384.0.915854658][414384.0.915854657][414384.0.915854659]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_YuxTest/StaticMethod_Export.qbl b/_Main/BL/Type_YuxTest/StaticMethod_Export.qbl
new file mode 100644
index 0000000..d6f5aaf
--- /dev/null
+++ b/_Main/BL/Type_YuxTest/StaticMethod_Export.qbl
@@ -0,0 +1,85 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod Export (
+ YuxTests toExportList
+) as String
+{
+ TextBody:
+ [*
+ // generate by generate_export_method.py
+ xmlTemplate := '<?xml version="1.0" encoding="UTF-16"?>
+ <table>
+ <name>YuxTest</name>
+ ';
+ convDateToString := DateToString::StandardConverter();
+ convDateToString.SetCustomConversion();
+ convDateToString.CustomFormatString( 'yyyy-MM-dd' );
+ convDateTimeToString := DateTimeToString::StandardConverter();
+ convDateTimeToString.SetCustomConversion();
+ convDateTimeToString.CustomFormatString( 'yyyy-MM-dd HH:mm:ss' );
+ info( "export start" );
+ //---------------------------------------------------------------------------------------------
+ columnStr := "<column><name>娴嬭瘯鏁板瓧</name><type>String</type>";
+ traverse( toExportList, Elements, toExportItem ) {
+ testNumber := toExportItem.TestNumber();
+ cellStr := '<cell value="' + [String]testNumber + '"/>';
+ columnStr := columnStr + cellStr;
+ }
+ columnStr := columnStr + "</column>";
+ xmlTemplate := xmlTemplate + columnStr;
+ //---------------------------------------------------------------------------------------------
+ columnStr := "<column><name>娴嬭瘯灏忔暟</name><type>String</type>";
+ traverse( toExportList, Elements, toExportItem ) {
+ testReal := toExportItem.TestReal();
+ cellStr := '<cell value="' + [String]testReal + '"/>';
+ columnStr := columnStr + cellStr;
+ }
+ columnStr := columnStr + "</column>";
+ xmlTemplate := xmlTemplate + columnStr;
+ //---------------------------------------------------------------------------------------------
+ columnStr := "<column><name>娴嬭瘯瀛楃涓�</name><type>String</type>";
+ traverse( toExportList, Elements, toExportItem ) {
+ testString := toExportItem.TestString();
+ cellStr := '<cell value="' + testString + '"/>';
+ columnStr := columnStr + cellStr;
+ }
+ columnStr := columnStr + "</column>";
+ xmlTemplate := xmlTemplate + columnStr;
+ //---------------------------------------------------------------------------------------------
+ columnStr := "<column><name>娴嬭瘯甯冨皵</name><type>String</type>";
+ traverse( toExportList, Elements, toExportItem ) {
+ testBoolean := toExportItem.TestBoolean();
+ cellStr := '<cell value="' + [String]testBoolean + '"/>';
+ columnStr := columnStr + cellStr;
+ }
+ columnStr := columnStr + "</column>";
+ xmlTemplate := xmlTemplate + columnStr;
+ //---------------------------------------------------------------------------------------------
+ columnStr := "<column><name>娴嬭瘯鏃ユ湡</name><type>String</type>";
+ traverse( toExportList, Elements, toExportItem ) {
+ testDate := toExportItem.TestDate();
+ cellStr := '<cell value="' + ifexpr( testDate = Date::MinDate(), "", convDateToString.Convert( testDate )) + '"/>';
+ columnStr := columnStr + cellStr;
+ }
+ columnStr := columnStr + "</column>";
+ xmlTemplate := xmlTemplate + columnStr;
+ //---------------------------------------------------------------------------------------------
+ columnStr := "<column><name>娴嬭瘯鏃ユ湡鏃堕棿</name><type>String</type>";
+ traverse( toExportList, Elements, toExportItem ) {
+ testDateTime := toExportItem.TestDateTime();
+ cellStr := '<cell value="' + ifexpr( testDateTime = DateTime::MinDateTime(), "", convDateTimeToString.Convert( testDateTime )) + '"/>';
+ columnStr := columnStr + cellStr;
+ }
+ columnStr := columnStr + "</column>";
+ xmlTemplate := xmlTemplate + columnStr;
+ //---------------------------------------------------------------------------------------------
+ xmlTemplate := xmlTemplate + "</table>";
+ tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlTemplate ) );
+ XLS::SaveTable( tableHandle, OS::TempPath() + "YuxTest.xlsx" );
+ file := OSFile::Construct();
+ file.Open( OS::TempPath() + "YuxTest.xlsx", "Read", true );
+ data := file.ReadBinary()
+ info( "export end" );
+ return data.AsBase64EncodedString();
+ *]
+}
diff --git "a/_Main/BL/Type_YuxTest/StaticMethod_ExportTest\043887.qbl" "b/_Main/BL/Type_YuxTest/StaticMethod_ExportTest\043887.qbl"
new file mode 100644
index 0000000..f77f7ce
--- /dev/null
+++ "b/_Main/BL/Type_YuxTest/StaticMethod_ExportTest\043887.qbl"
@@ -0,0 +1,26 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod ExportTest (
+ MPSync parent
+) as String
+{
+ TextBody:
+ [*
+ // yypsybs Sep-25-2023 (created)
+ list := selectset( parent, YuxTest, item, true );
+ if( list.Size() = 0 ) {
+ for( i := 0; i < 100; i := i + 1 ) {
+ parent.YuxTest( relnew,
+ TestBoolean := ifexpr( Number::Random( 0, 1 ) = 1, true, false ),
+ TestDate := ifexpr( Number::Random( 0, 1 ) = 1, Date::MinDate(), Date::ActualDate() ),
+ TestDateTime := ifexpr( Number::Random( 0, 1 ) = 1,DateTime::MinDateTime(), DateTime::ActualTime() ),
+ TestNumber := Number::Random( 100, 200 ),
+ TestReal := Real::Random( 10.0, 20.0 ),
+ TestString := [String]Number::Random( 1000, 2000 )
+ );
+ }
+ }
+ list := selectset( parent, YuxTest, item, true );
+ return YuxTest::Export( list );
+ *]
+}
diff --git a/_Main/BL/Type_YuxTest/_ROOT_Type_YuxTest.qbl b/_Main/BL/Type_YuxTest/_ROOT_Type_YuxTest.qbl
new file mode 100644
index 0000000..13ff536
--- /dev/null
+++ b/_Main/BL/Type_YuxTest/_ROOT_Type_YuxTest.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type YuxTest
+{
+ #keys: '5[414384.0.915854638][414384.0.915854636][0.0.0][414384.0.915854637][414384.0.915854639]'
+ BaseType: Object
+ StructuredName: 'YuxTests'
+}
diff --git a/_Main/Sys/ImgAttr/Global_BrokerExecuteLog.dme b/_Main/Sys/ImgAttr/Global_BrokerExecuteLog.dme
new file mode 100644
index 0000000..b3263a6
--- /dev/null
+++ b/_Main/Sys/ImgAttr/Global_BrokerExecuteLog.dme
@@ -0,0 +1,25 @@
+Quintiq file version 2.0
+#parent: #root
+TypeDataInterface Global_BrokerExecuteLog
+{
+ TypeKey: '[414702.0.265587041]'
+ ImageDataMember ImageExecutionStatus
+ {
+ #keys: '1[414702.0.496052017]'
+ ImageSpecifications:
+ [
+ ImageDataMemberImageSpecification
+ {
+ Image: 'MEDIA_PLAY_GREEN'
+ Quill: 'object.ExecutionStatus() = "InOperation"'
+ Value: 'InOperation'
+ }
+ ImageDataMemberImageSpecification
+ {
+ Image: 'CHECK'
+ Quill: 'object.ExecutionStatus() = "Complete"'
+ Value: 'ImageExecutionStatus2'
+ }
+ ]
+ }
+}
diff --git a/_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Component_mbMainMenu.def b/_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Component_mbMainMenu.def
index 7aa83c9..4ad9e84 100644
--- a/_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Component_mbMainMenu.def
+++ b/_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Component_mbMainMenu.def
@@ -13,6 +13,10 @@
[
Component MenuSpecial #extension
{
+ Children:
+ [
+ Component MenuGlobalOTDTableTest { #keys: '[157968.0.1170224128]' BaseType: 'Menu' Properties: [ Image: 'DUDE2' Text: 'GlobalOTDTable Test' ] }
+ ]
Properties:
[
ModeledStringList ChildOrdering
@@ -30,6 +34,7 @@
c: MenuTest
c: MenuScenarioManagerTest
c: MenuMPDomainHandlerTest
+ c: MenuGlobalOTDTableTest
c: MenuRemoveHistory
c: Menu46
c: MenuRefresh
diff --git a/_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Response_TIANMA_JITUAN_mbMainMenu_MenuGlobalOTDTableTest_OnClick.def b/_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Response_TIANMA_JITUAN_mbMainMenu_MenuGlobalOTDTableTest_OnClick.def
new file mode 100644
index 0000000..9596987
--- /dev/null
+++ b/_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Response_TIANMA_JITUAN_mbMainMenu_MenuGlobalOTDTableTest_OnClick.def
@@ -0,0 +1,12 @@
+Quintiq file version 2.0
+#parent: mbMainMenu/MenuGlobalOTDTableTest
+Response OnClick () id:Response_TIANMA_JITUAN_mbMainMenu_MenuGlobalOTDTableTest_OnClick
+{
+ #keys: '[157968.0.1170224134]'
+ Body:
+ [*
+ // Run GlobalOTDTable test method
+ GlobalOTDTable.Test();
+ *]
+ DefinitionID: 'Responsedef_Menu_OnClick'
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupSalesViews\043633.def" "b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupSalesViews\043633.def"
index 82df44f..b9da9db 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupSalesViews\043633.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupSalesViews\043633.def"
@@ -18,5 +18,16 @@
Taborder: 3
]
}
+ Component ButtonPriority
+ {
+ #keys: '[414382.0.587601840]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Image: 'QUEUE'
+ Label: '浼樺厛绾у洜瀛�'
+ Taborder: 4
+ ]
+ }
]
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ContextMenuSalesFillingCapacity.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ContextMenuSalesFillingCapacity.def
index 4e6377b..0aae48c 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ContextMenuSalesFillingCapacity.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ContextMenuSalesFillingCapacity.def
@@ -14,7 +14,7 @@
Image: 'ELEMENT_BLUE'
Taborder: 0
Title: '澶栧崠CELL'
- Tooltip: 'Filling Capacity Scheme List'
+ Tooltip: '澶栧崠CELL'
]
}
Component MenuSalesFillingSchemeDetail
@@ -26,6 +26,7 @@
Image: 'ELEMENT_ORANGE'
Taborder: 1
Title: '濉骇鏂规鍒楄〃'
+ Tooltip: '濉骇鏂规鍒楄〃'
]
}
Component MenuSalesFillingSchemeHistorical
@@ -37,6 +38,7 @@
Image: 'ELEMENT_ORANGE'
Taborder: 2
Title: '濉骇鍘嗗彶璁㈠崟鍒楄〃'
+ Tooltip: '濉骇鍘嗗彶璁㈠崟鍒楄〃'
]
}
]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_abgInterfaceTest.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_abgInterfaceTest.def
new file mode 100644
index 0000000..5941080
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_abgInterfaceTest.def
@@ -0,0 +1,24 @@
+Quintiq file version 2.0
+Component abgInterfaceTest
+{
+ #keys: '[414702.0.457001887]'
+ BaseType: 'WebActionBarGroup'
+ Children:
+ [
+ Component btnInterfaceTest
+ {
+ #keys: '[414702.0.459575623]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Image: 'BEAR'
+ Label: '鎺ュ彛娴嬭瘯'
+ Taborder: 0
+ ]
+ }
+ ]
+ Properties:
+ [
+ Taborder: 5
+ ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_applicationDevelopmentActionBarPageDef\0431.def" "b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_applicationDevelopmentActionBarPageDef\0431.def"
index 42787dc..7966b9e 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_applicationDevelopmentActionBarPageDef\0431.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_applicationDevelopmentActionBarPageDef\0431.def"
@@ -4,5 +4,6 @@
Children:
[
#child: abgTest
+ #child: abgInterfaceTest
]
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ActionBarGroupSalesViews_ButtonPriority_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ActionBarGroupSalesViews_ButtonPriority_OnClick.def
new file mode 100644
index 0000000..feae35c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ActionBarGroupSalesViews_ButtonPriority_OnClick.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: ActionBarGroupSalesViews/ButtonPriority
+Response OnClick () id:Response_TIANMA_JITUAN_ActionBarGroupSalesViews_ButtonPriority_OnClick
+{
+ #keys: '[414382.0.587601951]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ QuillAction
+ {
+ Body:
+ [*
+ ApplicationScope.ViewManager().ResetUserViewById( "PriorityTest",true);
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuSalesFillingCapacity_MenuSalesFillingCapac.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuSalesFillingCapacity_MenuSalesFillingCapac.def
index 3bd914f..73a0e05 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuSalesFillingCapacity_MenuSalesFillingCapac.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuSalesFillingCapacity_MenuSalesFillingCapac.def
@@ -10,9 +10,8 @@
Body:
[*
// Open view
- //ApplicationMacroPlanner.OpenView( 'Filling Capacity Scheme List',ButtonSalesFillingCapacity);
-
- ApplicationMacroPlanner.OpenView( 'FillingCapacityOrder', ButtonSalesFillingCapacity );
+ //ApplicationMacroPlanner.OpenView( 'FillingCapacityOrder', ButtonSalesFillingCapacity );
+ ApplicationScope.ViewManager().ResetUserViewById( "FillingCapacityOrder",true);
*]
GroupServerCalls: false
}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuSalesFillingCapacity_MenuSalesFillingS\043360.def" "b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuSalesFillingCapacity_MenuSalesFillingS\043360.def"
index 2d1e1f4..067c423 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuSalesFillingCapacity_MenuSalesFillingS\043360.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuSalesFillingCapacity_MenuSalesFillingS\043360.def"
@@ -10,8 +10,7 @@
Body:
[*
// Open view
- //ApplicationMacroPlanner.OpenView( "FillingCapacitySchemeList",ButtonSalesFillingCapacity);
- ApplicationMacroPlanner.OpenView( "FillingCapacityOrderHistorical");
+ ApplicationScope.ViewManager().ResetUserViewById( "FillingCapacityOrderHistorical",true);
*]
GroupServerCalls: false
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuSalesFillingCapacity_MenuSalesFillingSchem.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuSalesFillingCapacity_MenuSalesFillingSchem.def
index 0ad306d..22b6bc7 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuSalesFillingCapacity_MenuSalesFillingSchem.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuSalesFillingCapacity_MenuSalesFillingSchem.def
@@ -10,8 +10,7 @@
Body:
[*
// Open view
- //ApplicationMacroPlanner.OpenView( "FillingCapacitySchemeList",ButtonSalesFillingCapacity);
- ApplicationMacroPlanner.OpenView( "FillingCapacitySchemeList");
+ ApplicationScope.ViewManager().ResetUserViewById( "FillingCapacitySchemeList",true);
*]
GroupServerCalls: false
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_abgInterfaceTest_btnInterfaceTest_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_abgInterfaceTest_btnInterfaceTest_OnClick.def
new file mode 100644
index 0000000..d330b41
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_abgInterfaceTest_btnInterfaceTest_OnClick.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: abgInterfaceTest/btnInterfaceTest
+Response OnClick () id:Response_TIANMA_JITUAN_abgInterfaceTest_btnInterfaceTest_OnClick
+{
+ #keys: '[414702.0.459575742]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ ApplicationScope.ViewManager().ResetUserViewById( "鎺ュ彛娴嬭瘯", true );
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogBusinessType/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogBusinessType/Component_pnlContent.def
index b6cdcbb..07b8549 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogBusinessType/Component_pnlContent.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogBusinessType/Component_pnlContent.def
@@ -12,10 +12,35 @@
Properties:
[
DataBinding: 'DataHolderBusinessType.Data.BusinessTypeName'
- Label: 'Business Type Name'
+ Description: '浜嬩笟閮ㄥ悕绉拌緭鍏�'
+ Label: '浜嬩笟閮ㄥ悕绉�'
Taborder: 0
]
}
+ Component editScenarioName
+ {
+ #keys: '[412960.0.275480603]'
+ BaseType: 'WebEditField'
+ Properties:
+ [
+ DataBinding: 'DataHolderBusinessType.Data.ScenarioName'
+ Description: '鍦烘櫙鍚嶇О缂栬緫'
+ Label: '鍦烘櫙鍚嶇О'
+ Taborder: 1
+ ]
+ }
+ Component editDisplayType
+ {
+ #keys: '[412960.0.278321833]'
+ BaseType: 'WebEditField'
+ Properties:
+ [
+ DataBinding: 'DataHolderBusinessType.Data.DisplayType'
+ Description: '鏄剧ず绫诲瀷缂栬緫'
+ Label: '鏄剧ず绫诲瀷'
+ Taborder: 2
+ ]
+ }
]
Properties:
[
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogBusinessType/Method_ClickBtnOk.def b/_Main/UI/MacroPlannerWebApp/Component_DialogBusinessType/Method_ClickBtnOk.def
index 54a2fe2..9f099b0 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogBusinessType/Method_ClickBtnOk.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogBusinessType/Method_ClickBtnOk.def
@@ -11,14 +11,7 @@
// OnOk
this.ApplyChanges();
-
DataHolderBusinessType.Data().Commit();
-
- //if( not isnull( DataHolderForm.Data() ) )
- //{
- // // Access the form, select the new assumption
- // DataHolderForm.Data().ListAssumptions().SelectByKey( DataHolderDialogData.Data().WrappedInstance().Key() );
- //}
this.Close();
*]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Component_pnlActions.def b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Component_pnlActions.def
new file mode 100644
index 0000000..d27cc39
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Component_pnlActions.def
@@ -0,0 +1,40 @@
+Quintiq file version 2.0
+Component pnlActions
+{
+ #keys: '[414382.0.563131222]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component btnOk
+ {
+ #keys: '[414382.0.563131226]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Label: 'OK'
+ Taborder: 0
+ ]
+ }
+ Component btnCancel
+ {
+ #keys: '[414382.0.563131228]'
+ 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_DialogChoosePriorityPolicy/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Component_pnlContent.def
new file mode 100644
index 0000000..38aee9e
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Component_pnlContent.def
@@ -0,0 +1,33 @@
+Quintiq file version 2.0
+Component pnlContent
+{
+ #keys: '[414382.0.563131220]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component PriorityPolicyStringList
+ {
+ #keys: '[414382.0.563131262]'
+ BaseType: 'WebDropDownStringList'
+ Properties:
+ [
+ Taborder: 0
+ ]
+ }
+ Component DataHolderChoosePriorityPolicy
+ {
+ #keys: '[414382.0.563131279]'
+ BaseType: 'WebDataHolder'
+ Databinding: 'structured[PriorityPolicy]*'
+ Properties:
+ [
+ Taborder: 1
+ ]
+ }
+ ]
+ Properties:
+ [
+ Padding: 'true'
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Method_CalculatePriorityResult.def b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Method_CalculatePriorityResult.def
new file mode 100644
index 0000000..3d2bf8a
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Method_CalculatePriorityResult.def
@@ -0,0 +1,13 @@
+Quintiq file version 2.0
+#parent: #root
+Method CalculatePriorityResult (
+ String name
+) id:Method_DialogChoosePriorityPolicy_CalculatePriorityResult
+{
+ #keys: '[414382.0.577602130]'
+ Body:
+ [*
+ PriorityResult::CalculatePriorityResult(name,MacroPlan,GlobalOTDTable);
+ this.Close();
+ *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Method_OpenChoose.def b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Method_OpenChoose.def
new file mode 100644
index 0000000..bae85c8
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Method_OpenChoose.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#parent: #root
+Method OpenChoose () id:Method_DialogChoosePriorityPolicy_OpenChoose
+{
+ #keys: '[414382.0.563950563]'
+ Body:
+ [*
+ ApplicationMacroPlanner.ShowFormModal( this );
+ *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlActions_btnCancel_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlActions_btnCancel_OnClick.def
new file mode 100644
index 0000000..1d6fe8b
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/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: '[414382.0.563131232]'
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ Form.Close();
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlActions_btnOk_OnClick.def
new file mode 100644
index 0000000..4b92eb4
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlActions_btnOk_OnClick.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: pnlActions/btnOk
+Response OnClick () id:Response_pnlActions_btnOk_OnClick
+{
+ #keys: '[414382.0.563131231]'
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ QuillAction
+ {
+ Body:
+ [*
+ name := PriorityPolicyStringList.Text();
+ dlg := construct( DialogChoosePriorityPolicy );
+ dlg.CalculatePriorityResult(name);
+ dlg.Close();
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlContent_DataHolderChoosePriorityPolicy_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlContent_DataHolderChoosePriorityPolicy_OnCreated.def
new file mode 100644
index 0000000..dd31dea
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlContent_DataHolderChoosePriorityPolicy_OnCreated.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: pnlContent/DataHolderChoosePriorityPolicy
+Response OnCreated () id:Response_pnlContent_DataHolderChoosePriorityPolicy_OnCreated
+{
+ #keys: '[414382.0.563131469]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebComponent_OnCreated'
+ QuillAction
+ {
+ Body:
+ [*
+ dataList := selectuniquevalues( MacroPlan,PriorityPolicy,p,p.Name());
+ strings := dataList.Concatenate( ";");
+ PriorityPolicyStringList.Strings(strings);
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlContent_DataHolderChoosePriorityPolicy_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlContent_DataHolderChoosePriorityPolicy_OnDataChanged.def
new file mode 100644
index 0000000..956d116
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlContent_DataHolderChoosePriorityPolicy_OnDataChanged.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: pnlContent/DataHolderChoosePriorityPolicy
+Response OnDataChanged () id:Response_pnlContent_DataHolderChoosePriorityPolicy_OnDataChanged
+{
+ #keys: '[414382.0.563131545]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
+ QuillAction
+ {
+ Body:
+ [*
+ dataList := selectuniquevalues( MacroPlan,PriorityPolicy,p,p.Name());
+ strings := dataList.Concatenate( ";");
+ PriorityPolicyStringList.Strings(strings);
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/_ROOT_Component_DialogChoosePriorityPolicy.def b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/_ROOT_Component_DialogChoosePriorityPolicy.def
new file mode 100644
index 0000000..11665d9
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/_ROOT_Component_DialogChoosePriorityPolicy.def
@@ -0,0 +1,22 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent DialogChoosePriorityPolicy
+{
+ #keys: '[414382.0.563131218]'
+ BaseType: 'WebForm'
+ Children:
+ [
+ #child: pnlContent
+ #child: pnlActions
+ ]
+ Properties:
+ [
+ Alignment: 'trailing'
+ EnterButton: 'btnOk'
+ EscapeButton: 'btnCancel'
+ ExcludeFromActiveComponent: true
+ Padding: 'false'
+ Title: '閫夋嫨浼樺厛绾х瓥鐣�'
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Response_pnlActions_btnOk_OnClick.def
index 4e08b41..76530fa 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Response_pnlActions_btnOk_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Response_pnlActions_btnOk_OnClick.def
@@ -4,6 +4,16 @@
{
#keys: '[414702.0.223820978]'
DefinitionID: 'Responsedef_WebButton_OnClick'
+ Precondition:
+ [*
+ flag := guard( [Real]efPlannedQuantity.Text() > 0.0, false ) or DataHolderDialogDatas.Data().Size() > 1;
+
+ if ( not flag ) {
+ feedback := "璇疯緭鍏ヤ竴涓ぇ浜�0鐨勬暟瀛�";
+ }
+
+ return flag;
+ *]
QuillAction
{
Body:
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Component_PanelGeneral\043549.def" "b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Component_PanelGeneral\043549.def"
index f8a1684..158887f 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Component_PanelGeneral\043549.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Component_PanelGeneral\043549.def"
@@ -46,8 +46,8 @@
Properties:
[
AllowEmpty: true
- DataBinding: 'DataHolderDialogData.Data.BusinessType'
- Label: 'BusinessType'
+ DataBinding: 'DataHolderDialogData.Data.ScenarioName'
+ Label: 'Scenario Name'
Taborder: 4
]
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_OnOk.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_OnOk.def
index b8022af..b488de3 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_OnOk.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_OnOk.def
@@ -32,6 +32,13 @@
data.Name( versionname );
}
+ // Get Business Type from Scenario Name
+ businesstype := select( globalotdtable,
+ BusinessType,
+ b,
+ b.ScenarioName()=data.ScenarioName() ).BusinessTypeName();
+ data.BusinessType( businesstype );
+
// Copy scenario
if( isnull( data.WrappedInstance() ) )
{
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Component_pnlActions.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Component_pnlActions.def
new file mode 100644
index 0000000..f5b2f80
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Component_pnlActions.def
@@ -0,0 +1,50 @@
+Quintiq file version 2.0
+Component pnlActions
+{
+ #keys: '[414382.0.579140304]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component btnApply
+ {
+ #keys: '[414382.0.579140306]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Label: 'Apply'
+ Taborder: 0
+ ]
+ }
+ Component btnOk
+ {
+ #keys: '[414382.0.579140308]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Label: 'OK'
+ Taborder: 1
+ ]
+ }
+ Component btnCancel
+ {
+ #keys: '[414382.0.579140310]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Label: 'Cancel'
+ Taborder: 2
+ ]
+ }
+ ]
+ Properties:
+ [
+ Alignment: 'trailing'
+ Border: true
+ ExcludeFromActiveComponent: true
+ FixedSize: true
+ Orientation: 'horizontal'
+ Padding: 'true'
+ Style: 'footer'
+ Taborder: 1
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Component_pnlContent.def
new file mode 100644
index 0000000..410a038
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Component_pnlContent.def
@@ -0,0 +1,91 @@
+Quintiq file version 2.0
+Component pnlContent
+{
+ #keys: '[414382.0.579140302]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component EditBusinessType
+ {
+ #keys: '[414382.0.581576821]'
+ BaseType: 'WebEditField'
+ Properties:
+ [
+ DataBinding: 'DataHolderSelectCustomerOrder.Data.BusinessType'
+ Label: '浜嬩笟閮�'
+ Taborder: 0
+ ]
+ }
+ Component EditCustomerPolicy
+ {
+ #keys: '[414382.0.581576840]'
+ BaseType: 'WebEditField'
+ Properties:
+ [
+ DataBinding: 'DataHolderSelectCustomerOrder.Data.CustomerPolicy'
+ Label: '瀹㈡埛绛栫暐'
+ Taborder: 1
+ ]
+ }
+ Component EditOrderType
+ {
+ #keys: '[414382.0.581576842]'
+ BaseType: 'WebEditField'
+ Properties:
+ [
+ DataBinding: 'DataHolderSelectCustomerOrder.Data.OrderType'
+ Label: '璁㈠崟绫诲瀷'
+ Taborder: 2
+ ]
+ }
+ Component EditProductGrade
+ {
+ #keys: '[414382.0.581576844]'
+ BaseType: 'WebEditField'
+ Properties:
+ [
+ DataBinding: 'DataHolderSelectCustomerOrder.Data.ProductGrade'
+ Label: '浜у搧绛夌骇'
+ Taborder: 4
+ ]
+ }
+ Component EditSegmentPriority
+ {
+ #keys: '[414382.0.581576846]'
+ BaseType: 'WebEditField'
+ Properties:
+ [
+ DataBinding: 'DataHolderSelectCustomerOrder.Data.SegmentPriority'
+ Label: '缁嗗垎甯傚満浼樺厛绾�'
+ Taborder: 5
+ ]
+ }
+ Component EditOrderTime
+ {
+ #keys: '[414382.0.581576988]'
+ BaseType: 'WebDateSelector'
+ Properties:
+ [
+ DataBinding: 'DataHolderSelectCustomerOrder.Data.OrderTime'
+ Label: '璁㈠崟涓嬪崟鏃堕棿'
+ Taborder: 3
+ ]
+ }
+ Component EditSheetProfitability
+ {
+ #keys: '[414382.0.581577181]'
+ BaseType: 'WebEditField'
+ Properties:
+ [
+ DataBinding: 'DataHolderSelectCustomerOrder.Data.SheetProfitability'
+ Label: '澶у紶鐩堝埄姘村钩'
+ Taborder: 6
+ ]
+ }
+ ]
+ Properties:
+ [
+ Padding: 'true'
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Method_ClickBynOk.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Method_ClickBynOk.def
new file mode 100644
index 0000000..e782835
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Method_ClickBynOk.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: #root
+Method ClickBynOk () id:Method_DialogEditCustomerOrderPriority_ClickBynOk
+{
+ #keys: '[414382.0.581577357]'
+ Body:
+ [*
+ // Disabled button to prevent the possibility of multiple firing
+
+ btnOk.Enabled(false,'');
+
+ // OnOk
+ this.ApplyChanges();
+ DataHolderSelectCustomerOrder.Data().Commit();
+ this.Close();
+ *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Method_EditCustomerOrderPriority.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Method_EditCustomerOrderPriority.def
new file mode 100644
index 0000000..343d6f0
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Method_EditCustomerOrderPriority.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: #root
+Method EditCustomerOrderPriority (
+ CustomerOrder selection
+) id:Method_DialogEditCustomerOrderPriority_EditCustomerOrderPriority
+{
+ #keys: '[414382.0.581575991]'
+ Body:
+ [*
+ // Edits assumption
+ data := shadow( selection );
+
+ DataHolderSelectCustomerOrder.Data( &data );
+
+ ApplicationMacroPlanner.ShowFormModal( this );
+ *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Response_pnlActions_btnApply_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Response_pnlActions_btnApply_OnClick.def
new file mode 100644
index 0000000..5935b2f
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Response_pnlActions_btnApply_OnClick.def
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: pnlActions/btnApply
+Response OnClick () id:Response_pnlActions_btnApply_OnClick
+{
+ #keys: '[414382.0.579140312]'
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ GroupServerCalls: true
+ Precondition:
+ [*
+ return Form.HasChanges();
+ *]
+ QuillAction
+ {
+ Body:
+ [*
+ Form.ApplyChanges();
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Response_pnlActions_btnCancel_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Response_pnlActions_btnCancel_OnClick.def
new file mode 100644
index 0000000..0b78789
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/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: '[414382.0.579140314]'
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ Form.Close();
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Response_pnlActions_btnOk_OnClick.def
new file mode 100644
index 0000000..a1d53c6
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/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: '[414382.0.579140313]'
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ QuillAction
+ {
+ Body:
+ [*
+ Form.ClickBynOk();
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/_ROOT_Component_DialogEditCustomerOrderPriority.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/_ROOT_Component_DialogEditCustomerOrderPriority.def
new file mode 100644
index 0000000..ddfdb14
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/_ROOT_Component_DialogEditCustomerOrderPriority.def
@@ -0,0 +1,32 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent DialogEditCustomerOrderPriority
+{
+ #keys: '[414382.0.579140300]'
+ BaseType: 'WebForm'
+ Children:
+ [
+ #child: pnlContent
+ #child: pnlActions
+ Component DataHolderSelectCustomerOrder
+ {
+ #keys: '[414382.0.581575244]'
+ BaseType: 'WebDataHolder'
+ Databinding: 'shadow[CustomerOrder]*'
+ Properties:
+ [
+ Taborder: 2
+ ]
+ }
+ ]
+ Properties:
+ [
+ Alignment: 'trailing'
+ EnterButton: 'btnOk'
+ EscapeButton: 'btnCancel'
+ ExcludeFromActiveComponent: true
+ Padding: 'false'
+ Title: '淇敼璁㈠崟浼樺厛绾у洜瀛愪俊鎭�'
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Method_New.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Method_New.def
new file mode 100644
index 0000000..a0e37ff
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Method_New.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: #root
+Method New (
+ MacroPlan owner,
+ String businessType
+) id:Method_DialogEditPriorityFactor_New
+{
+ #keys: '[414382.0.593002251]'
+ Body:
+ [*
+ data := owner.PriorityFactor(relshadow);
+ data.BusinessType(businessType);
+
+ DataHolderEditPriorityFactor.Data(&data);
+
+ ApplicationMacroPlanner.ShowFormModal( this );
+ *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Response_pnlActions_btnOk_OnClick.def
index ba900bc..8d24e23 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Response_pnlActions_btnOk_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Response_pnlActions_btnOk_OnClick.def
@@ -7,10 +7,17 @@
Precondition:
[*
feedback := Translations::FilllingCapacity_ValidateInput();
-
checkValue := not Coefficient.Text() = ''
- return checkValue;
+ if(not checkValue )
+ {
+ feedback := Translations::PriorityFactor_CheckNameValid();
+ editData := DataHolderEditPriorityFactor.Data();
+ checkValue := not PriorityFactor::CheckNameValid( MacroPlan,editData.BusinessType(),[Real]Coefficient.Text(),PriorityFactorName.Text(),Desc.Text());
+
+ }
+
+ return checkValue
*]
QuillAction
{
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Component_pnlContent.def
index 1a52538..8f09095 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Component_pnlContent.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Component_pnlContent.def
@@ -36,6 +36,7 @@
DataBinding: 'DataHolderEditPriorityFactorDetails.Data.RangeMax'
Label: '鏈�澶у��'
Taborder: 4
+ Visible: false
]
}
Component RangeMin
@@ -46,7 +47,8 @@
[
DataBinding: 'DataHolderEditPriorityFactorDetails.Data.RangeMin'
Label: '鏈�灏忓��'
- Taborder: 5
+ ReadOnly: true
+ Taborder: 6
]
}
Component GradeDesc
@@ -59,7 +61,7 @@
FixedSize: false
Label: '鎻忚堪'
SizeRatio: 3
- Taborder: 6
+ Taborder: 8
]
}
Component PriorityFactorName
@@ -84,6 +86,27 @@
Taborder: 1
]
}
+ Component RangeMaxTest
+ {
+ #keys: '[414382.0.523235618]'
+ BaseType: 'WebLabel'
+ Properties:
+ [
+ Label: '鏈�澶у��'
+ Taborder: 5
+ Visible: false
+ ]
+ }
+ Component RangeMinText
+ {
+ #keys: '[414382.0.523361009]'
+ BaseType: 'WebLabel'
+ Properties:
+ [
+ Label: '鏈�灏忓��'
+ Taborder: 7
+ ]
+ }
]
Properties:
[
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Response_pnlActions_btnOk_OnClick.def
index 14d65cd..09b6252 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Response_pnlActions_btnOk_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Response_pnlActions_btnOk_OnClick.def
@@ -12,7 +12,7 @@
if( isRange.Checked() )
{
- checkValue := not RangeMax.Text() = '' and not RangeMin.Text() = '';
+ checkValue := not RangeMax.Text() = '' and not RangeMin.Text() = '' and RangeMax.Text() > RangeMin.Text();
}
return checkValue;
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Response_pnlContent_isRange_OnChanged.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Response_pnlContent_isRange_OnChanged.def
index 91202b9..06616ab 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Response_pnlContent_isRange_OnChanged.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Response_pnlContent_isRange_OnChanged.def
@@ -11,12 +11,18 @@
[*
if( this.Checked())
{
- RangeMax.ReadOnly(false);
- RangeMin.ReadOnly(false)
+ RangeMax.Visible(true);
+ RangeMin.Visible(true);
+ RangeMaxTest.Visible(false);
+ RangeMinText.Visible(false);
}
else{
- RangeMax.ReadOnly(true);
- RangeMin.ReadOnly(true)
+ RangeMax.Visible(false);
+ RangeMin.Visible(false);
+ RangeMaxTest.Visible(true)
+ RangeMaxTest.Text([String]DataHolderEditPriorityFactorDetails.Data().RangeMax());
+ RangeMinText.Visible(true)
+ RangeMinText.Text([String]DataHolderEditPriorityFactorDetails.Data().RangeMin());
}
*]
GroupServerCalls: false
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Response_pnlContent_isRange_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Response_pnlContent_isRange_OnCreated.def
new file mode 100644
index 0000000..ad0f874
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Response_pnlContent_isRange_OnCreated.def
@@ -0,0 +1,30 @@
+Quintiq file version 2.0
+#parent: pnlContent/isRange
+Response OnCreated () id:Response_pnlContent_isRange_OnCreated
+{
+ #keys: '[414382.0.523105450]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebComponent_OnCreated'
+ QuillAction
+ {
+ Body:
+ [*
+ if( this.Checked())
+ {
+ RangeMax.Visible(true);
+ RangeMin.Visible(true);
+ RangeMaxTest.Visible(false);
+ RangeMinText.Visible(false);
+ }
+ else{
+ RangeMax.Visible(false);
+ RangeMin.Visible(false);
+ RangeMaxTest.Visible(true)
+ RangeMaxTest.Text([String]DataHolderEditPriorityFactorDetails.Data().RangeMax());
+ RangeMinText.Visible(true)
+ RangeMinText.Text([String]DataHolderEditPriorityFactorDetails.Data().RangeMin());
+ }
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Component_pnlContent.def
index 63e6384..911ba95 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Component_pnlContent.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Component_pnlContent.def
@@ -13,9 +13,10 @@
[
AllowEmpty: true
DataBinding: 'DataHolderFillingCapacityOrder.Data.ProductID'
- Label: 'ProductID'
- Strings: 'productID'
+ Enabled: false
+ Label: '鍟嗗搧缂栫爜'
Taborder: 0
+ Visible: false
]
}
Component dropDownStringListSalesSegmentName id:dropDownStringListSalesSegmentName_325
@@ -26,9 +27,10 @@
[
AllowEmpty: true
DataBinding: 'DataHolderFillingCapacityOrder.Data.SalesSegmentName'
- Label: 'SalesSegmentName'
- Strings: 'SalesSagmentName'
+ Enabled: false
+ Label: '閿�鍞儴闂�'
Taborder: 1
+ Visible: false
]
}
Component dropDownStringListStockPointID id:dropDownStringListStockPointID_801
@@ -39,9 +41,10 @@
[
AllowEmpty: true
DataBinding: 'DataHolderFillingCapacityOrder.Data.StockingPointID'
- Label: 'StockPointID'
- Strings: 'StockPointID'
+ Enabled: false
+ Label: '搴撳瓨鐐�'
Taborder: 2
+ Visible: false
]
}
Component dropDownStringListCustomer id:dropDownStringListCustomer_957
@@ -52,9 +55,10 @@
[
AllowEmpty: true
DataBinding: 'DataHolderFillingCapacityOrder.Data.Customer'
- Label: 'Customer'
- Strings: 'Customer'
+ Enabled: false
+ Label: '瀹㈡埛'
Taborder: 3
+ Visible: false
]
}
Component edtQuantity id:edtQuantity_995
@@ -64,9 +68,9 @@
Properties:
[
DataBinding: 'DataHolderFillingCapacityOrder.Data.Quantity'
- Label: 'Quantity'
+ Label: '鏁伴噺'
Mask: 'REAL'
- Taborder: 4
+ Taborder: 12
]
}
Component dropDownStringListUnitOfMeasureName id:dropDownStringListUnitOfMeasureName_750
@@ -77,9 +81,11 @@
[
AllowEmpty: true
DataBinding: 'DataHolderFillingCapacityOrder.Data.UnitOfMeasureName'
- Label: 'UnitOfMeasureName'
+ Enabled: false
+ Label: '鏁伴噺鍗曚綅'
Strings: 'UnitName'
- Taborder: 5
+ Taborder: 4
+ Visible: false
]
}
Component edtSalesAmount id:edtSalesAmount_608
@@ -89,9 +95,9 @@
Properties:
[
DataBinding: 'DataHolderFillingCapacityOrder.Data.SalesAmount'
- Label: 'SalesAmount'
+ Label: '閿�鍞'
Mask: 'NUMBER'
- Taborder: 6
+ Taborder: 13
]
}
Component dsDemandDate
@@ -101,8 +107,8 @@
Properties:
[
DataBinding: 'DataHolderFillingCapacityOrder.Data.DemandDate'
- Label: 'Demand Date'
- Taborder: 8
+ Label: '闇�姹傛棩鏈�'
+ Taborder: 15
]
}
Component dsForecastDemandDate
@@ -112,10 +118,181 @@
Properties:
[
DataBinding: 'DataHolderFillingCapacityOrder.Data.ForecastDemandDate'
- Label: 'Forecast Demand Date'
+ Label: '棰勬湡闇�姹傛棩鏈�'
+ Taborder: 14
+ ]
+ }
+ Component ddlSalesSegment
+ {
+ #keys: '[414702.0.525040441]'
+ BaseType: 'WebDropDownList'
+ Databinding: 'SalesSegment_MP'
+ Children:
+ [
+ Component deSalesSegment
+ {
+ #keys: '[414702.0.525040443]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'structured[SalesSegment_MP]'
+ FixedFilter: 'object.Child(relsize)=0'
+ Source: 'ApplicationMacroPlanner.DataHolderSalesSegment'
+ Taborder: 0
+ Transformation: 'Elements'
+ ]
+ }
+ ]
+ Properties:
+ [
+ DisplayField: 'Name'
+ Label: '閿�鍞儴闂�'
+ Taborder: 5
+ ]
+ }
+ Component ddlProduct_MP
+ {
+ #keys: '[414702.0.525462899]'
+ BaseType: 'WebDropDownList'
+ Databinding: 'Product_MP'
+ Children:
+ [
+ Component deContent
+ {
+ #keys: '[414702.0.525462901]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'structured[Product_MP]'
+ FixedFilter: 'not object.IsSystem()'
+ Source: 'ApplicationMacroPlanner.DataHolderProduct'
+ Taborder: 0
+ Transformation: 'Elements'
+ ]
+ }
+ ]
+ Properties:
+ [
+ DisplayField: 'Name'
+ Label: '浜у搧'
+ Taborder: 6
+ ]
+ }
+ Component ddlStockingPoint_MP
+ {
+ #keys: '[414702.0.525462922]'
+ BaseType: 'WebDropDownList'
+ Databinding: 'StockingPoint_MP'
+ Children:
+ [
+ Component deContent345
+ {
+ #keys: '[414702.0.525462924]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'structured[StockingPoint_MP]'
+ FixedFilter: 'not object.IsSystem()'
+ Source: 'ApplicationMacroPlanner.DataHolderStockingPoint'
+ Taborder: 0
+ Transformation: 'Elements'
+ ]
+ }
+ ]
+ Properties:
+ [
+ DisplayField: 'Name'
+ Label: '搴撳瓨鐐�'
Taborder: 7
]
}
+ Component ddlBusinessType
+ {
+ #keys: '[414702.0.525012300]'
+ BaseType: 'WebDropDownList'
+ Databinding: 'BusinessType'
+ Children:
+ [
+ Component deContent989
+ {
+ #keys: '[414702.0.525012302]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'GlobalOTDTable'
+ Source: 'GlobalOTDTable'
+ Taborder: 0
+ Transformation: 'BusinessType'
+ ]
+ }
+ ]
+ Properties:
+ [
+ DisplayField: 'BusinessTypeName'
+ Label: '浜嬩笟閮�'
+ Taborder: 8
+ ]
+ }
+ Component ddlUnitOfMeasure_MP
+ {
+ #keys: '[414702.0.525669735]'
+ BaseType: 'WebDropDownList'
+ Databinding: 'UnitOfMeasure_MP'
+ Children:
+ [
+ Component deContent703
+ {
+ #keys: '[414702.0.525669737]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'MacroPlan'
+ Source: 'MacroPlan'
+ Taborder: 0
+ Transformation: 'UnitOfMeasure_MP'
+ ]
+ }
+ ]
+ Properties:
+ [
+ DisplayField: 'Name'
+ Label: '鍗曚綅'
+ Taborder: 9
+ ]
+ }
+ Component efCustomerName
+ {
+ #keys: '[414702.0.525734924]'
+ BaseType: 'WebEditField'
+ Properties:
+ [
+ DataBinding: 'DataHolderFillingCapacityOrder.Data.Customer'
+ Label: 'Customer name'
+ Taborder: 10
+ ]
+ }
+ Component efCustomID
+ {
+ #keys: '[414702.0.525734943]'
+ BaseType: 'WebEditField'
+ Properties:
+ [
+ Label: 'Customer ID'
+ Taborder: 11
+ ]
+ }
+ Component ddslOrderType
+ {
+ #keys: '[414702.0.526239841]'
+ BaseType: 'WebDropDownStringList'
+ Properties:
+ [
+ DataBinding: 'DataHolderFillingCapacityOrder.Data.OrderType'
+ Label: '璁㈠崟绫诲瀷'
+ Strings: '鍙嶇;鎺堟潈'
+ Taborder: 16
+ ]
+ }
]
Properties:
[
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Method_ClickBtnOk.def b/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Method_ClickBtnOk.def
index c345b5c..446efca 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Method_ClickBtnOk.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Method_ClickBtnOk.def
@@ -7,12 +7,12 @@
[*
// Disabled button to prevent the possibility of multiple firing
- btnOk.Enabled(false,'');
+ //btnOk.Enabled(false,'');
// OnOk
this.ApplyChanges();
- DataHolderFillingCapacityOrder.Data().Commit();
+ //DataHolderFillingCapacityOrder.Data().Commit();
//if( not isnull( DataHolderForm.Data() ) )
//{
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Method_Edit.def b/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Method_Edit.def
index 2d5dc2d..f217f0d 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Method_Edit.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Method_Edit.def
@@ -12,6 +12,21 @@
DataHolderFillingCapacityOrder.Data( &data );
+ salesSegment_MP := select( MacroPlan, SalesSegment_MP, tempSSMP, tempSSMP.Name() = selection.SalesSegmentName() );
+ ddlSalesSegment.Data( salesSegment_MP );
+
+ product_MP := select( MacroPlan, Product_MP, tempPMP, tempPMP.ID() = selection.ProductID() );
+ ddlProduct_MP.Data( product_MP );
+
+ stockingPoint_MP := select( MacroPlan, StockingPoint_MP, tempSPMP, tempSPMP.ID() = selection.StockingPointID() );
+ ddlStockingPoint_MP.Data( stockingPoint_MP );
+
+ businessType := select( GlobalOTDTable, BusinessType, tempBT, tempBT.BusinessTypeName() = selection.BusinessType() );
+ ddlBusinessType.Data( businessType );
+
+ unitOfMeasure_MP := select( MacroPlan, UnitOfMeasure_MP, tempUOMMP, tempUOMMP.Name() = selection.UnitOfMeasureName() );
+ ddlUnitOfMeasure_MP.Data( unitOfMeasure_MP );
+
ApplicationMacroPlanner.ShowFormModal( this );
*]
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Method_New.def b/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Method_New.def
index 4170b61..658d008 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Method_New.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Method_New.def
@@ -8,10 +8,10 @@
Body:
[*
- data := owner.FillingCapacityOrder(relshadow);
- data.OrderType("鎻愭媺")
+ data := owner.FillingCapacityOrder( relshadow );
+ //data.OrderType("鎻愭媺")
- DataHolderFillingCapacityOrder.Data(&data);
+ DataHolderFillingCapacityOrder.Data( &data );
ApplicationMacroPlanner.ShowFormModal( this );
*]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Response_pnlActions_btnOk_OnClick.def
index 89f4bc2..184dfb0 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Response_pnlActions_btnOk_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Response_pnlActions_btnOk_OnClick.def
@@ -6,20 +6,52 @@
DefinitionID: 'Responsedef_WebButton_OnClick'
Precondition:
[*
- feedback := Translations::FilllingCapacity_ValidateInput();
-
- checkValue := not dropDownStringListProductID.Text() = '' and not dropDownStringListSalesSegmentName.Text() = ''
- and not dropDownStringListStockPointID.Text() = '' and not dropDownStringListCustomer.Text() = ''
- and not edtQuantity.Text() = '' and not dropDownStringListUnitOfMeasureName.Text() = ''
- and not edtSalesAmount.Text() = ''
-
- return checkValue;
+ //feedback := Translations::FilllingCapacity_ValidateInput();
+ //
+ //checkValue := not dropDownStringListProductID.Text() = '' and not dropDownStringListSalesSegmentName.Text() = ''
+ // and not dropDownStringListStockPointID.Text() = '' and not dropDownStringListCustomer.Text() = ''
+ // and not edtQuantity.Text() = '' and not dropDownStringListUnitOfMeasureName.Text() = ''
+ // and not edtSalesAmount.Text() = ''
+ //
+ //return checkValue;
*]
QuillAction
{
Body:
[*
- Form.ClickBtnOk()
+ Form.ApplyChanges();
+
+ data := guard( DataHolderFillingCapacityOrder.Data().WrappedInstance(), null( FillingCapacityOrder ) );;
+ if ( isnull( data ) ) {
+ MacroPlan.FillingCapacityOrder( relnew,
+ ID := OS::GenerateGUIDAsString(),
+ ProductID := guard( ddlProduct_MP.Data().ID(), "null" ),
+ BusinessType := guard( ddlBusinessType.Data().BusinessTypeName(), "null" ),
+ SalesSegmentName := guard( ddlSalesSegment.Data().Name(), "null" ),
+ StockingPointID := guard( ddlStockingPoint_MP.Data().ID(), "null" ),
+ Customer := efCustomerName.Text(),
+ Quantity := [Real]edtQuantity.Text(),
+ UnitOfMeasureName := ddlUnitOfMeasure_MP.Data().Name(),
+ ForecastDemandDate := dsForecastDemandDate.Date(),
+ DemandDate := dsDemandDate.Date(),
+ OrderType := ddslOrderType.Text(),
+ SalesAmount := [Number]edtSalesAmount.Text()
+ );
+ } else {
+ data.ProductID( guard( ddlProduct_MP.Data().ID(), "null" ) );
+ data.BusinessType( guard( ddlBusinessType.Data().BusinessTypeName(), "null" ) );
+ data.SalesSegmentName( guard( ddlSalesSegment.Data().Name(), "null" ) );
+ data.StockingPointID( guard( ddlStockingPoint_MP.Data().ID(), "null" ) );
+ data.Customer( efCustomerName.Text() );
+ data.Quantity( [Real]edtQuantity.Text() );
+ data.UnitOfMeasureName( ddlUnitOfMeasure_MP.Data().Name() );
+ data.ForecastDemandDate( dsForecastDemandDate.Date() );
+ data.DemandDate( dsDemandDate.Date() );
+ data.OrderType( ddslOrderType.Text() );
+ data.SalesAmount( [Number]edtSalesAmount.Text() );
+ }
+
+ Form.Close();
*]
GroupServerCalls: false
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCustomerAndForecast/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCustomerAndForecast/Component_pnlContent.def
index 488be7e..3c4dba9 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCustomerAndForecast/Component_pnlContent.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCustomerAndForecast/Component_pnlContent.def
@@ -12,7 +12,7 @@
Properties:
[
DataBinding: 'DataHolderFilling.Data.VerNo'
- Label: 'VerNo'
+ Label: '鐗堟湰鍙�'
Taborder: 0
]
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogNewPriorityPolicy/Method_Edit.def b/_Main/UI/MacroPlannerWebApp/Component_DialogNewPriorityPolicy/Method_Edit.def
new file mode 100644
index 0000000..1962e28
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogNewPriorityPolicy/Method_Edit.def
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+#parent: #root
+Method Edit (
+ PriorityPolicy selection
+) id:Method_DialogNewPriorityPolicy_Edit
+{
+ #keys: '[414382.0.603040472]'
+ Body:
+ [*
+ data := shadow( selection );
+
+ DataHolderNewPriorityPolicy.Data( &data);
+ ApplicationMacroPlanner.ShowFormModal( this );
+ *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Component_pnlActions.def b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Component_pnlActions.def
new file mode 100644
index 0000000..262d308
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Component_pnlActions.def
@@ -0,0 +1,40 @@
+Quintiq file version 2.0
+Component pnlActions
+{
+ #keys: '[412960.0.278371059]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component btnOk
+ {
+ #keys: '[412960.0.278371063]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Label: 'OK'
+ Taborder: 0
+ ]
+ }
+ Component btnCancel
+ {
+ #keys: '[412960.0.278371065]'
+ 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_DialogOrganCode/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Component_pnlContent.def
new file mode 100644
index 0000000..459a754
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Component_pnlContent.def
@@ -0,0 +1,26 @@
+Quintiq file version 2.0
+Component pnlContent
+{
+ #keys: '[412960.0.278371057]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component editOrganCodeName
+ {
+ #keys: '[412960.0.280135212]'
+ BaseType: 'WebEditField'
+ Properties:
+ [
+ DataBinding: 'DataHolderOrganCode.Data.OrganCodeName'
+ Description: '缁勭粐缂栫爜鍚嶇О缂栬緫'
+ Label: '缁勭粐缂栫爜'
+ Taborder: 0
+ ]
+ }
+ ]
+ Properties:
+ [
+ Padding: 'true'
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_ClickBtnOk.def b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_ClickBtnOk.def
new file mode 100644
index 0000000..4e90d83
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_ClickBtnOk.def
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: #root
+Method ClickBtnOk () id:Method_DialogOrganCode_ClickBtnOk
+{
+ #keys: '[412960.0.279955432]'
+ Body:
+ [*
+ // Disabled button to prevent the possibility of multiple firing
+
+ btnOk.Enabled(false,'');
+
+ // OnOk
+ this.ApplyChanges();
+
+ DataHolderOrganCode.Data().Commit();
+
+ this.Close();
+ *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_Edit.def b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_Edit.def
new file mode 100644
index 0000000..299bad9
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_Edit.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: #root
+Method Edit (
+ OrganCode selection
+) id:Method_DialogOrganCode_Edit
+{
+ #keys: '[412960.0.279955433]'
+ Body:
+ [*
+ // Edits assumption
+ data := shadow( selection );
+
+ DataHolderOrganCode.Data( &data );
+
+ ApplicationMacroPlanner.ShowFormModal( this );
+ *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_New.def b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_New.def
new file mode 100644
index 0000000..b312c1c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_New.def
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+#parent: #root
+Method New (
+ BusinessType owner
+) id:Method_DialogOrganCode_New
+{
+ #keys: '[412960.0.279955435]'
+ Body:
+ [*
+ data := owner.OrganCode(relshadow);
+ DataHolderOrganCode.Data( &data);
+
+ ApplicationMacroPlanner.ShowFormModal( this );
+ *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Response_pnlActions_btnCancel_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Response_pnlActions_btnCancel_OnClick.def
new file mode 100644
index 0000000..fb27680
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Response_pnlActions_btnCancel_OnClick.def
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+#parent: pnlActions/btnCancel
+Response OnClick () id:Response_pnlActions_btnCancel_OnClick
+{
+ #keys: '[412960.0.278371069]'
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ Form.Close();
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Response_pnlActions_btnOk_OnClick.def
new file mode 100644
index 0000000..3ac7bbe
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/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: '[412960.0.278371068]'
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ Form.ClickBtnOk()
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/_ROOT_Component_DialogOrganCode.def b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/_ROOT_Component_DialogOrganCode.def
new file mode 100644
index 0000000..c681a1b
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/_ROOT_Component_DialogOrganCode.def
@@ -0,0 +1,33 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent DialogOrganCode
+{
+ #keys: '[412960.0.278371055]'
+ BaseType: 'WebForm'
+ Children:
+ [
+ #child: pnlContent
+ #child: pnlActions
+ Component DataHolderOrganCode
+ {
+ #keys: '[412960.0.279955517]'
+ BaseType: 'WebDataHolder'
+ Databinding: 'shadow[OrganCode]*'
+ Properties:
+ [
+ Taborder: 2
+ ]
+ }
+ ]
+ Properties:
+ [
+ Alignment: 'trailing'
+ Description: '缁勭粐缂栫爜杈圭晫寮圭獥'
+ EnterButton: 'btnOk'
+ EscapeButton: 'btnCancel'
+ ExcludeFromActiveComponent: true
+ Padding: 'false'
+ Title: '缁勭粐缂栫爜缂栬緫'
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_ListBusinessType.def b/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_ListBusinessType.def
index b0713d9..c7e5490 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_ListBusinessType.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_ListBusinessType.def
@@ -28,7 +28,7 @@
]
Properties:
[
- Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessTypeName","title":"BusinessTypeName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BusinessTypeName"}}]'
+ Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessTypeName","title":"BusinessTypeName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BusinessTypeName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DisplayType","title":"DisplayType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"DisplayType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ScenarioName","title":"ScenarioName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ScenarioName"}}]'
ContextMenu: 'listContextMenuBusinessType655'
Taborder: 2
]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_ListOrganCode.def b/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_ListOrganCode.def
new file mode 100644
index 0000000..055b426
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_ListOrganCode.def
@@ -0,0 +1,62 @@
+Quintiq file version 2.0
+Component ListOrganCode
+{
+ #keys: '[412960.0.278370451]'
+ BaseType: 'WebList'
+ Children:
+ [
+ Component DataExtractorOrganCode
+ {
+ #keys: '[412960.0.278370452]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'BusinessType'
+ Description: '缁勭粐缂栫爜'
+ ExtractionMode: 'Selected'
+ Source: 'ListBusinessType'
+ Taborder: 0
+ Transformation: 'OrganCode'
+ ]
+ }
+ #child: listActionBarPageOrganCode
+ Component DataSetLevelOrganCode
+ {
+ #keys: '[412960.0.278370457]'
+ BaseType: 'WebDataSetLevel'
+ Children:
+ [
+ #child: listContextMenuBusinessType
+ ]
+ Properties:
+ [
+ Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrganCodeName","title":"OrganCodeName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrganCodeName"}}]'
+ ContextMenu: 'listContextMenuBusinessType'
+ Taborder: 2
+ ]
+ }
+ ]
+ Properties:
+ [
+ Description: '缁勭粐缂栫爜'
+ Taborder: 0
+ ]
+ ResponseDefinitions:
+ [
+ DelegatedResponseDefinition OnClick id:Responsedef_ListOrganCode_WebMenu_OnClick
+ {
+ #keys: '[412960.0.280046014]'
+ Initiator: 'WebMenu'
+ IsInherited: false
+ ResponseType: 'OnClick'
+ Arguments:
+ [
+ ResponseDefinitionArgument selection
+ {
+ #keys: '[507.0.16811226]'
+ Binding: 'this.Selection()'
+ }
+ ]
+ }
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_PanelBusinessType.def b/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_PanelBusinessType.def
new file mode 100644
index 0000000..9e8ac81
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_PanelBusinessType.def
@@ -0,0 +1,14 @@
+Quintiq file version 2.0
+Component PanelBusinessType
+{
+ #keys: '[412960.0.278370440]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ #child: ListOrganCode
+ ]
+ Properties:
+ [
+ Taborder: 1
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listActionBarPageOrganCode.def b/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listActionBarPageOrganCode.def
new file mode 100644
index 0000000..cc122e0
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listActionBarPageOrganCode.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listActionBarPageOrganCode
+{
+ #keys: '[412960.0.278370454]'
+ BaseType: 'listActionBarPage'
+ Properties:
+ [
+ Taborder: 1
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listContextMenuBusinessType.def b/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listContextMenuBusinessType.def
new file mode 100644
index 0000000..d8d6b3c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listContextMenuBusinessType.def
@@ -0,0 +1,35 @@
+Quintiq file version 2.0
+Component listContextMenuBusinessType
+{
+ #keys: '[412960.0.278370459]'
+ BaseType: 'listContextMenu'
+ Children:
+ [
+ Component MenuEdit526
+ {
+ #keys: '[412960.0.278370780]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ Image: 'PENCIL'
+ Taborder: 3
+ Title: 'Edit'
+ ]
+ }
+ Component MenuDelete267
+ {
+ #keys: '[412960.0.278370833]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ Image: 'DELETE'
+ Taborder: 4
+ Title: 'Delete'
+ ]
+ }
+ ]
+ Properties:
+ [
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listContextMenuBusinessType655.def b/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listContextMenuBusinessType655.def
index 30edf41..6d6b098 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listContextMenuBusinessType655.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listContextMenuBusinessType655.def
@@ -38,6 +38,18 @@
Title: 'Delete'
]
}
+ Component MenuNewOrganCode
+ {
+ #keys: '[412960.0.280077335]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ Description: '鏂板缓缁勭粐缂栫爜'
+ Image: 'EARTH_ADD'
+ Taborder: 6
+ Title: 'Add Organ Code'
+ ]
+ }
]
Properties:
[
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListBusinessType_MenuNewOrganCode_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListBusinessType_MenuNewOrganCode_OnClick.def
new file mode 100644
index 0000000..fbc8746
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListBusinessType_MenuNewOrganCode_OnClick.def
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: ListBusinessType
+Response OnClick (
+ BusinessType selection
+) id:Response_ListBusinessType_MenuNewOrganCode_OnClick
+{
+ #keys: '[412960.0.280105097]'
+ CanBindMultiple: false
+ DefinitionID => /ListBusinessType/Responsedef_ListBusinessType_WebMenu_OnClick
+ GroupServerCalls: true
+ Initiator: 'MenuNewOrganCode'
+ QuillAction
+ {
+ Body:
+ [*
+ dlg := construct( DialogOrganCode );
+ dlg.New( selection );
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListOrganCode_MenuDelete267_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListOrganCode_MenuDelete267_OnClick.def
new file mode 100644
index 0000000..cb47729
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListOrganCode_MenuDelete267_OnClick.def
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: ListOrganCode
+Response OnClick (
+ OrganCode selection
+) id:Response_ListOrganCode_MenuDelete267_OnClick
+{
+ #keys: '[412960.0.280046423]'
+ CanBindMultiple: false
+ DefinitionID => /ListOrganCode/Responsedef_ListOrganCode_WebMenu_OnClick
+ GroupServerCalls: true
+ Initiator: 'MenuDelete267'
+ QuillAction
+ {
+ Body:
+ [*
+ selection.Delete();
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListOrganCode_MenuEdit526_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListOrganCode_MenuEdit526_OnClick.def
new file mode 100644
index 0000000..1cbf4e6
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListOrganCode_MenuEdit526_OnClick.def
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: ListOrganCode
+Response OnClick (
+ OrganCode selection
+) id:Response_ListOrganCode_MenuEdit526_OnClick
+{
+ #keys: '[412960.0.280046170]'
+ CanBindMultiple: false
+ DefinitionID => /ListOrganCode/Responsedef_ListOrganCode_WebMenu_OnClick
+ GroupServerCalls: true
+ Initiator: 'MenuEdit526'
+ QuillAction
+ {
+ Body:
+ [*
+ dlg := construct( DialogOrganCode );
+ dlg.Edit( selection );
+ *]
+ }
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_Form367/_ROOT_Component_FormBusinessType\043367.def" "b/_Main/UI/MacroPlannerWebApp/Component_Form367/_ROOT_Component_FormBusinessType\043367.def"
index e23342a..d9814cb 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_Form367/_ROOT_Component_FormBusinessType\043367.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_Form367/_ROOT_Component_FormBusinessType\043367.def"
@@ -8,9 +8,10 @@
Children:
[
#child: ListBusinessType
+ #child: PanelBusinessType
]
Properties:
[
- Title: 'Business Type'
+ Title: '浜嬩笟閮�&缁勭粐缂栫爜缁存姢'
]
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Component_ListCapacityAndSaleBudge.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Component_ListCapacityAndSaleBudge.def
index 984c1f6..452f77b 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Component_ListCapacityAndSaleBudge.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Component_ListCapacityAndSaleBudge.def
@@ -38,6 +38,6 @@
]
Properties:
[
- Taborder: 1
+ Taborder: 2
]
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_ButtonExportTest_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_ButtonExportTest_OnClick.def
new file mode 100644
index 0000000..990eb11
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_ButtonExportTest_OnClick.def
@@ -0,0 +1,21 @@
+Quintiq file version 2.0
+#parent: ButtonExportTest
+Response OnClick () id:Response_FormCapacityAndSaleBudge_ButtonExportTest_OnClick
+{
+ #keys: '[414384.0.914711825]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ Precondition:
+ [*
+ return not isnull( MPSync );
+ *]
+ QuillAction
+ {
+ Body:
+ [*
+ base64 := YuxTest::ExportTest( MPSync );
+ Application.Download( "result.xlsx", base64 );
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_OnCreated.def
index d4df714..9458d5d 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_OnCreated.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_OnCreated.def
@@ -12,7 +12,7 @@
[*
MPSync::TestData( MPSync, MacroPlan );
GlobalOTDTable.InitTestData();
- MPSync.RefreshCapacityAndSaleBudgeFilter();
+ MPSync.RefreshCapacityAndSaleBudgeFilter( GlobalOTDTable );
*]
}
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/_ROOT_Component_FormCapacityAndSaleBudge.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/_ROOT_Component_FormCapacityAndSaleBudge.def
index 8758502..c2687d8 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/_ROOT_Component_FormCapacityAndSaleBudge.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/_ROOT_Component_FormCapacityAndSaleBudge.def
@@ -19,6 +19,18 @@
Taborder: 0
]
}
+ Component ButtonExportTest
+ {
+ #keys: '[414384.0.914711826]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Image: 'EXPORT1'
+ Label: '瀵煎嚭娴嬭瘯'
+ Taborder: 1
+ Visible: false
+ ]
+ }
]
Properties:
[
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Component_ChartCapacityAndSaleBudgeChart.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Component_ChartCapacityAndSaleBudgeChart.def
index d6e755a..71754e3 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Component_ChartCapacityAndSaleBudgeChart.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Component_ChartCapacityAndSaleBudgeChart.def
@@ -17,8 +17,8 @@
BaseType: 'WebDataExtractor'
Properties:
[
- DataType: 'ScenarioManager'
- Source: 'ScenarioManager'
+ DataType: 'GlobalOTDTable'
+ Source: 'GlobalOTDTable'
Taborder: 0
Transformation: 'CapacityAndSaleBudgeChartElement'
]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Response_ButtonCapacityAndSaleBudgeChartTest_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Response_ButtonCapacityAndSaleBudgeChartTest_OnClick.def
index 53e33ba..c481c62 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Response_ButtonCapacityAndSaleBudgeChartTest_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Response_ButtonCapacityAndSaleBudgeChartTest_OnClick.def
@@ -10,19 +10,19 @@
{
Body:
[*
- CapacityAndSaleBudgeChartElement::TestData( ScenarioManager );
+ CapacityAndSaleBudgeChartElement::TestData( GlobalOTDTable );
- ScenarioManager.CapacityAndSaleBudgeChart( DataHolderMacroPlansForScenarioComparison.Data(),
- DropDownSaleOrCapacity.Text(),
- DropDownTimeGroup.Text(),
- DropDownByBusinessTypeOrByOrgCode.Text(),
- DataHolderCapacityAndSaleBudgeFilterBusinessType.Data(),
- DataHolderCapacityAndSaleBudgeFilterPlaceOfProductionOfArray.Data(),
- DataHolderCapacityAndSaleBudgeFilterYear.Data(),
- DataHolderCapacityAndSaleBudgeFilterMonth.Data(),
- MPSync,
- GlobalOTDTable,
- MacroPlan );
+ GlobalOTDTable.CapacityAndSaleBudgeChart( DataHolderMacroPlansForScenarioComparison.Data(),
+ DropDownSaleOrCapacity.Text(),
+ DropDownTimeGroup.Text(),
+ DropDownByBusinessTypeOrByOrgCode.Text(),
+ DataHolderCapacityAndSaleBudgeFilterBusinessType.Data(),
+ DataHolderCapacityAndSaleBudgeFilterPlaceOfProductionOfArray.Data(),
+ DataHolderCapacityAndSaleBudgeFilterYear.Data(),
+ DataHolderCapacityAndSaleBudgeFilterMonth.Data(),
+ MPSync,
+ GlobalOTDTable,
+ MacroPlan );
*]
}
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Component_MatrixEditorCapacityAndSaleBudgeCompare.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Component_MatrixEditorCapacityAndSaleBudgeCompare.def
index cbfdc2b..5dd68bd 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Component_MatrixEditorCapacityAndSaleBudgeCompare.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Component_MatrixEditorCapacityAndSaleBudgeCompare.def
@@ -17,8 +17,8 @@
BaseType: 'WebDataExtractor'
Properties:
[
- DataType: 'ScenarioManager'
- Source: 'ScenarioManager'
+ DataType: 'GlobalOTDTable'
+ Source: 'GlobalOTDTable'
Taborder: 0
Transformation: 'CapacityAndSaleBudgeCompareItemColumn.CapacityAndSaleBudgeCompareItemCell'
]
@@ -44,8 +44,8 @@
BaseType: 'WebDataExtractor'
Properties:
[
- DataType: 'ScenarioManager'
- Source: 'ScenarioManager'
+ DataType: 'GlobalOTDTable'
+ Source: 'GlobalOTDTable'
Taborder: 0
Transformation: 'CapacityAndSaleBudgeCompareItemRow'
]
@@ -70,8 +70,8 @@
BaseType: 'WebDataExtractor'
Properties:
[
- DataType: 'ScenarioManager'
- Source: 'ScenarioManager'
+ DataType: 'GlobalOTDTable'
+ Source: 'GlobalOTDTable'
Taborder: 0
Transformation: 'CapacityAndSaleBudgeCompareItemColumn'
]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Response_ButtonCapacityAndSaleBudgeCompare_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Response_ButtonCapacityAndSaleBudgeCompare_OnClick.def
index 50ded64..6d37df2 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Response_ButtonCapacityAndSaleBudgeCompare_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Response_ButtonCapacityAndSaleBudgeCompare_OnClick.def
@@ -14,13 +14,13 @@
info( DataHolderCapacityAndSaleBudgeFilterItem.Data().Size() );
info( DataHolderCapacityAndSaleBudgeFilterYear.Data().Size() );
info( DataHolderCapacityAndSaleBudgeFilterMonth.Data().Size() );
- ScenarioManager.CapacityAndSaleBudgeCompare( DataHolderMacroPlansForScenarioComparison.Data(),
- DataHolderCapacityAndSaleBudgeFilterItem.Data(),
- DataHolderCapacityAndSaleBudgeFilterYear.Data(),
- DataHolderCapacityAndSaleBudgeFilterMonth.Data(),
- MPSync,
- GlobalOTDTable,
- MacroPlan );
+ GlobalOTDTable.CapacityAndSaleBudgeCompare( DataHolderMacroPlansForScenarioComparison.Data(),
+ DataHolderCapacityAndSaleBudgeFilterItem.Data(),
+ DataHolderCapacityAndSaleBudgeFilterYear.Data(),
+ DataHolderCapacityAndSaleBudgeFilterMonth.Data(),
+ MPSync,
+ GlobalOTDTable,
+ MacroPlan );
*]
}
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Response_ButtonExportCompare_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Response_ButtonExportCompare_OnClick.def
index 97cea9d..a01173d 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Response_ButtonExportCompare_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Response_ButtonExportCompare_OnClick.def
@@ -13,7 +13,7 @@
{
Body:
[*
- tableBinaryData := ScenarioManager.CapacityAndSaleBudgeCompareExport().AsBinaryData();
+ tableBinaryData := GlobalOTDTable.CapacityAndSaleBudgeCompareExport().AsBinaryData();
Application.Download( "骞村害浜ч攢棰勭畻瀵规瘮.xlsx", tableBinaryData );
*]
GroupServerCalls: false
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterBusinessType/Component_ListCapacityAndSaleBudgeFilterBusinessType.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterBusinessType/Component_ListCapacityAndSaleBudgeFilterBusinessType.def
index 712bf75..cbe6b9e 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterBusinessType/Component_ListCapacityAndSaleBudgeFilterBusinessType.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterBusinessType/Component_ListCapacityAndSaleBudgeFilterBusinessType.def
@@ -11,8 +11,8 @@
BaseType: 'WebDataExtractor'
Properties:
[
- DataType: 'MPSync'
- Source: 'MPSync'
+ DataType: 'GlobalOTDTable'
+ Source: 'GlobalOTDTable'
Taborder: 0
Transformation: 'CapacityAndSaleBudgeFilterBusinessType'
]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterBusinessType/Response_listContextMenuCapacityAndSaleBudgeFilterYear_1_MenuRefresh_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterBusinessType/Response_listContextMenuCapacityAndSaleBudgeFilterYear_1_MenuRefresh_OnClick.def
index 682a492..0437f14 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterBusinessType/Response_listContextMenuCapacityAndSaleBudgeFilterYear_1_MenuRefresh_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterBusinessType/Response_listContextMenuCapacityAndSaleBudgeFilterYear_1_MenuRefresh_OnClick.def
@@ -10,7 +10,7 @@
{
Body:
[*
- MPSync.RefreshCapacityAndSaleBudgeFilter();
+ MPSync.RefreshCapacityAndSaleBudgeFilter( GlobalOTDTable );
*]
}
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterItem/Component_ListCapacityAndSaleBudgeFilterItem.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterItem/Component_ListCapacityAndSaleBudgeFilterItem.def
index 84bcffe..ea63655 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterItem/Component_ListCapacityAndSaleBudgeFilterItem.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterItem/Component_ListCapacityAndSaleBudgeFilterItem.def
@@ -11,8 +11,8 @@
BaseType: 'WebDataExtractor'
Properties:
[
- DataType: 'ScenarioManager'
- Source: 'ScenarioManager'
+ DataType: 'GlobalOTDTable'
+ Source: 'GlobalOTDTable'
Taborder: 0
Transformation: 'CapacityAndSaleBudgeFilterItem'
]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterItem/Response_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterItem/Response_OnCreated.def
index c5f4133..a9ccb24 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterItem/Response_OnCreated.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterItem/Response_OnCreated.def
@@ -10,7 +10,7 @@
{
Body:
[*
- CapacityAndSaleBudgeFilterItem::Initial( ScenarioManager );
+ CapacityAndSaleBudgeFilterItem::Initial( GlobalOTDTable );
*]
}
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterMonth/Component_ListCapacityAndSaleBudgeFilterMonth.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterMonth/Component_ListCapacityAndSaleBudgeFilterMonth.def
index 13a9e02..577ebb4 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterMonth/Component_ListCapacityAndSaleBudgeFilterMonth.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterMonth/Component_ListCapacityAndSaleBudgeFilterMonth.def
@@ -11,8 +11,8 @@
BaseType: 'WebDataExtractor'
Properties:
[
- DataType: 'ScenarioManager'
- Source: 'ScenarioManager'
+ DataType: 'GlobalOTDTable'
+ Source: 'GlobalOTDTable'
Taborder: 0
Transformation: 'CapacityAndSaleBudgeFilterMonth'
]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterMonth/Response_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterMonth/Response_OnCreated.def
index 46cc025..d922a4a 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterMonth/Response_OnCreated.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterMonth/Response_OnCreated.def
@@ -10,7 +10,7 @@
{
Body:
[*
- CapacityAndSaleBudgeFilterMonth::Initial( ScenarioManager );
+ CapacityAndSaleBudgeFilterMonth::Initial( GlobalOTDTable );
*]
}
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray/Component_ListCapacityAndSaleBudgeFilterPlaceOfProductionOfArray.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray/Component_ListCapacityAndSaleBudgeFilterPlaceOfProductionOfArray.def
index 0d881d5..ae0a48a 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray/Component_ListCapacityAndSaleBudgeFilterPlaceOfProductionOfArray.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray/Component_ListCapacityAndSaleBudgeFilterPlaceOfProductionOfArray.def
@@ -11,8 +11,8 @@
BaseType: 'WebDataExtractor'
Properties:
[
- DataType: 'MPSync'
- Source: 'MPSync'
+ DataType: 'GlobalOTDTable'
+ Source: 'GlobalOTDTable'
Taborder: 0
Transformation: 'CapacityAndSaleBudgeFilterPlaceOfProductionOfArray'
]
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray/Response_listContextMenuCapacityAndSaleBudgeFilterYear_1_MenuRefresh_OnC\043663.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray/Response_listContextMenuCapacityAndSaleBudgeFilterYear_1_MenuRefresh_OnC\043663.def"
index bda9b55..8b48eac 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray/Response_listContextMenuCapacityAndSaleBudgeFilterYear_1_MenuRefresh_OnC\043663.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray/Response_listContextMenuCapacityAndSaleBudgeFilterYear_1_MenuRefresh_OnC\043663.def"
@@ -10,7 +10,7 @@
{
Body:
[*
- MPSync.RefreshCapacityAndSaleBudgeFilter();
+ MPSync.RefreshCapacityAndSaleBudgeFilter( GlobalOTDTable );
*]
}
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterYear/Component_ListCapacityAndSaleBudgeFilterYear.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterYear/Component_ListCapacityAndSaleBudgeFilterYear.def
index f51357d..c89499c 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterYear/Component_ListCapacityAndSaleBudgeFilterYear.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterYear/Component_ListCapacityAndSaleBudgeFilterYear.def
@@ -11,8 +11,8 @@
BaseType: 'WebDataExtractor'
Properties:
[
- DataType: 'ScenarioManager'
- Source: 'ScenarioManager'
+ DataType: 'GlobalOTDTable'
+ Source: 'GlobalOTDTable'
Taborder: 0
Transformation: 'CapacityAndSaleBudgeFilterYear'
]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterYear/Response_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterYear/Response_OnCreated.def
index 6c61e95..19ea091 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterYear/Response_OnCreated.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterYear/Response_OnCreated.def
@@ -10,7 +10,7 @@
{
Body:
[*
- CapacityAndSaleBudgeFilterYear::Initial( ScenarioManager );
+ CapacityAndSaleBudgeFilterYear::Initial( GlobalOTDTable );
*]
}
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_ListSalesDemands.def b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_ListSalesDemands.def
index 352a599..54be6e2 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_ListSalesDemands.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_ListSalesDemands.def
@@ -5,6 +5,10 @@
[
Component DataSetLevelSalesDemands #extension
{
+ Children:
+ [
+ #child: listContextMenuSD
+ ]
Properties:
[
Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeAllConstraint","columnid":"All constraints","title":"All constraints","subtotals":"","tooltip":"","width":1,"display":"shown"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPoint_MP.ID","title":"Stocking point","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"StockingPoint_MP.ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesSegment_MP.Name","title":"Sales segment","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"SalesSegment_MP.Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerName","title":"Customer name","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerID","title":"Customer ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderID","title":"Order ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderLineID","title":"Order line ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderLineID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StartDate","title":"Order date","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StartDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Product_MP.ID","title":"Product","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"Product_MP.ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasure_MP.Name","title":"UoM","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"UnitOfMeasure_MP.Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"FulfilledQuantity","title":"Fulfilled","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"FulfilledQuantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeChart","columnid":"Fulfillment","title":"Fulfillment","subtotals":"","tooltip":"","width":-1,"display":"shown","type":"stackbar","relative":true,"attributes":[{"name":"Unfulfilled demand","color":"rgb(232,123,0)","expression":{"classtype":"WebApiDefinitionAttributeExpression","columnid":"Unfulfilled demand","title":"Unfulfilled demand","subtotals":"","tooltip":"","width":-1,"display":"shown","expressionbody":"maxvalue( object.Quantity() - object.FulfilledQuantity(), 0.0).Round( 2)"}},{"name":"Fulfilled demand","color":"rgb(87,184,71)","expression":{"classtype":"WebApiDefinitionAttributeExpression","columnid":"Fulfilled demand","title":"Fulfilled demand","subtotals":"","tooltip":"","width":-1,"display":"shown","expressionbody":"object.FulfilledQuantity().Round( 2)"}}]}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsFirmed","title":"Is firmed","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsFirmed"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsEligibleForNetting","title":"Is eligible for netting","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsEligibleForNetting"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Price","title":"Price","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Price"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PriceUoM","title":"PriceUoM","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"PriceUoM"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderTag","title":"璁㈠崟鏍囩","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderTag"}}]'
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_listContextMenuSD.def b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_listContextMenuSD.def
new file mode 100644
index 0000000..4d52db8
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_listContextMenuSD.def
@@ -0,0 +1,27 @@
+Quintiq file version 2.0
+Component listContextMenuSD #extension
+{
+ Children:
+ [
+ Component MenuPriorityResult
+ {
+ #keys: '[414382.0.562012014]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ Taborder: 10
+ Title: '浜嬩笟閮ㄤ紭鍏堢骇璁$畻'
+ ]
+ }
+ Component MenuEditCustomerOrderPriority
+ {
+ #keys: '[414382.0.581575364]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ Taborder: 11
+ Title: '淇敼瀹㈡埛璁㈠崟浼樺厛绾у洜瀛愪俊鎭�'
+ ]
+ }
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Response_TIANMA_JITUAN_ListSalesDemands_MenuEditCustomerOrderPriority_OnClic.def b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Response_TIANMA_JITUAN_ListSalesDemands_MenuEditCustomerOrderPriority_OnClic.def
new file mode 100644
index 0000000..db0367b
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Response_TIANMA_JITUAN_ListSalesDemands_MenuEditCustomerOrderPriority_OnClic.def
@@ -0,0 +1,21 @@
+Quintiq file version 2.0
+#parent: ListSalesDemands
+Response OnClick (
+ SalesDemandBase selection
+) id:Response_ListSalesDemands_MenuEditCustomerOrderPriority_OnClick
+{
+ #keys: '[414382.0.581575400]'
+ CanBindMultiple: false
+ DefinitionID => //FormSalesDemands/ListSalesDemands/Responsedef_ListSalesDemands_WebMenu_OnClick
+ Initiator: 'MenuEditCustomerOrderPriority'
+ QuillAction
+ {
+ Body:
+ [*
+ dlg := construct( DialogEditCustomerOrderPriority );
+ data := selection.astype( CustomerOrder );
+ dlg.EditCustomerOrderPriority( data);
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Response_TIANMA_JITUAN_ListSalesDemands_MenuPriorityResult_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Response_TIANMA_JITUAN_ListSalesDemands_MenuPriorityResult_OnClick.def
new file mode 100644
index 0000000..c4f3379
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Response_TIANMA_JITUAN_ListSalesDemands_MenuPriorityResult_OnClick.def
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: ListSalesDemands
+Response OnClick () id:Response_ListSalesDemands_MenuPriorityResult_OnClick
+{
+ #keys: '[414382.0.563130924]'
+ CanBindMultiple: false
+ DefinitionID => //FormSalesDemands/ListSalesDemands/Responsedef_ListSalesDemands_WebMenu_OnClick
+ Initiator: 'MenuPriorityResult'
+ QuillAction
+ {
+ Body:
+ [*
+
+ dlg := construct( DialogChoosePriorityPolicy );
+ dlg.OpenChoose();
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Component_ListFillingCapacityOrder.def b/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Component_ListFillingCapacityOrder.def
index 7ff6bcd..a3801b2 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Component_ListFillingCapacityOrder.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Component_ListFillingCapacityOrder.def
@@ -37,7 +37,7 @@
]
Properties:
[
- Taborder: 0
+ Taborder: 1
]
ResponseDefinitions:
[
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Component_PanelFillingCapacityOrder.def b/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Component_PanelFillingCapacityOrder.def
new file mode 100644
index 0000000..57a3abe
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Component_PanelFillingCapacityOrder.def
@@ -0,0 +1,26 @@
+Quintiq file version 2.0
+Component PanelFillingCapacityOrder
+{
+ #keys: '[414702.0.526129526]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component ButtonDeduct
+ {
+ #keys: '[414702.0.523642357]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Image: 'EDITOR_ACCESSIBILITY_LOCAL'
+ Label: '鍐插噺'
+ Taborder: 0
+ ]
+ }
+ ]
+ Properties:
+ [
+ FixedSize: true
+ Orientation: 'horizontal'
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Component_listContextMenuFillingCapacityOrder.def b/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Component_listContextMenuFillingCapacityOrder.def
index 42e181a..7db97cc 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Component_listContextMenuFillingCapacityOrder.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Component_listContextMenuFillingCapacityOrder.def
@@ -22,6 +22,7 @@
BaseType: 'WebMenu'
Properties:
[
+ BindOnDoubleClick: true
Image: 'PENCIL'
Taborder: 4
Title: 'Edit'
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/_ROOT_Component_FormFillingCapacityOrder.def b/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/_ROOT_Component_FormFillingCapacityOrder.def
index 594ffdc..da0e3a5 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/_ROOT_Component_FormFillingCapacityOrder.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/_ROOT_Component_FormFillingCapacityOrder.def
@@ -8,6 +8,7 @@
Children:
[
#child: ListFillingCapacityOrder
+ #child: PanelFillingCapacityOrder
]
Properties:
[
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Component_ListCustomerAndFillingCapacityOrder.def b/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Component_ListCustomerAndFillingCapacityOrder.def
index 5ea0d0a..8f81976 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Component_ListCustomerAndFillingCapacityOrder.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Component_ListCustomerAndFillingCapacityOrder.def
@@ -36,7 +36,7 @@
]
Properties:
[
- Taborder: 0
+ Taborder: 1
]
ResponseDefinitions:
[
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Component_PanelButton.def b/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Component_PanelButton.def
new file mode 100644
index 0000000..912c452
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Component_PanelButton.def
@@ -0,0 +1,26 @@
+Quintiq file version 2.0
+Component PanelButton
+{
+ #keys: '[414702.0.454190771]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component ButtonTransform
+ {
+ #keys: '[414702.0.454190800]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Image: 'BARRIER_CLOSED'
+ Label: '杞崲'
+ Taborder: 0
+ ]
+ }
+ ]
+ Properties:
+ [
+ FixedSize: true
+ Orientation: 'horizontal'
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Component_listContextMenuCustomerAndFillingCapacityOrder.def b/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Component_listContextMenuCustomerAndFillingCapacityOrder.def
index 01848c5..cdcd03d 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Component_listContextMenuCustomerAndFillingCapacityOrder.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Component_listContextMenuCustomerAndFillingCapacityOrder.def
@@ -11,20 +11,43 @@
BaseType: 'WebMenu'
Properties:
[
- Image: 'ADD2'
+ Image: 'JERRYCAN'
Taborder: 3
- Title: 'Filling'
+ Title: '濉骇'
]
}
- Component MenuTest
+ Component MenuRefresh
{
#keys: '[414382.0.415603149]'
BaseType: 'WebMenu'
Properties:
[
- Image: 'ADD2'
+ Image: 'EDITOR_HAS_DECLARATIVE_DEFINITION'
Taborder: 4
- Title: 'Test'
+ Title: '鍒涘缓娴嬭瘯鏁版嵁'
+ ]
+ }
+ Component MenuDelete
+ {
+ #keys: '[414702.0.472081906]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ Image: 'DELETE'
+ Taborder: 5
+ Title: '鍒犻櫎'
+ ]
+ }
+ Component MenuSelectAll
+ {
+ #keys: '[414702.0.472012591]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ Image: 'DOCUMENT_SELECTION'
+ Shortcut: 'Ctrl+A'
+ Taborder: 6
+ Title: '鍏ㄩ��'
]
}
]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Response_ListCustomerAndFillingCapacityOrder_MenuDelete_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Response_ListCustomerAndFillingCapacityOrder_MenuDelete_OnClick.def
new file mode 100644
index 0000000..8bd8ba9
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Response_ListCustomerAndFillingCapacityOrder_MenuDelete_OnClick.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: ListCustomerAndFillingCapacityOrder
+Response OnClick (
+ CustomerAndForecastOrder selection
+) id:Response_ListCustomerAndFillingCapacityOrder_MenuDelete_OnClick
+{
+ #keys: '[414702.0.472032713]'
+ DefinitionID => /ListCustomerAndFillingCapacityOrder/Responsedef_ListCustomerAndFillingCapacityOrder_WebMenu_OnClick
+ Initiator: 'MenuDelete'
+ QuillAction
+ {
+ Body:
+ [*
+ selection.Delete();
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Response_ListCustomerAndFillingCapacityOrder_MenuRefresh_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Response_ListCustomerAndFillingCapacityOrder_MenuRefresh_OnClick.def
new file mode 100644
index 0000000..aba413a
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Response_ListCustomerAndFillingCapacityOrder_MenuRefresh_OnClick.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: ListCustomerAndFillingCapacityOrder
+Response OnClick () id:Response_ListCustomerAndFillingCapacityOrder_MenuRefresh_OnClick
+{
+ #keys: '[414382.0.415724061]'
+ CanBindMultiple: false
+ DefinitionID => /ListCustomerAndFillingCapacityOrder/Responsedef_ListCustomerAndFillingCapacityOrder_WebMenu_OnClick
+ Initiator: 'MenuRefresh'
+ QuillAction
+ {
+ Body:
+ [*
+ CustomerAndForecastOrder::RefreshData( MacroPlan,GlobalOTDTable);
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Response_ListCustomerAndFillingCapacityOrder_MenuSelectAll_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Response_ListCustomerAndFillingCapacityOrder_MenuSelectAll_OnClick.def
new file mode 100644
index 0000000..95443c6
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Response_ListCustomerAndFillingCapacityOrder_MenuSelectAll_OnClick.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: ListCustomerAndFillingCapacityOrder
+Response OnClick () id:Response_ListCustomerAndFillingCapacityOrder_MenuSelectAll_OnClick
+{
+ #keys: '[414702.0.474548365]'
+ CanBindMultiple: false
+ DefinitionID => /ListCustomerAndFillingCapacityOrder/Responsedef_ListCustomerAndFillingCapacityOrder_WebMenu_OnClick
+ Initiator: 'MenuSelectAll'
+ QuillAction
+ {
+ Body:
+ [*
+ this.SelectAll();
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Response_ListCustomerAndFillingCapacityOrder_MenuTest_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Response_ListCustomerAndFillingCapacityOrder_MenuTest_OnClick.def
deleted file mode 100644
index f292299..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Response_ListCustomerAndFillingCapacityOrder_MenuTest_OnClick.def
+++ /dev/null
@@ -1,17 +0,0 @@
-Quintiq file version 2.0
-#parent: ListCustomerAndFillingCapacityOrder
-Response OnClick () id:Response_ListCustomerAndFillingCapacityOrder_MenuTest_OnClick
-{
- #keys: '[414382.0.415724061]'
- CanBindMultiple: false
- DefinitionID => /ListCustomerAndFillingCapacityOrder/Responsedef_ListCustomerAndFillingCapacityOrder_WebMenu_OnClick
- GroupServerCalls: true
- Initiator: 'MenuTest'
- QuillAction
- {
- Body:
- [*
- CustomerAndForecastOrder::CreateTestData( MacroPlan);
- *]
- }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Response_PanelButton_ButtonTransform_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Response_PanelButton_ButtonTransform_OnClick.def
new file mode 100644
index 0000000..30c3208
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Response_PanelButton_ButtonTransform_OnClick.def
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: PanelButton/ButtonTransform
+Response OnClick () id:Response_PanelButton_ButtonTransform_OnClick
+{
+ #keys: '[414702.0.454181189]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ Precondition:
+ [*
+ return not isnull( MacroPlan );
+ *]
+ QuillAction
+ {
+ Body:
+ [*
+ CustomerAndForecastOrder::CreateData( MacroPlan );
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/_ROOT_Component_FormCustomerAndForecastOrder.def b/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/_ROOT_Component_FormCustomerAndForecastOrder.def
index a456ad1..6c6d614 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/_ROOT_Component_FormCustomerAndForecastOrder.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/_ROOT_Component_FormCustomerAndForecastOrder.def
@@ -8,6 +8,7 @@
Children:
[
#child: ListCustomerAndFillingCapacityOrder
+ #child: PanelButton
]
Properties:
[
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFillingScheme/Response_ListFillingScheme_MenuDelete_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormFillingScheme/Response_ListFillingScheme_MenuDelete_OnClick.def
index 92f2bb9..f103e1b 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormFillingScheme/Response_ListFillingScheme_MenuDelete_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFillingScheme/Response_ListFillingScheme_MenuDelete_OnClick.def
@@ -21,7 +21,8 @@
{
Body:
[*
- selection.Delete()
+ FilllingCapacityOrderScheme::DeleteDetails( MacroPlan,selection.SchemeName());
+ selection.Delete();
*]
GroupServerCalls: false
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFillingScheme/Response_ListFillingScheme_OnSelectionChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormFillingScheme/Response_ListFillingScheme_OnSelectionChanged.def
new file mode 100644
index 0000000..7986675
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFillingScheme/Response_ListFillingScheme_OnSelectionChanged.def
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: ListFillingScheme
+Response OnSelectionChanged (
+ FilllingCapacityOrderScheme selection
+) id:Response_ListFillingScheme_OnSelectionChanged
+{
+ #keys: '[414382.0.532640606]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebList_OnSelectionChanged'
+ QuillAction
+ {
+ Body:
+ [*
+ schemeName := selection.SchemeName();
+ list := selectset( MacroPlan,FillingCapacityOrder,order,order.SchemeName() = selection.SchemeName());
+ DataHolderFillingScheme.Data(&list);
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_ListInterfaceTest.def b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_ListInterfaceTest.def
new file mode 100644
index 0000000..57d4c51
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_ListInterfaceTest.def
@@ -0,0 +1,59 @@
+Quintiq file version 2.0
+Component ListInterfaceTest
+{
+ #keys: '[414702.0.459846558]'
+ BaseType: 'WebList'
+ Children:
+ [
+ Component DataExtractorInterfaceTest
+ {
+ #keys: '[414702.0.459846559]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'GlobalOTDTable'
+ Source: 'GlobalOTDTable'
+ Taborder: 0
+ Transformation: 'Global_BrokerExecuteLog'
+ ]
+ }
+ #child: listActionBarPageInterfaceTest
+ Component DataSetLevelInterfaceTest
+ {
+ #keys: '[414702.0.459846564]'
+ BaseType: 'WebDataSetLevel'
+ Children:
+ [
+ #child: listContextMenuInterfaceTest
+ ]
+ Properties:
+ [
+ Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ImageExecutionStatus","title":"杩愯鐘舵��","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ImageExecutionStatus"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ExecuteUser","title":"鎵ц鐢ㄦ埛","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ExecuteUser"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsSuccess","title":"鏄惁鎴愬姛","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsSuccess"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BrokerName","title":"Broker鍚嶇О","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BrokerName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ElementTotal","title":"鏁版嵁澶у皬","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ElementTotal"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ErrorDateTime","title":"閿欒鏃堕棿","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ErrorDateTime"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ErrorMessage","title":"閿欒娑堟伅","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ErrorMessage"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ErrorNo","title":"閿欒鍙�","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ErrorNo"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Name","title":"鏃ュ織鍚嶇О","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SuccessDateTime","title":"鎴愬姛鏃堕棿","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SuccessDateTime"}}]'
+ ContextMenu: 'listContextMenuInterfaceTest'
+ Taborder: 2
+ ]
+ }
+ ]
+ Properties:
+ [
+ Taborder: 0
+ ]
+ ResponseDefinitions:
+ [
+ DelegatedResponseDefinition OnClick id:Responsedef_ListInterfaceTest_WebMenu_OnClick
+ {
+ #keys: '[414702.0.488307130]'
+ Initiator: 'WebMenu'
+ IsInherited: false
+ ResponseType: 'OnClick'
+ Arguments:
+ [
+ ResponseDefinitionArgument selection
+ {
+ #keys: '[1041.0.20211517]'
+ Binding: 'this.Selection()'
+ }
+ ]
+ }
+ ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceGlobal_BrokerExecuteLog\043981.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceGlobal_BrokerExecuteLog\043981.def"
new file mode 100644
index 0000000..5c28e5e
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceGlobal_BrokerExecuteLog\043981.def"
@@ -0,0 +1,14 @@
+Quintiq file version 2.0
+Component PanelInterfaceGlobal_BrokerExecuteLog
+{
+ #keys: '[414702.0.459917264]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ #child: ListInterfaceTest
+ ]
+ Properties:
+ [
+ Taborder: 5
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption1.def b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption1.def
new file mode 100644
index 0000000..da696e8
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption1.def
@@ -0,0 +1,65 @@
+Quintiq file version 2.0
+Component PanelInterfaceOption1
+{
+ #keys: '[414702.0.459752107]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component CheckboxCustomOrder
+ {
+ #keys: '[414702.0.459786494]'
+ BaseType: 'WebCheckbox'
+ Properties:
+ [
+ Label: 'CustomOrder'
+ Taborder: 0
+ ]
+ }
+ Component CheckboxForecast
+ {
+ #keys: '[414702.0.459501981]'
+ BaseType: 'WebCheckbox'
+ Properties:
+ [
+ Label: 'Forecast'
+ Taborder: 1
+ ]
+ }
+ Component CheckboxUnitOfMeasure_MP
+ {
+ #keys: '[414702.0.500042972]'
+ BaseType: 'WebCheckbox'
+ Properties:
+ [
+ Label: 'UnitOfMeasure_MP'
+ Taborder: 2
+ ]
+ }
+ Component CheckboxSalesSegment_MP
+ {
+ #keys: '[414702.0.498882706]'
+ BaseType: 'WebCheckbox'
+ Properties:
+ [
+ Label: 'SalesSegment_MP'
+ Taborder: 3
+ ]
+ }
+ Component CheckboxProduct_MP
+ {
+ #keys: '[414702.0.500281942]'
+ BaseType: 'WebCheckbox'
+ Properties:
+ [
+ Label: 'Product_MP'
+ Taborder: 4
+ ]
+ }
+ ]
+ Properties:
+ [
+ FixedSize: true
+ Orientation: 'horizontal'
+ Taborder: 0
+ ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption2\043456.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption2\043456.def"
new file mode 100644
index 0000000..a089baa
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption2\043456.def"
@@ -0,0 +1,65 @@
+Quintiq file version 2.0
+Component PanelInterfaceOption2
+{
+ #keys: '[414702.0.500233382]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component CheckboxConversionFactor
+ {
+ #keys: '[414702.0.501770364]'
+ BaseType: 'WebCheckbox'
+ Properties:
+ [
+ Label: 'ConversionFactor'
+ Taborder: 0
+ ]
+ }
+ Component CheckboxOperation
+ {
+ #keys: '[414702.0.501791718]'
+ BaseType: 'WebCheckbox'
+ Properties:
+ [
+ Label: 'Operation'
+ Taborder: 1
+ ]
+ }
+ Component CheckboxOperationBOM
+ {
+ #keys: '[414702.0.501742364]'
+ BaseType: 'WebCheckbox'
+ Properties:
+ [
+ Label: 'OperationBOM'
+ Taborder: 2
+ ]
+ }
+ Component CheckboxProductInLane
+ {
+ #keys: '[414702.0.501792106]'
+ BaseType: 'WebCheckbox'
+ Properties:
+ [
+ Label: 'ProductInLane'
+ Taborder: 3
+ ]
+ }
+ Component CheckboxAIPISPIP
+ {
+ #keys: '[414702.0.503110868]'
+ BaseType: 'WebCheckbox'
+ Properties:
+ [
+ Label: 'AIPISPIP'
+ Taborder: 4
+ ]
+ }
+ ]
+ Properties:
+ [
+ FixedSize: true
+ Orientation: 'horizontal'
+ Taborder: 1
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption3.def b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption3.def
new file mode 100644
index 0000000..f48dbeb
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption3.def
@@ -0,0 +1,65 @@
+Quintiq file version 2.0
+Component PanelInterfaceOption3
+{
+ #keys: '[414702.0.501742781]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component CheckboxInventorySupply
+ {
+ #keys: '[414702.0.503576372]'
+ BaseType: 'WebCheckbox'
+ Properties:
+ [
+ Label: 'InventorySupply'
+ Taborder: 0
+ ]
+ }
+ Component CheckboxStockingPointCost
+ {
+ #keys: '[414702.0.503748797]'
+ BaseType: 'WebCheckbox'
+ Properties:
+ [
+ Label: 'StockingPointCost'
+ Taborder: 1
+ ]
+ }
+ Component CheckboxOperationCost
+ {
+ #keys: '[414702.0.503158219]'
+ BaseType: 'WebCheckbox'
+ Properties:
+ [
+ Label: 'OperationCost'
+ Taborder: 2
+ ]
+ }
+ Component CheckboxDOI_DSI
+ {
+ #keys: '[414702.0.503158880]'
+ BaseType: 'WebCheckbox'
+ Properties:
+ [
+ Label: 'DOI_DSI'
+ Taborder: 3
+ ]
+ }
+ Component CheckboxCustomerGrade
+ {
+ #keys: '[414702.0.503159013]'
+ BaseType: 'WebCheckbox'
+ Properties:
+ [
+ Label: 'CustomerGrade'
+ Taborder: 4
+ ]
+ }
+ ]
+ Properties:
+ [
+ FixedSize: true
+ Orientation: 'horizontal'
+ Taborder: 2
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption4.def b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption4.def
new file mode 100644
index 0000000..f708ac7
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption4.def
@@ -0,0 +1,65 @@
+Quintiq file version 2.0
+Component PanelInterfaceOption4
+{
+ #keys: '[414702.0.504229568]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component CheckboxStockingPoint_MP
+ {
+ #keys: '[414702.0.501794917]'
+ BaseType: 'WebCheckbox'
+ Properties:
+ [
+ Label: 'StockingPoint_MP'
+ Taborder: 0
+ ]
+ }
+ Component CheckboxCurrency_MP
+ {
+ #keys: '[414702.0.504229987]'
+ BaseType: 'WebCheckbox'
+ Properties:
+ [
+ Label: 'Currency_MP'
+ Taborder: 1
+ ]
+ }
+ Component CheckboxCurrencyRate_MP
+ {
+ #keys: '[414702.0.503787453]'
+ BaseType: 'WebCheckbox'
+ Properties:
+ [
+ Label: 'CurrencyRate_MP'
+ Taborder: 2
+ ]
+ }
+ Component CheckboxLane
+ {
+ #keys: '[414702.0.503787560]'
+ BaseType: 'WebCheckbox'
+ Properties:
+ [
+ Label: 'Lane'
+ Taborder: 3
+ ]
+ }
+ Component CheckboxLaneLeg
+ {
+ #keys: '[414702.0.503787710]'
+ BaseType: 'WebCheckbox'
+ Properties:
+ [
+ Label: 'LaneLeg'
+ Taborder: 4
+ ]
+ }
+ ]
+ Properties:
+ [
+ FixedSize: true
+ Orientation: 'horizontal'
+ Taborder: 3
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceTest.def b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceTest.def
new file mode 100644
index 0000000..b8719b3
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceTest.def
@@ -0,0 +1,37 @@
+Quintiq file version 2.0
+Component PanelInterfaceTest
+{
+ #keys: '[414702.0.459815967]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component ButtonPullInterfaceDataToIntermediateTable
+ {
+ #keys: '[414702.0.457042579]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Image: 'WINE'
+ Label: '鎷夊彇鎺ュ彛鏁版嵁鍒颁腑闂磋〃'
+ Taborder: 0
+ ]
+ }
+ Component ButtonSynchronizeDataToMacroPlan
+ {
+ #keys: '[414702.0.461471389]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Image: 'COFFEE_MACHINE'
+ Label: '鍚屾鏁版嵁鍒癕acroPlan'
+ Taborder: 1
+ ]
+ }
+ ]
+ Properties:
+ [
+ FixedSize: true
+ Orientation: 'horizontal'
+ Taborder: 4
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_listActionBarPageInterfaceTest.def b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_listActionBarPageInterfaceTest.def
new file mode 100644
index 0000000..fc5877b
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_listActionBarPageInterfaceTest.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listActionBarPageInterfaceTest
+{
+ #keys: '[414702.0.459846561]'
+ BaseType: 'listActionBarPage'
+ Properties:
+ [
+ Taborder: 1
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_listContextMenuInterfaceTest.def b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_listContextMenuInterfaceTest.def
new file mode 100644
index 0000000..c678ea7
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_listContextMenuInterfaceTest.def
@@ -0,0 +1,47 @@
+Quintiq file version 2.0
+Component listContextMenuInterfaceTest
+{
+ #keys: '[414702.0.459846566]'
+ BaseType: 'listContextMenu'
+ Children:
+ [
+ Component MenuCreateShowData
+ {
+ #keys: '[414702.0.488246034]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ Image: 'VIEW'
+ Taborder: 3
+ Title: '鏄剧ず鏁版嵁'
+ ]
+ }
+ Component MenuDelete
+ {
+ #keys: '[414702.0.495675965]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ Image: 'DELETE'
+ Taborder: 4
+ Title: '鍒犻櫎'
+ ]
+ }
+ Component MenuSelectionAll
+ {
+ #keys: '[414702.0.494390825]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ Image: 'SELECTION'
+ Shortcut: 'Ctrl+A'
+ Taborder: 5
+ Title: '鍏ㄩ��'
+ ]
+ }
+ ]
+ Properties:
+ [
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_ListInterfaceTest_MenuCreateShowData_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_ListInterfaceTest_MenuCreateShowData_OnClick.def
new file mode 100644
index 0000000..052d40d
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_ListInterfaceTest_MenuCreateShowData_OnClick.def
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: ListInterfaceTest
+Response OnClick (
+ Global_BrokerExecuteLog selection
+) id:Response_ListInterfaceTest_MenuCreateShowData_OnClick
+{
+ #keys: '[414702.0.488307153]'
+ CanBindMultiple: false
+ DefinitionID => /ListInterfaceTest/Responsedef_ListInterfaceTest_WebMenu_OnClick
+ Initiator: 'MenuCreateShowData'
+ QuillAction
+ {
+ Body:
+ [*
+ GlobalOTDTable.Global_ShowRow( relflush );
+ GlobalOTDTable.Global_ShowColumn( relflush );
+ GlobalOTDTable.Global_ShowCell( relflush );
+
+ Global_ShowCell::ShowData( GlobalOTDTable, selection );
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_ListInterfaceTest_MenuDelete_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_ListInterfaceTest_MenuDelete_OnClick.def
new file mode 100644
index 0000000..3f1219b
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_ListInterfaceTest_MenuDelete_OnClick.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: ListInterfaceTest
+Response OnClick (
+ Global_BrokerExecuteLog selection
+) id:Response_ListInterfaceTest_MenuDelete_OnClick
+{
+ #keys: '[414702.0.494333825]'
+ DefinitionID => /ListInterfaceTest/Responsedef_ListInterfaceTest_WebMenu_OnClick
+ Initiator: 'MenuDelete'
+ QuillAction
+ {
+ Body:
+ [*
+ selection.Delete();
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_ListInterfaceTest_MenuSelectionAll_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_ListInterfaceTest_MenuSelectionAll_OnClick.def
new file mode 100644
index 0000000..da04728
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_ListInterfaceTest_MenuSelectionAll_OnClick.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: ListInterfaceTest
+Response OnClick () id:Response_ListInterfaceTest_MenuSelectionAll_OnClick
+{
+ #keys: '[414702.0.494351350]'
+ CanBindMultiple: false
+ DefinitionID => /ListInterfaceTest/Responsedef_ListInterfaceTest_WebMenu_OnClick
+ Initiator: 'MenuSelectionAll'
+ QuillAction
+ {
+ Body:
+ [*
+ this.SelectAll();
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_PanelInterfaceTest_ButtonPullInterfaceDataToIntermediateTable_OnCli.def b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_PanelInterfaceTest_ButtonPullInterfaceDataToIntermediateTable_OnCli.def
new file mode 100644
index 0000000..6dfbdbe
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_PanelInterfaceTest_ButtonPullInterfaceDataToIntermediateTable_OnCli.def
@@ -0,0 +1,42 @@
+Quintiq file version 2.0
+#parent: PanelInterfaceTest/ButtonPullInterfaceDataToIntermediateTable
+Response OnClick () id:Response_PanelInterfaceTest_ButtonPullInterfaceDataToIntermediateTable_OnClick
+{
+ #keys: '[414702.0.459947783]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ Precondition:
+ [*
+ return not isnull( GlobalOTDTable );
+ *]
+ QuillAction
+ {
+ Body:
+ [*
+ GlobalOTDTable.SynchronizationAllMappingBrokerAndAPIByOption( ApplicationMacroPlanner.GetUserName(),
+ CheckboxCustomOrder.Checked(),
+ CheckboxForecast.Checked(),
+ CheckboxUnitOfMeasure_MP.Checked(),
+ CheckboxSalesSegment_MP.Checked(),
+ CheckboxProduct_MP.Checked(),
+ CheckboxConversionFactor.Checked(),
+ CheckboxOperation.Checked(),
+ CheckboxOperationBOM.Checked(),
+ CheckboxProductInLane.Checked(),
+ CheckboxAIPISPIP.Checked(),
+ CheckboxInventorySupply.Checked(),
+ CheckboxStockingPointCost.Checked(),
+ CheckboxOperationCost.Checked(),
+ CheckboxDOI_DSI.Checked(),
+ CheckboxCustomerGrade.Checked(),
+ CheckboxStockingPoint_MP.Checked(),
+ CheckboxCurrency_MP.Checked(),
+ CheckboxCurrencyRate_MP.Checked(),
+ CheckboxLane.Checked(),
+ CheckboxLaneLeg.Checked() );
+
+ WebMessageBox::Information( "鏁版嵁寮�濮嬫媺鍙栦腑锛侊紙浠呴檺涓�浜烘搷浣滐級", true );
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_PanelInterfaceTest_ButtonSynchronizeDataToMacroPlan_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_PanelInterfaceTest_ButtonSynchronizeDataToMacroPlan_OnClick.def
new file mode 100644
index 0000000..0b714ed
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_PanelInterfaceTest_ButtonSynchronizeDataToMacroPlan_OnClick.def
@@ -0,0 +1,24 @@
+Quintiq file version 2.0
+#parent: PanelInterfaceTest/ButtonSynchronizeDataToMacroPlan
+Response OnClick () id:Response_PanelInterfaceTest_ButtonSynchronizeDataToMacroPlan_OnClick
+{
+ #keys: '[414702.0.465857875]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ Precondition:
+ [*
+ return not isnull( GlobalOTDTable ) and not isnull( MacroPlan );
+ *]
+ QuillAction
+ {
+ Body:
+ [*
+ GlobalOTDTable.SynchronizeDataToMacroPlan( MacroPlan,
+ CheckboxUnitOfMeasure_MP.Checked()
+ );
+
+ WebMessageBox::Success( "鍚屾鎴愬姛锛�", true );
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/_ROOT_Component_FormInterfaceTest.def b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/_ROOT_Component_FormInterfaceTest.def
new file mode 100644
index 0000000..a50ad14
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/_ROOT_Component_FormInterfaceTest.def
@@ -0,0 +1,22 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent FormInterfaceTest
+{
+ #keys: '[414702.0.459670964]'
+ BaseType: 'WebForm'
+ Children:
+ [
+ #child: PanelInterfaceOption1
+ #child: PanelInterfaceTest
+ #child: PanelInterfaceGlobal_BrokerExecuteLog
+ #child: PanelInterfaceOption2
+ #child: PanelInterfaceOption3
+ #child: PanelInterfaceOption4
+ ]
+ Properties:
+ [
+ Image: 'BACON'
+ Title: '鎺ュ彛娴嬭瘯'
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_ListIssueWorkOrder.def b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_ListIssueWorkOrder.def
index 23d2fcb..c3f47fb 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_ListIssueWorkOrder.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_ListIssueWorkOrder.def
@@ -28,7 +28,7 @@
]
Properties:
[
- Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductionWorkOrderNumber","title":"ProductionWorkOrderNumber","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductionWorkOrderNumber"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductModel","title":"ProductModel","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductModel"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MaterialDescription","title":"MaterialDescription","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MaterialDescription"}},{"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":"PlannedQuantity","title":"PlannedQuantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PlannedQuantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"WorkOrderType","title":"WorkOrderType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"WorkOrderType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"WorkOrderStatus","title":"WorkOrderStatus","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"WorkOrderStatus"}}]'
+ Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductionWorkOrderNumber","title":"ProductionWorkOrderNumber","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductionWorkOrderNumber"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductModel","title":"Product ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductModel"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MaterialDescription","title":"MaterialDescription","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MaterialDescription"}},{"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":"PlannedQuantity","title":"PlannedQuantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PlannedQuantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"WorkOrderType","title":"WorkOrderType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"WorkOrderType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"WorkOrderStatus","title":"WorkOrderStatus","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"WorkOrderStatus"}}]'
ContextMenu: 'MenuIssueEdit'
Taborder: 2
]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_ListIssueWorkOrder_MenuEdit_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_ListIssueWorkOrder_MenuEdit_OnClick.def
index f516650..d9366a0 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_ListIssueWorkOrder_MenuEdit_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_ListIssueWorkOrder_MenuEdit_OnClick.def
@@ -8,13 +8,23 @@
CanBindMultiple: false
DefinitionID => /ListIssueWorkOrder/Responsedef_ListIssueWorkOrder_WebMenu_OnClick
Initiator: 'MenuEdit'
+ Precondition:
+ [*
+ flag := DataHolderCheckedMasterPlanReleaseWorkOrderTabulation.Data().Size() > 0;
+
+ if ( not flag ) {
+ feedback := "鏈�夋嫨鏁版嵁";
+ }
+
+ return flag;
+ *]
QuillAction
{
Body:
[*
dlg := construct( DialogCreateEditIssueWorkOrder );
- dlg.Edit( selection );
+ dlg.Edit( DataHolderCheckedMasterPlanReleaseWorkOrderTabulation.Data() );
*]
GroupServerCalls: false
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormKpiMatrix/Component_PanelKpiMatrixButton.def b/_Main/UI/MacroPlannerWebApp/Component_FormKpiMatrix/Component_PanelKpiMatrixButton.def
deleted file mode 100644
index 54d1eea..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormKpiMatrix/Component_PanelKpiMatrixButton.def
+++ /dev/null
@@ -1,10 +0,0 @@
-Quintiq file version 2.0
-Component PanelKpiMatrixButton #extension
-{
- Children:
- [
- Component ButtonKpiMatrixRefresh #extension
- {
- }
- ]
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormKpiMatrix/_ROOT_Component_FormKpiMatrix.def b/_Main/UI/MacroPlannerWebApp/Component_FormKpiMatrix/_ROOT_Component_FormKpiMatrix.def
deleted file mode 100644
index fe53993..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormKpiMatrix/_ROOT_Component_FormKpiMatrix.def
+++ /dev/null
@@ -1,10 +0,0 @@
-Quintiq file version 2.0
-#root
-#parent: KpiTrackerWeb
-OrphanComponent FormKpiMatrix #extension
-{
- Children:
- [
- #child: PanelKpiMatrixButton
- ]
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_listContextMenuPriorityFactor.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_listContextMenuPriorityFactor.def
index c6dd966..ada73f4 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_listContextMenuPriorityFactor.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_listContextMenuPriorityFactor.def
@@ -5,17 +5,6 @@
BaseType: 'listContextMenu'
Children:
[
- Component MenuInitData
- {
- #keys: '[414382.0.482890505]'
- BaseType: 'WebMenu'
- Properties:
- [
- Image: 'GEAR'
- Taborder: 3
- Title: 'Init Data'
- ]
- }
Component MenuEdit
{
#keys: '[414382.0.485622263]'
@@ -27,6 +16,39 @@
Title: '缂栬緫'
]
}
+ Component MenuNew
+ {
+ #keys: '[414382.0.593001800]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ Image: 'GEAR_ADD'
+ Taborder: 3
+ Title: '鏂板'
+ ]
+ }
+ Component MenuDel
+ {
+ #keys: '[414382.0.593001811]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ Image: 'GEAR_DELETE'
+ Taborder: 5
+ Title: '鍒犻櫎'
+ ]
+ }
+ Component MenuInit
+ {
+ #keys: '[414382.0.600301960]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ Image: 'GEAR_NEW'
+ Taborder: 6
+ Title: '鍒濆鍖�'
+ ]
+ }
]
Properties:
[
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DataHolderPriorityFactorBusinessType_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DataHolderPriorityFactorBusinessType_OnCreated.def
new file mode 100644
index 0000000..0ba2149
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DataHolderPriorityFactorBusinessType_OnCreated.def
@@ -0,0 +1,21 @@
+Quintiq file version 2.0
+#parent: DataHolderPriorityFactorBusinessType
+Response OnCreated () id:Response_FormPriorityFactor_DataHolderPriorityFactorBusinessType_OnCreated
+{
+ #keys: '[414382.0.539235155]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebComponent_OnCreated'
+ QuillAction
+ {
+ Body:
+ [*
+ //businessTypeList := selectset( GlobalOTDTable,BusinessType,b,true);
+ //this.Data(&businessTypeList);
+
+ list := this.Data();
+ strings := selectuniquevalues( list,Elements,e,e.BusinessTypeName()).Concatenate( ";" );
+ DropDownStringListBusinessType.Strings(strings);
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DataHolderPriorityFactorBusinessType_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DataHolderPriorityFactorBusinessType_OnDataChanged.def
new file mode 100644
index 0000000..c492ed8
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DataHolderPriorityFactorBusinessType_OnDataChanged.def
@@ -0,0 +1,22 @@
+Quintiq file version 2.0
+#parent: DataHolderPriorityFactorBusinessType
+Response OnDataChanged () id:Response_FormPriorityFactor_DataHolderPriorityFactorBusinessType_OnDataChanged
+{
+ #keys: '[414382.0.539235291]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
+ QuillAction
+ {
+ Body:
+ [*
+ //businessTypeList := selectset( GlobalOTDTable,BusinessType,b,true);
+ //this.Data(&businessTypeList);
+ //strings := BusinessType::GetBusinessNameStr( GlobalOTDTable );
+ //DropDownStringListBusinessType.Strings(strings);
+ list := this.Data();
+ strings := selectuniquevalues( list,Elements,e,e.BusinessTypeName()).Concatenate( ";" );
+ DropDownStringListBusinessType.Strings(strings);
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DataHolderPriorityFactorSelect_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DataHolderPriorityFactorSelect_OnDataChanged.def
new file mode 100644
index 0000000..ef61871
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DataHolderPriorityFactorSelect_OnDataChanged.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: DataHolderPriorityFactorSelect
+Response OnDataChanged () id:Response_FormPriorityFactor_DataHolderPriorityFactorSelect_OnDataChanged
+{
+ #keys: '[414382.0.593010798]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
+ QuillAction
+ {
+ Body:
+ [*
+ data := selectset( MacroPlan,PriorityFactor,p,true);
+ this.Data(&data);
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnCreated.def
index 338425b..0865d17 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnCreated.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnCreated.def
@@ -2,15 +2,16 @@
#parent: DropDownStringListBusinessType
Response OnCreated () id:Response_FormPriorityFactor_DropDownStringListBusinessType_OnCreated
{
- #keys: '[414382.0.461201807]'
+ #keys: '[414382.0.539375553]'
CanBindMultiple: false
DefinitionID: 'Responsedef_WebComponent_OnCreated'
QuillAction
{
Body:
[*
- strings := BusinessType::GetBusinessNameStr( GlobalOTDTable );
- this.Strings(strings);
+ info( "create" + DropDownStringListBusinessType.Text());
+ list := PriorityFactor::GetDataByBusinessType( MacroPlan, DropDownStringListBusinessType.Text());
+ DataHolderPriorityFactorSelect.Data(&list);
*]
GroupServerCalls: false
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnSelectionChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnSelectionChanged.def
index 1018d65..a1d8860 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnSelectionChanged.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnSelectionChanged.def
@@ -9,6 +9,7 @@
{
Body:
[*
+ info( "selection" + DropDownStringListBusinessType.Text());
list := PriorityFactor::GetDataByBusinessType( MacroPlan, DropDownStringListBusinessType.Text());
DataHolderPriorityFactorSelect.Data(&list);
*]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuDel_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuDel_OnClick.def
new file mode 100644
index 0000000..8a86cdf
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuDel_OnClick.def
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: ListPriorityFactor
+Response OnClick (
+ PriorityFactor selection
+) id:Response_ListPriorityFactor_MenuDel_OnClick
+{
+ #keys: '[414382.0.593002800]'
+ CanBindMultiple: false
+ DefinitionID => /ListPriorityFactor/Responsedef_ListPriorityFactor_WebMenu_OnClick
+ Initiator: 'MenuDel'
+ QuillAction
+ {
+ Body:
+ [*
+ selection.Delete();
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuInitData_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuInitData_OnClick.def
deleted file mode 100644
index f165c1b..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuInitData_OnClick.def
+++ /dev/null
@@ -1,17 +0,0 @@
-Quintiq file version 2.0
-#parent: ListPriorityFactor
-Response OnClick () id:Response_ListPriorityFactor_MenuInitData_OnClick
-{
- #keys: '[414382.0.482802120]'
- CanBindMultiple: false
- DefinitionID => /ListPriorityFactor/Responsedef_ListPriorityFactor_WebMenu_OnClick
- Initiator: 'MenuInitData'
- QuillAction
- {
- Body:
- [*
- PriorityFactorDetails::CreateTestData( MacroPlan);
- *]
- GroupServerCalls: false
- }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuInit_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuInit_OnClick.def
new file mode 100644
index 0000000..83c36b1
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuInit_OnClick.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: ListPriorityFactor
+Response OnClick () id:Response_ListPriorityFactor_MenuInit_OnClick
+{
+ #keys: '[414382.0.600302015]'
+ CanBindMultiple: false
+ DefinitionID => /ListPriorityFactor/Responsedef_ListPriorityFactor_WebMenu_OnClick
+ Initiator: 'MenuInit'
+ QuillAction
+ {
+ Body:
+ [*
+ // 鍒濆鍖栦紭鍏堢骇鍥犲瓙
+ PriorityFactor::InitData( MacroPlan);
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuNew_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuNew_OnClick.def
new file mode 100644
index 0000000..2d18cad
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuNew_OnClick.def
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: ListPriorityFactor
+Response OnClick () id:Response_ListPriorityFactor_MenuNew_OnClick
+{
+ #keys: '[414382.0.593002709]'
+ CanBindMultiple: false
+ DefinitionID => /ListPriorityFactor/Responsedef_ListPriorityFactor_WebMenu_OnClick
+ Initiator: 'MenuNew'
+ QuillAction
+ {
+ Body:
+ [*
+ dlg := construct( DialogEditPriorityFactor );
+ businessType := DropDownStringListBusinessType.Text();
+ dlg.New( MacroPlan, businessType);
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_OnClick.def "b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_OnClick\043106.def"
similarity index 100%
rename from _Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_OnClick.def
rename to "_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_OnClick\043106.def"
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_OnSelectionChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_OnSelectionChanged.def
new file mode 100644
index 0000000..235a322
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_OnSelectionChanged.def
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: ListPriorityFactor
+Response OnSelectionChanged (
+ PriorityFactor selection
+) id:Response_ListPriorityFactor_OnSelectionChanged
+{
+ #keys: '[414382.0.541275298]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebList_OnSelectionChanged'
+ QuillAction
+ {
+ Body:
+ [*
+ info( "selecion change" );
+ detaisls := PriorityFactorDetails::GetDataByPriorityFactor( selection, MacroPlan);
+ DataHolderPriorityFactorDetailsSelect.Data(&detaisls);
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/_ROOT_Component_FormPriorityFactor.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/_ROOT_Component_FormPriorityFactor.def
index f6e060e..4e4d0d6 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/_ROOT_Component_FormPriorityFactor.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/_ROOT_Component_FormPriorityFactor.def
@@ -25,6 +25,7 @@
[
Label: '浜嬩笟閮�:'
Taborder: 0
+ Visible: false
]
}
#child: ListPriorityFactor
@@ -38,5 +39,34 @@
Taborder: 3
]
}
+ Component DataHolderPriorityFactorBusinessType
+ {
+ #keys: '[414382.0.539205233]'
+ BaseType: 'WebDataHolder'
+ Databinding: 'structured[BusinessType]*'
+ Children:
+ [
+ Component DataExtractorPriorityFactorBusinessType
+ {
+ #keys: '[414382.0.584060499]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'GlobalOTDTable'
+ Source: 'GlobalOTDTable'
+ Taborder: 0
+ Transformation: 'BusinessType'
+ ]
+ }
+ ]
+ Properties:
+ [
+ Taborder: 4
+ ]
+ }
+ ]
+ Properties:
+ [
+ Title: '浼樺厛绾у洜瀛�'
]
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/_ROOT_Component_FormPriorityFactorGrading.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/_ROOT_Component_FormPriorityFactorGrading.def
index bef2ddb..b9ab15b 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/_ROOT_Component_FormPriorityFactorGrading.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/_ROOT_Component_FormPriorityFactorGrading.def
@@ -33,4 +33,8 @@
}
#child: ListPriorityFactorGrading
]
+ Properties:
+ [
+ Title: '浼樺厛绾у洜瀛愮粏鍒�'
+ ]
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_ListPriorityPolicy.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_ListPriorityPolicy.def
index b5d4a7b..33cfc53 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_ListPriorityPolicy.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_ListPriorityPolicy.def
@@ -12,7 +12,7 @@
Properties:
[
DataType: 'structured[PriorityPolicy]'
- Source: 'DataHolderPriorityPolicy'
+ Source: 'DataHolderPriorityPolicyShowList'
Taborder: 0
Transformation: 'Elements'
]
@@ -36,7 +36,7 @@
]
Properties:
[
- Taborder: 2
+ Taborder: 3
]
ResponseDefinitions:
[
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyCoefficient\043902.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyCoefficient\043902.def"
index e2c6e2f..62b4cb9 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyCoefficient\043902.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyCoefficient\043902.def"
@@ -21,7 +21,7 @@
BaseType: 'WebButton'
Properties:
[
- Label: '瀹屾垚'
+ Label: '淇濆瓨'
Taborder: 1
]
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyOperation.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyOperation.def
index 1923a0f..297e8db 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyOperation.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyOperation.def
@@ -40,7 +40,7 @@
]
Properties:
[
- Taborder: 3
+ Taborder: 4
Title: '浼樺厛绾х瓥鐣ラ厤缃�'
]
}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyOperationButton\043713.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyOperationButton\043713.def"
index 9c91139..571a83c 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyOperationButton\043713.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyOperationButton\043713.def"
@@ -11,7 +11,7 @@
BaseType: 'WebButton'
Properties:
[
- Label: '娣诲姞鍥犲瓙'
+ Label: '娣诲姞'
Taborder: 1
]
}
@@ -31,7 +31,7 @@
BaseType: 'WebButton'
Properties:
[
- Label: '*'
+ Label: '-'
Taborder: 3
]
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicyBusinessType_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicyBusinessType_OnCreated.def
new file mode 100644
index 0000000..09cb86c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicyBusinessType_OnCreated.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: DataHolderPriorityPolicyBusinessType
+Response OnCreated () id:Response_FormPriorityPolicy_DataHolderPriorityPolicyBusinessType_OnCreated
+{
+ #keys: '[414382.0.585796031]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebComponent_OnCreated'
+ QuillAction
+ {
+ Body:
+ [*
+ list := this.Data();
+ strings := selectuniquevalues( list,Elements,e,e.BusinessTypeName()).Concatenate( ";" );
+ PriorityPolicyBusinessType.Strings(strings);
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicyBusinessType_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicyBusinessType_OnDataChanged.def
new file mode 100644
index 0000000..3aa1c62
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicyBusinessType_OnDataChanged.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: DataHolderPriorityPolicyBusinessType
+Response OnDataChanged () id:Response_FormPriorityPolicy_DataHolderPriorityPolicyBusinessType_OnDataChanged
+{
+ #keys: '[414382.0.585796110]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
+ QuillAction
+ {
+ Body:
+ [*
+ list := this.Data();
+ strings := selectuniquevalues( list,Elements,e,e.BusinessTypeName()).Concatenate( ";" );
+ PriorityPolicyBusinessType.Strings(strings);
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicyFactor_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicyFactor_OnCreated.def
new file mode 100644
index 0000000..2ec5ac7
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicyFactor_OnCreated.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: DataHolderPriorityPolicyFactor
+Response OnCreated () id:Response_FormPriorityPolicy_DataHolderPriorityPolicyFactor_OnCreated
+{
+ #keys: '[414382.0.586001511]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebComponent_OnCreated'
+ QuillAction
+ {
+ Body:
+ [*
+ list := this.Data();
+ strings := selectuniquevalues( list,Elements,e,e.Name()).Concatenate( ";" );
+ DropDownStringList.Strings(strings);
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicyFactor_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicyFactor_OnDataChanged.def
new file mode 100644
index 0000000..93d0f9c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicyFactor_OnDataChanged.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: DataHolderPriorityPolicyFactor
+Response OnDataChanged () id:Response_FormPriorityPolicy_DataHolderPriorityPolicyFactor_OnDataChanged
+{
+ #keys: '[414382.0.585931640]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
+ QuillAction
+ {
+ Body:
+ [*
+ list := this.Data();
+ strings := selectuniquevalues( list,Elements,e,e.Name()).Concatenate( ";" );
+ DropDownStringList.Strings(strings);
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicySelectBusinessType_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicySelectBusinessType_OnCreated.def
deleted file mode 100644
index d3d9c4a..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicySelectBusinessType_OnCreated.def
+++ /dev/null
@@ -1,17 +0,0 @@
-Quintiq file version 2.0
-#parent: DataHolderPriorityPolicySelectBusinessType
-Response OnCreated () id:Response_FormPriorityPolicy_DataHolderPriorityPolicySelectBusinessType_OnCreated
-{
- #keys: '[414382.0.493813692]'
- CanBindMultiple: false
- DefinitionID: 'Responsedef_WebComponent_OnCreated'
- QuillAction
- {
- Body:
- [*
- this.Data(PriorityPolicyBusinessType.Text());
- *]
- GroupServerCalls: false
- }
-}
-
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicy_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicy_OnCreated.def
new file mode 100644
index 0000000..237513d
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicy_OnCreated.def
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: DataHolderPriorityPolicy
+Response OnCreated () id:Response_FormPriorityPolicy_DataHolderPriorityPolicy_OnCreated
+{
+ #keys: '[414382.0.594152096]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebComponent_OnCreated'
+ QuillAction
+ {
+ Body:
+ [*
+ data := this.Data();
+ businessType := PriorityPolicyBusinessType.Text();
+ list := selectset( data,Elements,e,e.BusinessType() = businessType);
+ DataHolderPriorityPolicyShowList.Data(&list);
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicy_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicy_OnDataChanged.def
index 89b9c11..3388972 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicy_OnDataChanged.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicy_OnDataChanged.def
@@ -2,15 +2,17 @@
#parent: DataHolderPriorityPolicy
Response OnDataChanged () id:Response_FormPriorityPolicy_DataHolderPriorityPolicy_OnDataChanged
{
- #keys: '[414382.0.502145694]'
+ #keys: '[414382.0.595379026]'
CanBindMultiple: false
DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
QuillAction
{
Body:
[*
- list := PriorityPolicy::GetDataByBusinessType( MacroPlan, PriorityPolicyBusinessType.Text());
- this.Data(&list);
+ data := this.Data();
+ businessType := PriorityPolicyBusinessType.Text();
+ list := selectset( data,Elements,e,e.BusinessType() = businessType);
+ DataHolderPriorityPolicyShowList.Data(&list);
*]
GroupServerCalls: false
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuDelete_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuDelete_OnClick.def
index 5517113..96d7545 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuDelete_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuDelete_OnClick.def
@@ -12,6 +12,7 @@
{
Body:
[*
+
selection.Delete();
*]
GroupServerCalls: false
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuEdit_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuEdit_OnClick.def
index b956173..e5eb7a8 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuEdit_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuEdit_OnClick.def
@@ -12,8 +12,21 @@
{
Body:
[*
- PanelPriorityPolicyOperation.Visible(true);
+ dlg := construct( DialogNewPriorityPolicy );
+ businessType := PriorityPolicyBusinessType.Text();
+ dlg.Edit( selection);
+
PanelPriorityPolicyOperationName.Text(selection.Name());
+
+ businessType := PriorityPolicyBusinessType.Text();
+ str := PriorityFactor::GetNameList( MacroPlan, businessType);
+ DropDownStringList.Strings(str);
+
+ LabelFormula.Text(selection.Formula());
+ LabelCalculateValue.Text(selection.CalculateValue());
+
+ data := shadow( selection );
+ DataHolderEditPriorityPolicy.Data( &data );
*]
GroupServerCalls: false
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_OnUserSelectionChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_OnUserSelectionChanged.def
index e16df3d..09c165d 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_OnUserSelectionChanged.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_OnUserSelectionChanged.def
@@ -17,11 +17,11 @@
str := PriorityFactor::GetNameList( MacroPlan, businessType);
DropDownStringList.Strings(str);
+ LabelFormula.Text(selection.Formula());
+ LabelCalculateValue.Text(selection.CalculateValue());
+
data := shadow( selection );
DataHolderEditPriorityPolicy.Data( &data );
-
- //coefficient := PriorityFactor::GetCoeffcientByName( MacroPlan,businessType,DropDownStringList.Text());
- //LabelPriorityPolicyCoefficient.Text([String]coefficient);
*]
GroupServerCalls: false
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonAddPriorityPolicy_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonAddPriorityPolicy_OnClick.def
index 3b56ae5..383cbb2 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonAddPriorityPolicy_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonAddPriorityPolicy_OnClick.def
@@ -5,6 +5,12 @@
#keys: '[414382.0.502145449]'
CanBindMultiple: false
DefinitionID: 'Responsedef_WebButton_OnClick'
+ Precondition:
+ [*
+ feedback := "璇ヤ紭鍏堢骇鍥犲瓙宸茶閫夋嫨."
+
+ return not LabelFormula.Text() ~ DropDownStringList.Text();
+ *]
QuillAction
{
Body:
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonRollBack_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonRollBack_OnClick.def
index f8952da..d7adf1d 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonRollBack_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonRollBack_OnClick.def
@@ -13,7 +13,7 @@
formulaText := PriorityPolicy::RollBackStr( MacroPlan,businessType,LabelFormula.Text());
LabelFormula.Text(formulaText);
- calculateTest := PriorityPolicy::RollBackStr( MacroPlan,businessType,LabelCalculateValue.Text());
+ calculateTest := PriorityPolicy::RollBackCalcStr( MacroPlan,businessType,LabelCalculateValue.Text());
LabelCalculateValue.Text(calculateTest);
*]
GroupServerCalls: false
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_DropDownStringList_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_DropDownStringList_OnCreated.def
new file mode 100644
index 0000000..992b235
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_DropDownStringList_OnCreated.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: PanelPriorityPolicyOperationButton/DropDownStringList
+Response OnCreated () id:Response_PanelPriorityPolicyOperationButton_DropDownStringList_OnCreated
+{
+ #keys: '[414382.0.539822108]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebComponent_OnCreated'
+ QuillAction
+ {
+ Body:
+ [*
+ //strs := PriorityFactor::GetNameList( MacroPlan,DropDownStringList.Text());
+ //this.Strings(strs);
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_DropDownStringList_OnSelectionCh.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_DropDownStringList_OnSelectionCh.def
index 9debaba..9fc4b38 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_DropDownStringList_OnSelectionCh.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_DropDownStringList_OnSelectionCh.def
@@ -9,11 +9,9 @@
{
Body:
[*
- info( "select changeed" );
businessType := PriorityPolicyBusinessType.Text();
coefficient := PriorityFactor::GetCoeffcientByName( MacroPlan,businessType,DropDownStringList.Text());
LabelPriorityPolicyCoefficient.Text([String]coefficient);
- info("coefficient := " + [String]coefficient );
*]
GroupServerCalls: false
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PriorityPolicyBusinessType_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PriorityPolicyBusinessType_OnCreated.def
index 4fd7821..ff9a42e 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PriorityPolicyBusinessType_OnCreated.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PriorityPolicyBusinessType_OnCreated.def
@@ -9,8 +9,11 @@
{
Body:
[*
- strings := BusinessType::GetBusinessNameStr( GlobalOTDTable );
+ strings := BusinessType::GetScenarioNamesStr( GlobalOTDTable );
this.Strings(strings);
+
+ list := PriorityPolicy::GetDataByBusinessType( MacroPlan, PriorityPolicyBusinessType.Text());
+ DataHolderPriorityPolicyShowList.Data(&list);
*]
GroupServerCalls: false
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PriorityPolicyBusinessType_OnSelectionChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PriorityPolicyBusinessType_OnSelectionChanged.def
index 6ed7e84..ffc5263 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PriorityPolicyBusinessType_OnSelectionChanged.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PriorityPolicyBusinessType_OnSelectionChanged.def
@@ -10,7 +10,7 @@
Body:
[*
list := PriorityPolicy::GetDataByBusinessType( MacroPlan, PriorityPolicyBusinessType.Text());
- DataHolderPriorityPolicy.Data(&list);
+ DataHolderPriorityPolicyShowList.Data(&list);
*]
GroupServerCalls: false
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/_ROOT_Component_FormPriorityPolicy.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/_ROOT_Component_FormPriorityPolicy.def
index cd5d437..12068c1 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/_ROOT_Component_FormPriorityPolicy.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/_ROOT_Component_FormPriorityPolicy.def
@@ -22,9 +22,24 @@
#keys: '[414382.0.487792124]'
BaseType: 'WebDataHolder'
Databinding: 'structured[PriorityPolicy]*'
+ Children:
+ [
+ Component DataExtractorPriorityPolicy216
+ {
+ #keys: '[414382.0.593061574]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'MacroPlan'
+ Source: 'MacroPlan'
+ Taborder: 0
+ Transformation: 'PriorityPolicy'
+ ]
+ }
+ ]
Properties:
[
- Taborder: 1
+ Taborder: 2
]
}
#child: ListPriorityPolicy
@@ -36,7 +51,67 @@
Databinding: 'shadow[PriorityPolicy]*'
Properties:
[
- Taborder: 4
+ Taborder: 5
+ ]
+ }
+ Component DataHolderPriorityPolicyBusinessType
+ {
+ #keys: '[414382.0.585736261]'
+ BaseType: 'WebDataHolder'
+ Databinding: 'structured[BusinessType]*'
+ Children:
+ [
+ Component DataExtractorPriorityPolicyBusinessType
+ {
+ #keys: '[414382.0.585207663]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'GlobalOTDTable'
+ Source: 'GlobalOTDTable'
+ Taborder: 0
+ Transformation: 'BusinessType'
+ ]
+ }
+ ]
+ Properties:
+ [
+ Taborder: 6
+ ]
+ }
+ Component DataHolderPriorityPolicyFactor
+ {
+ #keys: '[414382.0.585208237]'
+ BaseType: 'WebDataHolder'
+ Databinding: 'structured[PriorityFactor]*'
+ Children:
+ [
+ Component DataExtractorPriorityPolicyFactor
+ {
+ #keys: '[414382.0.585705356]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'MacroPlan'
+ Source: 'MacroPlan'
+ Taborder: 0
+ Transformation: 'PriorityFactor'
+ ]
+ }
+ ]
+ Properties:
+ [
+ Taborder: 7
+ ]
+ }
+ Component DataHolderPriorityPolicyShowList
+ {
+ #keys: '[414382.0.593062135]'
+ BaseType: 'WebDataHolder'
+ Databinding: 'structured[PriorityPolicy]*'
+ Properties:
+ [
+ Taborder: 1
]
}
]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/_ROOT_Component_FormPriorityResult.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/_ROOT_Component_FormPriorityResult.def
index 99f642d..aeac56e 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/_ROOT_Component_FormPriorityResult.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/_ROOT_Component_FormPriorityResult.def
@@ -30,4 +30,8 @@
]
}
]
+ Properties:
+ [
+ Title: '浼樺厛绾х粨鏋滈〉闈�'
+ ]
}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenarioAndDoSync_OnClick\043545.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenarioAndDoSync_OnClick\043545.def"
index 5140232..8e69dc4 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenarioAndDoSync_OnClick\043545.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenarioAndDoSync_OnClick\043545.def"
@@ -16,7 +16,7 @@
dlg := construct( DialogCreateEditScenario );
dlg.checkboxEnableSync().Visible( true );
dlg.dropDownStringListGeneral().Visible( true );
- dlg.dropDownStringListGeneral().Strings( ScenarioManager::AvailableBusinessTypes() );
+ dlg.dropDownStringListGeneral().Strings( ScenarioManager::AvailableScenarioNames( GlobalOTDTable ) );
dlg.checkboxIsKeyProduct().Visible( true );
dlg.checkboxCreatePurchaseSupplyProduct().Visible( true );
dlg.NewScenario( ScenarioManager, selection, true );
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenarioAndDoSync_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenarioAndDoSync_OnClick.def
index 126a965..4c3b7f0 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenarioAndDoSync_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenarioAndDoSync_OnClick.def
@@ -17,7 +17,7 @@
dlg := construct( DialogCreateEditScenario );
dlg.checkboxEnableSync().Visible( true );
dlg.dropDownStringListGeneral().Visible( true );
- dlg.dropDownStringListGeneral().Strings( ScenarioManager::AvailableBusinessTypes() );
+ dlg.dropDownStringListGeneral().Strings( ScenarioManager::AvailableScenarioNames( GlobalOTDTable ) );
dlg.checkboxIsKeyProduct().Visible( true );
dlg.checkboxCreatePurchaseSupplyProduct().Visible( true );
parent := selection.Element( 0 ).Parent();
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenario_OnClick\043549.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenario_OnClick\043549.def"
index b9fdf28..607ae7d 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenario_OnClick\043549.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenario_OnClick\043549.def"
@@ -17,7 +17,7 @@
dlg.checkboxEnableSync().Checked( false );
dlg.checkboxEnableSync().Visible( false );
dlg.dropDownStringListGeneral().Visible( false );
- dlg.dropDownStringListGeneral().Strings( ScenarioManager::AvailableBusinessTypes() );
+ dlg.dropDownStringListGeneral().Strings( ScenarioManager::AvailableScenarioNames( GlobalOTDTable ) );
dlg.checkboxIsKeyProduct().Visible( false );
dlg.checkboxCreatePurchaseSupplyProduct().Visible( false );
dlg.NewScenario( ScenarioManager, selection );
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenario_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenario_OnClick.def
index 913510e..55945ed 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenario_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenario_OnClick.def
@@ -18,7 +18,7 @@
dlg.checkboxEnableSync().Checked( false );
dlg.checkboxEnableSync().Visible( false );
dlg.dropDownStringListGeneral().Visible( false );
- dlg.dropDownStringListGeneral().Strings( ScenarioManager::AvailableBusinessTypes() );
+ dlg.dropDownStringListGeneral().Strings( ScenarioManager::AvailableScenarioNames( GlobalOTDTable ) );
dlg.checkboxIsKeyProduct().Visible( false );
dlg.checkboxCreatePurchaseSupplyProduct().Visible( false );
parent := selection.Element( 0 ).Parent();
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuEdit_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuEdit_OnClick.def
index fd08942..9c2d77f 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuEdit_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuEdit_OnClick.def
@@ -18,7 +18,7 @@
// Edit scenario
dlg := construct( DialogCreateEditScenario );
dlg.dropDownStringListGeneral().Visible( selection.EnableSync() );
- dlg.dropDownStringListGeneral().Strings( ScenarioManager::AvailableBusinessTypes() );
+ dlg.dropDownStringListGeneral().Strings( ScenarioManager::AvailableScenarioNames( GlobalOTDTable ) );
dlg.checkboxIsKeyProduct().Visible( selection.EnableSync() );
dlg.checkboxCreatePurchaseSupplyProduct().Visible( selection.EnableSync() );
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/Component_MatrixEditorShowInterfaceData.def b/_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/Component_MatrixEditorShowInterfaceData.def
new file mode 100644
index 0000000..f73b35a
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/Component_MatrixEditorShowInterfaceData.def
@@ -0,0 +1,97 @@
+Quintiq file version 2.0
+Component MatrixEditorShowInterfaceData
+{
+ #keys: '[414702.0.491402111]'
+ BaseType: 'WebMatrixEditor'
+ Children:
+ [
+ Component MatrixEditorCellShowInterfaceData
+ {
+ #keys: '[414702.0.491402112]'
+ BaseType: 'WebMatrixEditorCell'
+ Children:
+ [
+ Component DataExtractorShowInterfaceData
+ {
+ #keys: '[414702.0.491402113]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'GlobalOTDTable'
+ Source: 'GlobalOTDTable'
+ Taborder: 0
+ Transformation: 'Global_ShowCell'
+ ]
+ }
+ ]
+ Properties:
+ [
+ Attributes: 'Value'
+ Column: 'Global_ShowColumn'
+ Row: 'Global_ShowRow'
+ Taborder: 0
+ ]
+ }
+ Component MatrixEditorRowsShowInterfaceData
+ {
+ #keys: '[414702.0.491402116]'
+ BaseType: 'WebMatrixEditorHeaderLevel'
+ Children:
+ [
+ Component DataExtractor703
+ {
+ #keys: '[414702.0.491402117]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'GlobalOTDTable'
+ Source: 'GlobalOTDTable'
+ Taborder: 0
+ Transformation: 'Global_ShowRow'
+ ]
+ }
+ ]
+ Properties:
+ [
+ Legend: 'RowNr'
+ SortCriteria: 'RowNr'
+ Taborder: 1
+ ]
+ }
+ Component MatrixEditorColumnsShowInterfaceData
+ {
+ #keys: '[414702.0.491402120]'
+ BaseType: 'WebMatrixEditorHeaderLevel'
+ Children:
+ [
+ Component DataExtractor253
+ {
+ #keys: '[414702.0.491402121]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'GlobalOTDTable'
+ Source: 'GlobalOTDTable'
+ Taborder: 0
+ Transformation: 'Global_ShowColumn'
+ ]
+ }
+ ]
+ Properties:
+ [
+ Legend: 'ColumnName'
+ SortCriteria: 'ColumnIndex'
+ Taborder: 2
+ ]
+ }
+ #child: matrixEditorActionBarPageShowInterfaceData
+ #child: matrixeditorContextMenuShowInterfaceData
+ ]
+ Properties:
+ [
+ Columns: 'MatrixEditorColumnsShowInterfaceData'
+ ContextMenu: 'matrixeditorContextMenuShowInterfaceData'
+ Rows: 'MatrixEditorRowsShowInterfaceData'
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/Component_matrixEditorActionBarPageShowInterfaceData.def b/_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/Component_matrixEditorActionBarPageShowInterfaceData.def
new file mode 100644
index 0000000..92920fe
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/Component_matrixEditorActionBarPageShowInterfaceData.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component matrixEditorActionBarPageShowInterfaceData
+{
+ #keys: '[414702.0.491402124]'
+ BaseType: 'matrixEditorActionBarPage'
+ Properties:
+ [
+ Taborder: 3
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/Component_matrixeditorContextMenuShowInterfaceData.def b/_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/Component_matrixeditorContextMenuShowInterfaceData.def
new file mode 100644
index 0000000..d8c917e
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/Component_matrixeditorContextMenuShowInterfaceData.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component matrixeditorContextMenuShowInterfaceData
+{
+ #keys: '[414702.0.491402127]'
+ BaseType: 'matrixeditorContextMenu'
+ Properties:
+ [
+ Taborder: 4
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/_ROOT_Component_FormShowInterfaceData.def b/_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/_ROOT_Component_FormShowInterfaceData.def
new file mode 100644
index 0000000..82115f2
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/_ROOT_Component_FormShowInterfaceData.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent FormShowInterfaceData
+{
+ #keys: '[414702.0.484442828]'
+ BaseType: 'WebForm'
+ Children:
+ [
+ #child: MatrixEditorShowInterfaceData
+ ]
+ Properties:
+ [
+ Image: 'PROJECTOR'
+ Title: '鎺ュ彛鏁版嵁鏄剧ず'
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Material/Response_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Material/Response_OnCreated.def
index 1b87aa1..0b8df6f 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Material/Response_OnCreated.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Material/Response_OnCreated.def
@@ -21,9 +21,12 @@
{
JInfo := JSON::Parse( SelectItem.ValueJsonString());
lb_SUK_FAACM.Text(JInfo.Get( "ParentSKU").GetString());
+ lb_SKUName_FAACM.Text(JInfo.Get( "ParentSKUName").GetString());
lb_MaterialCode_FAACM.Text(JInfo.Get( "SKU").GetString());
+ lb_MaterialName.Text(JInfo.Get( "MaterialName").GetString());
lb_Unit_FAACM.Text(JInfo.Get( "Unit").GetString());
lb_Operator_FAACM.Text(ApplicationMacroPlanner.GetUserName());
+ lb_MaterialType_FAACM.Text(JInfo.Get( "MaterialType").GetString());
txt_CustomID_FAACM.Text(JInfo.Get( "CustomCode").GetString());
txt_CustomName_FAACM.Text(JInfo.Get( "CustomName").GetString());
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_List832_OnDoubleClick.def b/_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_List832_OnDoubleClick.def
index 8519bc2..b2a673b 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_List832_OnDoubleClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_List832_OnDoubleClick.def
@@ -16,6 +16,7 @@
// 棰勬祴璁㈠崟鍩烘湰淇℃伅
CustomCode:="";
CustomName:="";
+ SKUName:="";
SValueJsonString:="";
// 鑾峰彇瀹㈡埛鍚嶇О鍜屽鎴稩D
if(txtSaveForecastData_FM.Text().Length()>0)
@@ -23,6 +24,7 @@
jForecast := JSON::Parse( txtSaveForecastData_FM.Text());
CustomCode := jForecast.Get( "CustomCode").GetString();
CustomName := jForecast.Get( "CustomName").GetString();
+ SKUName := jForecast.Get( "SKUName").GetString();
}
if(selection.MaterialType()="鍗婃垚鍝�")
@@ -33,7 +35,7 @@
JForecast := JSON::Parse(txtSaveForecastData_FM.Text());
ForecastID := JForecast.Get( "ForecastID").GetString();
}
- jResult := H_FunctionClass::SM_GetMaterialData( MacroPlan,selection.SKU(),selection.NeedQty(), ForecastID,"-",selection.NeedDate());
+ jResult := H_FunctionClass::SM_GetMaterialData( MacroPlan,selection.SKU(),selection.NeedQty(), ForecastID,"-",selection.NeedDate(),GlobalOTDTable);
if(jResult.Get( "Status").GetBoolean())
{
de_dh_FM_ProductMP.FixedFilter( "object.ParentSKU() = " + selection.SKU().AsQUILL()
@@ -57,6 +59,7 @@
.Add( "Unit",selection.Unit())
.Add( "CustomCode",CustomCode)
.Add( "ParentSKU",lb_SUK_FM.Text())
+ .Add( "ParentSKUName",SKUName)
.Add( "CustomName",CustomName).Build().AsString();
}
if(isnull( SelectItem))
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_Panel418_btn_Add_FM_OnClick\043975.def" "b/_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_Panel418_btn_Add_FM_OnClick\043975.def"
index dd32915..45e0871 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_Panel418_btn_Add_FM_OnClick\043975.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_Panel418_btn_Add_FM_OnClick\043975.def"
@@ -20,12 +20,14 @@
CustomName:="";
SValue:="";
SValueJsonString:="";
+ SKUName:="";
// 鑾峰彇瀹㈡埛鍚嶇О鍜屽鎴稩D
if(txtSaveForecastData_FM.Text().Length()>0)
{
jForecast := JSON::Parse( txtSaveForecastData_FM.Text());
CustomCode := jForecast.Get( "CustomCode").GetString();
CustomName := jForecast.Get( "CustomName").GetString();
+ SKUName := jForecast.Get( "SKUName").GetString();
}
if(not isnull(selection))
{
@@ -36,6 +38,7 @@
.Add( "Unit",selection.Unit())
.Add( "CustomCode",CustomCode)
.Add( "ParentSKU",lb_SUK_FM.Text())
+ .Add( "ParentSKUName",SKUName)
.Add( "CustomName",CustomName).Build().AsString();
}
if( isnull( SelectItem))
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_Panel351.def b/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_Panel351.def
index 130115e..2d6bd11 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_Panel351.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_Panel351.def
@@ -11,9 +11,10 @@
BaseType: 'WebButton'
Properties:
[
+ ButtonSize: 'compact'
Description: '璁㈠崟鏂板鍙嶇/鎺堟潈'
Label: '璁㈠崟鏂板鍙嶇/鎺堟潈'
- Taborder: 1
+ Taborder: 0
]
ResponseDefinitions:
[
@@ -39,9 +40,10 @@
BaseType: 'WebButton'
Properties:
[
+ ButtonSize: 'compact'
Description: '鍘熸枡鏂板鍙嶇/鎺堟潈'
Label: '鍘熸枡鏂板鍙嶇/鎺堟潈'
- Taborder: 2
+ Taborder: 1
]
ResponseDefinitions:
[
@@ -61,28 +63,17 @@
}
]
}
- Component btn_InitialData778
- {
- #keys: '[414724.0.115504406]'
- BaseType: 'WebButton'
- Properties:
- [
- Description: '鍔犺浇鏁版嵁锛堝亣鐨勶紝鍚庣画闇�瑕佸鎺ユ暟鎹級'
- Label: '鍔犺浇棰勬祴璁㈠崟鏁版嵁'
- Taborder: 0
- Visible: false
- ]
- }
Component btn_OrderH_FOF
{
#keys: '[414724.0.165490408]'
BaseType: 'WebButton'
Properties:
[
+ ButtonSize: 'compact'
Description: 'ERO璁㈠崟鍐插噺'
Image: 'AMMUNITION_BOX_CLOSED'
Label: 'ERP璁㈠崟鍐插噺'
- Taborder: 3
+ Taborder: 2
]
}
Component txt_QueryContent_FOF
@@ -92,7 +83,7 @@
Properties:
[
PlaceHolder: '妯$硦鎼滅储'
- Taborder: 4
+ Taborder: 3
]
}
Component btn_Query_FOF
@@ -105,7 +96,7 @@
Description: '鏌ヨ'
Image: 'VIEW'
Label: '鏌ヨ'
- Taborder: 5
+ Taborder: 4
]
}
]
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel351_btn_Add_Material_FOF503_OnClick\043222.def" "b/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel351_btn_Add_Material_FOF503_OnClick\043222.def"
index bda5c5d..67308a0 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel351_btn_Add_Material_FOF503_OnClick\043222.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel351_btn_Add_Material_FOF503_OnClick\043222.def"
@@ -18,6 +18,7 @@
{
MacroPlan.H_MessagePassing(relnew,FKey :="FrmOrderForecast",ItemKey := "ListSelect",
ValueJsonString := JSON::Object().Add( "SKU",selection.SKU())
+ .Add( "SKUName",selection.SKUName())
.Add( "Util",selection.Unit())
.Add( "CustomCode",selection.CustomCode())
.Add( "CustomName",selection.CustomName())
@@ -28,6 +29,7 @@
else
{
SelectItem.ValueJsonString(JSON::Object().Add( "SKU",selection.SKU())
+ .Add( "SKUName",selection.SKUName())
.Add( "Util",selection.Unit())
.Add( "CustomCode",selection.CustomCode())
.Add( "CustomName",selection.CustomName())
@@ -36,7 +38,7 @@
.Add( "NeedTime",selection.Month().AsQUILL()).Build().AsString());
}
- jResult := H_FunctionClass::SM_GetMaterialData( MacroPlan,selection.SKU(),selection.ForecastQty(),selection.ID(),"-",selection.Month());
+ jResult := H_FunctionClass::SM_GetMaterialData( MacroPlan,selection.SKU(),selection.ForecastQty(),selection.ID(),"-",selection.Month(),GlobalOTDTable);
if(jResult.Get( "Status").GetBoolean())
{
Application.OpenForm( "FrmMaterial","popout");
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel351_btn_Add_Order_FOF449_OnClick\043880.def" "b/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel351_btn_Add_Order_FOF449_OnClick\043880.def"
index 8eb0570..7432121 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel351_btn_Add_Order_FOF449_OnClick\043880.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel351_btn_Add_Order_FOF449_OnClick\043880.def"
@@ -16,10 +16,12 @@
SelectItem := select( MacroPlan,H_MessagePassing,Obj,Obj.FKey()="FrmOrderForecast" and Obj.ItemKey()="ListSelect");
if( isnull( SelectItem))
{
+
MacroPlan.H_MessagePassing(relnew,FKey :="FrmOrderForecast",ItemKey := "ListSelect",
ValueJsonString := JSON::Object().Add( "SKU",selection.SKU())
.Add( "Util",selection.Unit())
.Add( "CustomCode",selection.CustomCode())
+ .Add( "SKUName",selection.SKUName())
.Add( "CustomName",selection.CustomName()).Build().AsString());
}
else
@@ -27,6 +29,7 @@
SelectItem.ValueJsonString(JSON::Object().Add( "SKU",selection.SKU())
.Add( "Util",selection.Unit())
.Add( "CustomCode",selection.CustomCode())
+ .Add( "SKUName",selection.SKUName())
.Add( "CustomName",selection.CustomName()).Build().AsString());
}
Application.OpenForm( "FrmAuthorizeAndCountersign_Order","modal");
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel351_btn_InitialData778_OnClick\043971.def" "b/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel351_btn_InitialData778_OnClick\043971.def"
deleted file mode 100644
index 7ec4937..0000000
--- "a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel351_btn_InitialData778_OnClick\043971.def"
+++ /dev/null
@@ -1,35 +0,0 @@
-Quintiq file version 2.0
-#parent: Panel351/btn_InitialData778
-Response OnClick () id:Response_Panel351_btn_InitialData778_OnClick_971
-{
- #keys: '[414724.0.141222418]'
- CanBindMultiple: false
- DefinitionID: 'Responsedef_WebButton_OnClick'
- QuillAction
- {
- Body:
- [*
- //// 娌℃湁鐢ㄧ殑鎸夐挳鍜屽嚱鏁帮紝鍙负浜嗘祴璇曠敓鎴愬亣鏁版嵁銆�
- //StrCustoms:="XM_2023,灏忕背;HW_2023,鍗庝负;OV_2023,VIVO;OP_2023,OPPO;HX_2023,娴蜂俊;YJ_2023,涓�鍔�;HE_2023,娴峰皵;GL_2023,鏍煎姏;";
- //ArrayCustom := StrCustoms.Tokenize( ";"); //8涓鎴�
- //idx :=0;
- //for( i:=0;i<20;i:=i+1)
- //{
- // idx :=Number::Random( 0,7);
- // arrCustomInfo := ArrayCustom.Element( idx).Tokenize( ",");
- // MacroPlan.H_Forecast(relnew, CustomName := arrCustomInfo.Element( 1),CustomCode := arrCustomInfo.Element( 0),ForecastQty := Number::Random( 100,5000),
- // Department := "閿�鍞�1閮�",NeedTime := Date::ActualDate(),OrderCode := H_FunctionClass::SM_GenerateID( "OF") ,SKU := "SKU-CP-2023-N"+(Number::Random( 1000,9999)).AsQUILL(),Util := "PCS");
- //
- //}
- //// 鐢熸垚棰勬祴 瀹炴椂鏁版嵁锛屽弽绛炬暟鎹紝鎺堟潈鏁版嵁锛堝弽绛� 鎺堟潈榛樿涓�0锛屽鑷姩鍒涘缓锛岃繖閲屼笉鍐嶆坊鍔狅級
- // traverse(MacroPlan,H_Forecast ,Obj,not isnull(Obj) )
- //{
- // MacroPlan.H_OrderForecastRealQty(relnew,CustomID := Obj.CustomCode(),CustomName := Obj.CustomName(),ForecatsQty := Obj.ForecastQty(),
- // ForecatsRealQty := Obj.ForecastQty(),ID := H_FunctionClass::SM_GenerateID( "OF"),Month := Date::ActualDate(),
- // OrderCode := Obj.OrderCode(),SKU := Obj.SKU(),Unit := Obj.Util());
- //
- //}
- *]
- GroupServerCalls: false
- }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_liH_Forecast_OnDoubleClick.def b/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_liH_Forecast_OnDoubleClick.def
index c178467..ac7e8b0 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_liH_Forecast_OnDoubleClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_liH_Forecast_OnDoubleClick.def
@@ -16,6 +16,7 @@
{
MacroPlan.H_MessagePassing(relnew,FKey :="FrmOrderForecast",ItemKey := "ListSelect",
ValueJsonString := JSON::Object().Add( "SKU",selection.SKU())
+ .Add( "SKUName",selection.SKUName())
.Add( "Util",selection.Unit())
.Add( "CustomCode",selection.CustomCode())
.Add( "CustomName",selection.CustomName())
@@ -26,6 +27,7 @@
else
{
SelectItem.ValueJsonString(JSON::Object().Add( "SKU",selection.SKU())
+ .Add( "SKUName",selection.SKUName())
.Add( "Util",selection.Unit())
.Add( "CustomCode",selection.CustomCode())
.Add( "CustomName",selection.CustomName())
@@ -34,7 +36,7 @@
.Add( "NeedTime",selection.Month().AsQUILL()).Build().AsString());
}
- jResult := H_FunctionClass::SM_GetMaterialData( MacroPlan,selection.SKU(),selection.ForecastQty(),selection.ID(),"-",selection.Month());
+ jResult := H_FunctionClass::SM_GetMaterialData( MacroPlan,selection.SKU(),selection.ForecastQty(),selection.ID(),"-",selection.Month(),GlobalOTDTable );
if(jResult.Get( "Status").GetBoolean())
{
Application.OpenForm( "FrmMaterial","popout");
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Frm_TEST/Component_List212.def b/_Main/UI/MacroPlannerWebApp/Component_Frm_TEST/Component_List212.def
deleted file mode 100644
index d04a4cb..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_Frm_TEST/Component_List212.def
+++ /dev/null
@@ -1,41 +0,0 @@
-Quintiq file version 2.0
-Component List212
-{
- #keys: '[414724.0.153225431]'
- BaseType: 'WebList'
- Children:
- [
- Component DataExtractor924
- {
- #keys: '[414724.0.153225432]'
- BaseType: 'WebDataExtractor'
- Properties:
- [
- DataType: 'MacroPlan'
- Source: 'MacroPlan'
- Taborder: 0
- Transformation: 'MappingProduct'
- ]
- }
- #child: listActionBarPage441
- Component DataSetLevel622
- {
- #keys: '[414724.0.153225437]'
- BaseType: 'WebDataSetLevel'
- Children:
- [
- #child: listContextMenu182
- ]
- Properties:
- [
- Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessType","title":"BusinessType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BusinessType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CommonBusiness","title":"CommonBusiness","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CommonBusiness"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"EndDate","title":"EndDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"EndDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ID","title":"ID","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsCommon","title":"IsCommon","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsCommon"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"KeyProduct","title":"KeyProduct","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"KeyProduct"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Name","title":"Name","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Notes","title":"Notes","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Notes"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductMajorType","title":"ProductMajorType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductMajorType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductSubclassType","title":"ProductSubclassType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductSubclassType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ShelfLife","title":"ShelfLife","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ShelfLife"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasureName","title":"UnitOfMeasureName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasureName"}}]'
- ContextMenu: 'listContextMenu182'
- Taborder: 2
- ]
- }
- ]
- Properties:
- [
- Taborder: 1
- ]
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Frm_TEST/Component_listActionBarPage441.def b/_Main/UI/MacroPlannerWebApp/Component_Frm_TEST/Component_listActionBarPage441.def
deleted file mode 100644
index bb08f37..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_Frm_TEST/Component_listActionBarPage441.def
+++ /dev/null
@@ -1,10 +0,0 @@
-Quintiq file version 2.0
-Component listActionBarPage441
-{
- #keys: '[414724.0.153225434]'
- BaseType: 'listActionBarPage'
- Properties:
- [
- Taborder: 1
- ]
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Frm_TEST/Component_listContextMenu182.def b/_Main/UI/MacroPlannerWebApp/Component_Frm_TEST/Component_listContextMenu182.def
deleted file mode 100644
index e5e38ee..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_Frm_TEST/Component_listContextMenu182.def
+++ /dev/null
@@ -1,10 +0,0 @@
-Quintiq file version 2.0
-Component listContextMenu182
-{
- #keys: '[414724.0.153225439]'
- BaseType: 'listContextMenu'
- Properties:
- [
- Taborder: 0
- ]
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Frm_TEST/Response_Button593_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_Frm_TEST/Response_Button593_OnClick.def
deleted file mode 100644
index d37a96f..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_Frm_TEST/Response_Button593_OnClick.def
+++ /dev/null
@@ -1,24 +0,0 @@
-Quintiq file version 2.0
-#parent: Button593
-Response OnClick () id:Response_Frm_TEST_Button593_OnClick
-{
- #keys: '[414724.0.153411735]'
- CanBindMultiple: false
- DefinitionID: 'Responsedef_WebButton_OnClick'
- QuillAction
- {
- Body:
- [*
- HObj := H_FunctionClass::SM_GetProductInfo( MacroPlan,"");
- if( not isnull( HObj))
- {
- WebMessageBox::Information( HObj.BusinessType());
- }
- else
- {
- WebMessageBox::Information( "寰楀埌鐨勭┖鍊�");
- }
- *]
- GroupServerCalls: false
- }
-}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_Frm_TEST/Response_ButtonERP\350\256\242\345\215\225_OnClick.def" "b/_Main/UI/MacroPlannerWebApp/Component_Frm_TEST/Response_ButtonERP\350\256\242\345\215\225_OnClick.def"
deleted file mode 100644
index e2bd314..0000000
--- "a/_Main/UI/MacroPlannerWebApp/Component_Frm_TEST/Response_ButtonERP\350\256\242\345\215\225_OnClick.def"
+++ /dev/null
@@ -1,16 +0,0 @@
-Quintiq file version 2.0
-#parent: ButtonERP璁㈠崟
-Response OnClick () id:Response_Frm_TEST_ButtonERP璁㈠崟_OnClick
-{
- #keys: '[414724.0.164341791]'
- CanBindMultiple: false
- DefinitionID: 'Responsedef_WebButton_OnClick'
- QuillAction
- {
- Body:
- [*
- H_FunctionClass::SM_OrderHedging( MacroPlan,true,"System","ERP璁㈠崟");
- *]
- GroupServerCalls: false
- }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Frm_TEST/_ROOT_Component_Frm_TEST.def b/_Main/UI/MacroPlannerWebApp/Component_Frm_TEST/_ROOT_Component_Frm_TEST.def
deleted file mode 100644
index 356e36c..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_Frm_TEST/_ROOT_Component_Frm_TEST.def
+++ /dev/null
@@ -1,63 +0,0 @@
-Quintiq file version 2.0
-#root
-#parent: MacroPlannerWebApp
-OrphanComponent Frm_TEST
-{
- #keys: '[414724.0.153225415]'
- BaseType: 'WebForm'
- Children:
- [
- #child: List212
- Component DataHolder417
- {
- #keys: '[414724.0.153253171]'
- BaseType: 'WebDataHolder'
- Databinding: 'structured[MappingProduct]*'
- Children:
- [
- Component DataExtractor742
- {
- #keys: '[414724.0.153253184]'
- BaseType: 'WebDataExtractor'
- Properties:
- [
- DataType: 'MacroPlan'
- Source: 'MacroPlan'
- Taborder: 0
- Transformation: 'MappingProduct'
- ]
- }
- ]
- Properties:
- [
- Taborder: 2
- ]
- }
- Component Button593
- {
- #keys: '[414724.0.153411711]'
- BaseType: 'WebButton'
- Properties:
- [
- Image: 'MONITOR_RGB'
- Label: '娴嬭瘯'
- Taborder: 0
- ]
- }
- Component Button687
- {
- #keys: '[414724.0.164341716]'
- BaseType: 'WebButton'
- Properties:
- [
- Image: 'HORSE'
- Label: '璁㈠崟鍐插噺'
- Taborder: 3
- ]
- }
- ]
- Properties:
- [
- Title: '娴嬭瘯椤甸潰'
- ]
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_SWF_DialogCeateNextStepDefinitionDependency/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_SWF_DialogCeateNextStepDefinitionDependency/Component_pnlContent.def
deleted file mode 100644
index 2c4828b..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_SWF_DialogCeateNextStepDefinitionDependency/Component_pnlContent.def
+++ /dev/null
@@ -1,10 +0,0 @@
-Quintiq file version 2.0
-Component pnlContent #extension
-{
- Children:
- [
- Component LabelCurrentStep #extension
- {
- }
- ]
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_SWF_DialogCeateNextStepDefinitionDependency/_ROOT_Component_SWF_DialogCeateNextStepDefinitionDependency.def b/_Main/UI/MacroPlannerWebApp/Component_SWF_DialogCeateNextStepDefinitionDependency/_ROOT_Component_SWF_DialogCeateNextStepDefinitionDependency.def
deleted file mode 100644
index 78fcf7f..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_SWF_DialogCeateNextStepDefinitionDependency/_ROOT_Component_SWF_DialogCeateNextStepDefinitionDependency.def
+++ /dev/null
@@ -1,10 +0,0 @@
-Quintiq file version 2.0
-#root
-#parent: SOPWorkflowWeb
-OrphanComponent SWF_DialogCeateNextStepDefinitionDependency #extension
-{
- Children:
- [
- #child: pnlContent
- ]
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Views/Business_Type_Maintain.vw b/_Main/UI/MacroPlannerWebApp/Views/Business_Type_Maintain.vw
new file mode 100644
index 0000000..7903c23
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Views/Business_Type_Maintain.vw
@@ -0,0 +1,351 @@
+Quintiq file version 2.0
+{
+ viewcontents
+ {
+ forms
+ {
+ form_legacy_1
+ {
+ title: 'Scenario manager'
+ shown: true
+ componentID: 'FormScenarioManager'
+ layout
+ {
+ mode: 'open'
+ rowPosition: 1
+ rowSpan: 8
+ columnPosition: 1
+ columnSpan: 5
+ }
+ components
+ {
+ FormScenarioManager_ListScenario
+ {
+ }
+ FormScenarioManager_DataSetLevelScenario
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 90
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: '鍚嶇О'
+ index: 1
+ subtotals: ''
+ width: 277
+ }
+ column_ChangedBy
+ {
+ columnId: 'ChangedBy'
+ dataPath: 'ChangedBy'
+ dataType: 'string'
+ title: 'Changed by'
+ index: 2
+ subtotals: ''
+ width: 106
+ }
+ column_ChangedOn
+ {
+ columnId: 'ChangedOn'
+ dataPath: 'ChangedOn'
+ dataType: 'datetime'
+ title: 'Changed on'
+ index: 3
+ subtotals: ''
+ width: 99
+ }
+ column_StorageMode
+ {
+ columnId: 'StorageMode'
+ dataPath: 'StorageMode'
+ dataType: 'string'
+ title: 'StorageMode'
+ index: 4
+ subtotals: ''
+ width: 40
+ }
+ }
+ }
+ }
+ form_legacy_2
+ {
+ title: 'Assumptions'
+ shown: true
+ componentID: 'FormAssumptions'
+ layout
+ {
+ mode: 'open'
+ rowPosition: 9
+ rowSpan: 8
+ columnPosition: 1
+ columnSpan: 5
+ }
+ components
+ {
+ FormAssumptions_ListAssumptions
+ {
+ }
+ FormAssumptions_DataSetLevelAssumptions
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Category
+ {
+ columnId: 'Category'
+ dataPath: 'Category'
+ dataType: 'string'
+ title: '绫诲埆'
+ index: 1
+ subtotals: ''
+ width: 108
+ }
+ column_Importance
+ {
+ columnId: 'Importance'
+ dataPath: 'Importance'
+ dataType: 'string'
+ title: '閲嶈鎬�'
+ index: 2
+ subtotals: ''
+ width: 110
+ }
+ column_Title
+ {
+ columnId: 'Title'
+ dataPath: 'Title'
+ dataType: 'string'
+ title: '鏍囬'
+ index: 3
+ subtotals: ''
+ width: 150
+ }
+ column_ChangedBy
+ {
+ columnId: 'ChangedBy'
+ dataPath: 'ChangedBy'
+ dataType: 'string'
+ title: 'Changed by'
+ index: 4
+ subtotals: ''
+ width: 150
+ }
+ column_CreatedOn
+ {
+ columnId: 'CreatedOn'
+ dataPath: 'CreatedOn'
+ dataType: 'datetime'
+ title: 'Created on'
+ index: 5
+ subtotals: ''
+ width: 150
+ }
+ }
+ }
+ }
+ form_FormScenariosKPIsComparison
+ {
+ title: 'QLibMacroPlannerWebUI::FormScenariosKPIsComparison'
+ shown: true
+ componentID: 'QLibMacroPlannerWebUI::FormScenariosKPIsComparison'
+ layout
+ {
+ mode: 'open'
+ rowPosition: 1
+ rowSpan: 16
+ columnPosition: 6
+ columnSpan: 7
+ }
+ components
+ {
+ FormScenariosKPIsComparison_MatrixEditorFinancialKPIs
+ {
+ gridColor: '#c4c4c4'
+ totalHeaderWidth: 200
+ attributeHeaderWidthRatio: 0.6
+ nameHeaderWidthRatio: 0.4
+ columnWidth: 100
+ horizontalGrid: true
+ verticalGrid: true
+ backendState
+ {
+ componentId: 'QLibMacroPlannerWebUI::FormScenariosKPIsComparison.MatrixEditorFinancialKPIs'
+ state
+ {
+ cells
+ {
+ attributes
+ {
+ attribute_DisplayValue
+ {
+ type: 'MatrixEditorWebApiCellDataModelInterest'
+ index: 0
+ rowsubtotal: ''
+ columnsubtotal: ''
+ attribute: 'DisplayValue'
+ }
+ }
+ }
+ columns
+ {
+ sorting
+ {
+ criteria: ''
+ }
+ }
+ rows
+ {
+ sorting
+ {
+ criteria: "datamember:'KPISetting.DisplayIndex'"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ form_FormOptimizerPuzzles
+ {
+ title: 'Optimizer Puzzles'
+ shown: false
+ componentID: 'FormOptimizerPuzzles'
+ layout
+ {
+ mode: 'dockright'
+ index: 0
+ }
+ components
+ {
+ FormOptimizerPuzzles_ListOptimizerPuzzles
+ {
+ }
+ FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: '鍚嶇О'
+ index: 1
+ subtotals: ''
+ width: 109
+ }
+ column_Description
+ {
+ columnId: 'Description'
+ dataPath: 'Description'
+ dataType: 'string'
+ title: '鎻忚堪'
+ index: 2
+ subtotals: ''
+ width: 207
+ }
+ }
+ }
+ }
+ form_FormKPI
+ {
+ title: 'KPI Dashboard'
+ shown: true
+ componentID: 'FormKPI'
+ layout
+ {
+ mode: 'dockright'
+ index: 1
+ }
+ components
+ {
+ FormKPI_PanelKPI
+ {
+ sizeRatio: 1
+ activeChild: 'PanelKPISelection'
+ }
+ FormKPI_PanelKPIDashboard
+ {
+ sizeRatio: 1
+ }
+ FormKPI_PanelKPISelection
+ {
+ sizeRatio: 1
+ }
+ FormKPI_ListKPISelection
+ {
+ QuillViewData
+ {
+ Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
+ }
+ }
+ FormKPI_DataSetLevelKPISelection
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: '鍚嶇О'
+ index: 1
+ subtotals: ''
+ width: 200
+ }
+ }
+ }
+ }
+ }
+ userconfigurableinformation
+ {
+ }
+ index: 3
+ image: 'ELEMENTS_TREE_EDIT'
+ page: 'applicationDevelopmentActionBarPageDef'
+ group: ''
+ description: ''
+ }
+ formatversion: 2
+ id: 'Business_Type_Maintain'
+ name: 'Business Type Maintain'
+ isglobal: false
+ isroot: true
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Views/FillingCapacityOrder.vw b/_Main/UI/MacroPlannerWebApp/Views/FillingCapacityOrder.vw
index 21e8b5a..274be38 100644
--- a/_Main/UI/MacroPlannerWebApp/Views/FillingCapacityOrder.vw
+++ b/_Main/UI/MacroPlannerWebApp/Views/FillingCapacityOrder.vw
@@ -180,10 +180,10 @@
userconfigurableinformation
{
}
+ image: ''
page: ''
group: ''
- index: 14
- image: ''
+ index: 0
description: ''
}
formatversion: 2
diff --git a/_Main/UI/MacroPlannerWebApp/Views/FillingCapacityOrderHistorical.vw b/_Main/UI/MacroPlannerWebApp/Views/FillingCapacityOrderHistorical.vw
index e8b9ad7..f322040 100644
--- a/_Main/UI/MacroPlannerWebApp/Views/FillingCapacityOrderHistorical.vw
+++ b/_Main/UI/MacroPlannerWebApp/Views/FillingCapacityOrderHistorical.vw
@@ -2,10 +2,10 @@
{
viewcontents
{
+ image: ''
page: ''
group: ''
index: 0
- image: ''
description: ''
}
formatversion: 2
diff --git a/_Main/UI/MacroPlannerWebApp/Views/PriorityResults.vw b/_Main/UI/MacroPlannerWebApp/Views/PriorityResults.vw
index 3489b0c..e0e823a 100644
--- a/_Main/UI/MacroPlannerWebApp/Views/PriorityResults.vw
+++ b/_Main/UI/MacroPlannerWebApp/Views/PriorityResults.vw
@@ -2244,10 +2244,10 @@
userconfigurableinformation
{
}
+ image: ''
page: ''
group: ''
- index: 15
- image: ''
+ index: 0
description: ''
}
formatversion: 2
diff --git a/_Main/UI/MacroPlannerWebApp/Views/PriorityTest.vw b/_Main/UI/MacroPlannerWebApp/Views/PriorityTest.vw
new file mode 100644
index 0000000..68006ad
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Views/PriorityTest.vw
@@ -0,0 +1,2745 @@
+Quintiq file version 2.0
+{
+ viewcontents
+ {
+ forms
+ {
+ form_FormBusinessType
+ {
+ title: 'QTIANMA_JITUAN::FormBusinessType'
+ shown: true
+ componentID: 'QTIANMA_JITUAN::FormBusinessType'
+ layout
+ {
+ mode: 'open'
+ rowPosition: 1
+ rowSpan: 11
+ columnPosition: 9
+ columnSpan: 4
+ }
+ components
+ {
+ FormBusinessType_ListBusinessType
+ {
+ }
+ FormBusinessType_DataSetLevelBusinessType
+ {
+ groupDepth: -1
+ column_BusinessTypeName
+ {
+ columnId: 'BusinessTypeName'
+ dataPath: 'BusinessTypeName'
+ dataType: 'string'
+ index: 0
+ subtotals: ''
+ width: 150
+ }
+ }
+ }
+ }
+ form_FormPriorityResult
+ {
+ title: 'QTIANMA_JITUAN::FormPriorityResult'
+ shown: true
+ componentID: 'QTIANMA_JITUAN::FormPriorityResult'
+ layout
+ {
+ mode: 'open'
+ rowPosition: 13
+ rowSpan: 11
+ columnPosition: 1
+ columnSpan: 4
+ }
+ components
+ {
+ FormPriorityResult_PanelPriorityResult
+ {
+ sizeRatio: 1
+ }
+ FormPriorityResult_ListPriorityResult
+ {
+ }
+ FormPriorityResult_DataSetLevelPriorityResult
+ {
+ groupDepth: -1
+ column_SalesSegmentName
+ {
+ columnId: 'SalesSegmentName'
+ dataPath: 'SalesSegmentName'
+ dataType: 'string'
+ index: 0
+ subtotals: ''
+ width: 150
+ }
+ column_ProductID
+ {
+ columnId: 'ProductID'
+ dataPath: 'ProductID'
+ dataType: 'string'
+ index: 1
+ subtotals: ''
+ width: 150
+ }
+ column_StockingPointID
+ {
+ columnId: 'StockingPointID'
+ dataPath: 'StockingPointID'
+ dataType: 'string'
+ index: 2
+ subtotals: ''
+ width: 150
+ }
+ column_Customer
+ {
+ columnId: 'Customer'
+ dataPath: 'Customer'
+ dataType: 'string'
+ index: 3
+ subtotals: ''
+ width: 150
+ }
+ column_BusinessType
+ {
+ columnId: 'BusinessType'
+ dataPath: 'BusinessType'
+ dataType: 'string'
+ index: 4
+ subtotals: ''
+ width: 150
+ }
+ column_Quantity
+ {
+ columnId: 'Quantity'
+ dataPath: 'Quantity'
+ dataType: 'real'
+ index: 5
+ subtotals: ''
+ width: 150
+ }
+ column_UnitOfMeasureName
+ {
+ columnId: 'UnitOfMeasureName'
+ dataPath: 'UnitOfMeasureName'
+ dataType: 'string'
+ index: 6
+ subtotals: ''
+ width: 150
+ }
+ column_DemandDate
+ {
+ columnId: 'DemandDate'
+ dataPath: 'DemandDate'
+ dataType: 'date'
+ index: 7
+ subtotals: ''
+ width: 150
+ }
+ column_PriorityResultScore
+ {
+ columnId: 'PriorityResultScore'
+ dataPath: 'PriorityResultScore'
+ dataType: 'real'
+ index: 8
+ subtotals: ''
+ width: 150
+ }
+ }
+ FormPriorityResult_PanelPriorityResultDetails
+ {
+ sizeRatio: 1
+ }
+ FormPriorityResult_ListPriorityResultBusinessTypeDetails
+ {
+ }
+ FormPriorityResult_DataSetLevelPriorityResultDetails
+ {
+ groupDepth: -1
+ column_SalesSegmentName
+ {
+ columnId: 'SalesSegmentName'
+ dataPath: 'SalesSegmentName'
+ dataType: 'string'
+ index: 0
+ subtotals: ''
+ width: 150
+ }
+ column_StockingPointID
+ {
+ columnId: 'StockingPointID'
+ dataPath: 'StockingPointID'
+ dataType: 'string'
+ index: 1
+ subtotals: ''
+ width: 150
+ }
+ column_Customer
+ {
+ columnId: 'Customer'
+ dataPath: 'Customer'
+ dataType: 'string'
+ index: 2
+ subtotals: ''
+ width: 150
+ }
+ column_BusinessType
+ {
+ columnId: 'BusinessType'
+ dataPath: 'BusinessType'
+ dataType: 'string'
+ index: 3
+ subtotals: ''
+ width: 150
+ }
+ column_Quantity
+ {
+ columnId: 'Quantity'
+ dataPath: 'Quantity'
+ dataType: 'real'
+ index: 4
+ subtotals: ''
+ width: 150
+ }
+ column_UnitOfMeasureName
+ {
+ columnId: 'UnitOfMeasureName'
+ dataPath: 'UnitOfMeasureName'
+ dataType: 'string'
+ index: 5
+ subtotals: ''
+ width: 150
+ }
+ column_DemandDate
+ {
+ columnId: 'DemandDate'
+ dataPath: 'DemandDate'
+ dataType: 'date'
+ index: 6
+ subtotals: ''
+ width: 150
+ }
+ column_PriorityResultScore
+ {
+ columnId: 'PriorityResultScore'
+ dataPath: 'PriorityResultScore'
+ dataType: 'real'
+ index: 7
+ subtotals: ''
+ width: 150
+ }
+ column_PriorityPolicyName
+ {
+ columnId: 'PriorityPolicyName'
+ dataPath: 'PriorityPolicyName'
+ dataType: 'string'
+ index: 8
+ subtotals: ''
+ width: 150
+ }
+ column_PriorityFactorName
+ {
+ columnId: 'PriorityFactorName'
+ dataPath: 'PriorityFactorName'
+ dataType: 'string'
+ index: 9
+ subtotals: ''
+ width: 150
+ }
+ column_PriorityFactorGradingName
+ {
+ columnId: 'PriorityFactorGradingName'
+ dataPath: 'PriorityFactorGradingName'
+ dataType: 'string'
+ index: 10
+ subtotals: ''
+ width: 150
+ }
+ column_PriorityTotalScore
+ {
+ columnId: 'PriorityTotalScore'
+ dataPath: 'PriorityTotalScore'
+ dataType: 'real'
+ index: 11
+ subtotals: ''
+ width: 150
+ }
+ }
+ FormPriorityResult_ListPriorityResultGroupDetails
+ {
+ }
+ FormPriorityResult_DataSetLevelPriorityResultDetails872
+ {
+ groupDepth: -1
+ column_SalesSegmentName
+ {
+ columnId: 'SalesSegmentName'
+ dataPath: 'SalesSegmentName'
+ dataType: 'string'
+ index: 0
+ subtotals: ''
+ width: 150
+ }
+ column_StockingPointID
+ {
+ columnId: 'StockingPointID'
+ dataPath: 'StockingPointID'
+ dataType: 'string'
+ index: 1
+ subtotals: ''
+ width: 150
+ }
+ column_Customer
+ {
+ columnId: 'Customer'
+ dataPath: 'Customer'
+ dataType: 'string'
+ index: 2
+ subtotals: ''
+ width: 150
+ }
+ column_BusinessType
+ {
+ columnId: 'BusinessType'
+ dataPath: 'BusinessType'
+ dataType: 'string'
+ index: 3
+ subtotals: ''
+ width: 150
+ }
+ column_Quantity
+ {
+ columnId: 'Quantity'
+ dataPath: 'Quantity'
+ dataType: 'real'
+ index: 4
+ subtotals: ''
+ width: 150
+ }
+ column_UnitOfMeasureName
+ {
+ columnId: 'UnitOfMeasureName'
+ dataPath: 'UnitOfMeasureName'
+ dataType: 'string'
+ index: 5
+ subtotals: ''
+ width: 150
+ }
+ column_DemandDate
+ {
+ columnId: 'DemandDate'
+ dataPath: 'DemandDate'
+ dataType: 'date'
+ index: 6
+ subtotals: ''
+ width: 150
+ }
+ column_PriorityResultScore
+ {
+ columnId: 'PriorityResultScore'
+ dataPath: 'PriorityResultScore'
+ dataType: 'real'
+ index: 7
+ subtotals: ''
+ width: 150
+ }
+ column_PriorityPolicyName
+ {
+ columnId: 'PriorityPolicyName'
+ dataPath: 'PriorityPolicyName'
+ dataType: 'string'
+ index: 8
+ subtotals: ''
+ width: 150
+ }
+ column_PriorityFactorName
+ {
+ columnId: 'PriorityFactorName'
+ dataPath: 'PriorityFactorName'
+ dataType: 'string'
+ index: 9
+ subtotals: ''
+ width: 150
+ }
+ column_PriorityFactorGradingName
+ {
+ columnId: 'PriorityFactorGradingName'
+ dataPath: 'PriorityFactorGradingName'
+ dataType: 'string'
+ index: 10
+ subtotals: ''
+ width: 150
+ }
+ column_PriorityTotalScore
+ {
+ columnId: 'PriorityTotalScore'
+ dataPath: 'PriorityTotalScore'
+ dataType: 'real'
+ index: 11
+ subtotals: ''
+ width: 150
+ }
+ }
+ }
+ }
+ form_FormPriorityFactor
+ {
+ title: 'QTIANMA_JITUAN::FormPriorityFactor'
+ shown: true
+ componentID: 'QTIANMA_JITUAN::FormPriorityFactor'
+ layout
+ {
+ mode: 'open'
+ rowPosition: 1
+ rowSpan: 12
+ columnPosition: 1
+ columnSpan: 4
+ }
+ components
+ {
+ FormPriorityFactor_ListPriorityFactor
+ {
+ }
+ FormPriorityFactor_DataSetLevelPriorityFactor
+ {
+ groupDepth: -1
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ index: 0
+ subtotals: ''
+ width: 150
+ }
+ column_Coefficient
+ {
+ columnId: 'Coefficient'
+ dataPath: 'Coefficient'
+ dataType: 'real'
+ index: 1
+ subtotals: ''
+ width: 496
+ }
+ column_Desc
+ {
+ columnId: 'Desc'
+ dataPath: 'Desc'
+ dataType: 'string'
+ index: 2
+ subtotals: ''
+ width: 150
+ }
+ }
+ }
+ }
+ form_FormPriorityFactorGrading
+ {
+ title: 'QTIANMA_JITUAN::FormPriorityFactorGrading'
+ shown: true
+ componentID: 'QTIANMA_JITUAN::FormPriorityFactorGrading'
+ layout
+ {
+ mode: 'open'
+ rowPosition: 1
+ rowSpan: 11
+ columnPosition: 5
+ columnSpan: 4
+ }
+ components
+ {
+ FormPriorityFactorGrading_ListPriorityFactorGrading
+ {
+ }
+ FormPriorityFactorGrading_DataSetLevelPriorityFactorGrading
+ {
+ groupDepth: -1
+ column_GradingName
+ {
+ columnId: 'GradingName'
+ dataPath: 'GradingName'
+ dataType: 'string'
+ index: 0
+ subtotals: ''
+ width: 150
+ }
+ column_GradeValueStr
+ {
+ columnId: 'GradeValueStr'
+ dataPath: 'GradeValueStr'
+ dataType: 'string'
+ index: 1
+ subtotals: ''
+ width: 150
+ }
+ column_GradeDesc
+ {
+ columnId: 'GradeDesc'
+ dataPath: 'GradeDesc'
+ dataType: 'string'
+ index: 2
+ subtotals: ''
+ width: 150
+ }
+ }
+ }
+ }
+ form_FormPriorityPolicy
+ {
+ title: 'QTIANMA_JITUAN::FormPriorityPolicy'
+ shown: true
+ componentID: 'QTIANMA_JITUAN::FormPriorityPolicy'
+ layout
+ {
+ mode: 'open'
+ rowPosition: 12
+ rowSpan: 14
+ columnPosition: 5
+ columnSpan: 7
+ }
+ components
+ {
+ FormPriorityPolicy_ListPriorityPolicy
+ {
+ }
+ FormPriorityPolicy_DataSetLevelPriorityPolicy
+ {
+ groupDepth: -1
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ index: 0
+ subtotals: ''
+ width: 150
+ }
+ column_Formula
+ {
+ columnId: 'Formula'
+ dataPath: 'Formula'
+ dataType: 'string'
+ index: 1
+ subtotals: ''
+ width: 433
+ }
+ column_CalculateValue
+ {
+ columnId: 'CalculateValue'
+ dataPath: 'CalculateValue'
+ dataType: 'string'
+ index: 2
+ subtotals: ''
+ width: 644
+ }
+ column_Desc
+ {
+ columnId: 'Desc'
+ dataPath: 'Desc'
+ dataType: 'string'
+ index: 3
+ subtotals: ''
+ width: 150
+ }
+ }
+ FormPriorityPolicy_PanelPriorityPolicyOperation
+ {
+ sizeRatio: 1
+ }
+ FormPriorityPolicy_PanelPriorityPolicyOperationButton
+ {
+ sizeRatio: 1
+ }
+ FormPriorityPolicy_PanelPriorityPolicyCoefficient
+ {
+ sizeRatio: 1
+ }
+ }
+ }
+ form_FormOptimizerPuzzles
+ {
+ title: 'Optimizer Puzzles'
+ shown: false
+ componentID: 'FormOptimizerPuzzles'
+ layout
+ {
+ mode: 'dockright'
+ index: 0
+ }
+ components
+ {
+ FormOptimizerPuzzles_ListOptimizerPuzzles
+ {
+ }
+ FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: '鍚嶇О'
+ index: 1
+ subtotals: ''
+ width: 109
+ }
+ column_Description
+ {
+ columnId: 'Description'
+ dataPath: 'Description'
+ dataType: 'string'
+ title: '鎻忚堪'
+ index: 2
+ subtotals: ''
+ width: 207
+ }
+ }
+ }
+ }
+ form_FormKPI
+ {
+ title: 'KPI Dashboard'
+ shown: false
+ componentID: 'FormKPI'
+ layout
+ {
+ mode: 'dockright'
+ index: 1
+ }
+ components
+ {
+ FormKPI_PanelKPI
+ {
+ sizeRatio: 1
+ activeChild: 'PanelKPIDashboard'
+ }
+ FormKPI_PanelKPIDashboard
+ {
+ sizeRatio: 1
+ }
+ FormKPI_PanelKPISelection
+ {
+ sizeRatio: 1
+ }
+ FormKPI_ListKPISelection
+ {
+ QuillViewData
+ {
+ Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
+ }
+ }
+ FormKPI_DataSetLevelKPISelection
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: '鍚嶇О'
+ index: 1
+ subtotals: ''
+ width: 200
+ }
+ }
+ }
+ }
+ form_FormOptimizerPuzzles_1
+ {
+ title: 'Optimizer Puzzles'
+ shown: false
+ componentID: 'FormOptimizerPuzzles'
+ layout
+ {
+ mode: 'dockright'
+ index: 2
+ }
+ components
+ {
+ FormOptimizerPuzzles_ListOptimizerPuzzles
+ {
+ }
+ FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: '鍚嶇О'
+ index: 1
+ subtotals: ''
+ width: 109
+ }
+ column_Description
+ {
+ columnId: 'Description'
+ dataPath: 'Description'
+ dataType: 'string'
+ title: '鎻忚堪'
+ index: 2
+ subtotals: ''
+ width: 207
+ }
+ }
+ }
+ }
+ form_FormKPI_1
+ {
+ title: 'KPI Dashboard'
+ shown: false
+ componentID: 'FormKPI'
+ layout
+ {
+ mode: 'dockright'
+ index: 3
+ }
+ components
+ {
+ FormKPI_PanelKPI
+ {
+ sizeRatio: 1
+ activeChild: 'PanelKPIDashboard'
+ }
+ FormKPI_PanelKPIDashboard
+ {
+ sizeRatio: 1
+ }
+ FormKPI_PanelKPISelection
+ {
+ sizeRatio: 1
+ }
+ FormKPI_ListKPISelection
+ {
+ QuillViewData
+ {
+ Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
+ }
+ }
+ FormKPI_DataSetLevelKPISelection
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: '鍚嶇О'
+ index: 1
+ subtotals: ''
+ width: 200
+ }
+ }
+ }
+ }
+ form_FormOptimizerPuzzles_2
+ {
+ title: 'Optimizer Puzzles'
+ shown: false
+ componentID: 'FormOptimizerPuzzles'
+ layout
+ {
+ mode: 'dockright'
+ index: 4
+ }
+ components
+ {
+ FormOptimizerPuzzles_ListOptimizerPuzzles
+ {
+ }
+ FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: '鍚嶇О'
+ index: 1
+ subtotals: ''
+ width: 109
+ }
+ column_Description
+ {
+ columnId: 'Description'
+ dataPath: 'Description'
+ dataType: 'string'
+ title: '鎻忚堪'
+ index: 2
+ subtotals: ''
+ width: 207
+ }
+ }
+ }
+ }
+ form_FormKPI_2
+ {
+ title: 'KPI Dashboard'
+ shown: false
+ componentID: 'FormKPI'
+ layout
+ {
+ mode: 'dockright'
+ index: 5
+ }
+ components
+ {
+ FormKPI_PanelKPI
+ {
+ sizeRatio: 1
+ activeChild: 'PanelKPIDashboard'
+ }
+ FormKPI_PanelKPIDashboard
+ {
+ sizeRatio: 1
+ }
+ FormKPI_PanelKPISelection
+ {
+ sizeRatio: 1
+ }
+ FormKPI_ListKPISelection
+ {
+ QuillViewData
+ {
+ Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
+ }
+ }
+ FormKPI_DataSetLevelKPISelection
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: '鍚嶇О'
+ index: 1
+ subtotals: ''
+ width: 200
+ }
+ }
+ }
+ }
+ form_FormOptimizerPuzzles_3
+ {
+ title: 'Optimizer Puzzles'
+ shown: false
+ componentID: 'FormOptimizerPuzzles'
+ layout
+ {
+ mode: 'dockright'
+ index: 6
+ }
+ components
+ {
+ FormOptimizerPuzzles_ListOptimizerPuzzles
+ {
+ }
+ FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: '鍚嶇О'
+ index: 1
+ subtotals: ''
+ width: 109
+ }
+ column_Description
+ {
+ columnId: 'Description'
+ dataPath: 'Description'
+ dataType: 'string'
+ title: '鎻忚堪'
+ index: 2
+ subtotals: ''
+ width: 207
+ }
+ }
+ }
+ }
+ form_FormKPI_3
+ {
+ title: 'KPI Dashboard'
+ shown: false
+ componentID: 'FormKPI'
+ layout
+ {
+ mode: 'dockright'
+ index: 7
+ }
+ components
+ {
+ FormKPI_PanelKPI
+ {
+ sizeRatio: 1
+ activeChild: 'PanelKPIDashboard'
+ }
+ FormKPI_PanelKPIDashboard
+ {
+ sizeRatio: 1
+ }
+ FormKPI_PanelKPISelection
+ {
+ sizeRatio: 1
+ }
+ FormKPI_ListKPISelection
+ {
+ QuillViewData
+ {
+ Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
+ }
+ }
+ FormKPI_DataSetLevelKPISelection
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: '鍚嶇О'
+ index: 1
+ subtotals: ''
+ width: 200
+ }
+ }
+ }
+ }
+ form_FormOptimizerPuzzles_4
+ {
+ title: 'Optimizer Puzzles'
+ shown: false
+ componentID: 'FormOptimizerPuzzles'
+ layout
+ {
+ mode: 'dockright'
+ index: 8
+ }
+ components
+ {
+ FormOptimizerPuzzles_ListOptimizerPuzzles
+ {
+ }
+ FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: '鍚嶇О'
+ index: 1
+ subtotals: ''
+ width: 109
+ }
+ column_Description
+ {
+ columnId: 'Description'
+ dataPath: 'Description'
+ dataType: 'string'
+ title: '鎻忚堪'
+ index: 2
+ subtotals: ''
+ width: 207
+ }
+ }
+ }
+ }
+ form_FormKPI_4
+ {
+ title: 'KPI Dashboard'
+ shown: false
+ componentID: 'FormKPI'
+ layout
+ {
+ mode: 'dockright'
+ index: 9
+ }
+ components
+ {
+ FormKPI_PanelKPI
+ {
+ sizeRatio: 1
+ activeChild: 'PanelKPIDashboard'
+ }
+ FormKPI_PanelKPIDashboard
+ {
+ sizeRatio: 1
+ }
+ FormKPI_PanelKPISelection
+ {
+ sizeRatio: 1
+ }
+ FormKPI_ListKPISelection
+ {
+ QuillViewData
+ {
+ Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
+ }
+ }
+ FormKPI_DataSetLevelKPISelection
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: '鍚嶇О'
+ index: 1
+ subtotals: ''
+ width: 200
+ }
+ }
+ }
+ }
+ form_FormOptimizerPuzzles_5
+ {
+ title: 'Optimizer Puzzles'
+ shown: false
+ componentID: 'FormOptimizerPuzzles'
+ layout
+ {
+ mode: 'dockright'
+ index: 10
+ }
+ components
+ {
+ FormOptimizerPuzzles_ListOptimizerPuzzles
+ {
+ }
+ FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: '鍚嶇О'
+ index: 1
+ subtotals: ''
+ width: 109
+ }
+ column_Description
+ {
+ columnId: 'Description'
+ dataPath: 'Description'
+ dataType: 'string'
+ title: '鎻忚堪'
+ index: 2
+ subtotals: ''
+ width: 207
+ }
+ }
+ }
+ }
+ form_FormKPI_5
+ {
+ title: 'KPI Dashboard'
+ shown: false
+ componentID: 'FormKPI'
+ layout
+ {
+ mode: 'dockright'
+ index: 11
+ }
+ components
+ {
+ FormKPI_PanelKPI
+ {
+ sizeRatio: 1
+ activeChild: 'PanelKPIDashboard'
+ }
+ FormKPI_PanelKPIDashboard
+ {
+ sizeRatio: 1
+ }
+ FormKPI_PanelKPISelection
+ {
+ sizeRatio: 1
+ }
+ FormKPI_ListKPISelection
+ {
+ QuillViewData
+ {
+ Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
+ }
+ }
+ FormKPI_DataSetLevelKPISelection
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: '鍚嶇О'
+ index: 1
+ subtotals: ''
+ width: 200
+ }
+ }
+ }
+ }
+ form_FormOptimizerPuzzles_6
+ {
+ title: 'Optimizer Puzzles'
+ shown: false
+ componentID: 'FormOptimizerPuzzles'
+ layout
+ {
+ mode: 'dockright'
+ index: 12
+ }
+ components
+ {
+ FormOptimizerPuzzles_ListOptimizerPuzzles
+ {
+ }
+ FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: '鍚嶇О'
+ index: 1
+ subtotals: ''
+ width: 109
+ }
+ column_Description
+ {
+ columnId: 'Description'
+ dataPath: 'Description'
+ dataType: 'string'
+ title: '鎻忚堪'
+ index: 2
+ subtotals: ''
+ width: 207
+ }
+ }
+ }
+ }
+ form_FormKPI_6
+ {
+ title: 'KPI Dashboard'
+ shown: false
+ componentID: 'FormKPI'
+ layout
+ {
+ mode: 'dockright'
+ index: 13
+ }
+ components
+ {
+ FormKPI_PanelKPI
+ {
+ sizeRatio: 1
+ activeChild: 'PanelKPIDashboard'
+ }
+ FormKPI_PanelKPIDashboard
+ {
+ sizeRatio: 1
+ }
+ FormKPI_PanelKPISelection
+ {
+ sizeRatio: 1
+ }
+ FormKPI_ListKPISelection
+ {
+ QuillViewData
+ {
+ Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
+ }
+ }
+ FormKPI_DataSetLevelKPISelection
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: '鍚嶇О'
+ index: 1
+ subtotals: ''
+ width: 200
+ }
+ }
+ }
+ }
+ form_FormOptimizerPuzzles_7
+ {
+ title: 'Optimizer Puzzles'
+ shown: false
+ componentID: 'FormOptimizerPuzzles'
+ layout
+ {
+ mode: 'dockright'
+ index: 14
+ }
+ components
+ {
+ FormOptimizerPuzzles_ListOptimizerPuzzles
+ {
+ }
+ FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: '鍚嶇О'
+ index: 1
+ subtotals: ''
+ width: 109
+ }
+ column_Description
+ {
+ columnId: 'Description'
+ dataPath: 'Description'
+ dataType: 'string'
+ title: '鎻忚堪'
+ index: 2
+ subtotals: ''
+ width: 207
+ }
+ }
+ }
+ }
+ form_FormKPI_7
+ {
+ title: 'KPI Dashboard'
+ shown: false
+ componentID: 'FormKPI'
+ layout
+ {
+ mode: 'dockright'
+ index: 15
+ }
+ components
+ {
+ FormKPI_PanelKPI
+ {
+ sizeRatio: 1
+ activeChild: 'PanelKPIDashboard'
+ }
+ FormKPI_PanelKPIDashboard
+ {
+ sizeRatio: 1
+ }
+ FormKPI_PanelKPISelection
+ {
+ sizeRatio: 1
+ }
+ FormKPI_ListKPISelection
+ {
+ QuillViewData
+ {
+ Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
+ }
+ }
+ FormKPI_DataSetLevelKPISelection
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: '鍚嶇О'
+ index: 1
+ subtotals: ''
+ width: 200
+ }
+ }
+ }
+ }
+ form_FormSanityCheck
+ {
+ title: 'Sanity Check'
+ shown: false
+ componentID: 'FormSanityCheck'
+ layout
+ {
+ mode: 'dockright'
+ index: 16
+ }
+ components
+ {
+ FormSanityCheck_PanelSanityCheckToolbar
+ {
+ sizeRatio: 1
+ }
+ FormSanityCheck_PanelSanityCheckContent
+ {
+ sizeRatio: 1
+ }
+ FormSanityCheck_PanelSanityCheckGroup
+ {
+ sizeRatio: 4
+ }
+ FormSanityCheck_ListSanityCheckGroup
+ {
+ }
+ FormSanityCheck_DataSetLevelSanityCheckGroup
+ {
+ groupDepth: -1
+ sort: 'DESC:IsShown,DESC:SanityCheckHighestCategory,DESC:_Expr3'
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Show
+ {
+ columnId: 'Show'
+ dataPath: 'Show'
+ dataType: 'string'
+ index: 1
+ subtotals: ''
+ width: 32
+ }
+ column_Category
+ {
+ columnId: 'Category'
+ dataPath: 'Category'
+ dataType: 'string'
+ index: 2
+ subtotals: ''
+ width: 32
+ }
+ column_Group
+ {
+ columnId: 'Group'
+ dataPath: 'Group'
+ dataType: 'string'
+ index: 3
+ subtotals: ''
+ width: 270
+ }
+ column__Expr3
+ {
+ columnId: '_Expr3'
+ dataPath: '_Expr3'
+ dataType: 'number'
+ index: 4
+ subtotals: ''
+ width: 95
+ }
+ }
+ FormSanityCheck_PanelSanityCheckMessage
+ {
+ sizeRatio: 5
+ }
+ FormSanityCheck_ListSanityCheckMessage
+ {
+ }
+ FormSanityCheck_DataSetLevelSanityCheckMessage
+ {
+ groupDepth: -1
+ sort: 'DESC:IsShown,SanityCheckGroup.Type,SanityCheckGroup.Group,Description'
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Show
+ {
+ columnId: 'Show'
+ dataPath: 'Show'
+ dataType: 'string'
+ index: 1
+ subtotals: ''
+ width: 32
+ }
+ column_Category
+ {
+ columnId: 'Category'
+ dataPath: 'Category'
+ dataType: 'string'
+ index: 2
+ subtotals: ''
+ width: 32
+ }
+ column_Messages
+ {
+ columnId: 'Messages'
+ dataPath: 'Messages'
+ dataType: 'string'
+ index: 3
+ subtotals: ''
+ width: 32
+ }
+ column_Description
+ {
+ columnId: 'Description'
+ dataPath: 'Description'
+ dataType: 'string'
+ index: 4
+ subtotals: ''
+ width: 585
+ }
+ }
+ }
+ }
+ form_FormOptimizerPuzzles_8
+ {
+ title: 'Optimizer Puzzles'
+ shown: false
+ componentID: 'FormOptimizerPuzzles'
+ layout
+ {
+ mode: 'dockright'
+ index: 17
+ }
+ components
+ {
+ FormOptimizerPuzzles_ListOptimizerPuzzles
+ {
+ }
+ FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: '鍚嶇О'
+ index: 1
+ subtotals: ''
+ width: 109
+ }
+ column_Description
+ {
+ columnId: 'Description'
+ dataPath: 'Description'
+ dataType: 'string'
+ title: '鎻忚堪'
+ index: 2
+ subtotals: ''
+ width: 207
+ }
+ }
+ }
+ }
+ form_FormKPI_8
+ {
+ title: 'KPI Dashboard'
+ shown: false
+ componentID: 'FormKPI'
+ layout
+ {
+ mode: 'dockright'
+ index: 18
+ }
+ components
+ {
+ FormKPI_PanelKPI
+ {
+ sizeRatio: 1
+ activeChild: 'PanelKPIDashboard'
+ }
+ FormKPI_PanelKPIDashboard
+ {
+ sizeRatio: 1
+ }
+ FormKPI_PanelKPISelection
+ {
+ sizeRatio: 1
+ }
+ FormKPI_ListKPISelection
+ {
+ QuillViewData
+ {
+ Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
+ }
+ }
+ FormKPI_DataSetLevelKPISelection
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: '鍚嶇О'
+ index: 1
+ subtotals: ''
+ width: 200
+ }
+ }
+ }
+ }
+ form_FormOptimizerPuzzles_9
+ {
+ title: 'Optimizer Puzzles'
+ shown: false
+ componentID: 'FormOptimizerPuzzles'
+ layout
+ {
+ mode: 'dockright'
+ index: 19
+ }
+ components
+ {
+ FormOptimizerPuzzles_ListOptimizerPuzzles
+ {
+ }
+ FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: '鍚嶇О'
+ index: 1
+ subtotals: ''
+ width: 109
+ }
+ column_Description
+ {
+ columnId: 'Description'
+ dataPath: 'Description'
+ dataType: 'string'
+ title: '鎻忚堪'
+ index: 2
+ subtotals: ''
+ width: 207
+ }
+ }
+ }
+ }
+ form_FormKPI_9
+ {
+ title: 'KPI Dashboard'
+ shown: false
+ componentID: 'FormKPI'
+ layout
+ {
+ mode: 'dockright'
+ index: 20
+ }
+ components
+ {
+ FormKPI_PanelKPI
+ {
+ sizeRatio: 1
+ activeChild: 'PanelKPIDashboard'
+ }
+ FormKPI_PanelKPIDashboard
+ {
+ sizeRatio: 1
+ }
+ FormKPI_PanelKPISelection
+ {
+ sizeRatio: 1
+ }
+ FormKPI_ListKPISelection
+ {
+ QuillViewData
+ {
+ Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
+ }
+ }
+ FormKPI_DataSetLevelKPISelection
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: '鍚嶇О'
+ index: 1
+ subtotals: ''
+ width: 200
+ }
+ }
+ }
+ }
+ form_FormOptimizerPuzzles_10
+ {
+ title: 'Optimizer Puzzles'
+ shown: false
+ componentID: 'FormOptimizerPuzzles'
+ layout
+ {
+ mode: 'dockright'
+ index: 21
+ }
+ components
+ {
+ FormOptimizerPuzzles_ListOptimizerPuzzles
+ {
+ }
+ FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: '鍚嶇О'
+ index: 1
+ subtotals: ''
+ width: 109
+ }
+ column_Description
+ {
+ columnId: 'Description'
+ dataPath: 'Description'
+ dataType: 'string'
+ title: '鎻忚堪'
+ index: 2
+ subtotals: ''
+ width: 207
+ }
+ }
+ }
+ }
+ form_FormKPI_10
+ {
+ title: 'KPI Dashboard'
+ shown: false
+ componentID: 'FormKPI'
+ layout
+ {
+ mode: 'dockright'
+ index: 22
+ }
+ components
+ {
+ FormKPI_PanelKPI
+ {
+ sizeRatio: 1
+ activeChild: 'PanelKPIDashboard'
+ }
+ FormKPI_PanelKPIDashboard
+ {
+ sizeRatio: 1
+ }
+ FormKPI_PanelKPISelection
+ {
+ sizeRatio: 1
+ }
+ FormKPI_ListKPISelection
+ {
+ QuillViewData
+ {
+ Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
+ }
+ }
+ FormKPI_DataSetLevelKPISelection
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: '鍚嶇О'
+ index: 1
+ subtotals: ''
+ width: 200
+ }
+ }
+ }
+ }
+ form_FormOptimizerPuzzles_11
+ {
+ title: 'Optimizer Puzzles'
+ shown: false
+ componentID: 'FormOptimizerPuzzles'
+ layout
+ {
+ mode: 'dockright'
+ index: 23
+ }
+ components
+ {
+ FormOptimizerPuzzles_ListOptimizerPuzzles
+ {
+ }
+ FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: '鍚嶇О'
+ index: 1
+ subtotals: ''
+ width: 109
+ }
+ column_Description
+ {
+ columnId: 'Description'
+ dataPath: 'Description'
+ dataType: 'string'
+ title: '鎻忚堪'
+ index: 2
+ subtotals: ''
+ width: 207
+ }
+ }
+ }
+ }
+ form_FormKPI_11
+ {
+ title: 'KPI Dashboard'
+ shown: false
+ componentID: 'FormKPI'
+ layout
+ {
+ mode: 'dockright'
+ index: 24
+ }
+ components
+ {
+ FormKPI_PanelKPI
+ {
+ sizeRatio: 1
+ activeChild: 'PanelKPIDashboard'
+ }
+ FormKPI_PanelKPIDashboard
+ {
+ sizeRatio: 1
+ }
+ FormKPI_PanelKPISelection
+ {
+ sizeRatio: 1
+ }
+ FormKPI_ListKPISelection
+ {
+ QuillViewData
+ {
+ Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
+ }
+ }
+ FormKPI_DataSetLevelKPISelection
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: '鍚嶇О'
+ index: 1
+ subtotals: ''
+ width: 200
+ }
+ }
+ }
+ }
+ form_FormOptimizerPuzzles_12
+ {
+ title: 'Optimizer Puzzles'
+ shown: false
+ componentID: 'FormOptimizerPuzzles'
+ layout
+ {
+ mode: 'dockright'
+ index: 25
+ }
+ components
+ {
+ FormOptimizerPuzzles_ListOptimizerPuzzles
+ {
+ }
+ FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: '鍚嶇О'
+ index: 1
+ subtotals: ''
+ width: 109
+ }
+ column_Description
+ {
+ columnId: 'Description'
+ dataPath: 'Description'
+ dataType: 'string'
+ title: '鎻忚堪'
+ index: 2
+ subtotals: ''
+ width: 207
+ }
+ }
+ }
+ }
+ form_FormKPI_12
+ {
+ title: 'KPI Dashboard'
+ shown: false
+ componentID: 'FormKPI'
+ layout
+ {
+ mode: 'dockright'
+ index: 26
+ }
+ components
+ {
+ FormKPI_PanelKPI
+ {
+ sizeRatio: 1
+ activeChild: 'PanelKPIDashboard'
+ }
+ FormKPI_PanelKPIDashboard
+ {
+ sizeRatio: 1
+ }
+ FormKPI_PanelKPISelection
+ {
+ sizeRatio: 1
+ }
+ FormKPI_ListKPISelection
+ {
+ QuillViewData
+ {
+ Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
+ }
+ }
+ FormKPI_DataSetLevelKPISelection
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: '鍚嶇О'
+ index: 1
+ subtotals: ''
+ width: 200
+ }
+ }
+ }
+ }
+ form_FormOptimizerPuzzles_13
+ {
+ title: 'Optimizer Puzzles'
+ shown: false
+ componentID: 'FormOptimizerPuzzles'
+ layout
+ {
+ mode: 'dockright'
+ index: 27
+ }
+ components
+ {
+ FormOptimizerPuzzles_ListOptimizerPuzzles
+ {
+ }
+ FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: '鍚嶇О'
+ index: 1
+ subtotals: ''
+ width: 109
+ }
+ column_Description
+ {
+ columnId: 'Description'
+ dataPath: 'Description'
+ dataType: 'string'
+ title: '鎻忚堪'
+ index: 2
+ subtotals: ''
+ width: 207
+ }
+ }
+ }
+ }
+ form_FormKPI_13
+ {
+ title: 'KPI Dashboard'
+ shown: false
+ componentID: 'FormKPI'
+ layout
+ {
+ mode: 'dockright'
+ index: 28
+ }
+ components
+ {
+ FormKPI_PanelKPI
+ {
+ sizeRatio: 1
+ activeChild: 'PanelKPIDashboard'
+ }
+ FormKPI_PanelKPIDashboard
+ {
+ sizeRatio: 1
+ }
+ FormKPI_PanelKPISelection
+ {
+ sizeRatio: 1
+ }
+ FormKPI_ListKPISelection
+ {
+ QuillViewData
+ {
+ Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
+ }
+ }
+ FormKPI_DataSetLevelKPISelection
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: '鍚嶇О'
+ index: 1
+ subtotals: ''
+ width: 200
+ }
+ }
+ }
+ }
+ form_FormOptimizerPuzzles_14
+ {
+ title: 'Optimizer Puzzles'
+ shown: false
+ componentID: 'FormOptimizerPuzzles'
+ layout
+ {
+ mode: 'dockright'
+ index: 29
+ }
+ components
+ {
+ FormOptimizerPuzzles_ListOptimizerPuzzles
+ {
+ }
+ FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: '鍚嶇О'
+ index: 1
+ subtotals: ''
+ width: 109
+ }
+ column_Description
+ {
+ columnId: 'Description'
+ dataPath: 'Description'
+ dataType: 'string'
+ title: '鎻忚堪'
+ index: 2
+ subtotals: ''
+ width: 207
+ }
+ }
+ }
+ }
+ form_FormKPI_14
+ {
+ title: 'KPI Dashboard'
+ shown: false
+ componentID: 'FormKPI'
+ layout
+ {
+ mode: 'dockright'
+ index: 30
+ }
+ components
+ {
+ FormKPI_PanelKPI
+ {
+ sizeRatio: 1
+ activeChild: 'PanelKPIDashboard'
+ }
+ FormKPI_PanelKPIDashboard
+ {
+ sizeRatio: 1
+ }
+ FormKPI_PanelKPISelection
+ {
+ sizeRatio: 1
+ }
+ FormKPI_ListKPISelection
+ {
+ QuillViewData
+ {
+ Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
+ }
+ }
+ FormKPI_DataSetLevelKPISelection
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: '鍚嶇О'
+ index: 1
+ subtotals: ''
+ width: 200
+ }
+ }
+ }
+ }
+ form_FormOptimizerPuzzles_15
+ {
+ title: 'Optimizer Puzzles'
+ shown: false
+ componentID: 'FormOptimizerPuzzles'
+ layout
+ {
+ mode: 'dockright'
+ index: 31
+ }
+ components
+ {
+ FormOptimizerPuzzles_ListOptimizerPuzzles
+ {
+ }
+ FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: '鍚嶇О'
+ index: 1
+ subtotals: ''
+ width: 109
+ }
+ column_Description
+ {
+ columnId: 'Description'
+ dataPath: 'Description'
+ dataType: 'string'
+ title: '鎻忚堪'
+ index: 2
+ subtotals: ''
+ width: 207
+ }
+ }
+ }
+ }
+ form_FormKPI_15
+ {
+ title: 'KPI Dashboard'
+ shown: false
+ componentID: 'FormKPI'
+ layout
+ {
+ mode: 'dockright'
+ index: 32
+ }
+ components
+ {
+ FormKPI_PanelKPI
+ {
+ sizeRatio: 1
+ activeChild: 'PanelKPIDashboard'
+ }
+ FormKPI_PanelKPIDashboard
+ {
+ sizeRatio: 1
+ }
+ FormKPI_PanelKPISelection
+ {
+ sizeRatio: 1
+ }
+ FormKPI_ListKPISelection
+ {
+ QuillViewData
+ {
+ Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
+ }
+ }
+ FormKPI_DataSetLevelKPISelection
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: '鍚嶇О'
+ index: 1
+ subtotals: ''
+ width: 200
+ }
+ }
+ }
+ }
+ form_FormSanityCheck_1
+ {
+ title: 'Sanity Check'
+ shown: false
+ componentID: 'FormSanityCheck'
+ layout
+ {
+ mode: 'dockright'
+ index: 33
+ }
+ components
+ {
+ FormSanityCheck_PanelSanityCheckToolbar
+ {
+ sizeRatio: 1
+ }
+ FormSanityCheck_PanelSanityCheckContent
+ {
+ sizeRatio: 1
+ }
+ FormSanityCheck_PanelSanityCheckGroup
+ {
+ sizeRatio: 4
+ }
+ FormSanityCheck_ListSanityCheckGroup
+ {
+ }
+ FormSanityCheck_DataSetLevelSanityCheckGroup
+ {
+ groupDepth: -1
+ sort: 'DESC:IsShown,DESC:SanityCheckHighestCategory,DESC:_Expr3'
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Show
+ {
+ columnId: 'Show'
+ dataPath: 'Show'
+ dataType: 'string'
+ index: 1
+ subtotals: ''
+ width: 32
+ }
+ column_Category
+ {
+ columnId: 'Category'
+ dataPath: 'Category'
+ dataType: 'string'
+ index: 2
+ subtotals: ''
+ width: 32
+ }
+ column_Group
+ {
+ columnId: 'Group'
+ dataPath: 'Group'
+ dataType: 'string'
+ index: 3
+ subtotals: ''
+ width: 270
+ }
+ column__Expr3
+ {
+ columnId: '_Expr3'
+ dataPath: '_Expr3'
+ dataType: 'number'
+ index: 4
+ subtotals: ''
+ width: 95
+ }
+ }
+ FormSanityCheck_PanelSanityCheckMessage
+ {
+ sizeRatio: 5
+ }
+ FormSanityCheck_ListSanityCheckMessage
+ {
+ }
+ FormSanityCheck_DataSetLevelSanityCheckMessage
+ {
+ groupDepth: -1
+ sort: 'DESC:IsShown,SanityCheckGroup.Type,SanityCheckGroup.Group,Description'
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Show
+ {
+ columnId: 'Show'
+ dataPath: 'Show'
+ dataType: 'string'
+ index: 1
+ subtotals: ''
+ width: 32
+ }
+ column_Category
+ {
+ columnId: 'Category'
+ dataPath: 'Category'
+ dataType: 'string'
+ index: 2
+ subtotals: ''
+ width: 32
+ }
+ column_Messages
+ {
+ columnId: 'Messages'
+ dataPath: 'Messages'
+ dataType: 'string'
+ index: 3
+ subtotals: ''
+ width: 32
+ }
+ column_Description
+ {
+ columnId: 'Description'
+ dataPath: 'Description'
+ dataType: 'string'
+ index: 4
+ subtotals: ''
+ width: 585
+ }
+ }
+ }
+ }
+ form_FormKPI_16
+ {
+ title: 'KPI Dashboard'
+ shown: false
+ componentID: 'FormKPI'
+ layout
+ {
+ mode: 'dockright'
+ index: 34
+ }
+ components
+ {
+ FormKPI_PanelKPI
+ {
+ sizeRatio: 1
+ activeChild: 'PanelKPIDashboard'
+ }
+ FormKPI_PanelKPIDashboard
+ {
+ sizeRatio: 1
+ }
+ FormKPI_PanelKPISelection
+ {
+ sizeRatio: 1
+ }
+ FormKPI_ListKPISelection
+ {
+ QuillViewData
+ {
+ Metals_KPISetting: 'Fulfillment;Fulfillment target;On time fulfillment;On time in full;Sales'
+ Food_KPISetting: 'Fulfillment;Fulfillment target;On time fulfillment;On time in full;Sales'
+ Empty_KPISetting: 'Fulfillment;Fulfillment target;On time fulfillment;On time in full;Sales'
+ }
+ }
+ FormKPI_DataSetLevelKPISelection
+ {
+ groupDepth: -1
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: '鍚嶇О'
+ index: 0
+ subtotals: ''
+ width: 200
+ }
+ }
+ }
+ }
+ form_FormKPI_17
+ {
+ title: 'KPI Dashboard'
+ shown: false
+ componentID: 'FormKPI'
+ layout
+ {
+ mode: 'dockright'
+ index: 35
+ }
+ components
+ {
+ FormKPI_PanelKPI
+ {
+ sizeRatio: 1
+ activeChild: 'PanelKPIDashboard'
+ }
+ FormKPI_PanelKPIDashboard
+ {
+ sizeRatio: 1
+ }
+ FormKPI_PanelKPISelection
+ {
+ sizeRatio: 1
+ }
+ FormKPI_ListKPISelection
+ {
+ QuillViewData
+ {
+ Metals_KPISetting: 'Fulfillment;Fulfillment target;On time fulfillment;On time in full;Sales'
+ Food_KPISetting: 'Fulfillment;Fulfillment target;On time fulfillment;On time in full;Sales'
+ Empty_KPISetting: 'Fulfillment;Fulfillment target;On time fulfillment;On time in full;Sales'
+ }
+ }
+ FormKPI_DataSetLevelKPISelection
+ {
+ groupDepth: -1
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: '鍚嶇О'
+ index: 0
+ subtotals: ''
+ width: 200
+ }
+ }
+ }
+ }
+ form_FormPriorities
+ {
+ title: 'Priorities'
+ shown: true
+ componentID: 'FormPriorities'
+ layout
+ {
+ mode: 'dockright'
+ index: 36
+ }
+ components
+ {
+ FormPriorities_ListPriority
+ {
+ }
+ FormPriorities_DataSetLevelPriority
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_ImgHasSalesDemand
+ {
+ columnId: 'ImgHasSalesDemand'
+ dataPath: 'ImgHasSalesDemand'
+ dataType: 'string'
+ index: 1
+ subtotals: ''
+ width: 30
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ index: 2
+ subtotals: ''
+ width: 95
+ }
+ column_Weight
+ {
+ columnId: 'Weight'
+ dataPath: 'Weight'
+ dataType: 'real'
+ index: 3
+ subtotals: ''
+ width: 95
+ }
+ }
+ }
+ }
+ }
+ userconfigurableinformation
+ {
+ }
+ page: ''
+ group: ''
+ index: 15
+ image: ''
+ description: ''
+ }
+ formatversion: 2
+ id: 'PriorityTest'
+ name: 'PriorityTest'
+ isglobal: false
+ isroot: true
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Views/Test.vw b/_Main/UI/MacroPlannerWebApp/Views/Test.vw
index c66c058..36dff5d 100644
--- a/_Main/UI/MacroPlannerWebApp/Views/Test.vw
+++ b/_Main/UI/MacroPlannerWebApp/Views/Test.vw
@@ -159,6 +159,800 @@
}
}
}
+ form_FormCustomerAndForecastOrder
+ {
+ title: 'QTIANMA_JITUAN::FormCustomerAndForecastOrder'
+ shown: true
+ componentID: 'QTIANMA_JITUAN::FormCustomerAndForecastOrder'
+ layout
+ {
+ mode: 'open'
+ rowPosition: 16
+ rowSpan: 16
+ columnPosition: 1
+ columnSpan: 4
+ }
+ components
+ {
+ FormCustomerAndForecastOrder_PanelButton
+ {
+ sizeRatio: 1
+ }
+ FormCustomerAndForecastOrder_ListCustomerAndFillingCapacityOrder
+ {
+ }
+ FormCustomerAndForecastOrder_DataSetLevelCustomerAndFillingCapacityOrder
+ {
+ groupDepth: -1
+ column_VerNo
+ {
+ columnId: 'VerNo'
+ dataPath: 'VerNo'
+ dataType: 'string'
+ index: 0
+ subtotals: ''
+ width: 150
+ }
+ column_OrderID
+ {
+ columnId: 'OrderID'
+ dataPath: 'OrderID'
+ dataType: 'string'
+ index: 1
+ subtotals: ''
+ width: 150
+ }
+ column_ProductID
+ {
+ columnId: 'ProductID'
+ dataPath: 'ProductID'
+ dataType: 'string'
+ index: 2
+ subtotals: ''
+ width: 150
+ }
+ column_BusinessType
+ {
+ columnId: 'BusinessType'
+ dataPath: 'BusinessType'
+ dataType: 'string'
+ index: 3
+ subtotals: ''
+ width: 150
+ }
+ column_Customer
+ {
+ columnId: 'Customer'
+ dataPath: 'Customer'
+ dataType: 'string'
+ index: 4
+ subtotals: ''
+ width: 150
+ }
+ column_ServiceType
+ {
+ columnId: 'ServiceType'
+ dataPath: 'ServiceType'
+ dataType: 'string'
+ index: 5
+ subtotals: ''
+ width: 150
+ }
+ column_Quantity
+ {
+ columnId: 'Quantity'
+ dataPath: 'Quantity'
+ dataType: 'real'
+ index: 6
+ subtotals: ''
+ width: 150
+ }
+ column_UnitOfMeasureName
+ {
+ columnId: 'UnitOfMeasureName'
+ dataPath: 'UnitOfMeasureName'
+ dataType: 'string'
+ index: 7
+ subtotals: ''
+ width: 150
+ }
+ column_PanelBigSheetQuantity
+ {
+ columnId: 'PanelBigSheetQuantity'
+ dataPath: 'PanelBigSheetQuantity'
+ dataType: 'real'
+ index: 8
+ subtotals: ''
+ width: 150
+ }
+ column_SalesAmount
+ {
+ columnId: 'SalesAmount'
+ dataPath: 'SalesAmount'
+ dataType: 'number'
+ index: 9
+ subtotals: ''
+ width: 150
+ }
+ column_ForecastDemandDate
+ {
+ columnId: 'ForecastDemandDate'
+ dataPath: 'ForecastDemandDate'
+ dataType: 'date'
+ index: 10
+ subtotals: ''
+ width: 150
+ }
+ column_DemandDate
+ {
+ columnId: 'DemandDate'
+ dataPath: 'DemandDate'
+ dataType: 'date'
+ index: 11
+ subtotals: ''
+ width: 150
+ }
+ }
+ }
+ }
+ form_FormFillingCapacityOrder
+ {
+ title: 'QTIANMA_JITUAN::FormFillingCapacityOrder'
+ shown: true
+ componentID: 'QTIANMA_JITUAN::FormFillingCapacityOrder'
+ layout
+ {
+ mode: 'open'
+ rowPosition: 16
+ rowSpan: 16
+ columnPosition: 5
+ columnSpan: 8
+ }
+ components
+ {
+ FormFillingCapacityOrder_ListFillingCapacityOrder
+ {
+ }
+ FormFillingCapacityOrder_DataSetLevelFillingCapacityOrder
+ {
+ groupDepth: -1
+ column_VerNo
+ {
+ columnId: 'VerNo'
+ dataPath: 'VerNo'
+ dataType: 'string'
+ index: 0
+ subtotals: ''
+ width: 150
+ }
+ column_ProductID
+ {
+ columnId: 'ProductID'
+ dataPath: 'ProductID'
+ dataType: 'string'
+ index: 1
+ subtotals: ''
+ width: 150
+ }
+ column_BusinessType
+ {
+ columnId: 'BusinessType'
+ dataPath: 'BusinessType'
+ dataType: 'string'
+ index: 2
+ subtotals: ''
+ width: 150
+ }
+ column_SalesSegmentName
+ {
+ columnId: 'SalesSegmentName'
+ dataPath: 'SalesSegmentName'
+ dataType: 'string'
+ index: 3
+ subtotals: ''
+ width: 150
+ }
+ column_StockingPointID
+ {
+ columnId: 'StockingPointID'
+ dataPath: 'StockingPointID'
+ dataType: 'string'
+ index: 4
+ subtotals: ''
+ width: 150
+ }
+ column_Customer
+ {
+ columnId: 'Customer'
+ dataPath: 'Customer'
+ dataType: 'string'
+ index: 5
+ subtotals: ''
+ width: 150
+ }
+ column_Quantity
+ {
+ columnId: 'Quantity'
+ dataPath: 'Quantity'
+ dataType: 'real'
+ index: 6
+ subtotals: ''
+ width: 150
+ }
+ column_UnitOfMeasureName
+ {
+ columnId: 'UnitOfMeasureName'
+ dataPath: 'UnitOfMeasureName'
+ dataType: 'string'
+ index: 7
+ subtotals: ''
+ width: 150
+ }
+ column_PanelBigSheetQuantity
+ {
+ columnId: 'PanelBigSheetQuantity'
+ dataPath: 'PanelBigSheetQuantity'
+ dataType: 'real'
+ index: 8
+ subtotals: ''
+ width: 150
+ }
+ column_SalesAmount
+ {
+ columnId: 'SalesAmount'
+ dataPath: 'SalesAmount'
+ dataType: 'number'
+ index: 9
+ subtotals: ''
+ width: 150
+ }
+ column_ForecastDemandDate
+ {
+ columnId: 'ForecastDemandDate'
+ dataPath: 'ForecastDemandDate'
+ dataType: 'date'
+ index: 10
+ subtotals: ''
+ width: 150
+ }
+ column_DemandDate
+ {
+ columnId: 'DemandDate'
+ dataPath: 'DemandDate'
+ dataType: 'date'
+ index: 11
+ subtotals: ''
+ width: 150
+ }
+ column_OrderType
+ {
+ columnId: 'OrderType'
+ dataPath: 'OrderType'
+ dataType: 'string'
+ index: 12
+ subtotals: ''
+ width: 150
+ }
+ }
+ }
+ }
+ form_FormPriorityPolicy
+ {
+ title: 'QTIANMA_JITUAN::FormPriorityPolicy'
+ shown: true
+ componentID: 'QTIANMA_JITUAN::FormPriorityPolicy'
+ layout
+ {
+ mode: 'open'
+ rowPosition: 32
+ rowSpan: 13
+ columnPosition: 5
+ columnSpan: 8
+ }
+ components
+ {
+ FormPriorityPolicy_ListPriorityPolicy
+ {
+ }
+ FormPriorityPolicy_DataSetLevelPriorityPolicy
+ {
+ groupDepth: -1
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ index: 0
+ subtotals: ''
+ width: 150
+ }
+ column_Formula
+ {
+ columnId: 'Formula'
+ dataPath: 'Formula'
+ dataType: 'string'
+ index: 1
+ subtotals: ''
+ width: 150
+ }
+ column_CalculateValue
+ {
+ columnId: 'CalculateValue'
+ dataPath: 'CalculateValue'
+ dataType: 'string'
+ index: 2
+ subtotals: ''
+ width: 150
+ }
+ column_Desc
+ {
+ columnId: 'Desc'
+ dataPath: 'Desc'
+ dataType: 'string'
+ index: 3
+ subtotals: ''
+ width: 150
+ }
+ }
+ FormPriorityPolicy_PanelPriorityPolicyOperation
+ {
+ sizeRatio: 1
+ }
+ FormPriorityPolicy_PanelPriorityPolicyOperationButton
+ {
+ sizeRatio: 1
+ }
+ FormPriorityPolicy_PanelPriorityPolicyCoefficient
+ {
+ sizeRatio: 1
+ }
+ }
+ }
+ form_FormPriorityResult
+ {
+ title: 'QTIANMA_JITUAN::FormPriorityResult'
+ shown: true
+ componentID: 'QTIANMA_JITUAN::FormPriorityResult'
+ layout
+ {
+ mode: 'open'
+ rowPosition: 45
+ rowSpan: 17
+ columnPosition: 1
+ columnSpan: 12
+ }
+ components
+ {
+ FormPriorityResult_PanelPriorityResult
+ {
+ sizeRatio: 1
+ }
+ FormPriorityResult_ListPriorityResult
+ {
+ }
+ FormPriorityResult_DataSetLevelPriorityResult
+ {
+ groupDepth: -1
+ column_SalesSegmentName
+ {
+ columnId: 'SalesSegmentName'
+ dataPath: 'SalesSegmentName'
+ dataType: 'string'
+ index: 0
+ subtotals: ''
+ width: 150
+ }
+ column_ProductID
+ {
+ columnId: 'ProductID'
+ dataPath: 'ProductID'
+ dataType: 'string'
+ index: 1
+ subtotals: ''
+ width: 150
+ }
+ column_StockingPointID
+ {
+ columnId: 'StockingPointID'
+ dataPath: 'StockingPointID'
+ dataType: 'string'
+ index: 2
+ subtotals: ''
+ width: 150
+ }
+ column_Customer
+ {
+ columnId: 'Customer'
+ dataPath: 'Customer'
+ dataType: 'string'
+ index: 3
+ subtotals: ''
+ width: 150
+ }
+ column_BusinessType
+ {
+ columnId: 'BusinessType'
+ dataPath: 'BusinessType'
+ dataType: 'string'
+ index: 4
+ subtotals: ''
+ width: 150
+ }
+ column_Quantity
+ {
+ columnId: 'Quantity'
+ dataPath: 'Quantity'
+ dataType: 'real'
+ index: 5
+ subtotals: ''
+ width: 150
+ }
+ column_UnitOfMeasureName
+ {
+ columnId: 'UnitOfMeasureName'
+ dataPath: 'UnitOfMeasureName'
+ dataType: 'string'
+ index: 6
+ subtotals: ''
+ width: 150
+ }
+ column_DemandDate
+ {
+ columnId: 'DemandDate'
+ dataPath: 'DemandDate'
+ dataType: 'date'
+ index: 7
+ subtotals: ''
+ width: 150
+ }
+ column_PriorityResultScore
+ {
+ columnId: 'PriorityResultScore'
+ dataPath: 'PriorityResultScore'
+ dataType: 'real'
+ index: 8
+ subtotals: ''
+ width: 150
+ }
+ }
+ FormPriorityResult_PanelPriorityResultDetails
+ {
+ sizeRatio: 1
+ }
+ FormPriorityResult_ListPriorityResultBusinessTypeDetails
+ {
+ }
+ FormPriorityResult_DataSetLevelPriorityResultDetails
+ {
+ groupDepth: -1
+ column_SalesSegmentName
+ {
+ columnId: 'SalesSegmentName'
+ dataPath: 'SalesSegmentName'
+ dataType: 'string'
+ index: 0
+ subtotals: ''
+ width: 150
+ }
+ column_StockingPointID
+ {
+ columnId: 'StockingPointID'
+ dataPath: 'StockingPointID'
+ dataType: 'string'
+ index: 1
+ subtotals: ''
+ width: 150
+ }
+ column_Customer
+ {
+ columnId: 'Customer'
+ dataPath: 'Customer'
+ dataType: 'string'
+ index: 2
+ subtotals: ''
+ width: 150
+ }
+ column_BusinessType
+ {
+ columnId: 'BusinessType'
+ dataPath: 'BusinessType'
+ dataType: 'string'
+ index: 3
+ subtotals: ''
+ width: 150
+ }
+ column_Quantity
+ {
+ columnId: 'Quantity'
+ dataPath: 'Quantity'
+ dataType: 'real'
+ index: 4
+ subtotals: ''
+ width: 150
+ }
+ column_UnitOfMeasureName
+ {
+ columnId: 'UnitOfMeasureName'
+ dataPath: 'UnitOfMeasureName'
+ dataType: 'string'
+ index: 5
+ subtotals: ''
+ width: 150
+ }
+ column_DemandDate
+ {
+ columnId: 'DemandDate'
+ dataPath: 'DemandDate'
+ dataType: 'date'
+ index: 6
+ subtotals: ''
+ width: 150
+ }
+ column_PriorityResultScore
+ {
+ columnId: 'PriorityResultScore'
+ dataPath: 'PriorityResultScore'
+ dataType: 'real'
+ index: 7
+ subtotals: ''
+ width: 150
+ }
+ column_PriorityPolicyName
+ {
+ columnId: 'PriorityPolicyName'
+ dataPath: 'PriorityPolicyName'
+ dataType: 'string'
+ index: 8
+ subtotals: ''
+ width: 150
+ }
+ column_PriorityFactorName
+ {
+ columnId: 'PriorityFactorName'
+ dataPath: 'PriorityFactorName'
+ dataType: 'string'
+ index: 9
+ subtotals: ''
+ width: 150
+ }
+ column_PriorityFactorGradingName
+ {
+ columnId: 'PriorityFactorGradingName'
+ dataPath: 'PriorityFactorGradingName'
+ dataType: 'string'
+ index: 10
+ subtotals: ''
+ width: 150
+ }
+ column_PriorityTotalScore
+ {
+ columnId: 'PriorityTotalScore'
+ dataPath: 'PriorityTotalScore'
+ dataType: 'real'
+ index: 11
+ subtotals: ''
+ width: 150
+ }
+ }
+ FormPriorityResult_ListPriorityResultGroupDetails
+ {
+ }
+ FormPriorityResult_DataSetLevelPriorityResultDetails872
+ {
+ groupDepth: -1
+ column_SalesSegmentName
+ {
+ columnId: 'SalesSegmentName'
+ dataPath: 'SalesSegmentName'
+ dataType: 'string'
+ index: 0
+ subtotals: ''
+ width: 150
+ }
+ column_StockingPointID
+ {
+ columnId: 'StockingPointID'
+ dataPath: 'StockingPointID'
+ dataType: 'string'
+ index: 1
+ subtotals: ''
+ width: 150
+ }
+ column_Customer
+ {
+ columnId: 'Customer'
+ dataPath: 'Customer'
+ dataType: 'string'
+ index: 2
+ subtotals: ''
+ width: 150
+ }
+ column_BusinessType
+ {
+ columnId: 'BusinessType'
+ dataPath: 'BusinessType'
+ dataType: 'string'
+ index: 3
+ subtotals: ''
+ width: 150
+ }
+ column_Quantity
+ {
+ columnId: 'Quantity'
+ dataPath: 'Quantity'
+ dataType: 'real'
+ index: 4
+ subtotals: ''
+ width: 150
+ }
+ column_UnitOfMeasureName
+ {
+ columnId: 'UnitOfMeasureName'
+ dataPath: 'UnitOfMeasureName'
+ dataType: 'string'
+ index: 5
+ subtotals: ''
+ width: 150
+ }
+ column_DemandDate
+ {
+ columnId: 'DemandDate'
+ dataPath: 'DemandDate'
+ dataType: 'date'
+ index: 6
+ subtotals: ''
+ width: 150
+ }
+ column_PriorityResultScore
+ {
+ columnId: 'PriorityResultScore'
+ dataPath: 'PriorityResultScore'
+ dataType: 'real'
+ index: 7
+ subtotals: ''
+ width: 150
+ }
+ column_PriorityPolicyName
+ {
+ columnId: 'PriorityPolicyName'
+ dataPath: 'PriorityPolicyName'
+ dataType: 'string'
+ index: 8
+ subtotals: ''
+ width: 150
+ }
+ column_PriorityFactorName
+ {
+ columnId: 'PriorityFactorName'
+ dataPath: 'PriorityFactorName'
+ dataType: 'string'
+ index: 9
+ subtotals: ''
+ width: 150
+ }
+ column_PriorityFactorGradingName
+ {
+ columnId: 'PriorityFactorGradingName'
+ dataPath: 'PriorityFactorGradingName'
+ dataType: 'string'
+ index: 10
+ subtotals: ''
+ width: 150
+ }
+ column_PriorityTotalScore
+ {
+ columnId: 'PriorityTotalScore'
+ dataPath: 'PriorityTotalScore'
+ dataType: 'real'
+ index: 11
+ subtotals: ''
+ width: 150
+ }
+ }
+ }
+ }
+ form_FormPriorityFactor
+ {
+ title: 'QTIANMA_JITUAN::FormPriorityFactor'
+ shown: true
+ componentID: 'QTIANMA_JITUAN::FormPriorityFactor'
+ layout
+ {
+ mode: 'open'
+ rowPosition: 37
+ rowSpan: 8
+ columnPosition: 1
+ columnSpan: 4
+ }
+ components
+ {
+ FormPriorityFactor_ListPriorityFactor
+ {
+ }
+ FormPriorityFactor_DataSetLevelPriorityFactor
+ {
+ groupDepth: -1
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ index: 0
+ subtotals: ''
+ width: 150
+ }
+ column_Coefficient
+ {
+ columnId: 'Coefficient'
+ dataPath: 'Coefficient'
+ dataType: 'real'
+ index: 1
+ subtotals: ''
+ width: 150
+ }
+ column_Desc
+ {
+ columnId: 'Desc'
+ dataPath: 'Desc'
+ dataType: 'string'
+ index: 2
+ subtotals: ''
+ width: 150
+ }
+ }
+ }
+ }
+ form_FormPriorityFactorGrading
+ {
+ title: 'QTIANMA_JITUAN::FormPriorityFactorGrading'
+ shown: true
+ componentID: 'QTIANMA_JITUAN::FormPriorityFactorGrading'
+ layout
+ {
+ mode: 'open'
+ rowPosition: 32
+ rowSpan: 5
+ columnPosition: 1
+ columnSpan: 4
+ }
+ components
+ {
+ FormPriorityFactorGrading_ListPriorityFactorGrading
+ {
+ }
+ FormPriorityFactorGrading_DataSetLevelPriorityFactorGrading
+ {
+ groupDepth: -1
+ column_GradingName
+ {
+ columnId: 'GradingName'
+ dataPath: 'GradingName'
+ dataType: 'string'
+ index: 0
+ subtotals: ''
+ width: 150
+ }
+ column_GradeValueStr
+ {
+ columnId: 'GradeValueStr'
+ dataPath: 'GradeValueStr'
+ dataType: 'string'
+ index: 1
+ subtotals: ''
+ width: 150
+ }
+ column_GradeDesc
+ {
+ columnId: 'GradeDesc'
+ dataPath: 'GradeDesc'
+ dataType: 'string'
+ index: 2
+ subtotals: ''
+ width: 150
+ }
+ }
+ }
+ }
}
userconfigurableinformation
{
diff --git "a/_Main/UI/MacroPlannerWebApp/Views/\346\216\245\345\217\243\346\265\213\350\257\225.vw" "b/_Main/UI/MacroPlannerWebApp/Views/\346\216\245\345\217\243\346\265\213\350\257\225.vw"
new file mode 100644
index 0000000..d4e8c6a
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Views/\346\216\245\345\217\243\346\265\213\350\257\225.vw"
@@ -0,0 +1,223 @@
+Quintiq file version 2.0
+{
+ viewcontents
+ {
+ forms
+ {
+ form_FormInterfaceTest
+ {
+ title: 'QTIANMA_JITUAN::FormInterfaceTest'
+ shown: true
+ componentID: 'QTIANMA_JITUAN::FormInterfaceTest'
+ layout
+ {
+ mode: 'open'
+ rowPosition: 1
+ rowSpan: 16
+ columnPosition: 1
+ columnSpan: 6
+ }
+ components
+ {
+ FormInterfaceTest_PanelInterfaceOption1
+ {
+ sizeRatio: 1
+ }
+ FormInterfaceTest_PanelInterfaceOption2
+ {
+ sizeRatio: 1
+ }
+ FormInterfaceTest_PanelInterfaceOption3
+ {
+ sizeRatio: 1
+ }
+ FormInterfaceTest_PanelInterfaceOption4
+ {
+ sizeRatio: 1
+ }
+ FormInterfaceTest_PanelInterfaceTest
+ {
+ sizeRatio: 1
+ }
+ FormInterfaceTest_PanelInterfaceGlobal_BrokerExecuteLog
+ {
+ sizeRatio: 1
+ }
+ FormInterfaceTest_ListInterfaceTest
+ {
+ }
+ FormInterfaceTest_DataSetLevelInterfaceTest
+ {
+ groupDepth: -1
+ sort: 'IsSuccess'
+ column_ImageExecutionStatus
+ {
+ columnId: 'ImageExecutionStatus'
+ dataPath: 'ImageExecutionStatus'
+ dataType: 'string'
+ index: 0
+ subtotals: ''
+ width: 37
+ }
+ column_ExecuteUser
+ {
+ columnId: 'ExecuteUser'
+ dataPath: 'ExecuteUser'
+ dataType: 'string'
+ index: 1
+ subtotals: ''
+ width: 110
+ }
+ column_IsSuccess
+ {
+ columnId: 'IsSuccess'
+ dataPath: 'IsSuccess'
+ dataType: 'boolean'
+ index: 2
+ subtotals: ''
+ width: 96
+ }
+ column_BrokerName
+ {
+ columnId: 'BrokerName'
+ dataPath: 'BrokerName'
+ dataType: 'string'
+ index: 3
+ subtotals: ''
+ width: 229
+ }
+ column_ElementTotal
+ {
+ columnId: 'ElementTotal'
+ dataPath: 'ElementTotal'
+ dataType: 'number'
+ index: 4
+ subtotals: ''
+ width: 87
+ }
+ column_ErrorDateTime
+ {
+ columnId: 'ErrorDateTime'
+ dataPath: 'ErrorDateTime'
+ dataType: 'string'
+ index: 5
+ subtotals: ''
+ width: 121
+ }
+ column_ErrorMessage
+ {
+ columnId: 'ErrorMessage'
+ dataPath: 'ErrorMessage'
+ dataType: 'string'
+ index: 6
+ subtotals: ''
+ width: 86
+ }
+ column_ErrorNo
+ {
+ columnId: 'ErrorNo'
+ dataPath: 'ErrorNo'
+ dataType: 'number'
+ index: 7
+ subtotals: ''
+ width: 86
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ index: 8
+ subtotals: ''
+ width: 150
+ }
+ column_SuccessDateTime
+ {
+ columnId: 'SuccessDateTime'
+ dataPath: 'SuccessDateTime'
+ dataType: 'string'
+ index: 9
+ subtotals: ''
+ width: 150
+ }
+ }
+ }
+ }
+ form_FormShowInterfaceData
+ {
+ title: 'QTIANMA_JITUAN::FormShowInterfaceData'
+ shown: true
+ componentID: 'QTIANMA_JITUAN::FormShowInterfaceData'
+ layout
+ {
+ mode: 'open'
+ rowPosition: 1
+ rowSpan: 16
+ columnPosition: 7
+ columnSpan: 6
+ }
+ components
+ {
+ FormShowInterfaceData_MatrixEditorShowInterfaceData
+ {
+ gridColor: '#c4c4c4'
+ totalHeaderWidth: 200
+ attributeHeaderWidthRatio: 0.6
+ nameHeaderWidthRatio: 0.4
+ columnWidth: 100
+ horizontalGrid: true
+ verticalGrid: true
+ backendState
+ {
+ componentId: 'QTIANMA_JITUAN::FormShowInterfaceData.MatrixEditorShowInterfaceData'
+ state
+ {
+ cells
+ {
+ attributes
+ {
+ attribute_Value
+ {
+ type: 'MatrixEditorWebApiCellDataModelInterest'
+ index: 0
+ rowsubtotal: ''
+ columnsubtotal: ''
+ attribute: 'Value'
+ }
+ }
+ }
+ columns
+ {
+ sorting
+ {
+ criteria: "datamember:'ColumnIndex'"
+ }
+ }
+ rows
+ {
+ sorting
+ {
+ criteria: "datamember:'RowNr'"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ userconfigurableinformation
+ {
+ }
+ image: 'SKIN_TIGER'
+ page: ''
+ group: ''
+ index: 0
+ description: ''
+ }
+ formatversion: 2
+ id: '鎺ュ彛娴嬭瘯'
+ name: '鎺ュ彛娴嬭瘯'
+ isglobal: false
+ isroot: true
+}
diff --git a/_var/_Main/ProjSettings/MacroPlannerWebApp/Views/FillingCapacityOrder.vw b/_var/_Main/ProjSettings/MacroPlannerWebApp/Views/FillingCapacityOrder.vw
deleted file mode 100644
index e143a99..0000000
--- a/_var/_Main/ProjSettings/MacroPlannerWebApp/Views/FillingCapacityOrder.vw
+++ /dev/null
@@ -1,12 +0,0 @@
-Quintiq file version 2.0
-{
- viewcontents
- {
- index: 0
- }
- formatversion: 2
- id: 'FillingCapacityOrder'
- name: 'FillingCapacityOrder'
- isglobal: false
- isroot: false
-}
diff --git a/_var/_Main/ProjSettings/MacroPlannerWebApp/Views/FillingCapacityOrderHistorical.vw b/_var/_Main/ProjSettings/MacroPlannerWebApp/Views/FillingCapacityOrderHistorical.vw
index 1323ac5..5dd155f 100644
--- a/_var/_Main/ProjSettings/MacroPlannerWebApp/Views/FillingCapacityOrderHistorical.vw
+++ b/_var/_Main/ProjSettings/MacroPlannerWebApp/Views/FillingCapacityOrderHistorical.vw
@@ -2,6 +2,9 @@
{
viewcontents
{
+ userconfigurableinformation
+ {
+ }
forms
{
form_FormCustomerAndForecastOrder
@@ -417,18 +420,11 @@
}
}
}
- userconfigurableinformation
- {
- }
- page: ''
- group: ''
- index: 15
- image: ''
- description: ''
+ index: 0
}
formatversion: 2
id: 'FillingCapacityOrderHistorical'
name: 'FillingCapacityOrderHistorical'
isglobal: false
- isroot: true
+ isroot: false
}
--
Gitblit v1.9.3