From 472c228ef6d7c8d877558ff90051b1fdb35ffb5c Mon Sep 17 00:00:00 2001 From: renhao <renhui.hao@capgemini.com> Date: 星期二, 10 十月 2023 14:05:34 +0800 Subject: [PATCH] Merge branch 'dev' --- _Main/BL/Type_CapacityAndSaleBudgeFilterYear/StaticMethod_Initial.qbl | 4 _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 | 9 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_OperationCost.qbl | 13 _Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_PanelInterfaceTest_ButtonSynchronizeDataToMacroPlan_OnClick.def | 26 _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_H_MaterialInfo/Attribute_ID.qbl | 8 _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/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyCoefficient_902_ButtonCommit_OnClick.def | 7 _var/_Main/ProjSettings/MacroPlannerWebApp/TypeConfigs/CustomerOrder.qtc | 20 _Main/BL/Type_Global_ShowColumn/Attribute_ColumnName.qbl | 7 _Main/UI/MacroPlannerWebApp/Views/Test.vw | 458 + _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/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_listContextMenuCapacityAllocationResults.def | 2 _Main/BL/Type_Global_MappingCustomOrder/StaticMethod_GetProduct_MP.qbl | 17 _Main/UI/MacroPlannerWebApp/Component_FrmErrorLogs/_ROOT_Component_FrmErrorLogs.def | 3 _Main/BL/Type_Global_MappingProduct_MP/Attribute_BOMCount.qbl | 8 _Main/BL/Type_Operation/Method_OnCommitCustom.qbl | 4 _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_FormCapacityAllocationResults/Response_PanelCapacityAllocationResults_ButtonGenerateCapacityAllocationR#39.def | 16 _Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders226/Response_ListSalesDemands_MenuCreate_OnClick#715.def | 19 _Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Component_PanelFillingCapacityOrder.def | 26 _Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Response_pnlActions_btnOk_OnClick.def | 52 _Main/UI/MacroPlannerWebApp/Component_DialogNewPriorityPolicy/Method_Edit.def | 15 _Main/BL/Type_H_FunctionClass/StaticMethod_UpdateOrderForecastRealQty.qbl | 2 _Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Component_pnlContent.def | 33 _Main/BL/Type_FillingCapacityOrder/Attribute_State.qbl | 8 _Main/BL/Type_Unit/StaticMethod_CreateOrUpdate.qbl | 8 _Main/BL/Type_Global_MappingCustomOrder/Attribute_ProductGrade.qbl | 7 _Main/BL/Type_H_FunctionClass/StaticMethod_SM_OrderHedgingEx.qbl | 181 _Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Method_New.def | 14 _Main/BL/Type_Global_MappingCustomOrder/StaticMethod_CreateCustomOrder.qbl | 45 _Main/BL/Type_FillingCapacityOrder/StaticMethod_CreateCustomOrder.qbl | 36 _Main/BL/Type_CapacityAllocationResultsRuleConfiguration/Attribute_StockingPointID.qbl | 9 _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 | 27 _Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Response_PanelFillingCapacityOrder_ButtonDeduct_OnClick.def | 24 _Main/BL/Type_Global_ShowCell/StaticMethod_SetColumnsAndRows.qbl | 16 _Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_Panel418_btn_Query_FM_OnClick.def | 15 _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/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Component_PanelImportAndExport.def | 37 _Main/BL/Type_Global_MappingDOI_DSI/Attribute_OrganCode.qbl | 9 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/_ROOT_Component_FormCapacityAndSaleBudgeCompare.def | 11 _Main/BL/Relations/Relation_CapacityAllocationResultsRuleConfiguration_CapacityAllocationResult.qbl | 23 _Main/BL/Type_BusinessType/Attribute_DisplayType.qbl | 8 _Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/Component_PanelHedgingOfLog.def | 6 _Main/BL/Type_Global_MappingProduct_MP/Method_SetIsLinkedWithFinishedGoodAttributes_Recursive.qbl | 91 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_ListCapacityAllocationResultsRuleConfiguration_MenuNew_OnClick.def | 19 _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 | 79 _Main/UI/MacroPlannerWebApp/Component_FormMaterialPurchase/Component_ListMaterialPurchase.def | 3 _Main/UI/MacroPlannerWebApp/Component_DialogBusinessType/Method_ClickBtnOk.def | 7 _Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_ListSalesDemands.def | 18 _Main/UI/MacroPlannerWebApp/Component_Form234/Component_List174.def | 2 _Main/BL/Type_FillingCapacityOrder/Attribute_UnitOfMeasure_MPID.qbl | 7 _Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Method_New.def | 18 _Main/BL/Type_MPSync/Method_CapacityAndSaleBudgeExport.qbl | 143 _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 | 4 _Main/BL/Type_Global_MappingCustomOrder/Attribute_OrderType#905.qbl | 7 _Main/BL/Type_Global_MappingCustomOrder/StaticMethod_GetSalesSegment_MP.qbl | 16 _Main/BL/Type_MacroPlan/Method_MappingProductData.qbl | 4 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupSalesViews#633.def | 11 _Main/UI/MacroPlannerWebApp/Component_FrmErrorLogs/Component_List710.def | 2 _Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/_ROOT_Component_FormPriorityFactorGrading.def | 4 _Main/BL/Type_CapacityAllocationResults/Attribute_ManufacturedDate.qbl | 7 _Main/BL/Type_Global_ShowRow/_ROOT_Type_Global_ShowRow.qbl | 9 _Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_PanelAllSalesDemands.def | 8 _Main/BL/Type_FillingCapacityOrder/TypeIndex_FillingCapacityOrderTypeIndex.qbl | 12 _Main/BL/EDI/Broker_GlobalOTDTable_CARRC_Export.qbl | 49 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_ConversionFactor.qbl | 13 _Main/BL/Type_H_OrderForecastRealQty/Attribute_Department.qbl | 8 _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_FormCustomerOrders/_ROOT_Component_FormCustomerOrders.def | 10 _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_FormHedgingOfLog/Component_PanelHedgingOfLog221.def | 26 _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 | 110 _Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_ListInterfaceTest_MenuCreateShowData_OnClick.def | 33 _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_Global_MappingCurrency_MP/StaticMethod_OnException.qbl | 9 _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_FormCustomerOrders226/Component_ListSDIP.def | 20 _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/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_cmTestAttempt_mnCapacityAllocationAndProductionFillin.def | 16 _Main/BL/Type_CapacityAndSaleBudgeCompareItemColumn/StaticMethod_CreateIfNotExist.qbl | 6 _Main/BL/Type_MacroPlan/Method_MappingForecastData.qbl | 10 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_listActionBarPageCapacityAllocationResults.def | 2 _Main/BL/Type_MacroPlan/Method_MappingOperationBOMData.qbl | 81 _Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders226/Component_PanelAllSalesDemands.def | 11 _Main/UI/MacroPlannerWebApp/Views/填产方案列表.vw | 2 _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_FormCapacityAllocationResultsRuleConfiguration/Response_PanelImportAndExport_Import_OnClick.def | 29 _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonMultiply_OnClick.def | 7 _Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Component_pnlActions.def | 40 _Main/BL/Type_CapacityAllocationResults/Attribute_UserQuantity.qbl | 7 _Main/UI/MacroPlannerWebApp/Component_FormMaterialPurchase/Component_PanelMaterialPurchase.def | 4 _Main/BL/Relations/Relation_CapacityAndSaleBudgeCompareItemColumn_GlobalOTDTable_GlobalOTDTable.qbl | 24 _Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/_ROOT_Component_FormFillingCapacityOrder.def | 1 _Main/UI/MacroPlannerWebApp/Component_FormReleaseRecord/Response_ListReleaseRecord_OnSelectionChanged.def | 10 _Main/BL/EDI/Broker_GlobalOTDTable_CARRC_Import.qbl | 49 _Main/BL/Type_CustomerOrder/Attribute_OrderTag.qbl | 8 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterYear/Response_OnCreated.def | 2 _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonLeftParenthesis_OnClick.def | 7 _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonSubtract_OnClick.def | 7 _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/UI/MacroPlannerWebApp/Component_FormReleaseRecord/Response_OnCreated.def | 2 _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 | 12 _Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/_ROOT_Component_FrmOrderForecast.def | 96 _Main/BL/Type_CapacityAllocationResultsRuleConfiguration/_ROOT_Type_CapacityAllocationResultsRuleConfiguration.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_H_OrderForecastRealQty/Attribute_SKU.qbl | 2 _Main/BL/Type_Forecast/StaticMethod_CreateOrUpdate.qbl | 16 _Main/BL/Type_Scenario/Attribute_ScenarioName.qbl | 8 _Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl | 31 _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_FormHedgingOfLog/Component_ListHedgingOfLog.def | 4 _Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Response_TIANMA_JITUAN_ListSalesDemands_MenuPriorityResult_OnClick.def | 19 _Main/BL/Type_CustomerOrder/StaticMethod_DoSync.qbl | 5 _Main/BL/Type_Global_MappingCustomOrder/StaticMethod_SynchronizeMacroPlanData.qbl | 31 _Main/UI/MacroPlannerWebApp/Component_FrmErrorLogs/Component_Panel391.def | 24 _Main/BL/Type_MacroPlan/Method_MappingActualPISPIPData.qbl | 11 _Main/BL/Type_PriorityPolicy/StaticMethod_GetCalcStr.qbl | 94 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Component_ListCapacityAllocationResultsRuleConfiguration.def | 59 _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicyBusinessType_OnCreated.def | 18 _Main/BL/Type_Global_MappingLaneLeg/StaticMethod_OnException.qbl | 9 _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/BL/Relations/Relation_H_CustomOrder_MacroPlan_MacroPlan_H_CustomOrder.qbl | 23 _Main/BL/Type_H_OrderForecastRealQty/Attribute_VCode.qbl | 8 _Main/UI/MacroPlannerWebApp/Component_FrmRAShow/Component_List696.def | 2 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_ButtonExportTest_OnClick.def | 21 _Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/Component_PanelHedgingOfLog593#93.def | 38 _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 | 1 _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/BL/Type_Global_MappingCustomOrder/StaticMethod_GetUnitOfMeasure_MP.qbl | 16 _Main/BL/Type_Global_MappingCustomOrder/StaticMethod_GetStockingPoing_MP.qbl | 17 _Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/_ROOT_Component_DialogCreateEditCapacityAllocationResultsRuleConfiguration.def | 32 _Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_New.def | 15 _Main/BL/Type_CustomerOrder/StaticMethod_CreateOrUpdate.qbl | 47 _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_CapacityAllocationResultsRuleConfiguration/StaticMethod_Import.qbl | 14 _Main/BL/Type_H_FunctionClass/StaticMethod_SM_OrderHedging.qbl | 237 _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/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/_ROOT_Component_FormCapacityAllocationResults.def | 12 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_PanelCapacityAllocationResults_Export_OnClick.def | 16 _Main/BL/Type_PriorityFactor/StaticMethod_InitData.qbl | 52 _Main/BL/Type_Global_MappingLane/StaticMethod_OnException.qbl | 9 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/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_Buttonplus_OnClick.def | 7 _Main/BL/Type_H_OrderForecastRealQty/Attribute_CustomCode.qbl | 8 _Main/UI/MacroPlannerWebApp/Component_FormProducts/Component_listContextMenuProduct#1.def | 28 _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/Relations/Relation_CapacityAllocationResultsRuleConfiguration_GlobalOTDTable_GlobalOTD.qbl | 23 _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/BL/Type_H_MaterialInfo/Attribute_SKU.qbl | 8 _Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnCreated.def | 6 _Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderPlanDeliver_OnC.def | 2 _Main/BL/Type_CapacityAllocationResults/Attribute_StockingPointID.qbl | 7 _Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_ListInterfaceTest_MenuSelectionAll_OnClick.def | 17 _Main/BL/Type_CapacityAllocationResultsRuleConfiguration/Attribute_PanelMaterialCode.qbl | 9 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_AIPISPIP.qbl | 13 _Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders226/Response_ListSalesDemands_MenuCopy_OnClick.def | 19 _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/BL/Type_CapacityAllocationResults/StaticMethod_ObtainTheFinalOutputProduct.qbl | 35 _Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Material/Response_OnCreated.def | 23 _Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Method_Edit.def | 17 _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/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonRightParenthesis_OnClick.def | 7 _Main/BL/Type_H_MaterialInfo/_ROOT_Type_H_MaterialInfo.qbl | 10 _Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_CreateByAPI.qbl | 16 _Main/BL/Type_ManufactureLTImputation/StaticMethod_Transfer.qbl | 42 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Component_listActionBarPageCapacityAllocationResultsRuleConfiguration.def | 10 _Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders226/Response_ListSalesDemands_MenuEdit_OnClick.def | 20 _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_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def | 1 _Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Component_pnlContent.def | 26 _Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/Component_matrixEditorActionBarPageShowInterfaceData.def | 10 _Main/BL/Type_H_MaterialInfo/Attribute_NeedQty.qbl | 8 _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_FormCustomerOrders/Component_PanelSalesDemands.def | 8 _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/BL/Type_MPSync/StaticMethod_TestData.qbl | 4 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterBusinessType/Component_ListCapacityAndSaleBudgeFilterBusinessType.def | 4 _Main/BL/Type_GlobalDTOTable/Method_SynchronizeDataToMacroPlan#127.qbl | 20 _Main/BL/Type_H_MaterialInfo/Attribute_OrgCode.qbl | 8 _Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/Response_PanelHedgingOfLog593_93_btn_Query_FHO_OnClick.def | 19 _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/Type_ManufactureLTProcessSection/StaticMethod_CreateOrUpdate.qbl | 10 _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/UI/MacroPlannerWebApp/Views/OrderLock.vw | 451 + _Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders226/Component_ListSalesDemands.def | 30 _Main/BL/Type_CapacityAndSaleBudgeFilterBusinessType/StaticMethod_CreateIfNotExist.qbl | 2 _Main/BL/Type_H_OrderForecastRealQty/Attribute_Unit.qbl | 2 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_ListCapacityAllocationResultsRuleConfiguration_MenuSelectAll_OnClic.def | 17 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ContextMenuSalesFillingCapacity.def | 4 _Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Response_PanelButton_ButtonTransform_OnClick.def | 20 _Main/UI/MacroPlannerWebApp/Component_FormProducts/Response_TIANMA_JITUAN_ListProduct_844_MenuMarkingPanelMaterial_OnClick.def | 19 _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 | 23 _Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Component_listContextMenuFillingCapacityOrder.def | 1 _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicy_OnCreated.def | 19 _Main/BL/Type_CapacityAllocationResults/Attribute_ProductID.qbl | 7 _Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_OnCreated.def | 9 _Main/UI/MacroPlannerWebApp/Component_FormFillingScheme/Response_ListFillingScheme_MenuDelete_OnClick.def | 3 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_ButtonExportDetail_OnClick.def | 23 _Main/BL/Type_Global_ShowRow/Attribute_RowNr.qbl | 7 _Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Response_OnCreated.def | 10 _Main/BL/Type_FillingCapacityOrder/Attribute_CurrencyID.qbl | 7 _Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption1.def | 65 _Main/UI/MacroPlannerWebApp/Views/年度产销复盘.vw | 777 ++ _Main/BL/Type_CapacityAllocationResultsRuleConfiguration/StaticMethod_Export.qbl | 14 _Main/BL/Type_H_MaterialInfo/Attribute_MaterialType.qbl | 8 _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 | 15 _Main/UI/MacroPlannerWebApp/Component_FormProducts/_ROOT_Component_FormProducts.def | 10 _Main/BL/Type_CustomerAndForecastOrder/Attribute_CustomerOrderID.qbl | 7 _Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders226/Component_PanelSDIP.def | 15 _Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Component_pnlContent.def | 238 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_DOI_DSI.qbl | 6 _Main/BL/Type_H_Forecast/Attribute_StockingPointID.qbl | 8 _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/BL/Type_H_FunctionClass/StaticMethod_SM_MaterialReverse.qbl | 7 _Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_ListInterfaceTest.def | 59 _Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/_ROOT_Component_FormPriorityFactor.def | 45 _Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/_ROOT_Component_FormHedgingOfLog.def | 12 _Main/UI/MacroPlannerWebApp/Component_FormProducts/Component_ListProduct#844.def | 14 _Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Component_Panel418.def | 16 _Main/BL/Type_BusinessType/StaticMethod_CreateData.qbl | 1 _Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel351_btn_Add_Material_FOF503_OnClick#222.def | 35 _Main/BL/Type_CustomerAndForecastOrder/StaticMethod_RefreshData.qbl | 56 _Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Response_pnlActions_btnCancel_OnClick.def | 15 _Main/BL/Type_MacroPlan/Method_MappingUnitData.qbl | 9 _Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenario_OnClick#549.def | 2 _Main/BL/Relations/Relation_H_MaterialInfo_MacroPlan_MacroPlan_H_MaterialInfo.qbl | 23 _Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetMaterialData.qbl | 109 _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicyBusinessType_OnDataChanged.def | 18 _Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlContent_DataHolderChoosePriorityPolicy_OnDataChanged.def | 18 _Main/BL/Type_CapacityAllocationResultsRuleConfiguration/Attribute_Division.qbl | 8 _Main/BL/Type_Global_MappingCustomOrder/Attribute_SheetProfitability.qbl | 7 _Main/UI/MacroPlannerWebApp/Component_FormMaterialPurchase/_ROOT_Component_FormMaterialPurchase.def | 12 _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_H_FunctionClass/_ROOT_Type_H_FunctionClass.qbl | 2 _Main/BL/Type_BaseConversionFactor/StaticMethod_CreateOrUpdate.qbl | 15 _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/MacroPlannerWebApp/Component_FormCustomerOrders226/_ROOT_Component_FormCustomerOrders226.def | 18 _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_FormReleaseRecord/Component_ListReleaseRecord243.def | 2 _Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Method_EditCustomerOrderPriority.def | 17 _Main/BL/Type_GlobalDTOTable/Method_SettingFailureDetails.qbl | 23 _Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders226/Component_PanelSalesDemands.def | 12 _Main/UI/MacroPlannerWebApp/Component_Form367/Component_listActionBarPageOrganCode.def | 10 _Main/UI/MacroPlannerWebApp/Component_FrmErrorLogs/Response_Panel391_Button655_OnClick.def | 39 _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 | 58 _Main/BL/Type_Global_ShowColumn/_ROOT_Type_Global_ShowColumn.qbl | 9 _Main/BL/Type_CapacityAllocationResultsRuleConfiguration/TypeIndex_CapacityAllocationResultsRuleConfigurationTypeIndex.qbl | 20 _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/BL/Type_FillingCapacityOrder/StaticMethod_OrderOffset.qbl | 58 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_abgInterfaceTest.def | 24 _Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_listContextMenuPriorityFactor.def | 19 _Main/BL/KnowledgeBaseDomain_MacroPlanner/KnowledgeBase_Knowledge_MP/_ROOT_KnowledgeBase_Knowledge_MP.qbl | 6 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_PanelCapacityAllocationResults.def | 37 _Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderCustomerOrder_O.def | 10 _Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_Panel418_btn_Add_FM_OnClick#975.def | 35 _Main/BL/Type_PriorityResult/StaticMethod_CalculateScore.qbl | 87 _Main/UI/MacroPlannerWebApp/Component_FormFillingScheme/Response_ListFillingScheme_OnSelectionChanged.def | 20 _Main/BL/Type_H_OrderForecastRealQty/Attribute_Month.qbl | 2 _Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel351_btn_OrderH_FOF_OnClick.def | 16 _Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_OnCreated.def | 10 _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuEdit_OnClick.def | 15 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_cmTestAttempt.def | 35 _Main/UI/MacroPlannerWebApp/Component_FrmRAShow/Component_Panel224.def | 1 _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 _var/_Main/ProjSettings/MacroPlannerWebApp/Views/Test.vw | 42 _Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_OnException.qbl | 9 _Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Response_pnlActions_btnOk_OnClick.def | 15 _Main/BL/Type_H_FunctionClass/StaticMethod_SM_OrderReverseOrAuthorize.qbl | 9 _Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel351_btn_Add_Order_FOF449_OnClick#880.def | 21 _Main/BL/Type_CapacityAllocationResults/Attribute_Date.qbl | 7 _Main/BL/Type_PriorityResult/StaticMethod_calculatePriorityResult.qbl | 132 _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuDelete_OnClick.def | 1 _Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_ButtonOrderLockHeaderFresh_OnClick.def | 20 _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_DropDownStringList_OnSelectionCh.def | 2 _Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterBusinessType_GlobalOTDTable_GlobalOTDTabl.qbl | 23 _Main/BL/Type_CapacityAllocationResultsRuleConfiguration/Attribute_ModuleMaterialCode.qbl | 9 _Main/BL/Type_MPSync/Method_RefreshCapacityAndSaleBudgeFilter.qbl | 8 _Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel351_btn_Query_FOF_OnClick.def | 21 _Main/BL/Type_CapacityAllocationResults/StaticMethod_IterativeGeneration2.qbl | 113 _Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_liH_Forecast.def | 8 _Main/BL/Type_GlobalDTOTable/Method_CapacityAndSaleBudgeChart.qbl | 264 _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_DialogCapacityAllocationResultsRuleConfiguration/Component_pnlActions.def | 40 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Response_ButtonCapacityAndSaleBudgeCompare_OnClick.def | 14 _Main/BL/Type_Global_MappingCustomOrder/StaticMethod_SynchronizeInterfaceData.qbl | 18 _Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Component_listContextMenuPriorityFactorGrading.def | 14 _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/BL/Type_CustomerOrder/StaticMethod_LockUnlock.qbl | 4 _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/BL/Type_H_MaterialInfo/Attribute_MaterialName.qbl | 8 _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_H_OrderForecastRealQty/Attribute_ForecastQty.qbl | 8 _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/UI/MacroPlannerWebApp/Component_FormPanelMaterialTianHua/_ROOT_Component_FormPanelMaterialTianHua.def | 4 _Main/BL/Type_ProductInStockingPointInPeriodPlanningLeaf/FunctionOverride_CalcStockLevelInDays.qbl | 79 _Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterMonth_GlobalOTDTable_GlobalOTDTable_Capac.qbl | 23 _Main/UI/MacroPlannerWebApp/Component_FormReleaseRecord/_ROOT_Component_FormReleaseRecord.def | 12 _Main/BL/Type_MappingSaleBudge/StaticMethod_ExportFields.qbl | 64 _Main/UI/MacroPlannerWebApp/Component_FormReleaseRecord/Component_ListReleaseRecord.def | 2 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_ListCapacityAllocationResultsRuleConfiguration_MenuDelete_OnClick.def | 18 _Main/UI/MacroPlannerWebApp/Component_FormProducts/Component_PanelList.def | 8 _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_FormCapacityAllocationResults/Component_ListCapacityAllocationResults.def | 14 _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/BL/Type_CapacityAllocationResults/Attribute_Description.qbl | 7 _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/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/_ROOT_Component_FormCapacityAllocationResultsRuleConfiguration.def | 43 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_abgTest.def | 29 _Main/BL/Type_CapacityAllocationResults/Attribute_ID.qbl | 7 _Main/BL/Type_MappingSaleBudge/StaticMethod_ExpectedHeaders.qbl | 64 _Main/BL/Type_Global_ShowCell/StaticMethod_ShowData.qbl | 14 _Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuInit_OnClick.def | 18 _Main/BL/Type_Forecast/StaticMethod_DoSync.qbl | 5 _Main/UI/MacroPlannerWebApp/Views/PriorityResults.vw | 4 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_PanelImportAndExport_Export_OnClick.def | 16 _Main/BL/Type_Global_MappingOperation/Attribute_IsLinkedWithFinishedGood.qbl | 8 LibMacroPlanner/BL/Type_UnitPeriodTimeBase/Function_CalcTotalAvailableCapacity.qbl | 3 _Main/BL/Type_H_MaterialInfo/Attribute_ParentSKU.qbl | 8 _Main/BL/Type_Global_ShowColumn/Attribute_ColumnIndex.qbl | 7 _var/_Main/ModelSettings/Common/Dev-21/_ROOT_Role_Dev-21.properties | 2 _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 | 42 _Main/BL/Type_Global_MappingCustomerGrade/_ROOT_Type_Global_MappingCustomerGrade.qbl | 9 _Main/BL/Type_CapacityAllocationResults/StaticMethod_CreateDate.qbl | 21 _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/BL/Type_CapacityAllocationResults/DeclarativeReferenceRelation_CalcCapacityAllocationResultsRuleConfiguration.qbl | 15 _Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/_ROOT_Component_FormPriorityResult.def | 4 _Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_ListOrderLock#844.def | 2 _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/BL/Type_H_MaterialInfo/Attribute_Unit.qbl | 8 _Main/UI/MacroPlannerWebApp/Views/接口测试.vw | 223 _Main/BL/Type_MacroPlan/Method_MappingOperationData.qbl | 8 _Main/UI/MacroPlannerWebApp/Views/FillingCapacityOrderHistorical.vw | 2 _Main/BL/EDI/Broker_GlobalOTDTable_CAR_Export.qbl | 65 _Main/UI/MacroPlannerWebApp/Component_FormMaterialPurchase/Component_PanelMaterialPurchase354.def | 26 _Main/BL/Type_YuxTest/Attribute_TestBoolean.qbl | 7 _Main/BL/Type_MappingSaleBudge/StaticMethod_Export.qbl | 73 _Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetBOMBySKU.qbl | 18 _Main/BL/Type_H_MaterialInfo/Attribute_NeedDate.qbl | 8 _Main/BL/Type_H_OrderForecastRealQty/Attribute_StockingPointID.qbl | 8 _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyOperation.def | 2 _Main/UI/MacroPlannerWebApp/Component_FormReleaseRecord/Component_PanelReleaseRecord423.def | 26 _Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetUnitBySKU.qbl | 22 _Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLockHeader#545.def | 16 _Main/BL/Type_Global_MappingSalesSegment_MP/StaticMethod_SynchronizeInterfaceData.qbl | 18 _Main/UI/MacroPlanner/Component_FormTestButtonCollection/Response_Button398_OnClick.def | 2 _Main/BL/Type_CapacityAllocationResults/StaticMethod_Export.qbl | 13 _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/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonDivide_OnClick.def | 7 _Main/BL/Type_Global_MappingInventorySupply/StaticMethod_SynchronizeInterfaceData.qbl | 18 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_InventorySupply.qbl | 13 _Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Response_pnlActions_btnOk_OnClick.def | 34 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Component_listContextMenuCapacityAllocationResultsRuleConfiguration.def | 59 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_DOI_DSI.qbl | 9 _Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetProductInfo#1.qbl | 20 _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 | 33 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_DataHolderSelectCapacityAllocationResultsRuleConfiguration_OnDataCh.def | 18 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Component_ChartCapacityAndSaleBudgeChart.def | 4 _Main/BL/Type_ScenarioManager/StaticMethod_GeneratesTheSpecifiedXMLColumn.qbl | 23 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Response_ButtonExportCompare_OnClick.def | 21 _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 | 9 _Main/BL/Type_CapacityAndSaleBudgeFilterItem/StaticMethod_CreateIfNotExist.qbl | 2 _Main/UI/MacroPlannerWebApp/Component_FrmMaterial/_ROOT_Component_FrmMaterial.def | 7 _Main/BL/Type_H_MaterialInfo/Attribute_VCode.qbl | 8 _Main/BL/Type_H_OrderForecastRealQty/Attribute_SKUName.qbl | 8 _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 | 14 _Main/BL/Type_Global_MappingCustomerGrade/Attribute_BusinessType.qbl | 9 _Main/BL/Type_H_MaterialInfo/Attribute_StockPoint.qbl | 8 _Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Component_List832.def | 4 _Main/BL/Type_H_CustomOrder/_ROOT_Type_H_CustomOrder.qbl | 10 _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_DialogCapacityAllocationResultsRuleConfiguration/Component_pnlContent.def | 58 _Main/UI/MacroPlannerWebApp/Component_FrmOrderResult/Component_List782.def | 2 _Main/BL/Type_H_MaterialInfo/Attribute_ForecastID.qbl | 8 _Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption2#456.def | 65 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/_ROOT_Component_FormCapacityAndSaleBudgeChart.def | 22 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_applicationDevelopmentActionBarPageDef#1.def | 9 _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PriorityPolicyBusinessType_OnSelectionChanged.def | 8 _Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Component_ListCustomerAndFillingCapacityOrder.def | 2 _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicyFactor_OnDataChanged.def | 18 _Main/BL/Type_Global_MappingCustomOrder/StaticMethod_GetCurrency_MP.qbl | 16 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_cmTestAttempt_mnAnnualProductionAndSalesReview_OnClic.def | 16 /dev/null | 12 _Main/BL/Type_LibSOPImpExp_ExportExcel/StaticMethod_IsDataSourceIncluded_Tianma.qbl | 10 _Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_OnException.qbl | 9 _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 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_ListCapacityAllocationResultsRuleConfiguration_MenuEdit_OnClick.def | 21 596 files changed, 16,122 insertions(+), 1,247 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_CARRC_Export.qbl b/_Main/BL/EDI/Broker_GlobalOTDTable_CARRC_Export.qbl new file mode 100644 index 0000000..d50d284 --- /dev/null +++ b/_Main/BL/EDI/Broker_GlobalOTDTable_CARRC_Export.qbl @@ -0,0 +1,49 @@ +Quintiq file version 2.0 +#parent: #root +EDIBroker GlobalOTDTable_CARRC_Export +{ + MDSDefinition: GlobalOTDTable + TimeZone: 'ACT' + UseOSTimeZone: false + EDIModelLink.Source Source11 + { + EDIMLTable CapacityAllocationResultsRuleConfiguration + { + PrimaryKeyColumns: ModuleMaterialCode + PrimaryKeyColumns: PanelMaterialCode + PrimaryKeyColumns: StockingPointID + TargetType: CapacityAllocationResultsRuleConfiguration + TypeIndex: CapacityAllocationResultsRuleConfigurationTypeIndex + EDIMLColumn Division { Attribute: Division ValueType: String } + EDIMLColumn ModuleMaterialCode { Attribute: ModuleMaterialCode ValueType: String } + EDIMLColumn PanelMaterialCode { Attribute: PanelMaterialCode ValueType: String } + EDIMLColumn StockingPointID { Attribute: StockingPointID ValueType: String } + } + } + EDITransformation.Transformation Transformation11 + { + EDITableTransformation + { + InputTable: CapacityAllocationResultsRuleConfiguration + OutputTable: CapacityAllocationResultsRuleConfiguration + EDIColumnMatch { InputColumn: Division OutputColumn: Division } + EDIColumnMatch { InputColumn: ModuleMaterialCode OutputColumn: ModuleMaterialCode } + EDIColumnMatch { InputColumn: PanelMaterialCode OutputColumn: PanelMaterialCode } + EDIColumnMatch { InputColumn: StockingPointID OutputColumn: StockingPointID } + } + } + EDIXLSLink.Destination Destination12 + { + FileName: 'Destination12' + EDIXLSLinkTable CapacityAllocationResultsRuleConfiguration + { + Columns: + [ + EDIXLSLinkColumn Division { ValueType: String } + EDIXLSLinkColumn ModuleMaterialCode { ValueType: String } + EDIXLSLinkColumn PanelMaterialCode { ValueType: String } + EDIXLSLinkColumn StockingPointID { ValueType: String } + ] + } + } +} diff --git a/_Main/BL/EDI/Broker_GlobalOTDTable_CARRC_Import.qbl b/_Main/BL/EDI/Broker_GlobalOTDTable_CARRC_Import.qbl new file mode 100644 index 0000000..e539ed2 --- /dev/null +++ b/_Main/BL/EDI/Broker_GlobalOTDTable_CARRC_Import.qbl @@ -0,0 +1,49 @@ +Quintiq file version 2.0 +#parent: #root +EDIBroker GlobalOTDTable_CARRC_Import +{ + MDSDefinition: GlobalOTDTable + TimeZone: 'ACT' + UseOSTimeZone: false + EDIModelLink.Destination Destination13 + { + EDIMLTable CapacityAllocationResultsRuleConfiguration + { + PrimaryKeyColumns: ModuleMaterialCode + PrimaryKeyColumns: PanelMaterialCode + PrimaryKeyColumns: StockingPointID + TargetType: CapacityAllocationResultsRuleConfiguration + TypeIndex: CapacityAllocationResultsRuleConfigurationTypeIndex + EDIMLColumn Division { Attribute: Division ValueType: String } + EDIMLColumn ModuleMaterialCode { Attribute: ModuleMaterialCode ValueType: String } + EDIMLColumn PanelMaterialCode { Attribute: PanelMaterialCode ValueType: String } + EDIMLColumn StockingPointID { Attribute: StockingPointID ValueType: String } + } + } + EDITransformation.Transformation Transformation12 + { + EDITableTransformation + { + InputTable: CapacityAllocationResultsRuleCo + OutputTable: CapacityAllocationResultsRuleConfiguration + EDIColumnMatch { InputColumn: Division OutputColumn: Division } + EDIColumnMatch { InputColumn: ModuleMaterialCode OutputColumn: ModuleMaterialCode } + EDIColumnMatch { InputColumn: PanelMaterialCode OutputColumn: PanelMaterialCode } + EDIColumnMatch { InputColumn: StockingPointID OutputColumn: StockingPointID } + } + } + EDIXLSLink.Source Source12 + { + FileName: '浜ц兘鍒嗛厤缁撴灉瑙勫垯.xlsx' + EDIXLSLinkTable CapacityAllocationResultsRuleCo + { + Columns: + [ + EDIXLSLinkColumn Division { ValueType: String } + EDIXLSLinkColumn ModuleMaterialCode { ValueType: String } + EDIXLSLinkColumn PanelMaterialCode { ValueType: String } + EDIXLSLinkColumn StockingPointID { ValueType: String } + ] + } + } +} diff --git a/_Main/BL/EDI/Broker_GlobalOTDTable_CAR_Export.qbl b/_Main/BL/EDI/Broker_GlobalOTDTable_CAR_Export.qbl new file mode 100644 index 0000000..571fce9 --- /dev/null +++ b/_Main/BL/EDI/Broker_GlobalOTDTable_CAR_Export.qbl @@ -0,0 +1,65 @@ +Quintiq file version 2.0 +#parent: #root +EDIBroker GlobalOTDTable_CAR_Export +{ + MDSDefinition: GlobalOTDTable + TimeZone: 'ACT' + UseOSTimeZone: false + EDIModelLink.Source Source13 + { + EDIMLTable CapacityAllocationResults + { + TargetType: CapacityAllocationResults + EDIMLColumn Date { Attribute: Date ValueType: Date } + EDIMLColumn Description { Attribute: Description ValueType: String } + EDIMLColumn Division { Attribute: Division ValueType: String } + EDIMLColumn ID { Attribute: ID ValueType: String } + EDIMLColumn ManufacturedDate { Attribute: ManufacturedDate ValueType: Date } + EDIMLColumn ModuleBase { Attribute: ModuleBase ValueType: String } + EDIMLColumn ModuleMaterialCode { Attribute: ModuleMaterialCode ValueType: String } + EDIMLColumn ModuleMeasurementUnit { Attribute: ModuleMeasurementUnit ValueType: String } + EDIMLColumn NumberOfModules { Attribute: NumberOfModules ValueType: Real } + EDIMLColumn NumberOfPanels { Attribute: NumberOfPanels ValueType: Real } + EDIMLColumn PanelBase { Attribute: PanelBase ValueType: String } + EDIMLColumn PanelMaterialCode { Attribute: PanelMaterialCode ValueType: String } + EDIMLColumn PanelMeasurementUnit { Attribute: PanelMeasurementUnit ValueType: String } + EDIMLColumn ProductID { Attribute: ProductID ValueType: String } + EDIMLColumn RequirementDate { Attribute: RequirementDate ValueType: Date } + EDIMLColumn StockingPointID { Attribute: StockingPointID ValueType: String } + EDIMLColumn UserQuantity { Attribute: UserQuantity ValueType: Real } + EDIMLColumn VersionNumber { Attribute: VersionNumber ValueType: String } + } + } + EDITransformation.Transformation Transformation13 + { + EDITableTransformation + { + InputTable: CapacityAllocationResults + OutputTable: CapacityAllocationResults + EDIColumnMatch { InputColumn: Date OutputColumn: Date } + EDIColumnMatch { InputColumn: Description OutputColumn: Description } + EDIColumnMatch { InputColumn: ID OutputColumn: ID } + EDIColumnMatch { InputColumn: ManufacturedDate OutputColumn: ManufacturedDate } + EDIColumnMatch { InputColumn: ProductID OutputColumn: ProductID } + EDIColumnMatch { InputColumn: StockingPointID OutputColumn: StockingPointID } + EDIColumnMatch { InputColumn: UserQuantity OutputColumn: UserQuantity } + } + } + EDIXLSLink.Destination Destination14 + { + FileName: 'Destination14' + EDIXLSLinkTable CapacityAllocationResults + { + Columns: + [ + EDIXLSLinkColumn Date { ValueType: Date } + EDIXLSLinkColumn Description { ValueType: String } + EDIXLSLinkColumn ID { ValueType: String } + EDIXLSLinkColumn ProductID { ValueType: String } + EDIXLSLinkColumn StockingPointID { ValueType: String } + EDIXLSLinkColumn UserQuantity { ValueType: Real } + EDIXLSLinkColumn ManufacturedDate { ValueType: Date } + ] + } + } +} 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_CapacityAllocationResultsRuleConfiguration_CapacityAllocationResult.qbl b/_Main/BL/Relations/Relation_CapacityAllocationResultsRuleConfiguration_CapacityAllocationResult.qbl new file mode 100644 index 0000000..744cd1a --- /dev/null +++ b/_Main/BL/Relations/Relation_CapacityAllocationResultsRuleConfiguration_CapacityAllocationResult.qbl @@ -0,0 +1,23 @@ +Quintiq file version 2.0 +#parent: #root +Relation CapacityAllocationResultsRuleConfiguration_CapacityAllocationResults_CapacityAllocationResults_CapacityAllocationResultsRuleConfiguration +{ + #keys: '1[414702.0.387791788]' + DefaultRelationStrategy + { + } + RelationSide.LeftSide CapacityAllocationResults + { + #keys: '3[414702.0.387791790][414702.0.387791789][414702.0.387791791]' + Cardinality: '1toN' + ObjectDefinition: CapacityAllocationResultsRuleConfiguration + OwningSide: 'Reference' + } + RelationSide.RightSide CapacityAllocationResultsRuleConfiguration + { + #keys: '3[414702.0.387791793][414702.0.387791792][414702.0.387791794]' + Cardinality: '0to1' + ObjectDefinition: CapacityAllocationResults + OwningSide: 'Reference' + } +} diff --git a/_Main/BL/Relations/Relation_CapacityAllocationResultsRuleConfiguration_GlobalOTDTable_GlobalOTD.qbl b/_Main/BL/Relations/Relation_CapacityAllocationResultsRuleConfiguration_GlobalOTDTable_GlobalOTD.qbl new file mode 100644 index 0000000..40be5f9 --- /dev/null +++ b/_Main/BL/Relations/Relation_CapacityAllocationResultsRuleConfiguration_GlobalOTDTable_GlobalOTD.qbl @@ -0,0 +1,23 @@ +Quintiq file version 2.0 +#parent: #root +Relation CapacityAllocationResultsRuleConfiguration_GlobalOTDTable_GlobalOTDTable_CapacityAllocationResultsRuleConfiguration +{ + #keys: '1[414702.0.374991408]' + DefaultRelationStrategy + { + } + RelationSide.LeftSide GlobalOTDTable + { + #keys: '3[414702.0.374991410][414702.0.374991409][414702.0.374991411]' + Cardinality: '0to1' + ObjectDefinition: CapacityAllocationResultsRuleConfiguration + OwningSide: 'Reference' + } + RelationSide.RightSide CapacityAllocationResultsRuleConfiguration + { + #keys: '3[414702.0.374991413][414702.0.374991412][414702.0.374991414]' + Cardinality: '1toN' + ObjectDefinition: GlobalOTDTable + OwningSide: 'Owned' + } +} 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_H_CustomOrder_MacroPlan_MacroPlan_H_CustomOrder.qbl b/_Main/BL/Relations/Relation_H_CustomOrder_MacroPlan_MacroPlan_H_CustomOrder.qbl new file mode 100644 index 0000000..6a5b131 --- /dev/null +++ b/_Main/BL/Relations/Relation_H_CustomOrder_MacroPlan_MacroPlan_H_CustomOrder.qbl @@ -0,0 +1,23 @@ +Quintiq file version 2.0 +#parent: #root +Relation H_CustomOrder_MacroPlan_MacroPlan_H_CustomOrder +{ + #keys: '1[414724.0.177854649]' + DefaultRelationStrategy + { + } + RelationSide.LeftSide MacroPlan + { + #keys: '3[414724.0.177854651][414724.0.177854650][414724.0.177854652]' + Cardinality: '0to1' + ObjectDefinition: H_CustomOrder + OwningSide: 'Reference' + } + RelationSide.RightSide H_CustomOrder + { + #keys: '3[414724.0.177854654][414724.0.177854653][414724.0.177854655]' + Cardinality: '1toN' + ObjectDefinition: MacroPlan + OwningSide: 'Owned' + } +} diff --git a/_Main/BL/Relations/Relation_H_MaterialInfo_MacroPlan_MacroPlan_H_MaterialInfo.qbl b/_Main/BL/Relations/Relation_H_MaterialInfo_MacroPlan_MacroPlan_H_MaterialInfo.qbl new file mode 100644 index 0000000..075c195 --- /dev/null +++ b/_Main/BL/Relations/Relation_H_MaterialInfo_MacroPlan_MacroPlan_H_MaterialInfo.qbl @@ -0,0 +1,23 @@ +Quintiq file version 2.0 +#parent: #root +Relation H_MaterialInfo_MacroPlan_MacroPlan_H_MaterialInfo +{ + #keys: '1[414724.0.142347478]' + DefaultRelationStrategy + { + } + RelationSide.LeftSide MacroPlan + { + #keys: '3[414724.0.142347480][414724.0.142347479][414724.0.142347481]' + Cardinality: '0to1' + ObjectDefinition: H_MaterialInfo + OwningSide: 'Reference' + } + RelationSide.RightSide H_MaterialInfo + { + #keys: '3[414724.0.142347483][414724.0.142347482][414724.0.142347484]' + Cardinality: '1toN' + ObjectDefinition: MacroPlan + OwningSide: 'Owned' + } +} 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_BaseConversionFactor/StaticMethod_CreateOrUpdate.qbl b/_Main/BL/Type_BaseConversionFactor/StaticMethod_CreateOrUpdate.qbl index 4ecdf63..cd44e09 100644 --- a/_Main/BL/Type_BaseConversionFactor/StaticMethod_CreateOrUpdate.qbl +++ b/_Main/BL/Type_BaseConversionFactor/StaticMethod_CreateOrUpdate.qbl @@ -19,19 +19,22 @@ result := null(ConversionFactor ); if( isnull( source ) or isnull( target ) ) { - error( "can't find source or target unit of measure" ) + info( "can't find source or target unit of measure" ) } - if( productId <> "" ) { + + if( not isnull( source) and not isnull( target)){ + if( productId <> "" ) { product := Product_MP::FindById( macroPlan, productId ); - }else{ - result := BaseConversionFactor::CreateUpdate( source, target, factor, product, isEnable ) + }else{ + result := BaseConversionFactor::CreateUpdate( source, target, factor, product, isEnable ) } - if( isnull( product ) ) { - info( "invalid product id" ) + if( isnull( product ) ) { + info( "鍗曚綅杞崲鍑虹幇鏃犳晥id锛�"+productId ) }else{ result := BaseConversionFactor::CreateUpdate( source, target, factor, product, isEnable ); } + } return result; *] 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/Attribute_Date.qbl b/_Main/BL/Type_CapacityAllocationResults/Attribute_Date.qbl new file mode 100644 index 0000000..a158e2b --- /dev/null +++ b/_Main/BL/Type_CapacityAllocationResults/Attribute_Date.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute Date +{ + #keys: '3[414702.0.388471426][414702.0.388471425][414702.0.388471427]' + ValueType: Date +} diff --git a/_Main/BL/Type_CapacityAllocationResults/Attribute_Description.qbl b/_Main/BL/Type_CapacityAllocationResults/Attribute_Description.qbl new file mode 100644 index 0000000..4d7f093 --- /dev/null +++ b/_Main/BL/Type_CapacityAllocationResults/Attribute_Description.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute Description +{ + #keys: '3[414702.0.388471436][414702.0.388471435][414702.0.388471437]' + ValueType: String +} diff --git a/_Main/BL/Type_CapacityAllocationResults/Attribute_ID.qbl b/_Main/BL/Type_CapacityAllocationResults/Attribute_ID.qbl new file mode 100644 index 0000000..3a52d76 --- /dev/null +++ b/_Main/BL/Type_CapacityAllocationResults/Attribute_ID.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute ID +{ + #keys: '3[414702.0.388471446][414702.0.388471445][414702.0.388471447]' + ValueType: String +} diff --git a/_Main/BL/Type_CapacityAllocationResults/Attribute_ManufacturedDate.qbl b/_Main/BL/Type_CapacityAllocationResults/Attribute_ManufacturedDate.qbl new file mode 100644 index 0000000..15ee01f --- /dev/null +++ b/_Main/BL/Type_CapacityAllocationResults/Attribute_ManufacturedDate.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute ManufacturedDate +{ + #keys: '3[414702.0.388471486][414702.0.388471485][414702.0.388471487]' + ValueType: Date +} diff --git a/_Main/BL/Type_CapacityAllocationResults/Attribute_ProductID.qbl b/_Main/BL/Type_CapacityAllocationResults/Attribute_ProductID.qbl new file mode 100644 index 0000000..ca7c6e4 --- /dev/null +++ b/_Main/BL/Type_CapacityAllocationResults/Attribute_ProductID.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute ProductID +{ + #keys: '3[414702.0.388471456][414702.0.388471455][414702.0.388471457]' + ValueType: String +} diff --git a/_Main/BL/Type_CapacityAllocationResults/Attribute_StockingPointID.qbl b/_Main/BL/Type_CapacityAllocationResults/Attribute_StockingPointID.qbl new file mode 100644 index 0000000..2a28f0d --- /dev/null +++ b/_Main/BL/Type_CapacityAllocationResults/Attribute_StockingPointID.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute StockingPointID +{ + #keys: '3[414702.0.388471466][414702.0.388471465][414702.0.388471467]' + ValueType: String +} diff --git a/_Main/BL/Type_CapacityAllocationResults/Attribute_UserQuantity.qbl b/_Main/BL/Type_CapacityAllocationResults/Attribute_UserQuantity.qbl new file mode 100644 index 0000000..9c3d31c --- /dev/null +++ b/_Main/BL/Type_CapacityAllocationResults/Attribute_UserQuantity.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute UserQuantity +{ + #keys: '3[414702.0.388471476][414702.0.388471475][414702.0.388471477]' + ValueType: Real +} diff --git a/_Main/BL/Type_CapacityAllocationResults/DeclarativeReferenceRelation_CalcCapacityAllocationResultsRuleConfiguration.qbl b/_Main/BL/Type_CapacityAllocationResults/DeclarativeReferenceRelation_CalcCapacityAllocationResultsRuleConfiguration.qbl new file mode 100644 index 0000000..59c9af0 --- /dev/null +++ b/_Main/BL/Type_CapacityAllocationResults/DeclarativeReferenceRelation_CalcCapacityAllocationResultsRuleConfiguration.qbl @@ -0,0 +1,15 @@ +Quintiq file version 2.0 +#parent: #root +DeclarativeReferenceRelation CalcCapacityAllocationResultsRuleConfiguration +{ + #keys: '1[414702.0.388304510]' + Expression: + [* + targetCapacityAllocationResultsRuleConfiguration := select( this.GlobalOTDTable(), CapacityAllocationResultsRuleConfiguration, tempCARRC, + tempCARRC.ModuleMaterialCode() = this.ModuleMaterialCode() and + tempCARRC.PanelMaterialCode() = this.PanelMaterialCode() ); + + return targetCapacityAllocationResultsRuleConfiguration; + *] + Relation: CapacityAllocationResultsRuleConfiguration +} diff --git a/_Main/BL/Type_CapacityAllocationResults/StaticMethod_CreateDate.qbl b/_Main/BL/Type_CapacityAllocationResults/StaticMethod_CreateDate.qbl index ef9782f..2340157 100644 --- a/_Main/BL/Type_CapacityAllocationResults/StaticMethod_CreateDate.qbl +++ b/_Main/BL/Type_CapacityAllocationResults/StaticMethod_CreateDate.qbl @@ -2,27 +2,32 @@ #parent: #root StaticMethod CreateDate ( GlobalOTDTable globalOTDTable, - MacroPlan macroPlan + MacroPlan macroPlan, + Scenario scenario ) { TextBody: [* globalOTDTable.CapacityAllocationResults( relflush ); - finaleProduct_MPs := CapacityAllocationResults::ObtainTheFinalOutputProduct( macroPlan ); + finaleProductInStockingPoint_MPs := CapacityAllocationResults::ObtainTheFinalOutputProduct( macroPlan, globalOTDTable ); period_MPS := null( Period_MPs ); traverse ( macroPlan, PeriodSpecification_MP, psmp, psmp.ID() = "Planning periods" ) { period_MPS := selectsortedset( psmp, PeriodSpecificationPeriod.Period_MP, pmp, not pmp.IsHistorical(), pmp.StartDate() ); } - traverse ( finaleProduct_MPs, Elements, fpmp/*, fpmp.ID() = "ProXOver 1 D2.6 A"*/ ) { - traverse ( fpmp, ProductInStockingPoint_MP, pisp, /*pisp.Name() = "ProXOver 1 D2.6 A in Finished Cars (France)" and*/ not pisp.IsSystem() ) { - traverse ( period_MPS, Elements, pmp ) { - CapacityAllocationResults::IterativeGeneration( globalOTDTable, pisp, 1, null( NewSupply ), -1.0, pmp.StartDate() ); - } - // info( pisp.Name() ); + traverse ( finaleProductInStockingPoint_MPs, Elements, fpispmp ) { + capacityAllocationResultsRuleConfigurations := selectset( globalOTDTable, CapacityAllocationResultsRuleConfiguration, tempCARRC, tempCARRC.ModuleMaterialCode() = fpispmp.ProductID() and tempCARRC.StockingPointID() = 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 ); } } + + traverse ( globalOTDTable, CapacityAllocationResults, car ) { + car.VersionNumber( scenario.Name() ); + } *] } diff --git a/_Main/BL/Type_CapacityAllocationResults/StaticMethod_Export.qbl b/_Main/BL/Type_CapacityAllocationResults/StaticMethod_Export.qbl new file mode 100644 index 0000000..14045dd --- /dev/null +++ b/_Main/BL/Type_CapacityAllocationResults/StaticMethod_Export.qbl @@ -0,0 +1,13 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod Export ( + GlobalOTDTable globalOTDTable +) as BinaryValue +{ + TextBody: + [* + binaryData := globalOTDTable.GlobalOTDTable_CAR_Export().ExecuteToXLS( true ); + + return binaryData.AsBinaryValue(); + *] +} diff --git a/_Main/BL/Type_CapacityAllocationResults/StaticMethod_IterativeGeneration2.qbl b/_Main/BL/Type_CapacityAllocationResults/StaticMethod_IterativeGeneration2.qbl new file mode 100644 index 0000000..226f832 --- /dev/null +++ b/_Main/BL/Type_CapacityAllocationResults/StaticMethod_IterativeGeneration2.qbl @@ -0,0 +1,113 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod IterativeGeneration2 ( + GlobalOTDTable globalOTDTable, + ProductInStockingPoint_MP pisp, + Date targetDate, + CapacityAllocationResultsRuleConfigurations carrcs, + Number numberOfLayers, + NewSupply firstLevelSupply, + Real currentLayerDependentDemandQuantity +) +{ + TextBody: + [* + numberOfLayers++; + //info( "鐩爣鏃堕棿锛�", targetDate.Format( "Y-M2-D2" ) ); + //info( pisp.Name() ); + traverse ( pisp, ProductInStockingPointInPeriodPlanning.astype( ProductInStockingPointInPeriodPlanningLeaf ), pispippl, pispippl.Start().Date() = targetDate ) { + //info( "鏄惁鏈変緵搴旓細", pispippl.NewSupply( relsize ) > 0, " 搴撳瓨锛�", pispippl.InventoryLevelEnd() ); + if ( numberOfLayers <> 1 and pispippl.NewSupply( relsize ) = 0 ) { + previous := pispippl.PreviousPlanningPISPIP().astype( ProductInStockingPointInPeriodPlanningLeaf ); + if ( not previous.Period_MP().IsHistorical() ) { + previousDate := previous.Start().Date(); + CapacityAllocationResults::IterativeGeneration2( globalOTDTable, + pisp, + previousDate, + carrcs, + numberOfLayers, + firstLevelSupply, + currentLayerDependentDemandQuantity + ); + } + } + + traverse ( pispippl, NewSupply, ns, ns.Quantity() > 0 ) { + if ( numberOfLayers = 1 ) { + firstLevelSupply := ns; + } + + ontype( ns.PeriodTask_MP() ) { + PeriodTaskOperation as pto : { + // info( "Operation鍛ㄦ湡浠诲姟..." ); + traverse ( ns, PeriodTask_MP.astype( PeriodTaskOperation ).DependentDemand, dd, dd.Quantity() > 0 ) { + 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( "-----------------------------------------------------------------------------------------------------------------" ); + CapacityAllocationResults::IterativeGeneration2( globalOTDTable, + dd.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP(), + targetDate, + carrcs, + numberOfLayers, + firstLevelSupply, + currentLayerDependentDemandQuantity + ); + } + carrc := select( carrcs, Elements, carrc, carrc.PanelMaterialCode() = ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID() ); + if ( not isnull( carrc ) ) { + // info( "鎵惧埌闈㈡澘鐗╂枡..." ); + globalOTDTable.CapacityAllocationResults( relnew, + PanelBase := pto.Operation().UnitID(), + PanelMaterialCode := ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID(), + NumberOfPanels := currentLayerDependentDemandQuantity, + PanelMeasurementUnit := ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().UnitOfMeasureName(), + ModuleMaterialCode := firstLevelSupply.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID(), + NumberOfModules := firstLevelSupply.Quantity(), + ModuleMeasurementUnit := firstLevelSupply.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().UnitOfMeasureName(), + ModuleBase := guard( firstLevelSupply.PeriodTask_MP().astype( PeriodTaskOperation ).Operation().UnitID(), "杞﹂亾杩愯緭" ), + Division := carrc.Division(), + RequirementDate := firstLevelSupply.Start().Date(), + Date := firstLevelSupply.Start().Date(), + Description := "", + ID := OS::GenerateGUIDAsString(), + ProductID := ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID(), + StockingPointID := ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().StockingPointID(), + UserQuantity := currentLayerDependentDemandQuantity, + ManufacturedDate := Date::MinDate() + ); + + } + //info( "-----------------------------------------------------------------------------------------------------------------" ); + } + + 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( "-----------------------------------------------------------------------------------------------------------------" ); + CapacityAllocationResults::IterativeGeneration2( globalOTDTable, + targetDependentDemand.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP(), + targetDate, + carrcs, + numberOfLayers, + firstLevelSupply, + currentLayerDependentDemandQuantity + ); + } + } + + if ( numberOfLayers = 1 ) { + firstLevelSupply := null( NewSupply ); + } + } + } + *] +} diff --git a/_Main/BL/Type_CapacityAllocationResults/StaticMethod_ObtainTheFinalOutputProduct.qbl b/_Main/BL/Type_CapacityAllocationResults/StaticMethod_ObtainTheFinalOutputProduct.qbl index 0db5a04..6501563 100644 --- a/_Main/BL/Type_CapacityAllocationResults/StaticMethod_ObtainTheFinalOutputProduct.qbl +++ b/_Main/BL/Type_CapacityAllocationResults/StaticMethod_ObtainTheFinalOutputProduct.qbl @@ -1,25 +1,30 @@ Quintiq file version 2.0 #parent: #root StaticMethod ObtainTheFinalOutputProduct ( - MacroPlan macroPlan -) as owning Product_MPs + MacroPlan macroPlan, + GlobalOTDTable globalOTDTable +) as owning ProductInStockingPoint_MPs { TextBody: [* - finaleProducts := construct( Product_MPs ); + //finaleProducts := construct( Product_MPs ); + // + //traverse ( macroPlan, Product_MP, pmp, pmp.IsLeaf() ) { + // flag := true; + // traverse ( macroPlan, Routing.RoutingStep.Operation.OperationInput, oi, flag ) { + // if ( pmp = oi.ProductInStockingPoint_MP().Product_MP() ) { + // flag := false; + // } + // } + // if ( flag ) { + // finaleProducts.Add( pmp ); + // } + //} - traverse ( macroPlan, Product_MP, pmp, pmp.IsLeaf() ) { - flag := true; - traverse ( macroPlan, Routing.RoutingStep.Operation.OperationInput, oi, flag ) { - if ( pmp = oi.ProductInStockingPoint_MP().Product_MP() ) { - flag := false; - } - } - if ( flag ) { - finaleProducts.Add( pmp ); - } - } + finaleProductInStockingPoint_MPs := selectset( macroPlan, Product_MP.ProductInStockingPoint_MP, tempPISPMP, + exists( globalOTDTable, CapacityAllocationResultsRuleConfiguration, tempCARRC, tempCARRC.ModuleMaterialCode() = tempPISPMP.ProductID() and tempCARRC.StockingPointID() = tempPISPMP.StockingPointID() ) + ); - return &finaleProducts; + return &finaleProductInStockingPoint_MPs; *] } diff --git a/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/Attribute_Division.qbl b/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/Attribute_Division.qbl new file mode 100644 index 0000000..2b0b5c3 --- /dev/null +++ b/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/Attribute_Division.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute Division +{ + #keys: '3[414702.0.374991447][414702.0.374991446][414702.0.374991448]' + Description: '浜嬩笟閮�' + ValueType: String +} diff --git a/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/Attribute_ModuleMaterialCode.qbl b/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/Attribute_ModuleMaterialCode.qbl new file mode 100644 index 0000000..ca60799 --- /dev/null +++ b/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/Attribute_ModuleMaterialCode.qbl @@ -0,0 +1,9 @@ +Quintiq file version 2.0 +#parent: #root +Attribute ModuleMaterialCode +{ + #keys: '3[414702.0.374991437][414702.0.374991436][414702.0.374991438]' + Description: '妯$粍鐗╂枡缂栫爜' + IsReadOnly: true + ValueType: String +} diff --git a/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/Attribute_PanelMaterialCode.qbl b/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/Attribute_PanelMaterialCode.qbl new file mode 100644 index 0000000..02037a2 --- /dev/null +++ b/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/Attribute_PanelMaterialCode.qbl @@ -0,0 +1,9 @@ +Quintiq file version 2.0 +#parent: #root +Attribute PanelMaterialCode +{ + #keys: '3[414702.0.374991427][414702.0.374991426][414702.0.374991428]' + Description: '闈㈡澘鐗╂枡缂栫爜' + IsReadOnly: true + ValueType: String +} diff --git a/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/Attribute_StockingPointID.qbl b/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/Attribute_StockingPointID.qbl new file mode 100644 index 0000000..fb82a94 --- /dev/null +++ b/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/Attribute_StockingPointID.qbl @@ -0,0 +1,9 @@ +Quintiq file version 2.0 +#parent: #root +Attribute StockingPointID +{ + #keys: '3[414702.0.375010145][414702.0.375010144][414702.0.375010146]' + Description: '妯$粍浜ф垚鍝佸簱瀛樼偣ID' + IsReadOnly: true + ValueType: String +} diff --git a/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/StaticMethod_Export.qbl b/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/StaticMethod_Export.qbl new file mode 100644 index 0000000..4397413 --- /dev/null +++ b/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/StaticMethod_Export.qbl @@ -0,0 +1,14 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod Export ( + GlobalOTDTable globalOTDTable +) as BinaryValue +{ + TextBody: + [* + // hongjli Sep-25-2023 (created) + binaryValue := globalOTDTable.GlobalOTDTable_CARRC_Export().ExecuteToXLS( true ).AsBinaryValue(); + + return binaryValue; + *] +} diff --git a/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/StaticMethod_Import.qbl b/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/StaticMethod_Import.qbl new file mode 100644 index 0000000..a4eddc6 --- /dev/null +++ b/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/StaticMethod_Import.qbl @@ -0,0 +1,14 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod Import ( + GlobalOTDTable globalOTDTable, + String base64String +) +{ + TextBody: + [* + binaryData := BinaryData::FromBase64EncodedString( base64String ); + + globalOTDTable.GlobalOTDTable_CARRC_Import().ExecuteFromXLS( &binaryData, true ); + *] +} diff --git a/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/TypeIndex_CapacityAllocationResultsRuleConfigurationTypeIndex.qbl b/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/TypeIndex_CapacityAllocationResultsRuleConfigurationTypeIndex.qbl new file mode 100644 index 0000000..ea74562 --- /dev/null +++ b/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/TypeIndex_CapacityAllocationResultsRuleConfigurationTypeIndex.qbl @@ -0,0 +1,20 @@ +Quintiq file version 2.0 +#parent: #root +TypeIndex CapacityAllocationResultsRuleConfigurationTypeIndex +{ + Attributes: + [ + TypeIndexAttribute + { + ModelElement: ModuleMaterialCode + } + TypeIndexAttribute + { + ModelElement: PanelMaterialCode + } + TypeIndexAttribute + { + ModelElement: StockingPointID + } + ] +} diff --git a/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/_ROOT_Type_CapacityAllocationResultsRuleConfiguration.qbl b/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/_ROOT_Type_CapacityAllocationResultsRuleConfiguration.qbl new file mode 100644 index 0000000..7e012c9 --- /dev/null +++ b/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/_ROOT_Type_CapacityAllocationResultsRuleConfiguration.qbl @@ -0,0 +1,10 @@ +Quintiq file version 2.0 +#root +#parent: #DomainModel +Type CapacityAllocationResultsRuleConfiguration +{ + #keys: '5[414702.0.374991403][414702.0.374991401][0.0.0][414702.0.374991402][414702.0.374991404]' + BaseType: Object + Description: '浜ц兘鍒嗛厤缁撴灉锛岃鍒欓厤缃�' + StructuredName: 'CapacityAllocationResultsRuleConfigurations' +} 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 822bde4..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: '鍒濆鍖栧勾浠�' @@ -10,7 +10,7 @@ // yypsybs Sep-15-2023 (created) existList := selectuniquevalues( parent, CapacityAndSaleBudgeFilterYear, item, item.YearNo() ); nowYear := Date::Today().Year(); - for( i := nowYear - 10; i <= nowYear; i++ ) { + for( i := nowYear - 10; i <= nowYear + 5; i++ ) { if( existList.Find( i ) = -1 ) { parent.CapacityAndSaleBudgeFilterYear( relnew, YearNo := i ); 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_OrderTag.qbl b/_Main/BL/Type_CustomerOrder/Attribute_OrderTag.qbl new file mode 100644 index 0000000..4d3e7e6 --- /dev/null +++ b/_Main/BL/Type_CustomerOrder/Attribute_OrderTag.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute OrderTag +{ + #keys: '3[414724.0.177854629][414724.0.177854628][414724.0.177854630]' + Description: '璁㈠崟鐘舵�侊紝鍐插噺鍚庤祴鍊硷紝绾娴�,鏈夐娴嬶紝鏃犻娴嬶紝鍙嶇锛屾巿鏉�' + ValueType: String +} 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 e885859..1728622 100644 --- a/_Main/BL/Type_CustomerOrder/StaticMethod_CreateOrUpdate.qbl +++ b/_Main/BL/Type_CustomerOrder/StaticMethod_CreateOrUpdate.qbl @@ -38,33 +38,58 @@ } // 妫�鏌ヤ緷璧栭」 if( isnull( product) ) { - info( "product not found" ); + info( "product not found" + productId); } if( isnull( salesSegment) ) { - info( "sales segment not found" ); + info( "sales segment not found" + salesSegmentName); } if( isnull( stockingPoint) ) { - info( "stock point not found" ); + info( "stock point not found" + stockingPointId); } //if( isnull( currency) ) { // error( "currency not found" ); //} if( unitOfMeasureName <> "" and isnull( unitOfMeasure) ) { - info( "unit of measure not found" ); + info( "unit of measure not found" + unitOfMeasureName); } - if( priorityName <> "" and isnull( stockingPoint) ) { - info( "priority not found" ); - } + //if( priorityName <> "" and isnull( stockingPoint) ) { + // info( "priority not found" ); + //} // 鏂板/鏇存柊 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 { - result.Update( product, stockingPoint, orderDate, quantity, price, - priorityName, salesSegmentName, currencyId, unitOfMeasureName, - false, customerName, customerId, orderId, orderLineId, true, true, true ); + if( result.ProductID() = productId + and result.StockingPointID() = stockingPointId + and result.StartDate() = orderDate + and result.Quantity() = quantity + and result.Price() = price + and result.PriorityName() = priorityName + and result.SalesSegmentName() = salesSegmentName + and result.CurrencyID() = currencyId + and result.UnitOfMeasureName() = unitOfMeasureName + and result.CustomerName() = customerName + and result.CustomerID() = customerId + and result.OrderID() = orderId + and result.OrderLineID() = orderLineId ){ + info( "No need to update this order: " + id ); + }else{ + if( result.IsLocked() = true ){ + pispips := selectset( result, ProductInStockingPoint_MP.ProductInStockingPointInPeriod, pispip, true ); + pispipLeafs := selectset( pispips, + Elements.astype( ProductInStockingPointInPeriodPlanningLeaf ), + pispip, + true ); + ProductInStockingPointInPeriod::LockUnlockPlanning( pispipLeafs, false, true ); + } + result.Update( product, stockingPoint, orderDate, quantity, price, + priorityName, salesSegmentName, currencyId, unitOfMeasureName, + false, customerName, customerId, orderId, orderLineId, true, true, true ); + result.IsLocked( false ); + } } return result; *] diff --git a/_Main/BL/Type_CustomerOrder/StaticMethod_DoSync.qbl b/_Main/BL/Type_CustomerOrder/StaticMethod_DoSync.qbl index 170d328..4994e49 100644 --- a/_Main/BL/Type_CustomerOrder/StaticMethod_DoSync.qbl +++ b/_Main/BL/Type_CustomerOrder/StaticMethod_DoSync.qbl @@ -3,7 +3,8 @@ StaticMethod DoSync ( MacroPlan macroPlan, Strings businessTypes, - GlobalOTDTable globalOTDTable + GlobalOTDTable globalOTDTable, + Strings organcodelist ) { TextBody: @@ -12,6 +13,6 @@ //info( "Forecast Finished, Start CustomerOrder Data Broker" ); //macroPlan.Broker_OTD_CustomerOrder().Execute(); info( "CustomerOrder Data Broker Finished, Start CustomerOrder Mapping" ); - macroPlan.MappingCustomerOrderData( businessTypes,globalOTDTable ); + macroPlan.MappingCustomerOrderData( businessTypes,globalOTDTable, organcodelist ); *] } diff --git a/_Main/BL/Type_CustomerOrder/StaticMethod_LockUnlock.qbl b/_Main/BL/Type_CustomerOrder/StaticMethod_LockUnlock.qbl index 755761e..3126a57 100644 --- a/_Main/BL/Type_CustomerOrder/StaticMethod_LockUnlock.qbl +++ b/_Main/BL/Type_CustomerOrder/StaticMethod_LockUnlock.qbl @@ -20,7 +20,7 @@ owner.OrderLockLog( relnew, CustomerName := order.CustomerName(), End := order.First().AsPlanningBaseSalesDemandInPeriod().End().Date(), - EndDate := order.EndDate(), + EndDate := order.StartDate(), IsLocked := order.IsLocked(), LastModify := order.LastModify(), LastModifyTime := order.LastModifyTime(), @@ -41,7 +41,7 @@ owner.OrderLockLog( relnew, CustomerName := order.CustomerName(), End := order.First().AsPlanningBaseSalesDemandInPeriod().End().Date(), - EndDate := order.EndDate(), + EndDate := order.StartDate(), IsLocked := order.IsLocked(), LastModify := order.LastModify(), LastModifyTime := order.LastModifyTime(), diff --git a/_Main/BL/Type_FillingCapacityOrder/Attribute_CurrencyID.qbl b/_Main/BL/Type_FillingCapacityOrder/Attribute_CurrencyID.qbl new file mode 100644 index 0000000..5a202bb --- /dev/null +++ b/_Main/BL/Type_FillingCapacityOrder/Attribute_CurrencyID.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute CurrencyID +{ + #keys: '3[414502.0.397320037][414502.0.397320036][414502.0.397320038]' + ValueType: String +} 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/Attribute_UnitOfMeasure_MPID.qbl b/_Main/BL/Type_FillingCapacityOrder/Attribute_UnitOfMeasure_MPID.qbl new file mode 100644 index 0000000..938000c --- /dev/null +++ b/_Main/BL/Type_FillingCapacityOrder/Attribute_UnitOfMeasure_MPID.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute UnitOfMeasure_MPID +{ + #keys: '3[414502.0.397254634][414502.0.397254633][414502.0.397254635]' + ValueType: String +} diff --git a/_Main/BL/Type_FillingCapacityOrder/StaticMethod_CreateCustomOrder.qbl b/_Main/BL/Type_FillingCapacityOrder/StaticMethod_CreateCustomOrder.qbl new file mode 100644 index 0000000..c40a89b --- /dev/null +++ b/_Main/BL/Type_FillingCapacityOrder/StaticMethod_CreateCustomOrder.qbl @@ -0,0 +1,36 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod CreateCustomOrder ( + MacroPlan macroPlan, + FillingCapacityOrder fillingCapacityOrder, + Real quantity +) as CustomerOrder +{ + TextBody: + [* + targetProduct_MP := select( macroPlan, Product_MP, tempPMP, tempPMP.ID() = fillingCapacityOrder.ProductID() ); + targetStockingPoint_MP := select( macroPlan, StockingPoint_MP, tempSPMP, tempSPMP.ID() = fillingCapacityOrder.StockingPointID() ); + + targetCustomerOrder := CustomerOrder::Create( targetProduct_MP, + targetStockingPoint_MP, + OS::GenerateGUIDAsString(), + fillingCapacityOrder.OrderDate(), + quantity, + 0.0, + "Normal", + fillingCapacityOrder.SalesSegmentName(), + fillingCapacityOrder.CurrencyID(), + fillingCapacityOrder.UnitOfMeasureName(), + false, + fillingCapacityOrder.Customer(), + fillingCapacityOrder.CustomerID(), + "", + "", + true, + true, + false + ); + + return targetCustomerOrder; + *] +} diff --git a/_Main/BL/Type_FillingCapacityOrder/StaticMethod_OrderOffset.qbl b/_Main/BL/Type_FillingCapacityOrder/StaticMethod_OrderOffset.qbl new file mode 100644 index 0000000..9dfb713 --- /dev/null +++ b/_Main/BL/Type_FillingCapacityOrder/StaticMethod_OrderOffset.qbl @@ -0,0 +1,58 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod OrderOffset ( + MacroPlan macroPlan +) +{ + TextBody: + [* + needOffsetFillingCapacityOrders := selectset( macroPlan, FillingCapacityOrder, tempFCO, tempFCO.State() = "鏈啿鍑�" or tempFCO.State() ="" ); + + traverse ( needOffsetFillingCapacityOrders, Elements, fco, fco.Quantity() > 0 ) { + originalCounterSignedOrder := select( macroPlan, SalesDemand.astype( CustomerOrder ), tempCO, tempCO.CustomerName() = fco.Customer() and + tempCO.ProductID() = fco.ProductID() and + tempCO.OrderTag() = "鍙嶇" + ); + if ( fco.OrderType() = "鍙嶇" ) { + if ( isnull( originalCounterSignedOrder ) ) { + customerOrder := FillingCapacityOrder::CreateCustomOrder( macroPlan, fco, fco.Quantity() ); + customerOrder.OrderTag( "鍙嶇" ); + } else { + originalCounterSignedOrder.Quantity( originalCounterSignedOrder.Quantity() + fco.Quantity() ); + } + } else if ( fco.OrderType() = "鎺堟潈" ) { + originalAuthorizedOrder := select( macroPlan, SalesDemand.astype( CustomerOrder ), tempCO, tempCO.CustomerName() = fco.Customer() and + tempCO.ProductID() = fco.ProductID() and + tempCO.OrderTag() = "鎺堟潈" + ); + if ( isnull( originalCounterSignedOrder ) ) { + if ( isnull( originalAuthorizedOrder ) ) { + customOrder := FillingCapacityOrder::CreateCustomOrder( macroPlan, fco, fco.Quantity() ); + customOrder.OrderTag( "鎺堟潈" ); + } else { + originalAuthorizedOrder.Quantity( originalAuthorizedOrder.Quantity() + fco.Quantity() ); + } + } else { + numberOfReverseSignatures := originalCounterSignedOrder.Quantity(); + newNumberOfAuthorizations := ifexpr( ( fco.Quantity() - numberOfReverseSignatures ) >= 0, fco.Quantity() - numberOfReverseSignatures, 0 ); + numberOfReverseSignatures := ifexpr( ( fco.Quantity() - numberOfReverseSignatures ) >= 0, 0, numberOfReverseSignatures - fco.Quantity() ); + + if ( numberOfReverseSignatures >= 0 ) { + originalCounterSignedOrder.Quantity( numberOfReverseSignatures ); + } else { + originalCounterSignedOrder.Delete(); + } + + if ( newNumberOfAuthorizations > 0 ) { + if ( isnull( originalAuthorizedOrder ) ) { + customerOrder := FillingCapacityOrder::CreateCustomOrder( macroPlan, fco, newNumberOfAuthorizations ); + customerOrder.OrderTag( "鎺堟潈" ); + } else { + originalAuthorizedOrder.Quantity( originalAuthorizedOrder.Quantity() + newNumberOfAuthorizations ); + } + } + } + } + } + *] +} 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_Forecast/StaticMethod_CreateOrUpdate.qbl b/_Main/BL/Type_Forecast/StaticMethod_CreateOrUpdate.qbl index a5c8eb8..ac5c1bb 100644 --- a/_Main/BL/Type_Forecast/StaticMethod_CreateOrUpdate.qbl +++ b/_Main/BL/Type_Forecast/StaticMethod_CreateOrUpdate.qbl @@ -33,23 +33,23 @@ } // 妫�鏌ヤ緷璧栭」 if( isnull( product ) ) { - error( "product not found" ); + info( "product not found" + productId); } if( isnull( salesSegment ) ) { - error( "sales segment not found" ); + info( "sales segment not found" + salesSegmentName); } if( isnull( stockingPoint ) ) { - error( "stock point not found" ); + info( "stock point not found" + stockingPointId); } if( isnull( currency ) ) { - error( "currency not found" ); + info( "currency not found" + currencyId); } if( unitOfMeasureName <> "" and isnull( unitOfMeasure) ) { - error( "unit of measure not found" ); + info( "unit of measure not found" + unitOfMeasureName ); } - if( priorityName <> "" and isnull( stockingPoint) ) { - error( "priority not found" ); - } + //if( priorityName <> "" and isnull( stockingPoint) ) { + // info( "priority not found" ); + //} // 鏂板/鏇存柊 result := Forecast::FindById( macroPlan, id ); if( isnull( result) ) { diff --git a/_Main/BL/Type_Forecast/StaticMethod_DoSync.qbl b/_Main/BL/Type_Forecast/StaticMethod_DoSync.qbl index 1fdba27..e952521 100644 --- a/_Main/BL/Type_Forecast/StaticMethod_DoSync.qbl +++ b/_Main/BL/Type_Forecast/StaticMethod_DoSync.qbl @@ -3,7 +3,8 @@ StaticMethod DoSync ( MacroPlan macroPlan, Strings businessTypes, - GlobalOTDTable globalOTDTable + GlobalOTDTable globalOTDTable, + Strings organcodelist ) { TextBody: @@ -12,6 +13,6 @@ //info( "OperationCost Finished, Start Forecast Data Broker" ); //macroPlan.Broker_OTD_Forecast().Execute(); info( "Forecast Data Broker Finished, Start Forecast Mapping" ); - macroPlan.MappingForecastData( businessTypes,globalOTDTable ); + macroPlan.MappingForecastData( businessTypes,globalOTDTable, organcodelist ); *] } 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_GlobalDTOTable/Method_CapacityAndSaleBudgeChart.qbl b/_Main/BL/Type_GlobalDTOTable/Method_CapacityAndSaleBudgeChart.qbl new file mode 100644 index 0000000..fbb2caf --- /dev/null +++ b/_Main/BL/Type_GlobalDTOTable/Method_CapacityAndSaleBudgeChart.qbl @@ -0,0 +1,264 @@ +Quintiq file version 2.0 +#parent: #root +Method CapacityAndSaleBudgeChart ( + MacroPlans macroPlans, + String saleOrCapacity, + String groupBy, + String byBusinessTypeOrByOrgCode, + String businessTypeChosen, + String placeOfProductionOfArrayChosen, + String year, + MPSync mpSync, + GlobalOTDTable otdTable, + MacroPlan mappingParent +) +{ + Description: + [* + 鎸夊叆鍙傚鐞嗘暟鎹紝浜х敓闇�瑕佺殑CapacityAndSaleBudgeChartElement + 锛侊紒锛侊紒搴熷純锛侊紒锛侊紒 + *] + TextBody: + [* + // yypsybs Sep-19-2023 (created) + // true, false + info( saleOrCapacity ); + // 鏈�;瀛e害;鍗婂勾;骞� + info( groupBy ); + // 闈㈡澘鍩哄湴;浜嬩笟閮� + info( byBusinessTypeOrByOrgCode ); + info( businessTypeChosen ); + info( placeOfProductionOfArrayChosen ); + info( year ); + + // ====娓呯悊鏃ф暟鎹�==== + this.CapacityAndSaleBudgeChartRow( relflush ); + this.CapacityAndSaleBudgeChartElement( relflush ); + + // ====鎸夐潰鏉垮熀鍦板拰浜嬩笟閮ㄥ浜у搧杩涜绛涢�夊垎缁�==== + historyData := selectset( mpSync, MappingCapacityAndSaleBudge, item, true ); + if( placeOfProductionOfArrayChosen <> "" ) { + historyData := selectset( historyData, Elements, item, item.PlaceOfProductionOfArray() = placeOfProductionOfArrayChosen ); + } + if( businessTypeChosen <> "" ) { + historyData := selectset( historyData, Elements, item, item.BusinessType() = businessTypeChosen ); + } + //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() ); + // 鐢熸垚鍥捐〃鍏冪礌 + if( byBusinessTypeOrByOrgCode = "闈㈡澘鍩哄湴" and groupBy = "骞�" ) { + // 鐩爣 + traverse( placeOfProductionOfArrayList, Elements, placeOfProductionOfArray ) { + productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByPlaceOfProductionOfArray( rows, placeOfProductionOfArray ); + this.CapacityAndSaleBudgeChartElement( relnew, + TimeStringAndScenarioName := [String]year + "骞�-鐩爣", + BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + MappingAnnualBudget::GetSheetByYear( productCodeList, mpSync, [Number]year ), + MappingCapacityAndSaleBudge::GetSheetByYear( productCodeList, mpSync, [Number]year ) ) + ); + // S&OP + traverse( macroPlans, Elements, macroPlan ) { + this.CapacityAndSaleBudgeChartElement( relnew, + TimeStringAndScenarioName := [String]year + "骞�-" + macroPlan.ScenarioName(), + BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + 0.0, + Product_MP::GetNewSupplyByYear( productCodeList, macroPlan, [Number]year ) ) + ); + } + } + } + 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 + "骞�-" + ifexpr( halfNo = 1, "涓�", "涓�" ) + "鍗婂勾-鐩爣", + BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + MappingAnnualBudget::GetSheetByHalfYear( productCodeList, mpSync, [Number]year, halfNo ), + MappingCapacityAndSaleBudge::GetSheetByHalfYear( productCodeList, mpSync, [Number]year, halfNo ) ) + ); + // S&OP + traverse( macroPlans, Elements, macroPlan ) { + this.CapacityAndSaleBudgeChartElement( relnew, + TimeStringAndScenarioName := [String]year + "骞�-" + ifexpr( halfNo = 1, "涓�", "涓�" ) + "鍗婂勾-" + macroPlan.ScenarioName(), + BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + 0.0, + Product_MP::GetNewSupplyByHalfYear( productCodeList, macroPlan, [Number]year, 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 + "骞�-绗�" + [String]seasonNo + "瀛e害-鐩爣", + BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + MappingAnnualBudget::GetSheetBySeason( productCodeList, mpSync, [Number]year, seasonNo ), + MappingCapacityAndSaleBudge::GetSheetBySeason( productCodeList, mpSync, [Number]year, seasonNo ) ) + ); + // info( "productCodeList : " + [String]productCodeList.Size() ); + // S&OP + traverse( macroPlans, Elements, macroPlan ) { + this.CapacityAndSaleBudgeChartElement( relnew, + TimeStringAndScenarioName := [String]year + "骞�-绗�" + [String]seasonNo + "瀛e害-" + macroPlan.ScenarioName(), + BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + 0.0, + Product_MP::GetNewSupplyBySeason( productCodeList, macroPlan, [Number]year, seasonNo ) ) + ); + } + } + } + } + if ( byBusinessTypeOrByOrgCode = "闈㈡澘鍩哄湴" and groupBy = "鏈�" ) { + for( monthNo := 1; monthNo <= 12; monthNo := monthNo + 1 ) { + monthNoString := ifexpr( monthNo <= 9, "0" + [String]monthNo, [String]monthNo ); + traverse( placeOfProductionOfArrayList, Elements, placeOfProductionOfArray ) { + productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByPlaceOfProductionOfArray( rows, placeOfProductionOfArray ); + this.CapacityAndSaleBudgeChartElement( relnew, + TimeStringAndScenarioName := [String]year + "骞�-绗�" + monthNoString + "鏈�-鐩爣", + BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + MappingAnnualBudget::GetSheetByMonth( productCodeList, mpSync, [Number]year, monthNo ), + MappingCapacityAndSaleBudge::GetSheetByMonth( productCodeList, mpSync, [Number]year, monthNo ) ) + ); + // S&OP + traverse( macroPlans, Elements, macroPlan ) { + this.CapacityAndSaleBudgeChartElement( relnew, + TimeStringAndScenarioName := [String]year + "骞�-绗�" + monthNoString + "鏈�-" + macroPlan.ScenarioName(), + BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + 0.0, + Product_MP::GetNewSupplyByMonth( productCodeList, macroPlan, [Number]year, monthNo ) ) + ); + } + } + } + } + if( byBusinessTypeOrByOrgCode = "浜嬩笟閮�" and groupBy = "骞�" ) { + // 鐩爣 + traverse( businessTypeList, Elements, businessType ) { + productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByBusinessType( rows, businessType ); + this.CapacityAndSaleBudgeChartElement( relnew, + TimeStringAndScenarioName := [String]year + "骞�-鐩爣", + BusinessTypeOrPlaceOfProductionOfArray := businessType, + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + MappingAnnualBudget::GetSheetByYear( productCodeList, mpSync, [Number]year ), + MappingCapacityAndSaleBudge::GetSheetByYear( productCodeList, mpSync, [Number]year ) ) + ); + // S&OP + traverse( macroPlans, Elements, macroPlan ) { + this.CapacityAndSaleBudgeChartElement( relnew, + TimeStringAndScenarioName := [String]year + "骞�-" + macroPlan.ScenarioName(), + BusinessTypeOrPlaceOfProductionOfArray := businessType, + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + 0.0, + Product_MP::GetNewSupplyByYear( productCodeList, macroPlan, [Number]year ) ) + ); + } + } + } + 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 + "骞�-" + ifexpr( halfNo = 1, "涓�", "涓�" ) + "鍗婂勾-鐩爣", + BusinessTypeOrPlaceOfProductionOfArray := businessType, + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + MappingAnnualBudget::GetSheetByHalfYear( productCodeList, mpSync, [Number]year, halfNo ), + MappingCapacityAndSaleBudge::GetSheetByHalfYear( productCodeList, mpSync, [Number]year, halfNo ) ) + ); + // S&OP + traverse( macroPlans, Elements, macroPlan ) { + this.CapacityAndSaleBudgeChartElement( relnew, + TimeStringAndScenarioName := [String]year + "骞�-" + ifexpr( halfNo = 1, "涓�", "涓�" ) + "鍗婂勾-" + macroPlan.ScenarioName(), + BusinessTypeOrPlaceOfProductionOfArray := businessType, + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + 0.0, + Product_MP::GetNewSupplyByHalfYear( productCodeList, macroPlan, [Number]year, halfNo ) ) + ); + } + } + } + } + if ( byBusinessTypeOrByOrgCode = "浜嬩笟閮�" and groupBy = "瀛e害" ) { + for( seasonNo := 1; seasonNo <= 4; seasonNo := seasonNo + 1 ) { + traverse( businessTypeList, Elements, businessType ) { + productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByBusinessType( rows, businessType ); + this.CapacityAndSaleBudgeChartElement( relnew, + TimeStringAndScenarioName := [String]year + "骞�-绗�" + [String]seasonNo + "瀛e害-鐩爣", + BusinessTypeOrPlaceOfProductionOfArray := businessType, + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + MappingAnnualBudget::GetSheetBySeason( productCodeList, mpSync, [Number]year, seasonNo ), + MappingCapacityAndSaleBudge::GetSheetBySeason( productCodeList, mpSync, [Number]year, seasonNo ) ) + ); + // S&OP + traverse( macroPlans, Elements, macroPlan ) { + this.CapacityAndSaleBudgeChartElement( relnew, + TimeStringAndScenarioName := [String]year + "骞�-绗�" + [String]seasonNo + "瀛e害-" + macroPlan.ScenarioName(), + BusinessTypeOrPlaceOfProductionOfArray := businessType, + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + 0.0, + Product_MP::GetNewSupplyBySeason( productCodeList, macroPlan, [Number]year, seasonNo ) ) + ); + } + } + } + } + if ( byBusinessTypeOrByOrgCode = "浜嬩笟閮�" and groupBy = "鏈�" ) { + for( monthNo := 1; monthNo <= 12; monthNo := monthNo + 1 ) { + monthNoString := ifexpr( monthNo <= 9, "0" + [String]monthNo, [String]monthNo ); + traverse( businessTypeList, Elements, businessType ) { + productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByBusinessType( rows, businessType ); + this.CapacityAndSaleBudgeChartElement( relnew, + TimeStringAndScenarioName := [String]year + "骞�-绗�" + monthNoString + "鏈�-鐩爣", + BusinessTypeOrPlaceOfProductionOfArray := businessType, + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + MappingAnnualBudget::GetSheetByMonth( productCodeList, mpSync, [Number]year, monthNo ), + MappingCapacityAndSaleBudge::GetSheetByMonth( productCodeList, mpSync, [Number]year, monthNo ) ) + ); + // S&OP + traverse( macroPlans, Elements, macroPlan ) { + this.CapacityAndSaleBudgeChartElement( relnew, + TimeStringAndScenarioName := [String]year + "骞�-绗�" + monthNoString + "鏈�-" + macroPlan.ScenarioName(), + BusinessTypeOrPlaceOfProductionOfArray := businessType, + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + 0.0, + Product_MP::GetNewSupplyByMonth( productCodeList, macroPlan, [Number]year, monthNo ) ) + ); + } + } + } + } + //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_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..31f8b7b --- /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 -> Global_MappingStockingPoint_MP::CreateByAPI() -> Exception() -> Global_MappingStockingPoint_MP::OnException( this ); + } + + if ( isCurrency_MP ) { + this.Global_MappingCurrency_MP( relflush ); + Global_BrokerExecuteLog::CreateInOperation( this, "Currency_MP", executionUser ); + // this -> Global_MappingCurrency_MP::CreateByAPI() -> Exception() -> Global_MappingCurrency_MP::OnException( this ); + } + + if ( isCurrencyRate_MP ) { + this.Global_MappingCurrencyRate_MP( relflush ); + Global_BrokerExecuteLog::CreateInOperation( this, "CurrencyRate_MP", executionUser ); + // this -> Global_MappingCurrencyRate_MP::CreateByAPI() -> Exception() -> Global_MappingCurrencyRate_MP::OnException( this ); + } + + if ( isLane ) { + this.Global_MappingLane( relflush ); + Global_BrokerExecuteLog::CreateInOperation( this, "Lane", executionUser ); + // this -> Global_MappingLane::CreateByAPI() -> Exception() -> Global_MappingLane::OnException( this ); + } + + if ( isLaneLeg ) { + this.Global_MappingLaneLeg( relflush ); + Global_BrokerExecuteLog::CreateInOperation( this, "LaneLeg", executionUser ); + // this -> Global_MappingLaneLeg::CreateByAPI() -> Exception() -> Global_MappingLaneLeg::OnException( 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..ff774ec --- /dev/null +++ "b/_Main/BL/Type_GlobalDTOTable/Method_SynchronizeDataToMacroPlan\043127.qbl" @@ -0,0 +1,20 @@ +Quintiq file version 2.0 +#parent: #root +Method SynchronizeDataToMacroPlan ( + MacroPlan macroPlan, + String executionUser, + Boolean isUnitOfMeasure_MP, + Boolean isCustomOrder +) +{ + TextBody: + [* + if ( isUnitOfMeasure_MP ) { + Global_MappingUnitOfMeasure_MP::SynchronizeMacroPlanData( this, macroPlan ); + } + + if ( isCustomOrder ) { + Global_MappingCustomOrder::SynchronizeMacroPlanData( this, macroPlan, executionUser ); + } + *] +} 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_MappingCurrencyRate_MP/StaticMethod_OnException.qbl b/_Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_OnException.qbl new file mode 100644 index 0000000..1775209 --- /dev/null +++ b/_Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_OnException.qbl @@ -0,0 +1,9 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod OnException ( + Exception e, + GlobalOTDTable globalOTDTable +) +{ + TextBody: 'globalOTDTable.SettingFailureDetails( e.ErrorNumber(), e.Message(), "CurrencyRate_MP", "璐у竵姹囩巼鎺ュ彛鏁版嵁" );' +} 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_MappingCurrency_MP/StaticMethod_OnException.qbl b/_Main/BL/Type_Global_MappingCurrency_MP/StaticMethod_OnException.qbl new file mode 100644 index 0000000..1ee262a --- /dev/null +++ b/_Main/BL/Type_Global_MappingCurrency_MP/StaticMethod_OnException.qbl @@ -0,0 +1,9 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod OnException ( + Exception e, + GlobalOTDTable globalOTDTable +) +{ + TextBody: 'globalOTDTable.SettingFailureDetails( e.ErrorNumber(), e.Message(), "Currency_MP", "璐у竵鎺ュ彛鏁版嵁" );' +} 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_CreateCustomOrder.qbl b/_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_CreateCustomOrder.qbl new file mode 100644 index 0000000..f07437b --- /dev/null +++ b/_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_CreateCustomOrder.qbl @@ -0,0 +1,45 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod CreateCustomOrder ( + GlobalOTDTable globalOTDTable, + MacroPlan macroPlan +) +{ + TextBody: + [* + traverse ( globalOTDTable, Global_MappingCustomOrder, gmco ) { + targetProduct_MP := Global_MappingCustomOrder::GetProduct_MP( macroPlan, gmco ); + targetStockingPoint_MP := Global_MappingCustomOrder::GetStockingPoing_MP( macroPlan, gmco ); + Global_MappingCustomOrder::GetSalesSegment_MP( macroPlan, gmco ); + Global_MappingCustomOrder::GetCurrency_MP( macroPlan, gmco ); + Global_MappingCustomOrder::GetUnitOfMeasure_MP( macroPlan, gmco ); + + targetCustomerOrder := CustomerOrder::Create( targetProduct_MP, + targetStockingPoint_MP, + gmco.ID(), + gmco.OrderDate(), + gmco.Quantity(), + gmco.Price(), + "Normal", + gmco.SalesSegmentName(), + gmco.CurrencyID(), + gmco.UnitOfMeasureName(), + false, + gmco.Customer(), + gmco.CustomerID(), + gmco.OrderID(), + gmco.OrderLineID(), + true, + true, + false + ); + targetCustomerOrder.BusinessType( gmco.BusinessType() ); + targetCustomerOrder.OrderType( gmco.OrderType() ); + targetCustomerOrder.IsAvailable( gmco.IsAvailable() ); + targetCustomerOrder.ProductGrade( gmco.ProductGrade() ); + targetCustomerOrder.SegmentPriority( gmco.SegmentPriority() ); + targetCustomerOrder.SheetProfitability( gmco.SheetProfitability() ); + targetCustomerOrder.OrderTime( gmco.OrderTime() ); + } + *] +} diff --git a/_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_GetCurrency_MP.qbl b/_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_GetCurrency_MP.qbl new file mode 100644 index 0000000..f4d504d --- /dev/null +++ b/_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_GetCurrency_MP.qbl @@ -0,0 +1,16 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod GetCurrency_MP ( + MacroPlan macroPlan, + Global_MappingCustomOrder gmco +) +{ + TextBody: + [* + isExists := exists( macroPlan, Currency_MP, tempCMP, tempCMP.ID() = gmco.CurrencyID() ); + + if ( not isExists ) { + Currency_MP::Create( gmco.CurrencyID(), macroPlan, gmco.CurrencyID(), "", false, false ); + } + *] +} diff --git a/_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_GetProduct_MP.qbl b/_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_GetProduct_MP.qbl new file mode 100644 index 0000000..ba6e469 --- /dev/null +++ b/_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_GetProduct_MP.qbl @@ -0,0 +1,17 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod GetProduct_MP ( + MacroPlan macroPlan, + Global_MappingCustomOrder gmco +) as Product_MP +{ + TextBody: + [* + targetProduct_MP := select( macroPlan, Product_MP, tempPMP, tempPMP.ID() = gmco.ProductID() ); + if ( isnull( targetProduct_MP ) ) { + targetProduct_MP := Product_MP::Create( gmco.ProductID(), macroPlan, null( Product_MP ), gmco.ProductID(), null( SupplyChainView ), 0, 0, false ); + } + + return targetProduct_MP; + *] +} diff --git a/_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_GetSalesSegment_MP.qbl b/_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_GetSalesSegment_MP.qbl new file mode 100644 index 0000000..2e2e473 --- /dev/null +++ b/_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_GetSalesSegment_MP.qbl @@ -0,0 +1,16 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod GetSalesSegment_MP ( + MacroPlan macroPlan, + Global_MappingCustomOrder gmco +) +{ + TextBody: + [* + isExists := exists( macroPlan, SalesSegment_MP, tempSSMP, tempSSMP.Name() = gmco.SalesSegmentName() ); + + if ( not isExists ) { + SalesSegment_MP::Create( macroPlan, "", gmco.SalesSegmentName(), 0, false ); + } + *] +} diff --git a/_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_GetStockingPoing_MP.qbl b/_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_GetStockingPoing_MP.qbl new file mode 100644 index 0000000..37d8b42 --- /dev/null +++ b/_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_GetStockingPoing_MP.qbl @@ -0,0 +1,17 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod GetStockingPoing_MP ( + MacroPlan macroPlan, + Global_MappingCustomOrder gmco +) as StockingPoint_MP +{ + TextBody: + [* + targetStockingPoint_MP := select( macroPlan, StockingPoint_MP, tempSPMP, tempSPMP.ID() = gmco.StockingPointID() ); + if ( isnull( targetStockingPoint_MP ) ) { + targetStockingPoint_MP := StockingPoint_MP::Create( gmco.StockingPointID(), macroPlan, null( Unit ), gmco.StockingPointID(), null( SupplyChainView ), 0, 0, false ); + } + + return targetStockingPoint_MP; + *] +} diff --git a/_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_GetUnitOfMeasure_MP.qbl b/_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_GetUnitOfMeasure_MP.qbl new file mode 100644 index 0000000..b85c24d --- /dev/null +++ b/_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_GetUnitOfMeasure_MP.qbl @@ -0,0 +1,16 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod GetUnitOfMeasure_MP ( + MacroPlan macroPlan, + Global_MappingCustomOrder gmco +) +{ + TextBody: + [* + isExists := exists( macroPlan, UnitOfMeasure_MP, tempUOMMP, tempUOMMP.Name() = gmco.UnitOfMeasureName() ); + + if ( not isExists ) { + UnitOfMeasure_MP::Create( macroPlan, gmco.UnitOfMeasureName(), false, false ); + } + *] +} 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_MappingCustomOrder/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_SynchronizeMacroPlanData.qbl new file mode 100644 index 0000000..9a69cf5 --- /dev/null +++ b/_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_SynchronizeMacroPlanData.qbl @@ -0,0 +1,31 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod SynchronizeMacroPlanData ( + GlobalOTDTable globalOTDTable, + MacroPlan macroPlan, + String executionUser +) +{ + TextBody: + [* + global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew, + Name := "鍚屾璁㈠崟鏁版嵁", + IsSuccess := true, + ExecuteUser := executionUser + ); + + + try { + Global_MappingCustomOrder::CreateCustomOrder( globalOTDTable, macroPlan ); + + global_BrokerExecuteLog.ExecutionStatus( "Complete" ); + global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) ); + } onerror { + global_BrokerExecuteLog.IsSuccess( false ); + global_BrokerExecuteLog.ErrorNo( e.ErrorNr() ); + global_BrokerExecuteLog.ErrorMessage( e.GeneralInformation() ); + global_BrokerExecuteLog.ErrorDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) ); + global_BrokerExecuteLog.ExecutionStatus( "Complete" ); + } + *] +} 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_MappingLane/StaticMethod_OnException.qbl b/_Main/BL/Type_Global_MappingLane/StaticMethod_OnException.qbl new file mode 100644 index 0000000..2f719e0 --- /dev/null +++ b/_Main/BL/Type_Global_MappingLane/StaticMethod_OnException.qbl @@ -0,0 +1,9 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod OnException ( + Exception e, + GlobalOTDTable globalOTDTable +) +{ + TextBody: 'globalOTDTable.SettingFailureDetails( e.ErrorNumber(), e.Message(), "Lane", "杞﹂亾鎺ュ彛鏁版嵁" );' +} 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_MappingLaneLeg/StaticMethod_OnException.qbl b/_Main/BL/Type_Global_MappingLaneLeg/StaticMethod_OnException.qbl new file mode 100644 index 0000000..25ff0bc --- /dev/null +++ b/_Main/BL/Type_Global_MappingLaneLeg/StaticMethod_OnException.qbl @@ -0,0 +1,9 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod OnException ( + Exception e, + GlobalOTDTable globalOTDTable +) +{ + TextBody: 'globalOTDTable.SettingFailureDetails( e.ErrorNumber(), e.Message(), "LaneLeg", "杞﹂亾鏀灦鎺ュ彛鏁版嵁" );' +} 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_MappingStockingPoint_MP/StaticMethod_OnException.qbl b/_Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_OnException.qbl new file mode 100644 index 0000000..2a6d364 --- /dev/null +++ b/_Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_OnException.qbl @@ -0,0 +1,9 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod OnException ( + Exception e, + GlobalOTDTable globalOTDTable +) +{ + TextBody: 'globalOTDTable.SettingFailureDetails( e.ErrorNumber(), e.Message(), "StockingPoint_MP", "搴撳瓨鎺ュ彛鏁版嵁" );' +} 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_CustomOrder/_ROOT_Type_H_CustomOrder.qbl b/_Main/BL/Type_H_CustomOrder/_ROOT_Type_H_CustomOrder.qbl new file mode 100644 index 0000000..a8c4845 --- /dev/null +++ b/_Main/BL/Type_H_CustomOrder/_ROOT_Type_H_CustomOrder.qbl @@ -0,0 +1,10 @@ +Quintiq file version 2.0 +#root +#parent: #DomainModel +Type H_CustomOrder +{ + #keys: '5[414724.0.177854646][414724.0.177854644][0.0.0][414724.0.177854645][414724.0.177854647]' + BaseType: Object + Description: '閲嶅缓鍚庣殑璁㈠崟' + StructuredName: 'H_CustomOrders' +} diff --git a/_Main/BL/Type_H_Forecast/Attribute_StockingPointID.qbl b/_Main/BL/Type_H_Forecast/Attribute_StockingPointID.qbl new file mode 100644 index 0000000..62a27b5 --- /dev/null +++ b/_Main/BL/Type_H_Forecast/Attribute_StockingPointID.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute StockingPointID +{ + #keys: '3[414724.0.149657552][414724.0.149657551][414724.0.149657553]' + Description: '搴撳瓨鐐�' + ValueType: String +} diff --git a/_Main/BL/Type_H_FunctionClass/StaticMethod_NewStaticMethod.qbl b/_Main/BL/Type_H_FunctionClass/StaticMethod_NewStaticMethod.qbl deleted file mode 100644 index 7118da1..0000000 --- a/_Main/BL/Type_H_FunctionClass/StaticMethod_NewStaticMethod.qbl +++ /dev/null @@ -1,10 +0,0 @@ -Quintiq file version 2.0 -#parent: #root -StaticMethod NewStaticMethod () as owning JSON -{ - TextBody: - [* - jResult := JSON::Object().Add( "A","123"); - return jResult.Build(); - *] -} diff --git a/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetBOMBySKU.qbl b/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetBOMBySKU.qbl new file mode 100644 index 0000000..11d0768 --- /dev/null +++ b/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetBOMBySKU.qbl @@ -0,0 +1,18 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod SM_GetBOMBySKU ( + GlobalOTDTable GlobData, + String SKU +) as Global_MappingOperationBOM +{ + Description: '鏍规嵁SKU鑾峰彇BOM' + TextBody: + [* + Obj :=null( Global_MappingOperationBOM,constcontent ); + if( not isnull( GlobData) and SKU.Length()>0) + { + 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 new file mode 100644 index 0000000..2f75b5f --- /dev/null +++ b/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetMaterialData.qbl @@ -0,0 +1,109 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod SM_GetMaterialData ( + MacroPlan Owner, + String ParentSKU, + Number ProductQty, + String ForecastId, + String VCode, + Date NDate, + GlobalOTDTable GlobData +) as owning JSON +{ + Description: '鑾峰彇鐗╂枡淇℃伅' + TextBody: + [* + /**********************************鍒濆鍖栫墿鏂欎俊鎭�*************************************** + *鍒涘缓浜猴細yunying + *鍒涘缓鏃ユ湡锛�2023-09-21 + *鎻忚堪锛氭牴鎹甋KU鑾峰彇涓嬩竴灞傜墿鏂欐暟鎹�,杩欓噷涓嶆槸閬嶅巻寰楀埌鎵�鏈夛紝鏃惰Е鍙戜竴娆″緱鍒颁竴灞傦紝骞剁疮璁� + *鍙傛暟锛� + *****************************************************************************************/ + // 鍒濆鍖栫粨鏋� + bStatus := false; + strMsg :=""; + + try{ + if( GlobData.Global_MappingOperationBOM(relsize )>0) + { + // 寰楀埌涓嬩竴绾ф暟鎹� + AllData:= selectset( GlobData, Global_MappingOperationBOM,object,object.ProductCode()=ParentSKU); + ObjProduct := null( Product_MP,constcontent ); + ObjUnit := null( Unit,constcontent ); + MaterialType:=""; + MaterialName:="-"; + StockPoint := ""; + NRate:=1.0; + NComponentsUsed :=0.0; + ObjBOM := H_FunctionClass::SM_GetBOMBySKU(GlobData,ParentSKU); + if(not isnull( ObjBOM)) + { + NRate := ObjBOM.ComponentOutputRate(); + NComponentsUsed := ObjBOM.UnitUsageOfComponents(); + // 浜у嚭姣斿紓甯告寜 100%浜у嚭璁$畻 + if( NRate <=0.0) + { + NRate :=1.0; + } + } + if( AllData.Size()>0) + { + traverse( AllData,Elements,Obj,not isnull( Obj)) + { + // 寰楀埌褰撳墠宸插瓨鍦ㄧ殑鐗╂枡淇℃伅锛堣鍗旾D + SKU锛� + ObjMaterial := select( Owner,H_MaterialInfo,ObjM,ObjM.ForecastID()=ForecastId and ObjM.SKU()=Obj.ComponentCode()); + if( isnull( ObjMaterial)) + { + // 鐗╂枡绫诲瀷 + MaterialType := Obj.ProductType(); + // 寰楀埌鐗╂枡淇℃伅 + ObjProduct:= H_FunctionClass::SM_GetProductInfo(Owner,Obj.ComponentCode()); + if( not isnull( ObjProduct)) + { + MaterialType:= ObjProduct.ParentID(); + MaterialName:=ObjProduct.Name(); + } + ObjUnit:= H_FunctionClass::SM_GetUnitBySKU( Owner,Obj.ComponentCode()); + if( not isnull( ObjUnit)) + { + StockPoint:= ObjUnit.Name(); + } + Owner.H_MaterialInfo(relnew,ParentSKU := ParentSKU,SKU := Obj.ComponentCode(),ForecastID := ForecastId,OrgCode := Obj.OrganCode(),VCode := VCode + ,ID := H_FunctionClass::SM_GenerateID( "MI"),MaterialType := MaterialType,NeedDate := NDate + ,NeedQty := [Number](ProductQty/NRate*NComponentsUsed).Round( 0),Unit := Obj.UnitOfMeasureName() + ,StockPoint :=StockPoint,MaterialName := MaterialName ); + } + else + { + // 鑰冭檻鏄惁瑕佹洿鏂版暟鎹紝鏆備笉澶勭悊 + } + } + } + } + // 娌℃湁BOM 娣诲姞娴嬭瘯鏁版嵁 + else + { + nCount :=Owner.H_MaterialInfo(relsize ); + Owner.H_MaterialInfo(relnew,ParentSKU := ParentSKU,SKU := "SKU"+ nCount.AsQUILL() ,ForecastID := ForecastId,OrgCode := "ORG_000",VCode := VCode + ,ID := H_FunctionClass::SM_GenerateID( "MI"),MaterialType := "鍘熸潗鏂�",NeedDate := NDate + ,NeedQty := [Number](ProductQty*0.8).Round( 0),Unit := "PCS" + ,StockPoint :="娴嬭瘯",MaterialName := "娴嬭瘯鏁版嵁" ); + Owner.H_MaterialInfo(relnew,ParentSKU := ParentSKU,SKU := "SKU_M"+ (nCount+1).AsQUILL() ,ForecastID := ForecastId,OrgCode := "ORG_000",VCode := VCode + ,ID := H_FunctionClass::SM_GenerateID( "MI"),MaterialType := "鍗婃垚鍝�",NeedDate := NDate + ,NeedQty := [Number](ProductQty*0.8).Round( 0),Unit := "PCS" + ,StockPoint :="娴嬭瘯",MaterialName := "娴嬭瘯鏁版嵁" ); + } + 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_GetProductInfo\0431.qbl" "b/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetProductInfo\0431.qbl" new file mode 100644 index 0000000..09e6868 --- /dev/null +++ "b/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetProductInfo\0431.qbl" @@ -0,0 +1,20 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod SM_GetProductInfo ( + MacroPlan Owner, + String SKU +) as Product_MP +{ + Description: '鏍规嵁SKU鑾峰彇鐗╂枡淇℃伅' + TextBody: + [* + // 鏍规嵁SKU鑾峰彇鐗╂枡淇℃伅 + // 娉ㄦ剰锛氱墿鏂欑被鍨嬪彇 ParentID + Obj := null( Product_MP,constcontent ); + if( not isnull( Owner) and SKU.Length()>0) + { + Obj:= select( Owner,Product_MP,ObjMP,ObjMP.ID()=SKU); + } + return Obj; + *] +} diff --git a/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetUnitBySKU.qbl b/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetUnitBySKU.qbl new file mode 100644 index 0000000..cfa808a --- /dev/null +++ b/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetUnitBySKU.qbl @@ -0,0 +1,22 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod SM_GetUnitBySKU ( + MacroPlan Owner, + String SKU +) as Unit +{ + Description: '閫氳繃SKU鑾峰彇搴撳瓨鐐逛俊鎭�' + TextBody: + [* + Obj :=null( Unit,constcontent ); + if( not isnull( Owner) and SKU.Length()>0) + { + OrgCode := select( Owner,MappingBOM,ObjM,ObjM.ProductCode()=SKU); + if( not isnull( OrgCode)) + { + Obj := select( Owner,Unit,ObjU,ObjU.ID()= OrgCode.OrganCode()); + } + } + 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 5bf028e..0000000 --- a/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_InitialForcastData.qbl +++ /dev/null @@ -1,71 +0,0 @@ -Quintiq file version 2.0 -#parent: #root -StaticMethod SM_InitialForcastData ( - MacroPlan Owner -) as owning JSON -{ - Description: '鍒濆鍖栬鍗曢娴嬩俊鎭�' - TextBody: - [* - /**********************************鍒濆鍖栬鍗曢娴嬩俊鎭�*************************************** - *娉細鏈‘瀹氫笂娓搁娴嬭鍗曟洿鏂伴�昏緫鍜屾暟鎹湁鏁堟�э紝杩欓噷杩涜浜屾澶勭悊锛屾柊鐢熸垚涓�涓垪琛紝閬垮厤涓婃父淇℃伅鍙樺姩涓ラ噸 - * 褰卞搷鍔熻兘 - * - *****************************************************************************************/ - // 鍒濆鍖栫粨鏋� - bStatus := false; - strMsg :=""; - - try{ - // 棰勬祴鏁版嵁2姝ゅ鐞嗭紙绛涢��+瀹㈡埛鍚嶇О鎻愬彇锛� - if(Owner.H_Forecast(relget ).Size()>0) - { - traverse( Owner,H_Forecast,Obj,not isnull( Obj)) - { - Owner.H_Forecast(reldelete, Obj); - } - } - 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; - 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 := Obj.SalesSegmentName(); - } - - Owner.H_Forecast(relnew,OrderCode := H_FunctionClass::SM_GenerateID( "OF"), - SKU := Obj.ProductID(), - CustomCode := CustomName, - CustomName := CustomName, - Util:=Obj.UnitOfMeasureName(), - NeedTime:=Obj.EndDate(), - ForecastQty:=[Number]Obj.Quantity().Round( 0), - Department:=DepartMent); - } - 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 new file mode 100644 index 0000000..d8870c8 --- /dev/null +++ b/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_InitialForcastDataEx.qbl @@ -0,0 +1,110 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod SM_InitialForcastDataEx ( + MacroPlan Owner, + Boolean IsNew, + String VersionCode +) as owning JSON +{ + Description: '鍒濆鍖栬鍗曢娴嬩俊鎭�' + TextBody: + [* + /**********************************鍒濆鍖栬鍗曢娴嬩俊鎭�*************************************** + *娉細鏈‘瀹氫笂娓搁娴嬭鍗曟洿鏂伴�昏緫鍜屾暟鎹湁鏁堟�э紝杩欓噷杩涜浜屾澶勭悊锛屾柊鐢熸垚涓�涓垪琛紝閬垮厤涓婃父淇℃伅鍙樺姩涓ラ噸 + * 褰卞搷鍔熻兘 + *鍙傛暟锛欼sNew 鏄惁鏃跺叏鏂版暟鎹紝鍏ㄦ柊鏁版嵁浼氬皢鏃х殑鏁版嵁娓呴櫎锛岀劧鍚庨噸鏂板~鍏咃紝涓嶆槸鍏ㄦ柊鏁版嵁锛屽皢绱鍜屾洿鏂� + *****************************************************************************************/ + // 鍒濆鍖栫粨鏋� + bStatus := false; + strMsg :=""; + + try{ + // 20230925 浼樺寲鐨勪笟鍔¢�昏緫,濡傛灉鏃舵柊鏁版嵁锛屽垯棰勬祴鏁版嵁鍏ㄩ儴骞叉帀锛岀劧鍚庨噸鏂扮敓鎴� + if( IsNew) + { + if( Owner.H_OrderForecastRealQty(relsize )>0) + { + traverse( Owner,H_OrderForecastRealQty,Obj,not isnull( Obj)) + { + Owner.H_OrderForecastRealQty(reldelete, Obj); + } + } + } + + // 鑾峰彇棰勬祴璁㈠崟锛氬綋鏈堝拰涔嬪悗鐨�3涓湀棰勬祴鏁版嵁 涓旈娴嬫暟閲�>0鐨� + AllData:= selectset( Owner, Product_MP.SalesDemand.astype( Forecast ),object, + object.EndDate().DateTime().Date() >= Date::ActualDate().StartOfMonth() + // 闇�姹傜粰鏈潵4涓湀鐨勬暟鎹紝浣嗗彲鑳藉苟涓嶅噯纭紝鏆傛椂娉ㄩ噴鎺夛紝鍥涗釜鏈堥檺鍒� + //and object.EndDate().DateTime().Date() <= Date::ActualDate().StartOfNextMonth().StartOfNextMonth().StartOfNextMonth().StartOfNextMonth() + and object.Quantity()>0 ); + + CustomName:=""; + DepartMent:=""; + 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) + { + 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() ) + if( IsNew or 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() + ,Department := DepartMent,VCode := VersionCode,SKUName := SKUName); + } + 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_MaterialReverse.qbl b/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_MaterialReverse.qbl index d096a87..b044a49 100644 --- a/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_MaterialReverse.qbl +++ b/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_MaterialReverse.qbl @@ -39,7 +39,7 @@ nNoHaveForecastQty:=0;//浜旈娴嬫暟閲� // 鑾峰彇棰勬祴鏁伴噺锛堝鎴�+SKU+鏈堜唤 鐞嗚鏄病鏈夌墿鏂欓娴嬶級 OrderForecast := select(Owner, H_OrderForecastRealQty , Obj, Obj.SKU() = SKU - and Obj.CustomID() = CustomerCode + and Obj.CustomCode() = CustomerCode and Obj.Month().Format( "YM2") = Date::ActualDate().Format( "YM2")); if ( not isnull(OrderForecast)) { @@ -195,10 +195,9 @@ { Owner.H_OrderForecastRealQty(relnew,ID := H_FunctionClass::SM_GenerateID( "OF"),SKU := SKU, Month := Date::ActualDate(), - CustomID := CustomerCode, + CustomCode := CustomerCode, CustomName := "瀹㈡埛琛ㄨ幏鍙�", - OrderCode := "-", - ForecatsQty :=0, + ForecastQty := 0, ForecatsRealQty :=nForecastQtyNew, Unit := "SKU 鍒扮墿鏂欒〃鑾峰彇"); } diff --git a/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_OrderHedging.qbl b/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_OrderHedging.qbl new file mode 100644 index 0000000..88c8f1d --- /dev/null +++ b/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_OrderHedging.qbl @@ -0,0 +1,237 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod SM_OrderHedging ( + MacroPlan Owner, + Boolean IsNew, + String Operator, + String OperatorType +) as owning JSON +{ + Description: '璁㈠崟鍐插噺璋冪敤鍑芥暟' + TextBody: + [* + /************************************璁㈠崟鍐插噺璋冪敤****************************** + *鍑芥暟鍚嶏細SM_OrderHedging + *鍒涘缓浜猴細yunying + *鍒涘缓鏃堕棿锛�20230-09-24 + *鎻忚堪锛氱郴缁熷唴璁㈠崟鍐插噺璋冪敤鍑芥暟锛孖sNew=true鏃讹紝閲嶆柊澶勭悊棰勬祴淇℃伅锛孖sNew=false鏃讹紝鐢ㄩ娴嬬疮璁′俊鎭�� + *****************************************************************************/ + // 鍒濆鍖栫粨鏋� + bStatus := false; + strMsg :=""; + // 鑾峰彇鐗堟湰鍙�,杩欓噷鏄惁闇�瑕佸拰鐗堟湰鍙峰姛鑳藉鎺� + VCode :=H_FunctionClass::SM_GenerateID("VC"); + + try{ + if( not isnull( Owner)) + { + // 鍒濆鍖栭娴嬩俊鎭� + JResult := H_FunctionClass::SM_InitialForcastDataEx( Owner,IsNew,"--"); + // 棰勬祴鍒濆鍖栧畬鎴� + if( JResult.Get( "Status").GetBoolean()) + { + nForecastQtyOld := 0; //鍘熼娴嬫暟閲� + nReverseQtyOld :=0; //鍘熷弽绛炬暟閲� + nAuthorizeQtyOld :=0; //鍘熸巿鏉冩暟閲� + nForecastQtyNew :=0; //璁$畻鍚庣殑棰勬祴鏁伴噺 + nReverseQtyNew :=0; //璁$畻鍚庣殑鍙嶇鏁伴噺 + nAuthorizeQtyNew :=0; //璁$畻鍚庣殑鎺堟潈鏁伴噺 + nHaveForecastQty :=0; //鏈夐娴嬫暟閲� + nNoHaveForecastQty:=0;//浜旈娴嬫暟閲� + OrderQuantity := 0; //鍓╀綑璁㈠崟鏁伴噺 + traverse( Owner,SalesDemand.astype( CustomerOrder ),ObjOrder) + { + // 鐩存帴鍒犻櫎鏈湀涔嬪墠鐨勮鍗� + if( ObjOrder.EndDate()<Date::ActualDate().StartOfMonth()) + { + ObjOrder.Delete(); + } + else + { + //----------------------------------------浠ヤ笅鍚庡幓棰勬祴 鍙嶇 鎺堟潈鏁版嵁淇℃伅---------------- + nForecastQtyOld := 0; //鍘熼娴嬫暟閲� + nReverseQtyOld :=0; //鍘熷弽绛炬暟閲� + nAuthorizeQtyOld :=0; //鍘熸巿鏉冩暟閲� + nForecastQtyNew :=0; //璁$畻鍚庣殑棰勬祴鏁伴噺 + nReverseQtyNew :=0; //璁$畻鍚庣殑鍙嶇鏁伴噺 + nAuthorizeQtyNew :=0; //璁$畻鍚庣殑鎺堟潈鏁伴噺 + nHaveForecastQty :=0; //鏈夐娴嬫暟閲� + nNoHaveForecastQty:=0;//浜旈娴嬫暟閲� + OrderQuantity := 0; //鍓╀綑璁㈠崟鏁伴噺 + // 鑾峰彇棰勬祴鏁伴噺锛堝鎴�+SKU+鏈堜唤 鐞嗚鏄病鏈夌墿鏂欓娴嬶級 + OrderForecast := select(Owner, H_OrderForecastRealQty , Obj, Obj.SKU() = ObjOrder.ProductID() + and Obj.CustomCode() = ObjOrder.CustomerName() + and Obj.Month().Format( "YM2") =ObjOrder.EndDate().Format( "YM2")); + if ( not isnull(OrderForecast)) + { + nForecastQtyOld := OrderForecast.ForecatsRealQty(); + nForecastQtyNew := nForecastQtyOld; + } + // 鑾峰彇鍙嶇鏁伴噺锛堝彧鍒ゆ柇SKU锛� + ObjReverse := select(Owner, H_ReverseRealQty , Obj, Obj.SKU() = ObjOrder.ProductID()); + if ( not isnull(ObjReverse)) + { + nReverseQtyOld := ObjReverse.ReverseRealQty(); + nReverseQtyNew := nReverseQtyOld; + } + // 鑾峰彇鎺堟潈鏁伴噺锛堝鎴稩D+SKU锛� + ObjAuthorize := select(Owner, H_AuthorizeRealQty , Obj, Obj.SKU() = ObjOrder.ProductID() + and Obj.CustomID() = ObjOrder.CustomerName()); + if ( not isnull(ObjAuthorize)) + { + nAuthorizeQtyOld := ObjAuthorize.AuthorizeRealQty(); + nAuthorizeQtyNew :=nAuthorizeQtyOld; + } + //-----------------------------浠ヤ笅璁㈠崟鍐插噺-------------------- + // 鎺堟潈璁板綍ID + AQID := H_FunctionClass::SM_GenerateID( "AQ"); + // 璁㈠崟鍓╀綑鏁伴噺 + OrderQuantity := [Number]ObjOrder.Quantity().Round( 0); + // 1 鍏堝啿鎺堟潈 + if( OrderQuantity>0 and nAuthorizeQtyOld>0) + { + OrderQuantity := OrderQuantity-nAuthorizeQtyOld; + nAuthorizeQtyNew :=0; + if( OrderQuantity<0) + { + nAuthorizeQtyNew := abs(OrderQuantity); + OrderQuantity :=0; + } + } + // 2 鍐嶅啿鍙嶇 + if( OrderQuantity>0 and nReverseQtyOld>0) + { + OrderQuantity := OrderQuantity-nReverseQtyOld; + nReverseQtyNew :=0; + if( OrderQuantity<0) + { + nReverseQtyNew := abs(OrderQuantity); + OrderQuantity :=0; + } + } + // 3 鏈�鍚庡啿棰勬祴 + if( OrderQuantity>0) + { + //榛樿璁㈠崟鏁伴噺>棰勬祴鏁伴噺 + OrderQuantity := OrderQuantity-nForecastQtyOld; + nForecastQtyNew :=0; + nHaveForecastQty := nForecastQtyOld; + nNoHaveForecastQty := OrderQuantity; + if( OrderQuantity<0) + { + nForecastQtyNew := abs(OrderQuantity); + OrderQuantity :=0; + nHaveForecastQty := nForecastQtyOld - nForecastQtyNew; + nNoHaveForecastQty := 0; + } + } + // 璁板綍鍔ㄤ綔 + Owner.H_OrderRecord(relnew, + ID := AQID, + VCode:=VCode, + SKU:=ObjOrder.ProductID(), + ReverseQty := nReverseQtyNew, + CustomerCode := ObjOrder.CustomerName(), + CustomerName := ObjOrder.CustomerName(), + ForecastQty := nForecastQtyNew, + OrderDateTime := ObjOrder.EndDate(), + OrderQty := [Number]ObjOrder.Quantity().Round( 0), + OrderCode:=ObjOrder.OrderID(), + AuthorizeQty := nAuthorizeQtyNew, + ReverseDeductQty := nReverseQtyOld - nReverseQtyNew, + AuthorizeDeductQty := 0, + ForecastHitQty :=nHaveForecastQty, + ForecastNoHitQty :=nNoHaveForecastQty, + OperateType := OperatorType, + Operator := Operator, + Unit := ObjOrder.UnitOfMeasureName(), + OperateQty := [Number]ObjOrder.Quantity().Round( 0), + OperateTime := DateTime::ActualTime()); + // 绾娴嬭鍗� + if( nForecastQtyNew>0) + { + FOrder := ObjOrder.Copy(); + FOrder.OrderTag("绾娴�"); + FOrder.Quantity(nForecastQtyNew); + } + // 鏈夐娴嬭鍗� + if(nHaveForecastQty>0) + { + HFOrder := ObjOrder.Copy(); + HFOrder.OrderTag("鏈夐娴�"); + HFOrder.Quantity(nHaveForecastQty); + } + // 鏃犻娴� + if(nNoHaveForecastQty>0) + { + NHFOrder := ObjOrder.Copy(); + NHFOrder.OrderTag("鏃犻娴�"); + NHFOrder.Quantity(nNoHaveForecastQty); + } + // ERP鍙嶇鎺堟潈璁㈠崟-鎺ュ彛鏈彁渚� + + // 鏇存柊褰撳墠鍙嶇鏁伴噺 + if( not isnull( ObjReverse)) + { + ObjReverse.ReverseRealQty(nReverseQtyNew); + } + else + { + Owner.H_ReverseRealQty(relnew,ID := H_FunctionClass::SM_GenerateID( "RQ"),SKU := ObjOrder.ProductID(),Unit := ObjOrder.UnitOfMeasureName() + ,ReverseRealQty := nReverseQtyNew); + } + // 鏇存柊鎺堟潈 + if( not isnull( ObjAuthorize)) + { + ObjAuthorize.AuthorizeRealQty(nAuthorizeQtyNew); + } + else + { + Owner.H_AuthorizeRealQty(relnew,ID := H_FunctionClass::SM_GenerateID( "AR"),SKU := ObjOrder.ProductID(), + Month := ObjOrder.EndDate(), + CustomID := ObjOrder.CustomerName(), + CustomName := ObjOrder.CustomerName(), + OrderCode := "-", + AuthorizeRealQty :=nAuthorizeQtyNew, + Unit := ObjOrder.UnitOfMeasureName()); + } + // 鏇存柊棰勬祴 + if( not isnull( OrderForecast)) + { + OrderForecast.ForecatsRealQty(nForecastQtyNew); + } + else + { + Owner.H_OrderForecastRealQty(relnew,ID := H_FunctionClass::SM_GenerateID( "OF"),SKU := ObjOrder.ProductID(), + Month := ObjOrder.EndDate(), + CustomCode := ObjOrder.CustomerName(), + CustomName := ObjOrder.CustomerName(), + ForecastQty := 0, + ForecatsRealQty :=nForecastQtyNew, + Unit := ObjOrder.UnitOfMeasureName()); + } + ObjOrder.Delete(); + } + } + } + else + { + 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( "VersionCode",VCode) + .Add( "Msg",strMsg).Build(); + *] +} diff --git a/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_OrderHedgingEx.qbl b/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_OrderHedgingEx.qbl new file mode 100644 index 0000000..4379bdc --- /dev/null +++ b/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_OrderHedgingEx.qbl @@ -0,0 +1,181 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod SM_OrderHedgingEx ( + MacroPlan Owner, + String Operator +) as owning JSON +{ + Description: '濉骇鍚庡啿鍑�' + TextBody: + [* + /*******************************濉骇鍚庤鍗曞啿鍑�*********************** + *鍑芥暟鍚嶇О锛歋M_OrderHedgingEx + *鍒� 寤� 浜猴細yunying + *鍒涘缓鏃堕棿锛�2023-09-27 + *鎻� 杩帮細濉骇鍚庤鍗曞啿鍑�,濉骇鍚庣殑琛細Owner.FillingCapacityOrder + *鍙� 鏁帮細Operator 鎿嶄綔浜� + *杩� 鍥� 鍊硷細JSON {Status: true 鎴愬姛/false 澶辫触,Msg:"鎻愮ず娑堟伅",Count: 0锛堝啿鍑忚鍗曠殑鏁伴噺锛墋 + *******************************************************************/ + // 鍒濆鍖栫粨鏋� + bStatus := false; + strMsg :=""; + // 鍐插噺鎴愬姛鏉℃暟 + nCount:=0; + try + { + if(not isnull( Owner)) + { + // 鑾峰彇鎿嶄綔璁㈠崟 + NewOrders := selectset( Owner,FillingCapacityOrder,Obj,Obj.State() = "鏈啿鍑�" or Obj.State() =""); + if(NewOrders.Size()>0) + { + // 鏂拌鍗曚笌鍘熻鍗曞啿鍑� + traverse( NewOrders,Elements,Obj) + { + if( (Obj.OrderType()="鍙嶇" or Obj.OrderType()="鎺堟潈") and Obj.Quantity()>0 ) + { + // 寰楀埌鎿嶄綔鐩稿叧鐨勫弽绛捐鍗� + ROrders:= select( Owner,SalesDemand.astype( CustomerOrder ),ObjOrder, + ObjOrder.CustomerName() = Obj.Customer() + and ObjOrder.ProductID()=Obj.ProductID() + and ObjOrder.OrderTag() ="鍙嶇" + ); + // 鍙嶇鏃犲啿鍑忥紝鐩存帴鍚戣鍗曚腑鍔犲叆鍙嶇鏁版嵁 + if( Obj.OrderType()="鍙嶇") + { + if( not isnull( ROrders)) + { + ROrders.Quantity(ROrders.Quantity()+Obj.Quantity()); + } + else + { + // 鏂板璁㈠崟 + error( "----------------璇峰疄鐜版柊澧炲弽绛捐鍗曞姛鑳戒唬鐮�---------------------"); + // 璁㈠崟蹇呰淇℃伅濡備笅锛� + // OrderTag = "鍙嶇" + // Quantity = Obj.Quantity() + // 鍏朵粬淇℃伅缁ф壙褰撳墠鐨勮鍗� + } + } + else if(Obj.OrderType()="鎺堟潈") + { + // 寰楀埌鎿嶄綔鐩稿叧鐨勬巿鏉冭鍗� + AOrders:= select( Owner,SalesDemand.astype( CustomerOrder ),ObjOrder, + ObjOrder.CustomerName() = Obj.Customer() + and ObjOrder.ProductID()=Obj.ProductID() + and ObjOrder.OrderTag() ="鎺堟潈" + ); + if( not isnull( ROrders)) + { + // 褰撳墠鍙嶇鏁伴噺 + RQty:=ROrders.Quantity(); + // 璁$畻鏂扮殑鎺堟潈鏁伴噺 + AQty:= Obj.Quantity() - ROrders.Quantity(); + // 鎺堟潈澶т簬0锛屽弽绛捐鍐叉病,鍚﹀垯鎺堟潈琚啿锛屽弽绛剧瓑浜嶢Qty鐨勭粷瀵瑰�� + if( AQty>=0) + { + RQty:=0; + } + else + { + RQty :=ROrders.Quantity() - Obj.Quantity(); + AQty :=0; + } + // 鏇存柊鍙嶇鏁版嵁 + if( RQty>=0) + { + ROrders.Quantity(RQty); + } + else + { + ROrders.Delete(); + } + // 鏇存柊鎺堟潈鏁版嵁 + if(AQty>0 ) + { + if( not isnull( AOrders)) + { + AOrders.Quantity(AOrders.Quantity()+AQty); + } + // 鏂板鎺堟潈璁㈠崟 + // error( "----------------璇峰疄鐜版柊澧炴巿鏉冭鍗曞姛鑳戒唬鐮�---------------------"); + customOrder := CustomerOrder::Create( select( Owner, Product_MP, tmepPMP, tmepPMP.ID() = Obj.ProductID() ), + select( Owner, StockingPoint_MP, tempSPMP, tempSPMP.ID() = Obj.StockingPointID() ), + OS::GenerateGUIDAsString(), + Obj.OrderDate(), + AQty, + 0.0, + "Normal", + Obj.SalesSegmentName(), + Obj.CurrencyID(), + Obj.UnitOfMeasureName(), + false, + Obj.Customer(), + Obj.CustomerID(), + "", + "", + true, + true, + false + ); + customOrder.OrderTag( "鎺堟潈" ); + // 璁㈠崟蹇呰淇℃伅濡備笅锛� + // OrderTag = "鎺堟潈" + // Quantity = AQty + // 鍏朵粬淇℃伅缁ф壙褰撳墠鐨勮鍗� + } + } + else + { + // 灏嗘柊鎺堟潈鏁版嵁绱姞鍒拌鍗曚腑 + if( not isnull( AOrders)) + { + AOrders.Quantity(AOrders.Quantity()+Obj.Quantity()); + } + else + { + // 鏂板鎺堟潈璁㈠崟 + error( "----------------璇峰疄鐜版柊澧炴巿鏉冭鍗曞姛鑳戒唬鐮�---------------------"); + // 璁㈠崟蹇呰淇℃伅濡備笅锛� + // OrderTag = "鎺堟潈" + // Quantity = Obj.Quantity() + // 鍏朵粬淇℃伅缁ф壙褰撳墠鐨勮鍗� + } + } + } + // 鏇存柊鍐插噺鐘舵�� + Obj.State("宸插啿鍑�"); + nCount++; + } + else + { + // 鏃犳硶璇嗗埆鐨勭被鍨嬶紝鎴栨暟閲忎负0鏃舵殏涓嶅鐞� + //strMsg :="璁㈠崟绫诲瀷锛�" + Obj.OrderType() + "鏃犳硶鍐插噺锛�"; + } + } + bStatus:=true; + strMsg :="濉骇鍚庡啿鍑忓畬鎴愶紒"; + } + else + { + strMsg :="鏃犲彲鍐插噺鐨勬暟鎹紒"; + } + } + else + { + strMsg :="鍔犺浇鏁版嵁澶辫触锛岃鍒涘缓鎴栭�夋嫨鍦烘櫙鍚庡啀鎿嶄綔锛�"; + } + } + onerror + { + strMsg :="濉骇鍚庤鍗曞啿鍑忓彂鐢熼敊璇紝璇疯仈绯荤郴缁熺鐞嗗憳锛�"; + // 璁板綍閿欒鏃ュ織 + // Owner.H_ErrorLogs(relnew,EClassName := "H_FunctionClass",EDateTime := DateTime::ActualGMTTime(),EFunctionName := "SM_OrderHedgingEx", + // DeveloperInformation := e.DeveloperInformation(),ErrorNr := e.ErrorNr(),DetailedInformation := e.DetailedInformation(), + // GeneralInformation := e.GeneralInformation()); + } + return JSON::Object().Add( "Status",bStatus) + .Add( "Count",nCount) + .Add( "Msg",strMsg).Build(); + *] +} diff --git a/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_OrderReverseOrAuthorize.qbl b/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_OrderReverseOrAuthorize.qbl index 72a96c0..2b201ca 100644 --- a/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_OrderReverseOrAuthorize.qbl +++ b/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_OrderReverseOrAuthorize.qbl @@ -39,10 +39,10 @@ nReverseQtyNew :=0; //璁$畻鍚庣殑鍙嶇鏁伴噺 nAuthorizeQtyNew :=0; //璁$畻鍚庣殑鎺堟潈鏁伴噺 nHaveForecastQty :=0; //鏈夐娴嬫暟閲� - nNoHaveForecastQty:=0;//浜旈娴嬫暟閲� + nNoHaveForecastQty:=0;//鏃犻娴嬫暟閲� // 鑾峰彇棰勬祴鏁伴噺锛堝鎴�+SKU+鏈堜唤 鐞嗚鏄病鏈夌墿鏂欓娴嬶級 OrderForecast := select(Owner, H_OrderForecastRealQty , Obj, Obj.SKU() = SKU - and Obj.CustomID() = CustomerCode + and Obj.CustomCode() = CustomerCode and Obj.Month().Format( "YM2") = Date::ActualDate().Format( "YM2")); if ( not isnull(OrderForecast)) { @@ -189,10 +189,9 @@ { Owner.H_OrderForecastRealQty(relnew,ID := H_FunctionClass::SM_GenerateID( "OF"),SKU := SKU, Month := Date::ActualDate(), - CustomID := CustomerCode, + CustomCode := CustomerCode, CustomName := CustomName, - OrderCode := "-", - ForecatsQty :=0, + ForecastQty := 0, ForecatsRealQty :=nForecastQtyNew, Unit := Unit); } diff --git a/_Main/BL/Type_H_FunctionClass/StaticMethod_UpdateOrderForecastRealQty.qbl b/_Main/BL/Type_H_FunctionClass/StaticMethod_UpdateOrderForecastRealQty.qbl index 988d53e..4a0d857 100644 --- a/_Main/BL/Type_H_FunctionClass/StaticMethod_UpdateOrderForecastRealQty.qbl +++ b/_Main/BL/Type_H_FunctionClass/StaticMethod_UpdateOrderForecastRealQty.qbl @@ -24,7 +24,7 @@ for ( x := 1; x <= 10; x := x + 1 ) { Owner.H_OrderForecastRealQty(relnew,ID := "AAAAA_"+ x.AsQUILL(),SKU := "OTN-01-ACC-00"+ x.AsQUILL() , Month := Date::ActualDate(),CustomName := "灏忕背", - CustomID := "XM0001",OrderCode:="OD0001",ForecatsQty:=1000,ForecatsRealQty:=1000, Unit := "PCS"); + CustomCode := "XM0001",ForecastQty := 1000,ForecatsRealQty:=1000, Unit := "PCS"); } } //H_FunctionClass := Owner.H_FunctionClass(relnew,VCode_Material := VCode,UpdateTime_Material := Date::ActualDate()); diff --git a/_Main/BL/Type_H_FunctionClass/_ROOT_Type_H_FunctionClass.qbl b/_Main/BL/Type_H_FunctionClass/_ROOT_Type_H_FunctionClass.qbl index 6cb0560..b6727c8 100644 --- a/_Main/BL/Type_H_FunctionClass/_ROOT_Type_H_FunctionClass.qbl +++ b/_Main/BL/Type_H_FunctionClass/_ROOT_Type_H_FunctionClass.qbl @@ -5,6 +5,6 @@ { #keys: '5[414724.0.53669729][414724.0.53669727][0.0.0][414724.0.53669728][414724.0.53669730]' BaseType: Object - Description: '鍐插噺鎿嶄綔绫�' + Description: '鍐插噺鎿嶄綔鍏敤绫�' StructuredName: 'H_FunctionClasss' } diff --git a/_Main/BL/Type_H_MaterialInfo/Attribute_ForecastID.qbl b/_Main/BL/Type_H_MaterialInfo/Attribute_ForecastID.qbl new file mode 100644 index 0000000..5c39ed3 --- /dev/null +++ b/_Main/BL/Type_H_MaterialInfo/Attribute_ForecastID.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute ForecastID +{ + #keys: '3[414724.0.150662643][414724.0.150662642][414724.0.150662644]' + Description: '棰勬祴ID' + ValueType: String +} diff --git a/_Main/BL/Type_H_MaterialInfo/Attribute_ID.qbl b/_Main/BL/Type_H_MaterialInfo/Attribute_ID.qbl new file mode 100644 index 0000000..4115813 --- /dev/null +++ b/_Main/BL/Type_H_MaterialInfo/Attribute_ID.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute ID +{ + #keys: '3[414724.0.142347495][414724.0.142347494][414724.0.142347496]' + Description: '涓婚敭ID' + ValueType: String +} diff --git a/_Main/BL/Type_H_MaterialInfo/Attribute_MaterialName.qbl b/_Main/BL/Type_H_MaterialInfo/Attribute_MaterialName.qbl new file mode 100644 index 0000000..90613a7 --- /dev/null +++ b/_Main/BL/Type_H_MaterialInfo/Attribute_MaterialName.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute MaterialName +{ + #keys: '3[414724.0.142347535][414724.0.142347534][414724.0.142347536]' + Description: '鐗╂枡鍚嶇О' + ValueType: String +} diff --git a/_Main/BL/Type_H_MaterialInfo/Attribute_MaterialType.qbl b/_Main/BL/Type_H_MaterialInfo/Attribute_MaterialType.qbl new file mode 100644 index 0000000..908d0f3 --- /dev/null +++ b/_Main/BL/Type_H_MaterialInfo/Attribute_MaterialType.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute MaterialType +{ + #keys: '3[414724.0.142347525][414724.0.142347524][414724.0.142347526]' + Description: '鐗╂枡绫诲瀷锛氭垚鍝併�佸崐鎴愬搧銆佸師鏉愭枡锛燂紵锛燂紵' + ValueType: String +} diff --git a/_Main/BL/Type_H_MaterialInfo/Attribute_NeedDate.qbl b/_Main/BL/Type_H_MaterialInfo/Attribute_NeedDate.qbl new file mode 100644 index 0000000..8be7117 --- /dev/null +++ b/_Main/BL/Type_H_MaterialInfo/Attribute_NeedDate.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute NeedDate +{ + #keys: '3[414724.0.143344655][414724.0.143344654][414724.0.143344656]' + Description: '闇�姹傛椂闂�' + ValueType: Date +} diff --git a/_Main/BL/Type_H_MaterialInfo/Attribute_NeedQty.qbl b/_Main/BL/Type_H_MaterialInfo/Attribute_NeedQty.qbl new file mode 100644 index 0000000..e0c3a06 --- /dev/null +++ b/_Main/BL/Type_H_MaterialInfo/Attribute_NeedQty.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute NeedQty +{ + #keys: '3[414724.0.142347555][414724.0.142347554][414724.0.142347556]' + Description: '闇�姹傛暟閲�' + ValueType: Number +} diff --git a/_Main/BL/Type_H_MaterialInfo/Attribute_OrgCode.qbl b/_Main/BL/Type_H_MaterialInfo/Attribute_OrgCode.qbl new file mode 100644 index 0000000..f8a06f0 --- /dev/null +++ b/_Main/BL/Type_H_MaterialInfo/Attribute_OrgCode.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute OrgCode +{ + #keys: '3[414724.0.142347565][414724.0.142347564][414724.0.142347566]' + Description: '缁勭粐浠g爜' + ValueType: String +} diff --git a/_Main/BL/Type_H_MaterialInfo/Attribute_ParentSKU.qbl b/_Main/BL/Type_H_MaterialInfo/Attribute_ParentSKU.qbl new file mode 100644 index 0000000..9c6d50d --- /dev/null +++ b/_Main/BL/Type_H_MaterialInfo/Attribute_ParentSKU.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute ParentSKU +{ + #keys: '3[414724.0.142347515][414724.0.142347514][414724.0.142347516]' + Description: '鐖剁墿鏂橲KU' + ValueType: String +} diff --git a/_Main/BL/Type_H_MaterialInfo/Attribute_SKU.qbl b/_Main/BL/Type_H_MaterialInfo/Attribute_SKU.qbl new file mode 100644 index 0000000..2299346 --- /dev/null +++ b/_Main/BL/Type_H_MaterialInfo/Attribute_SKU.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute SKU +{ + #keys: '3[414724.0.142347505][414724.0.142347504][414724.0.142347506]' + Description: 'SKU(浜у搧銆佸崐鎴愬搧銆佺墿鏂欙級' + ValueType: String +} diff --git a/_Main/BL/Type_H_MaterialInfo/Attribute_StockPoint.qbl b/_Main/BL/Type_H_MaterialInfo/Attribute_StockPoint.qbl new file mode 100644 index 0000000..1a3655c --- /dev/null +++ b/_Main/BL/Type_H_MaterialInfo/Attribute_StockPoint.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute StockPoint +{ + #keys: '3[414724.0.142347575][414724.0.142347574][414724.0.142347576]' + Description: '搴撳瓨鐐�' + ValueType: String +} diff --git a/_Main/BL/Type_H_MaterialInfo/Attribute_Unit.qbl b/_Main/BL/Type_H_MaterialInfo/Attribute_Unit.qbl new file mode 100644 index 0000000..2ec2674 --- /dev/null +++ b/_Main/BL/Type_H_MaterialInfo/Attribute_Unit.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute Unit +{ + #keys: '3[414724.0.142347545][414724.0.142347544][414724.0.142347546]' + Description: '鍗曚綅' + ValueType: String +} diff --git a/_Main/BL/Type_H_MaterialInfo/Attribute_VCode.qbl b/_Main/BL/Type_H_MaterialInfo/Attribute_VCode.qbl new file mode 100644 index 0000000..66f81ea --- /dev/null +++ b/_Main/BL/Type_H_MaterialInfo/Attribute_VCode.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute VCode +{ + #keys: '3[414724.0.142347585][414724.0.142347584][414724.0.142347586]' + Description: '鐗堟湰鍙�' + ValueType: String +} diff --git a/_Main/BL/Type_H_MaterialInfo/_ROOT_Type_H_MaterialInfo.qbl b/_Main/BL/Type_H_MaterialInfo/_ROOT_Type_H_MaterialInfo.qbl new file mode 100644 index 0000000..d2309be --- /dev/null +++ b/_Main/BL/Type_H_MaterialInfo/_ROOT_Type_H_MaterialInfo.qbl @@ -0,0 +1,10 @@ +Quintiq file version 2.0 +#root +#parent: #DomainModel +Type H_MaterialInfo +{ + #keys: '5[414724.0.142347475][414724.0.142347473][0.0.0][414724.0.142347474][414724.0.142347476]' + BaseType: Object + Description: '鐗╂枡淇℃伅' + StructuredName: 'H_MaterialInfos' +} diff --git a/_Main/BL/Type_H_OrderForecastRealQty/Attribute_CustomCode.qbl b/_Main/BL/Type_H_OrderForecastRealQty/Attribute_CustomCode.qbl new file mode 100644 index 0000000..9cb80f6 --- /dev/null +++ b/_Main/BL/Type_H_OrderForecastRealQty/Attribute_CustomCode.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute CustomCode +{ + #keys: '3[414724.0.174571651][414724.0.174571650][414724.0.174571652]' + Description: '瀹㈡埛ID锛屽敮涓�寤轰箣涓�' + ValueType: String +} diff --git a/_Main/BL/Type_H_OrderForecastRealQty/Attribute_CustomID.qbl b/_Main/BL/Type_H_OrderForecastRealQty/Attribute_CustomID.qbl deleted file mode 100644 index f0cb7e7..0000000 --- a/_Main/BL/Type_H_OrderForecastRealQty/Attribute_CustomID.qbl +++ /dev/null @@ -1,8 +0,0 @@ -Quintiq file version 2.0 -#parent: #root -Attribute CustomID -{ - #keys: '3[414724.0.46380328][414724.0.46380327][414724.0.46380329]' - Description: '瀹㈡埛ID' - ValueType: String -} diff --git a/_Main/BL/Type_H_OrderForecastRealQty/Attribute_Department.qbl b/_Main/BL/Type_H_OrderForecastRealQty/Attribute_Department.qbl new file mode 100644 index 0000000..efe5e78 --- /dev/null +++ b/_Main/BL/Type_H_OrderForecastRealQty/Attribute_Department.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute Department +{ + #keys: '3[414724.0.174571661][414724.0.174571660][414724.0.174571662]' + Description: '閮ㄩ棬锛屾病鏈変环鍊硷紝鏄剧ず浣跨敤' + ValueType: String +} diff --git a/_Main/BL/Type_H_OrderForecastRealQty/Attribute_ForecastQty.qbl b/_Main/BL/Type_H_OrderForecastRealQty/Attribute_ForecastQty.qbl new file mode 100644 index 0000000..bdc2eb0 --- /dev/null +++ b/_Main/BL/Type_H_OrderForecastRealQty/Attribute_ForecastQty.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute ForecastQty +{ + #keys: '3[414724.0.46380358][414724.0.46380357][414724.0.46380359]' + Description: '棰勬祴鏁伴噺' + ValueType: Number +} diff --git a/_Main/BL/Type_H_OrderForecastRealQty/Attribute_ForecatsQty.qbl b/_Main/BL/Type_H_OrderForecastRealQty/Attribute_ForecatsQty.qbl deleted file mode 100644 index 2edd0bc..0000000 --- a/_Main/BL/Type_H_OrderForecastRealQty/Attribute_ForecatsQty.qbl +++ /dev/null @@ -1,8 +0,0 @@ -Quintiq file version 2.0 -#parent: #root -Attribute ForecatsQty -{ - #keys: '3[414724.0.46380358][414724.0.46380357][414724.0.46380359]' - Description: '棰勬祴鏁伴噺' - ValueType: Number -} diff --git a/_Main/BL/Type_H_OrderForecastRealQty/Attribute_Month.qbl b/_Main/BL/Type_H_OrderForecastRealQty/Attribute_Month.qbl index cc1224e..8e83213 100644 --- a/_Main/BL/Type_H_OrderForecastRealQty/Attribute_Month.qbl +++ b/_Main/BL/Type_H_OrderForecastRealQty/Attribute_Month.qbl @@ -3,6 +3,6 @@ Attribute Month { #keys: '3[414724.0.46380308][414724.0.46380307][414724.0.46380309]' - Description: '鏈堜唤' + Description: '鏈堜唤锛屽敮涓�閿箣涓�' ValueType: Date } diff --git a/_Main/BL/Type_H_OrderForecastRealQty/Attribute_OrderCode.qbl b/_Main/BL/Type_H_OrderForecastRealQty/Attribute_OrderCode.qbl deleted file mode 100644 index 66e08c7..0000000 --- a/_Main/BL/Type_H_OrderForecastRealQty/Attribute_OrderCode.qbl +++ /dev/null @@ -1,8 +0,0 @@ -Quintiq file version 2.0 -#parent: #root -Attribute OrderCode -{ - #keys: '3[414724.0.46380338][414724.0.46380337][414724.0.46380339]' - Description: '璁㈠崟缂栧彿' - ValueType: String -} diff --git a/_Main/BL/Type_H_OrderForecastRealQty/Attribute_SKU.qbl b/_Main/BL/Type_H_OrderForecastRealQty/Attribute_SKU.qbl index a9eab85..5f2e17f 100644 --- a/_Main/BL/Type_H_OrderForecastRealQty/Attribute_SKU.qbl +++ b/_Main/BL/Type_H_OrderForecastRealQty/Attribute_SKU.qbl @@ -3,6 +3,6 @@ Attribute SKU { #keys: '3[414724.0.46380348][414724.0.46380347][414724.0.46380349]' - Description: 'SKU缂栫爜' + Description: 'SKU缂栫爜锛屽敮涓�閿箣涓�' ValueType: String } diff --git a/_Main/BL/Type_H_OrderForecastRealQty/Attribute_SKUName.qbl b/_Main/BL/Type_H_OrderForecastRealQty/Attribute_SKUName.qbl new file mode 100644 index 0000000..ddbce61 --- /dev/null +++ b/_Main/BL/Type_H_OrderForecastRealQty/Attribute_SKUName.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute SKUName +{ + #keys: '3[414724.0.174572228][414724.0.174572227][414724.0.174572229]' + Description: 'SKU鍚嶇О' + ValueType: String +} diff --git a/_Main/BL/Type_H_OrderForecastRealQty/Attribute_StockingPointID.qbl b/_Main/BL/Type_H_OrderForecastRealQty/Attribute_StockingPointID.qbl new file mode 100644 index 0000000..ebf027f --- /dev/null +++ b/_Main/BL/Type_H_OrderForecastRealQty/Attribute_StockingPointID.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute StockingPointID +{ + #keys: '3[414724.0.174571671][414724.0.174571670][414724.0.174571672]' + Description: '搴撳瓨鐐癸紝娌℃湁浠峰�硷紝鏄剧ず浣跨敤' + ValueType: String +} diff --git a/_Main/BL/Type_H_OrderForecastRealQty/Attribute_Unit.qbl b/_Main/BL/Type_H_OrderForecastRealQty/Attribute_Unit.qbl index 6569ece..eb7052c 100644 --- a/_Main/BL/Type_H_OrderForecastRealQty/Attribute_Unit.qbl +++ b/_Main/BL/Type_H_OrderForecastRealQty/Attribute_Unit.qbl @@ -3,6 +3,6 @@ Attribute Unit { #keys: '3[414724.0.46380378][414724.0.46380377][414724.0.46380379]' - Description: '鍗曚綅' + Description: '鍗曚綅锛屾病鏈変环鍊硷紝鏄剧ず浣跨敤' ValueType: String } diff --git a/_Main/BL/Type_H_OrderForecastRealQty/Attribute_VCode.qbl b/_Main/BL/Type_H_OrderForecastRealQty/Attribute_VCode.qbl new file mode 100644 index 0000000..fb94eeb --- /dev/null +++ b/_Main/BL/Type_H_OrderForecastRealQty/Attribute_VCode.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute VCode +{ + #keys: '3[414724.0.174571641][414724.0.174571640][414724.0.174571642]' + Description: '鐗堟湰鍙凤紝鏆傛椂涓嶉�傜敤锛岄粯璁�-' + ValueType: String +} 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_CapacityAndSaleBudgeExport.qbl b/_Main/BL/Type_MPSync/Method_CapacityAndSaleBudgeExport.qbl new file mode 100644 index 0000000..0048b94 --- /dev/null +++ b/_Main/BL/Type_MPSync/Method_CapacityAndSaleBudgeExport.qbl @@ -0,0 +1,143 @@ +Quintiq file version 2.0 +#parent: #root +Method CapacityAndSaleBudgeExport () as BinaryValue +{ + Description: '瀵煎嚭姣旇緝缁撴灉' + TextBody: + [* + // generate by generate_export.py + info( "export start" ); + text:= '<?xml version="1.0" encoding="utf-8" standalone="yes"?><table><name>骞村害浜ч攢棰勭畻</name> + <column><name>鍒犻櫎鏍囪</name><type>String</type></column> + <column><name>骞翠唤</name><type>Number</type></column> + <column><name>涓氬姟閮ㄩ棬</name><type>String</type></column> + <column><name>鏄剧ず鎶�鏈垎绫�</name><type>String</type></column> + <column><name>涓氬姟鍒嗙被</name><type>String</type></column> + <column><name>浜у搧绾�/浜у搧瑙勬牸</name><type>String</type></column> + <column><name>浜у搧鏂欏彿</name><type>String</type></column> + <column><name>Array浜у湴</name><type>String</type></column> + <column><name>钂搁晙浜у湴</name><type>String</type></column> + <column><name>鍒嗚鲸鐜�</name><type>String</type></column> + <column><name>鍑鸿揣褰㈡��</name><type>String</type></column> + <column><name>鍒囧壊鏁�</name><type>String</type></column> + <column><name>浜ц兘褰撻噺</name><type>String</type></column> + <column><name>mask鏁�</name><type>String</type></column> + <column><name>1鏈堜骇鑳�(PCS)</name><type>Real</type></column> + <column><name>2鏈堜骇鑳�(PCS)</name><type>Real</type></column> + <column><name>3鏈堜骇鑳�(PCS)</name><type>Real</type></column> + <column><name>4鏈堜骇鑳�(PCS)</name><type>Real</type></column> + <column><name>5鏈堜骇鑳�(PCS)</name><type>Real</type></column> + <column><name>6鏈堜骇鑳�(PCS)</name><type>Real</type></column> + <column><name>7鏈堜骇鑳�(PCS)</name><type>Real</type></column> + <column><name>8鏈堜骇鑳�(PCS)</name><type>Real</type></column> + <column><name>9鏈堜骇鑳�(PCS)</name><type>Real</type></column> + <column><name>10鏈堜骇鑳�(PCS)</name><type>Real</type></column> + <column><name>11鏈堜骇鑳�(PCS)</name><type>Real</type></column> + <column><name>12鏈堜骇鑳�(PCS)</name><type>Real</type></column> + <column><name>骞翠骇鑳�(PCS)</name><type>Real</type></column> + <column><name>1鏈堜骇鑳�(瀹炴暟澶у紶)</name><type>Real</type></column> + <column><name>2鏈堜骇鑳�(瀹炴暟澶у紶)</name><type>Real</type></column> + <column><name>3鏈堜骇鑳�(瀹炴暟澶у紶)</name><type>Real</type></column> + <column><name>4鏈堜骇鑳�(瀹炴暟澶у紶)</name><type>Real</type></column> + <column><name>5鏈堜骇鑳�(瀹炴暟澶у紶)</name><type>Real</type></column> + <column><name>6鏈堜骇鑳�(瀹炴暟澶у紶)</name><type>Real</type></column> + <column><name>7鏈堜骇鑳�(瀹炴暟澶у紶)</name><type>Real</type></column> + <column><name>8鏈堜骇鑳�(瀹炴暟澶у紶)</name><type>Real</type></column> + <column><name>9鏈堜骇鑳�(瀹炴暟澶у紶)</name><type>Real</type></column> + <column><name>10鏈堜骇鑳�(瀹炴暟澶у紶)</name><type>Real</type></column> + <column><name>11鏈堜骇鑳�(瀹炴暟澶у紶)</name><type>Real</type></column> + <column><name>12鏈堜骇鑳�(瀹炴暟澶у紶)</name><type>Real</type></column> + <column><name>骞翠骇鑳�(瀹炴暟澶у紶)</name><type>Real</type></column> + <column><name>1鏈堥攢鍞(W)</name><type>Real</type></column> + <column><name>2鏈堥攢鍞(W)</name><type>Real</type></column> + <column><name>3鏈堥攢鍞(W)</name><type>Real</type></column> + <column><name>4鏈堥攢鍞(W)</name><type>Real</type></column> + <column><name>5鏈堥攢鍞(W)</name><type>Real</type></column> + <column><name>6鏈堥攢鍞(W)</name><type>Real</type></column> + <column><name>7鏈堥攢鍞(W)</name><type>Real</type></column> + <column><name>8鏈堥攢鍞(W)</name><type>Real</type></column> + <column><name>9鏈堥攢鍞(W)</name><type>Real</type></column> + <column><name>10鏈堥攢鍞(W)</name><type>Real</type></column> + <column><name>11鏈堥攢鍞(W)</name><type>Real</type></column> + <column><name>12鏈堥攢鍞(W)</name><type>Real</type></column> + <column><name>骞撮攢鍞(W)</name><type>Real</type></column> + </table>'; + xmlDOMImplementation := XMLDOMImplementation::Create(); + xmlDOMDocument := xmlDOMImplementation.CreateDocumentFromString( text ); + + tableElement:= xmlDOMDocument.GetElementByTagName( "table", 0 ); + + toExportList := selectsortedset( this, MappingCapacityAndSaleBudge, item, true, item.OrgCode() + "_" + item.PlaceOfProductionOfArray() ); + info( "export size : " + [String]toExportList.Size() ); + nowNo := 1; + traverse ( toExportList, Elements, toExport ) { + info( "nowNo : " + [String]nowNo ); + nowNo := nowNo + 1; + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, ifexpr( toExport.Deleted(), "Y", "N"), "鍒犻櫎鏍囪" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.YearNo(), "骞翠唤" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.OrgCode(), "涓氬姟閮ㄩ棬" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.DisplayTechnology(), "鏄剧ず鎶�鏈垎绫�" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.BusinessType(), "涓氬姟鍒嗙被" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.LineAndSpecification(), "浜у搧绾�/浜у搧瑙勬牸" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ProductCode(), "浜у搧鏂欏彿" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.PlaceOfProductionOfArray(), "Array浜у湴" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.PlaceOfProductionOfEvaporation(), "钂搁晙浜у湴" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.Resolution(), "鍒嗚鲸鐜�" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ShippingForm(), "鍑鸿揣褰㈡��" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.NumberOfCut(), "鍒囧壊鏁�" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.CapacityEquivalent(), "浜ц兘褰撻噺" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.NumberOfMask(), "mask鏁�" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth1(), "1鏈堜骇鑳�(PCS)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth2(), "2鏈堜骇鑳�(PCS)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth3(), "3鏈堜骇鑳�(PCS)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth4(), "4鏈堜骇鑳�(PCS)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth5(), "5鏈堜骇鑳�(PCS)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth6(), "6鏈堜骇鑳�(PCS)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth7(), "7鏈堜骇鑳�(PCS)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth8(), "8鏈堜骇鑳�(PCS)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth9(), "9鏈堜骇鑳�(PCS)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth10(), "10鏈堜骇鑳�(PCS)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth11(), "11鏈堜骇鑳�(PCS)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth12(), "12鏈堜骇鑳�(PCS)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSTotal(), "骞翠骇鑳�(PCS)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth1(), "1鏈堜骇鑳�(瀹炴暟澶у紶)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth2(), "2鏈堜骇鑳�(瀹炴暟澶у紶)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth3(), "3鏈堜骇鑳�(瀹炴暟澶у紶)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth4(), "4鏈堜骇鑳�(瀹炴暟澶у紶)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth5(), "5鏈堜骇鑳�(瀹炴暟澶у紶)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth6(), "6鏈堜骇鑳�(瀹炴暟澶у紶)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth7(), "7鏈堜骇鑳�(瀹炴暟澶у紶)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth8(), "8鏈堜骇鑳�(瀹炴暟澶у紶)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth9(), "9鏈堜骇鑳�(瀹炴暟澶у紶)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth10(), "10鏈堜骇鑳�(瀹炴暟澶у紶)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth11(), "11鏈堜骇鑳�(瀹炴暟澶у紶)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth12(), "12鏈堜骇鑳�(瀹炴暟澶у紶)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetTotal(), "骞翠骇鑳�(瀹炴暟澶у紶)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth1(), "1鏈堥攢鍞(W)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth2(), "2鏈堥攢鍞(W)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth3(), "3鏈堥攢鍞(W)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth5(), "4鏈堥攢鍞(W)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth4(), "5鏈堥攢鍞(W)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth6(), "6鏈堥攢鍞(W)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth7(), "7鏈堥攢鍞(W)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth8(), "8鏈堥攢鍞(W)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth9(), "9鏈堥攢鍞(W)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth10(), "10鏈堥攢鍞(W)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth11(), "11鏈堥攢鍞(W)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth12(), "12鏈堥攢鍞(W)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountTotal(), "骞撮攢鍞(W)" ); + } + + xmlDOMSerializer := xmlDOMImplementation.CreateSerializer(); + xmlTableString := xmlDOMSerializer.WriteToString( xmlDOMDocument ); + + tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlTableString ) ); + tableGroupHandle := TableGroupHandle::Create( "骞村害浜ч攢棰勭畻" ); + tableGroupHandle.Add( tableHandle ); + tableBinaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true ); + + info( "export end" ); + + return tableBinaryData.AsBinaryValue(); + *] +} 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_MPSync/StaticMethod_TestData.qbl b/_Main/BL/Type_MPSync/StaticMethod_TestData.qbl index 87c2b27..541ab96 100644 --- a/_Main/BL/Type_MPSync/StaticMethod_TestData.qbl +++ b/_Main/BL/Type_MPSync/StaticMethod_TestData.qbl @@ -15,7 +15,7 @@ info( "productCodeList : " + [String]productCodeList.Size() ); mpSync.MappingCapacityAndSaleBudge( relflush ); - for( year := Date::ActualDate().Year() - 10; year <= Date::ActualDate().Year(); year := year + 1 ) { + for( year := Date::ActualDate().Year() - 10; year <= Date::ActualDate().Year() + 5; year := year + 1 ) { for( i := 1; i <= productCodeList.Size(); i := i + 1 ) { productCode := productCodeList.Element( i - 1 ); mappingCapacityAndSaleBudge := mpSync.MappingCapacityAndSaleBudge( relnew, @@ -41,7 +41,7 @@ info( "test MappingCapacityAndSaleBudge size : " + [String]result1.Size() ); mpSync.MappingAnnualBudget( relflush ); - for( year := Date::ActualDate().Year() - 10; year <= Date::ActualDate().Year(); year := year + 1 ) { + for( year := Date::ActualDate().Year() - 10; year <= Date::ActualDate().Year() + 5; year := year + 1 ) { for( i := 1; i <= productCodeList.Size(); i := i + 1 ) { productCode := productCodeList.Element( i - 1 ); mappingAnnualBudget := mpSync.MappingAnnualBudget( relnew, 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..9385366 100644 --- a/_Main/BL/Type_MacroPlan/Method_MappingActualPISPIPData.qbl +++ b/_Main/BL/Type_MacroPlan/Method_MappingActualPISPIPData.qbl @@ -3,13 +3,18 @@ Method MappingActualPISPIPData ( Strings businessTypes, GlobalOTDTable globalOTDTable, - Boolean nuclear + Boolean nuclear, + Strings organcodelist ) { TextBody: [* // renhao Aug-14-2023 (created) - listtodeal := selectset( globalOTDTable,Global_MappingActualProductInStockingPointInPeriod,actual,actual.ActualInventoryLevelEnd() > 0 ); + 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..da901cc 100644 --- a/_Main/BL/Type_MacroPlan/Method_MappingCustomerOrderData.qbl +++ b/_Main/BL/Type_MacroPlan/Method_MappingCustomerOrderData.qbl @@ -2,7 +2,8 @@ #parent: #root Method MappingCustomerOrderData ( Strings businessTypes, - GlobalOTDTable globalOTDTable + GlobalOTDTable globalOTDTable, + Strings organcodelist ) { Description: 'ETL璁㈠崟棰勬祴' @@ -14,7 +15,11 @@ 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 ); + 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..4db0d6c 100644 --- a/_Main/BL/Type_MacroPlan/Method_MappingExternalSupplyData.qbl +++ b/_Main/BL/Type_MacroPlan/Method_MappingExternalSupplyData.qbl @@ -3,7 +3,8 @@ Method MappingExternalSupplyData ( Strings businessTypes, Boolean nuclear, - GlobalOTDTable globalOTDTable + GlobalOTDTable globalOTDTable, + Strings organcodelist ) { TextBody: @@ -11,7 +12,12 @@ // 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*/); + 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..1c79534 100644 --- a/_Main/BL/Type_MacroPlan/Method_MappingForecastData.qbl +++ b/_Main/BL/Type_MacroPlan/Method_MappingForecastData.qbl @@ -2,7 +2,8 @@ #parent: #root Method MappingForecastData ( Strings businessTypes, - GlobalOTDTable globalOTDTable + GlobalOTDTable globalOTDTable, + Strings organcodelist ) { Description: 'ETL璁㈠崟棰勬祴' @@ -14,7 +15,12 @@ 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 ); + 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..208a5e8 100644 --- a/_Main/BL/Type_MacroPlan/Method_MappingOperationBOMData.qbl +++ b/_Main/BL/Type_MacroPlan/Method_MappingOperationBOMData.qbl @@ -4,13 +4,13 @@ Strings businessTypes, Boolean isKeyProduct, Boolean createPurchaseSupplyMaterial, - GlobalOTDTable globalOTDTable + GlobalOTDTable globalOTDTable, + Strings organcodelist ) { 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() ); @@ -19,7 +19,8 @@ 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 3713cc9..cdcd7f1 100644 --- a/_Main/BL/Type_MacroPlan/Method_MappingOperationCostData.qbl +++ b/_Main/BL/Type_MacroPlan/Method_MappingOperationCostData.qbl @@ -1,7 +1,9 @@ Quintiq file version 2.0 #parent: #root Method MappingOperationCostData ( - Strings businesstypes + GlobalOTDTable globalOTDTable, + Strings businesstypes, + Strings organcodelist ) { Description: 'Get operation cost data from operation mapping' @@ -9,19 +11,21 @@ [* // Administrator Aug-21-2023 (created) // list to deal - listtodeal := construct( structured[MappingOperation] ); + listtodeal := construct( structured[Global_MappingOperation] ); if( isnull( businesstypes ) or businesstypes.Size() = 0 ) { - listtodeal := selectset( this, MappingOperation, item, true ); + listtodeal := selectset( globalOTDTable, Global_MappingOperation, item, true ); } else { - listtodeal := selectset( this, MappingOperation, item, businesstypes.Find( item.BusinessType() ) <> -1 ); + listtodeal := selectset( globalOTDTable, Global_MappingOperation, + item, + ( businesstypes.Find( item.BusinessType() ) <> -1 ) and + ( organcodelist.Find( item.OrganCode() ) >= 0 ) ); } // Get the list to deal with max sequence number - listtodealwithmaxsn := construct( structured[MappingOperation] ); + listtodealwithmaxsn := construct( structured[Global_MappingOperation] ); traverse( listtodeal, Elements, item ){ - maxsn := maxselect( this, - MappingOperation, + maxsn := maxselect( globalOTDTable, Global_MappingOperation, moperation, moperation.OrganCode() = item.OrganCode(), moperation.ProductID() = item.ProductID(), @@ -41,23 +45,31 @@ if( count - [Number](count/1000) * 1000 = 0 or count = totalcount ){ info( "Now is dealing with the " + count.AsQUILL() + "OperationCost " + "( " + count.AsQUILL() + "/" + totalcount.AsQUILL() + " ) " + (count/totalcount*100).Round( 1 ).AsQUILL() + "%" ); } - id := item.OrganCode() + "_" + item.ProductID() + "_" + item.ProcessSection() + "_" + item.Line(); - operation := Operation::FindOperationTypeIndex( id ); - account := Account_MP::FindByName( this, "Operation cost" ); - isfromdb := false; - existoperationcost := OperationCost::FindOperationCostTypeIndex( id ); - if( isnull( existoperationcost ) ){ - connecteditem := select( this, - MappingOperationCost, - moperationcost, - moperationcost.OrgCode() = item.OrganCode(), - moperationcost.ProductID() = item.ProductID() ); - cost := connecteditem.Cost(); - lengthoftime := connecteditem.LengthOfTime(); - start := connecteditem.Start(); - timeunit := connecteditem.TimeUnit(); - OperationCost::Create( id, operation, account, "Volume", start, timeunit, lengthoftime, cost, isfromdb ); + id := item.OrganCode() + "_" + item.ProductID() + "_" + item.ProcessSection()+"_" + [String]item.SequenceNumber(); + if( guard( item.Line(), "" ).Length() > 0 ) { + id := id + "_" + item.Line(); } + operation := Operation::FindOperationTypeIndex( id ); + if(not isnull(operation)){ + account := Account_MP::FindByName( this, "Operating cost" ); + isfromdb := false; + existoperationcost := OperationCost::FindOperationCostTypeIndex( id ); + if( isnull( existoperationcost ) ){ + connecteditem := select( globalOTDTable, + Global_MappingOperationCost, + moperationcost, + moperationcost.OrgCode() = item.OrganCode(), + moperationcost.ProductID() = item.ProductID() ); + if( not isnull( connecteditem)){ + cost := connecteditem.Cost(); + lengthoftime := connecteditem.LengthOfTime(); + start := connecteditem.Start(); + timeunit := connecteditem.TimeUnit(); + OperationCost::Create( id, operation, account, "Volume", start, timeunit, lengthoftime, cost, isfromdb ); + } + + } } + } *] } diff --git a/_Main/BL/Type_MacroPlan/Method_MappingOperationData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingOperationData.qbl index 397d6d4..21238e0 100644 --- a/_Main/BL/Type_MacroPlan/Method_MappingOperationData.qbl +++ b/_Main/BL/Type_MacroPlan/Method_MappingOperationData.qbl @@ -2,7 +2,8 @@ #parent: #root Method MappingOperationData ( Strings businessTypes, - GlobalOTDTable globalOTDTable + GlobalOTDTable globalOTDTable, + Strings organcodelist ) { TextBody: @@ -12,7 +13,8 @@ toDealList := construct( Global_MappingOperations ) ; if( not isnull( businessTypes ) and businessTypes.Size() > 0 ) { 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 { @@ -77,7 +79,7 @@ 0.0, 0.0, false, true ); } - ManufactureLTProcessSection::CreateOrUpdate( op ); + // ManufactureLTProcessSection::CreateOrUpdate( op ); } info( "========" ) // 閬嶅巻routing锛岃繘琛宭ink 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 eeb6a49..712b51b 100644 --- a/_Main/BL/Type_MacroPlan/Method_MappingUnitData.qbl +++ b/_Main/BL/Type_MacroPlan/Method_MappingUnitData.qbl @@ -2,7 +2,8 @@ #parent: #root Method MappingUnitData ( Strings businesstypes, - GlobalOTDTable globalOTDTable + GlobalOTDTable globalOTDTable, + Strings organcodelist ) { Description: 'Get unit data from operation mapping' @@ -17,7 +18,8 @@ } else { 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 ) ); } @@ -42,12 +44,13 @@ infinite, unitofmeasurename ); - Unit::CreateOrUpdate( this, + supplyunit := Unit::CreateOrUpdate( this, "渚涘簲鍟�", "渚涘簲鍟�", "澶╅┈闆嗗洟", infinite, unitofmeasurename ); + supplyunit.IsSupplier(true); Unit::CreateOrUpdate( this, "鏁磋溅杩愯緭", diff --git a/_Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl b/_Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl index 45c9fec..5178d37 100644 --- a/_Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl +++ b/_Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl @@ -15,11 +15,26 @@ // 甯佺鍜屽竵绉嶆眹鐜� //Currency_MP::CreateCurrencyFromJson( macroPlan, jsonDataRow ); info( "Prepare to do sync" ) + info( "Get organ code list" ) + organcodelist := selectvalues( globalOTDTable, Global_MappingOperationBOM, bom,true, bom.OrganCode() ); if( not isnull( businessTypes ) and businessTypes.Size() > 0 ) { traverse( businessTypes, Elements, item ) { info( "Business type : " + item ) } + organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businessTypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() ); } + else{ + if( businessTypes.Size() = 0 ){ + if( not isnull( selectset( globalOTDTable, BusinessType, b, b.BusinessTypeName() = "" ) ) ){ + organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, organ.BusinessType().BusinessTypeName() = "", organ.OrganCodeName() ); + } + } + } + + if( organcodelist.Size() = 0 ){ + organcodelist := selectvalues( globalOTDTable, Global_MappingOperationBOM, bom,true, bom.OrganCode() ); + } + info( "KeyProduct : " + [String]isKeyProduct ) info( "Create purchase supply material : " + [String]createPurchaseSupplyMaterial ) @@ -38,7 +53,7 @@ //info( "BaseConversionFactor Finished, Start Operation Data Broker" ); //macroPlan.Broker_OTD_Operation().Execute(); info( "Operation Data Broker Finished, Start Unit Mapping" ); - macroPlan.MappingUnitData( businessTypes ,globalOTDTable); + macroPlan.MappingUnitData( businessTypes ,globalOTDTable, organcodelist); // 搴撳瓨鐐�-3 info( "Sales Segment Finished, Start Get StockingPoint From Api" ) @@ -82,11 +97,11 @@ // 宸ヨ壓璺嚎 + BOM-9 info( "Unit Finished, Start Operation Mapping" ); - macroPlan.MappingOperationData( businessTypes ,globalOTDTable); + macroPlan.MappingOperationData( businessTypes ,globalOTDTable, organcodelist ); //info( "Operation Finished, Start BOM Data Broker" ); //macroPlan.Broker_OTD_BOM().Execute(); info( "BOM Data Broker Finished, Start BOM Mapping" ); - macroPlan.MappingOperationBOMData( businessTypes, isKeyProduct, createPurchaseSupplyMaterial,globalOTDTable ); + macroPlan.MappingOperationBOMData( businessTypes, isKeyProduct, createPurchaseSupplyMaterial,globalOTDTable, organcodelist ); //杞﹂亾淇℃伅-10 info( "BOM Finished, Start Get Lanes From Api" ); @@ -118,26 +133,26 @@ //info( "ProductInLane Finished, Start ActualPISPIP Data Broker" ); //macroPlan.Broker_OTD_ActualPISPIP().Execute(); info( "ActualPISPIP Data Broker Finished, Start ActualPISPIP Mapping" ); - macroPlan.MappingActualPISPIPData( businessTypes, globalOTDTable,isKeyProduct ); + macroPlan.MappingActualPISPIPData( businessTypes, globalOTDTable,isKeyProduct, organcodelist ); // 鍦ㄩ�斿簱瀛�-14 //info( "ActualPISPIP Finished, Start ExternalSupply Data Broker" ); //macroPlan.Broker_OTD_ExternalSupply().Execute(); info( "ExternalSupply Data Broker Finished, Start ExternalSupply Mapping" ); - macroPlan.MappingExternalSupplyData( businessTypes, isKeyProduct ,globalOTDTable); + macroPlan.MappingExternalSupplyData( businessTypes, isKeyProduct ,globalOTDTable, organcodelist ); // 搴撳瓨鎴愭湰-15 InventoryValueAndCost::DoSync( macroPlan,globalOTDTable ); // todo 鍒堕�犳垚鏈�-16 info( "InventoryCost Finished, Start OperationCost Mapping" ); - //macroPlan.MappingOperationCostData( businessTypes ); + macroPlan.MappingOperationCostData( globalOTDTable, businessTypes, organcodelist ); // 璁㈠崟棰勬祴-17 - Forecast::DoSync( macroPlan, businessTypes ,globalOTDTable); + Forecast::DoSync( macroPlan, businessTypes, globalOTDTable, organcodelist ); // 璁㈠崟闇�姹�-18 - CustomerOrder::DoSync( macroPlan, businessTypes,globalOTDTable); + CustomerOrder::DoSync( macroPlan, businessTypes, globalOTDTable, organcodelist ); //鍒犻櫎澶氫綑鎶ラ敊鏁版嵁-19 macroPlan.DeleteSnaityCheck(); diff --git a/_Main/BL/Type_ManufactureLTImputation/StaticMethod_Transfer.qbl b/_Main/BL/Type_ManufactureLTImputation/StaticMethod_Transfer.qbl index 650b697..ae70b83 100644 --- a/_Main/BL/Type_ManufactureLTImputation/StaticMethod_Transfer.qbl +++ b/_Main/BL/Type_ManufactureLTImputation/StaticMethod_Transfer.qbl @@ -8,26 +8,26 @@ Description: '绉讳氦鎺у埗鏉�' TextBody: [* - // yypsybs Aug-25-2023 (created) - if( isnull( oldMP ) ) { - info( "========transfer ManufactureLTImputations to macroPlan " + [String]newMP.MDSID() + "========" ); - } else { - info( "========transfer ManufactureLTImputations from macroPlan " + [String]oldMP.MDSID() + " to macroPlan " + [String]newMP.MDSID() + "========" ); - } - // 娓呯┖鏂扮殑锛岃�佺殑澶嶅埗鍒版柊鐨勶紝娓呯┖鑰佺殑 - if( not isnull( oldMP ) and not isnull( newMP ) ) { - info( "old ManufactureLTImputation size : " + [String]oldMP.ManufactureLTImputation( relsize ) ) - traverse( oldMP, ManufactureLTImputation, parent, true ) { - traverse( parent, ManufactureLTProcessSection, child, true ) { - ManufactureLTProcessSection::CreateOrUpdate( newMP, parent.OrgCode(), parent.SkuID(), parent.Describe(), - child.ProcessSection(), child.Sequence(), child.Line(), child.SystemLT(), - child.Edited(), child.EditLT(), child.Describe() ); - } - } - } - // 澶勭悊鏂扮殑鐨刼peration - traverse( newMP, Routing.RoutingStep.Operation, item ) { - ManufactureLTProcessSection::CreateOrUpdate( item ); - } + //// yypsybs Aug-25-2023 (created) + //if( isnull( oldMP ) ) { + // info( "========transfer ManufactureLTImputations to macroPlan " + [String]newMP.MDSID() + "========" ); + //} else { + // info( "========transfer ManufactureLTImputations from macroPlan " + [String]oldMP.MDSID() + " to macroPlan " + [String]newMP.MDSID() + "========" ); + //} + //// 娓呯┖鏂扮殑锛岃�佺殑澶嶅埗鍒版柊鐨勶紝娓呯┖鑰佺殑 + //if( not isnull( oldMP ) and not isnull( newMP ) ) { + // info( "old ManufactureLTImputation size : " + [String]oldMP.ManufactureLTImputation( relsize ) ) + // traverse( oldMP, ManufactureLTImputation, parent, true ) { + // traverse( parent, ManufactureLTProcessSection, child, true ) { + // ManufactureLTProcessSection::CreateOrUpdate( newMP, parent.OrgCode(), parent.SkuID(), parent.Describe(), + // child.ProcessSection(), child.Sequence(), child.Line(), child.SystemLT(), + // child.Edited(), child.EditLT(), child.Describe() ); + // } + // } + //} + //// 澶勭悊鏂扮殑鐨刼peration + //traverse( newMP, Routing.RoutingStep.Operation, item ) { + // ManufactureLTProcessSection::CreateOrUpdate( item ); + //} *] } diff --git a/_Main/BL/Type_ManufactureLTProcessSection/StaticMethod_CreateOrUpdate.qbl b/_Main/BL/Type_ManufactureLTProcessSection/StaticMethod_CreateOrUpdate.qbl index 8d40621..fe55479 100644 --- a/_Main/BL/Type_ManufactureLTProcessSection/StaticMethod_CreateOrUpdate.qbl +++ b/_Main/BL/Type_ManufactureLTProcessSection/StaticMethod_CreateOrUpdate.qbl @@ -30,11 +30,11 @@ line := operationNameSplit.Element( 2 ); } child := null( ManufactureLTProcessSection ); - if( orgCode <> "" and productId <> "" and processStep <> "" and sequence <> "" ) { - parent := ManufactureLTImputation::CreateOrUpdate( op.RoutingStep().Routing().MacroPlan(), orgCode, productId, "" ); - info( "DaysAsReal : " + [String]op.UserLeadTime().DaysAsReal() ); - child := ManufactureLTProcessSection::CreateOrUpdate( parent, processStep, false, sequence, line, op.UserLeadTime().DaysAsReal(), 0.0, "" ); - } + //if( orgCode <> "" and productId <> "" and processStep <> "" and sequence <> "" ) { + // parent := ManufactureLTImputation::CreateOrUpdate( op.RoutingStep().Routing().MacroPlan(), orgCode, productId, "" ); + // info( "DaysAsReal : " + [String]op.UserLeadTime().DaysAsReal() ); + // child := ManufactureLTProcessSection::CreateOrUpdate( parent, processStep, false, sequence, line, op.UserLeadTime().DaysAsReal(), 0.0, "" ); + //} return child; *] } 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_ExpectedHeaders.qbl b/_Main/BL/Type_MappingSaleBudge/StaticMethod_ExpectedHeaders.qbl new file mode 100644 index 0000000..d7275ba --- /dev/null +++ b/_Main/BL/Type_MappingSaleBudge/StaticMethod_ExpectedHeaders.qbl @@ -0,0 +1,64 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod ExpectedHeaders () as owning Strings +{ + TextBody: + [* + // yypsybs Jun-30-2023 (created) + value := construct( structured[String] ); + value.Add( "鍒犻櫎鏍囪" ); + value.Add( "骞翠唤" ); + value.Add( "涓氬姟閮ㄩ棬" ); + value.Add( "鏄剧ず鎶�鏈垎绫�" ); + value.Add( "涓氬姟鍒嗙被" ); + value.Add( "浜у搧绾�/浜у搧瑙勬牸" ); + value.Add( "浜у搧鏂欏彿" ); + value.Add( "Array浜у湴" ); + value.Add( "钂搁晙浜у湴" ); + value.Add( "鍒嗚鲸鐜�" ); + value.Add( "鍑鸿揣褰㈡��" ); + value.Add( "鍒囧壊鏁�" ); + value.Add( "浜ц兘褰撻噺" ); + value.Add( "mask鏁�" ); + value.Add( "1鏈堜骇鑳�(PCS)" ); + value.Add( "2鏈堜骇鑳�(PCS)" ); + value.Add( "3鏈堜骇鑳�(PCS)" ); + value.Add( "4鏈堜骇鑳�(PCS)" ); + value.Add( "5鏈堜骇鑳�(PCS)" ); + value.Add( "6鏈堜骇鑳�(PCS)" ); + value.Add( "7鏈堜骇鑳�(PCS)" ); + value.Add( "8鏈堜骇鑳�(PCS)" ); + value.Add( "9鏈堜骇鑳�(PCS)" ); + value.Add( "10鏈堜骇鑳�(PCS)" ); + value.Add( "11鏈堜骇鑳�(PCS)" ); + value.Add( "12鏈堜骇鑳�(PCS)" ); + value.Add( "骞翠骇鑳�(PCS)" ); + value.Add( "1鏈堜骇鑳�(瀹炴暟澶у紶)" ); + value.Add( "2鏈堜骇鑳�(瀹炴暟澶у紶)" ); + value.Add( "3鏈堜骇鑳�(瀹炴暟澶у紶)" ); + value.Add( "4鏈堜骇鑳�(瀹炴暟澶у紶)" ); + value.Add( "5鏈堜骇鑳�(瀹炴暟澶у紶)" ); + value.Add( "6鏈堜骇鑳�(瀹炴暟澶у紶)" ); + value.Add( "7鏈堜骇鑳�(瀹炴暟澶у紶)" ); + value.Add( "8鏈堜骇鑳�(瀹炴暟澶у紶)" ); + value.Add( "9鏈堜骇鑳�(瀹炴暟澶у紶)" ); + value.Add( "10鏈堜骇鑳�(瀹炴暟澶у紶)" ); + value.Add( "11鏈堜骇鑳�(瀹炴暟澶у紶)" ); + value.Add( "12鏈堜骇鑳�(瀹炴暟澶у紶)" ); + value.Add( "骞翠骇鑳�(瀹炴暟澶у紶)" ); + value.Add( "1鏈堥攢鍞(W)" ); + value.Add( "2鏈堥攢鍞(W)" ); + value.Add( "3鏈堥攢鍞(W)" ); + value.Add( "4鏈堥攢鍞(W)" ); + value.Add( "5鏈堥攢鍞(W)" ); + value.Add( "6鏈堥攢鍞(W)" ); + value.Add( "7鏈堥攢鍞(W)" ); + value.Add( "8鏈堥攢鍞(W)" ); + value.Add( "9鏈堥攢鍞(W)" ); + value.Add( "10鏈堥攢鍞(W)" ); + value.Add( "11鏈堥攢鍞(W)" ); + value.Add( "12鏈堥攢鍞(W)" ); + value.Add( "骞撮攢鍞(W)" ); + return &value; + *] +} diff --git a/_Main/BL/Type_MappingSaleBudge/StaticMethod_Export.qbl b/_Main/BL/Type_MappingSaleBudge/StaticMethod_Export.qbl new file mode 100644 index 0000000..c75f124 --- /dev/null +++ b/_Main/BL/Type_MappingSaleBudge/StaticMethod_Export.qbl @@ -0,0 +1,73 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod Export ( + MPSync parent +) as String +{ + TextBody: + [* + // yypsybs Jul-1-2023 (created) + xmlTemplate := '<?xml version="1.0" encoding="UTF-16"?> + <table> + <name>MappingCapacityAndSaleBudge</name> + '; + //--------------------------------------------------------------------------------------------- + exportFields := MappingCapacityAndSaleBudge::ExportFields(); + exportHeaders := MappingCapacityAndSaleBudge::ExpectedHeaders(); + if( exportFields.Size() <> exportHeaders.Size() ) { + error( "fields and headers not match" ); + } + info( "export start" ); + for( i := 0; i < exportFields.Size() ; i++ ) { + header := exportHeaders.Element( i ); + fieldName := exportFields.Element( i ); + info( "header : " + header ) + info( "fieldName : " + fieldName ) + columnStr := "<column><name>" + header + "</name><type>String</type>"; + traverse( parent, MappingCapacityAndSaleBudge, oldRecord ) { + field := Reflection::FindAttribute( "MappingCapacityAndSaleBudge", fieldName); + if( not isnull( field ) ) { + fieldValue := ""; + if( fieldValue = "" ) { + fieldValue := guard( field.GetString( oldRecord ), "" ); + } + if( fieldValue = "" ) { + fieldValue := guard( [String]field.GetNumber( oldRecord ), "" ); + } + if( fieldValue = "" ) { + fieldValue := guard( [String]field.GetReal( oldRecord ), "" ); + } + if( fieldValue = "" ) { + fieldValue := guard( ifexpr( field.GetBoolean( oldRecord ), "Y", "N" ), "" ); + } + if( fieldValue = "" ) { + fileDateValue := guard( field.GetDate( oldRecord ), Date::MinDate() ); + if( fileDateValue <> Date::MinDate() ) { + conv := DateTimeToString::StandardConverter(); + conv.SetCustomConversion(); + conv.CustomFormatString( 'yyyyMMdd' ); + fieldValue := conv.Convert( fileDateValue.DateTime() ); + } + } + cellStr := '<cell value="' + fieldValue + '"/>'; + + columnStr := columnStr + cellStr; + } else { + error( "no field " + fieldName + " in type MappingCapacityAndSaleBudge"); + } + } + columnStr := columnStr + "</column>"; + xmlTemplate := xmlTemplate + columnStr; + } + //--------------------------------------------------------------------------------------------- + xmlTemplate := xmlTemplate + "</table>"; + //info( xmlTemplate ); + tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlTemplate ) ); + XLS::SaveTable( tableHandle, OS::TempPath() + "MappingCapacityAndSaleBudge.xlsx" ); + file := OSFile::Construct(); + file.Open( OS::TempPath() + "MappingCapacityAndSaleBudge.xlsx", "Read", true ); + data := file.ReadBinary() + info( "export end" ); + return data.AsBase64EncodedString(); + *] +} diff --git a/_Main/BL/Type_MappingSaleBudge/StaticMethod_ExportFields.qbl b/_Main/BL/Type_MappingSaleBudge/StaticMethod_ExportFields.qbl new file mode 100644 index 0000000..58b6447 --- /dev/null +++ b/_Main/BL/Type_MappingSaleBudge/StaticMethod_ExportFields.qbl @@ -0,0 +1,64 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod ExportFields () as owning Strings +{ + TextBody: + [* + // yypsybs Jun-30-2023 (created) + value := construct( structured[String] ); + value.Add( "Deleted" ); + value.Add( "YearNo" ); + value.Add( "OrgCode" ); + value.Add( "DisplayTechnology" ); + value.Add( "BusinessType" ); + value.Add( "LineAndSpecification" ); + value.Add( "ProductCode" ); + value.Add( "PlaceOfProductionOfArray" ); + value.Add( "PlaceOfProductionOfEvaporation" ); + value.Add( "Resolution" ); + value.Add( "ShippingForm" ); + value.Add( "NumberOfCut" ); + value.Add( "CapacityEquivalent" ); + value.Add( "NumberOfMask" ); + value.Add( "CapacityInPCSInMonth1" ); + value.Add( "CapacityInPCSInMonth2" ); + value.Add( "CapacityInPCSInMonth3" ); + value.Add( "CapacityInPCSInMonth4" ); + value.Add( "CapacityInPCSInMonth5" ); + value.Add( "CapacityInPCSInMonth6" ); + value.Add( "CapacityInPCSInMonth7" ); + value.Add( "CapacityInPCSInMonth8" ); + value.Add( "CapacityInPCSInMonth9" ); + value.Add( "CapacityInPCSInMonth10" ); + value.Add( "CapacityInPCSInMonth11" ); + value.Add( "CapacityInPCSInMonth12" ); + value.Add( "CapacityInPCSTotal" ); + value.Add( "CapacityInSheetInMonth1" ); + value.Add( "CapacityInSheetInMonth2" ); + value.Add( "CapacityInSheetInMonth3" ); + value.Add( "CapacityInSheetInMonth4" ); + value.Add( "CapacityInSheetInMonth5" ); + value.Add( "CapacityInSheetInMonth6" ); + value.Add( "CapacityInSheetInMonth7" ); + value.Add( "CapacityInSheetInMonth8" ); + value.Add( "CapacityInSheetInMonth9" ); + value.Add( "CapacityInSheetInMonth10" ); + value.Add( "CapacityInSheetInMonth11" ); + value.Add( "CapacityInSheetInMonth12" ); + value.Add( "CapacityInSheetTotal" ); + value.Add( "SaleAmountInMonth1" ); + value.Add( "SaleAmountInMonth2" ); + value.Add( "SaleAmountInMonth3" ); + value.Add( "SaleAmountInMonth5" ); + value.Add( "SaleAmountInMonth4" ); + value.Add( "SaleAmountInMonth6" ); + value.Add( "SaleAmountInMonth7" ); + value.Add( "SaleAmountInMonth8" ); + value.Add( "SaleAmountInMonth9" ); + value.Add( "SaleAmountInMonth10" ); + value.Add( "SaleAmountInMonth11" ); + value.Add( "SaleAmountInMonth12" ); + value.Add( "SaleAmountTotal" ); + return &value; + *] +} 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_OnCommitCustom.qbl b/_Main/BL/Type_Operation/Method_OnCommitCustom.qbl index b714ef0..650047b 100644 --- a/_Main/BL/Type_Operation/Method_OnCommitCustom.qbl +++ b/_Main/BL/Type_Operation/Method_OnCommitCustom.qbl @@ -5,7 +5,7 @@ TextBody: [* // yypsybs Aug-25-2023 (created) - info( "Operation::OnCommitCustom" ) - ManufactureLTProcessSection::CreateOrUpdate( this ); + //info( "Operation::OnCommitCustom" ) + //ManufactureLTProcessSection::CreateOrUpdate( this ); *] } 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..a2be846 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, Coefficient := 100 ); + owner.PriorityFactor(relnew,Name := "瀹㈡埛绛夌骇" ,Desc := "鏍规嵁闇�姹傛暟鎹腑瀹㈡埛锛屽尮閰嶅鎴风瓑绾�",BusinessType := businessType, Coefficient := 100); + owner.PriorityFactor(relnew,Name := "澶у紶鐩堝埄姘村钩" ,Desc := "1銆佽幏鍙栧鎴�*SKU澶у紶鐩堝埄鏁� 2銆佸畾涔夊鎴�*SKU澶у紶鐩堝埄鏁伴樁姊緱鍒� 3銆佸尮閰嶉渶姹傛暟鎹腑瀹㈡埛鍙奡KU鏁版嵁锛屽緱鍒板搴旈樁姊緱鍒�", BusinessType := businessType, Coefficient := 100 ); + owner.PriorityFactor(relnew,Name := "缁嗗垎甯傚満绛夌骇" ,Desc := "1銆佽幏鍙栧鎴�*SKU瀵瑰簲缁嗗垎甯傚満绛夌骇 2銆佸尮閰嶉渶姹傛暟鎹腑瀹㈡埛鍙奡KU瀵瑰簲缁嗗垎甯傚満璇勫垎绛夌骇锛屽緱鍒板搴旈樁姊緱鍒�", BusinessType := businessType, Coefficient := 100 ); + owner.PriorityFactor(relnew,Name := "闇�姹傜被鍨�" ,Desc := "鍖归厤涓嶅悓闇�姹傜绫伙紝寰楀埌瀵瑰簲寰楀垎", BusinessType := businessType, Coefficient := 100 ); + owner.PriorityFactor(relnew,Name := "璁㈠崟涓嬪崟鏃堕棿" ,Desc := "鏍规嵁闇�姹傝鍗曚腑涓嬪崟鏃堕棿涓庨渶姹傛椂闂村樊鍊硷紝鍖归厤闃舵寰楀垎", BusinessType := businessType, Coefficient := 100 ); + owner.PriorityFactor(relnew,Name := "浜у搧绛夌骇" ,Desc := "1銆佽幏鍙栧鎴�*SKU DOI&DSI鏁� 2銆佸畾涔夊鎴�*SKUDOI&DSI鏁伴樁姊緱鍒� 3銆佸尮閰嶉渶姹傛暟鎹腑瀹㈡埛鍙奡KU鏁版嵁锛屽緱鍒板搴旈樁姊緱鍒�", BusinessType := businessType, Coefficient := 100 ); + owner.PriorityFactor(relnew,Name := "DOI" ,Desc := "1銆佽幏鍙栧鎴�*SKU DOI&DSI鏁� 2銆佸畾涔夊鎴�*SKUDOI&DSI鏁伴樁姊緱鍒� 3銆佸尮閰嶉渶姹傛暟鎹腑瀹㈡埛鍙奡KU鏁版嵁锛屽緱鍒板搴旈樁姊緱鍒�", BusinessType := businessType, Coefficient := 100 ); + owner.PriorityFactor(relnew,Name := "DSI" ,Desc := "1銆佽幏鍙栧鎴�*SKU DOI&DSI鏁� 2銆佸畾涔夊鎴�*SKUDOI&DSI鏁伴樁姊緱鍒� 3銆佸尮閰嶉渶姹傛暟鎹腑瀹㈡埛鍙奡KU鏁版嵁锛屽緱鍒板搴旈樁姊緱鍒�", BusinessType := businessType, Coefficient := 100 ); + + // 浼樺厛绾у洜瀛愮粏鍒� + 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..83fc44e --- /dev/null +++ b/_Main/BL/Type_PriorityResult/StaticMethod_calculatePriorityResult.qbl @@ -0,0 +1,132 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod CalculatePriorityResult ( + String priorityPolicyName, + MacroPlan macroPlan, + GlobalOTDTable globalOTDTable +) +{ + TextBody: + [* + // NBoTk Sep-26-2023 (created) + + // 鍏堝垹闄ゅ巻鍙茬殑璺戝垎璇︽儏 + traverse( macroPlan,PriorityResult,p) + { + p.PriorityResultBusinessTypeDetail(relflush ); + p.Delete(); + } + + // 璁$畻瀹㈡埛璁㈠崟鐨勪紭鍏堢骇寰楀垎 鍥炲~鏉冮噸鏁版嵁 鐢熸垚鏂扮殑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 := round( resultList.Size() div 10); + subLevelCount := 0; + + priorityValue := 1; + if( resultList.Size() <= 10 ) + { + 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鍘熷浼樺厛绾� + //浼樺厛绾�+1 + priorityValue := priorityValue + 1; + } + } + else + { + 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 2c07b9d..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, - Boolean isCapacity, - 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( isCapacity ); - // 鏈�;瀛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( isCapacity, - MappingCapacityAndSaleBudge::GetSheetByYear( productCodeList, mpSync, year.YearNo() ), - MappingAnnualBudget::GetSheetByYear( productCodeList, mpSync, year.YearNo() ) ) - ); - // S&OP - traverse( macroPlans, Elements, macroPlan ) { - this.CapacityAndSaleBudgeChartElement( relnew, - TimeStringAndScenarioName := [String]year.YearNo() + "骞�-" + macroPlan.ScenarioName(), - BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, - Quantity := ifexpr( isCapacity, - Product_MP::GetNewSupplyByYear( productCodeList, macroPlan, year.YearNo() ), - MappingCustomerOrder::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( isCapacity, - MappingCapacityAndSaleBudge::GetSheetByHalfYear( productCodeList, mpSync, year.YearNo(), halfNo ), - MappingAnnualBudget::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( isCapacity, - Product_MP::GetNewSupplyByHalfYear( productCodeList, macroPlan, year.YearNo(), halfNo ), - MappingCustomerOrder::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( isCapacity, - MappingCapacityAndSaleBudge::GetSheetBySeason( productCodeList, mpSync, year.YearNo(), seasonNo ), - MappingAnnualBudget::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( isCapacity, - Product_MP::GetNewSupplyBySeason( productCodeList, macroPlan, year.YearNo(), seasonNo ), - MappingCustomerOrder::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( isCapacity, - 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 := placeOfProductionOfArray, - Quantity := ifexpr( isCapacity, - Product_MP::GetNewSupplyByMonth( productCodeList, macroPlan, year.YearNo(), month.MonthNo() ), - MappingCustomerOrder::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( isCapacity, - MappingCapacityAndSaleBudge::GetSheetByYear( productCodeList, mpSync, year.YearNo() ), - MappingAnnualBudget::GetSheetByYear( productCodeList, mpSync, year.YearNo() ) ) - ); - // S&OP - traverse( macroPlans, Elements, macroPlan ) { - this.CapacityAndSaleBudgeChartElement( relnew, - TimeStringAndScenarioName := [String]year.YearNo() + "骞�-" + macroPlan.ScenarioName(), - BusinessTypeOrPlaceOfProductionOfArray := businessType, - Quantity := ifexpr( isCapacity, - Product_MP::GetNewSupplyByYear( productCodeList, macroPlan, year.YearNo() ), - MappingCustomerOrder::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( isCapacity, - MappingCapacityAndSaleBudge::GetSheetByHalfYear( productCodeList, mpSync, year.YearNo(), halfNo ), - MappingAnnualBudget::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( isCapacity, - Product_MP::GetNewSupplyByHalfYear( productCodeList, macroPlan, year.YearNo(), halfNo ), - MappingCustomerOrder::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( isCapacity, - MappingCapacityAndSaleBudge::GetSheetBySeason( productCodeList, mpSync, year.YearNo(), seasonNo ), - MappingAnnualBudget::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( isCapacity, - Product_MP::GetNewSupplyBySeason( productCodeList, macroPlan, year.YearNo(), seasonNo ), - MappingCustomerOrder::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( isCapacity, - 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 := businessType, - Quantity := ifexpr( isCapacity, - Product_MP::GetNewSupplyByMonth( productCodeList, macroPlan, year.YearNo(), month.MonthNo() ), - MappingCustomerOrder::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_CapacityAndSaleBudgeChart.qbl b/_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeChart.qbl deleted file mode 100644 index 2f62201..0000000 --- a/_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeChart.qbl +++ /dev/null @@ -1,266 +0,0 @@ -Quintiq file version 2.0 -#parent: #root -Method CapacityAndSaleBudgeChart ( - MacroPlans macroPlans, - Boolean isCapacity, - String groupBy, - String byBusinessTypeOrByOrgCode, - String businessTypeChosen, - String placeOfProductionOfArrayChosen, - String year, - MPSync mpSync, - GlobalOTDTable otdTable, - MacroPlan mappingParent -) -{ - Description: - [* - 鎸夊叆鍙傚鐞嗘暟鎹紝浜х敓闇�瑕佺殑CapacityAndSaleBudgeChartElement - 锛侊紒锛侊紒搴熷純锛侊紒锛侊紒 - *] - TextBody: - [* - // yypsybs Sep-19-2023 (created) - // true, false - info( isCapacity ); - // 鏈�;瀛e害;鍗婂勾;骞� - info( groupBy ); - // 闈㈡澘鍩哄湴;浜嬩笟閮� - info( byBusinessTypeOrByOrgCode ); - info( businessTypeChosen ); - info( placeOfProductionOfArrayChosen ); - info( year ); - - // ====娓呯悊鏃ф暟鎹�==== - this.CapacityAndSaleBudgeChartRow( relflush ); - this.CapacityAndSaleBudgeChartElement( relflush ); - - // ====鎸夐潰鏉垮熀鍦板拰浜嬩笟閮ㄥ浜у搧杩涜绛涢�夊垎缁�==== - historyData := selectset( mpSync, MappingCapacityAndSaleBudge, item, true ); - if( placeOfProductionOfArrayChosen <> "" ) { - historyData := selectset( historyData, Elements, item, item.PlaceOfProductionOfArray() = placeOfProductionOfArrayChosen ); - } - if( businessTypeChosen <> "" ) { - historyData := selectset( historyData, Elements, item, item.BusinessType() = businessTypeChosen ); - } - //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() ); - // 鐢熸垚鍥捐〃鍏冪礌 - if( byBusinessTypeOrByOrgCode = "闈㈡澘鍩哄湴" and groupBy = "骞�" ) { - // 鐩爣 - traverse( placeOfProductionOfArrayList, Elements, placeOfProductionOfArray ) { - productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByPlaceOfProductionOfArray( rows, placeOfProductionOfArray ); - this.CapacityAndSaleBudgeChartElement( relnew, - TimeStringAndScenarioName := [String]year + "骞�-鐩爣", - BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, - Quantity := ifexpr( isCapacity, - MappingCapacityAndSaleBudge::GetSheetByYear( productCodeList, mpSync, [Number]year ), - // todo QID 23 - MappingAnnualBudget::GetSheetByYear( productCodeList, mpSync, [Number]year ) ) - ); - // S&OP - traverse( macroPlans, Elements, macroPlan ) { - this.CapacityAndSaleBudgeChartElement( relnew, - TimeStringAndScenarioName := [String]year + "骞�-" + macroPlan.ScenarioName(), - BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, - Quantity := ifexpr( isCapacity, - Product_MP::GetNewSupplyByYear( productCodeList, macroPlan, [Number]year ), - // todo - 0.0 ) - ); - } - } - } - 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 + "骞�-" + ifexpr( halfNo = 1, "涓�", "涓�" ) + "鍗婂勾-鐩爣", - BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, - Quantity := ifexpr( isCapacity, - MappingCapacityAndSaleBudge::GetSheetByHalfYear( productCodeList, mpSync, [Number]year, halfNo ), - MappingAnnualBudget::GetSheetByHalfYear( productCodeList, mpSync, [Number]year, halfNo ) ) - ); - // S&OP - traverse( macroPlans, Elements, macroPlan ) { - this.CapacityAndSaleBudgeChartElement( relnew, - TimeStringAndScenarioName := [String]year + "骞�-" + ifexpr( halfNo = 1, "涓�", "涓�" ) + "鍗婂勾-" + macroPlan.ScenarioName(), - BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, - Quantity := ifexpr( isCapacity, - Product_MP::GetNewSupplyByHalfYear( productCodeList, macroPlan, [Number]year, halfNo ), - 0.0 ) - ); - } - } - } - } - 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 + "骞�-绗�" + [String]seasonNo + "瀛e害-鐩爣", - BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, - Quantity := ifexpr( isCapacity, - MappingCapacityAndSaleBudge::GetSheetBySeason( productCodeList, mpSync, [Number]year, seasonNo ), - MappingAnnualBudget::GetSheetBySeason( productCodeList, mpSync, [Number]year, seasonNo ) ) - ); - // info( "productCodeList : " + [String]productCodeList.Size() ); - // S&OP - traverse( macroPlans, Elements, macroPlan ) { - this.CapacityAndSaleBudgeChartElement( relnew, - TimeStringAndScenarioName := [String]year + "骞�-绗�" + [String]seasonNo + "瀛e害-" + macroPlan.ScenarioName(), - BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, - Quantity := ifexpr( isCapacity, - Product_MP::GetNewSupplyBySeason( productCodeList, macroPlan, [Number]year, seasonNo ), - 0.0 ) - ); - } - } - } - } - if ( byBusinessTypeOrByOrgCode = "闈㈡澘鍩哄湴" and groupBy = "鏈�" ) { - for( monthNo := 1; monthNo <= 12; monthNo := monthNo + 1 ) { - monthNoString := ifexpr( monthNo <= 9, "0" + [String]monthNo, [String]monthNo ); - traverse( placeOfProductionOfArrayList, Elements, placeOfProductionOfArray ) { - productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByPlaceOfProductionOfArray( rows, placeOfProductionOfArray ); - this.CapacityAndSaleBudgeChartElement( relnew, - TimeStringAndScenarioName := [String]year + "骞�-绗�" + monthNoString + "鏈�-鐩爣", - BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, - Quantity := ifexpr( isCapacity, - MappingCapacityAndSaleBudge::GetSheetByMonth( productCodeList, mpSync, [Number]year, monthNo ), - MappingAnnualBudget::GetSheetByMonth( productCodeList, mpSync, [Number]year, monthNo ) ) - ); - // S&OP - traverse( macroPlans, Elements, macroPlan ) { - this.CapacityAndSaleBudgeChartElement( relnew, - TimeStringAndScenarioName := [String]year + "骞�-绗�" + monthNoString + "鏈�-" + macroPlan.ScenarioName(), - BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, - Quantity := ifexpr( isCapacity, - Product_MP::GetNewSupplyByMonth( productCodeList, macroPlan, [Number]year, monthNo ), - 0.0 ) - ); - } - } - } - } - if( byBusinessTypeOrByOrgCode = "浜嬩笟閮�" and groupBy = "骞�" ) { - // 鐩爣 - traverse( businessTypeList, Elements, businessType ) { - productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByBusinessType( rows, businessType ); - this.CapacityAndSaleBudgeChartElement( relnew, - TimeStringAndScenarioName := [String]year + "骞�-鐩爣", - BusinessTypeOrPlaceOfProductionOfArray := businessType, - Quantity := ifexpr( isCapacity, - MappingCapacityAndSaleBudge::GetSheetByYear( productCodeList, mpSync, [Number]year ), - MappingAnnualBudget::GetSheetByYear( productCodeList, mpSync, [Number]year ) ) - ); - // S&OP - traverse( macroPlans, Elements, macroPlan ) { - this.CapacityAndSaleBudgeChartElement( relnew, - TimeStringAndScenarioName := [String]year + "骞�-" + macroPlan.ScenarioName(), - BusinessTypeOrPlaceOfProductionOfArray := businessType, - Quantity := ifexpr( isCapacity, - Product_MP::GetNewSupplyByYear( productCodeList, macroPlan, [Number]year ), - 0.0 ) - ); - } - } - } - 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 + "骞�-" + ifexpr( halfNo = 1, "涓�", "涓�" ) + "鍗婂勾-鐩爣", - BusinessTypeOrPlaceOfProductionOfArray := businessType, - Quantity := ifexpr( isCapacity, - MappingCapacityAndSaleBudge::GetSheetByHalfYear( productCodeList, mpSync, [Number]year, halfNo ), - MappingAnnualBudget::GetSheetByHalfYear( productCodeList, mpSync, [Number]year, halfNo ) ) - ); - // S&OP - traverse( macroPlans, Elements, macroPlan ) { - this.CapacityAndSaleBudgeChartElement( relnew, - TimeStringAndScenarioName := [String]year + "骞�-" + ifexpr( halfNo = 1, "涓�", "涓�" ) + "鍗婂勾-" + macroPlan.ScenarioName(), - BusinessTypeOrPlaceOfProductionOfArray := businessType, - Quantity := ifexpr( isCapacity, - Product_MP::GetNewSupplyByHalfYear( productCodeList, macroPlan, [Number]year, halfNo ), - 0.0 ) - ); - } - } - } - } - if ( byBusinessTypeOrByOrgCode = "浜嬩笟閮�" and groupBy = "瀛e害" ) { - for( seasonNo := 1; seasonNo <= 4; seasonNo := seasonNo + 1 ) { - traverse( businessTypeList, Elements, businessType ) { - productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByBusinessType( rows, businessType ); - this.CapacityAndSaleBudgeChartElement( relnew, - TimeStringAndScenarioName := [String]year + "骞�-绗�" + [String]seasonNo + "瀛e害-鐩爣", - BusinessTypeOrPlaceOfProductionOfArray := businessType, - Quantity := ifexpr( isCapacity, - MappingCapacityAndSaleBudge::GetSheetBySeason( productCodeList, mpSync, [Number]year, seasonNo ), - MappingAnnualBudget::GetSheetBySeason( productCodeList, mpSync, [Number]year, seasonNo ) ) - ); - // S&OP - traverse( macroPlans, Elements, macroPlan ) { - this.CapacityAndSaleBudgeChartElement( relnew, - TimeStringAndScenarioName := [String]year + "骞�-绗�" + [String]seasonNo + "瀛e害-" + macroPlan.ScenarioName(), - BusinessTypeOrPlaceOfProductionOfArray := businessType, - Quantity := ifexpr( isCapacity, - Product_MP::GetNewSupplyBySeason( productCodeList, macroPlan, [Number]year, seasonNo ), - 0.0 ) - ); - } - } - } - } - if ( byBusinessTypeOrByOrgCode = "浜嬩笟閮�" and groupBy = "鏈�" ) { - for( monthNo := 1; monthNo <= 12; monthNo := monthNo + 1 ) { - monthNoString := ifexpr( monthNo <= 9, "0" + [String]monthNo, [String]monthNo ); - traverse( businessTypeList, Elements, businessType ) { - productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByBusinessType( rows, businessType ); - this.CapacityAndSaleBudgeChartElement( relnew, - TimeStringAndScenarioName := [String]year + "骞�-绗�" + monthNoString + "鏈�-鐩爣", - BusinessTypeOrPlaceOfProductionOfArray := businessType, - Quantity := ifexpr( isCapacity, - MappingCapacityAndSaleBudge::GetSheetByMonth( productCodeList, mpSync, [Number]year, monthNo ), - MappingAnnualBudget::GetSheetByMonth( productCodeList, mpSync, [Number]year, monthNo ) ) - ); - // S&OP - traverse( macroPlans, Elements, macroPlan ) { - this.CapacityAndSaleBudgeChartElement( relnew, - TimeStringAndScenarioName := [String]year + "骞�-绗�" + monthNoString + "鏈�-" + macroPlan.ScenarioName(), - BusinessTypeOrPlaceOfProductionOfArray := businessType, - Quantity := ifexpr( isCapacity, - Product_MP::GetNewSupplyByMonth( productCodeList, macroPlan, [Number]year, monthNo ), - 0.0 ) - ); - } - } - } - } - //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 a441cd3..0000000 --- a/_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeCompare.qbl +++ /dev/null @@ -1,207 +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 ) { - // 鍘嗗彶鏁版嵁 - 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 ); - } - // 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 ) { - // 鍘嗗彶鏁版嵁 - 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 ); - } - // 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, "澶у紶鐩堝埄棰�-骞村害棰勭畻" ); - 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() + "骞�" ); - 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, "浜у搧鐩堝埄棰�-骞村害棰勭畻" ); - 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() + "骞�" ); - 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_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_ScenarioManager/StaticMethod_GeneratesTheSpecifiedXMLColumn.qbl b/_Main/BL/Type_ScenarioManager/StaticMethod_GeneratesTheSpecifiedXMLColumn.qbl new file mode 100644 index 0000000..f40c634 --- /dev/null +++ b/_Main/BL/Type_ScenarioManager/StaticMethod_GeneratesTheSpecifiedXMLColumn.qbl @@ -0,0 +1,23 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod GeneratesTheSpecifiedXMLColumn ( + XMLDOMDocument xmlDOMDocument, + XMLDOMElement tableElement, + String value, + String columnName +) +{ + TextBody: + [* + columnElements := tableElement.GetElementsByTagName( "column" ); + + traverse ( columnElements, Elements, ce ) { + nameElement := ce.GetElementByTagName( "name", 0 ); + if ( nameElement.TextContent() = columnName ) { + cell := xmlDOMDocument.CreateElement( "cell" ); + cell.SetAttribute( "value", value ); + ce.AppendChild( cell ); + } + } + *] +} diff --git a/_Main/BL/Type_Unit/StaticMethod_CreateOrUpdate.qbl b/_Main/BL/Type_Unit/StaticMethod_CreateOrUpdate.qbl index df72958..5806f00 100644 --- a/_Main/BL/Type_Unit/StaticMethod_CreateOrUpdate.qbl +++ b/_Main/BL/Type_Unit/StaticMethod_CreateOrUpdate.qbl @@ -7,7 +7,7 @@ String parentunitid, String capacitytype, String unitofmeasurename -) +) as Unit { TextBody: [* @@ -21,7 +21,7 @@ unit := Unit::FindById( owner, id ); if( id="澶╅┈闆嗗洟" and isnull( unit ) ){ - owner.Unit( relnew, + unit := owner.Unit( relnew, ID := id, Name := name, UnitOfMeasureName := unitofmeasurename, @@ -31,7 +31,7 @@ CapacityType := capacitytype ); }else{ if( isnull( unit ) ){ - owner.Unit( relnew, ID := id, + unit := owner.Unit( relnew, ID := id, Name := name, ParentUnitID := parentunitid, CapacityType := capacitytype, @@ -46,5 +46,7 @@ unit.UnitOfMeasureName( unitofmeasurename ); } } + + return unit; *] } 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/MacroPlanner/Component_FormTestButtonCollection/Response_Button398_OnClick.def b/_Main/UI/MacroPlanner/Component_FormTestButtonCollection/Response_Button398_OnClick.def index 7b1da32..e164af9 100644 --- a/_Main/UI/MacroPlanner/Component_FormTestButtonCollection/Response_Button398_OnClick.def +++ b/_Main/UI/MacroPlanner/Component_FormTestButtonCollection/Response_Button398_OnClick.def @@ -5,7 +5,7 @@ #keys: '[414702.0.340554926]' Body: [* - CapacityAllocationResults::CreateDate( GlobalOTDTable, MacroPlan ); + CapacityAllocationResults::CreateDate( GlobalOTDTable, MacroPlan, SelectionScenario.Data() ); *] CanBindMultiple: false DefinitionID: 'Responsedef_GUIButtonBase_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_abgTest.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_abgTest.def new file mode 100644 index 0000000..a28e4bb --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_abgTest.def @@ -0,0 +1,29 @@ +Quintiq file version 2.0 +Component abgTest +{ + #keys: '[414702.0.358311816]' + BaseType: 'WebActionBarGroup' + Children: + [ + Component btnTestAttempt + { + #keys: '[414502.0.409422371]' + BaseType: 'WebButton' + Children: + [ + #child: cmTestAttempt + ] + Properties: + [ + Image: 'ANTENNA' + Label: '娴嬭瘯瑙嗗浘' + Taborder: 0 + ] + } + ] + Properties: + [ + Taborder: 4 + Title: 'TestView' + ] +} diff --git "a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_applicationDevelopmentActionBarPageDef\0431.def" "b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_applicationDevelopmentActionBarPageDef\0431.def" new file mode 100644 index 0000000..7966b9e --- /dev/null +++ "b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_applicationDevelopmentActionBarPageDef\0431.def" @@ -0,0 +1,9 @@ +Quintiq file version 2.0 +Component applicationDevelopmentActionBarPageDef id:applicationDevelopmentActionBarPageDef_1 #extension +{ + Children: + [ + #child: abgTest + #child: abgInterfaceTest + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_cmTestAttempt.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_cmTestAttempt.def new file mode 100644 index 0000000..884eba9 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_cmTestAttempt.def @@ -0,0 +1,35 @@ +Quintiq file version 2.0 +Component cmTestAttempt +{ + #keys: '[414502.0.409457922]' + BaseType: 'WebContextMenu' + Children: + [ + Component mnCapacityAllocationAndProductionFilling + { + #keys: '[414502.0.409457923]' + BaseType: 'WebMenu' + Properties: + [ + Image: 'WATER_FISH' + Taborder: 0 + Title: '浜ц兘鍒嗛厤&濉骇' + ] + } + Component mnAnnualProductionAndSalesReview + { + #keys: '[414502.0.409488417]' + BaseType: 'WebMenu' + Properties: + [ + Image: 'PIG' + Taborder: 1 + Title: '骞村害浜ч攢澶嶇洏' + ] + } + ] + Properties: + [ + Taborder: 0 + ] +} 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_ApplicationMacroPlanner/Response_TIANMA_JITUAN_cmTestAttempt_mnAnnualProductionAndSalesReview_OnClic.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_cmTestAttempt_mnAnnualProductionAndSalesReview_OnClic.def new file mode 100644 index 0000000..aa266a1 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_cmTestAttempt_mnAnnualProductionAndSalesReview_OnClic.def @@ -0,0 +1,16 @@ +Quintiq file version 2.0 +#parent: cmTestAttempt/mnAnnualProductionAndSalesReview +Response OnClick () id:Response_TIANMA_JITUAN_cmTestAttempt_mnAnnualProductionAndSalesReview_OnClick +{ + #keys: '[414502.0.409488583]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebMenu_OnClick' + GroupServerCalls: true + QuillAction + { + Body: + [* + ApplicationScope.ViewManager().ResetUserViewById( "骞村害浜ч攢澶嶇洏", true ); + *] + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_cmTestAttempt_mnCapacityAllocationAndProductionFillin.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_cmTestAttempt_mnCapacityAllocationAndProductionFillin.def new file mode 100644 index 0000000..f2aaa6f --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_cmTestAttempt_mnCapacityAllocationAndProductionFillin.def @@ -0,0 +1,16 @@ +Quintiq file version 2.0 +#parent: cmTestAttempt/mnCapacityAllocationAndProductionFilling +Response OnClick () id:Response_TIANMA_JITUAN_cmTestAttempt_mnCapacityAllocationAndProductionFilling_OnClick +{ + #keys: '[414502.0.409488282]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebMenu_OnClick' + GroupServerCalls: true + QuillAction + { + Body: + [* + ApplicationScope.ViewManager().ResetUserViewById( "Test", true ); + *] + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def index 2ee31ab..b0bcb6e 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def +++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def @@ -11,6 +11,7 @@ [ #child: ActionBarPageData #child: ActionBarPageSales + #child: applicationDevelopmentActionBarPageDef_1 ] } Component DataHolderCapacityAndSaleBudgeFilterItem 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_DialogCapacityAllocationResultsRuleConfiguration/Component_pnlActions.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Component_pnlActions.def new file mode 100644 index 0000000..0e13477 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Component_pnlActions.def @@ -0,0 +1,40 @@ +Quintiq file version 2.0 +Component pnlActions +{ + #keys: '[414702.0.373821470]' + BaseType: 'WebPanel' + Children: + [ + Component btnOk + { + #keys: '[414702.0.373821474]' + BaseType: 'WebButton' + Properties: + [ + Label: 'OK' + Taborder: 0 + ] + } + Component btnCancel + { + #keys: '[414702.0.373821476]' + 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_DialogCapacityAllocationResultsRuleConfiguration/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Component_pnlContent.def new file mode 100644 index 0000000..f885a86 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Component_pnlContent.def @@ -0,0 +1,58 @@ +Quintiq file version 2.0 +Component pnlContent +{ + #keys: '[414702.0.373821468]' + BaseType: 'WebPanel' + Children: + [ + Component efPanelMaterialCode + { + #keys: '[414702.0.375722232]' + BaseType: 'WebEditField' + Properties: + [ + DataBinding: 'DataHolderDialogData.Data.PanelMaterialCode' + Label: '闈㈡澘鐗╂枡缂栫爜' + Taborder: 0 + ] + } + Component efModuleMaterialCode + { + #keys: '[414702.0.375722245]' + BaseType: 'WebEditField' + Properties: + [ + DataBinding: 'DataHolderDialogData.Data.ModuleMaterialCode' + Label: '妯℃澘浜ф垚鍝両D' + Taborder: 1 + ] + } + Component efDivision + { + #keys: '[414702.0.375722257]' + BaseType: 'WebEditField' + Properties: + [ + DataBinding: 'DataHolderDialogData.Data.Division' + Label: '浜嬩笟閮�' + Taborder: 2 + ] + } + Component efStockingPointID + { + #keys: '[414702.0.375874061]' + BaseType: 'WebEditField' + Properties: + [ + DataBinding: 'DataHolderDialogData.Data.StockingPointID' + Label: '妯$粍浜ф垚鍝佸簱瀛樼偣ID' + Taborder: 3 + ] + } + ] + Properties: + [ + Padding: 'true' + Taborder: 0 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Method_Edit.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Method_Edit.def new file mode 100644 index 0000000..77662e1 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Method_Edit.def @@ -0,0 +1,17 @@ +Quintiq file version 2.0 +#parent: #root +Method Edit ( + CapacityAllocationResultsRuleConfiguration selection +) id:Method_DialogCreateEditCapacityAllocationResultsRuleConfiguration_Edit +{ + #keys: '[414702.0.375759040]' + Body: + [* + // Edits assumption + data := shadow( selection ); + + DataHolderDialogData.Data( &data ); + + ApplicationMacroPlanner.ShowFormModal( this ); + *] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Method_New.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Method_New.def new file mode 100644 index 0000000..fa8fb18 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Method_New.def @@ -0,0 +1,14 @@ +Quintiq file version 2.0 +#parent: #root +Method New () id:Method_DialogCreateEditCapacityAllocationResultsRuleConfiguration_New +{ + #keys: '[414702.0.375317354]' + Body: + [* + capacityAllocationResultsRuleConfiguration := GlobalOTDTable.CapacityAllocationResultsRuleConfiguration( relshadow ); + + DataHolderDialogData.Data( &capacityAllocationResultsRuleConfiguration ); + + ApplicationMacroPlanner.ShowFormModal( this ); + *] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Response_pnlActions_btnCancel_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Response_pnlActions_btnCancel_OnClick.def new file mode 100644 index 0000000..057d12d --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/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: '[414702.0.373821480]' + DefinitionID: 'Responsedef_WebButton_OnClick' + GroupServerCalls: true + QuillAction + { + Body: + [* + Form.Close(); + *] + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Response_pnlActions_btnOk_OnClick.def new file mode 100644 index 0000000..336e9a8 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Response_pnlActions_btnOk_OnClick.def @@ -0,0 +1,34 @@ +Quintiq file version 2.0 +#parent: pnlActions/btnOk +Response OnClick () id:Response_pnlActions_btnOk_OnClick +{ + #keys: '[414702.0.373821479]' + DefinitionID: 'Responsedef_WebButton_OnClick' + QuillAction + { + Body: + [* + Form.ApplyChanges(); + + data := DataHolderDialogData.Data().WrappedInstance(); + if ( isnull( data ) ) { + GlobalOTDTable.CapacityAllocationResultsRuleConfiguration( relnew, + PanelMaterialCode := efPanelMaterialCode.Text(), + ModuleMaterialCode := efModuleMaterialCode.Text(), + Division := efDivision.Text(), + StockingPointID := efStockingPointID.Text() + ); + } else { + DataHolderDialogData.Data().PanelMaterialCode( efPanelMaterialCode.Text() ); + DataHolderDialogData.Data().ModuleMaterialCode( efModuleMaterialCode.Text() ); + DataHolderDialogData.Data().Division( efDivision.Text() ); + DataHolderDialogData.Data().StockingPointID( efStockingPointID.Text() ); + DataHolderDialogData.Data().Commit(); + } + + + Form.Close(); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/_ROOT_Component_DialogCreateEditCapacityAllocationResultsRuleConfiguration.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/_ROOT_Component_DialogCreateEditCapacityAllocationResultsRuleConfiguration.def new file mode 100644 index 0000000..76da375 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/_ROOT_Component_DialogCreateEditCapacityAllocationResultsRuleConfiguration.def @@ -0,0 +1,32 @@ +Quintiq file version 2.0 +#root +#parent: MacroPlannerWebApp +OrphanComponent DialogCreateEditCapacityAllocationResultsRuleConfiguration +{ + #keys: '[414702.0.373821466]' + BaseType: 'WebForm' + Children: + [ + #child: pnlContent + #child: pnlActions + Component DataHolderDialogData + { + #keys: '[414702.0.375413793]' + BaseType: 'WebDataHolder' + Databinding: 'shadow[CapacityAllocationResultsRuleConfiguration]*' + Properties: + [ + Taborder: 2 + ] + } + ] + Properties: + [ + Alignment: 'trailing' + EnterButton: 'btnOk' + EscapeButton: 'btnCancel' + ExcludeFromActiveComponent: true + Image: 'BEAR' + Padding: 'false' + ] +} 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..f9cb868 --- /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); + Form.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 5d283ea..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() ) ) { @@ -108,7 +115,7 @@ // sync data if( data.EnableSync() ) { MacroPlan::DoSync( macroPlanNew, - data.BusinessType(), data.IsKeyProduct(), data.CreatePurchaseSupplyMaterial() ); + data.BusinessType(), data.IsKeyProduct(), data.CreatePurchaseSupplyMaterial() ,GlobalOTDTable); } this.Close(); 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..f2ee867 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: 13 ] } 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: 14 ] } Component dsDemandDate @@ -101,8 +107,8 @@ Properties: [ DataBinding: 'DataHolderFillingCapacityOrder.Data.DemandDate' - Label: 'Demand Date' - Taborder: 8 + Label: '闇�姹傛棩鏈�' + Taborder: 16 ] } Component dsForecastDemandDate @@ -112,10 +118,208 @@ Properties: [ DataBinding: 'DataHolderFillingCapacityOrder.Data.ForecastDemandDate' - Label: 'Forecast Demand Date' + Label: '棰勬湡闇�姹傛棩鏈�' + Taborder: 15 + ] + } + 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: 11 + ] + } + Component efCustomID + { + #keys: '[414702.0.525734943]' + BaseType: 'WebEditField' + Properties: + [ + Label: 'Customer ID' + Taborder: 12 + ] + } + Component ddslOrderType + { + #keys: '[414702.0.526239841]' + BaseType: 'WebDropDownStringList' + Properties: + [ + DataBinding: 'DataHolderFillingCapacityOrder.Data.OrderType' + Label: '璁㈠崟绫诲瀷' + Strings: '鍙嶇;鎺堟潈' + Taborder: 17 + ] + } + Component ddlCurrency_MP + { + #keys: '[414502.0.395021898]' + BaseType: 'WebDropDownList' + Databinding: 'Currency_MP' + Children: + [ + Component deContent593 + { + #keys: '[414502.0.395021900]' + BaseType: 'WebDataExtractor' + Properties: + [ + DataType: 'MacroPlan' + Source: 'MacroPlan' + Taborder: 0 + Transformation: 'Currency_MP' + ] + } + ] + Properties: + [ + DisplayField: 'Name' + Label: '璐у竵' + Taborder: 10 + ] + } ] 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..bf61706 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,54 @@ 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(), + CurrencyID := ddlCurrency_MP.Data().ID() + ); + } 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() ); + data.CurrencyID( ddlCurrency_MP.Data().ID() ); + } + + 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_Form234/Component_List174.def b/_Main/UI/MacroPlannerWebApp/Component_Form234/Component_List174.def index 66db189..4b16da7 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_Form234/Component_List174.def +++ b/_Main/UI/MacroPlannerWebApp/Component_Form234/Component_List174.def @@ -28,7 +28,7 @@ ] Properties: [ - Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderCode","title":"OrderCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SKU","title":"SKU","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SKU"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderDateTime","title":"OrderDateTime","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderDateTime"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderQty","title":"OrderQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastHitQty","title":"ForecastHitQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastHitQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastNoHitQty","title":"ForecastNoHitQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastNoHitQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Unit","title":"Unit","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Unit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerName","title":"CustomerName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerCode","title":"CustomerCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerCode"}}]' + Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderCode","title":"璁㈠崟缂栧彿","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SKU","title":"SKU缂栫爜","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SKU"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderQty","title":"鏁伴噺","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderDateTime","title":"闇�姹傛椂闂�","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderDateTime"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastHitQty","title":"鏈夐娴�","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastHitQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastNoHitQty","title":"鏃犻娴�","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastNoHitQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Unit","title":"鍗曚綅","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Unit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerName","title":"瀹㈡埛鍚嶇О","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerCode","title":"瀹㈡埛ID","subtotals":"","tooltip":"","width":-1,"display":"hidden","editable":false,"attribute":"CustomerCode"}}]' ContextMenu: 'listContextMenu108' SortCriteria: 'OperateTime' Taborder: 2 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_FormCapacityAllocationResults/Component_ListCapacityAllocationResults.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_ListCapacityAllocationResults.def index c07b922..27d0374 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_ListCapacityAllocationResults.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_ListCapacityAllocationResults.def @@ -1,26 +1,26 @@ Quintiq file version 2.0 Component ListCapacityAllocationResults { - #keys: '[414702.0.338762075]' + #keys: '[414702.0.390053833]' BaseType: 'WebList' Children: [ Component DataExtractorCapacityAllocationResults { - #keys: '[414702.0.338762076]' + #keys: '[414702.0.390053834]' BaseType: 'WebDataExtractor' Properties: [ - DataType: 'GlobalOTDTable' - Source: 'GlobalOTDTable' + DataType: 'structured[CapacityAllocationResultsRuleConfiguration]' + Source: 'FormCapacityAllocationResultsRuleConfiguration.DataHolderSelectCapacityAllocationResultsRuleConfiguration' Taborder: 0 - Transformation: 'CapacityAllocationResults' + Transformation: 'Elements.CapacityAllocationResults' ] } #child: listActionBarPageCapacityAllocationResults Component DataSetLevelCapacityAllocationResults { - #keys: '[414702.0.338762081]' + #keys: '[414702.0.390053839]' BaseType: 'WebDataSetLevel' Children: [ @@ -28,7 +28,7 @@ ] Properties: [ - Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"VersionNumber","title":"VersionNumber","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"VersionNumber"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PanelMeasurementUnit","title":"PanelMeasurementUnit","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PanelMeasurementUnit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PanelMaterialCode","title":"PanelMaterialCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PanelMaterialCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"NumberOfPanels","title":"NumberOfPanels","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"NumberOfPanels"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PanelMeasurementUnit","title":"PanelMeasurementUnit","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PanelMeasurementUnit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ModuleMaterialCode","title":"ModuleMaterialCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ModuleMaterialCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"NumberOfModules","title":"NumberOfModules","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"NumberOfModules"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ModuleMeasurementUnit","title":"ModuleMeasurementUnit","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ModuleMeasurementUnit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ModuleMeasurementUnit","title":"ModuleMeasurementUnit","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ModuleMeasurementUnit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Division","title":"Division","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Division"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"RequirementDate","title":"RequirementDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"RequirementDate"}}]' + Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Date","title":"Date","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Date"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Description","title":"Description","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Description"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ID","title":"ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"ProductID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UserQuantity","title":"UserQuantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UserQuantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ManufacturedDate","title":"ManufacturedDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ManufacturedDate"}}]' ContextMenu: 'listContextMenuCapacityAllocationResults' Taborder: 2 ] diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_PanelCapacityAllocationResults.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_PanelCapacityAllocationResults.def new file mode 100644 index 0000000..a916ec0 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_PanelCapacityAllocationResults.def @@ -0,0 +1,37 @@ +Quintiq file version 2.0 +Component PanelCapacityAllocationResults +{ + #keys: '[414702.0.391687385]' + BaseType: 'WebPanel' + Children: + [ + Component ButtonGenerateCapacityAllocationResults id:ButtonGenerateCapacityAllocationResults_570 + { + #keys: '[414702.0.391717497]' + BaseType: 'WebButton' + Properties: + [ + Image: 'PROCESS' + Label: '鐢熸垚鏁版嵁' + Taborder: 0 + ] + } + Component Export id:Export_398 + { + #keys: '[414702.0.392048461]' + BaseType: 'WebButton' + Properties: + [ + Image: 'EXPORT1' + Label: '瀵煎嚭' + Taborder: 1 + ] + } + ] + Properties: + [ + FixedSize: true + Orientation: 'horizontal' + Taborder: 0 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_listActionBarPageCapacityAllocationResults.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_listActionBarPageCapacityAllocationResults.def index 5384f4a..81f7ddb 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_listActionBarPageCapacityAllocationResults.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_listActionBarPageCapacityAllocationResults.def @@ -1,7 +1,7 @@ Quintiq file version 2.0 Component listActionBarPageCapacityAllocationResults { - #keys: '[414702.0.338762078]' + #keys: '[414702.0.390053836]' BaseType: 'listActionBarPage' Properties: [ diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_listContextMenuCapacityAllocationResults.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_listContextMenuCapacityAllocationResults.def index 62d4067..b7e995a 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_listContextMenuCapacityAllocationResults.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_listContextMenuCapacityAllocationResults.def @@ -1,7 +1,7 @@ Quintiq file version 2.0 Component listContextMenuCapacityAllocationResults { - #keys: '[414702.0.338762083]' + #keys: '[414702.0.390053841]' BaseType: 'listContextMenu' Properties: [ diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_ButtonGenerateCapacityAllocationResults_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_ButtonGenerateCapacityAllocationResults_OnClick.def deleted file mode 100644 index 2d97d02..0000000 --- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_ButtonGenerateCapacityAllocationResults_OnClick.def +++ /dev/null @@ -1,16 +0,0 @@ -Quintiq file version 2.0 -#parent: ButtonGenerateCapacityAllocationResults -Response OnClick () id:Response_FormCapacityAllocationResults_ButtonGenerateCapacityAllocationResults_OnClick -{ - #keys: '[414702.0.340111671]' - CanBindMultiple: false - DefinitionID: 'Responsedef_WebButton_OnClick' - QuillAction - { - Body: - [* - CapacityAllocationResults::CreateDate( GlobalOTDTable, MacroPlan ); - *] - GroupServerCalls: false - } -} diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_PanelCapacityAllocationResults_ButtonGenerateCapacityAllocationR\04339.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_PanelCapacityAllocationResults_ButtonGenerateCapacityAllocationR\04339.def" new file mode 100644 index 0000000..6a4fd16 --- /dev/null +++ "b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_PanelCapacityAllocationResults_ButtonGenerateCapacityAllocationR\04339.def" @@ -0,0 +1,16 @@ +Quintiq file version 2.0 +#parent: PanelCapacityAllocationResults/ButtonGenerateCapacityAllocationResults_570 +Response OnClick () id:Response_FormCapacityAllocationResults_ButtonGenerateCapacityAllocationResults_OnClick_39 +{ + #keys: '[414702.0.391717496]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebButton_OnClick' + QuillAction + { + Body: + [* + CapacityAllocationResults::CreateDate( GlobalOTDTable, MacroPlan, DataHolderActiveScenario.Data() ); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_PanelCapacityAllocationResults_Export_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_PanelCapacityAllocationResults_Export_OnClick.def new file mode 100644 index 0000000..4428575 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_PanelCapacityAllocationResults_Export_OnClick.def @@ -0,0 +1,16 @@ +Quintiq file version 2.0 +#parent: PanelCapacityAllocationResults/Export_398 +Response OnClick () id:Response_PanelCapacityAllocationResults_Export_OnClick +{ + #keys: '[414702.0.391791234]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebButton_OnClick' + QuillAction + { + Body: + [* + Application.Download( "浜ц兘鍒嗛厤缁撴灉.xlsx", CapacityAllocationResults::Export( GlobalOTDTable ).AsBinaryData() ); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/_ROOT_Component_FormCapacityAllocationResults.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/_ROOT_Component_FormCapacityAllocationResults.def index 432fdfa..983e0ed 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/_ROOT_Component_FormCapacityAllocationResults.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/_ROOT_Component_FormCapacityAllocationResults.def @@ -8,17 +8,7 @@ Children: [ #child: ListCapacityAllocationResults - Component ButtonGenerateCapacityAllocationResults - { - #keys: '[414702.0.340677556]' - BaseType: 'WebButton' - Properties: - [ - Image: 'PROCESS' - Label: '鐢熸垚鏁版嵁' - Taborder: 0 - ] - } + #child: PanelCapacityAllocationResults ] Properties: [ diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Component_ListCapacityAllocationResultsRuleConfiguration.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Component_ListCapacityAllocationResultsRuleConfiguration.def new file mode 100644 index 0000000..add7c86 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Component_ListCapacityAllocationResultsRuleConfiguration.def @@ -0,0 +1,59 @@ +Quintiq file version 2.0 +Component ListCapacityAllocationResultsRuleConfiguration +{ + #keys: '[414702.0.375255758]' + BaseType: 'WebList' + Children: + [ + Component DataExtractorCapacityAllocationResultsRuleConfiguration + { + #keys: '[414702.0.375255759]' + BaseType: 'WebDataExtractor' + Properties: + [ + DataType: 'GlobalOTDTable' + Source: 'GlobalOTDTable' + Taborder: 0 + Transformation: 'CapacityAllocationResultsRuleConfiguration' + ] + } + #child: listActionBarPageCapacityAllocationResultsRuleConfiguration + Component DataSetLevelCapacityAllocationResultsRuleConfiguration + { + #keys: '[414702.0.375255764]' + BaseType: 'WebDataSetLevel' + Children: + [ + #child: listContextMenuCapacityAllocationResultsRuleConfiguration + ] + Properties: + [ + Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PanelMaterialCode","title":"PanelMaterialCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PanelMaterialCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ModuleMaterialCode","title":"ModuleMaterialCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ModuleMaterialCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Division","title":"Division","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Division"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}}]' + ContextMenu: 'listContextMenuCapacityAllocationResultsRuleConfiguration' + Taborder: 2 + ] + } + ] + Properties: + [ + Taborder: 1 + ] + ResponseDefinitions: + [ + DelegatedResponseDefinition OnClick id:Responsedef_ListCapacityAllocationResultsRuleConfiguration_WebMenu_OnClick + { + #keys: '[414702.0.373845107]' + Initiator: 'WebMenu' + IsInherited: false + ResponseType: 'OnClick' + Arguments: + [ + ResponseDefinitionArgument selection + { + #keys: '[811.0.13515064]' + Binding: 'this.Selection()' + } + ] + } + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Component_PanelImportAndExport.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Component_PanelImportAndExport.def new file mode 100644 index 0000000..367ca52 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Component_PanelImportAndExport.def @@ -0,0 +1,37 @@ +Quintiq file version 2.0 +Component PanelImportAndExport +{ + #keys: '[414702.0.391512140]' + BaseType: 'WebPanel' + Children: + [ + Component Import + { + #keys: '[414702.0.390081531]' + BaseType: 'WebButton' + Properties: + [ + Image: 'IMPORT1' + Label: '瀵煎叆' + Taborder: 0 + ] + } + Component Export + { + #keys: '[414702.0.391512453]' + BaseType: 'WebButton' + Properties: + [ + Image: 'EXPORT1' + Label: '瀵煎嚭' + Taborder: 1 + ] + } + ] + Properties: + [ + FixedSize: true + Orientation: 'horizontal' + Taborder: 0 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Component_listActionBarPageCapacityAllocationResultsRuleConfiguration.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Component_listActionBarPageCapacityAllocationResultsRuleConfiguration.def new file mode 100644 index 0000000..cc72a32 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Component_listActionBarPageCapacityAllocationResultsRuleConfiguration.def @@ -0,0 +1,10 @@ +Quintiq file version 2.0 +Component listActionBarPageCapacityAllocationResultsRuleConfiguration +{ + #keys: '[414702.0.375255761]' + BaseType: 'listActionBarPage' + Properties: + [ + Taborder: 1 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Component_listContextMenuCapacityAllocationResultsRuleConfiguration.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Component_listContextMenuCapacityAllocationResultsRuleConfiguration.def new file mode 100644 index 0000000..597ad1b --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Component_listContextMenuCapacityAllocationResultsRuleConfiguration.def @@ -0,0 +1,59 @@ +Quintiq file version 2.0 +Component listContextMenuCapacityAllocationResultsRuleConfiguration +{ + #keys: '[414702.0.375255766]' + BaseType: 'listContextMenu' + Children: + [ + Component MenuNew + { + #keys: '[414702.0.373851234]' + BaseType: 'WebMenu' + Properties: + [ + Image: 'BEAR' + Taborder: 3 + Title: '鍒涘缓瑙勫垯' + ] + } + Component MenuEdit + { + #keys: '[414702.0.376312130]' + BaseType: 'WebMenu' + Properties: + [ + BindOnDoubleClick: true + Image: 'MESSAGE_EDIT' + Taborder: 4 + Title: '缂栬緫' + ] + } + Component MenuDelete + { + #keys: '[414702.0.382537902]' + BaseType: 'WebMenu' + Properties: + [ + Image: 'DELETE' + Taborder: 5 + Title: '鍒犻櫎' + ] + } + Component MenuSelectAll + { + #keys: '[414702.0.382602953]' + BaseType: 'WebMenu' + Properties: + [ + Image: 'DOCUMENT_SELECTION' + Shortcut: 'Ctrl+A' + Taborder: 6 + Title: '鍏ㄩ��' + ] + } + ] + Properties: + [ + Taborder: 0 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_DataHolderSelectCapacityAllocationResultsRuleConfiguration_OnDataCh.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_DataHolderSelectCapacityAllocationResultsRuleConfiguration_OnDataCh.def new file mode 100644 index 0000000..1c99357 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_DataHolderSelectCapacityAllocationResultsRuleConfiguration_OnDataCh.def @@ -0,0 +1,18 @@ +Quintiq file version 2.0 +#parent: DataHolderSelectCapacityAllocationResultsRuleConfiguration +Response OnDataChanged () id:Response_FormCapacityAllocationResultsRuleConfiguration_DataHolderSelectCapacityAllocationResultsRuleConfiguration_OnDataChanged +{ + #keys: '[414702.0.391379706]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebComponent_OnDataChanged' + QuillAction + { + Body: + [* + traverse ( this.Data(), Elements, e ) { + info( "闈㈡澘鐗╂枡ID锛�", e.PanelMaterialCode() ); + } + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_ListCapacityAllocationResultsRuleConfiguration_MenuDelete_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_ListCapacityAllocationResultsRuleConfiguration_MenuDelete_OnClick.def new file mode 100644 index 0000000..ecf8b8c --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_ListCapacityAllocationResultsRuleConfiguration_MenuDelete_OnClick.def @@ -0,0 +1,18 @@ +Quintiq file version 2.0 +#parent: ListCapacityAllocationResultsRuleConfiguration +Response OnClick ( + CapacityAllocationResultsRuleConfiguration selection +) id:Response_ListCapacityAllocationResultsRuleConfiguration_MenuDelete_OnClick +{ + #keys: '[414702.0.381071285]' + DefinitionID => /ListCapacityAllocationResultsRuleConfiguration/Responsedef_ListCapacityAllocationResultsRuleConfiguration_WebMenu_OnClick + Initiator: 'MenuDelete' + QuillAction + { + Body: + [* + selection.Delete(); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_ListCapacityAllocationResultsRuleConfiguration_MenuEdit_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_ListCapacityAllocationResultsRuleConfiguration_MenuEdit_OnClick.def new file mode 100644 index 0000000..01a7ffa --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_ListCapacityAllocationResultsRuleConfiguration_MenuEdit_OnClick.def @@ -0,0 +1,21 @@ +Quintiq file version 2.0 +#parent: ListCapacityAllocationResultsRuleConfiguration +Response OnClick ( + CapacityAllocationResultsRuleConfiguration selection +) id:Response_ListCapacityAllocationResultsRuleConfiguration_MenuEdit_OnClick +{ + #keys: '[414702.0.376349145]' + CanBindMultiple: false + DefinitionID => /ListCapacityAllocationResultsRuleConfiguration/Responsedef_ListCapacityAllocationResultsRuleConfiguration_WebMenu_OnClick + Initiator: 'MenuEdit' + QuillAction + { + Body: + [* + dlg := construct( DialogCreateEditCapacityAllocationResultsRuleConfiguration ); + + dlg.Edit( selection ); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_ListCapacityAllocationResultsRuleConfiguration_MenuNew_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_ListCapacityAllocationResultsRuleConfiguration_MenuNew_OnClick.def new file mode 100644 index 0000000..76e0cd1 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_ListCapacityAllocationResultsRuleConfiguration_MenuNew_OnClick.def @@ -0,0 +1,19 @@ +Quintiq file version 2.0 +#parent: ListCapacityAllocationResultsRuleConfiguration +Response OnClick () id:Response_ListCapacityAllocationResultsRuleConfiguration_MenuNew_OnClick +{ + #keys: '[414702.0.375256192]' + CanBindMultiple: false + DefinitionID => /ListCapacityAllocationResultsRuleConfiguration/Responsedef_ListCapacityAllocationResultsRuleConfiguration_WebMenu_OnClick + Initiator: 'MenuNew' + QuillAction + { + Body: + [* + dlg := construct( DialogCreateEditCapacityAllocationResultsRuleConfiguration ); + + dlg.New(); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_ListCapacityAllocationResultsRuleConfiguration_MenuSelectAll_OnClic.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_ListCapacityAllocationResultsRuleConfiguration_MenuSelectAll_OnClic.def new file mode 100644 index 0000000..720300e --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_ListCapacityAllocationResultsRuleConfiguration_MenuSelectAll_OnClic.def @@ -0,0 +1,17 @@ +Quintiq file version 2.0 +#parent: ListCapacityAllocationResultsRuleConfiguration +Response OnClick () id:Response_ListCapacityAllocationResultsRuleConfiguration_MenuSelectAll_OnClick +{ + #keys: '[414702.0.381011855]' + CanBindMultiple: false + DefinitionID => /ListCapacityAllocationResultsRuleConfiguration/Responsedef_ListCapacityAllocationResultsRuleConfiguration_WebMenu_OnClick + Initiator: 'MenuSelectAll' + QuillAction + { + Body: + [* + this.SelectAll(); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_PanelImportAndExport_Export_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_PanelImportAndExport_Export_OnClick.def new file mode 100644 index 0000000..602baba --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_PanelImportAndExport_Export_OnClick.def @@ -0,0 +1,16 @@ +Quintiq file version 2.0 +#parent: PanelImportAndExport/Export +Response OnClick () id:Response_PanelImportAndExport_Export_OnClick +{ + #keys: '[414702.0.391658465]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebButton_OnClick' + QuillAction + { + Body: + [* + Application.Download( "浜ц兘鍒嗛厤缁撴灉瑙勫垯.xlsx", CapacityAllocationResultsRuleConfiguration::Export( GlobalOTDTable ).AsBinaryData() ); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_PanelImportAndExport_Import_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_PanelImportAndExport_Import_OnClick.def new file mode 100644 index 0000000..3e90d91 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_PanelImportAndExport_Import_OnClick.def @@ -0,0 +1,29 @@ +Quintiq file version 2.0 +#parent: PanelImportAndExport/Import +Response OnClick () id:Response_PanelImportAndExport_Import_OnClick +{ + #keys: '[414702.0.391899822]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebButton_OnClick' + QuillAction + { + Body: + [* + try { + uploadJsonString := Application.GetFile(); + if ( uploadJsonString <> "" ) { + uploadJson := JSON::Parse( uploadJsonString ); + + fileName := uploadJson.Get( "name" ).GetString(); + base64String := uploadJson.Get( "data" ).GetString(); + CapacityAllocationResultsRuleConfiguration::Import( GlobalOTDTable, base64String ); + + WebMessageBox::Success( "涓婁紶鎴愬姛", true ); + } + } onerror { + WebMessageBox::Error( e.GeneralInformation(), true ); + } + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/_ROOT_Component_FormCapacityAllocationResultsRuleConfiguration.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/_ROOT_Component_FormCapacityAllocationResultsRuleConfiguration.def new file mode 100644 index 0000000..436ef69 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/_ROOT_Component_FormCapacityAllocationResultsRuleConfiguration.def @@ -0,0 +1,43 @@ +Quintiq file version 2.0 +#root +#parent: MacroPlannerWebApp +OrphanComponent FormCapacityAllocationResultsRuleConfiguration +{ + #keys: '[414702.0.373844315]' + BaseType: 'WebForm' + Children: + [ + #child: ListCapacityAllocationResultsRuleConfiguration + Component DataHolderSelectCapacityAllocationResultsRuleConfiguration + { + #keys: '[414702.0.390054479]' + BaseType: 'WebDataHolder' + Databinding: 'structured[CapacityAllocationResultsRuleConfiguration]*' + Children: + [ + Component DataExtractorSelectCapacityAllocationResultsRuleConfiguration + { + #keys: '[414702.0.391186862]' + BaseType: 'WebDataExtractor' + Properties: + [ + DataType: 'CapacityAllocationResultsRuleConfiguration' + ExtractionMode: 'Selected' + Source: 'ListCapacityAllocationResultsRuleConfiguration' + Taborder: 0 + ] + } + ] + Properties: + [ + Taborder: 2 + ] + } + #child: PanelImportAndExport + ] + Properties: + [ + Image: 'DOCUMENT_CHECKS' + Title: '浜ц兘鍒嗛厤缁撴灉鎶ヨ〃-瑙勫垯缁存姢' + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Component_ListCapacityAndSaleBudge.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Component_ListCapacityAndSaleBudge.def index 1e5e82c..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: 0 + Taborder: 2 ] } diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_ButtonExportDetail_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_ButtonExportDetail_OnClick.def new file mode 100644 index 0000000..4f195d5 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_ButtonExportDetail_OnClick.def @@ -0,0 +1,23 @@ +Quintiq file version 2.0 +#parent: ButtonExportDetail +Response OnClick () id:Response_FormCapacityAndSaleBudge_ButtonExportDetail_OnClick +{ + #keys: '[414384.0.887310502]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebButton_OnClick' + Precondition: + [* + return not isnull( MPSync ); + *] + QuillAction + { + Body: + [* + //Application.Download( "骞村害浜ч攢棰勭畻璇︽儏.xlsx", MPSync.CapacityAndSaleBudgeExport().AsBinaryData() ); + + base64 := MappingCapacityAndSaleBudge::Export( MPSync ); + Application.Download( "骞村害浜ч攢棰勭畻璇︽儏.xlsx", base64 ); + *] + GroupServerCalls: false + } +} 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 2b3f638..9458d5d 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_OnCreated.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_OnCreated.def @@ -12,6 +12,7 @@ [* MPSync::TestData( MPSync, MacroPlan ); GlobalOTDTable.InitTestData(); + 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 168d51b..c2687d8 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/_ROOT_Component_FormCapacityAndSaleBudge.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/_ROOT_Component_FormCapacityAndSaleBudge.def @@ -8,6 +8,29 @@ Children: [ #child: ListCapacityAndSaleBudge + Component ButtonExportDetail + { + #keys: '[414384.0.887310503]' + BaseType: 'WebButton' + Properties: + [ + Image: 'EXPORT1' + Label: '瀵煎嚭' + 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 ccb0ea2..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(), - CheckboxIsCapacity.Checked(), - 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_FormCapacityAndSaleBudgeChart/_ROOT_Component_FormCapacityAndSaleBudgeChart.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/_ROOT_Component_FormCapacityAndSaleBudgeChart.def index 3684ed8..237e0c6 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/_ROOT_Component_FormCapacityAndSaleBudgeChart.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/_ROOT_Component_FormCapacityAndSaleBudgeChart.def @@ -53,16 +53,6 @@ Visible: false ] } - Component CheckboxIsCapacity - { - #keys: '[414384.0.857770765]' - BaseType: 'WebCheckbox' - Properties: - [ - Label: '浜ц兘' - Taborder: 5 - ] - } Component DropDownTimeGroup { #keys: '[414384.0.857771238]' @@ -87,6 +77,18 @@ Taborder: 0 ] } + Component DropDownSaleOrCapacity + { + #keys: '[414384.0.886240556]' + BaseType: 'WebDropDownStringList' + Properties: + [ + InitialValue: '閿�鍞' + Label: '閿�鍞/浜ц兘' + Strings: '閿�鍞;浜ц兘' + Taborder: 5 + ] + } ] Properties: [ diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Component_MatrixEditorCapacityAndSaleBudgeCompare.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Component_MatrixEditorCapacityAndSaleBudgeCompare.def index db394b0..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' ] @@ -93,6 +93,6 @@ ContextMenu: 'matrixeditorContextMenuCapacityAndSaleBudgeCompare' Editable: false Rows: 'MatrixEditorRowsCapacityAndSaleBudgeCompare' - Taborder: 1 + Taborder: 2 ] } 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 new file mode 100644 index 0000000..a01173d --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Response_ButtonExportCompare_OnClick.def @@ -0,0 +1,21 @@ +Quintiq file version 2.0 +#parent: ButtonExportCompare +Response OnClick () id:Response_FormCapacityAndSaleBudgeCompare_ButtonExportCompare_OnClick +{ + #keys: '[414384.0.881345276]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebButton_OnClick' + Precondition: + [* + return not isnull( GlobalOTDTable ); + *] + QuillAction + { + Body: + [* + tableBinaryData := GlobalOTDTable.CapacityAndSaleBudgeCompareExport().AsBinaryData(); + Application.Download( "骞村害浜ч攢棰勭畻瀵规瘮.xlsx", tableBinaryData ); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/_ROOT_Component_FormCapacityAndSaleBudgeCompare.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/_ROOT_Component_FormCapacityAndSaleBudgeCompare.def index 9602b8e..d44643f 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/_ROOT_Component_FormCapacityAndSaleBudgeCompare.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/_ROOT_Component_FormCapacityAndSaleBudgeCompare.def @@ -18,6 +18,17 @@ Taborder: 0 ] } + Component ButtonExportCompare + { + #keys: '[414384.0.881345277]' + BaseType: 'WebButton' + Properties: + [ + Image: 'EXPORT1' + Label: '瀵煎嚭' + Taborder: 1 + ] + } ] Properties: [ 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 new file mode 100644 index 0000000..54be6e2 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_ListSalesDemands.def @@ -0,0 +1,18 @@ +Quintiq file version 2.0 +Component ListSalesDemands #extension +{ + Children: + [ + 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_PanelAllSalesDemands.def b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_PanelAllSalesDemands.def new file mode 100644 index 0000000..b6550d1 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_PanelAllSalesDemands.def @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +Component PanelAllSalesDemands #extension +{ + Children: + [ + #child: ListSalesDemands + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_PanelSalesDemands.def b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_PanelSalesDemands.def new file mode 100644 index 0000000..14acdde --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_PanelSalesDemands.def @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +Component PanelSalesDemands #extension +{ + Children: + [ + #child: PanelAllSalesDemands + ] +} 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_FormCustomerOrders/_ROOT_Component_FormCustomerOrders.def b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/_ROOT_Component_FormCustomerOrders.def new file mode 100644 index 0000000..040c94f --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/_ROOT_Component_FormCustomerOrders.def @@ -0,0 +1,10 @@ +Quintiq file version 2.0 +#root +#parent: LibMacroPlannerWebUI +OrphanComponent FormCustomerOrders #extension +{ + Children: + [ + #child: PanelSalesDemands + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders226/Component_ListSDIP.def b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders226/Component_ListSDIP.def new file mode 100644 index 0000000..b0cbc0a --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders226/Component_ListSDIP.def @@ -0,0 +1,20 @@ +Quintiq file version 2.0 +Component ListSDIP +{ + #keys: '[134266.1.1970512356]' + BaseType: 'ListSDIP' + IsDerived: true + Children: + [ + Component DataSetLevelSDIP + { + #keys: '[134266.1.1970512358]' + BaseType: 'DataSetLevelSDIP' + IsDerived: true + Properties: + [ + Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeAllConstraint","columnid":"All constraints","title":"All constraints","subtotals":"","tooltip":"","width":1,"display":"shown"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ImgIsRestricted","title":"ImgIsRestricted","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ImgIsRestricted"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesSegmentName","title":"Sales segment","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"SalesSegmentName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"Product","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"Stocking point","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StartDate","title":"Start","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"StartDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"EndDate","title":"End","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"EndDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MasterSalesDemand.UnitOfMeasureName","title":"UoM","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MasterSalesDemand.UnitOfMeasureName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"QuantityInSalesDemandUOM","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"QuantityInSalesDemandUOM"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"FulfilledQuantityInSalesDemandUOM","title":"Fulfilled","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"FulfilledQuantityInSalesDemandUOM"}},{"attribute":{"classtype":"WebApiDefinitionAttributeChart","columnid":"Fulfillment","title":"Fulfillment","subtotals":"","tooltip":"","width":-1,"display":"shown","type":"stackbar","relative":true,"attributes":[{"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)"}},{"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)"}}]}}]' + ] + } + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders226/Component_ListSalesDemands.def b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders226/Component_ListSalesDemands.def new file mode 100644 index 0000000..0abeb62 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders226/Component_ListSalesDemands.def @@ -0,0 +1,30 @@ +Quintiq file version 2.0 +Component ListSalesDemands +{ + #keys: '[134266.1.1970507083]' + BaseType: 'ListSalesDemands' + IsDerived: true + Children: + [ + Component DataExtractorSalesDemands + { + #keys: '[134266.1.1970507084]' + BaseType: 'DataExtractorSalesDemands' + IsDerived: true + Properties: + [ + Transformation: 'Elements.astype(CustomerOrder)' + ] + } + Component DataSetLevelSalesDemands + { + #keys: '[134266.1.1970507085]' + BaseType: 'DataSetLevelSalesDemands' + IsDerived: true + 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"}}]' + ] + } + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders226/Component_PanelAllSalesDemands.def b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders226/Component_PanelAllSalesDemands.def new file mode 100644 index 0000000..60db013 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders226/Component_PanelAllSalesDemands.def @@ -0,0 +1,11 @@ +Quintiq file version 2.0 +Component PanelAllSalesDemands +{ + #keys: '[134266.1.1970497658]' + BaseType: 'PanelAllSalesDemands' + IsDerived: true + Children: + [ + #child: ListSalesDemands + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders226/Component_PanelSDIP.def b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders226/Component_PanelSDIP.def new file mode 100644 index 0000000..6ddf675 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders226/Component_PanelSDIP.def @@ -0,0 +1,15 @@ +Quintiq file version 2.0 +Component PanelSDIP +{ + #keys: '[134266.1.1970511019]' + BaseType: 'PanelSDIP' + IsDerived: true + Children: + [ + #child: ListSDIP + ] + Properties: + [ + Title: 'Customer orders at planning level' + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders226/Component_PanelSalesDemands.def b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders226/Component_PanelSalesDemands.def new file mode 100644 index 0000000..e90068d --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders226/Component_PanelSalesDemands.def @@ -0,0 +1,12 @@ +Quintiq file version 2.0 +Component PanelSalesDemands +{ + #keys: '[134266.1.1970506995]' + BaseType: 'PanelSalesDemands' + IsDerived: true + Children: + [ + #child: PanelSDIP + #child: PanelAllSalesDemands + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders226/Response_ListSalesDemands_MenuCopy_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders226/Response_ListSalesDemands_MenuCopy_OnClick.def new file mode 100644 index 0000000..e6db580 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders226/Response_ListSalesDemands_MenuCopy_OnClick.def @@ -0,0 +1,19 @@ +Quintiq file version 2.0 +#parent: ListSalesDemands +Response OnClick () inherited id:Response_ListSalesDemands_MenuCopy_OnClick +{ + #keys: '[136682.1.799924425]' + BaseType: 'Response_ListSalesDemands_MenuCopy_OnClick' + DefinitionID: 'Responsedef_ListSalesDemands_WebMenu_OnClick' + Initiator: 'MenuCopy' + QuillAction + { + Body: + [* + // Copy sales demand + data := selectset( selection, Elements.astype( CustomerOrder ), co, true, true ); + CustomerOrder::Copy( data ); + *] + GroupServerCalls: false + } +} diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders226/Response_ListSalesDemands_MenuCreate_OnClick\043715.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders226/Response_ListSalesDemands_MenuCreate_OnClick\043715.def" new file mode 100644 index 0000000..85a98aa --- /dev/null +++ "b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders226/Response_ListSalesDemands_MenuCreate_OnClick\043715.def" @@ -0,0 +1,19 @@ +Quintiq file version 2.0 +#parent: ListSalesDemands +Response OnClick () inherited id:Response_ListSalesDemands_MenuCreate_OnClick_715 +{ + #keys: '[136682.1.803262814]' + BaseType: 'Response_ListSalesDemands_MenuCreate_OnClick_715' + DefinitionID: 'Responsedef_ListSalesDemands_WebMenu_OnClick' + Initiator: 'MenuCreate' + QuillAction + { + Body: + [* + //Create new sales demand + dlg := construct( DialogCreateEditCustomerOrder ); + dlg.New(); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders226/Response_ListSalesDemands_MenuEdit_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders226/Response_ListSalesDemands_MenuEdit_OnClick.def new file mode 100644 index 0000000..edf9a16 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders226/Response_ListSalesDemands_MenuEdit_OnClick.def @@ -0,0 +1,20 @@ +Quintiq file version 2.0 +#parent: ListSalesDemands +Response OnClick () inherited id:Response_ListSalesDemands_MenuEdit_OnClick +{ + #keys: '[136682.1.803135245]' + BaseType: 'Response_ListSalesDemands_MenuEdit_OnClick' + DefinitionID: 'Responsedef_ListSalesDemands_WebMenu_OnClick' + Initiator: 'MenuEdit' + QuillAction + { + Body: + [* + //Edit sales demand + dlg := construct( DialogCreateEditCustomerOrder ); + + data := selectset( selection, Elements.astype( CustomerOrder ), f, true, true ); + dlg.Edit( data ); + *] + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders226/_ROOT_Component_FormCustomerOrders226.def b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders226/_ROOT_Component_FormCustomerOrders226.def new file mode 100644 index 0000000..4e72e24 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders226/_ROOT_Component_FormCustomerOrders226.def @@ -0,0 +1,18 @@ +Quintiq file version 2.0 +#root +#parent: MacroPlannerWebApp +OrphanComponent FormCustomerOrders226 +{ + #keys: '[414724.0.179160850]' + Accessibility: 'Extensible' + BaseType: 'FormSalesDemands' + Children: + [ + #child: PanelSalesDemands + ] + Properties: + [ + Image: 'SALES_QUOTATION' + Title: 'Customer orders' + ] +} 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/Response_PanelFillingCapacityOrder_ButtonDeduct_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Response_PanelFillingCapacityOrder_ButtonDeduct_OnClick.def new file mode 100644 index 0000000..12efac1 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Response_PanelFillingCapacityOrder_ButtonDeduct_OnClick.def @@ -0,0 +1,24 @@ +Quintiq file version 2.0 +#parent: PanelFillingCapacityOrder/ButtonDeduct +Response OnClick () id:Response_PanelFillingCapacityOrder_ButtonDeduct_OnClick +{ + #keys: '[414502.0.395021805]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebButton_OnClick' + Precondition: + [* + return not isnull( MacroPlan ); + *] + QuillAction + { + Body: + [* + //H_FunctionClass::SM_OrderHedgingEx( MacroPlan, ApplicationMacroPlanner.GetUserName() ); + + FillingCapacityOrder::OrderOffset( MacroPlan ); + + WebMessageBox::Success( "鍐插噺鎴愬姛锛侊紒锛�", true ); + *] + GroupServerCalls: false + } +} 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_FormHedgingOfLog/Component_ListHedgingOfLog.def b/_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/Component_ListHedgingOfLog.def index 6795199..c7d0922 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/Component_ListHedgingOfLog.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/Component_ListHedgingOfLog.def @@ -28,7 +28,7 @@ ] Properties: [ - Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Serial","title":"Serial","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Serial"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastQty","title":"ForecastQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ReverseQty","title":"ReverseQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ReverseQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"AuthorizeQty","title":"AuthorizeQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"AuthorizeQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OperateQty","title":"OperateQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OperateQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OperateType","title":"OperateType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OperateType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Operator","title":"Operator","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Operator"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OperateTime","title":"OperateTime","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OperateTime"}}]' + Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Serial","title":"搴忓彿","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Serial"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SKU","title":"SKU缂栧彿","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SKU"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastQty","title":"棰勬祴鏁伴噺","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ReverseQty","title":"鍙嶇鏁伴噺","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ReverseQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"AuthorizeQty","title":"鎺堟潈鏁伴噺","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"AuthorizeQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OperateQty","title":"鍔ㄤ綔鏁伴噺","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OperateQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OperateType","title":"鍔ㄤ綔绫诲瀷","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OperateType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Operator","title":"鎿嶄綔浜�","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Operator"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OperateTime","title":"鎿嶄綔鏃堕棿","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OperateTime"}}]' ContextMenu: 'listContextMenuHedgingOfLog' Taborder: 2 ] @@ -36,6 +36,6 @@ ] Properties: [ - Taborder: 3 + Taborder: 1 ] } diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/Component_PanelHedgingOfLog.def b/_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/Component_PanelHedgingOfLog.def index ed7d295..b86fdcd 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/Component_PanelHedgingOfLog.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/Component_PanelHedgingOfLog.def @@ -27,15 +27,13 @@ ] Properties: [ - Taborder: 2 + Taborder: 0 ] } #child: ListHedgingOfLog - #child: PanelHedgingOfLog761 - #child: PanelHedgingOfLog593 ] Properties: [ - Taborder: 0 + Taborder: 2 ] } diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/Component_PanelHedgingOfLog221.def b/_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/Component_PanelHedgingOfLog221.def new file mode 100644 index 0000000..655b205 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/Component_PanelHedgingOfLog221.def @@ -0,0 +1,26 @@ +Quintiq file version 2.0 +Component PanelHedgingOfLog221 +{ + #keys: '[414724.0.149787927]' + BaseType: 'WebPanel' + Children: + [ + Component LabelHedgingOfLog id:LabelHedgingOfLog_298 + { + #keys: '[414724.0.149788086]' + BaseType: 'WebLabel' + Properties: + [ + FixedSize: false + Taborder: 0 + Text: '鏃ュ織椤甸潰' + ] + } + ] + Properties: + [ + Border: true + FixedSize: true + Taborder: 0 + ] +} diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/Component_PanelHedgingOfLog593\04393.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/Component_PanelHedgingOfLog593\04393.def" new file mode 100644 index 0000000..e38df06 --- /dev/null +++ "b/_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/Component_PanelHedgingOfLog593\04393.def" @@ -0,0 +1,38 @@ +Quintiq file version 2.0 +Component PanelHedgingOfLog593 id:PanelHedgingOfLog593_93 +{ + #keys: '[414724.0.152989129]' + BaseType: 'WebPanel' + Children: + [ + Component txt_QueryContent_FHO + { + #keys: '[414724.0.152989222]' + BaseType: 'WebEditField' + Properties: + [ + PlaceHolder: '妯$硦鎼滅储' + Taborder: 0 + ] + } + Component btn_Query_FHO + { + #keys: '[414724.0.152920619]' + BaseType: 'WebButton' + Properties: + [ + ButtonSize: 'compact' + Image: 'VIEW' + Label: '鏌ヨ' + Taborder: 1 + ] + } + ] + Properties: + [ + Alignment: 'trailing' + FixedSize: true + Orientation: 'horizontal' + Taborder: 1 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/Component_PanelHedgingOfLog593.def b/_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/Component_PanelHedgingOfLog593.def deleted file mode 100644 index 58cf03b..0000000 --- a/_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/Component_PanelHedgingOfLog593.def +++ /dev/null @@ -1,24 +0,0 @@ -Quintiq file version 2.0 -Component PanelHedgingOfLog593 -{ - #keys: '[414724.0.32210907]' - BaseType: 'WebPanel' - Children: - [ - Component lb_SKUCode - { - #keys: '[414724.0.32210935]' - BaseType: 'WebLabel' - Properties: - [ - Taborder: 0 - Text: 'SKU缂栫爜锛欰AAAAAAAA' - ] - } - ] - Properties: - [ - FixedSize: true - Taborder: 1 - ] -} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/Component_PanelHedgingOfLog761.def b/_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/Component_PanelHedgingOfLog761.def deleted file mode 100644 index dded053..0000000 --- a/_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/Component_PanelHedgingOfLog761.def +++ /dev/null @@ -1,28 +0,0 @@ -Quintiq file version 2.0 -Component PanelHedgingOfLog761 -{ - #keys: '[414724.0.26973497]' - BaseType: 'WebPanel' - Children: - [ - Component LabelHedgingOfLog - { - #keys: '[414724.0.26973515]' - BaseType: 'WebLabel' - Properties: - [ - FixedSize: false - Taborder: 0 - Text: '鏃ュ織椤甸潰' - ] - } - ] - Properties: - [ - FixedSize: true - Orientation: 'horizontal' - Padding: 'true' - Style: 'content' - Taborder: 0 - ] -} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/Response_PanelHedgingOfLog593_93_btn_Query_FHO_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/Response_PanelHedgingOfLog593_93_btn_Query_FHO_OnClick.def new file mode 100644 index 0000000..4bc548f --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/Response_PanelHedgingOfLog593_93_btn_Query_FHO_OnClick.def @@ -0,0 +1,19 @@ +Quintiq file version 2.0 +#parent: PanelHedgingOfLog593_93/btn_Query_FHO +Response OnClick () id:Response_PanelHedgingOfLog593_93_btn_Query_FHO_OnClick +{ + #keys: '[414724.0.152920798]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebButton_OnClick' + QuillAction + { + Body: + [* + DataExtractorHedgingOfLog.FixedFilter( "object.SKU().LikeUserLocale( " + txt_QueryContent_FHO.Text().AsQUILL() + " )" + + " or " + "object.OperateType().LikeUserLocale( " + txt_QueryContent_FHO.Text().AsQUILL() + " )" + + " or " + "object.Operator().LikeUserLocale( " + txt_QueryContent_FHO.Text().AsQUILL() + " )" + ); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/_ROOT_Component_FormHedgingOfLog.def b/_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/_ROOT_Component_FormHedgingOfLog.def index 1e88a95..f7142b9 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/_ROOT_Component_FormHedgingOfLog.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/_ROOT_Component_FormHedgingOfLog.def @@ -8,16 +8,8 @@ Children: [ #child: PanelHedgingOfLog - Component lb_ForecastQty - { - #keys: '[414724.0.31031550]' - BaseType: 'WebLabel' - Properties: - [ - Taborder: 1 - Text: '鍘熸潗鏂欑殑棰勬祴鏁伴噺锛�0' - ] - } + #child: PanelHedgingOfLog221 + #child: PanelHedgingOfLog593_93 ] Properties: [ 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..afeef73 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_ListInterfaceTest_MenuCreateShowData_OnClick.def @@ -0,0 +1,33 @@ +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' + Precondition: + [* + flag := selection.BrokerName() = "GlobalOTDTable_CustomOrder" + + if ( not flag ) { + feedback := "鏆備笉鏀寔锛侊紒锛�"; + } + + return flag; + *] + 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..4596f3c --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_PanelInterfaceTest_ButtonSynchronizeDataToMacroPlan_OnClick.def @@ -0,0 +1,26 @@ +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, + ApplicationMacroPlanner.GetUserName(), + CheckboxUnitOfMeasure_MP.Checked(), + CheckboxCustomOrder.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_FormMaterialPurchase/Component_ListMaterialPurchase.def b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialPurchase/Component_ListMaterialPurchase.def index a9fc454..2d1eebd 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormMaterialPurchase/Component_ListMaterialPurchase.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialPurchase/Component_ListMaterialPurchase.def @@ -12,6 +12,7 @@ Properties: [ DataType: 'structured[H_MaterialPurchase]' + FixedFilter: 'object.Status()="鏈彂甯�"' Source: 'DataHolderMaterialPurchase' Taborder: 0 Transformation: 'Elements' @@ -28,7 +29,7 @@ ] Properties: [ - Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SKU","title":"SKU","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SKU"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductSubclassType","title":"ProductSubclassType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductSubclassType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Qty","title":"Qty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Qty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Unit","title":"Unit","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Unit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrgCode","title":"OrgCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrgCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"WarehouseCode","title":"WarehouseCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"WarehouseCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DemandTime","title":"DemandTime","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"DemandTime"}}]' + Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SKU","title":"SKU缂栫爜","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SKU"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductSubclassType","title":"绫诲瀷","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductSubclassType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Qty","title":"鏁伴噺","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Qty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Unit","title":"鍗曚綅","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Unit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrgCode","title":"缁勭粐浠g爜","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrgCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"WarehouseCode","title":"浠撳簱浠g爜","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"WarehouseCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DemandTime","title":"闇�姹傛椂闂�","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"DemandTime"}}]' ContextMenu: 'listContextMenuMaterialPurchase' Taborder: 2 ] diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormMaterialPurchase/Component_PanelMaterialPurchase.def b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialPurchase/Component_PanelMaterialPurchase.def index 228bfb8..5e51ffa 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormMaterialPurchase/Component_PanelMaterialPurchase.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialPurchase/Component_PanelMaterialPurchase.def @@ -11,15 +11,17 @@ BaseType: 'WebLabel' Properties: [ - NumberOfColumns: 50 + NumberOfColumns: 30 Taborder: 0 Text: '寮�濮嬫椂闂达細2023-03-26 12:24:46' + Visible: false ] } #child: PanelMaterialPurchase613 ] Properties: [ + Alignment: 'trailing' FixedSize: true Orientation: 'horizontal' Taborder: 1 diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormMaterialPurchase/Component_PanelMaterialPurchase354.def b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialPurchase/Component_PanelMaterialPurchase354.def new file mode 100644 index 0000000..043567d --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialPurchase/Component_PanelMaterialPurchase354.def @@ -0,0 +1,26 @@ +Quintiq file version 2.0 +Component PanelMaterialPurchase354 +{ + #keys: '[414724.0.149784759]' + BaseType: 'WebPanel' + Children: + [ + Component lb_Title208 + { + #keys: '[414724.0.149784840]' + BaseType: 'WebLabel' + Properties: + [ + Description: '鎺堟潈/鍙嶇鐗╂枡閲囪喘鏄庣粏閲婃斁' + Taborder: 0 + Text: '鎺堟潈/鍙嶇鐗╂枡閲囪喘鏄庣粏閲婃斁' + ] + } + ] + Properties: + [ + Border: true + FixedSize: true + Taborder: 0 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormMaterialPurchase/_ROOT_Component_FormMaterialPurchase.def b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialPurchase/_ROOT_Component_FormMaterialPurchase.def index 88640ec..a2af624 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormMaterialPurchase/_ROOT_Component_FormMaterialPurchase.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialPurchase/_ROOT_Component_FormMaterialPurchase.def @@ -7,17 +7,6 @@ BaseType: 'WebForm' Children: [ - Component lb_Title - { - #keys: '[414724.0.32644779]' - BaseType: 'WebLabel' - Properties: - [ - Description: '鎺堟潈/鍙嶇鐗╂枡閲囪喘鏄庣粏閲婃斁' - Taborder: 0 - Text: '鎺堟潈/鍙嶇鐗╂枡閲囪喘鏄庣粏閲婃斁' - ] - } #child: PanelMaterialPurchase Component DataHolderMaterialPurchase { @@ -45,6 +34,7 @@ ] } #child: ListMaterialPurchase + #child: PanelMaterialPurchase354 ] Properties: [ diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_ListOrderLock\043844.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_ListOrderLock\043844.def" index 899294d..4aa7065 100644 --- "a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_ListOrderLock\043844.def" +++ "b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_ListOrderLock\043844.def" @@ -29,7 +29,7 @@ ] Properties: [ - Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderID","title":"OrderID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"ProductID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesSegmentName","title":"SalesSegmentName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SalesSegmentName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerName","title":"CustomerName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasureName","title":"UnitOfMeasureName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasureName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Price","title":"Price","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Price"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"EndDate","title":"EndDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"EndDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsLocked","title":"IsLocked","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsLocked"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"First.AsPlanningBaseSalesDemandInPeriod.End","title":"End","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"First.AsPlanningBaseSalesDemandInPeriod.End"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"LastModify","title":"LastModify","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"LastModify"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"LastModifyTime","title":"LastModifyTime","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"LastModifyTime"}}]' + Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderID","title":"OrderID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"ProductID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesSegmentName","title":"SalesSegmentName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SalesSegmentName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerName","title":"CustomerName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasureName","title":"UnitOfMeasureName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasureName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Price","title":"Price","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Price"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StartDate","title":"StartDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StartDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsLocked","title":"IsLocked","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsLocked"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"First.AsPlanningBaseSalesDemandInPeriod.End","title":"End","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"First.AsPlanningBaseSalesDemandInPeriod.End"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"LastModify","title":"LastModify","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"LastModify"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"LastModifyTime","title":"LastModifyTime","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"LastModifyTime"}}]' ContextMenu: 'listContextMenuOrderLock' Taborder: 2 ] diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLockHeader\043545.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLockHeader\043545.def" index 4ff0600..26dee9c 100644 --- "a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLockHeader\043545.def" +++ "b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLockHeader\043545.def" @@ -87,7 +87,7 @@ ButtonSize: 'compact' Description: '璁㈠崟閿佸畾' Label: '閿佸畾' - Taborder: 7 + Taborder: 8 ] } Component ButtonOrderLockHeaderUnlock @@ -99,7 +99,7 @@ ButtonSize: 'compact' Description: '璁㈠崟瑙i攣' Label: '瑙i攣' - Taborder: 8 + Taborder: 9 ] } Component ButtonOrderLockHeaderClear @@ -114,6 +114,18 @@ Taborder: 6 ] } + Component ButtonOrderLockHeaderFresh + { + #keys: '[412960.0.259721852]' + BaseType: 'WebButton' + Properties: + [ + ButtonSize: 'compact' + Description: '浠庢暟鎹簮鍒锋柊璁㈠崟鏁版嵁' + Label: '閲嶆柊鑾峰彇璁㈠崟' + Taborder: 7 + ] + } ] Properties: [ diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_ButtonOrderLockHeaderFresh_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_ButtonOrderLockHeaderFresh_OnClick.def new file mode 100644 index 0000000..c4faffb --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_ButtonOrderLockHeaderFresh_OnClick.def @@ -0,0 +1,20 @@ +Quintiq file version 2.0 +#parent: PanelOrderLockHeader_545/ButtonOrderLockHeaderFresh +Response OnClick () id:Response_PanelOrderLockHeader_545_ButtonOrderLockHeaderFresh_OnClick +{ + #keys: '[412960.0.259721886]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebButton_OnClick' + GroupServerCalls: true + QuillAction + { + Body: + [* + macroplan := MacroPlan; + global := GlobalOTDTable; + businesstypes := DataHolderOrderLockGlobal.Data().BusinessType().Tokenize( ',' ); + organcodelist := selectvalues( global, BusinessType.OrganCode, organ, businesstypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() ); + CustomerOrder::DoSync( macroplan, businesstypes, global, organcodelist ); + *] + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderCustomerOrder_O.def b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderCustomerOrder_O.def index 5fa0f71..bef1aa1 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderCustomerOrder_O.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderCustomerOrder_O.def @@ -19,11 +19,11 @@ newfilter := ""; findcount := 0; traverse( existfilterlist, Elements, filter ){ - if( filter.FindString( "EndDate()", 0 ) >= 0 ){ + if( filter.FindString( "StartDate()", 0 ) >= 0 ){ if( newfilter = "" ){ - newfilter := "( object.EndDate() = " + this.Date().AsQUILL() + " )"; + newfilter := "( object.StartDate() = " + this.Date().AsQUILL() + " )"; }else{ - newfilter := newfilter + " and " + "( object.EndDate() = " + this.Date().AsQUILL() + " )"; + newfilter := newfilter + " and " + "( object.StartDate() = " + this.Date().AsQUILL() + " )"; } findcount := 1; }else{ @@ -37,9 +37,9 @@ if( findcount = 0 ){ if( newfilter = "" ){ - newfilter := "( object.EndDate() = " + this.Date().AsQUILL() + " )"; + newfilter := "( object.StartDate() = " + this.Date().AsQUILL() + " )"; }else{ - newfilter := newfilter + " and " + "( object.EndDate() = " + this.Date().AsQUILL() + " )"; + newfilter := newfilter + " and " + "( object.StartDate() = " + this.Date().AsQUILL() + " )"; } } diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderPlanDeliver_OnC.def b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderPlanDeliver_OnC.def index a5fda9c..4680617 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderPlanDeliver_OnC.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderPlanDeliver_OnC.def @@ -19,7 +19,7 @@ newfilter := ""; findcount := 0; traverse( existfilterlist, Elements, filter ){ - if( filter.FindString( "End()", 0 ) >= 0 and filter.FindString( "EndDate()", 0 ) < 0 ){ + if( filter.FindString( "End()", 0 ) >= 0 ){ if( newfilter = "" ){ newfilter := "( object.First().AsPlanningBaseSalesDemandInPeriod().End().Date() = " + this.Date().AsQUILL() + " )"; }else{ diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTianHua/_ROOT_Component_FormPanelMaterialTianHua.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTianHua/_ROOT_Component_FormPanelMaterialTianHua.def index 31b93b5..08db4f3 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTianHua/_ROOT_Component_FormPanelMaterialTianHua.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTianHua/_ROOT_Component_FormPanelMaterialTianHua.def @@ -32,8 +32,8 @@ ] Properties: [ - Description: '澶╄姳' + Description: '澶╁崕' Image: 'CANDLE' - Title: '澶╄姳' + Title: '澶╁崕' ] } diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_listContextMenuPriorityFactor.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_listContextMenuPriorityFactor.def index c6dd966..7d29277 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_listContextMenuPriorityFactor.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_listContextMenuPriorityFactor.def @@ -5,26 +5,15 @@ BaseType: 'listContextMenu' Children: [ - Component MenuInitData + Component MenuInit { - #keys: '[414382.0.482890505]' + #keys: '[414382.0.600301960]' BaseType: 'WebMenu' Properties: [ - Image: 'GEAR' + Image: 'GEAR_NEW' Taborder: 3 - Title: 'Init Data' - ] - } - Component MenuEdit - { - #keys: '[414382.0.485622263]' - BaseType: 'WebMenu' - Properties: - [ - Image: 'GEAR_EDIT' - Taborder: 4 - Title: '缂栬緫' + Title: '鍒濆鍖�' ] } ] 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..e005ec6 --- /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..267db8a 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnCreated.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnCreated.def @@ -2,15 +2,15 @@ #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); + //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..cbab0ed 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnSelectionChanged.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnSelectionChanged.def @@ -9,8 +9,8 @@ { Body: [* - list := PriorityFactor::GetDataByBusinessType( MacroPlan, DropDownStringListBusinessType.Text()); - DataHolderPriorityFactorSelect.Data(&list); + //list := PriorityFactor::GetDataByBusinessType( MacroPlan, DropDownStringListBusinessType.Text()); + //DataHolderPriorityFactorSelect.Data(&list); *] GroupServerCalls: false } diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuEdit_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuEdit_OnClick.def deleted file mode 100644 index c054fc1..0000000 --- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuEdit_OnClick.def +++ /dev/null @@ -1,20 +0,0 @@ -Quintiq file version 2.0 -#parent: ListPriorityFactor -Response OnClick ( - PriorityFactor selection -) id:Response_ListPriorityFactor_MenuEdit_OnClick -{ - #keys: '[414382.0.485894605]' - CanBindMultiple: false - DefinitionID => /ListPriorityFactor/Responsedef_ListPriorityFactor_WebMenu_OnClick - Initiator: 'MenuEdit' - QuillAction - { - Body: - [* - dlg := construct( DialogEditPriorityFactor ); - dlg.Edit( selection); - *] - 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_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..7c5dda8 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/_ROOT_Component_FormPriorityFactor.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/_ROOT_Component_FormPriorityFactor.def @@ -12,6 +12,21 @@ #keys: '[414382.0.453562359]' BaseType: 'WebDataHolder' Databinding: 'structured[PriorityFactor]*' + Children: + [ + Component DataExtractorPriorityFactorSelect + { + #keys: '[414382.0.608512605]' + BaseType: 'WebDataExtractor' + Properties: + [ + DataType: 'MacroPlan' + Source: 'MacroPlan' + Taborder: 0 + Transformation: 'PriorityFactor' + ] + } + ] Properties: [ Taborder: 1 @@ -25,6 +40,7 @@ [ Label: '浜嬩笟閮�:' Taborder: 0 + Visible: false ] } #child: ListPriorityFactor @@ -38,5 +54,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/Component_listContextMenuPriorityFactorGrading.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Component_listContextMenuPriorityFactorGrading.def index 39fe40c..33b6aa3 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Component_listContextMenuPriorityFactorGrading.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Component_listContextMenuPriorityFactorGrading.def @@ -3,20 +3,6 @@ { #keys: '[414382.0.479530873]' BaseType: 'listContextMenu' - Children: - [ - Component MenuEdit - { - #keys: '[414382.0.478491125]' - BaseType: 'WebMenu' - Properties: - [ - Image: 'GEAR_EDIT' - Taborder: 3 - Title: '缂栬緫' - ] - } - ] Properties: [ Taborder: 0 diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Response_ListPriorityFactorGrading_MenuEdit_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Response_ListPriorityFactorGrading_MenuEdit_OnClick.def deleted file mode 100644 index b9822f6..0000000 --- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Response_ListPriorityFactorGrading_MenuEdit_OnClick.def +++ /dev/null @@ -1,20 +0,0 @@ -Quintiq file version 2.0 -#parent: ListPriorityFactorGrading -Response OnClick ( - PriorityFactorDetails selction -) id:Response_ListPriorityFactorGrading_MenuEdit_OnClick -{ - #keys: '[414382.0.479531766]' - CanBindMultiple: false - DefinitionID => /ListPriorityFactorGrading/Responsedef_ListPriorityFactorGrading_WebMenu_OnClick - Initiator: 'MenuEdit' - QuillAction - { - Body: - [* - dlg := construct( DialogEditPriorityFactorDetails); - dlg.Edit( selction); - *] - GroupServerCalls: false - } -} 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_PanelPriorityPolicyCoefficient_902_ButtonCommit_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyCoefficient_902_ButtonCommit_OnClick.def index d645e29..ed5c423 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyCoefficient_902_ButtonCommit_OnClick.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyCoefficient_902_ButtonCommit_OnClick.def @@ -5,6 +5,13 @@ #keys: '[414382.0.506250033]' CanBindMultiple: false DefinitionID: 'Responsedef_WebButton_OnClick' + Precondition: + [* + // 褰撳墠鏄惁鏈夐�変腑鐨勪紭鍏堢骇绛栫暐 + feedback := "璇峰厛閫夋嫨涓�鏉′紭鍏堢骇绛栫暐鍚庡啀杩涜缂栬緫鍏紡"; + check := PanelPriorityPolicyOperationName.Text() = ""; + return not check; + *] QuillAction { Body: 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..466bd70 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,21 @@ #keys: '[414382.0.502145449]' CanBindMultiple: false DefinitionID: 'Responsedef_WebButton_OnClick' + Precondition: + [* + // 褰撳墠鏄惁鏈夐�変腑鐨勪紭鍏堢骇绛栫暐 + feedback := "璇峰厛閫夋嫨涓�鏉′紭鍏堢骇绛栫暐鍚庡啀杩涜缂栬緫鍏紡"; + check := PanelPriorityPolicyOperationName.Text() = ""; + + if( not check) + { + // 鍒ゆ柇璇ヤ紭鍏堢骇鍥犲瓙鏄惁宸茬粡琚�夋嫨 + check := LabelFormula.Text() ~ DropDownStringList.Text(); + feedback := "璇ヤ紭鍏堢骇鍥犲瓙宸茶閫夋嫨." + } + + return not check; + *] QuillAction { Body: diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonDivide_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonDivide_OnClick.def index 11b1352..ef82cb9 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonDivide_OnClick.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonDivide_OnClick.def @@ -5,6 +5,13 @@ #keys: '[414382.0.500261587]' CanBindMultiple: false DefinitionID: 'Responsedef_WebButton_OnClick' + Precondition: + [* + // 褰撳墠鏄惁鏈夐�変腑鐨勪紭鍏堢骇绛栫暐 + feedback := "璇峰厛閫夋嫨涓�鏉′紭鍏堢骇绛栫暐鍚庡啀杩涜缂栬緫鍏紡"; + check := PanelPriorityPolicyOperationName.Text() = ""; + return not check; + *] QuillAction { Body: diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonLeftParenthesis_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonLeftParenthesis_OnClick.def index f4eb5c3..ee84b06 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonLeftParenthesis_OnClick.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonLeftParenthesis_OnClick.def @@ -5,6 +5,13 @@ #keys: '[414382.0.500261667]' CanBindMultiple: false DefinitionID: 'Responsedef_WebButton_OnClick' + Precondition: + [* + // 褰撳墠鏄惁鏈夐�変腑鐨勪紭鍏堢骇绛栫暐 + feedback := "璇峰厛閫夋嫨涓�鏉′紭鍏堢骇绛栫暐鍚庡啀杩涜缂栬緫鍏紡"; + check := PanelPriorityPolicyOperationName.Text() = ""; + return not check; + *] QuillAction { Body: diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonMultiply_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonMultiply_OnClick.def index 2f09779..32f03c0 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonMultiply_OnClick.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonMultiply_OnClick.def @@ -5,6 +5,13 @@ #keys: '[414382.0.500261507]' CanBindMultiple: false DefinitionID: 'Responsedef_WebButton_OnClick' + Precondition: + [* + // 褰撳墠鏄惁鏈夐�変腑鐨勪紭鍏堢骇绛栫暐 + feedback := "璇峰厛閫夋嫨涓�鏉′紭鍏堢骇绛栫暐鍚庡啀杩涜缂栬緫鍏紡"; + check := PanelPriorityPolicyOperationName.Text() = ""; + return not check; + *] QuillAction { Body: diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonRightParenthesis_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonRightParenthesis_OnClick.def index 292ba04..5cede1f 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonRightParenthesis_OnClick.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonRightParenthesis_OnClick.def @@ -5,6 +5,13 @@ #keys: '[414382.0.500261748]' CanBindMultiple: false DefinitionID: 'Responsedef_WebButton_OnClick' + Precondition: + [* + // 褰撳墠鏄惁鏈夐�変腑鐨勪紭鍏堢骇绛栫暐 + feedback := "璇峰厛閫夋嫨涓�鏉′紭鍏堢骇绛栫暐鍚庡啀杩涜缂栬緫鍏紡"; + check := PanelPriorityPolicyOperationName.Text() = ""; + return not check; + *] 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..d54ce72 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonRollBack_OnClick.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonRollBack_OnClick.def @@ -5,6 +5,13 @@ #keys: '[414382.0.506055261]' CanBindMultiple: false DefinitionID: 'Responsedef_WebButton_OnClick' + Precondition: + [* + // 褰撳墠鏄惁鏈夐�変腑鐨勪紭鍏堢骇绛栫暐 + feedback := "璇峰厛閫夋嫨涓�鏉′紭鍏堢骇绛栫暐鍚庡啀杩涜缂栬緫鍏紡"; + check := PanelPriorityPolicyOperationName.Text() = ""; + return not check; + *] QuillAction { Body: @@ -13,7 +20,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_ButtonSubtract_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonSubtract_OnClick.def index 77d6f0a..e9fd780 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonSubtract_OnClick.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonSubtract_OnClick.def @@ -5,6 +5,13 @@ #keys: '[414382.0.500261427]' CanBindMultiple: false DefinitionID: 'Responsedef_WebButton_OnClick' + Precondition: + [* + // 褰撳墠鏄惁鏈夐�変腑鐨勪紭鍏堢骇绛栫暐 + feedback := "璇峰厛閫夋嫨涓�鏉′紭鍏堢骇绛栫暐鍚庡啀杩涜缂栬緫鍏紡"; + check := PanelPriorityPolicyOperationName.Text() = ""; + return not check; + *] QuillAction { Body: diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_Buttonplus_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_Buttonplus_OnClick.def index 926a7be..ab192c7 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_Buttonplus_OnClick.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_Buttonplus_OnClick.def @@ -5,6 +5,13 @@ #keys: '[414382.0.500261347]' CanBindMultiple: false DefinitionID: 'Responsedef_WebButton_OnClick' + Precondition: + [* + // 褰撳墠鏄惁鏈夐�変腑鐨勪紭鍏堢骇绛栫暐 + feedback := "璇峰厛閫夋嫨涓�鏉′紭鍏堢骇绛栫暐鍚庡啀杩涜缂栬緫鍏紡"; + check := PanelPriorityPolicyOperationName.Text() = ""; + return not check; + *] QuillAction { Body: 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..a5937da 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PriorityPolicyBusinessType_OnSelectionChanged.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PriorityPolicyBusinessType_OnSelectionChanged.def @@ -10,7 +10,13 @@ Body: [* list := PriorityPolicy::GetDataByBusinessType( MacroPlan, PriorityPolicyBusinessType.Text()); - DataHolderPriorityPolicy.Data(&list); + DataHolderPriorityPolicyShowList.Data(&list); + + PanelPriorityPolicyOperationName.Text(""); + LabelFormula.Text(""); + LabelCalculateValue.Text(""); + data := shadow( null( PriorityPolicy ) ); + DataHolderEditPriorityPolicy.Data( &data ); *] 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_FormProducts/Component_ListProduct\043844.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormProducts/Component_ListProduct\043844.def" new file mode 100644 index 0000000..92f21a9 --- /dev/null +++ "b/_Main/UI/MacroPlannerWebApp/Component_FormProducts/Component_ListProduct\043844.def" @@ -0,0 +1,14 @@ +Quintiq file version 2.0 +Component ListProduct id:ListProduct_844 #extension +{ + Children: + [ + Component DataSetLevelRootProduct #extension + { + Children: + [ + #child: listContextMenuProduct_1 + ] + } + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormProducts/Component_PanelList.def b/_Main/UI/MacroPlannerWebApp/Component_FormProducts/Component_PanelList.def new file mode 100644 index 0000000..907c5e6 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormProducts/Component_PanelList.def @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +Component PanelList #extension +{ + Children: + [ + #child: ListProduct_844 + ] +} diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormProducts/Component_listContextMenuProduct\0431.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormProducts/Component_listContextMenuProduct\0431.def" new file mode 100644 index 0000000..7a70a33 --- /dev/null +++ "b/_Main/UI/MacroPlannerWebApp/Component_FormProducts/Component_listContextMenuProduct\0431.def" @@ -0,0 +1,28 @@ +Quintiq file version 2.0 +Component listContextMenuProduct id:listContextMenuProduct_1 #extension +{ + Children: + [ + Component MenuMarkingPanelMaterial + { + #keys: '[414502.0.406261865]' + BaseType: 'WebMenu' + Properties: + [ + Image: 'EARTH2' + Taborder: 11 + Title: '鏍囪闈㈡澘鐗╂枡' + ] + } + Component Menu860 + { + #keys: '[414502.0.406252405]' + BaseType: 'WebMenu' + Properties: + [ + Separator: true + Taborder: 10 + ] + } + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormProducts/Response_TIANMA_JITUAN_ListProduct_844_MenuMarkingPanelMaterial_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormProducts/Response_TIANMA_JITUAN_ListProduct_844_MenuMarkingPanelMaterial_OnClick.def new file mode 100644 index 0000000..33228b3 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormProducts/Response_TIANMA_JITUAN_ListProduct_844_MenuMarkingPanelMaterial_OnClick.def @@ -0,0 +1,19 @@ +Quintiq file version 2.0 +#parent: ListProduct_844 +Response OnClick ( + Product_MP selection +) id:Response_ListProduct_844_MenuMarkingPanelMaterial_OnClick +{ + #keys: '[414502.0.406201138]' + CanBindMultiple: false + DefinitionID => /ListProduct_844/Responsedef_ListProduct_844_WebMenu_OnClick + Initiator: 'MenuMarkingPanelMaterial' + QuillAction + { + Body: + [* + selection.IsPanelMaterial( not selection.IsPanelMaterial() ); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormProducts/_ROOT_Component_FormProducts.def b/_Main/UI/MacroPlannerWebApp/Component_FormProducts/_ROOT_Component_FormProducts.def new file mode 100644 index 0000000..c44a756 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormProducts/_ROOT_Component_FormProducts.def @@ -0,0 +1,10 @@ +Quintiq file version 2.0 +#root +#parent: LibMacroPlannerWebUI +OrphanComponent FormProducts #extension +{ + Children: + [ + #child: PanelList + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormReleaseRecord/Component_ListReleaseRecord.def b/_Main/UI/MacroPlannerWebApp/Component_FormReleaseRecord/Component_ListReleaseRecord.def index fbb5054..ab6d309 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormReleaseRecord/Component_ListReleaseRecord.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormReleaseRecord/Component_ListReleaseRecord.def @@ -28,7 +28,7 @@ ] Properties: [ - Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ID","title":"ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Issuer","title":"Issuer","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Issuer"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IssuingDate","title":"IssuingDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IssuingDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"FinishDate","title":"FinishDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"FinishDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Status","title":"Status","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Status"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"VCode","title":"VCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"VCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Serial","title":"Serial","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Serial"}}]' + Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ID","title":"ID","subtotals":"","tooltip":"","width":-1,"display":"hidden","editable":false,"attribute":"ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Serial","title":"搴忓彿","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Serial"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IssuingDate","title":"鍙戝竷鏃堕棿","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IssuingDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"FinishDate","title":"缁撴潫鏃堕棿","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"FinishDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Issuer","title":"鍙戝竷浜�","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Issuer"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Status","title":"鐘舵��","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Status"}}]' ContextMenu: 'listContextMenuReleaseRecord' Taborder: 2 ] diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormReleaseRecord/Component_ListReleaseRecord243.def b/_Main/UI/MacroPlannerWebApp/Component_FormReleaseRecord/Component_ListReleaseRecord243.def index 6ef25a7..4f4cedb 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormReleaseRecord/Component_ListReleaseRecord243.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormReleaseRecord/Component_ListReleaseRecord243.def @@ -28,7 +28,7 @@ ] Properties: [ - Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"H_ReleaseRecord_ID","title":"H_ReleaseRecord_ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"H_ReleaseRecord_ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"H_HedgingRecord_ID","title":"H_HedgingRecord_ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"H_HedgingRecord_ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ID","title":"ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Qty","title":"Qty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Qty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Status","title":"Status","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Status"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IssuingDate","title":"IssuingDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IssuingDate"}}]' + Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SKU","title":"鐗╂枡缂栧彿","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SKU"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductSubclassType","title":"绫诲瀷","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductSubclassType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Qty","title":"鏁伴噺","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Qty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Unit","title":"鍗曚綅","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Unit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrgCode","title":"缁勭粐浠g爜","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrgCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"WarehouseCode","title":"浠撳簱浠g爜","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"WarehouseCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DemandTime","title":"闇�姹傛椂闂�","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"DemandTime"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IssuingDate","title":"鍙戝竷鏃堕棿","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IssuingDate"}}]' ContextMenu: 'listContextMenuReleaseRecord690' Taborder: 2 ] diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormReleaseRecord/Component_PanelReleaseRecord423.def b/_Main/UI/MacroPlannerWebApp/Component_FormReleaseRecord/Component_PanelReleaseRecord423.def new file mode 100644 index 0000000..6d2fc94 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormReleaseRecord/Component_PanelReleaseRecord423.def @@ -0,0 +1,26 @@ +Quintiq file version 2.0 +Component PanelReleaseRecord423 +{ + #keys: '[414724.0.149784904]' + BaseType: 'WebPanel' + Children: + [ + Component LabelReleaseRecord id:LabelReleaseRecord_296 + { + #keys: '[414724.0.149784974]' + BaseType: 'WebLabel' + Properties: + [ + NumberOfColumns: 20 + Taborder: 0 + Text: '鍙嶇/鎺堟潈鐗╂枡鍙戝竷鐗堟湰鏄庣粏' + ] + } + ] + Properties: + [ + Border: true + FixedSize: true + Taborder: 0 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormReleaseRecord/Response_ListReleaseRecord_OnSelectionChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormReleaseRecord/Response_ListReleaseRecord_OnSelectionChanged.def index f4cc29c..9e293a9 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormReleaseRecord/Response_ListReleaseRecord_OnSelectionChanged.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormReleaseRecord/Response_ListReleaseRecord_OnSelectionChanged.def @@ -11,7 +11,15 @@ { Body: [* - DataExtractorReleaseRecord661.FixedFilter( "object.H_ReleaseRecord_ID() = " + selection.ID().AsQUILL()); + // 鍙戝竷ID + H_ReleaseRecord_ID := "-1"; + H_Status:="宸插彂甯�"; + if( not isnull( selection)) + { + H_ReleaseRecord_ID := selection.ID(); + } + DataExtractorReleaseRecord661.FixedFilter( "object.H_ReleaseRecord_ID() = " + H_ReleaseRecord_ID.AsQUILL() + + " and " + "object.Status() = " + H_Status.AsQUILL()); *] GroupServerCalls: false } diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormReleaseRecord/Response_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormReleaseRecord/Response_OnCreated.def index 5fc1173..75b080a 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormReleaseRecord/Response_OnCreated.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormReleaseRecord/Response_OnCreated.def @@ -5,12 +5,12 @@ #keys: '[414724.0.37110847]' CanBindMultiple: false DefinitionID: 'Responsedef_WebComponent_OnCreated' - GroupServerCalls: true QuillAction { Body: [* dtMonth.Date(Date::Today()); *] + GroupServerCalls: false } } diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormReleaseRecord/_ROOT_Component_FormReleaseRecord.def b/_Main/UI/MacroPlannerWebApp/Component_FormReleaseRecord/_ROOT_Component_FormReleaseRecord.def index 9a61137..675a452 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormReleaseRecord/_ROOT_Component_FormReleaseRecord.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormReleaseRecord/_ROOT_Component_FormReleaseRecord.def @@ -7,20 +7,10 @@ BaseType: 'WebForm' Children: [ - Component LabelReleaseRecord - { - #keys: '[414724.0.36933216]' - BaseType: 'WebLabel' - Properties: - [ - NumberOfColumns: 20 - Taborder: 0 - Text: '鍙嶇/鎺堟潈鐗╂枡鍙戝竷鐗堟湰鏄庣粏' - ] - } #child: PanelReleaseRecord #child: PanelReleaseRecord108 #child: PanelReleaseRecord527 + #child: PanelReleaseRecord423 ] Properties: [ 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 a76472b..0b8df6f 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Material/Response_OnCreated.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Material/Response_OnCreated.def @@ -17,22 +17,19 @@ SelectItem := select( MacroPlan,H_MessagePassing,Obj,Obj.FKey()="FrmMaterial" and Obj.ItemKey()="ListSelect"); if(not isnull( SelectItem)) { - if(SelectItem.Value().Length()>0) + if(SelectItem.ValueJsonString().Length()>0) { - StrValue := SelectItem.Value().Tokenize( ";"); - lb_SUK_FAACM.Text(StrValue.Element( 0)); - lb_MaterialCode_FAACM.Text(StrValue.Element( 1)); - lb_Unit_FAACM.Text(StrValue.Element( 2)); + 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()); } - } - // 鑾峰彇閫夋嫨鍚庣殑SKU - SelectItem := select( MacroPlan,H_MessagePassing,Obj,Obj.FKey()="FrmOrderForecast" and Obj.ItemKey()="ListSelect"); - if(not isnull( SelectItem) and SelectItem.Value().Length()>0) - { - StrValue := SelectItem.Value().Tokenize( ";"); - txt_CustomID_FAACM.Text(StrValue.Element( 2)); - txt_CustomName_FAACM.Text(StrValue.Element( 3)); } *] GroupServerCalls: false diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Response_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Response_OnCreated.def index 7c4d5f5..76d2c45 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Response_OnCreated.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Response_OnCreated.def @@ -23,18 +23,10 @@ lb_SKUCode_FAAC.Text(SelForecast.Get( "SKU").GetString()); lb_SKUName_FAAC.Text("浜у搧"); lb_Util_FAAC.Text(SelForecast.Get( "Util").GetString()); + lb_SKUName_FAAC.Text(SelForecast.Get( "SKUName").GetString()); txt_CustomID_FAAC.Text(SelForecast.Get( "CustomCode").GetString()); txt_CustomName_FAAC.Text(SelForecast.Get( "CustomName").GetString()); lb_Operator_FAAC.Text(ApplicationMacroPlanner.GetUserName()); - - // StrValue := SelectItem.Value().Tokenize( ";"); - // lb_SKUCode_FAAC.Text(StrValue.Element( 0)); - // lb_SKUName_FAAC.Text("浜у搧"); - // lb_Operator_FAAC.Text(""); - // lb_Util_FAAC.Text(StrValue.Element( 1)); - // txt_CustomID_FAAC.Text(StrValue.Element( 2)); - // txt_CustomName_FAAC.Text(StrValue.Element( 3)); - // lb_Operator_FAAC.Text(ApplicationMacroPlanner.GetUserName()); } } *] diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmErrorLogs/Component_List710.def b/_Main/UI/MacroPlannerWebApp/Component_FrmErrorLogs/Component_List710.def index 975cea9..bd6d61d 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FrmErrorLogs/Component_List710.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FrmErrorLogs/Component_List710.def @@ -36,6 +36,6 @@ ] Properties: [ - Taborder: 1 + Taborder: 2 ] } diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmErrorLogs/Component_Panel391.def b/_Main/UI/MacroPlannerWebApp/Component_FrmErrorLogs/Component_Panel391.def new file mode 100644 index 0000000..c27e0ed --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FrmErrorLogs/Component_Panel391.def @@ -0,0 +1,24 @@ +Quintiq file version 2.0 +Component Panel391 +{ + #keys: '[414724.0.193860534]' + BaseType: 'WebPanel' + Children: + [ + Component Button655 + { + #keys: '[414724.0.193860558]' + BaseType: 'WebButton' + Properties: + [ + Image: 'BULL' + Label: '濉骇鍐插噺' + Taborder: 0 + ] + } + ] + Properties: + [ + Taborder: 0 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmErrorLogs/Response_Panel391_Button655_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FrmErrorLogs/Response_Panel391_Button655_OnClick.def new file mode 100644 index 0000000..821d8ed --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FrmErrorLogs/Response_Panel391_Button655_OnClick.def @@ -0,0 +1,39 @@ +Quintiq file version 2.0 +#parent: Panel391/Button655 +Response OnClick () id:Response_Panel391_Button655_OnClick +{ + #keys: '[414724.0.194975663]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebButton_OnClick' + Precondition: + [* + return not isnull( MacroPlan); + *] + QuillAction + { + Body: + [* + HResult := H_FunctionClass::SM_OrderHedgingEx( MacroPlan,"娴嬭瘯鐢ㄦ埛" ); + Msg := HResult.Get( "Msg").GetString(); + if( HResult.Get( "Status").GetBoolean()) + { + if( Msg.Length()>0) + { + WebMessageBox::Information(Msg); + } + } + else + { + if( Msg.Length()>0) + { + WebMessageBox::Warning(Msg); + } + else + { + WebMessageBox::Information("杩愯閿欒锛�"); + } + } + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmErrorLogs/_ROOT_Component_FrmErrorLogs.def b/_Main/UI/MacroPlannerWebApp/Component_FrmErrorLogs/_ROOT_Component_FrmErrorLogs.def index 23776ce..81eec9c 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FrmErrorLogs/_ROOT_Component_FrmErrorLogs.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FrmErrorLogs/_ROOT_Component_FrmErrorLogs.def @@ -30,9 +30,10 @@ ] Properties: [ - Taborder: 0 + Taborder: 1 ] } + #child: Panel391 ] Properties: [ diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Component_List832.def b/_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Component_List832.def index f24ffbd..f4e6b0e 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Component_List832.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Component_List832.def @@ -11,7 +11,7 @@ BaseType: 'WebDataExtractor' Properties: [ - DataType: 'structured[Product_MP]' + DataType: 'structured[H_MaterialInfo]' Source: 'dh_FM_PruductMP' Taborder: 0 Transformation: 'Elements' @@ -28,7 +28,7 @@ ] Properties: [ - Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ID","title":"ID","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"TotalInventoryLevels","title":"TotalInventoryLevels","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"TotalInventoryLevels"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Level","title":"Level","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"Level"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsProductCategory","title":"IsProductCategory","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"IsProductCategory"}}]' + Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SKU","title":"鐗╂枡缂栫爜","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SKU"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MaterialType","title":"鐗╂枡绫诲瀷","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MaterialType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MaterialName","title":"鐗╂枡鍚嶇О","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MaterialName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Unit","title":"鍗曚綅","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Unit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"NeedQty","title":"闇�姹傛暟閲�","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"NeedQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"NeedDate","title":"闇�姹傛椂闂�","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"NeedDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrgCode","title":"缁勭粐浠g爜","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrgCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockPoint","title":"搴撳瓨鐐�","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockPoint"}}]' ContextMenu: 'listContextMenu892' Taborder: 2 ] diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Component_Panel418.def b/_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Component_Panel418.def index efb0178..a9de040 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Component_Panel418.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Component_Panel418.def @@ -24,7 +24,7 @@ [ NumberOfColumns: 15 PlaceHolder: '妯$硦鎼滅储' - Taborder: 1 + Taborder: 2 ] } Component btn_Query_FM @@ -35,7 +35,7 @@ [ Image: 'VIEW' Label: '鏌ヨ' - Taborder: 2 + Taborder: 3 ] } Component btn_Add_FM @@ -46,7 +46,7 @@ [ Image: 'ADD2' Label: '鏂板鍙嶇/鎺堟潈' - Taborder: 3 + Taborder: 4 ] ResponseDefinitions: [ @@ -66,6 +66,16 @@ } ] } + Component ds_Month_FM + { + #keys: '[414724.0.148121614]' + BaseType: 'WebDateSelector' + Properties: + [ + DateFormat: 'YMM' + Taborder: 1 + ] + } ] Properties: [ diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_List832_OnDoubleClick.def b/_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_List832_OnDoubleClick.def new file mode 100644 index 0000000..b2a673b --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_List832_OnDoubleClick.def @@ -0,0 +1,79 @@ +Quintiq file version 2.0 +#parent: List832 +Response OnDoubleClick ( + H_MaterialInfo selection +) id:Response_List832_OnDoubleClick +{ + #keys: '[414724.0.160542461]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebList_OnDoubleClick' + QuillAction + { + Body: + [* + if( not isnull( selection)) + { + // 棰勬祴璁㈠崟鍩烘湰淇℃伅 + CustomCode:=""; + CustomName:=""; + SKUName:=""; + SValueJsonString:=""; + // 鑾峰彇瀹㈡埛鍚嶇О鍜屽鎴稩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(selection.MaterialType()="鍗婃垚鍝�") + { + ForecastID:=""; + if( txtSaveForecastData_FM.Text().Length()>0) + { + JForecast := JSON::Parse(txtSaveForecastData_FM.Text()); + ForecastID := JForecast.Get( "ForecastID").GetString(); + } + 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() + + " and object.ForecastID() = " + ForecastID.AsQUILL() + ); + } + else + { + WebMessageBox::Warning( jResult.Get( "Msg").GetString()); + } + } + else + { + SelectItem := select( MacroPlan,H_MessagePassing,Obj,Obj.FKey()="FrmMaterial" and Obj.ItemKey()="ListSelect"); + if(not isnull(selection)) + { + SValueJsonString:= JSON::Object().Add( "SKU",selection.SKU()) + .Add( "MaterialName",selection.MaterialName()) + .Add( "MaterialType",selection.MaterialType()) + .Add( "OrgCode",selection.OrgCode()) + .Add( "Unit",selection.Unit()) + .Add( "CustomCode",CustomCode) + .Add( "ParentSKU",lb_SUK_FM.Text()) + .Add( "ParentSKUName",SKUName) + .Add( "CustomName",CustomName).Build().AsString(); + } + if(isnull( SelectItem)) + { + MacroPlan.H_MessagePassing(relnew,FKey := "FrmMaterial",ItemKey := "ListSelect", ValueJsonString:=SValueJsonString); + } + else + { + SelectItem.ValueJsonString( SValueJsonString); + } + Application.OpenForm( "FrmAuthorizeAndCountersign_Material","modal"); + } + } + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_List832_OnSelectionChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_List832_OnSelectionChanged.def deleted file mode 100644 index 4b24dec..0000000 --- a/_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_List832_OnSelectionChanged.def +++ /dev/null @@ -1,23 +0,0 @@ -Quintiq file version 2.0 -#parent: List832 -Response OnSelectionChanged ( - Product_MP selection -) id:Response_List832_OnSelectionChanged -{ - #keys: '[414724.0.113297034]' - CanBindMultiple: false - DefinitionID: 'Responsedef_WebList_OnSelectionChanged' - QuillAction - { - Body: - [* - SelectItem := select( MacroPlan,H_MessagePassing,Obj,Obj.FKey()="FrmMaterial" and Obj.ItemKey()="ListSelect"); - if( isnull( SelectItem)) - { - MacroPlan.H_MessagePassing(relnew,FKey :="FrmMaterial",ItemKey := "ListSelect",Value := ""); - } - SelectItem.Value(lb_SUK_FM.Text()+";"+ selection.ID() +";"+selection.UnitOfMeasureName()+";"); - *] - GroupServerCalls: false - } -} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_OnCreated.def index 04a54ea..4529905 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_OnCreated.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_OnCreated.def @@ -9,6 +9,7 @@ { Body: [* + ds_Month_FM.Date(Date::ActualDate()); txtSaveForecastData_FM.Text(""); // 鑾峰彇閫夋嫨鍚庣殑SKU SelectItem := select( MacroPlan,H_MessagePassing,Obj,Obj.FKey()="FrmOrderForecast" and Obj.ItemKey()="ListSelect"); @@ -16,10 +17,12 @@ { if( SelectItem.ValueJsonString().Length()>0) { - txtSaveForecastData_FM.Text( SelectItem.ValueJsonString()); - JSelect := JSON::Parse( SelectItem.ValueJsonString()); + txtSaveForecastData_FM.Text(SelectItem.ValueJsonString()); + JSelect := JSON::Parse(SelectItem.ValueJsonString()); lb_SUK_FM.Text(JSelect.Get( "SKU").GetString()); - de_dh_FM_ProductMP.FixedFilter( "object.ID() = " + JSelect.Get( "SKU").GetString().AsQUILL()); + de_dh_FM_ProductMP.FixedFilter( "object.ParentSKU() = " + JSelect.Get( "SKU").GetString().AsQUILL() + + " and object.ForecastID() = " + JSelect.Get( "ForecastID").GetString().AsQUILL() + ); } } *] 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 0912867..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" @@ -1,6 +1,8 @@ Quintiq file version 2.0 #parent: Panel418/btn_Add_FM -Response OnClick () id:Response_Panel418_btn_Add_FM_OnClick_975 +Response OnClick ( + H_MaterialInfo selection +) id:Response_Panel418_btn_Add_FM_OnClick_975 { #keys: '[414724.0.145238844]' CanBindMultiple: false @@ -14,14 +16,41 @@ Body: [* SelectItem := select( MacroPlan,H_MessagePassing,Obj,Obj.FKey()="FrmMaterial" and Obj.ItemKey()="ListSelect"); + CustomCode:=""; + 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)) + { + SValueJsonString:= JSON::Object().Add( "SKU",selection.SKU()) + .Add( "MaterialName",selection.MaterialName()) + .Add( "MaterialType",selection.MaterialType()) + .Add( "OrgCode",selection.OrgCode()) + .Add( "Unit",selection.Unit()) + .Add( "CustomCode",CustomCode) + .Add( "ParentSKU",lb_SUK_FM.Text()) + .Add( "ParentSKUName",SKUName) + .Add( "CustomName",CustomName).Build().AsString(); + } if( isnull( SelectItem)) { - MacroPlan.H_MessagePassing(relnew,FKey :="FrmMaterial",ItemKey := "ListSelect",Value := ""); + MacroPlan.H_MessagePassing(relnew,FKey := "FrmMaterial",ItemKey := "ListSelect", Value:=SValue,ValueJsonString:=SValueJsonString); } else { - //SelectItem.ValueJsonString() + SelectItem.Value(SValue); + SelectItem.ValueJsonString( SValueJsonString); } + Application.OpenForm( "FrmAuthorizeAndCountersign_Material","modal"); *] GroupServerCalls: false } diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_Panel418_btn_Add_FM_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_Panel418_btn_Add_FM_OnClick.def deleted file mode 100644 index 75a8322..0000000 --- a/_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_Panel418_btn_Add_FM_OnClick.def +++ /dev/null @@ -1,20 +0,0 @@ -Quintiq file version 2.0 -#parent: Panel418/btn_Add_FM -Response OnClick () id:Response_Panel418_btn_Add_FM_OnClick -{ - #keys: '[414724.0.93205915]' - CanBindMultiple: false - DefinitionID: 'Responsedef_WebButton_OnClick' - Precondition: - [* - return not isnull( MacroPlan); - *] - QuillAction - { - Body: - [* - Application.OpenForm( "FrmAuthorizeAndCountersign_Material","modal"); - *] - GroupServerCalls: false - } -} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_Panel418_btn_Query_FM_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_Panel418_btn_Query_FM_OnClick.def index 822a47c..d0ec30d 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_Panel418_btn_Query_FM_OnClick.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_Panel418_btn_Query_FM_OnClick.def @@ -9,10 +9,17 @@ { Body: [* - de_dh_FM_ProductMP.FixedFilter( "object.ID().LikeUserLocale( " + txt_QueryContent_FM.Text().AsQUILL() + " )" ); - // + " or " + "object.SKU().LikeUserLocale( " + txt_QueryContent_FM.Text().AsQUILL() + " )" - // + " or " + "object.CustomerCode().LikeUserLocale( " + txt_QueryContent_FM.Text().AsQUILL() + " )" - // + " or " + "object.CustomerName().LikeUserLocale( " + txt_QueryContent_FM.Text().AsQUILL() + " )" ); + de_dh_FM_ProductMP.FixedFilter( "( object.SKU().LikeUserLocale( " + txt_QueryContent_FM.Text().AsQUILL() + " )" + + " or " + "object.MaterialType().LikeUserLocale( " + txt_QueryContent_FM.Text().AsQUILL() + " )" + + " or " + "object.MaterialName().LikeUserLocale( " + txt_QueryContent_FM.Text().AsQUILL() + " )" + + " or " + "object.Unit().LikeUserLocale( " + txt_QueryContent_FM.Text().AsQUILL() + " )" + + " or " + "object.OrgCode().LikeUserLocale( " + txt_QueryContent_FM.Text().AsQUILL() + " )" + + " or " + "object.StockPoint().LikeUserLocale( " + txt_QueryContent_FM.Text().AsQUILL() + " )" + + " or " + "object.Unit().LikeUserLocale( " + txt_QueryContent_FM.Text().AsQUILL() + " ))" + + " and " + "( object.NeedDate() < " + ds_Month_FM.Date().StartOfNextMonth().AsQUILL() + + " and " + "object.NeedDate() >= " + ds_Month_FM.Date().StartOfMonth().AsQUILL() + " )" + + ); *] GroupServerCalls: false } diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/_ROOT_Component_FrmMaterial.def b/_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/_ROOT_Component_FrmMaterial.def index a356ac2..d1b24d6 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/_ROOT_Component_FrmMaterial.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/_ROOT_Component_FrmMaterial.def @@ -14,7 +14,7 @@ { #keys: '[414724.0.53475285]' BaseType: 'WebDataHolder' - Databinding: 'structured[Product_MP]*' + Databinding: 'structured[H_MaterialInfo]*' Children: [ Component de_dh_FM_ProductMP @@ -26,7 +26,7 @@ DataType: 'MacroPlan' Source: 'MacroPlan' Taborder: 0 - Transformation: 'Product_MP' + Transformation: 'H_MaterialInfo' ] } ] @@ -53,7 +53,8 @@ [ Description: '鍘熸枡鍒楄〃椤�' Image: 'NAV_REDO_LIGHT_BLUE' - MinimumRows: 50 + MinimumColumns: 80 + MinimumRows: 40 Title: '鍘熸枡鍒楄〃椤�' ] } diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_Panel351.def b/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_Panel351.def index 8801397..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,16 +63,40 @@ } ] } - Component btn_InitialData778 + Component btn_OrderH_FOF { - #keys: '[414724.0.115504406]' + #keys: '[414724.0.165490408]' BaseType: 'WebButton' Properties: [ - Description: '鍔犺浇鏁版嵁锛堝亣鐨勶紝鍚庣画闇�瑕佸鎺ユ暟鎹級' - Label: '鍔犺浇棰勬祴璁㈠崟鏁版嵁' - Taborder: 0 - Visible: false + ButtonSize: 'compact' + Description: 'ERO璁㈠崟鍐插噺' + Image: 'AMMUNITION_BOX_CLOSED' + Label: 'ERP璁㈠崟鍐插噺' + Taborder: 2 + ] + } + Component txt_QueryContent_FOF + { + #keys: '[414724.0.172390935]' + BaseType: 'WebEditField' + Properties: + [ + PlaceHolder: '妯$硦鎼滅储' + Taborder: 3 + ] + } + Component btn_Query_FOF + { + #keys: '[414724.0.172390951]' + BaseType: 'WebButton' + Properties: + [ + ButtonSize: 'compact' + Description: '鏌ヨ' + Image: 'VIEW' + Label: '鏌ヨ' + Taborder: 4 ] } ] diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_Panel383.def b/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_Panel383.def deleted file mode 100644 index ff6b8ad..0000000 --- a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_Panel383.def +++ /dev/null @@ -1,53 +0,0 @@ -Quintiq file version 2.0 -Component Panel383 -{ - #keys: '[414724.0.86151558]' - BaseType: 'WebPanel' - Children: - [ - Component ds_Month_FOF - { - #keys: '[414724.0.86151747]' - BaseType: 'WebDateSelector' - Properties: - [ - DateFormat: 'YMM' - Label: '鏈堜唤' - Taborder: 0 - Visible: false - ] - } - Component txt_QueryContent_FOF - { - #keys: '[414724.0.86151766]' - BaseType: 'WebEditField' - Properties: - [ - PlaceHolder: '妯$硦鎼滅储' - Taborder: 1 - Visible: false - ] - } - Component btn_Query_FOF - { - #keys: '[414724.0.88914059]' - BaseType: 'WebButton' - Properties: - [ - Description: '鏌ヨ' - Image: 'VIEW' - Label: '鏌ヨ' - Taborder: 2 - Visible: false - ] - } - ] - Properties: - [ - FixedSize: true - MinimumColumns: 80 - Orientation: 'horizontal' - Taborder: 0 - Visible: false - ] -} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_Panel647.def b/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_Panel647.def deleted file mode 100644 index 7b147ac..0000000 --- a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_Panel647.def +++ /dev/null @@ -1,50 +0,0 @@ -Quintiq file version 2.0 -Component Panel647 -{ - #keys: '[414724.0.86151576]' - BaseType: 'WebPanel' - Children: - [ - Component btn_Add_Order_FOF - { - #keys: '[414724.0.87342042]' - BaseType: 'WebButton' - Properties: - [ - Description: '璁㈠崟鏂板鍙嶇/鎺堟潈' - Label: '璁㈠崟鏂板鍙嶇/鎺堟潈' - Taborder: 1 - ] - } - Component btn_Add_Material_FOF - { - #keys: '[414724.0.86151707]' - BaseType: 'WebButton' - Properties: - [ - Description: '鍘熸枡鏂板鍙嶇/鎺堟潈' - Label: '鍘熸枡鏂板鍙嶇/鎺堟潈' - Taborder: 2 - ] - } - Component btn_InitialData - { - #keys: '[414724.0.93657921]' - BaseType: 'WebButton' - Properties: - [ - Description: '鍔犺浇鏁版嵁锛堝亣鐨勶紝鍚庣画闇�瑕佸鎺ユ暟鎹級' - Label: '鍔犺浇棰勬祴璁㈠崟鏁版嵁' - Taborder: 0 - Visible: false - ] - } - ] - Properties: - [ - Alignment: 'trailing' - FixedSize: true - Orientation: 'horizontal' - Taborder: 1 - ] -} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_Panel849.def b/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_Panel849.def deleted file mode 100644 index 35b07f6..0000000 --- a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_Panel849.def +++ /dev/null @@ -1,19 +0,0 @@ -Quintiq file version 2.0 -Component Panel849 -{ - #keys: '[414724.0.87341748]' - BaseType: 'WebPanel' - Children: - [ - #child: Panel383 - #child: Panel647 - ] - Properties: - [ - Description: '宸茬粡闅愯棌锛屾殏鏈娇鐢�' - FixedSize: true - Orientation: 'horizontal' - Taborder: 2 - Visible: false - ] -} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_liH_Forecast.def b/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_liH_Forecast.def index e056848..67ab89e 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_liH_Forecast.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_liH_Forecast.def @@ -11,8 +11,8 @@ BaseType: 'WebDataExtractor' Properties: [ - DataType: 'structured[H_Forecast]' - Source: 'dh_FOF_H_Forecast' + DataType: 'structured[H_OrderForecastRealQty]' + Source: 'dh_FOF_H_OrderForecastRealQty' Taborder: 0 Transformation: 'Elements' ] @@ -28,7 +28,7 @@ ] Properties: [ - Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderCode","title":"璁㈠崟缂栧彿","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SKU","title":"SKU缂栫爜","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SKU"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastQty","title":"棰勬祴鏁伴噺","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"NeedTime","title":"闇�姹傛椂闂�","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"NeedTime"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Util","title":"鍗曚綅","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Util"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomName","title":"瀹㈡埛鍚嶇О","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Department","title":"閿�鍞儴闂�","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Department"}}]' + Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Month","title":"鏈堜唤","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Month"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomName","title":"瀹㈡埛鍚嶇О","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SKU","title":"SKU缂栧彿","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SKU"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecatsQty","title":"棰勬祴鏁伴噺","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecatsQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecatsRealQty","title":"绾娴嬫暟閲�","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecatsRealQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Unit","title":"鍗曚綅","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Unit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Department","title":"閮ㄩ棬","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Department"}}]' ContextMenu: 'listContextMenu367' Taborder: 2 ] @@ -36,6 +36,6 @@ ] Properties: [ - Taborder: 7 + Taborder: 3 ] } diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_listActionBarPage963.def b/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_listActionBarPage963.def deleted file mode 100644 index 320820a..0000000 --- a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_listActionBarPage963.def +++ /dev/null @@ -1,10 +0,0 @@ -Quintiq file version 2.0 -Component listActionBarPage963 -{ - #keys: '[414724.0.86151897]' - BaseType: 'listActionBarPage' - Properties: - [ - Taborder: 1 - ] -} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_listContextMenu687.def b/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_listContextMenu687.def deleted file mode 100644 index 5f3683c..0000000 --- a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_listContextMenu687.def +++ /dev/null @@ -1,10 +0,0 @@ -Quintiq file version 2.0 -Component listContextMenu687 -{ - #keys: '[414724.0.86151902]' - BaseType: 'listContextMenu' - Properties: - [ - Taborder: 0 - ] -} diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_list_ForecastView_FOF\043670.def" "b/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_list_ForecastView_FOF\043670.def" deleted file mode 100644 index 0c21175..0000000 --- "a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_list_ForecastView_FOF\043670.def" +++ /dev/null @@ -1,43 +0,0 @@ -Quintiq file version 2.0 -Component list_ForecastView_FOF -{ - #keys: '[414724.0.86151894]' - BaseType: 'WebList' - Children: - [ - Component de_list_ForecastView_FOF - { - #keys: '[414724.0.86151895]' - BaseType: 'WebDataExtractor' - Properties: - [ - DataType: 'structured[SalesDemandBase]' - Source: 'dh_FOF_Data' - Taborder: 0 - Transformation: 'Elements.astype(Forecast)' - ] - } - #child: listActionBarPage963 - Component DataSetLevel191 - { - #keys: '[414724.0.86151900]' - BaseType: 'WebDataSetLevel' - Children: - [ - #child: listContextMenu687 - ] - Properties: - [ - Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeAllConstraint","columnid":"All constraints","title":"All constraints","subtotals":"","tooltip":"","width":1,"display":"shown"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ImgNotLinkedToPeriod","title":"ImgNotLinkedToPeriod","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ImgNotLinkedToPeriod"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ImgIsPostponed","title":"ImgIsPostponed","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ImgIsPostponed"}},{"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":"Product_MP.ID","title":"Product","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"Product_MP.ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StartDate","title":"Start","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StartDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"EndDate","title":"End","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"EndDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasure_MP.Name","title":"Quantity UoM","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"UnitOfMeasure_MP.Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Original Qty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"NettedQuantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"NettedQuantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"FulfilledQuantity","title":"Fulfilled","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"FulfilledQuantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeChart","columnid":"Fulfillment Illustration","title":"Fulfillment","subtotals":"","tooltip":"","width":-1,"display":"shown","type":"stackbar","relative":true,"attributes":[{"name":"Fulfilled demand","color":"rgb(87,184,71)","expression":{"classtype":"WebApiDefinitionAttributeExpression","columnid":"Fulfillment","title":"Fulfilled demand","subtotals":"","tooltip":"","width":-1,"display":"shown","expressionbody":"object.FulfilledQuantity().Round(2)"}},{"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.NettedQuantity()-object.FulfilledQuantity(),0.0).Round(2)"}}]}},{"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":"Priority.Name","title":"Priority","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"Priority.Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DemandUncertaintyPercentage","title":"Uncertainty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"DemandUncertaintyPercentage"}}]' - ContextMenu: 'listContextMenu687' - FixedFilter: 'object.EndDate().DateTime().Date() >= Date::ActualDate().StartOfMonth() and object.EndDate().DateTime().Date() <= Date::ActualDate().StartOfNextMonth().StartOfNextMonth().StartOfNextMonth().StartOfNextMonth()' - Taborder: 2 - ] - } - ] - Properties: - [ - Taborder: 5 - Visible: false - ] -} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_OnCreated.def index 5cb899a..700b61d 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_OnCreated.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_OnCreated.def @@ -9,13 +9,15 @@ { Body: [* - // 鍒濆鍖栨煡璇㈠弬鏁版湀浠� - ds_Month_FOF.Date(Date::ActualDate()); // 鍒濆鍖栭娴嬫暟鎹� - JResult := H_FunctionClass::SM_InitialForcastData( MacroPlan); + JResult := H_FunctionClass::SM_InitialForcastDataEx( MacroPlan,true,"-"); if(not JResult.Get( "Status").GetBoolean()) { - WebMessageBox::Warning( JResult.Get( "Msg").GetString()); + WebMessageBox::Warning( JResult.Get( "Msg").GetString()); + } + else + { + WebMessageBox::Information( JResult.Get( "Msg").GetString()); } *] GroupServerCalls: false 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 7f7d6a1..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" @@ -1,7 +1,7 @@ Quintiq file version 2.0 #parent: Panel351/btn_Add_Material_FOF503 Response OnClick ( - H_Forecast selection + H_OrderForecastRealQty selection ) id:Response_Panel351_btn_Add_Material_FOF503_OnClick_222 { #keys: '[414724.0.145178766]' @@ -17,21 +17,36 @@ if( isnull( SelectItem)) { MacroPlan.H_MessagePassing(relnew,FKey :="FrmOrderForecast",ItemKey := "ListSelect", - Value := selection.SKU()+";"+selection.Util()+";"+selection.CustomCode()+";"+selection.CustomName(), ValueJsonString := JSON::Object().Add( "SKU",selection.SKU()) - .Add( "Util",selection.Util()) - .Add( "CustomCode",selection.CustomCode()) - .Add( "CustomName",selection.CustomName()).Build().AsString()); + .Add( "SKUName",selection.SKUName()) + .Add( "Util",selection.Unit()) + .Add( "CustomCode",selection.CustomCode()) + .Add( "CustomName",selection.CustomName()) + .Add( "ForecastQty",selection.ForecastQty()) + .Add( "ForecastID",selection.ID()) + .Add( "NeedTime",selection.Month().AsQUILL()).Build().AsString()); } else { - SelectItem.Value(selection.SKU()+";"+selection.Util()+";"+selection.CustomCode()+";"+selection.CustomName()); SelectItem.ValueJsonString(JSON::Object().Add( "SKU",selection.SKU()) - .Add( "Util",selection.Util()) - .Add( "CustomCode",selection.CustomCode()) - .Add( "CustomName",selection.CustomName()).Build().AsString()); + .Add( "SKUName",selection.SKUName()) + .Add( "Util",selection.Unit()) + .Add( "CustomCode",selection.CustomCode()) + .Add( "CustomName",selection.CustomName()) + .Add( "ForecastQty",selection.ForecastQty()) + .Add( "ForecastID",selection.ID()) + .Add( "NeedTime",selection.Month().AsQUILL()).Build().AsString()); } - Application.OpenForm( "FrmMaterial","popout"); + + jResult := H_FunctionClass::SM_GetMaterialData( MacroPlan,selection.SKU(),selection.ForecastQty(),selection.ID(),"-",selection.Month(),GlobalOTDTable); + if(jResult.Get( "Status").GetBoolean()) + { + Application.OpenForm( "FrmMaterial","popout"); + } + else + { + WebMessageBox::Warning( jResult.Get( "Msg").GetString()); + } } else { 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 bf1f99c..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" @@ -1,7 +1,7 @@ Quintiq file version 2.0 #parent: Panel351/btn_Add_Order_FOF449 Response OnClick ( - H_Forecast selection + H_OrderForecastRealQty selection ) id:Response_Panel351_btn_Add_Order_FOF449_OnClick_880 { #keys: '[414724.0.141244111]' @@ -16,20 +16,21 @@ SelectItem := select( MacroPlan,H_MessagePassing,Obj,Obj.FKey()="FrmOrderForecast" and Obj.ItemKey()="ListSelect"); if( isnull( SelectItem)) { + MacroPlan.H_MessagePassing(relnew,FKey :="FrmOrderForecast",ItemKey := "ListSelect", - Value := selection.SKU()+";"+selection.Util()+";"+selection.CustomCode()+";"+selection.CustomName(), - ValueJsonString := JSON::Object().Add( "SKU",selection.SKU()) - .Add( "Util",selection.Util()) - .Add( "CustomCode",selection.CustomCode()) - .Add( "CustomName",selection.CustomName()).Build().AsString()); + 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 { - SelectItem.Value(selection.SKU()+";"+selection.Util()+";"+selection.CustomCode()+";"+selection.CustomName()); SelectItem.ValueJsonString(JSON::Object().Add( "SKU",selection.SKU()) - .Add( "Util",selection.Util()) - .Add( "CustomCode",selection.CustomCode()) - .Add( "CustomName",selection.CustomName()).Build().AsString()); + .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_Panel351_btn_OrderH_FOF_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel351_btn_OrderH_FOF_OnClick.def new file mode 100644 index 0000000..4aa4c40 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel351_btn_OrderH_FOF_OnClick.def @@ -0,0 +1,16 @@ +Quintiq file version 2.0 +#parent: Panel351/btn_OrderH_FOF +Response OnClick () id:Response_Panel351_btn_OrderH_FOF_OnClick +{ + #keys: '[414724.0.166610329]' + 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_FrmOrderForecast/Response_Panel351_btn_Query_FOF_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel351_btn_Query_FOF_OnClick.def new file mode 100644 index 0000000..1b95a1a --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel351_btn_Query_FOF_OnClick.def @@ -0,0 +1,21 @@ +Quintiq file version 2.0 +#parent: Panel351/btn_Query_FOF +Response OnClick () id:Response_Panel351_btn_Query_FOF_OnClick +{ + #keys: '[414724.0.172390950]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebButton_OnClick' + QuillAction + { + Body: + [* + de_dh_FOF_H_Foecast.FixedFilter( "object.SKU().LikeUserLocale( " + txt_QueryContent_FOF.Text().AsQUILL() + " )" + + " or " + "object.CustomName().LikeUserLocale( " + txt_QueryContent_FOF.Text().AsQUILL() + " )" + + " or " + "object.Unit().LikeUserLocale( " + txt_QueryContent_FOF.Text().AsQUILL() + " )" + + " or " + "object.Department().LikeUserLocale( " + txt_QueryContent_FOF.Text().AsQUILL() + " )" + + " or " + "object.StockingPointID().LikeUserLocale( " + txt_QueryContent_FOF.Text().AsQUILL() + " )" + ); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel383_btn_Query_FOF_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel383_btn_Query_FOF_OnClick.def deleted file mode 100644 index 41a29a8..0000000 --- a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel383_btn_Query_FOF_OnClick.def +++ /dev/null @@ -1,17 +0,0 @@ -Quintiq file version 2.0 -#parent: Panel383/btn_Query_FOF -Response OnClick () id:Response_Panel383_btn_Query_FOF_OnClick -{ - #keys: '[414724.0.91472695]' - CanBindMultiple: false - DefinitionID: 'Responsedef_WebButton_OnClick' - QuillAction - { - Body: - [* - MacroPlan.H_Forecast(relnew, CustomName := "灏忕背",CustomCode := "XM001",ForecastQty := 100,Department := "閿�鍞�1閮�", - NeedTime := Date::ActualDate(),OrderCode := "00010101",SKU := "ANNDDSSSS",Util := "PCS"); - *] - GroupServerCalls: false - } -} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel647_btn_Add_Material_FOF_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel647_btn_Add_Material_FOF_OnClick.def deleted file mode 100644 index b54e053..0000000 --- a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel647_btn_Add_Material_FOF_OnClick.def +++ /dev/null @@ -1,20 +0,0 @@ -Quintiq file version 2.0 -#parent: Panel647/btn_Add_Material_FOF -Response OnClick () id:Response_Panel647_btn_Add_Material_FOF_OnClick -{ - #keys: '[414724.0.86152486]' - CanBindMultiple: false - DefinitionID: 'Responsedef_WebButton_OnClick' - Precondition: - [* - return not isnull( MacroPlan); - *] - QuillAction - { - Body: - [* - Application.OpenForm( "FrmMaterial","popout"); - *] - GroupServerCalls: false - } -} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel647_btn_Add_Order_FOF_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel647_btn_Add_Order_FOF_OnClick.def deleted file mode 100644 index 82c16f5..0000000 --- a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel647_btn_Add_Order_FOF_OnClick.def +++ /dev/null @@ -1,28 +0,0 @@ -Quintiq file version 2.0 -#parent: Panel647/btn_Add_Order_FOF -Response OnClick () id:Response_Panel647_btn_Add_Order_FOF_OnClick -{ - #keys: '[414724.0.86152095]' - CanBindMultiple: false - DefinitionID: 'Responsedef_WebButton_OnClick' - Precondition: - [* - return not isnull( MacroPlan); - *] - QuillAction - { - Body: - [* - SelectItem := select( MacroPlan,H_MessagePassing,Obj,Obj.FKey()="FrmOrderForecast" and Obj.ItemKey()="ListSelect"); - if(not isnull( SelectItem) and SelectItem.Value().Length()>0) - { - Application.OpenForm( "FrmAuthorizeAndCountersign_Order","popout"); - } - else - { - WebMessageBox::Information( "璇烽�夋嫨涓�椤归娴嬪悗鍐嶇偣鍑绘寜閽紒"); - } - *] - GroupServerCalls: false - } -} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel647_btn_InitialData_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel647_btn_InitialData_OnClick.def deleted file mode 100644 index 1804c2e..0000000 --- a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel647_btn_InitialData_OnClick.def +++ /dev/null @@ -1,39 +0,0 @@ -Quintiq file version 2.0 -#parent: Panel647/btn_InitialData -Response OnClick () id:Response_Panel647_btn_InitialData_OnClick -{ - #keys: '[414724.0.93657952]' - CanBindMultiple: false - DefinitionID: 'Responsedef_WebButton_OnClick' - Precondition: - [* - return not isnull( MacroPlan); - *] - 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 4333154..ac7e8b0 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_liH_Forecast_OnDoubleClick.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_liH_Forecast_OnDoubleClick.def @@ -1,7 +1,7 @@ Quintiq file version 2.0 #parent: liH_Forecast Response OnDoubleClick ( - H_Forecast selection + H_OrderForecastRealQty selection ) id:Response_liH_Forecast_OnDoubleClick { #keys: '[414724.0.111761136]' @@ -15,21 +15,36 @@ if( isnull( SelectItem)) { MacroPlan.H_MessagePassing(relnew,FKey :="FrmOrderForecast",ItemKey := "ListSelect", - Value := selection.SKU()+";"+selection.Util()+";"+selection.CustomCode()+";"+selection.CustomName(), ValueJsonString := JSON::Object().Add( "SKU",selection.SKU()) - .Add( "Util",selection.Util()) + .Add( "SKUName",selection.SKUName()) + .Add( "Util",selection.Unit()) .Add( "CustomCode",selection.CustomCode()) - .Add( "CustomName",selection.CustomName()).Build().AsString()); + .Add( "CustomName",selection.CustomName()) + .Add( "ForecastQty",selection.ForecastQty()) + .Add( "ForecastID",selection.ID()) + .Add( "NeedTime",selection.Month().AsQUILL()).Build().AsString()); } else { - SelectItem.Value(selection.SKU()+";"+selection.Util()+";"+selection.CustomCode()+";"+selection.CustomName()); SelectItem.ValueJsonString(JSON::Object().Add( "SKU",selection.SKU()) - .Add( "Util",selection.Util()) - .Add( "CustomCode",selection.CustomCode()) - .Add( "CustomName",selection.CustomName()).Build().AsString()); + .Add( "SKUName",selection.SKUName()) + .Add( "Util",selection.Unit()) + .Add( "CustomCode",selection.CustomCode()) + .Add( "CustomName",selection.CustomName()) + .Add( "ForecastQty",selection.ForecastQty()) + .Add( "ForecastID",selection.ID()) + .Add( "NeedTime",selection.Month().AsQUILL()).Build().AsString()); } - Application.OpenForm( "FrmMaterial","popout"); + + jResult := H_FunctionClass::SM_GetMaterialData( MacroPlan,selection.SKU(),selection.ForecastQty(),selection.ID(),"-",selection.Month(),GlobalOTDTable ); + if(jResult.Get( "Status").GetBoolean()) + { + Application.OpenForm( "FrmMaterial","popout"); + } + else + { + WebMessageBox::Warning( jResult.Get( "Msg").GetString()); + } *] GroupServerCalls: false } diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_list_ForecastView_FOF_OnDoubleClick.def b/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_list_ForecastView_FOF_OnDoubleClick.def deleted file mode 100644 index 3d85f54..0000000 --- a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_list_ForecastView_FOF_OnDoubleClick.def +++ /dev/null @@ -1,30 +0,0 @@ -Quintiq file version 2.0 -#parent: list_ForecastView_FOF -Response OnDoubleClick ( - Forecast selection -) id:Response_list_ForecastView_FOF_OnDoubleClick -{ - #keys: '[414724.0.92081867]' - CanBindMultiple: false - DefinitionID: 'Responsedef_WebList_OnDoubleClick' - GroupServerCalls: true - Precondition: - [* - return not isnull( MacroPlan); - *] - QuillAction - { - Body: - [* - SelectItem := select( MacroPlan,H_MessagePassing,Obj,Obj.FKey()="FrmOrderForecast" and Obj.ItemKey()="ListSelect"); - if( isnull( SelectItem)) - { - MacroPlan.H_MessagePassing(relnew,FKey :="FrmOrderForecast",ItemKey := "ListSelect",Value := ""); - } - CustomID := "NO"; - CustonName :="鏈姄鍙栧埌"; - SelectItem.Value(selection.ProductID()+";"+selection.UnitOfMeasureName()+";"+CustomID+";"+CustonName); - Application.OpenForm( "FrmMaterial","popout"); - *] - } -} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_list_ForecastView_FOF_OnSelectionChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_list_ForecastView_FOF_OnSelectionChanged.def deleted file mode 100644 index 582090d..0000000 --- a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_list_ForecastView_FOF_OnSelectionChanged.def +++ /dev/null @@ -1,25 +0,0 @@ -Quintiq file version 2.0 -#parent: list_ForecastView_FOF -Response OnSelectionChanged ( - Forecast selection -) id:Response_list_ForecastView_FOF_OnSelectionChanged -{ - #keys: '[414724.0.91684287]' - CanBindMultiple: false - DefinitionID: 'Responsedef_WebList_OnSelectionChanged' - QuillAction - { - Body: - [* - SelectItem := select( MacroPlan,H_MessagePassing,Obj,Obj.FKey()="FrmOrderForecast" and Obj.ItemKey()="ListSelect"); - if( isnull( SelectItem)) - { - MacroPlan.H_MessagePassing(relnew,FKey :="FrmOrderForecast",ItemKey := "ListSelect",Value := ""); - } - CustomID := "NO"; - CustonName :="鏈姄鍙栧埌"; - SelectItem.Value(selection.ProductID()+";"+selection.UnitOfMeasureName()+";"+CustomID+";"+CustonName); - *] - GroupServerCalls: false - } -} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/_ROOT_Component_FrmOrderForecast.def b/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/_ROOT_Component_FrmOrderForecast.def index d6e1cad..3d07f93 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/_ROOT_Component_FrmOrderForecast.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/_ROOT_Component_FrmOrderForecast.def @@ -7,100 +7,12 @@ BaseType: 'WebForm' Children: [ - #child: Panel849 - #child: list_ForecastView_FOF - Component dh_FOF_Data - { - #keys: '[414724.0.86151860]' - BaseType: 'WebDataHolder' - Databinding: 'structured[SalesDemandBase]*' - Children: - [ - Component de_dh_FOF_Data - { - #keys: '[414724.0.86151875]' - BaseType: 'WebDataExtractor' - Properties: - [ - DataType: 'structured[SalesDemandBase]' - Source: 'dh_FOF_ChildrenData' - Taborder: 0 - Transformation: 'Elements' - ] - } - Component DataExtractor819 - { - #keys: '[414724.0.107645127]' - BaseType: 'WebDataExtractor' - Properties: - [ - DataType: 'MacroPlan' - Source: 'MacroPlan' - Taborder: 1 - Transformation: 'SalesDemand' - ] - } - ] - Properties: - [ - Taborder: 4 - ] - } #child: Panel961 - Component dh_FOF_ChildrenData - { - #keys: '[414724.0.106541535]' - BaseType: 'WebDataHolder' - Databinding: 'structured[SalesDemandBase]*' - Children: - [ - Component de_FOF_ChildrenData_0 - { - #keys: '[414724.0.106541577]' - BaseType: 'WebDataExtractor' - Properties: - [ - DataType: 'structured[Product_MP]' - Source: 'ApplicationMacroPlanner.DataHolderProduct' - Taborder: 0 - Transformation: 'Elements.SalesDemand' - ] - } - Component de_FOF_ChildrenData_1 - { - #keys: '[414724.0.106541594]' - BaseType: 'WebDataExtractor' - Properties: - [ - DataType: 'structured[StockingPoint_MP]' - Source: 'ApplicationMacroPlanner.DataHolderStockingPoint' - Taborder: 1 - Transformation: 'Elements.SalesDemand' - ] - } - Component de_FOF_ChildrenData_2 - { - #keys: '[414724.0.106541611]' - BaseType: 'WebDataExtractor' - Properties: - [ - DataType: 'structured[SalesSegment_MP]' - Source: 'ApplicationMacroPlanner.DataHolderSalesSegment' - Taborder: 2 - Transformation: 'Elements.SalesDemand' - ] - } - ] - Properties: - [ - Taborder: 3 - ] - } - Component dh_FOF_H_Forecast + Component dh_FOF_H_OrderForecastRealQty { #keys: '[414724.0.109053093]' BaseType: 'WebDataHolder' - Databinding: 'structured[H_Forecast]*' + Databinding: 'structured[H_OrderForecastRealQty]*' Children: [ Component de_dh_FOF_H_Foecast @@ -112,13 +24,13 @@ DataType: 'MacroPlan' Source: 'MacroPlan' Taborder: 0 - Transformation: 'H_Forecast' + Transformation: 'H_OrderForecastRealQty' ] } ] Properties: [ - Taborder: 6 + Taborder: 2 ] } #child: liH_Forecast diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderResult/Component_List782.def b/_Main/UI/MacroPlannerWebApp/Component_FrmOrderResult/Component_List782.def index 8a9e630..915ae2c 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FrmOrderResult/Component_List782.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FrmOrderResult/Component_List782.def @@ -28,7 +28,7 @@ ] Properties: [ - Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderCode","title":"OrderCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SKU","title":"SKU","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SKU"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderQty","title":"OrderQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ReverseQty","title":"ReverseQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ReverseQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"AuthorizeQty","title":"AuthorizeQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"AuthorizeQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastQty","title":"ForecastQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastHitQty","title":"ForecastHitQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastHitQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastNoHitQty","title":"ForecastNoHitQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastNoHitQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerName","title":"CustomerName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerCode","title":"CustomerCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerCode"}}]' + Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderCode","title":"璁㈠崟缂栧彿","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SKU","title":"SKU缂栫爜","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SKU"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderQty","title":"鏂板璁㈠崟","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ReverseQty","title":"鍙嶇","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ReverseQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"AuthorizeQty","title":"鎺堟潈","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"AuthorizeQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastQty","title":"棰勬祴","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastHitQty","title":"鏈夐娴�","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastHitQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastNoHitQty","title":"鏃犻娴�","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastNoHitQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerName","title":"瀹㈡埛鍚嶇О","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerCode","title":"瀹㈡埛ID","subtotals":"","tooltip":"","width":-1,"display":"hidden","editable":false,"attribute":"CustomerCode"}}]' ContextMenu: 'listContextMenu526' Taborder: 2 ] diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmRAShow/Component_List696.def b/_Main/UI/MacroPlannerWebApp/Component_FrmRAShow/Component_List696.def index 8ba9e27..efcc861 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FrmRAShow/Component_List696.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FrmRAShow/Component_List696.def @@ -28,7 +28,7 @@ ] Properties: [ - Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SKU","title":"SKU","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SKU"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MType","title":"MType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ReverseQty","title":"ReverseQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ReverseQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"AuthorizeQty","title":"AuthorizeQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"AuthorizeQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Unit","title":"Unit","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Unit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerName","title":"CustomerName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerName"}}]' + Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SKU","title":"SKU缂栫爜","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SKU"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MType","title":"绫诲瀷","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ReverseQty","title":"棰勬祴鏁伴噺","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ReverseQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"AuthorizeQty","title":"鎺堟潈鏁伴噺","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"AuthorizeQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Unit","title":"鍗曚綅","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Unit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerName","title":"瀹㈡埛鍚嶇О","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerName"}}]' ContextMenu: 'listContextMenu660' Taborder: 2 ] diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmRAShow/Component_Panel224.def b/_Main/UI/MacroPlannerWebApp/Component_FrmRAShow/Component_Panel224.def index 652ca4c..f95c042 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FrmRAShow/Component_Panel224.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FrmRAShow/Component_Panel224.def @@ -32,6 +32,7 @@ BaseType: 'WebButton' Properties: [ + ButtonSize: 'compact' Image: 'VIEW' Label: '鏌ヨ' Taborder: 2 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/OrderLock.vw b/_Main/UI/MacroPlannerWebApp/Views/OrderLock.vw index 0cae0ba..a309668 100644 --- a/_Main/UI/MacroPlannerWebApp/Views/OrderLock.vw +++ b/_Main/UI/MacroPlannerWebApp/Views/OrderLock.vw @@ -4,204 +4,403 @@ { forms { - form_legacy_1 + form_FormOrderLockLog { - title: 'Scenario manager' + title: 'QTIANMA_JITUAN::FormOrderLockLog' shown: true - componentID: 'FormScenarioManager' + componentID: 'QTIANMA_JITUAN::FormOrderLockLog' layout { mode: 'open' - rowPosition: 1 + rowPosition: 14 rowSpan: 8 columnPosition: 1 - columnSpan: 5 + columnSpan: 12 } components { - FormScenarioManager_ListScenario + FormOrderLockLog_PanelOrderLockLog + { + sizeRatio: 1 + } + FormOrderLockLog_ListOrderLockLog { } - FormScenarioManager_DataSetLevelScenario + FormOrderLockLog_DataSetLevelOrderLockLog { groupDepth: -1 - column_All_constraints + sort: 'DESC:Notes' + column_OrderID { - columnId: 'All constraints' - dataPath: 'All constraints' + columnId: 'OrderID' + dataPath: 'OrderID' dataType: 'string' - title: 'All constraints' + title: '璁㈠崟鍙�' index: 0 subtotals: '' - width: 90 + width: 150 } - column_Name + column_ProductID { - columnId: 'Name' - dataPath: 'Name' + columnId: 'ProductID' + dataPath: 'ProductID' dataType: 'string' - title: '鍚嶇О' + title: '鐗╂枡鍙�' index: 1 subtotals: '' - width: 277 + width: 150 } - column_ChangedBy + column_SalesSegmentName { - columnId: 'ChangedBy' - dataPath: 'ChangedBy' + columnId: 'SalesSegmentName' + dataPath: 'SalesSegmentName' dataType: 'string' - title: 'Changed by' + title: '閿�鍞儴闂�' index: 2 subtotals: '' - width: 106 + width: 150 } - column_ChangedOn + column_StockingPointID { - columnId: 'ChangedOn' - dataPath: 'ChangedOn' - dataType: 'datetime' - title: 'Changed on' - index: 3 - subtotals: '' - width: 99 - } - column_StorageMode - { - columnId: 'StorageMode' - dataPath: 'StorageMode' + columnId: 'StockingPointID' + dataPath: 'StockingPointID' 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: '鏍囬' + title: '搴撳瓨鐐�' index: 3 subtotals: '' width: 150 } - column_ChangedBy + column_CustomerName { - columnId: 'ChangedBy' - dataPath: 'ChangedBy' + columnId: 'CustomerName' + dataPath: 'CustomerName' dataType: 'string' - title: 'Changed by' + title: '瀹㈡埛鍚嶇О' index: 4 subtotals: '' width: 150 } - column_CreatedOn + column_Quantity { - columnId: 'CreatedOn' - dataPath: 'CreatedOn' - dataType: 'datetime' - title: 'Created on' + columnId: 'Quantity' + dataPath: 'Quantity' + dataType: 'real' index: 5 subtotals: '' width: 150 } + column_UnitOfMeasureName + { + columnId: 'UnitOfMeasureName' + dataPath: 'UnitOfMeasureName' + dataType: 'string' + title: '鍗曚綅' + index: 6 + subtotals: '' + width: 150 + } + column_Price + { + columnId: 'Price' + dataPath: 'Price' + dataType: 'real' + title: '閿�鍞' + index: 7 + subtotals: '' + width: 150 + } + column_EndDate + { + columnId: 'EndDate' + dataPath: 'EndDate' + dataType: 'date' + title: '瀹㈡埛闇�姹傛椂闂�' + index: 8 + subtotals: '' + width: 150 + } + column_IsLocked + { + columnId: 'IsLocked' + dataPath: 'IsLocked' + dataType: 'boolean' + title: '鐘舵��' + index: 9 + subtotals: '' + width: 150 + } + column_End + { + columnId: 'End' + dataPath: 'End' + dataType: 'date' + title: '璁″垝浜や粯鏃堕棿' + index: 10 + subtotals: '' + width: 150 + } + column_LastModify + { + columnId: 'LastModify' + dataPath: 'LastModify' + dataType: 'string' + title: '鏈�鍚庢搷浣滀汉' + index: 11 + subtotals: '' + width: 150 + } + column_LastModifyTime + { + columnId: 'LastModifyTime' + dataPath: 'LastModifyTime' + dataType: 'datetime' + title: '鏈�鍚庢搷浣滄椂闂�' + index: 12 + subtotals: '' + width: 145 + } + column_Notes + { + columnId: 'Notes' + dataPath: 'Notes' + dataType: 'string' + title: '鎿嶄綔璇︽儏' + index: 13 + subtotals: '' + width: 150 + } } } } - form_FormScenariosKPIsComparison + form_FormOrderLock { - title: 'QLibMacroPlannerWebUI::FormScenariosKPIsComparison' + title: 'QTIANMA_JITUAN::FormOrderLock' shown: true - componentID: 'QLibMacroPlannerWebUI::FormScenariosKPIsComparison' + componentID: 'QTIANMA_JITUAN::FormOrderLock' layout { mode: 'open' rowPosition: 1 - rowSpan: 16 - columnPosition: 6 - columnSpan: 7 + rowSpan: 13 + columnPosition: 1 + columnSpan: 12 } components { - FormScenariosKPIsComparison_MatrixEditorFinancialKPIs + FormOrderLock_PanelOrderLock + { + sizeRatio: 1 + } + FormOrderLock_PanelOrderLockHeader + { + sizeRatio: 1 + } + FormOrderLock_PanelOrderLockOrder + { + sizeRatio: 1 + } + FormOrderLock_ListOrderLock + { + } + FormOrderLock_DataSetLevelOrderLock + { + groupDepth: -1 + sort: 'StartDate' + column_OrderID + { + columnId: 'OrderID' + dataPath: 'OrderID' + dataType: 'string' + title: '璁㈠崟鍙�' + index: 0 + subtotals: '' + width: 150 + } + column_ProductID + { + columnId: 'ProductID' + dataPath: 'ProductID' + dataType: 'string' + title: '鐗╂枡鍙�' + index: 1 + subtotals: '' + width: 150 + } + column_SalesSegmentName + { + columnId: 'SalesSegmentName' + dataPath: 'SalesSegmentName' + dataType: 'string' + title: '閿�鍞儴闂�' + index: 2 + subtotals: '' + width: 150 + } + column_StockingPointID + { + columnId: 'StockingPointID' + dataPath: 'StockingPointID' + dataType: 'string' + title: '搴撳瓨鐐�' + index: 3 + subtotals: '' + width: 150 + } + column_CustomerName + { + columnId: 'CustomerName' + dataPath: 'CustomerName' + dataType: 'string' + title: '瀹㈡埛鍚嶇О' + 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' + title: '鍗曚綅' + index: 6 + subtotals: '' + width: 150 + } + column_Price + { + columnId: 'Price' + dataPath: 'Price' + dataType: 'real' + title: '閿�鍞' + index: 7 + subtotals: '' + width: 150 + } + column_StartDate + { + columnId: 'StartDate' + dataPath: 'StartDate' + dataType: 'date' + title: '瀹㈡埛闇�姹傛椂闂�' + index: 8 + subtotals: '' + width: 150 + } + column_IsLocked + { + columnId: 'IsLocked' + dataPath: 'IsLocked' + dataType: 'boolean' + title: '鐘舵��' + index: 9 + subtotals: '' + width: 150 + } + column_First_AsPlanningBaseSalesDemandInPeriod_End + { + columnId: 'First.AsPlanningBaseSalesDemandInPeriod.End' + dataPath: 'First.AsPlanningBaseSalesDemandInPeriod.End' + dataType: 'datetime' + title: '璁″垝浜や粯鏃堕棿' + index: 10 + subtotals: '' + width: 150 + } + column_LastModify + { + columnId: 'LastModify' + dataPath: 'LastModify' + dataType: 'string' + title: '鏈�鍚庢搷浣滀汉' + index: 11 + subtotals: '' + width: 150 + } + column_LastModifyTime + { + columnId: 'LastModifyTime' + dataPath: 'LastModifyTime' + dataType: 'datetime' + title: '鏈�鍚庢搷浣滄椂闂�' + index: 12 + subtotals: '' + width: 150 + } + } + FormOrderLock_PanelOrderLockPlanning + { + sizeRatio: 1 + } + FormOrderLock_PanelMatrix + { + sizeRatio: 1 + } + FormOrderLock_MatrixEditorProductPlanning { gridColor: '#c4c4c4' - totalHeaderWidth: 200 - attributeHeaderWidthRatio: 0.6 - nameHeaderWidthRatio: 0.4 + totalHeaderWidth: 427 + attributeHeaderWidthRatio: 0.325989701966572 + nameHeaderWidthRatio: 0.674010298033429 columnWidth: 100 horizontalGrid: true verticalGrid: true backendState { - componentId: 'QLibMacroPlannerWebUI::FormScenariosKPIsComparison.MatrixEditorFinancialKPIs' + componentId: 'QTIANMA_JITUAN::FormOrderLock.MatrixEditorProductPlanning' state { cells { attributes { - attribute_DisplayValue + attribute_DisplaySupplyQuantity { type: 'MatrixEditorWebApiCellDataModelInterest' index: 0 rowsubtotal: '' columnsubtotal: '' - attribute: 'DisplayValue' + attribute: 'DisplaySupplyQuantity' + } + attribute_DependentDemandAndSalesDemandQuantity + { + type: 'MatrixEditorWebApiCellDataModelInterest' + index: 1 + rowsubtotal: '' + columnsubtotal: '' + attribute: 'DependentDemandAndSalesDemandQuantity' + } + attribute_TargetInventoryLevel + { + type: 'MatrixEditorWebApiCellDataModelInterest' + index: 2 + rowsubtotal: '' + columnsubtotal: '' + attribute: 'TargetInventoryLevel' + } + attribute_InventoryLevelEnd + { + type: 'MatrixEditorWebApiCellDataModelInterest' + index: 3 + rowsubtotal: '' + columnsubtotal: '' + attribute: 'InventoryLevelEnd' + } + attribute_StockLevelInDays + { + type: 'MatrixEditorWebApiCellDataModelInterest' + index: 4 + rowsubtotal: '' + columnsubtotal: '' + attribute: 'StockLevelInDays' } } } @@ -209,14 +408,14 @@ { sorting { - criteria: '' + criteria: "datamember:'Start'" } } rows { sorting { - criteria: "datamember:'KPISetting.DisplayIndex'" + criteria: "datamember:'Product_MP.DisplayIndex';datamember:'Name'" } } } @@ -337,10 +536,10 @@ userconfigurableinformation { } - index: 2 - image: 'DOCUMENT_LOCK' page: 'applicationDevelopmentActionBarPageDef' group: '' + index: 2 + image: 'DOCUMENT_LOCK' 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 new file mode 100644 index 0000000..1a6fe97 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Views/Test.vw @@ -0,0 +1,458 @@ +Quintiq file version 2.0 +{ + viewcontents + { + forms + { + form_FormCapacityAllocationResultsRuleConfiguration + { + title: 'QTIANMA_JITUAN::FormCapacityAllocationResultsRuleConfiguration' + shown: true + componentID: 'QTIANMA_JITUAN::FormCapacityAllocationResultsRuleConfiguration' + layout + { + mode: 'open' + rowPosition: 1 + rowSpan: 15 + columnPosition: 1 + columnSpan: 4 + } + components + { + FormCapacityAllocationResultsRuleConfiguration_PanelImportAndExport + { + sizeRatio: 1 + } + FormCapacityAllocationResultsRuleConfiguration_ListCapacityAllocationResultsRuleConfiguration + { + } + FormCapacityAllocationResultsRuleConfiguration_DataSetLevelCapacityAllocationResultsRuleConfiguration + { + groupDepth: -1 + column_PanelMaterialCode + { + columnId: 'PanelMaterialCode' + dataPath: 'PanelMaterialCode' + dataType: 'string' + index: 0 + subtotals: '' + width: 150 + } + column_ModuleMaterialCode + { + columnId: 'ModuleMaterialCode' + dataPath: 'ModuleMaterialCode' + dataType: 'string' + index: 1 + subtotals: '' + width: 150 + } + column_Division + { + columnId: 'Division' + dataPath: 'Division' + dataType: 'string' + index: 2 + subtotals: '' + width: 150 + } + column_StockingPointID + { + columnId: 'StockingPointID' + dataPath: 'StockingPointID' + dataType: 'string' + index: 3 + subtotals: '' + width: 150 + } + } + } + } + form_FormCapacityAllocationResults + { + title: 'QTIANMA_JITUAN::FormCapacityAllocationResults' + shown: true + componentID: 'QTIANMA_JITUAN::FormCapacityAllocationResults' + layout + { + mode: 'open' + rowPosition: 1 + rowSpan: 15 + columnPosition: 5 + columnSpan: 8 + } + components + { + FormCapacityAllocationResults_PanelCapacityAllocationResults + { + sizeRatio: 1 + } + FormCapacityAllocationResults_ListCapacityAllocationResults + { + } + FormCapacityAllocationResults_DataSetLevelCapacityAllocationResults + { + groupDepth: -1 + column_Date + { + columnId: 'Date' + dataPath: 'Date' + dataType: 'date' + index: 0 + subtotals: '' + width: 150 + } + column_Description + { + columnId: 'Description' + dataPath: 'Description' + dataType: 'string' + index: 1 + subtotals: '' + width: 150 + } + column_ID + { + columnId: 'ID' + dataPath: 'ID' + dataType: 'string' + index: 2 + subtotals: '' + width: 150 + } + column_ProductID + { + columnId: 'ProductID' + dataPath: 'ProductID' + dataType: 'string' + index: 3 + subtotals: '' + width: 150 + } + column_StockingPointID + { + columnId: 'StockingPointID' + dataPath: 'StockingPointID' + dataType: 'string' + index: 4 + subtotals: '' + width: 150 + } + column_UserQuantity + { + columnId: 'UserQuantity' + dataPath: 'UserQuantity' + dataType: 'real' + index: 5 + subtotals: '' + width: 150 + } + column_ManufacturedDate + { + columnId: 'ManufacturedDate' + dataPath: 'ManufacturedDate' + dataType: 'date' + index: 6 + subtotals: '' + width: 150 + } + } + } + } + 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_PanelFillingCapacityOrder + { + sizeRatio: 1 + } + 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 + } + } + } + } + } + userconfigurableinformation + { + } + image: 'BEAR' + page: '' + group: '' + index: 0 + description: '' + } + formatversion: 2 + id: 'Test' + name: 'Test' + isglobal: false + isroot: true +} diff --git "a/_Main/UI/MacroPlannerWebApp/Views/\345\241\253\344\272\247\346\226\271\346\241\210\345\210\227\350\241\250.vw" "b/_Main/UI/MacroPlannerWebApp/Views/\345\241\253\344\272\247\346\226\271\346\241\210\345\210\227\350\241\250.vw" index 359d913..9f88591 100644 --- "a/_Main/UI/MacroPlannerWebApp/Views/\345\241\253\344\272\247\346\226\271\346\241\210\345\210\227\350\241\250.vw" +++ "b/_Main/UI/MacroPlannerWebApp/Views/\345\241\253\344\272\247\346\226\271\346\241\210\345\210\227\350\241\250.vw" @@ -180,10 +180,10 @@ userconfigurableinformation { } + group: '' index: 0 image: '' page: '' - group: '' description: '' } formatversion: 2 diff --git "a/_Main/UI/MacroPlannerWebApp/Views/\345\271\264\345\272\246\344\272\247\351\224\200\345\244\215\347\233\230.vw" "b/_Main/UI/MacroPlannerWebApp/Views/\345\271\264\345\272\246\344\272\247\351\224\200\345\244\215\347\233\230.vw" new file mode 100644 index 0000000..64db9ed --- /dev/null +++ "b/_Main/UI/MacroPlannerWebApp/Views/\345\271\264\345\272\246\344\272\247\351\224\200\345\244\215\347\233\230.vw" @@ -0,0 +1,777 @@ +Quintiq file version 2.0 +{ + viewcontents + { + forms + { + form_FormCapacityAndSaleBudge + { + title: 'QTIANMA_JITUAN::FormCapacityAndSaleBudge' + shown: true + componentID: 'QTIANMA_JITUAN::FormCapacityAndSaleBudge' + layout + { + mode: 'open' + rowPosition: 1 + rowSpan: 4 + columnPosition: 1 + columnSpan: 2 + } + components + { + FormCapacityAndSaleBudge_ListCapacityAndSaleBudge + { + } + FormCapacityAndSaleBudge_DataSetLevelCapacityAndSaleBudge + { + groupDepth: -1 + column_Deleted + { + columnId: 'Deleted' + dataPath: 'Deleted' + dataType: 'boolean' + index: 0 + subtotals: '' + width: 150 + } + column_YearNo + { + columnId: 'YearNo' + dataPath: 'YearNo' + dataType: 'number' + index: 1 + subtotals: '' + width: 150 + } + column_OrgCode + { + columnId: 'OrgCode' + dataPath: 'OrgCode' + dataType: 'string' + index: 2 + subtotals: '' + width: 150 + } + column_DisplayTechnology + { + columnId: 'DisplayTechnology' + dataPath: 'DisplayTechnology' + dataType: 'string' + index: 3 + subtotals: '' + width: 150 + } + column_BusinessType + { + columnId: 'BusinessType' + dataPath: 'BusinessType' + dataType: 'string' + index: 4 + subtotals: '' + width: 150 + } + column_LineAndSpecification + { + columnId: 'LineAndSpecification' + dataPath: 'LineAndSpecification' + dataType: 'string' + index: 5 + subtotals: '' + width: 150 + } + column_ProductCode + { + columnId: 'ProductCode' + dataPath: 'ProductCode' + dataType: 'string' + index: 6 + subtotals: '' + width: 150 + } + column_PlaceOfProductionOfArray + { + columnId: 'PlaceOfProductionOfArray' + dataPath: 'PlaceOfProductionOfArray' + dataType: 'string' + index: 7 + subtotals: '' + width: 150 + } + column_PlaceOfProductionOfEvaporation + { + columnId: 'PlaceOfProductionOfEvaporation' + dataPath: 'PlaceOfProductionOfEvaporation' + dataType: 'string' + index: 8 + subtotals: '' + width: 150 + } + column_Resolution + { + columnId: 'Resolution' + dataPath: 'Resolution' + dataType: 'string' + index: 9 + subtotals: '' + width: 150 + } + column_ShippingForm + { + columnId: 'ShippingForm' + dataPath: 'ShippingForm' + dataType: 'string' + index: 10 + subtotals: '' + width: 150 + } + column_NumberOfCut + { + columnId: 'NumberOfCut' + dataPath: 'NumberOfCut' + dataType: 'string' + index: 11 + subtotals: '' + width: 150 + } + column_CapacityEquivalent + { + columnId: 'CapacityEquivalent' + dataPath: 'CapacityEquivalent' + dataType: 'string' + index: 12 + subtotals: '' + width: 150 + } + column_NumberOfMask + { + columnId: 'NumberOfMask' + dataPath: 'NumberOfMask' + dataType: 'string' + index: 13 + subtotals: '' + width: 150 + } + column_CapacityInPCSInMonth1 + { + columnId: 'CapacityInPCSInMonth1' + dataPath: 'CapacityInPCSInMonth1' + dataType: 'real' + index: 14 + subtotals: '' + width: 150 + } + column_CapacityInPCSInMonth2 + { + columnId: 'CapacityInPCSInMonth2' + dataPath: 'CapacityInPCSInMonth2' + dataType: 'real' + index: 15 + subtotals: '' + width: 150 + } + column_CapacityInPCSInMonth3 + { + columnId: 'CapacityInPCSInMonth3' + dataPath: 'CapacityInPCSInMonth3' + dataType: 'real' + index: 16 + subtotals: '' + width: 150 + } + column_CapacityInPCSInMonth4 + { + columnId: 'CapacityInPCSInMonth4' + dataPath: 'CapacityInPCSInMonth4' + dataType: 'real' + index: 17 + subtotals: '' + width: 150 + } + column_CapacityInPCSInMonth5 + { + columnId: 'CapacityInPCSInMonth5' + dataPath: 'CapacityInPCSInMonth5' + dataType: 'real' + index: 18 + subtotals: '' + width: 150 + } + column_CapacityInPCSInMonth6 + { + columnId: 'CapacityInPCSInMonth6' + dataPath: 'CapacityInPCSInMonth6' + dataType: 'real' + index: 19 + subtotals: '' + width: 150 + } + column_CapacityInPCSInMonth7 + { + columnId: 'CapacityInPCSInMonth7' + dataPath: 'CapacityInPCSInMonth7' + dataType: 'real' + index: 20 + subtotals: '' + width: 150 + } + column_CapacityInPCSInMonth8 + { + columnId: 'CapacityInPCSInMonth8' + dataPath: 'CapacityInPCSInMonth8' + dataType: 'real' + index: 21 + subtotals: '' + width: 150 + } + column_CapacityInPCSInMonth9 + { + columnId: 'CapacityInPCSInMonth9' + dataPath: 'CapacityInPCSInMonth9' + dataType: 'real' + index: 22 + subtotals: '' + width: 150 + } + column_CapacityInPCSInMonth10 + { + columnId: 'CapacityInPCSInMonth10' + dataPath: 'CapacityInPCSInMonth10' + dataType: 'real' + index: 23 + subtotals: '' + width: 150 + } + column_CapacityInPCSInMonth11 + { + columnId: 'CapacityInPCSInMonth11' + dataPath: 'CapacityInPCSInMonth11' + dataType: 'real' + index: 24 + subtotals: '' + width: 150 + } + column_CapacityInPCSInMonth12 + { + columnId: 'CapacityInPCSInMonth12' + dataPath: 'CapacityInPCSInMonth12' + dataType: 'real' + index: 25 + subtotals: '' + width: 150 + } + column_CapacityInPCSTotal + { + columnId: 'CapacityInPCSTotal' + dataPath: 'CapacityInPCSTotal' + dataType: 'real' + index: 26 + subtotals: '' + width: 150 + } + column_CapacityInSheetInMonth1 + { + columnId: 'CapacityInSheetInMonth1' + dataPath: 'CapacityInSheetInMonth1' + dataType: 'real' + index: 27 + subtotals: '' + width: 150 + } + column_CapacityInSheetInMonth2 + { + columnId: 'CapacityInSheetInMonth2' + dataPath: 'CapacityInSheetInMonth2' + dataType: 'real' + index: 28 + subtotals: '' + width: 150 + } + column_CapacityInSheetInMonth3 + { + columnId: 'CapacityInSheetInMonth3' + dataPath: 'CapacityInSheetInMonth3' + dataType: 'real' + index: 29 + subtotals: '' + width: 150 + } + column_CapacityInSheetInMonth4 + { + columnId: 'CapacityInSheetInMonth4' + dataPath: 'CapacityInSheetInMonth4' + dataType: 'real' + index: 30 + subtotals: '' + width: 150 + } + column_CapacityInSheetInMonth5 + { + columnId: 'CapacityInSheetInMonth5' + dataPath: 'CapacityInSheetInMonth5' + dataType: 'real' + index: 31 + subtotals: '' + width: 150 + } + column_CapacityInSheetInMonth6 + { + columnId: 'CapacityInSheetInMonth6' + dataPath: 'CapacityInSheetInMonth6' + dataType: 'real' + index: 32 + subtotals: '' + width: 150 + } + column_CapacityInSheetInMonth7 + { + columnId: 'CapacityInSheetInMonth7' + dataPath: 'CapacityInSheetInMonth7' + dataType: 'real' + index: 33 + subtotals: '' + width: 150 + } + column_CapacityInSheetInMonth8 + { + columnId: 'CapacityInSheetInMonth8' + dataPath: 'CapacityInSheetInMonth8' + dataType: 'real' + index: 34 + subtotals: '' + width: 150 + } + column_CapacityInSheetInMonth9 + { + columnId: 'CapacityInSheetInMonth9' + dataPath: 'CapacityInSheetInMonth9' + dataType: 'real' + index: 35 + subtotals: '' + width: 150 + } + column_CapacityInSheetInMonth10 + { + columnId: 'CapacityInSheetInMonth10' + dataPath: 'CapacityInSheetInMonth10' + dataType: 'real' + index: 36 + subtotals: '' + width: 150 + } + column_CapacityInSheetInMonth11 + { + columnId: 'CapacityInSheetInMonth11' + dataPath: 'CapacityInSheetInMonth11' + dataType: 'real' + index: 37 + subtotals: '' + width: 150 + } + column_CapacityInSheetInMonth12 + { + columnId: 'CapacityInSheetInMonth12' + dataPath: 'CapacityInSheetInMonth12' + dataType: 'real' + index: 38 + subtotals: '' + width: 150 + } + column_CapacityInSheetTotal + { + columnId: 'CapacityInSheetTotal' + dataPath: 'CapacityInSheetTotal' + dataType: 'real' + index: 39 + subtotals: '' + width: 150 + } + column_SaleAmountInMonth1 + { + columnId: 'SaleAmountInMonth1' + dataPath: 'SaleAmountInMonth1' + dataType: 'real' + index: 40 + subtotals: '' + width: 150 + } + column_SaleAmountInMonth2 + { + columnId: 'SaleAmountInMonth2' + dataPath: 'SaleAmountInMonth2' + dataType: 'real' + index: 41 + subtotals: '' + width: 150 + } + column_SaleAmountInMonth3 + { + columnId: 'SaleAmountInMonth3' + dataPath: 'SaleAmountInMonth3' + dataType: 'real' + index: 42 + subtotals: '' + width: 150 + } + column_SaleAmountInMonth5 + { + columnId: 'SaleAmountInMonth5' + dataPath: 'SaleAmountInMonth5' + dataType: 'real' + index: 43 + subtotals: '' + width: 150 + } + column_SaleAmountInMonth4 + { + columnId: 'SaleAmountInMonth4' + dataPath: 'SaleAmountInMonth4' + dataType: 'real' + index: 44 + subtotals: '' + width: 150 + } + column_SaleAmountInMonth6 + { + columnId: 'SaleAmountInMonth6' + dataPath: 'SaleAmountInMonth6' + dataType: 'real' + index: 45 + subtotals: '' + width: 150 + } + column_SaleAmountInMonth7 + { + columnId: 'SaleAmountInMonth7' + dataPath: 'SaleAmountInMonth7' + dataType: 'real' + index: 46 + subtotals: '' + width: 150 + } + column_SaleAmountInMonth8 + { + columnId: 'SaleAmountInMonth8' + dataPath: 'SaleAmountInMonth8' + dataType: 'real' + index: 47 + subtotals: '' + width: 150 + } + column_SaleAmountInMonth9 + { + columnId: 'SaleAmountInMonth9' + dataPath: 'SaleAmountInMonth9' + dataType: 'real' + index: 48 + subtotals: '' + width: 150 + } + column_SaleAmountInMonth10 + { + columnId: 'SaleAmountInMonth10' + dataPath: 'SaleAmountInMonth10' + dataType: 'real' + index: 49 + subtotals: '' + width: 150 + } + column_SaleAmountInMonth11 + { + columnId: 'SaleAmountInMonth11' + dataPath: 'SaleAmountInMonth11' + dataType: 'real' + index: 50 + subtotals: '' + width: 150 + } + column_SaleAmountInMonth12 + { + columnId: 'SaleAmountInMonth12' + dataPath: 'SaleAmountInMonth12' + dataType: 'real' + index: 51 + subtotals: '' + width: 150 + } + column_SaleAmountTotal + { + columnId: 'SaleAmountTotal' + dataPath: 'SaleAmountTotal' + dataType: 'real' + index: 52 + subtotals: '' + width: 150 + } + } + } + } + form_FormCapacityAndSaleBudgeCompare + { + title: 'QTIANMA_JITUAN::FormCapacityAndSaleBudgeCompare' + shown: true + componentID: 'QTIANMA_JITUAN::FormCapacityAndSaleBudgeCompare' + layout + { + mode: 'open' + rowPosition: 5 + rowSpan: 10 + columnPosition: 5 + columnSpan: 8 + } + components + { + FormCapacityAndSaleBudgeCompare_MatrixEditorCapacityAndSaleBudgeCompare + { + gridColor: '#c4c4c4' + totalHeaderWidth: 200 + attributeHeaderWidthRatio: 0.6 + nameHeaderWidthRatio: 0.4 + columnWidth: 100 + horizontalGrid: true + verticalGrid: true + backendState + { + componentId: 'QTIANMA_JITUAN::FormCapacityAndSaleBudgeCompare.MatrixEditorCapacityAndSaleBudgeCompare' + state + { + cells + { + attributes + { + attribute_CellContent + { + type: 'MatrixEditorWebApiCellDataModelInterest' + index: 0 + rowsubtotal: '' + columnsubtotal: '' + attribute: 'CellContent' + } + } + } + columns + { + sorting + { + criteria: "datamember:'ColumnNo'" + } + } + rows + { + sorting + { + criteria: "datamember:'RowNo'" + } + } + } + } + } + } + } + form_FormCapacityAndSaleBudgeFilterItem + { + title: 'QTIANMA_JITUAN::FormCapacityAndSaleBudgeFilterItem' + shown: true + componentID: 'QTIANMA_JITUAN::FormCapacityAndSaleBudgeFilterItem' + layout + { + mode: 'open' + rowPosition: 1 + rowSpan: 4 + columnPosition: 3 + columnSpan: 2 + } + components + { + FormCapacityAndSaleBudgeFilterItem_ListCapacityAndSaleBudgeFilterItem + { + } + FormCapacityAndSaleBudgeFilterItem_DataSetLevelCapacityAndSaleBudgeFilterItem + { + groupDepth: -1 + column_ItemName + { + columnId: 'ItemName' + dataPath: 'ItemName' + dataType: 'string' + index: 0 + subtotals: '' + width: 150 + } + } + } + } + form_FormCapacityAndSaleBudgeChart + { + title: 'QTIANMA_JITUAN::FormCapacityAndSaleBudgeChart' + shown: true + componentID: 'QTIANMA_JITUAN::FormCapacityAndSaleBudgeChart' + layout + { + mode: 'open' + rowPosition: 5 + rowSpan: 11 + columnPosition: 1 + columnSpan: 4 + } + components + { + FormCapacityAndSaleBudgeChart_ChartCapacityAndSaleBudgeChart + { + SynchronizationGroup: '' + } + FormCapacityAndSaleBudgeChart_ChartCapacityAndSaleBudgeChart_legend + { + LegendItems: + [ + ] + } + } + } + form_FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray + { + title: 'QTIANMA_JITUAN::FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray' + shown: true + componentID: 'QTIANMA_JITUAN::FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray' + layout + { + mode: 'open' + rowPosition: 1 + rowSpan: 4 + columnPosition: 5 + columnSpan: 2 + } + components + { + FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray_ListCapacityAndSaleBudgeFilterPlaceOfProductionOfArray + { + } + FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray_DataSetLevelCapacityAndSaleBudgeFilterPlaceOfProductionOfArray + { + groupDepth: -1 + column_PlaceOfProductionOfArray + { + columnId: 'PlaceOfProductionOfArray' + dataPath: 'PlaceOfProductionOfArray' + dataType: 'string' + index: 0 + subtotals: '' + width: 150 + } + } + } + } + form_FormCapacityAndSaleBudgeFilterYear + { + title: 'QTIANMA_JITUAN::FormCapacityAndSaleBudgeFilterYear' + shown: true + componentID: 'QTIANMA_JITUAN::FormCapacityAndSaleBudgeFilterYear' + layout + { + mode: 'open' + rowPosition: 1 + rowSpan: 4 + columnPosition: 7 + columnSpan: 2 + } + components + { + FormCapacityAndSaleBudgeFilterYear_ListCapacityAndSaleBudgeFilterYear + { + } + FormCapacityAndSaleBudgeFilterYear_DataSetLevelCapacityAndSaleBudgeFilterYear + { + groupDepth: -1 + column_YearNo + { + columnId: 'YearNo' + dataPath: 'YearNo' + dataType: 'number' + index: 0 + subtotals: '' + width: 150 + } + } + } + } + form_FormCapacityAndSaleBudgeFilterBusinessType + { + title: 'QTIANMA_JITUAN::FormCapacityAndSaleBudgeFilterBusinessType' + shown: true + componentID: 'QTIANMA_JITUAN::FormCapacityAndSaleBudgeFilterBusinessType' + layout + { + mode: 'open' + rowPosition: 1 + rowSpan: 4 + columnPosition: 11 + columnSpan: 2 + } + components + { + FormCapacityAndSaleBudgeFilterBusinessType_ListCapacityAndSaleBudgeFilterBusinessType + { + } + FormCapacityAndSaleBudgeFilterBusinessType_DataSetLevelCapacityAndSaleBudgeFilterBusinessType + { + groupDepth: -1 + column_BusinessType + { + columnId: 'BusinessType' + dataPath: 'BusinessType' + dataType: 'string' + index: 0 + subtotals: '' + width: 150 + } + } + } + } + form_FormCapacityAndSaleBudgeFilterMonth + { + title: 'QTIANMA_JITUAN::FormCapacityAndSaleBudgeFilterMonth' + shown: true + componentID: 'QTIANMA_JITUAN::FormCapacityAndSaleBudgeFilterMonth' + layout + { + mode: 'open' + rowPosition: 1 + rowSpan: 4 + columnPosition: 9 + columnSpan: 2 + } + components + { + FormCapacityAndSaleBudgeFilterMonth_ListCapacityAndSaleBudgeFilterMonth + { + } + FormCapacityAndSaleBudgeFilterMonth_DataSetLevelCapacityAndSaleBudgeFilterMonth + { + groupDepth: -1 + column_MonthNo + { + columnId: 'MonthNo' + dataPath: 'MonthNo' + dataType: 'number' + index: 0 + subtotals: '' + width: 150 + } + } + } + } + } + userconfigurableinformation + { + } + image: 'PIG' + page: '' + group: '' + index: 0 + description: '' + } + formatversion: 2 + id: '骞村害浜ч攢澶嶇洏' + name: '骞村害浜ч攢澶嶇洏' + isglobal: false + isroot: true +} 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/ModelSettings/Common/Dev-21/_ROOT_Role_Dev-21.properties b/_var/_Main/ModelSettings/Common/Dev-21/_ROOT_Role_Dev-21.properties index 89de4e7..bb46e43 100644 --- a/_var/_Main/ModelSettings/Common/Dev-21/_ROOT_Role_Dev-21.properties +++ b/_var/_Main/ModelSettings/Common/Dev-21/_ROOT_Role_Dev-21.properties @@ -501,7 +501,7 @@ domainmodel.mdsstoragedefinitionmanager=template:domainmodel.mdsstoragedefinitionmanager domainmodel.mdsstoragedefinitionmanager.audittrailenabled=false domainmodel.mdsstoragedefinitionmanager.audittraillocation= -domainmodel.mdsstoragedefinitionmanager.databaseenabled=false +domainmodel.mdsstoragedefinitionmanager.databaseenabled=true domainmodel.mdsstoragedefinitionmanager.datasetstoredatasource=MacroPlanner domainmodel.mdsstoragedefinitionmanager.datasetstoreenabled=false domainmodel.mdsstoragedefinitionmanager.datasetstoreislocal=false diff --git a/_var/_Main/ProjSettings/MacroPlannerWebApp/TypeConfigs/CustomerOrder.qtc b/_var/_Main/ProjSettings/MacroPlannerWebApp/TypeConfigs/CustomerOrder.qtc new file mode 100644 index 0000000..9fe1031 --- /dev/null +++ b/_var/_Main/ProjSettings/MacroPlannerWebApp/TypeConfigs/CustomerOrder.qtc @@ -0,0 +1,20 @@ +Quintiq file version 2.0 +{ + SelectableAttributes + { + ID + { + attribute: 'ID' + isactive: true + } + IsLocked + { + attribute: 'IsLocked' + isactive: true + } + } + meta_ + { + type: 'CustomerOrder' + } +} 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 } diff --git a/_var/_Main/ProjSettings/MacroPlannerWebApp/Views/Test.vw b/_var/_Main/ProjSettings/MacroPlannerWebApp/Views/Test.vw new file mode 100644 index 0000000..1571655 --- /dev/null +++ b/_var/_Main/ProjSettings/MacroPlannerWebApp/Views/Test.vw @@ -0,0 +1,42 @@ +Quintiq file version 2.0 +{ + viewcontents + { + forms + { + form_FormCapacityAllocationResults + { + layout + { + rowSpan: 15 + columnPosition: 5 + columnSpan: 8 + } + } + form_FormCapacityAllocationResultsRuleConfiguration + { + title: 'QTIANMA_JITUAN::FormCapacityAllocationResultsRuleConfiguration' + shown: true + componentID: 'QTIANMA_JITUAN::FormCapacityAllocationResultsRuleConfiguration' + layout + { + mode: 'open' + rowPosition: 1 + rowSpan: 15 + columnPosition: 1 + columnSpan: 4 + } + components: null + } + form_FormPanelPullPlanReport + { + _removed: true + } + } + } + formatversion: 2 + id: 'Test' + name: 'Test' + isglobal: false + isroot: false +} -- Gitblit v1.9.3