From 588d972a935847b6b7057e167bf77f8543bbabfc Mon Sep 17 00:00:00 2001 From: hongji.li <hongji.a.li@capgemini.com> Date: 星期一, 11 九月 2023 15:51:26 +0800 Subject: [PATCH] Merge branch 'dev_yx' into dev_lhj --- _Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_VerifyTheTemplate.qbl | 24 _Main/UI/MacroPlannerWebApp/Component_DialogMaterialLabelingAndPlanningStrategy/Response_pnlActions_btnOk_OnClick.def | 16 _Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Method_parseTable.qbl | 25 _Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/DefaultValue_name.qbl | 6 _Main/BL/InfoMessages.qbl | 5 _Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_CreateIfNotExist.qbl | 35 _Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MaximumNumberOfDaysInInventory.qbl | 8 _Main/BL/Type_MatAttrSettingAndPlanningStrategyDataRow/Attribute_rowNo.qbl | 7 _Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_ListMaterialMaterialLabelingAndPlanningStrategy_880_MenuSelectAll_O.def | 17 _Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_SerialNumber.qbl | 8 _Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_PanelMaterialExportAndImport_136_ButtonMaterialExportAndImport_OnCl.def | 42 + _Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MatCode.qbl | 8 _Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategy_GlobalOTDTable_GlobalOTDTable_MatAttr.qbl | 23 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_LibSOPImpExp_ContextMenuImport_MenuImportFromCommonIn.def | 1 _Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_CheckThePrecedingColumn.qbl | 37 _Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/Attribute_name.qbl | 7 _Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_base64Str.qbl | 7 _Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_PanelChildMaterial#558.def | 15 _Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Attribute_ProductCode.qbl | 8 _Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_update.qbl | 69 + _Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_PanelMaterialExportAndImport_136_ButtonSynchronizeInventoryTargets_.def | 16 _Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Method_saveData.qbl | 16 _Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_listContextMenuChildMaterial.def | 10 _Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_userName.qbl | 7 _Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/DefaultValue_name.qbl | 6 _Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyInputSource_MatAttrSettingAndPlanStrat.qbl | 23 _Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXMLHeaders/XMLElementId_QuintiqType.qbl | 7 _Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/XMLObjectBase_table.qbl | 27 _Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/StaticMethod_upload.qbl | 24 _Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/DefaultValue_columnIndex.qbl | 7 _Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_ListMaterialMaterialLabelingAndPlanningStrategy_880_MenuDeleteAll_O.def | 21 _Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_GeneratesTheSpecifiedXMLColumn.qbl | 23 _Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_expectedHeaders.qbl | 23 _Main/BL/Type_MatAttrSettingAndPlanningStrategy/_ROOT_Type_MatAttrSettingAndPlanStrategy.qbl | 10 _Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_FlagLongTerm.qbl | 12 _Main/BL/Type_MatAttrSettingAndPlanningStrategy/Function_CalcPlanningStrategyAuto.qbl | 23 _Main/BL/Type_MatAttrSettingAndPlanningStrategyDataRow/DefaultValue_rowNo.qbl | 7 _Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MatName.qbl | 8 _Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_ListMaterialMaterialLabelingAndPlanningStrategy#880.def | 60 + _Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_BusinessType.qbl | 8 _Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyDataColumn_MatAttrSettingAndPlanStrate.qbl | 26 _Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/_ROOT_Type_MatAttrSettingAndPlanStrategyInputSource.qbl | 9 _Main/UI/MacroPlannerWebApp/Component_DialogMaterialLabelingAndPlanningStrategy/Component_pnlGeneral.def | 133 +++ _Main/BL/Type_MatAttrSettingAndPlanningStrategy/Function_CalcMinProdDeliverLT.qbl | 17 _Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_getExistByMatCode.qbl | 14 _Main/UI/MacroPlanner/Component_frmStandardAnalysisGlobalOTDTable/Component_swTop.def | 29 _Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_PlanningStrategyAuto.qbl | 12 _Main/BL/Type_MatAttrSettingAndPlanningStrategyDataRow/_ROOT_Type_MatAttrSettingAndPlanStrategyDataRow.qbl | 9 _Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_listActionBarPageChildMaterial.def | 10 _Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_PanelMaterialLabelingAndPlanningStrategy.def | 15 _Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MinProdDeliverLT.qbl | 8 _Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/StaticMethod_CreateIfNotExist.qbl | 22 _Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyDataRow_MatAttrSettingAndPlanStrategyD.qbl | 23 _Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Attribute_MatCode.qbl | 8 _Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_delete.qbl | 14 _Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_VerifyThatTheItemCodeIsNotDuplicated.qbl | 23 _Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyDataTable_MatAttrSettingAndPlanStr#458.qbl | 23 _Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_PanelMaterial_DataHolderCheckedMaterials_OnDataChanged.def | 18 _Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/Attribute_columnIndex.qbl | 7 _Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Attribute_Comment.qbl | 8 _Main/BL/Type_MatAttrSettingAndPlanningStrategyDataCell/_ROOT_Type_MatAttrSettingAndPlanStrategyDataCell.qbl | 9 _Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_ListChildMaterial.def | 42 + _Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXMLHeaders/XMLObjectBase_column.qbl | 17 _Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_listActionBarPageMaterial790#1.def | 10 _Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_FlagGeneric.qbl | 12 _Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_DeleteIfExistByMatCode#526.qbl | 18 _Main/BL/Type_MatAttrSettingAndPlanningStrategyDataCell/Attribute_value.qbl | 7 _Main/UI/MacroPlannerWebApp/Component_DialogMaterialLabelingAndPlanningStrategy/_ROOT_Component_DialogCreateEditMaterialLabelingAndPlanningStrategy.def | 31 _Main/UI/MacroPlannerWebApp/Component_DialogMaterialLabelingAndPlanningStrategy/Response_pnlActions_btnCancel_OnClick.def | 15 _Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/_ROOT_Type_MatAttrSettingAndPlanStrategyDetail.qbl | 10 _Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Component_mbMainMenu.def | 4 _Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/XMLObjectBase_cell.qbl | 17 _Main/UI/MacroPlannerWebApp/Component_DialogMaterialLabelingAndPlanningStrategy/Component_pnlContent.def | 15 _Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/_ROOT_Component_FormMaterialLabelingAndPlanningStrategy.def | 18 _Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Attribute_ProductDesc.qbl | 8 _Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/_ROOT_Type_MatAttrSettingAndPlanStrategyDataColumn.qbl | 9 _Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXMLHeaders/XMLElementId_Key.qbl | 7 _Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MatType.qbl | 8 _Main/BL/Type_MatAttrSettingAndPlanningStrategyDataCell/DefaultValue_value.qbl | 6 _Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/_ROOT_Type_MatAttrSettingAndPlanStrategyDataTable.qbl | 9 _Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/XMLElementId_Key.qbl | 7 _Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Attribute_StandardLT.qbl | 7 _Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_ListMaterialMaterialLabelingAndPlanningStrategy_880_OnDoubleClick.def | 19 _Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_PanelMaterialOperationButton.def | 15 _Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/XMLObjectBase_column.qbl | 27 _Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_isXlsx.qbl | 7 _Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_ProductCount.qbl | 8 _Main/UI/MacroPlannerWebApp/Component_DialogMaterialLabelingAndPlanningStrategy/Component_pnlActions.def | 40 + _Main/UI/MacroPlanner/Component_frmStandardAnalysisGlobalOTDTable/Component_swTopMost.def | 20 _Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXMLHeaders/XMLObjectBase_table.qbl | 27 _Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_export.qbl | 66 + _Main/BL/Type_MatAttrSettingAndPlanningStrategy/Function_CalcProductCount.qbl | 13 _Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_ListMaterialMaterialLabelingAndPlanningStrategy_880_OnUserCheck#591.def | 16 _Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_CreateOrUpdateData.qbl | 62 + _Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Method_createTable.qbl | 18 _Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/Function_CalccolumnIndex.qbl | 11 _Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyDataTable_MatAttrSettingAndPlanStrateg.qbl | 26 _Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_UpdateBy.qbl | 8 _Main/UI/MacroPlanner/Component_frmStandardAnalysisGlobalOTDTable/_ROOT_Component_frmStandardAnalysisGlobalOTDTable.def | 19 _Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_PanelMaterialExportAndImport_136_ButtonMaterialExportAndExport_OnCl.def | 21 _Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_PanelMaterialExportAndImport#136.def | 51 + _Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyInputSource_GlobalOTDTable_GlobalOTDTa.qbl | 23 _Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MatArrivalLT.qbl | 8 _Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MinimumNumberOfDaysInStock.qbl | 8 _Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXMLHeaders/_ROOT_XML_MatAttrSettingAndPlanStrategyDataTableXMLHeaders.qbl | 8 _Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_UpdateTime.qbl | 8 _Main/BL/Type_GlobalDTOTable/Method_InitTestData.qbl | 19 _Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_PanelMaterial.def | 26 _Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_SynchronizeData.qbl | 15 _Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_exportFields.qbl | 23 _Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_PlanningStrategyCustom.qbl | 8 _Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/XMLElementId_QuintiqType.qbl | 7 _Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_fileName.qbl | 7 _Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/_ROOT_XML_MatAttrSettingAndPlanStrategyDataTableXML.qbl | 8 _Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_deleteIfExistByMatCode.qbl | 18 _Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_ExportTheFileStream.qbl | 42 + _Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Attribute_name.qbl | 7 _Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_listContextMenuMaterial455#1.def | 46 + _Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_parseRows.qbl | 41 + _Main/UI/MacroPlannerWebApp/Component_DialogMaterialLabelingAndPlanningStrategy/Method_Edit.def | 18 _Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyDetail_MatAttrSettingAndPlanStrategy_M.qbl | 23 _Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Function_CalcMatCode.qbl | 13 _Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_doVerify.qbl | 34 _Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/StaticMethod_VerifyTheFileName.qbl | 15 _Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_ListMaterialMaterialLabelingAndPlanningStrategy_880_OnUserCheckedCh.def | 18 125 files changed, 2,336 insertions(+), 1 deletions(-) diff --git a/_Main/BL/InfoMessages.qbl b/_Main/BL/InfoMessages.qbl new file mode 100644 index 0000000..d3fc0df --- /dev/null +++ b/_Main/BL/InfoMessages.qbl @@ -0,0 +1,5 @@ +Quintiq file version 2.0 +#parent: #root +InfoMessages id:#InfoMessages #extension +{ +} diff --git a/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyDataColumn_MatAttrSettingAndPlanStrate.qbl b/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyDataColumn_MatAttrSettingAndPlanStrate.qbl new file mode 100644 index 0000000..a723b60 --- /dev/null +++ b/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyDataColumn_MatAttrSettingAndPlanStrate.qbl @@ -0,0 +1,26 @@ +Quintiq file version 2.0 +#parent: #root +Relation MatAttrSettingAndPlanStrategyDataColumn_MatAttrSettingAndPlanStrategyDataCell_MatAttrSettingAndPlanStrategyDataCell_MatAttrSettingAndPlanStrategyDataColumn +{ + #keys: '1[414384.0.763764789]' + ProceduralSequenceRelationStrategy + { + #keys: '13[0.0.0][414384.0.763764811][414384.0.763764805][414384.0.763764812][414384.0.763764806][414384.0.763764813][414384.0.763764807][414384.0.763764814][414384.0.763764808][414384.0.763764815][414384.0.763764809][414384.0.763764816][414384.0.763764810]' + SequenceElementSuffix: 'CellInColumn' + SequenceSuffix: 'CellInColumn' + } + RelationSide.LeftSide MatAttrSettingAndPlanStrategyDataCell + { + #keys: '3[414384.0.763764791][414384.0.763764790][414384.0.763764792]' + Cardinality: '1toN' + ObjectDefinition: MatAttrSettingAndPlanStrategyDataColumn + OwningSide: 'Owned' + } + RelationSide.RightSide MatAttrSettingAndPlanStrategyDataColumn + { + #keys: '3[414384.0.763764794][414384.0.763764793][414384.0.763764795]' + Cardinality: '0to1' + ObjectDefinition: MatAttrSettingAndPlanStrategyDataCell + OwningSide: 'Reference' + } +} diff --git a/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyDataRow_MatAttrSettingAndPlanStrategyD.qbl b/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyDataRow_MatAttrSettingAndPlanStrategyD.qbl new file mode 100644 index 0000000..ccedde2 --- /dev/null +++ b/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyDataRow_MatAttrSettingAndPlanStrategyD.qbl @@ -0,0 +1,23 @@ +Quintiq file version 2.0 +#parent: #root +Relation MatAttrSettingAndPlanStrategyDataRow_MatAttrSettingAndPlanStrategyDataCell_MatAttrSettingAndPlanStrategyDataCell_MatAttrSettingAndPlanStrategyDataRow +{ + #keys: '1[414384.0.763764825]' + DefaultRelationStrategy + { + } + RelationSide.LeftSide MatAttrSettingAndPlanStrategyDataCell + { + #keys: '3[414384.0.763764827][414384.0.763764826][414384.0.763764828]' + Cardinality: '1toN' + ObjectDefinition: MatAttrSettingAndPlanStrategyDataRow + OwningSide: 'Reference' + } + RelationSide.RightSide MatAttrSettingAndPlanStrategyDataRow + { + #keys: '3[414384.0.763764830][414384.0.763764829][414384.0.763764831]' + Cardinality: '0to1' + ObjectDefinition: MatAttrSettingAndPlanStrategyDataCell + OwningSide: 'Reference' + } +} diff --git "a/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyDataTable_MatAttrSettingAndPlanStr\043458.qbl" "b/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyDataTable_MatAttrSettingAndPlanStr\043458.qbl" new file mode 100644 index 0000000..7f1d910 --- /dev/null +++ "b/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyDataTable_MatAttrSettingAndPlanStr\043458.qbl" @@ -0,0 +1,23 @@ +Quintiq file version 2.0 +#parent: #root +Relation MatAttrSettingAndPlanStrategyDataTable_MatAttrSettingAndPlanStrategyDataRow_MatAttrSettingAndPlanStrategyDataRow_MatAttrSettingAndPlanStrategyDataTable +{ + #keys: '1[414384.0.763764737]' + DefaultRelationStrategy + { + } + RelationSide.LeftSide MatAttrSettingAndPlanStrategyDataRow + { + #keys: '3[414384.0.763764739][414384.0.763764738][414384.0.763764740]' + Cardinality: '1toN' + ObjectDefinition: MatAttrSettingAndPlanStrategyDataTable + OwningSide: 'Owned' + } + RelationSide.RightSide MatAttrSettingAndPlanStrategyDataTable + { + #keys: '3[414384.0.763764742][414384.0.763764741][414384.0.763764743]' + Cardinality: '0to1' + ObjectDefinition: MatAttrSettingAndPlanStrategyDataRow + OwningSide: 'Reference' + } +} diff --git a/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyDataTable_MatAttrSettingAndPlanStrateg.qbl b/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyDataTable_MatAttrSettingAndPlanStrateg.qbl new file mode 100644 index 0000000..b765f35 --- /dev/null +++ b/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyDataTable_MatAttrSettingAndPlanStrateg.qbl @@ -0,0 +1,26 @@ +Quintiq file version 2.0 +#parent: #root +Relation MatAttrSettingAndPlanStrategyDataTable_MatAttrSettingAndPlanStrategyDataColumn_MatAttrSettingAndPlanStrategyDataColumn_MatAttrSettingAndPlanStrategyDataTable +{ + #keys: '1[414384.0.763764753]' + ProceduralSequenceRelationStrategy + { + #keys: '13[0.0.0][414384.0.763764775][414384.0.763764769][414384.0.763764776][414384.0.763764770][414384.0.763764777][414384.0.763764771][414384.0.763764778][414384.0.763764772][414384.0.763764779][414384.0.763764773][414384.0.763764780][414384.0.763764774]' + SequenceElementSuffix: 'ColumnInTable' + SequenceSuffix: 'ColumnInTable' + } + RelationSide.LeftSide MatAttrSettingAndPlanStrategyDataColumn + { + #keys: '3[414384.0.763764755][414384.0.763764754][414384.0.763764756]' + Cardinality: '1toN' + ObjectDefinition: MatAttrSettingAndPlanStrategyDataTable + OwningSide: 'Owned' + } + RelationSide.RightSide MatAttrSettingAndPlanStrategyDataTable + { + #keys: '3[414384.0.763764758][414384.0.763764757][414384.0.763764759]' + Cardinality: '0to1' + ObjectDefinition: MatAttrSettingAndPlanStrategyDataColumn + OwningSide: 'Reference' + } +} diff --git a/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyDetail_MatAttrSettingAndPlanStrategy_M.qbl b/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyDetail_MatAttrSettingAndPlanStrategy_M.qbl new file mode 100644 index 0000000..b1fc594 --- /dev/null +++ b/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyDetail_MatAttrSettingAndPlanStrategy_M.qbl @@ -0,0 +1,23 @@ +Quintiq file version 2.0 +#parent: #root +Relation MatAttrSettingAndPlanStrategyDetail_MatAttrSettingAndPlanStrategy_MatAttrSettingAndPlanStrategy_MatAttrSettingAndPlanStrategyDetail +{ + #keys: '1[414384.0.766881387]' + DefaultRelationStrategy + { + } + RelationSide.LeftSide MatAttrSettingAndPlanStrategy + { + #keys: '3[414384.0.766881389][414384.0.766881388][414384.0.766881390]' + Cardinality: '0to1' + ObjectDefinition: MatAttrSettingAndPlanStrategyDetail + OwningSide: 'Reference' + } + RelationSide.RightSide MatAttrSettingAndPlanStrategyDetail + { + #keys: '3[414384.0.766881392][414384.0.766881391][414384.0.766881393]' + Cardinality: '1toN' + ObjectDefinition: MatAttrSettingAndPlanStrategy + OwningSide: 'Owned' + } +} diff --git a/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyInputSource_GlobalOTDTable_GlobalOTDTa.qbl b/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyInputSource_GlobalOTDTable_GlobalOTDTa.qbl new file mode 100644 index 0000000..970e5b3 --- /dev/null +++ b/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyInputSource_GlobalOTDTable_GlobalOTDTa.qbl @@ -0,0 +1,23 @@ +Quintiq file version 2.0 +#parent: #root +Relation MatAttrSettingAndPlanStrategyInputSource_GlobalOTDTable_GlobalOTDTable_MatAttrSettingAndPlanStrategyInputSource +{ + #keys: '1[414384.0.763764705]' + DefaultRelationStrategy + { + } + RelationSide.LeftSide GlobalOTDTable + { + #keys: '3[414384.0.763764707][414384.0.763764706][414384.0.763764708]' + Cardinality: '0to1' + ObjectDefinition: MatAttrSettingAndPlanStrategyInputSource + OwningSide: 'Reference' + } + RelationSide.RightSide MatAttrSettingAndPlanStrategyInputSource + { + #keys: '3[414384.0.763764710][414384.0.763764709][414384.0.763764711]' + Cardinality: '1toN' + ObjectDefinition: GlobalOTDTable + OwningSide: 'Owned' + } +} diff --git a/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyInputSource_MatAttrSettingAndPlanStrat.qbl b/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyInputSource_MatAttrSettingAndPlanStrat.qbl new file mode 100644 index 0000000..bc9b481 --- /dev/null +++ b/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyInputSource_MatAttrSettingAndPlanStrat.qbl @@ -0,0 +1,23 @@ +Quintiq file version 2.0 +#parent: #root +Relation MatAttrSettingAndPlanStrategyInputSource_MatAttrSettingAndPlanStrategyDataTable_MatAttrSettingAndPlanStrategyDataTable_MatAttrSettingAndPlanStrategyInputSource +{ + #keys: '1[414384.0.763764721]' + DefaultRelationStrategy + { + } + RelationSide.LeftSide MatAttrSettingAndPlanStrategyDataTable + { + #keys: '3[414384.0.763764723][414384.0.763764722][414384.0.763764724]' + Cardinality: '1toN' + ObjectDefinition: MatAttrSettingAndPlanStrategyInputSource + OwningSide: 'Owned' + } + RelationSide.RightSide MatAttrSettingAndPlanStrategyInputSource + { + #keys: '3[414384.0.763764726][414384.0.763764725][414384.0.763764727]' + Cardinality: '0to1' + ObjectDefinition: MatAttrSettingAndPlanStrategyDataTable + OwningSide: 'Reference' + } +} diff --git a/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategy_GlobalOTDTable_GlobalOTDTable_MatAttr.qbl b/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategy_GlobalOTDTable_GlobalOTDTable_MatAttr.qbl new file mode 100644 index 0000000..cedbcb8 --- /dev/null +++ b/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategy_GlobalOTDTable_GlobalOTDTable_MatAttr.qbl @@ -0,0 +1,23 @@ +Quintiq file version 2.0 +#parent: #root +Relation MatAttrSettingAndPlanStrategy_GlobalOTDTable_GlobalOTDTable_MatAttrSettingAndPlanStrategy +{ + #keys: '1[414384.0.763764622]' + DefaultRelationStrategy + { + } + RelationSide.LeftSide GlobalOTDTable + { + #keys: '3[414384.0.763764624][414384.0.763764623][414384.0.763764625]' + Cardinality: '0to1' + ObjectDefinition: MatAttrSettingAndPlanStrategy + OwningSide: 'Reference' + } + RelationSide.RightSide MatAttrSettingAndPlanStrategy + { + #keys: '3[414384.0.763764627][414384.0.763764626][414384.0.763764628]' + Cardinality: '1toN' + ObjectDefinition: GlobalOTDTable + OwningSide: 'Owned' + } +} diff --git a/_Main/BL/Type_GlobalDTOTable/Method_InitTestData.qbl b/_Main/BL/Type_GlobalDTOTable/Method_InitTestData.qbl new file mode 100644 index 0000000..6f10cf9 --- /dev/null +++ b/_Main/BL/Type_GlobalDTOTable/Method_InitTestData.qbl @@ -0,0 +1,19 @@ +Quintiq file version 2.0 +#parent: #root +Method InitTestData +{ + TextBody: + [* + //this.MatAttrSettingAndPlanStrategy( relflush ); + + // yypsybs Sep-8-2023 (created) + mat1 := MatAttrSettingAndPlanStrategy::CreateIfNotExist( this, 1, "鎵嬫満浜嬩笟閮�", "MAT_1", "MAT_1", "TYPE_1", 233.0, "閫氱敤", "闀垮懆鏈�" ); + MatAttrSettingAndPlanStrategyDetail::CreateIfNotExist( mat1, "PROD_1", 666.0, "PROD_1_DESC" ); + MatAttrSettingAndPlanStrategyDetail::CreateIfNotExist( mat1, "PROD_2", 777.0, "PROD_2_DESC" ); + mat2 := MatAttrSettingAndPlanStrategy::CreateIfNotExist( this, 2, "鎵嬫満浜嬩笟閮�", "MAT_2", "MAT_2", "TYPE_2", 233.0, "涓撶敤", "闀垮懆鏈�" ); + MatAttrSettingAndPlanStrategyDetail::CreateIfNotExist( mat2, "PROD_1", 1666.0, "PROD_1_DESC" ); + MatAttrSettingAndPlanStrategyDetail::CreateIfNotExist( mat2, "PROD_2", 1777.0, "PROD_2_DESC" ); + MatAttrSettingAndPlanStrategy::CreateIfNotExist( this, 3, "鎵嬫満浜嬩笟閮�", "MAT_3", "MAT_3", "TYPE_1", 233.0, "閫氱敤", "鐭懆鏈�" ); + MatAttrSettingAndPlanStrategy::CreateIfNotExist( this, 4, "鎵嬫満浜嬩笟閮�", "MAT_4", "MAT_4", "TYPE_2", 233.0, "涓撶敤", "鐭懆鏈�" ); + *] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Attribute_name.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Attribute_name.qbl new file mode 100644 index 0000000..c6601dd --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Attribute_name.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute name +{ + #keys: '3[414384.0.763764688][414384.0.763764687][414384.0.763764689]' + ValueType: String +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/DefaultValue_name.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/DefaultValue_name.qbl new file mode 100644 index 0000000..4c149cf --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/DefaultValue_name.qbl @@ -0,0 +1,6 @@ +Quintiq file version 2.0 +#parent: #root +DefaultValue +{ + TargetAttribute: name +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_CheckThePrecedingColumn.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_CheckThePrecedingColumn.qbl new file mode 100644 index 0000000..915e044 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_CheckThePrecedingColumn.qbl @@ -0,0 +1,37 @@ +Quintiq file version 2.0 +#parent: #root +Method CheckThePrecedingColumn ( + GlobalOTDTable globalOTDTable +) +{ + TextBody: + [* + traverse ( this, MatAttrSettingAndPlanStrategyDataRow, masapsdr ) { + itemCode := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "鐗╂枡缂栫爜" ); + targetMatAttrSettingAndPlanStrategy := select( globalOTDTable, MatAttrSettingAndPlanStrategy, tempMASAPS, tempMASAPS.MatCode() = itemCode.value() ); + if ( not isnull( targetMatAttrSettingAndPlanStrategy ) ) { + businessType := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "涓氬姟绫诲瀷" ).value(); + nameOfMaterial := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "鐗╂枡鍚嶇О" ).value(); + itemClassification := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "鐗╂枡鍒嗙被" ).value(); + LTTimeDays := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "LT鏃堕棿锛堝ぉ锛�" ).value(); + numberOfFinishedSKUs := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "鎴愬搧SKU鏁伴噺" ).value(); + finishedProductDeliveryMinLTDays := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "鎴愬搧浜や粯Min-LT锛堝ぉ锛�" ).value(); + longAndShortCycleLabels := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "闀跨煭鍛ㄦ湡鏍囩" ).value(); + genericSpecialLabels := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "閫氱敤涓撶敤鏍囩" ).value(); + automaticMaterialPlanningPolicies := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "鑷姩鐗╂枡璁″垝绛栫暐" ).value(); + if ( businessType <> targetMatAttrSettingAndPlanStrategy.BusinessType() or + nameOfMaterial <> targetMatAttrSettingAndPlanStrategy.MatName() or + itemClassification <> targetMatAttrSettingAndPlanStrategy.MatType() or + [Real]LTTimeDays <> targetMatAttrSettingAndPlanStrategy.MatArrivalLT() or + [Real]numberOfFinishedSKUs <> targetMatAttrSettingAndPlanStrategy.ProductCount() or + [Real]finishedProductDeliveryMinLTDays <> targetMatAttrSettingAndPlanStrategy.MinProdDeliverLT() or + longAndShortCycleLabels <> targetMatAttrSettingAndPlanStrategy.FlagLongTerm() or + genericSpecialLabels <> targetMatAttrSettingAndPlanStrategy.FlagGeneric() or + automaticMaterialPlanningPolicies <> targetMatAttrSettingAndPlanStrategy.PlanningStrategyAuto() ) + { + error( "瀵煎叆澶辫触锛屼笌褰撳墠绯荤粺瀛楁涓嶄竴鑷达細", targetMatAttrSettingAndPlanStrategy.MatCode() ); + } + } + } + *] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_CreateOrUpdateData.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_CreateOrUpdateData.qbl new file mode 100644 index 0000000..6d76f0a --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_CreateOrUpdateData.qbl @@ -0,0 +1,62 @@ +Quintiq file version 2.0 +#parent: #root +Method CreateOrUpdateData ( + GlobalOTDTable globalOTDTable +) +{ + TextBody: + [* + traverse ( this, MatAttrSettingAndPlanStrategyDataRow, masapsdr ) { + itemCode := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "鐗╂枡缂栫爜" ); + targetMatAttrSettingAndPlanStrategy := select( globalOTDTable, MatAttrSettingAndPlanStrategy, tempMASAPS, tempMASAPS.MatCode() = itemCode.value() ); + if ( not isnull( targetMatAttrSettingAndPlanStrategy ) ) { + minimumNumberOfDaysInStock := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "搴撳瓨鏈�灏忓ぉ鏁�" ).value(); + maximumNumberOfDaysInInventory := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "搴撳瓨鏈�澶уぉ鏁�" ).value(); + try { + targetMatAttrSettingAndPlanStrategy.MinimumNumberOfDaysInStock( [Number]minimumNumberOfDaysInStock ); + targetMatAttrSettingAndPlanStrategy.MaximumNumberOfDaysInInventory( [Number]maximumNumberOfDaysInInventory ); + targetMatAttrSettingAndPlanStrategy.UpdateBy( QuintiqUser::CurrentUser().Username() ); + targetMatAttrSettingAndPlanStrategy.UpdateTime( DateTime::ActualTime() ); + } onerror { + error( "搴撳瓨鏈�灏忓ぉ鏁版垨搴撳瓨鏈�澶уぉ鏁板繀椤讳负鏁存暟锛�", targetMatAttrSettingAndPlanStrategy.MatCode() ); + } + } else { + businessType := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "涓氬姟绫诲瀷" ).value(); + createItemCode := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "鐗╂枡缂栫爜" ).value(); + nameOfMaterial := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "鐗╂枡鍚嶇О" ).value(); + itemClassification := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "鐗╂枡鍒嗙被" ).value(); + LTTimeDays := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "LT鏃堕棿锛堝ぉ锛�" ).value(); + // numberOfFinishedSKUs := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "鎴愬搧SKU鏁伴噺" ).value(); + // finishedProductDeliveryMinLTDays := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "鎴愬搧浜や粯Min-LT锛堝ぉ锛�" ).value(); + longAndShortCycleLabels := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "闀跨煭鍛ㄦ湡鏍囩" ).value(); + genericSpecialLabels := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "閫氱敤涓撶敤鏍囩" ).value(); + // automaticMaterialPlanningPolicies := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "鑷姩鐗╂枡璁″垝绛栫暐" ).value(); + usersManuallySchedulePolicies := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "鐢ㄦ埛鎵嬪姩璁″垝绛栫暐" ).value(); + minimumNumberOfDaysInStock := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "搴撳瓨鏈�灏忓ぉ鏁�" ).value(); + maximumNumberOfDaysInInventory := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "搴撳瓨鏈�澶уぉ鏁�" ).value(); + try { + matAttrSettingAndPlanStrategy := globalOTDTable.MatAttrSettingAndPlanStrategy( relnew, + BusinessType := businessType, + MatCode := createItemCode, + MatName := nameOfMaterial, + MatType := itemClassification, + MatArrivalLT := [Number]LTTimeDays, + // ProductCount := [Number]numberOfFinishedSKUs, + // MinProdDeliverLT := [Number]finishedProductDeliveryMinLTDays, + FlagLongTerm := longAndShortCycleLabels, + FlagGeneric := genericSpecialLabels, + // PlanningStrategyAuto := automaticMaterialPlanningPolicies, + PlanningStrategyCustom := usersManuallySchedulePolicies, + MinimumNumberOfDaysInStock := [Number]minimumNumberOfDaysInStock, + MaximumNumberOfDaysInInventory := [Number]maximumNumberOfDaysInInventory + ); + matAttrSettingAndPlanStrategy.UpdateBy( QuintiqUser::CurrentUser().Username() ); + matAttrSettingAndPlanStrategy.UpdateTime( DateTime::ActualTime() ); + matAttrSettingAndPlanStrategy.SerialNumber( maxselect( globalOTDTable, MatAttrSettingAndPlanStrategy, tempMASAPS, tempMASAPS.SerialNumber() ).SerialNumber() + 1 ); + } onerror { + error( "搴撳瓨鏈�灏忓ぉ鏁版垨搴撳瓨鏈�澶уぉ鏁板繀椤讳负鏁存暟锛�", targetMatAttrSettingAndPlanStrategy.MatCode() ); + } + } + } + *] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_SynchronizeData.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_SynchronizeData.qbl new file mode 100644 index 0000000..c88a29b --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_SynchronizeData.qbl @@ -0,0 +1,15 @@ +Quintiq file version 2.0 +#parent: #root +Method SynchronizeData +{ + TextBody: + [* + this.VerifyThatTheItemCodeIsNotDuplicated(); + + globalOTDTable := this.MatAttrSettingAndPlanStrategyInputSource().GlobalOTDTable(); + + this.CheckThePrecedingColumn( globalOTDTable ); + + this.CreateOrUpdateData( globalOTDTable ); + *] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_VerifyThatTheItemCodeIsNotDuplicated.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_VerifyThatTheItemCodeIsNotDuplicated.qbl new file mode 100644 index 0000000..cebf23b --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_VerifyThatTheItemCodeIsNotDuplicated.qbl @@ -0,0 +1,23 @@ +Quintiq file version 2.0 +#parent: #root +Method VerifyThatTheItemCodeIsNotDuplicated +{ + TextBody: + [* + itemCodes := selectuniquevalues( this, + MatAttrSettingAndPlanStrategyDataColumn.MatAttrSettingAndPlanStrategyDataCell, + tempMASAPSDC, + tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "鐗╂枡缂栫爜", + tempMASAPSDC.value() ); + + traverse ( itemCodes, Elements, ic ) { + icTotal := selectset( this, + MatAttrSettingAndPlanStrategyDataColumn.MatAttrSettingAndPlanStrategyDataCell, + tempMASAPSDC, + tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "鐗╂枡缂栫爜" and tempMASAPSDC.value() = ic ); + if ( icTotal.Size() > 1 ) { + error( "瀛樺湪閲嶅鐗╂枡缂栫爜锛�", ic ); + } + } + *] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_VerifyTheTemplate.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_VerifyTheTemplate.qbl new file mode 100644 index 0000000..c17b3d6 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_VerifyTheTemplate.qbl @@ -0,0 +1,24 @@ +Quintiq file version 2.0 +#parent: #root +Method VerifyTheTemplate +{ + TextBody: + [* + if ( select( this, MatAttrSettingAndPlanStrategyDataColumn, tempMASAPSDC, tempMASAPSDC.columnIndex() = 0 ).name() <> "涓氬姟绫诲瀷" or + select( this, MatAttrSettingAndPlanStrategyDataColumn, tempMASAPSDC, tempMASAPSDC.columnIndex() = 1 ).name() <> "鐗╂枡缂栫爜" or + select( this, MatAttrSettingAndPlanStrategyDataColumn, tempMASAPSDC, tempMASAPSDC.columnIndex() = 2 ).name() <> "鐗╂枡鍚嶇О" or + select( this, MatAttrSettingAndPlanStrategyDataColumn, tempMASAPSDC, tempMASAPSDC.columnIndex() = 3 ).name() <> "鐗╂枡鍒嗙被" or + select( this, MatAttrSettingAndPlanStrategyDataColumn, tempMASAPSDC, tempMASAPSDC.columnIndex() = 4 ).name() <> "LT鏃堕棿锛堝ぉ锛�" or + select( this, MatAttrSettingAndPlanStrategyDataColumn, tempMASAPSDC, tempMASAPSDC.columnIndex() = 5 ).name() <> "鎴愬搧SKU鏁伴噺" or + select( this, MatAttrSettingAndPlanStrategyDataColumn, tempMASAPSDC, tempMASAPSDC.columnIndex() = 6 ).name() <> "鎴愬搧浜や粯Min-LT锛堝ぉ锛�" or + select( this, MatAttrSettingAndPlanStrategyDataColumn, tempMASAPSDC, tempMASAPSDC.columnIndex() = 7 ).name() <> "闀跨煭鍛ㄦ湡鏍囩" or + select( this, MatAttrSettingAndPlanStrategyDataColumn, tempMASAPSDC, tempMASAPSDC.columnIndex() = 8 ).name() <> "閫氱敤涓撶敤鏍囩" or + select( this, MatAttrSettingAndPlanStrategyDataColumn, tempMASAPSDC, tempMASAPSDC.columnIndex() = 9 ).name() <> "鑷姩鐗╂枡璁″垝绛栫暐" or + select( this, MatAttrSettingAndPlanStrategyDataColumn, tempMASAPSDC, tempMASAPSDC.columnIndex() = 10 ).name() <> "鐢ㄦ埛鎵嬪姩璁″垝绛栫暐" or + select( this, MatAttrSettingAndPlanStrategyDataColumn, tempMASAPSDC, tempMASAPSDC.columnIndex() = 11 ).name() <> "搴撳瓨鏈�灏忓ぉ鏁�" or + select( this, MatAttrSettingAndPlanStrategyDataColumn, tempMASAPSDC, tempMASAPSDC.columnIndex() = 12 ).name() <> "搴撳瓨鏈�澶уぉ鏁�" + ) { + error( "妯℃澘瑙f瀽閿欒" ); + } + *] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_parseRows.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_parseRows.qbl new file mode 100644 index 0000000..c10da83 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_parseRows.qbl @@ -0,0 +1,41 @@ +Quintiq file version 2.0 +#parent: #root +Method ParseRows +{ + TextBody: + [* + // yypsybs Jul-1-2023 (created) + totalRows := 0; + totalColumns := this.MatAttrSettingAndPlanStrategyDataColumn( relsize ); + + if ( totalColumns > 0 ) { + columnLongestList := maxset( this, MatAttrSettingAndPlanStrategyDataColumn, column, true, column.MatAttrSettingAndPlanStrategyDataCell( relsize ) ); + columnLongest := columnLongestList.First(); + totalRows := columnLongest.MatAttrSettingAndPlanStrategyDataCell( relsize ); + + this.MatAttrSettingAndPlanStrategyDataRow( relflush ); + + cells := construct( structured[MatAttrSettingAndPlanStrategyDataCell] ); + traverse ( this, MatAttrSettingAndPlanStrategyDataColumn, column ) { + cells.Add( column.FirstCellInColumn() ); + } + + for ( i := 0; i < totalRows; i++ ) { + assert( selectvalues( cells, Elements, c, true, c.MatAttrSettingAndPlanStrategyDataColumn().columnIndex() ).ToString( "" ) = + selectvalues( selectsortedset( cells, Elements, c, true, c.MatAttrSettingAndPlanStrategyDataColumn().columnIndex() ), Elements, c, true, c.MatAttrSettingAndPlanStrategyDataColumn().columnIndex() ).ToString( "" ), + "Assertion error in MatAttrSettingAndPlanningStrategyDataTable::parseRows: Cells not sorted by column index" ); + row := this.MatAttrSettingAndPlanStrategyDataRow( relnew, rowNo := i ); + + newCells := construct( structured[MatAttrSettingAndPlanStrategyDataCell] ); + + traverse ( cells, Elements, c ) { + row.MatAttrSettingAndPlanStrategyDataCell( relinsert, c ); + + newCells.Add( c.NextCellInColumn() ); + } + + cells := &newCells; + } + } + *] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_doVerify.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_doVerify.qbl new file mode 100644 index 0000000..3a85db8 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_doVerify.qbl @@ -0,0 +1,34 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod DoVerify ( + MatAttrSettingAndPlanStrategyDataTable toVerify +) +{ + TextBody: + [* + // yypsybs Jun-30-2023 (created) + + // for test + columns := selectsortedset( toVerify, MatAttrSettingAndPlanStrategyDataColumn, column, true, column.columnIndex() ); + //traverse( columns, Elements, column ) { + // info( "column header of " + [String]( column.columnIndex() + 1 ) + " is " + column.name() ); + //} + //rows := toVerify.MatAttrSettingAndPlanningStrategyDataRow( relget ); + //traverse( rows, Elements.MatAttrSettingAndPlanningStrategyDataCell, cell ) { + // info( cell.MatAttrSettingAndPlanningStrategyDataColumn().name() + " of row " + [String]cell.MatAttrSettingAndPlanningStrategyDataRow().rowNo() + " is " + cell.value() ); + //} + // for test end + + expectedHeaders := MatAttrSettingAndPlanStrategyDataTable::ExpectedHeaders(); + traverse( columns, Elements, column ) { + columnActualName := column.name(); + if( column.columnIndex() > expectedHeaders.Size() ) { + error( "unexpected head " + columnActualName + " of column " + [String]column.columnIndex() + "." ); + } + expectedHeader := expectedHeaders.Element( column.columnIndex() ); + if( expectedHeader <> columnActualName ) { + error( "expected head is " + expectedHeader + " of column " + [String]column.columnIndex() + ", but found " + columnActualName + "." ); + } + } + *] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_expectedHeaders.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_expectedHeaders.qbl new file mode 100644 index 0000000..477f603 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_expectedHeaders.qbl @@ -0,0 +1,23 @@ +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( "LT鏃堕棿锛堝ぉ锛�" ); + value.Add( "鎴愬憳SKU鏁伴噺" ); + value.Add( "鎴愬搧浜や粯MinLT锛堝ぉ锛�" ); + value.Add( "闀跨煭鍛ㄦ湡鏍囩" ); + value.Add( "閫氱敤涓撶敤鏍囩" ); + value.Add( "鏅鸿兘鐗╂枡璁″垝绛栫暐" ); + value.Add( "鐢ㄦ埛鍐崇瓥璁″垝绛栫暐" ); + value.Add( "淇敼浜�" ); + value.Add( "淇敼鏃堕棿" ); + return &value; + *] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_export.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_export.qbl new file mode 100644 index 0000000..126e66e --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_export.qbl @@ -0,0 +1,66 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod Export ( + GlobalOTDTable parent +) as String +{ + TextBody: + [* + // yypsybs Jul-1-2023 (created) + xmlTemplate := '<?xml version="1.0" encoding="UTF-16"?> + <table> + <name>MatAttrSettingAndPlanStrategy</name> + '; + //--------------------------------------------------------------------------------------------- + exportFields := MatAttrSettingAndPlanStrategyDataTable::ExportFields(); + exportHeaders := MatAttrSettingAndPlanStrategyDataTable::ExpectedHeaders(); + if( exportFields.Size() <> exportHeaders.Size() ) { + error( "fields and headers not match" ); + } + for( i := 0; i < exportFields.Size() ; i++ ) { + header := exportHeaders.Element( i ); + columnStr := "<column><name>" + header + "</name><type>String</type>"; + traverse( parent, MatAttrSettingAndPlanStrategy, oldRecord ) { + fieldName := exportFields.Element( i ); + field := Reflection::FindAttribute( "MatAttrSettingAndPlanStrategy", 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 = "" ) { + 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 MatAttrSettingAndPlanStrategy"); + } + } + columnStr := columnStr + "</column>"; + xmlTemplate := xmlTemplate + columnStr; + } + //--------------------------------------------------------------------------------------------- + xmlTemplate := xmlTemplate + "</table>"; + info( xmlTemplate ); + tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlTemplate ) ); + XLS::SaveTable( tableHandle, OS::TempPath() + "MatAttrSettingAndPlanStrategy.xlsx" ); + file := OSFile::Construct(); + file.Open( OS::TempPath() + "MatAttrSettingAndPlanStrategy.xlsx", "Read", true ); + data := file.ReadBinary() + return data.AsBase64EncodedString(); + *] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_exportFields.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_exportFields.qbl new file mode 100644 index 0000000..d45757b --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_exportFields.qbl @@ -0,0 +1,23 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod ExportFields () as owning Strings +{ + TextBody: + [* + // yypsybs Jun-30-2023 (created) + value := construct( structured[String] ); + value.Add( "MatCode" ); + value.Add( "MatName" ); + value.Add( "MatType" ); + value.Add( "MatArrivalLT" ); + value.Add( "ProductCount" ); + value.Add( "MinProdDeliverLT" ); + value.Add( "FlagLongTerm" ); + value.Add( "FlagGeneric" ); + value.Add( "PlanningStrategyAuto" ); + value.Add( "PlanningStrategyCustom" ); + value.Add( "UpdateBy" ); + value.Add( "UpdateTime" ); + return &value; + *] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/XMLElementId_Key.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/XMLElementId_Key.qbl new file mode 100644 index 0000000..4f408a0 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/XMLElementId_Key.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +XMLElementId +{ + XMLAddressType { } + XMLID Key { } +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/XMLElementId_QuintiqType.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/XMLElementId_QuintiqType.qbl new file mode 100644 index 0000000..7468757 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/XMLElementId_QuintiqType.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +XMLElementId +{ + XMLID QuintiqType { } + XMLQualifierType { } +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/XMLObjectBase_cell.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/XMLObjectBase_cell.qbl new file mode 100644 index 0000000..9a0e46e --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/XMLObjectBase_cell.qbl @@ -0,0 +1,17 @@ +Quintiq file version 2.0 +#parent: #root +XMLObjectBase.ObjectDefinitions +{ + IdField: Key + ObjectTypeField: QuintiqType + TargetType: MatAttrSettingAndPlanStrategyDataCell + XMLID cell { } + Attributes: + [ + XMLAttribute + { + Attribute: value + XMLID value { } + } + ] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/XMLObjectBase_column.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/XMLObjectBase_column.qbl new file mode 100644 index 0000000..dd6ba85 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/XMLObjectBase_column.qbl @@ -0,0 +1,27 @@ +Quintiq file version 2.0 +#parent: #root +XMLObjectBase.ObjectDefinitions +{ + IdField: Key + ObjectTypeField: QuintiqType + TargetType: MatAttrSettingAndPlanStrategyDataColumn + XMLID column { } + Aggregates: + [ + XMLAggregate + { + ElementDefinition: cell + GenerateOutput: false + Relation: MatAttrSettingAndPlanStrategyDataCell + XMLID MatAttrSettingAndPlanningStrategyDataCell { } + } + ] + Attributes: + [ + XMLAttribute + { + Attribute: name + XMLID name { } + } + ] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/XMLObjectBase_table.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/XMLObjectBase_table.qbl new file mode 100644 index 0000000..badb838 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/XMLObjectBase_table.qbl @@ -0,0 +1,27 @@ +Quintiq file version 2.0 +#parent: #root +XMLObjectBase.ObjectDefinitions +{ + IdField: Key + ObjectTypeField: QuintiqType + TargetType: MatAttrSettingAndPlanStrategyDataTable + XMLID table { } + Aggregates: + [ + XMLAggregate + { + ElementDefinition: column + GenerateOutput: false + Relation: MatAttrSettingAndPlanStrategyDataColumn + XMLID MatAttrSettingAndPlanningStrategyDataColumn { } + } + ] + Attributes: + [ + XMLAttribute + { + Attribute: name + XMLID name { } + } + ] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/_ROOT_XML_MatAttrSettingAndPlanStrategyDataTableXML.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/_ROOT_XML_MatAttrSettingAndPlanStrategyDataTableXML.qbl new file mode 100644 index 0000000..76a9e0d --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/_ROOT_XML_MatAttrSettingAndPlanStrategyDataTableXML.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#root +#parent: #root +XML MatAttrSettingAndPlanStrategyDataTableXML +{ + Direction: 'ImportExport' + Root: table +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXMLHeaders/XMLElementId_Key.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXMLHeaders/XMLElementId_Key.qbl new file mode 100644 index 0000000..4f408a0 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXMLHeaders/XMLElementId_Key.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +XMLElementId +{ + XMLAddressType { } + XMLID Key { } +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXMLHeaders/XMLElementId_QuintiqType.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXMLHeaders/XMLElementId_QuintiqType.qbl new file mode 100644 index 0000000..7468757 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXMLHeaders/XMLElementId_QuintiqType.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +XMLElementId +{ + XMLID QuintiqType { } + XMLQualifierType { } +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXMLHeaders/XMLObjectBase_column.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXMLHeaders/XMLObjectBase_column.qbl new file mode 100644 index 0000000..320992a --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXMLHeaders/XMLObjectBase_column.qbl @@ -0,0 +1,17 @@ +Quintiq file version 2.0 +#parent: #root +XMLObjectBase.ObjectDefinitions +{ + IdField: Key + ObjectTypeField: QuintiqType + TargetType: MatAttrSettingAndPlanStrategyDataColumn + XMLID column { } + Attributes: + [ + XMLAttribute + { + Attribute: name + XMLID name { } + } + ] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXMLHeaders/XMLObjectBase_table.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXMLHeaders/XMLObjectBase_table.qbl new file mode 100644 index 0000000..badb838 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXMLHeaders/XMLObjectBase_table.qbl @@ -0,0 +1,27 @@ +Quintiq file version 2.0 +#parent: #root +XMLObjectBase.ObjectDefinitions +{ + IdField: Key + ObjectTypeField: QuintiqType + TargetType: MatAttrSettingAndPlanStrategyDataTable + XMLID table { } + Aggregates: + [ + XMLAggregate + { + ElementDefinition: column + GenerateOutput: false + Relation: MatAttrSettingAndPlanStrategyDataColumn + XMLID MatAttrSettingAndPlanningStrategyDataColumn { } + } + ] + Attributes: + [ + XMLAttribute + { + Attribute: name + XMLID name { } + } + ] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXMLHeaders/_ROOT_XML_MatAttrSettingAndPlanStrategyDataTableXMLHeaders.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXMLHeaders/_ROOT_XML_MatAttrSettingAndPlanStrategyDataTableXMLHeaders.qbl new file mode 100644 index 0000000..24c966b --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXMLHeaders/_ROOT_XML_MatAttrSettingAndPlanStrategyDataTableXMLHeaders.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#root +#parent: #root +XML MatAttrSettingAndPlanStrategyDataTableXMLHeaders +{ + Direction: 'ImportExport' + Root: table +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/_ROOT_Type_MatAttrSettingAndPlanStrategyDataTable.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/_ROOT_Type_MatAttrSettingAndPlanStrategyDataTable.qbl new file mode 100644 index 0000000..597fe5e --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/_ROOT_Type_MatAttrSettingAndPlanStrategyDataTable.qbl @@ -0,0 +1,9 @@ +Quintiq file version 2.0 +#root +#parent: #DomainModel +Type MatAttrSettingAndPlanStrategyDataTable +{ + #keys: '5[414384.0.763764685][414384.0.763764683][0.0.0][414384.0.763764684][414384.0.763764686]' + BaseType: Object + StructuredName: 'MatAttrSettingAndPlanStrategyDataTables' +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Attribute_Comment.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Attribute_Comment.qbl new file mode 100644 index 0000000..29e121e --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Attribute_Comment.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute Comment +{ + #keys: '3[414384.0.766881447][414384.0.766881446][414384.0.766881448]' + Description: '澶囨敞' + ValueType: String +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Attribute_MatCode.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Attribute_MatCode.qbl new file mode 100644 index 0000000..7ee0a19 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Attribute_MatCode.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute MatCode +{ + #keys: '3[414384.0.766881404][414384.0.766881403][414384.0.766881405]' + Description: '鐗╂枡缂栫爜' + ValueType: String +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Attribute_ProductCode.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Attribute_ProductCode.qbl new file mode 100644 index 0000000..d55171e --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Attribute_ProductCode.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute ProductCode +{ + #keys: '3[414384.0.766881414][414384.0.766881413][414384.0.766881415]' + Description: '鎴愬搧缂栫爜' + ValueType: String +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Attribute_ProductDesc.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Attribute_ProductDesc.qbl new file mode 100644 index 0000000..0993c0f --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Attribute_ProductDesc.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute ProductDesc +{ + #keys: '3[414384.0.766881437][414384.0.766881436][414384.0.766881438]' + Description: '鎴愬搧鎻忚堪' + ValueType: String +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Attribute_StandardLT.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Attribute_StandardLT.qbl new file mode 100644 index 0000000..5fce24d --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Attribute_StandardLT.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute StandardLT +{ + #keys: '3[414384.0.766881424][414384.0.766881423][414384.0.766881425]' + ValueType: Real +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Function_CalcMatCode.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Function_CalcMatCode.qbl new file mode 100644 index 0000000..0b3b836 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Function_CalcMatCode.qbl @@ -0,0 +1,13 @@ +Quintiq file version 2.0 +#parent: #root +Function CalcMatCode +{ + TextBody: + [* + // yypsybs Sep-8-2023 (created) + + value := this.MatAttrSettingAndPlanStrategy().MatCode(); + + this.MatCode( value ); + *] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/StaticMethod_CreateIfNotExist.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/StaticMethod_CreateIfNotExist.qbl new file mode 100644 index 0000000..44625cb --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/StaticMethod_CreateIfNotExist.qbl @@ -0,0 +1,22 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod CreateIfNotExist ( + MatAttrSettingAndPlanStrategy parent, + String productCode, + Real standardLT, + String productDesc +) as MatAttrSettingAndPlanStrategyDetail +{ + TextBody: + [* + // yypsybs Sep-8-2023 (created) + value := select( parent, MatAttrSettingAndPlanStrategyDetail, item, item.ProductCode() = productCode ); + if( isnull( value ) ) { + value := parent.MatAttrSettingAndPlanStrategyDetail( relnew, + ProductCode := productCode, + StandardLT := standardLT, + ProductDesc := productDesc ); + } + return value; + *] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/_ROOT_Type_MatAttrSettingAndPlanStrategyDetail.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/_ROOT_Type_MatAttrSettingAndPlanStrategyDetail.qbl new file mode 100644 index 0000000..ea00f4b --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/_ROOT_Type_MatAttrSettingAndPlanStrategyDetail.qbl @@ -0,0 +1,10 @@ +Quintiq file version 2.0 +#root +#parent: #DomainModel +Type MatAttrSettingAndPlanStrategyDetail +{ + #keys: '5[414384.0.766881384][414384.0.766881382][0.0.0][414384.0.766881383][414384.0.766881385]' + BaseType: Object + Description: '鐗╂枡灞炴�ф爣绛捐瀹�&鐗╂枡璁″垝绛栫暐鏄庣粏' + StructuredName: 'MatAttrSettingAndPlanStrategyDetails' +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_base64Str.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_base64Str.qbl new file mode 100644 index 0000000..c4af056 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_base64Str.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute Base64Str +{ + #keys: '3[414384.0.763764696][414384.0.763764695][414384.0.763764697]' + ValueType: String +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_fileName.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_fileName.qbl new file mode 100644 index 0000000..f02d671 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_fileName.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute FileName +{ + #keys: '3[414384.0.763764699][414384.0.763764698][414384.0.763764700]' + ValueType: String +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_isXlsx.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_isXlsx.qbl new file mode 100644 index 0000000..e39af74 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_isXlsx.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute IsXlsx +{ + #keys: '3[414384.0.763764702][414384.0.763764701][414384.0.763764703]' + ValueType: Boolean +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_userName.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_userName.qbl new file mode 100644 index 0000000..3ad1938 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_userName.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute UserName +{ + #keys: '3[414384.0.775080571][414384.0.775080570][414384.0.775080572]' + ValueType: String +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Method_createTable.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Method_createTable.qbl new file mode 100644 index 0000000..1729ebf --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Method_createTable.qbl @@ -0,0 +1,18 @@ +Quintiq file version 2.0 +#parent: #root +Method CreateTable ( + String sheetName +) as MatAttrSettingAndPlanStrategyDataTable +{ + TextBody: + [* + // yypsybs Jul-1-2023 (created) + sheet := select( this, MatAttrSettingAndPlanStrategyDataTable, table, table.name() = sheetName ); + + if ( isnull( sheet ) ) { + sheet := this.MatAttrSettingAndPlanStrategyDataTable( relnew, name := sheetName ); + } + + return sheet; + *] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Method_parseTable.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Method_parseTable.qbl new file mode 100644 index 0000000..20d7fd4 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Method_parseTable.qbl @@ -0,0 +1,25 @@ +Quintiq file version 2.0 +#parent: #root +Method ParseTable +{ + TextBody: + [* + tableGroupHandle := TableGroupHandle::Create( this.FileName() ); + tableGroupHandle := XLS::LoadTableGroupFromBinaryData( BinaryData::FromBase64EncodedString( this.Base64Str() ), tableGroupHandle, true, this.IsXlsx() ); + + sheets := tableGroupHandle.TableNames(); + + traverse ( sheets, Elements, sheetName, sheetName = "鐗╂枡鏍囩" ) { + tableHandle := tableGroupHandle.Table( sheetName ); + tableXML := TableHandle::ExportXML( tableHandle ); + + MatAttrSettingAndPlanStrategyDataTable::XMLImportMatAttrSettingAndPlanStrategyDataTableXMLHeaders( tableXML ); + matAttrSettingAndPlanStrategyDataTable := MatAttrSettingAndPlanStrategyDataTable::XMLImportMatAttrSettingAndPlanStrategyDataTableXML( tableXML ); + + matAttrSettingAndPlanStrategyDataTable.ParseRows(); + + matAttrSettingAndPlanStrategyDataTable.name( sheetName ); + this.MatAttrSettingAndPlanStrategyDataTable( relinsert, &matAttrSettingAndPlanStrategyDataTable ); + } + *] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Method_saveData.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Method_saveData.qbl new file mode 100644 index 0000000..362f5dd --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Method_saveData.qbl @@ -0,0 +1,16 @@ +Quintiq file version 2.0 +#parent: #root +Method SaveData +{ + TextBody: + [* + // yypsybs Jul-1-2023 (created) + if( this.MatAttrSettingAndPlanStrategyDataTable( relsize ) > 0 ) { + traverse( this, MatAttrSettingAndPlanStrategyDataTable, table ) { + traverse( table, MatAttrSettingAndPlanStrategyDataRow, row ) { + MatAttrSettingAndPlanStrategy::Update( this.GlobalOTDTable(), row, this.UserName() ); + } + } + } + *] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/StaticMethod_VerifyTheFileName.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/StaticMethod_VerifyTheFileName.qbl new file mode 100644 index 0000000..e5127f4 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/StaticMethod_VerifyTheFileName.qbl @@ -0,0 +1,15 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod VerifyTheFileName ( + JSON uploadJson +) +{ + TextBody: + [* + fileNames := uploadJson.Get( "name" ).GetString().Tokenize( "." ); + fileNameSuffix := fileNames.Element( fileNames.Size() - 1 ); + if ( fileNameSuffix <> "xlsx" and fileNameSuffix <> "xls" ) { + error( "璇蜂笂浼燛xcel鏂囦欢" ); + } + *] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/StaticMethod_upload.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/StaticMethod_upload.qbl new file mode 100644 index 0000000..16be5bb --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/StaticMethod_upload.qbl @@ -0,0 +1,24 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod Upload ( + GlobalOTDTable globalOTDTable, + String filePath, + String base64Str, + String userName +) as MatAttrSettingAndPlanStrategyInputSource +{ + TextBody: + [* + globalOTDTable.MatAttrSettingAndPlanStrategyInputSource( relflush ); + + fileName := filePath.Tokenize( "\" ).Element( filePath.Tokenize( "\" ).Size() - 1 ); + + inputSource := globalOTDTable.MatAttrSettingAndPlanStrategyInputSource( relnew, + FileName := fileName, + Base64Str := base64Str, + IsXlsx := fileName.EndsWith( "xlsx" ), + UserName := userName ); + + return inputSource; + *] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/_ROOT_Type_MatAttrSettingAndPlanStrategyInputSource.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/_ROOT_Type_MatAttrSettingAndPlanStrategyInputSource.qbl new file mode 100644 index 0000000..5cc6e21 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/_ROOT_Type_MatAttrSettingAndPlanStrategyInputSource.qbl @@ -0,0 +1,9 @@ +Quintiq file version 2.0 +#root +#parent: #DomainModel +Type MatAttrSettingAndPlanStrategyInputSource +{ + #keys: '5[414384.0.763764693][414384.0.763764691][0.0.0][414384.0.763764692][414384.0.763764694]' + BaseType: Object + StructuredName: 'MatAttrSettingAndPlanStrategyInputSources' +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_BusinessType.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_BusinessType.qbl new file mode 100644 index 0000000..5d9d3ba --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_BusinessType.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute BusinessType +{ + #keys: '3[414702.0.129575801][414702.0.129575800][414702.0.129575802]' + Description: '涓氬姟绫诲瀷' + ValueType: String +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_FlagGeneric.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_FlagGeneric.qbl new file mode 100644 index 0000000..acdc390 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_FlagGeneric.qbl @@ -0,0 +1,12 @@ +Quintiq file version 2.0 +#parent: #root +Attribute FlagGeneric +{ + #keys: '3[414384.0.763764895][414384.0.763764894][414384.0.763764896]' + Description: + [* + 鏄惁閫氱敤 + 涓撶敤 & 閫氱敤 + *] + ValueType: String +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_FlagLongTerm.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_FlagLongTerm.qbl new file mode 100644 index 0000000..bf68daa --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_FlagLongTerm.qbl @@ -0,0 +1,12 @@ +Quintiq file version 2.0 +#parent: #root +Attribute FlagLongTerm +{ + #keys: '3[414384.0.763764885][414384.0.763764884][414384.0.763764886]' + Description: + [* + 鏄惁闀挎湡 + 闀垮懆鏈� & 鐭懆鏈� + *] + ValueType: String +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MatArrivalLT.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MatArrivalLT.qbl new file mode 100644 index 0000000..9dc43ad --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MatArrivalLT.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute MatArrivalLT +{ + #keys: '3[414384.0.759444630][414384.0.759444629][414384.0.759444631]' + Description: '鐗╂枡鍒拌揣LT锛堝ぉ锛�' + ValueType: Real +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MatCode.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MatCode.qbl new file mode 100644 index 0000000..9e9785e --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MatCode.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute MatCode +{ + #keys: '3[414384.0.759431251][414384.0.759431250][414384.0.759431252]' + Description: '鐗╂枡缂栫爜' + ValueType: String +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MatName.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MatName.qbl new file mode 100644 index 0000000..c0de400 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MatName.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute MatName +{ + #keys: '3[414384.0.759431286][414384.0.759431285][414384.0.759431287]' + Description: '鐗╂枡鍚嶇О' + ValueType: String +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MatType.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MatType.qbl new file mode 100644 index 0000000..907d2a5 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MatType.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute MatType +{ + #keys: '3[414384.0.759444677][414384.0.759444676][414384.0.759444678]' + Description: '鎴愬搧SKU绫诲瀷' + ValueType: String +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MaximumNumberOfDaysInInventory.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MaximumNumberOfDaysInInventory.qbl new file mode 100644 index 0000000..d15fda5 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MaximumNumberOfDaysInInventory.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute MaximumNumberOfDaysInInventory +{ + #keys: '3[414702.0.129559419][414702.0.129559418][414702.0.129559420]' + Description: '搴撳瓨鏈�澶уぉ鏁�' + ValueType: Number +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MinProdDeliverLT.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MinProdDeliverLT.qbl new file mode 100644 index 0000000..65b0de6 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MinProdDeliverLT.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute MinProdDeliverLT +{ + #keys: '3[414384.0.759444667][414384.0.759444666][414384.0.759444668]' + Description: '鎴愬搧鏈�灏忎氦浠楲T锛堝ぉ锛�' + ValueType: Real +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MinimumNumberOfDaysInStock.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MinimumNumberOfDaysInStock.qbl new file mode 100644 index 0000000..b1b5700 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MinimumNumberOfDaysInStock.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute MinimumNumberOfDaysInStock +{ + #keys: '3[414702.0.129559409][414702.0.129559408][414702.0.129559410]' + Description: '搴撳瓨鏈�灏忓ぉ鏁�' + ValueType: Number +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_PlanningStrategyAuto.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_PlanningStrategyAuto.qbl new file mode 100644 index 0000000..2c9ba97 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_PlanningStrategyAuto.qbl @@ -0,0 +1,12 @@ +Quintiq file version 2.0 +#parent: #root +Attribute PlanningStrategyAuto +{ + #keys: '3[414384.0.759444687][414384.0.759444686][414384.0.759444688]' + Description: + [* + 鑷姩璁″垝绛栫暐 + JIT & 瀹夊叏搴撳瓨 & VMI + *] + ValueType: String +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_PlanningStrategyCustom.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_PlanningStrategyCustom.qbl new file mode 100644 index 0000000..4f66c38 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_PlanningStrategyCustom.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute PlanningStrategyCustom +{ + #keys: '3[414384.0.759444697][414384.0.759444696][414384.0.759444698]' + Description: '鎵嬪姩閰嶇疆鐨勮鍒掔瓥鐣�' + ValueType: String +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_ProductCount.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_ProductCount.qbl new file mode 100644 index 0000000..e7a798c --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_ProductCount.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute ProductCount +{ + #keys: '3[414384.0.763750063][414384.0.763750062][414384.0.763750064]' + Description: '鎴愬憳SKU鏁伴噺' + ValueType: Number +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_SerialNumber.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_SerialNumber.qbl new file mode 100644 index 0000000..3efd0ad --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_SerialNumber.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute SerialNumber +{ + #keys: '3[414702.0.129544801][414702.0.129544800][414702.0.129544802]' + Description: '搴忓彿' + ValueType: Number +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_UpdateBy.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_UpdateBy.qbl new file mode 100644 index 0000000..6789918 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_UpdateBy.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute UpdateBy +{ + #keys: '3[414384.0.763764908][414384.0.763764907][414384.0.763764909]' + Description: '淇敼浜�' + ValueType: String +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_UpdateTime.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_UpdateTime.qbl new file mode 100644 index 0000000..83ca47c --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_UpdateTime.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute UpdateTime +{ + #keys: '3[414384.0.763764921][414384.0.763764920][414384.0.763764922]' + Description: '淇敼鏃堕棿' + ValueType: DateTime +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Function_CalcMinProdDeliverLT.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Function_CalcMinProdDeliverLT.qbl new file mode 100644 index 0000000..c02ef61 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Function_CalcMinProdDeliverLT.qbl @@ -0,0 +1,17 @@ +Quintiq file version 2.0 +#parent: #root +Function CalcMinProdDeliverLT +{ + TextBody: + [* + // yypsybs Sep-8-2023 (created) + + value := 0.0; + + if( this.MatAttrSettingAndPlanStrategyDetail( relsize ) <> 0 ) { + value := guard( min( this, MatAttrSettingAndPlanStrategyDetail, detail, detail.StandardLT() ) , 0.0 ); + } + + this.MinProdDeliverLT( value ); + *] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Function_CalcPlanningStrategyAuto.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Function_CalcPlanningStrategyAuto.qbl new file mode 100644 index 0000000..74fd0ee --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Function_CalcPlanningStrategyAuto.qbl @@ -0,0 +1,23 @@ +Quintiq file version 2.0 +#parent: #root +Function CalcPlanningStrategyAuto +{ + TextBody: + [* + // yypsybs Sep-8-2023 (created) + + value := ""; + + if( this.FlagLongTerm() = "闀垮懆鏈�" and this.FlagGeneric() = "涓撶敤" ) { + value := "JIT"; + } else if ( this.FlagLongTerm() = "闀垮懆鏈�" and this.FlagGeneric() = "閫氱敤" ) { + value := "瀹夊叏搴撳瓨"; + } else if ( this.FlagLongTerm() = "鐭懆鏈�" and this.FlagGeneric() = "涓撶敤" ) { + value := "JIT"; + } else if ( this.FlagLongTerm() = "鐭懆鏈�" and this.FlagGeneric() = "閫氱敤" ) { + value := "VMI"; + } + + this.PlanningStrategyAuto( value ); + *] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Function_CalcProductCount.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Function_CalcProductCount.qbl new file mode 100644 index 0000000..e03f766 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Function_CalcProductCount.qbl @@ -0,0 +1,13 @@ +Quintiq file version 2.0 +#parent: #root +Function CalcProductCount +{ + TextBody: + [* + // yypsybs Sep-8-2023 (created) + + value := counter( this, MatAttrSettingAndPlanStrategyDetail, item, true ); + + this.ProductCount( value ); + *] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_CreateIfNotExist.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_CreateIfNotExist.qbl new file mode 100644 index 0000000..8e647b2 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_CreateIfNotExist.qbl @@ -0,0 +1,35 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod CreateIfNotExist ( + GlobalOTDTable parent, + Number serialNumber, + String businessType, + String matCode, + String matName, + String matType, + Real matArrivalLT, + String flagGeneric, + String flagLongTerm +) as MatAttrSettingAndPlanStrategy +{ + TextBody: + [* + // yypsybs Sep-8-2023 (created) + value := MatAttrSettingAndPlanStrategy::GetExistByMatCode( parent, matCode ); + if( isnull( value ) ) { + value := parent.MatAttrSettingAndPlanStrategy( relnew, + SerialNumber := serialNumber, + BusinessType := businessType, + MatCode := matCode, + MatName := matName, + MatType := matType, + MatArrivalLT := matArrivalLT, + FlagGeneric := flagGeneric, + FlagLongTerm := flagLongTerm, + PlanningStrategyCustom := "", + UpdateBy := "", + UpdateTime := DateTime::MinDateTime() ); + } + return value; + *] +} diff --git "a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_DeleteIfExistByMatCode\043526.qbl" "b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_DeleteIfExistByMatCode\043526.qbl" new file mode 100644 index 0000000..7d84d24 --- /dev/null +++ "b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_DeleteIfExistByMatCode\043526.qbl" @@ -0,0 +1,18 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod DeleteIfExistByMatCode ( + GlobalOTDTable parent, + Strings matCode +) +{ + TextBody: + [* + // yypsybs Jul-2-2023 (created) + toDels := selectset( parent, MatAttrSettingAndPlanStrategy, item, true, matCode.Find( item.MatCode() ) >= 0 ); + if( toDels.Size() > 0 ) { + traverse( toDels, Elements, toDel ) { + toDel.Delete(); + } + } + *] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_ExportTheFileStream.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_ExportTheFileStream.qbl new file mode 100644 index 0000000..4b41017 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_ExportTheFileStream.qbl @@ -0,0 +1,42 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod ExportTheFileStream ( + MatAttrSettingAndPlanStrategys masapss +) as BinaryValue +{ + TextBody: + [* + text:= '<?xml version="1.0" encoding="utf-8" standalone="yes"?><table><name>鐗╂枡鏍囩</name><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>LT鏃堕棿锛堝ぉ锛�</name><type>Number</type></column><column><name>鎴愬搧SKU鏁伴噺</name><type>Number</type></column><column><name>鎴愬搧浜や粯Min-LT锛堝ぉ锛�</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>Number</type></column><column><name>搴撳瓨鏈�澶уぉ鏁�</name><type>Number</type></column></table>'; + xmlDOMImplementation := XMLDOMImplementation::Create(); + xmlDOMDocument := xmlDOMImplementation.CreateDocumentFromString( text ); + + masapss := selectsortedset( masapss, Elements, tempMASAPS, true, tempMASAPS.MatCode() ); + tableElement:= xmlDOMDocument.GetElementByTagName( "table", 0 ); + + traverse ( masapss, Elements, masaps ) { + MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, masaps.BusinessType(), "涓氬姟绫诲瀷" ); + MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, masaps.MatCode(), "鐗╂枡缂栫爜" ); + MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, masaps.MatName(), "鐗╂枡鍚嶇О" ); + MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, masaps.MatType(), "鐗╂枡鍒嗙被" ); + MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]masaps.MatArrivalLT(), "LT鏃堕棿锛堝ぉ锛�" ); + MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]masaps.ProductCount(), "鎴愬搧SKU鏁伴噺" ); + MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]masaps.MinProdDeliverLT(), "鎴愬搧浜や粯Min-LT锛堝ぉ锛�" ); + MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, masaps.FlagLongTerm(), "闀跨煭鍛ㄦ湡鏍囩" ); + MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, masaps.FlagGeneric(), "閫氱敤涓撶敤鏍囩" ); + MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, masaps.PlanningStrategyAuto(), "鑷姩鐗╂枡璁″垝绛栫暐" ); + MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, masaps.PlanningStrategyCustom(), "鐢ㄦ埛鎵嬪姩璁″垝绛栫暐" ); + MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]masaps.MinimumNumberOfDaysInStock(), "搴撳瓨鏈�灏忓ぉ鏁�" ); + MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]masaps.MaximumNumberOfDaysInInventory(), "搴撳瓨鏈�澶уぉ鏁�" ); + } + + xmlDOMSerializer := xmlDOMImplementation.CreateSerializer(); + xmlTableString := xmlDOMSerializer.WriteToString( xmlDOMDocument ); + + tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlTableString ) ); + tableGroupHandle := TableGroupHandle::Create( "鐗╂枡鏍囩" ); + tableGroupHandle.Add( tableHandle ); + tableBinaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true ); + + return tableBinaryData.AsBinaryValue(); + *] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_GeneratesTheSpecifiedXMLColumn.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_GeneratesTheSpecifiedXMLColumn.qbl new file mode 100644 index 0000000..f40c634 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/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_MatAttrSettingAndPlanningStrategy/StaticMethod_delete.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_delete.qbl new file mode 100644 index 0000000..3c9e3f1 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_delete.qbl @@ -0,0 +1,14 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod Delete ( + MatAttrSettingAndPlanStrategys toDels +) +{ + TextBody: + [* + // yypsybs Jun-30-2023 (created) + traverse( toDels, Elements, toDel ){ + toDel.Delete(); + } + *] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_deleteIfExistByMatCode.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_deleteIfExistByMatCode.qbl new file mode 100644 index 0000000..4cd01e5 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_deleteIfExistByMatCode.qbl @@ -0,0 +1,18 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod DeleteIfExistByMatCode ( + GlobalOTDTable parent, + String matCode +) +{ + TextBody: + [* + // yypsybs Jul-2-2023 (created) + toDels := selectset( parent, MatAttrSettingAndPlanStrategy, item, true, matCode = item.MatCode() ); + if( toDels.Size() > 0 ) { + traverse( toDels, Elements, toDel ) { + toDel.Delete(); + } + } + *] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_getExistByMatCode.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_getExistByMatCode.qbl new file mode 100644 index 0000000..c0e174e --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_getExistByMatCode.qbl @@ -0,0 +1,14 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod GetExistByMatCode ( + GlobalOTDTable parent, + String matCode +) as MatAttrSettingAndPlanStrategy +{ + TextBody: + [* + // yypsybs Jul-3-2023 (created) + value := select( parent, MatAttrSettingAndPlanStrategy, item, true, matCode = item.MatCode() ); + return value; + *] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_update.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_update.qbl new file mode 100644 index 0000000..44ea303 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_update.qbl @@ -0,0 +1,69 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod Update ( + GlobalOTDTable parent, + MatAttrSettingAndPlanStrategyDataRow excelRow, + String userName +) as MatAttrSettingAndPlanStrategy +{ + TextBody: + [* + fields := MatAttrSettingAndPlanStrategyDataTable::ExportFields(); + headers := MatAttrSettingAndPlanStrategyDataTable::ExpectedHeaders(); + //info( "--------SaveData--------" ); + // 鎵惧緟鏇存柊璁板綍 + toUpdate := null( MatAttrSettingAndPlanStrategy ); + matCode := ""; + for( i := 0; i < fields.Size(); i++ ) { + header := headers.Element( i ); + cell := excelRow.MatAttrSettingAndPlanStrategyDataCell( relget ).Element( i ); + if( cell.MatAttrSettingAndPlanStrategyDataColumn().name() <> header ) { + FeedbackObject::LocalFeedback().AddHard( "the column with index " + [String]i + " should be " + header + ", but found " + cell.MatAttrSettingAndPlanStrategyDataColumn().name() ); + error( "the column with index " + [String]i + " should be " + header + ", but found " + cell.MatAttrSettingAndPlanStrategyDataColumn().name() ); + } + if( cell.MatAttrSettingAndPlanStrategyDataColumn().name() = "鐗╂枡缂栫爜" and cell.value() <> "") { + matCode := cell.value(); + toUpdate := MatAttrSettingAndPlanStrategy::GetExistByMatCode( parent, matCode ); + if( isnull( toUpdate ) ) { + FeedbackObject::LocalFeedback().AddHard( "get MatAttrSettingAndPlanStrategy by matCode [" + matCode + "] failed" ); + error( "get MatAttrSettingAndPlanStrategy by matCode [" + matCode + "] failed" ); + } + } + } + if( not isnull( toUpdate ) ) { + // 瀵规瘮宸紓 + for( i := 0; i < fields.Size(); i++ ) { + // header := headers.Element( i ); + cell := excelRow.MatAttrSettingAndPlanStrategyDataCell( relget ).Element( i ); + fieldName := fields.Element( i ); + field := Reflection::FindAttribute( "MatAttrSettingAndPlanStrategy", fieldName); + if( isnull( field ) ) { + FeedbackObject::LocalFeedback().AddHard( "MatAttrSettingAndPlanStrategy does not have field " + fieldName ); + error( "MatAttrSettingAndPlanStrategy does not have field " + fieldName ); + } + // info( "========header:" + header + "========" ) + // info( "========fieldName:" + fieldName + "========" ) + // info( "========cell:" + cell.value() + "========" ) + if( fieldName = "MatName" or fieldName = "MatType" or fieldName = "FlagLongTerm" or fieldName = "FlagGeneric" or fieldName = "PlanningStrategyAuto" ) { + // do nothing + } else if( fieldName = "MatArrivalLT" or fieldName = "ProductCount" or fieldName = "MinProdDeliverLT" ) { + // do nothing + } else if( fieldName = "PlanningStrategyCustom" ) { + if( cell.value() <> "VMI" and cell.value() <> "瀹夊叏搴撳瓨" and cell.value() <> "VIT" ) { + FeedbackObject::LocalFeedback().AddHard( "unsupported PlanningStrategyCustom : " + cell.value() ); + error( "unsupported PlanningStrategyCustom : " + cell.value() ); + } else if( cell.value() <> toUpdate.PlanningStrategyCustom() ) { + toUpdate.PlanningStrategyCustom( cell.value() ); + toUpdate.UpdateBy( userName ); + toUpdate.UpdateTime( DateTime::Now() ); + } + } + } + } else { + FeedbackObject::LocalFeedback().AddHard( "no record with matCode : " + matCode ); + error( "no record with matCode : " + matCode ); + } + + return toUpdate; + *] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/_ROOT_Type_MatAttrSettingAndPlanStrategy.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/_ROOT_Type_MatAttrSettingAndPlanStrategy.qbl new file mode 100644 index 0000000..d5d2220 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/_ROOT_Type_MatAttrSettingAndPlanStrategy.qbl @@ -0,0 +1,10 @@ +Quintiq file version 2.0 +#root +#parent: #DomainModel +Type MatAttrSettingAndPlanStrategy +{ + #keys: '5[414384.0.759431201][414384.0.759431199][0.0.0][414384.0.759431200][414384.0.759431202]' + BaseType: Object + Description: '鐗╂枡灞炴�ф爣绛捐瀹�&鐗╂枡璁″垝绛栫暐' + StructuredName: 'MatAttrSettingAndPlanStrategys' +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataCell/Attribute_value.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataCell/Attribute_value.qbl new file mode 100644 index 0000000..f306adb --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataCell/Attribute_value.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute value +{ + #keys: '3[414384.0.763764661][414384.0.763764660][414384.0.763764662]' + ValueType: String +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataCell/DefaultValue_value.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataCell/DefaultValue_value.qbl new file mode 100644 index 0000000..753f2bd --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataCell/DefaultValue_value.qbl @@ -0,0 +1,6 @@ +Quintiq file version 2.0 +#parent: #root +DefaultValue +{ + TargetAttribute: value +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataCell/_ROOT_Type_MatAttrSettingAndPlanStrategyDataCell.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataCell/_ROOT_Type_MatAttrSettingAndPlanStrategyDataCell.qbl new file mode 100644 index 0000000..d61449b --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataCell/_ROOT_Type_MatAttrSettingAndPlanStrategyDataCell.qbl @@ -0,0 +1,9 @@ +Quintiq file version 2.0 +#root +#parent: #DomainModel +Type MatAttrSettingAndPlanStrategyDataCell +{ + #keys: '5[414384.0.763764658][414384.0.763764656][0.0.0][414384.0.763764657][414384.0.763764659]' + BaseType: Object + StructuredName: 'MatAttrSettingAndPlanStrategyDataCells' +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/Attribute_columnIndex.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/Attribute_columnIndex.qbl new file mode 100644 index 0000000..cd949d2 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/Attribute_columnIndex.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute columnIndex +{ + #keys: '3[414384.0.763764669][414384.0.763764668][414384.0.763764670]' + ValueType: Number +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/Attribute_name.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/Attribute_name.qbl new file mode 100644 index 0000000..e1ffaf2 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/Attribute_name.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute name +{ + #keys: '3[414384.0.763764672][414384.0.763764671][414384.0.763764673]' + ValueType: String +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/DefaultValue_columnIndex.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/DefaultValue_columnIndex.qbl new file mode 100644 index 0000000..8e1a40d --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/DefaultValue_columnIndex.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +DefaultValue +{ + ISOValue: '0' + TargetAttribute: columnIndex +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/DefaultValue_name.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/DefaultValue_name.qbl new file mode 100644 index 0000000..4c149cf --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/DefaultValue_name.qbl @@ -0,0 +1,6 @@ +Quintiq file version 2.0 +#parent: #root +DefaultValue +{ + TargetAttribute: name +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/Function_CalccolumnIndex.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/Function_CalccolumnIndex.qbl new file mode 100644 index 0000000..de381a6 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/Function_CalccolumnIndex.qbl @@ -0,0 +1,11 @@ +Quintiq file version 2.0 +#parent: #root +Function CalccolumnIndex +{ + TextBody: + [* + value := ifexpr( isnull( this.PreviousColumnInTable() ), 0, this.PreviousColumnInTable().columnIndex() + 1 ); + + this.columnIndex( value ); + *] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/_ROOT_Type_MatAttrSettingAndPlanStrategyDataColumn.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/_ROOT_Type_MatAttrSettingAndPlanStrategyDataColumn.qbl new file mode 100644 index 0000000..8a33ee1 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/_ROOT_Type_MatAttrSettingAndPlanStrategyDataColumn.qbl @@ -0,0 +1,9 @@ +Quintiq file version 2.0 +#root +#parent: #DomainModel +Type MatAttrSettingAndPlanStrategyDataColumn +{ + #keys: '5[414384.0.763764666][414384.0.763764664][0.0.0][414384.0.763764665][414384.0.763764667]' + BaseType: Object + StructuredName: 'MatAttrSettingAndPlanStrategyDataColumns' +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataRow/Attribute_rowNo.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataRow/Attribute_rowNo.qbl new file mode 100644 index 0000000..10d4f32 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataRow/Attribute_rowNo.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute rowNo +{ + #keys: '3[414384.0.763764680][414384.0.763764679][414384.0.763764681]' + ValueType: Number +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataRow/DefaultValue_rowNo.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataRow/DefaultValue_rowNo.qbl new file mode 100644 index 0000000..b6bfb38 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataRow/DefaultValue_rowNo.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +DefaultValue +{ + ISOValue: '0' + TargetAttribute: rowNo +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataRow/_ROOT_Type_MatAttrSettingAndPlanStrategyDataRow.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataRow/_ROOT_Type_MatAttrSettingAndPlanStrategyDataRow.qbl new file mode 100644 index 0000000..c85f904 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataRow/_ROOT_Type_MatAttrSettingAndPlanStrategyDataRow.qbl @@ -0,0 +1,9 @@ +Quintiq file version 2.0 +#root +#parent: #DomainModel +Type MatAttrSettingAndPlanStrategyDataRow +{ + #keys: '5[414384.0.763764677][414384.0.763764675][0.0.0][414384.0.763764676][414384.0.763764678]' + BaseType: Object + StructuredName: 'MatAttrSettingAndPlanStrategyDataRows' +} diff --git a/_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Component_mbMainMenu.def b/_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Component_mbMainMenu.def index 6055329..51fa4f0 100644 --- a/_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Component_mbMainMenu.def +++ b/_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Component_mbMainMenu.def @@ -78,6 +78,8 @@ ] } Component MenuDoSync { #keys: '[414384.0.605664172]' BaseType: 'Menu' Properties: [ Image: 'CLOUD_DOWNLOAD' Text: 'DoSync' ] } + Component menuSeparator506 { #keys: '[414702.0.137524309]' BaseType: 'Menu' Properties: [ Separator: true ] } + Component ComponentMenuAnalysisGlobalOTDTable { #keys: '[414702.0.137524953]' BaseType: 'ComponentMenu' Properties: [ ComponentType: 'frmStandardAnalysisGlobalOTDTable' Text: '' ] } ] Properties: [ @@ -94,6 +96,8 @@ c: Menu8 c: MenuSelectDemoDataset c: MenuDoSync + c: menuSeparator506 + c: ComponentMenuAnalysisGlobalOTDTable } ] } diff --git a/_Main/UI/MacroPlanner/Component_frmStandardAnalysisGlobalOTDTable/Component_swTop.def b/_Main/UI/MacroPlanner/Component_frmStandardAnalysisGlobalOTDTable/Component_swTop.def new file mode 100644 index 0000000..89fbbad --- /dev/null +++ b/_Main/UI/MacroPlanner/Component_frmStandardAnalysisGlobalOTDTable/Component_swTop.def @@ -0,0 +1,29 @@ +Quintiq file version 2.0 +Component swTop +{ + #keys: '[530.0.3531806]' + BaseType: 'swTop' + IsDerived: true + Children: + [ + Component spTopLeft + { + #keys: '[530.0.3531807]' + BaseType: 'spTopLeft' + IsDerived: true + Children: + [ + Component Analysis + { + #keys: '[530.0.3532065]' + BaseType: 'Analysis' + IsDerived: true + Properties: + [ + GlobalInstance: 'GlobalOTDTable' + ] + } + ] + } + ] +} diff --git a/_Main/UI/MacroPlanner/Component_frmStandardAnalysisGlobalOTDTable/Component_swTopMost.def b/_Main/UI/MacroPlanner/Component_frmStandardAnalysisGlobalOTDTable/Component_swTopMost.def new file mode 100644 index 0000000..8a8fcd7 --- /dev/null +++ b/_Main/UI/MacroPlanner/Component_frmStandardAnalysisGlobalOTDTable/Component_swTopMost.def @@ -0,0 +1,20 @@ +Quintiq file version 2.0 +Component swTopMost +{ + #keys: '[530.0.3531801]' + BaseType: 'swTopMost' + IsDerived: true + Children: + [ + Component SplitterPane1 + { + #keys: '[530.0.3531802]' + BaseType: 'SplitterPane1' + IsDerived: true + Children: + [ + #child: swTop + ] + } + ] +} diff --git a/_Main/UI/MacroPlanner/Component_frmStandardAnalysisGlobalOTDTable/_ROOT_Component_frmStandardAnalysisGlobalOTDTable.def b/_Main/UI/MacroPlanner/Component_frmStandardAnalysisGlobalOTDTable/_ROOT_Component_frmStandardAnalysisGlobalOTDTable.def new file mode 100644 index 0000000..587a278 --- /dev/null +++ b/_Main/UI/MacroPlanner/Component_frmStandardAnalysisGlobalOTDTable/_ROOT_Component_frmStandardAnalysisGlobalOTDTable.def @@ -0,0 +1,19 @@ +Quintiq file version 2.0 +#root +#parent: MacroPlanner +OrphanComponent frmStandardAnalysisGlobalOTDTable +{ + #keys: '[414702.0.137524322]' + BaseType: 'frmStandardAnalysis' + Children: + [ + #child: swTopMost + ] + Properties: + [ + Height: 601 + Image: 'BIRD' + Title: 'Analysis GlobalOTDTable' + Width: 783 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_LibSOPImpExp_ContextMenuImport_MenuImportFromCommonIn.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_LibSOPImpExp_ContextMenuImport_MenuImportFromCommonIn.def index b948d58..d927b55 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_LibSOPImpExp_ContextMenuImport_MenuImportFromCommonIn.def +++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_LibSOPImpExp_ContextMenuImport_MenuImportFromCommonIn.def @@ -2,7 +2,6 @@ #parent: LibSOPImpExp_ContextMenuImport/MenuImportFromCommonInformationModel Response OnClick () id:Response_TIANMA_JITUAN_LibSOPImpExp_ContextMenuImport_MenuImportFromCommonInformationModel_OnClick { - #warning 103647: "Identifier 'Response_MacroPlanner_LibSOPImpExp_ContextMenuImport_MenuImportFromCommonInformationModel_OnClick' is not unique in the scope of 'LibSOPImpExp_ContextMenuImport' component on 'ApplicationMacroPlanner'. The reason can be a recently added ModeledResponse. A unique identifier was generated automatically." #keys: '[146140.2.683371355]' CanBindMultiple: false DefinitionID: 'Responsedef_WebMenu_OnClick' diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogMaterialLabelingAndPlanningStrategy/Component_pnlActions.def b/_Main/UI/MacroPlannerWebApp/Component_DialogMaterialLabelingAndPlanningStrategy/Component_pnlActions.def new file mode 100644 index 0000000..adcf81f --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogMaterialLabelingAndPlanningStrategy/Component_pnlActions.def @@ -0,0 +1,40 @@ +Quintiq file version 2.0 +Component pnlActions +{ + #keys: '[414702.0.131771244]' + BaseType: 'WebPanel' + Children: + [ + Component btnOk + { + #keys: '[414702.0.131771248]' + BaseType: 'WebButton' + Properties: + [ + Label: 'OK' + Taborder: 0 + ] + } + Component btnCancel + { + #keys: '[414702.0.131771250]' + BaseType: 'WebButton' + Properties: + [ + Label: 'Cancel' + Taborder: 1 + ] + } + ] + Properties: + [ + Alignment: 'trailing' + Border: true + ExcludeFromActiveComponent: true + FixedSize: true + Orientation: 'horizontal' + Padding: 'true' + Style: 'footer' + Taborder: 2 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogMaterialLabelingAndPlanningStrategy/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogMaterialLabelingAndPlanningStrategy/Component_pnlContent.def new file mode 100644 index 0000000..9155690 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogMaterialLabelingAndPlanningStrategy/Component_pnlContent.def @@ -0,0 +1,15 @@ +Quintiq file version 2.0 +Component pnlContent +{ + #keys: '[414702.0.131771242]' + BaseType: 'WebPanel' + Children: + [ + #child: pnlGeneral + ] + Properties: + [ + Padding: 'true' + Taborder: 1 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogMaterialLabelingAndPlanningStrategy/Component_pnlGeneral.def b/_Main/UI/MacroPlannerWebApp/Component_DialogMaterialLabelingAndPlanningStrategy/Component_pnlGeneral.def new file mode 100644 index 0000000..a034ddf --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogMaterialLabelingAndPlanningStrategy/Component_pnlGeneral.def @@ -0,0 +1,133 @@ +Quintiq file version 2.0 +Component pnlGeneral +{ + #keys: '[414702.0.139154801]' + BaseType: 'WebPanel' + Children: + [ + Component efBusinessType + { + #keys: '[414702.0.139035752]' + BaseType: 'WebEditField' + Properties: + [ + DataBinding: 'DataHolderDialogData.Data.BusinessType' + Enabled: false + Label: '涓氬姟绫诲瀷' + Taborder: 0 + ] + } + Component efItemCode + { + #keys: '[414702.0.139035772]' + BaseType: 'WebEditField' + Properties: + [ + DataBinding: 'DataHolderDialogData.Data.MatCode' + Enabled: false + Label: '鐗╂枡缂栫爜' + Taborder: 1 + ] + } + Component efNameOfMaterial + { + #keys: '[414702.0.139035784]' + BaseType: 'WebEditField' + Properties: + [ + DataBinding: 'DataHolderDialogData.Data.MatName' + Enabled: false + Label: '鐗╂枡鍚嶇О' + Taborder: 2 + ] + } + Component efMaterialArrivalLTDays + { + #keys: '[414702.0.139035796]' + BaseType: 'WebEditField' + Properties: + [ + DataBinding: 'DataHolderDialogData.Data.MatArrivalLT' + Description: 'Finished product minimum delivery LT (days)' + Enabled: false + Label: '鐗╂枡鍒拌揣LT锛堝ぉ锛�' + Taborder: 3 + ] + } + Component efFinishedProductMinimumDeliveryLTDays + { + #keys: '[414702.0.139035809]' + BaseType: 'WebEditField' + Properties: + [ + DataBinding: 'DataHolderDialogData.Data.MinProdDeliverLT' + Enabled: false + Label: '鎴愬搧鏈�灏忎氦浠楲T锛堝ぉ锛�' + Taborder: 4 + ] + } + Component efFinishedSKUType + { + #keys: '[414702.0.139035821]' + BaseType: 'WebEditField' + Properties: + [ + DataBinding: 'DataHolderDialogData.Data.ProductCount' + Enabled: false + Label: '鎴愬搧SKU绉嶇被' + Taborder: 5 + ] + } + Component efTheSystemAutomaticallySchedulesPolicies + { + #keys: '[414702.0.139035834]' + BaseType: 'WebEditField' + Properties: + [ + DataBinding: 'DataHolderDialogData.Data.PlanningStrategyAuto' + Enabled: false + Label: '绯荤粺鑷姩璁″垝绛栫暐' + Taborder: 6 + ] + } + Component ddslMaterialPlanningPolicyChanges + { + #keys: '[414702.0.139877037]' + BaseType: 'WebDropDownStringList' + Properties: + [ + AllowEmpty: true + DataBinding: 'DataHolderDialogData.Data.PlanningStrategyCustom' + Label: '鐗╂枡璁″垝绛栫暐鍙樻洿' + Strings: 'JIT;VMI;M/A;瀹夊叏搴撳瓨;PO鎷夋枡' + Taborder: 7 + ] + } + Component efTheMinimumNumberOfDaysForAnItemToBeInventoried + { + #keys: '[414702.0.139969846]' + BaseType: 'WebEditField' + Properties: + [ + DataBinding: 'DataHolderDialogData.Data.MinimumNumberOfDaysInStock' + Label: '鐗╂枡搴撳瓨鏈�灏忓ぉ鏁�' + Taborder: 8 + ] + } + Component efTheMaximumNumberOfDaysThatTheItemIsInStock + { + #keys: '[414702.0.139969907]' + BaseType: 'WebEditField' + Properties: + [ + DataBinding: 'DataHolderDialogData.Data.MaximumNumberOfDaysInInventory' + Label: '鐗╂枡搴撳瓨鏈�澶уぉ鏁�' + Taborder: 9 + ] + } + ] + Properties: + [ + Taborder: 0 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogMaterialLabelingAndPlanningStrategy/Method_Edit.def b/_Main/UI/MacroPlannerWebApp/Component_DialogMaterialLabelingAndPlanningStrategy/Method_Edit.def new file mode 100644 index 0000000..78dd14b --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogMaterialLabelingAndPlanningStrategy/Method_Edit.def @@ -0,0 +1,18 @@ +Quintiq file version 2.0 +#parent: #root +Method Edit ( + MatAttrSettingAndPlanStrategy selection +) id:Method_DialogCreateEditMaterialLabelingAndPlanningStrategy_Edit +{ + #keys: '[414702.0.137732159]' + Body: + [* + //data := shadow( selection ); + DataHolderDialogData.Data( selection ); + + selection.UpdateBy( QuintiqUser::CurrentUser().Username() ); + selection.UpdateTime( DateTime::ActualTime() ); + + ApplicationMacroPlanner.ShowFormModal( this ); + *] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogMaterialLabelingAndPlanningStrategy/Response_pnlActions_btnCancel_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogMaterialLabelingAndPlanningStrategy/Response_pnlActions_btnCancel_OnClick.def new file mode 100644 index 0000000..e03c477 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogMaterialLabelingAndPlanningStrategy/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.131771254]' + DefinitionID: 'Responsedef_WebButton_OnClick' + GroupServerCalls: true + QuillAction + { + Body: + [* + Form.Close(); + *] + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogMaterialLabelingAndPlanningStrategy/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogMaterialLabelingAndPlanningStrategy/Response_pnlActions_btnOk_OnClick.def new file mode 100644 index 0000000..8f6e89a --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogMaterialLabelingAndPlanningStrategy/Response_pnlActions_btnOk_OnClick.def @@ -0,0 +1,16 @@ +Quintiq file version 2.0 +#parent: pnlActions/btnOk +Response OnClick () id:Response_pnlActions_btnOk_OnClick +{ + #keys: '[414702.0.131771253]' + DefinitionID: 'Responsedef_WebButton_OnClick' + GroupServerCalls: true + QuillAction + { + Body: + [* + Form.ApplyChanges(); + Form.Close(); + *] + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogMaterialLabelingAndPlanningStrategy/_ROOT_Component_DialogCreateEditMaterialLabelingAndPlanningStrategy.def b/_Main/UI/MacroPlannerWebApp/Component_DialogMaterialLabelingAndPlanningStrategy/_ROOT_Component_DialogCreateEditMaterialLabelingAndPlanningStrategy.def new file mode 100644 index 0000000..78c4c93 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogMaterialLabelingAndPlanningStrategy/_ROOT_Component_DialogCreateEditMaterialLabelingAndPlanningStrategy.def @@ -0,0 +1,31 @@ +Quintiq file version 2.0 +#root +#parent: MacroPlannerWebApp +OrphanComponent DialogCreateEditMaterialLabelingAndPlanningStrategy +{ + #keys: '[414702.0.131771240]' + BaseType: 'WebForm' + Children: + [ + #child: pnlContent + #child: pnlActions + Component DataHolderDialogData + { + #keys: '[414702.0.139153395]' + BaseType: 'WebDataHolder' + Databinding: 'MatAttrSettingAndPlanStrategy' + Properties: + [ + Taborder: 0 + ] + } + ] + Properties: + [ + Alignment: 'trailing' + EnterButton: 'btnOk' + EscapeButton: 'btnCancel' + ExcludeFromActiveComponent: true + Padding: 'false' + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_ListChildMaterial.def b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_ListChildMaterial.def new file mode 100644 index 0000000..40e2efd --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_ListChildMaterial.def @@ -0,0 +1,42 @@ +Quintiq file version 2.0 +Component ListChildMaterial +{ + #keys: '[414702.0.122536770]' + BaseType: 'WebList' + Children: + [ + Component DataExtractorChildMaterial + { + #keys: '[414702.0.122536771]' + BaseType: 'WebDataExtractor' + Properties: + [ + DataType: 'MatAttrSettingAndPlanStrategy' + ExtractionMode: 'Selected' + Source: 'PanelMaterial.ListMaterialMaterialLabelingAndPlanningStrategy' + Taborder: 0 + Transformation: 'MatAttrSettingAndPlanStrategyDetail' + ] + } + #child: listActionBarPageChildMaterial + Component DataSetLevelChildMaterial + { + #keys: '[414702.0.122536776]' + BaseType: 'WebDataSetLevel' + Children: + [ + #child: listContextMenuChildMaterial + ] + Properties: + [ + Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MatCode","title":"MatCode","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"MatCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductCode","title":"ProductCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StandardLT","title":"StandardLT","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StandardLT"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductDesc","title":"ProductDesc","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductDesc"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Comment","title":"Comment","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Comment"}}]' + ContextMenu: 'listContextMenuChildMaterial' + Taborder: 2 + ] + } + ] + Properties: + [ + Taborder: 0 + ] +} diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_ListMaterialMaterialLabelingAndPlanningStrategy\043880.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_ListMaterialMaterialLabelingAndPlanningStrategy\043880.def" new file mode 100644 index 0000000..698efbd --- /dev/null +++ "b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_ListMaterialMaterialLabelingAndPlanningStrategy\043880.def" @@ -0,0 +1,60 @@ +Quintiq file version 2.0 +Component ListMaterialMaterialLabelingAndPlanningStrategy id:ListMaterialMaterialLabelingAndPlanningStrategy_880 +{ + #keys: '[414702.0.122174685]' + BaseType: 'WebList' + Children: + [ + Component DataExtractorMaterial367 + { + #keys: '[414702.0.122174686]' + BaseType: 'WebDataExtractor' + Properties: + [ + DataType: 'GlobalOTDTable' + Source: 'GlobalOTDTable' + Taborder: 0 + Transformation: 'MatAttrSettingAndPlanStrategy' + ] + } + #child: listActionBarPageMaterial790_1 + Component DataSetLevelMaterial679 + { + #keys: '[414702.0.122174688]' + BaseType: 'WebDataSetLevel' + Children: + [ + #child: listContextMenuMaterial455_1 + ] + Properties: + [ + Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SerialNumber","title":"SerialNumber","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SerialNumber"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessType","title":"BusinessType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BusinessType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MatCode","title":"MatCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MatCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MatName","title":"MatName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MatName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MatType","title":"MatType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MatType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MatArrivalLT","title":"MatArrivalLT","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MatArrivalLT"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductCount","title":"ProductCount","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ProductCount"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MinProdDeliverLT","title":"MinProdDeliverLT","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"MinProdDeliverLT"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"FlagLongTerm","title":"FlagLongTerm","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"FlagLongTerm"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"FlagGeneric","title":"FlagGeneric","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"FlagGeneric"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PlanningStrategyAuto","title":"PlanningStrategyAuto","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"PlanningStrategyAuto"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PlanningStrategyCustom","title":"PlanningStrategyCustom","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PlanningStrategyCustom"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UpdateBy","title":"UpdateBy","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UpdateBy"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UpdateTime","title":"UpdateTime","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UpdateTime"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MinimumNumberOfDaysInStock","title":"MinimumNumberOfDaysInStock","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MinimumNumberOfDaysInStock"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MaximumNumberOfDaysInInventory","title":"MaximumNumberOfDaysInInventory","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MaximumNumberOfDaysInInventory"}},{"attribute":{"classtype":"WebApiDefinitionAttributeExpression","columnid":"1","title":"1","subtotals":"","tooltip":"","width":-1,"display":"shown","expressionbody":"VALUE( object.UpdateTime() )"}}]' + ContextMenu: 'listContextMenuMaterial455' + Taborder: 2 + ] + } + ] + Properties: + [ + SelectionCheckboxes: true + Taborder: 1 + ] + ResponseDefinitions: + [ + DelegatedResponseDefinition OnClick id:Responsedef_ListMaterialMaterialLabelingAndPlanningStrategy_880_WebMenu_OnClick + { + #keys: '[414702.0.132706551]' + Initiator: 'WebMenu' + IsInherited: false + ResponseType: 'OnClick' + Arguments: + [ + ResponseDefinitionArgument selection + { + #keys: '[319.0.80354936]' + Binding: 'this.Selection()' + } + ] + } + ] +} diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_PanelChildMaterial\043558.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_PanelChildMaterial\043558.def" new file mode 100644 index 0000000..8e0ce39 --- /dev/null +++ "b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_PanelChildMaterial\043558.def" @@ -0,0 +1,15 @@ +Quintiq file version 2.0 +Component PanelChildMaterial +{ + #keys: '[414702.0.121452333]' + BaseType: 'WebPanel' + Children: + [ + #child: ListChildMaterial + ] + Properties: + [ + Border: true + Taborder: 1 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_PanelMaterial.def b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_PanelMaterial.def new file mode 100644 index 0000000..7232995 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_PanelMaterial.def @@ -0,0 +1,26 @@ +Quintiq file version 2.0 +Component PanelMaterial +{ + #keys: '[414702.0.121452322]' + BaseType: 'WebPanel' + Children: + [ + #child: ListMaterialMaterialLabelingAndPlanningStrategy_880 + #child: PanelMaterialOperationButton + Component DataHolderCheckedMaterials + { + #keys: '[414702.0.136936641]' + BaseType: 'WebDataHolder' + Databinding: 'structured[MatAttrSettingAndPlanStrategy]*' + Properties: + [ + Taborder: 2 + ] + } + ] + Properties: + [ + Border: true + Taborder: 0 + ] +} diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_PanelMaterialExportAndImport\043136.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_PanelMaterialExportAndImport\043136.def" new file mode 100644 index 0000000..636f952 --- /dev/null +++ "b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_PanelMaterialExportAndImport\043136.def" @@ -0,0 +1,51 @@ +Quintiq file version 2.0 +Component PanelMaterialExportAndImport id:PanelMaterialExportAndImport_136 +{ + #keys: '[414702.0.130101487]' + BaseType: 'WebPanel' + Children: + [ + Component ButtonMaterialExportAndExport + { + #keys: '[414702.0.130101488]' + BaseType: 'WebButton' + Properties: + [ + Image: 'EXPORT1' + Label: '鏁版嵁瀵煎嚭' + Taborder: 1 + ] + } + Component ButtonMaterialExportAndImport + { + #keys: '[414702.0.130101489]' + BaseType: 'WebButton' + Properties: + [ + Image: 'IMPORT1' + Label: '鏁版嵁瀵煎叆' + Taborder: 2 + ] + } + Component ButtonSynchronizeInventoryTargets + { + #keys: '[414702.0.142124169]' + BaseType: 'WebButton' + Properties: + [ + Image: 'CLOUD_REFRESH' + Label: '鍚屾搴撳瓨鐩爣' + Taborder: 0 + Visible: false + ] + } + ] + Properties: + [ + Alignment: 'trailing' + FixedSize: true + MinimumColumns: 25 + Orientation: 'horizontal' + Taborder: 0 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_PanelMaterialLabelingAndPlanningStrategy.def b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_PanelMaterialLabelingAndPlanningStrategy.def new file mode 100644 index 0000000..97be3df --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_PanelMaterialLabelingAndPlanningStrategy.def @@ -0,0 +1,15 @@ +Quintiq file version 2.0 +Component PanelMaterialLabelingAndPlanningStrategy +{ + #keys: '[414702.0.121452301]' + BaseType: 'WebPanel' + Children: + [ + #child: PanelChildMaterial + #child: PanelMaterial + ] + Properties: + [ + Taborder: 0 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_PanelMaterialOperationButton.def b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_PanelMaterialOperationButton.def new file mode 100644 index 0000000..3099403 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_PanelMaterialOperationButton.def @@ -0,0 +1,15 @@ +Quintiq file version 2.0 +Component PanelMaterialOperationButton +{ + #keys: '[414702.0.130161515]' + BaseType: 'WebPanel' + Children: + [ + #child: PanelMaterialExportAndImport_136 + ] + Properties: + [ + FixedSize: true + Taborder: 0 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_listActionBarPageChildMaterial.def b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_listActionBarPageChildMaterial.def new file mode 100644 index 0000000..a4bbf6c --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_listActionBarPageChildMaterial.def @@ -0,0 +1,10 @@ +Quintiq file version 2.0 +Component listActionBarPageChildMaterial +{ + #keys: '[414702.0.122536773]' + BaseType: 'listActionBarPage' + Properties: + [ + Taborder: 1 + ] +} diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_listActionBarPageMaterial790\0431.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_listActionBarPageMaterial790\0431.def" new file mode 100644 index 0000000..7c30238 --- /dev/null +++ "b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_listActionBarPageMaterial790\0431.def" @@ -0,0 +1,10 @@ +Quintiq file version 2.0 +Component listActionBarPageMaterial790 id:listActionBarPageMaterial790_1 +{ + #keys: '[414702.0.122174687]' + BaseType: 'listActionBarPage' + Properties: + [ + Taborder: 1 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_listContextMenuChildMaterial.def b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_listContextMenuChildMaterial.def new file mode 100644 index 0000000..e87ec5b --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_listContextMenuChildMaterial.def @@ -0,0 +1,10 @@ +Quintiq file version 2.0 +Component listContextMenuChildMaterial +{ + #keys: '[414702.0.122536778]' + BaseType: 'listContextMenu' + Properties: + [ + Taborder: 0 + ] +} diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_listContextMenuMaterial455\0431.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_listContextMenuMaterial455\0431.def" new file mode 100644 index 0000000..fe19274 --- /dev/null +++ "b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_listContextMenuMaterial455\0431.def" @@ -0,0 +1,46 @@ +Quintiq file version 2.0 +Component listContextMenuMaterial455 id:listContextMenuMaterial455_1 +{ + #keys: '[414702.0.122174689]' + BaseType: 'listContextMenu' + Children: + [ + Component MenuSeparator + { + #keys: '[121142.1.1147171519]' + BaseType: 'MenuSeparator' + IsDerived: true + Properties: + [ + Taborder: 2 + ] + } + Component MenuDeleteAll + { + #keys: '[414702.0.141671580]' + BaseType: 'WebMenu' + Properties: + [ + Image: 'DELETE' + Taborder: 3 + Title: '鍒犻櫎' + ] + } + Component MenuSelectAll + { + #keys: '[414702.0.141943188]' + BaseType: 'WebMenu' + Properties: + [ + Image: 'PIG' + Shortcut: 'Ctrl+A' + Taborder: 4 + Title: '鍏ㄩ��' + ] + } + ] + Properties: + [ + Taborder: 0 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_ListMaterialMaterialLabelingAndPlanningStrategy_880_MenuDeleteAll_O.def b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_ListMaterialMaterialLabelingAndPlanningStrategy_880_MenuDeleteAll_O.def new file mode 100644 index 0000000..a921721 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_ListMaterialMaterialLabelingAndPlanningStrategy_880_MenuDeleteAll_O.def @@ -0,0 +1,21 @@ +Quintiq file version 2.0 +#parent: ListMaterialMaterialLabelingAndPlanningStrategy_880 +Response OnClick ( + structured[MatAttrSettingAndPlanStrategy] selection +) id:Response_ListMaterialMaterialLabelingAndPlanningStrategy_880_MenuDeleteAll_OnClick +{ + #keys: '[414702.0.141854066]' + CanBindMultiple: false + DefinitionID => /ListMaterialMaterialLabelingAndPlanningStrategy_880/Responsedef_ListMaterialMaterialLabelingAndPlanningStrategy_880_WebMenu_OnClick + Initiator: 'MenuDeleteAll' + QuillAction + { + Body: + [* + traverse ( selection, Elements, s ) { + s.Delete(); + } + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_ListMaterialMaterialLabelingAndPlanningStrategy_880_MenuSelectAll_O.def b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_ListMaterialMaterialLabelingAndPlanningStrategy_880_MenuSelectAll_O.def new file mode 100644 index 0000000..23b4c6a --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_ListMaterialMaterialLabelingAndPlanningStrategy_880_MenuSelectAll_O.def @@ -0,0 +1,17 @@ +Quintiq file version 2.0 +#parent: ListMaterialMaterialLabelingAndPlanningStrategy_880 +Response OnClick () id:Response_ListMaterialMaterialLabelingAndPlanningStrategy_880_MenuSelectAll_OnClick +{ + #keys: '[414702.0.141794738]' + CanBindMultiple: false + DefinitionID => /ListMaterialMaterialLabelingAndPlanningStrategy_880/Responsedef_ListMaterialMaterialLabelingAndPlanningStrategy_880_WebMenu_OnClick + Initiator: 'MenuSelectAll' + QuillAction + { + Body: + [* + this.SelectAll(); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_ListMaterialMaterialLabelingAndPlanningStrategy_880_OnDoubleClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_ListMaterialMaterialLabelingAndPlanningStrategy_880_OnDoubleClick.def new file mode 100644 index 0000000..a91ec9c --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_ListMaterialMaterialLabelingAndPlanningStrategy_880_OnDoubleClick.def @@ -0,0 +1,19 @@ +Quintiq file version 2.0 +#parent: ListMaterialMaterialLabelingAndPlanningStrategy_880 +Response OnDoubleClick ( + MatAttrSettingAndPlanStrategy selection +) id:Response_ListMaterialMaterialLabelingAndPlanningStrategy_880_OnDoubleClick +{ + #keys: '[414702.0.137732025]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebList_OnDoubleClick' + QuillAction + { + Body: + [* + dlg := construct( DialogCreateEditMaterialLabelingAndPlanningStrategy ); + dlg.Edit( selection ); + *] + GroupServerCalls: false + } +} diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_ListMaterialMaterialLabelingAndPlanningStrategy_880_OnUserCheck\043591.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_ListMaterialMaterialLabelingAndPlanningStrategy_880_OnUserCheck\043591.def" new file mode 100644 index 0000000..4eb4da0 --- /dev/null +++ "b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_ListMaterialMaterialLabelingAndPlanningStrategy_880_OnUserCheck\043591.def" @@ -0,0 +1,16 @@ +Quintiq file version 2.0 +#parent: ListMaterialMaterialLabelingAndPlanningStrategy_880 +Response OnUserCheckedChanged () id:Response_ListMaterialMaterialLabelingAndPlanningStrategy_880_OnUserCheckedChanged_591 +{ + #keys: '[414702.0.136206065]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebList_OnUserCheckedChanged' + QuillAction + { + Body: + [* + DataHolderCheckedMaterials.Data().Flush(); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_ListMaterialMaterialLabelingAndPlanningStrategy_880_OnUserCheckedCh.def b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_ListMaterialMaterialLabelingAndPlanningStrategy_880_OnUserCheckedCh.def new file mode 100644 index 0000000..9c7c2b3 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_ListMaterialMaterialLabelingAndPlanningStrategy_880_OnUserCheckedCh.def @@ -0,0 +1,18 @@ +Quintiq file version 2.0 +#parent: ListMaterialMaterialLabelingAndPlanningStrategy_880 +Response OnUserCheckedChanged ( + structured[MatAttrSettingAndPlanStrategy] checkeditems +) id:Response_ListMaterialMaterialLabelingAndPlanningStrategy_880_OnUserCheckedChanged +{ + #keys: '[414702.0.136757090]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebList_OnUserCheckedChanged' + QuillAction + { + Body: + [* + DataHolderCheckedMaterials.Data( checkeditems.Copy() ); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_PanelMaterialExportAndImport_136_ButtonMaterialExportAndExport_OnCl.def b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_PanelMaterialExportAndImport_136_ButtonMaterialExportAndExport_OnCl.def new file mode 100644 index 0000000..b909d65 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_PanelMaterialExportAndImport_136_ButtonMaterialExportAndExport_OnCl.def @@ -0,0 +1,21 @@ +Quintiq file version 2.0 +#parent: PanelMaterialExportAndImport_136/ButtonMaterialExportAndExport +Response OnClick () id:Response_PanelMaterialExportAndImport_136_ButtonMaterialExportAndExport_OnClick +{ + #keys: '[414702.0.133071932]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebButton_OnClick' + Precondition: + [* + return not isnull( GlobalOTDTable ); + *] + QuillAction + { + Body: + [* + tableBinaryData := MatAttrSettingAndPlanStrategy::ExportTheFileStream( DataHolderCheckedMaterials.Data() ).AsBinaryData(); + Application.Download( "MaterialLabelingAndPlanningStrategy.xlsx", tableBinaryData ); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_PanelMaterialExportAndImport_136_ButtonMaterialExportAndImport_OnCl.def b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_PanelMaterialExportAndImport_136_ButtonMaterialExportAndImport_OnCl.def new file mode 100644 index 0000000..ce5035b --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_PanelMaterialExportAndImport_136_ButtonMaterialExportAndImport_OnCl.def @@ -0,0 +1,42 @@ +Quintiq file version 2.0 +#parent: PanelMaterialExportAndImport_136/ButtonMaterialExportAndImport +Response OnClick () id:Response_PanelMaterialExportAndImport_136_ButtonMaterialExportAndImport_OnClick +{ + #keys: '[414702.0.134451163]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebButton_OnClick' + Precondition: + [* + return not isnull( GlobalOTDTable ); + *] + QuillAction + { + Body: + [* + try { + uploadJsonString := Application.GetFile(); + if ( uploadJsonString <> "" ) { + uploadJson := JSON::Parse( uploadJsonString ); + + MatAttrSettingAndPlanStrategyInputSource::VerifyTheFileName( uploadJson ); + + fileName := uploadJson.Get( "name" ).GetString(); + base64String := uploadJson.Get( "data" ).GetString(); + matAttrSettingAndPlanStrategyInputSource := MatAttrSettingAndPlanStrategyInputSource::Upload( GlobalOTDTable, fileName, base64String, ApplicationMacroPlanner.GetUserName() ); + + matAttrSettingAndPlanStrategyInputSource.ParseTable(); + + matAttrSettingAndPlanStrategyDataTable := select( matAttrSettingAndPlanStrategyInputSource, MatAttrSettingAndPlanStrategyDataTable, tempMASAPSDT, tempMASAPSDT.name() = "鐗╂枡鏍囩" ); + matAttrSettingAndPlanStrategyDataTable.VerifyTheTemplate(); + + matAttrSettingAndPlanStrategyDataTable.SynchronizeData(); + + WebMessageBox::Success( "涓婁紶鎴愬姛", true ); + } + } onerror { + WebMessageBox::Error( e.GeneralInformation(), true ); + } + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_PanelMaterialExportAndImport_136_ButtonSynchronizeInventoryTargets_.def b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_PanelMaterialExportAndImport_136_ButtonSynchronizeInventoryTargets_.def new file mode 100644 index 0000000..a7731ca --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_PanelMaterialExportAndImport_136_ButtonSynchronizeInventoryTargets_.def @@ -0,0 +1,16 @@ +Quintiq file version 2.0 +#parent: PanelMaterialExportAndImport_136/ButtonSynchronizeInventoryTargets +Response OnClick () id:Response_PanelMaterialExportAndImport_136_ButtonSynchronizeInventoryTargets_OnClick +{ + #keys: '[414702.0.141615322]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebButton_OnClick' + QuillAction + { + Body: + [* + WebMessageBox::Success( "鍚屾鎴愬姛", true ); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_PanelMaterial_DataHolderCheckedMaterials_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_PanelMaterial_DataHolderCheckedMaterials_OnDataChanged.def new file mode 100644 index 0000000..380ad59 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_PanelMaterial_DataHolderCheckedMaterials_OnDataChanged.def @@ -0,0 +1,18 @@ +Quintiq file version 2.0 +#parent: PanelMaterial/DataHolderCheckedMaterials +Response OnDataChanged () id:Response_PanelMaterial_DataHolderCheckedMaterials_OnDataChanged +{ + #keys: '[414702.0.136147695]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebComponent_OnDataChanged' + QuillAction + { + Body: + [* + //traverse ( this.Data(), Elements, e ) { + // info( "閫変腑鐨勭墿鏂欏彿锛�", e.MatCode() ); + //} + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/_ROOT_Component_FormMaterialLabelingAndPlanningStrategy.def b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/_ROOT_Component_FormMaterialLabelingAndPlanningStrategy.def new file mode 100644 index 0000000..527a380 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/_ROOT_Component_FormMaterialLabelingAndPlanningStrategy.def @@ -0,0 +1,18 @@ +Quintiq file version 2.0 +#root +#parent: MacroPlannerWebApp +OrphanComponent FormMaterialLabelingAndPlanningStrategy +{ + #keys: '[414702.0.120950329]' + BaseType: 'WebForm' + Children: + [ + #child: PanelMaterialLabelingAndPlanningStrategy + ] + Properties: + [ + Description: '鐗╂枡鏍囩&璁″垝绛栫暐琛ㄥ崟' + Image: 'PAPER_ROLL' + Title: 'Material labeling&planning strategy' + ] +} -- Gitblit v1.9.3