Administrator
2023-09-24 e528264b38b96ad2f59ba9d7ab5d5b17385cb777
Merge remote-tracking branch 'refs/remotes/origin/dev'
已重命名11个文件
已复制2个文件
已修改51个文件
已添加100个文件
已删除16个文件
3990 ■■■■ 文件已修改
_Main/BL/IntegratorConfigs/IntegratorConfig_PanelMaterialRestServer/ContentMapperProcessor_ContentMapperReponse#1.qbl 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_CapacityAllocationResults_GlobalOTDTable_GlobalOTDTable_CapacityAll.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_H_MaterialHedgingResult_MacroPlan_MacroPlan_H_MaterialHedgingResult.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_H_MaterialInfo_MacroPlan_MacroPlan_H_MaterialInfo.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAllocationResults/Attribute_Division.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAllocationResults/Attribute_ModuleBase.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAllocationResults/Attribute_ModuleMaterialCode.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAllocationResults/Attribute_ModuleMeasurementUnit.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAllocationResults/Attribute_NumberOfModules.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAllocationResults/Attribute_NumberOfPanels.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAllocationResults/Attribute_PanelBase.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAllocationResults/Attribute_PanelMaterialCode.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAllocationResults/Attribute_PanelMeasurementUnit.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAllocationResults/Attribute_RequirementDate.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAllocationResults/Attribute_VersionNumber.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAllocationResults/StaticMethod_CreateDate.qbl 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAllocationResults/StaticMethod_IterativeGeneration.qbl 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAllocationResults/StaticMethod_ObtainTheFinalOutputProduct.qbl 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAllocationResults/_ROOT_Type_CapacityAllocationResults.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CustomerOrder/StaticMethod_CreateOrUpdate.qbl 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CustomerOrder/StaticMethod_LockUnlock.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_ReceivingPanelMaterials.qbl 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_Forecast/Attribute_StockingPointID.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetALlBOM.qbl 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetBOMBySKU.qbl 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetMaterialData.qbl 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetNextFriday.qbl 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetProductInfo#1.qbl 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetUnitBySKU.qbl 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_InitialForcastData.qbl 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_InitialForcastDataEx.qbl 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_MaterialReverse.qbl 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_OrderHedging.qbl 200 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_FunctionClass/_ROOT_Type_H_FunctionClass.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_MaterialHedgingResult/Attribute_AuthorizeQty.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_MaterialHedgingResult/Attribute_CustomerCode.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_MaterialHedgingResult/Attribute_CustomerName.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_MaterialHedgingResult/Attribute_ForecastQty.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_MaterialHedgingResult/Attribute_ID.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_MaterialHedgingResult/Attribute_MType.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_MaterialHedgingResult/Attribute_ReverseQty.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_MaterialHedgingResult/Attribute_SKU.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_MaterialHedgingResult/Attribute_Serial.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_MaterialHedgingResult/Attribute_Unit.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_MaterialHedgingResult/DefaultValue_CustomerCode.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_MaterialHedgingResult/DefaultValue_ID.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_MaterialHedgingResult/DefaultValue_SKU.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_MaterialHedgingResult/_ROOT_Type_H_MaterialHedgingResult.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_MaterialInfo/Attribute_ForecastID.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_MaterialInfo/Attribute_ID.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_MaterialInfo/Attribute_MaterialName.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_MaterialInfo/Attribute_MaterialType.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_MaterialInfo/Attribute_NeedDate.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_MaterialInfo/Attribute_NeedQty.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_MaterialInfo/Attribute_OrgCode.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_MaterialInfo/Attribute_ParentSKU.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_MaterialInfo/Attribute_SKU.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_MaterialInfo/Attribute_StockPoint.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_MaterialInfo/Attribute_Unit.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_MaterialInfo/Attribute_VCode.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_MaterialInfo/_ROOT_Type_H_MaterialInfo.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_MessagePassing/Attribute_ValueJsonString.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MPSync/Method_RefreshCapacityAndSaleBudgeFilter#323.qbl 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeCompare.qbl 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeCompareExport.qbl 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ScenarioManager/StaticMethod_GeneratesTheSpecifiedXMLColumn.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/Sys/Integration/Brokers/PanelMaterialResponseResult1.xml 补丁 | 查看 | 原始文档 | blame | 历史
_Main/Sys/Integration/Mapping/PanelMaterialResponseResult1.xml 补丁 | 查看 | 原始文档 | blame | 历史
_Main/Sys/Integration/Structure/PanelMaterialResponseResult1_from.xml 补丁 | 查看 | 原始文档 | blame | 历史
_Main/Sys/Integration/Structure/PanelMaterialResponseResult1_to.xml 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Component_mbMainMenu.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlanner/Component_FormTestButtonCollection/Response_Button398_OnClick.def 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlanner/Component_FormTestButtonCollection/_ROOT_Component_FormTestButtonCollection.def 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form234/Component_List174.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form234/_ROOT_Component_FrmOrderResultEx#234.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_ListCapacityAllocationResults.def 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_listActionBarPageCapacityAllocationResults.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_listContextMenuCapacityAllocationResults.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_ButtonGenerateCapacityAllocationResults_OnClick.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/_ROOT_Component_FormCapacityAllocationResults.def 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Component_MatrixEditorCapacityAndSaleBudgeCompare.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Response_ButtonExportCompare_OnClick.def 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/_ROOT_Component_FormCapacityAndSaleBudgeCompare.def 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterBusinessType/Component_ListCapacityAndSaleBudgeFilterBusinessType.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray/Component_ListCapacityAndSaleBudgeFilterPlaceOfProductionOfArray.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/Component_ListHedgingOfLog.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/Component_PanelHedgingOfLog.def 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/Component_PanelHedgingOfLog221.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/Component_PanelHedgingOfLog593#93.def 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/Component_PanelHedgingOfLog593.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/Component_PanelHedgingOfLog761.def 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/Response_PanelHedgingOfLog593_93_btn_Query_FHO_OnClick.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/_ROOT_Component_FormHedgingOfLog.def 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMaterialPurchase/Component_ListMaterialPurchase.def 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMaterialPurchase/Component_PanelMaterialPurchase.def 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMaterialPurchase/Component_PanelMaterialPurchase354.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMaterialPurchase/_ROOT_Component_FormMaterialPurchase.def 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_ListOrderLock#844.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLockHeader#545.def 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_ButtonOrderLockHeaderFresh_OnClick.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderCustomerOrder_O.def 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderPlanDeliver_OnC.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormReleaseRecord/Component_ListReleaseRecord.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormReleaseRecord/Component_ListReleaseRecord243.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormReleaseRecord/Component_PanelReleaseRecord423.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormReleaseRecord/Response_ListReleaseRecord_OnSelectionChanged.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormReleaseRecord/Response_OnCreated.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormReleaseRecord/_ROOT_Component_FormReleaseRecord.def 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Component_PanelOptimizerGeneral718.def 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Component_PanelTop0001#655.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Component_PanelTop820.def 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Response_OnCreated.def 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Response_Panel261_btn_Cancel_FAAC_OnClick.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Response_Panel261_btn_OK_FAAC_OnClick.def 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/_ROOT_Component_FrmAuthorizeAndCountersign.def 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Material/Response_OnCreated.def 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Material/_ROOT_Component_FrmAuthorizeAndCountersign_Material.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_Panel261#223.def 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_Panel796.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_Panel989.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_PanelTop#217.def 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_PanelTop104#150.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_PanelTop264#19.def 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_PanelTop360#136.def 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_PanelTop597#324.def 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_PanelTop612#612.def 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_PanelTop744#568.def 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_PanelTop846#618.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Response_OnCreated.def 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Response_Panel261_223_btn_Cancel_FAAC_OnClick.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Response_Panel261_223_btn_OK_FAAC_OnClick.def 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/_ROOT_Component_FrmAuthorizeAndCountersign_Order.def 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Component_List832.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Component_Panel418.def 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_List832_OnDoubleClick.def 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_List832_OnSelectionChanged.def 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_OnCreated.def 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_Panel418_btn_Add_FM_OnClick#975.def 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_Panel418_btn_Add_FM_OnClick.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_Panel418_btn_Query_FM_OnClick.def 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/_ROOT_Component_FrmMaterial.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_Panel351.def 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_Panel383.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_Panel647.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_Panel849.def 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_liH_Forecast.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_list_ForecastView_FOF#670.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_OnClose.def 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_OnCreated.def 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel351_btn_Add_Material_FOF503_OnClick#222.def 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel351_btn_Add_Order_FOF449_OnClick#880.def 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel351_btn_InitialData778_OnClick#971.def 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel351_btn_OrderH_FOF_OnClick.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel647_btn_Add_Order_FOF_OnClick.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_liH_Forecast_OnDoubleClick.def 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_liH_Forecast_OnSelectionChanged.def 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/_ROOT_Component_FrmOrderForecast.def 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmOrderResult/Component_List782.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmOrderResult/_ROOT_Component_FrmOrderResult.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmRAShow/Component_List696.def 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmRAShow/Component_Panel224.def 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmRAShow/Component_Panel950.def 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmRAShow/Component_listActionBarPage112.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmRAShow/Component_listContextMenu660.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmRAShow/Response_OnCreated.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmRAShow/Response_Panel224_btn_Query_FRAS_OnClick.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmRAShow/_ROOT_Component_FrmRAShow.def 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmTEST/Component_ListData_FT#710.def 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmTEST/Component_Panel675.def 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmTEST/Response_Panel675_ButtonClear_OnClick.def 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmTEST/_ROOT_Component_FrmTEST.def 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Frm_TEST/Component_List212.def 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Frm_TEST/Component_listActionBarPage441.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Frm_TEST/Component_listContextMenu182.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Frm_TEST/Response_Button593_OnClick.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Frm_TEST/Response_Button687_OnClick.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Frm_TEST/_ROOT_Component_Frm_TEST.def 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Views/OrderLock.vw 451 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/_ROOT_Project_MacroPlannerWebApp.qp 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_var/_Main/ProjSettings/MacroPlannerWebApp/TypeConfigs/CustomerOrder.qtc 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/IntegratorConfigs/IntegratorConfig_PanelMaterialRestServer/ContentMapperProcessor_ContentMapperReponse#1.qbl
@@ -2,8 +2,21 @@
#parent: #root
ContentMapperProcessor ContentMapperReponse
{
  DefaultMappingName: 'PanelMaterialResponseResult'
  PosX: 330
  PosY: 450
  ReplyChannelOutputs: QuintiqEndpoint
  ConditionalMapping
  {
    ExpectedValue: '/panelMaterial/send'
    MappingName: 'PanelMaterialResponseResult1'
    SourceMessagePath
    {
      Path: 'Header'
    }
    SourceMessagePath
    {
      Path: 'path'
      SequenceNr: 1
    }
  }
}
_Main/BL/Relations/Relation_CapacityAllocationResults_GlobalOTDTable_GlobalOTDTable_CapacityAll.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation CapacityAllocationResults_GlobalOTDTable_GlobalOTDTable_CapacityAllocationResults
{
  #keys: '1[414702.0.340560333]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide GlobalOTDTable
  {
    #keys: '3[414702.0.340560335][414702.0.340560334][414702.0.340560336]'
    Cardinality: '0to1'
    ObjectDefinition: CapacityAllocationResults
    OwningSide: 'Reference'
  }
  RelationSide.RightSide CapacityAllocationResults
  {
    #keys: '3[414702.0.340560338][414702.0.340560337][414702.0.340560339]'
    Cardinality: '1toN'
    ObjectDefinition: GlobalOTDTable
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_H_MaterialHedgingResult_MacroPlan_MacroPlan_H_MaterialHedgingResult.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation H_MaterialHedgingResult_MacroPlan_MacroPlan_H_MaterialHedgingResult
{
  #keys: '1[414724.0.133544606]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide MacroPlan
  {
    #keys: '3[414724.0.133544608][414724.0.133544607][414724.0.133544609]'
    Cardinality: '0to1'
    ObjectDefinition: H_MaterialHedgingResult
    OwningSide: 'Reference'
  }
  RelationSide.RightSide H_MaterialHedgingResult
  {
    #keys: '3[414724.0.133544611][414724.0.133544610][414724.0.133544612]'
    Cardinality: '1toN'
    ObjectDefinition: MacroPlan
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_H_MaterialInfo_MacroPlan_MacroPlan_H_MaterialInfo.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation H_MaterialInfo_MacroPlan_MacroPlan_H_MaterialInfo
{
  #keys: '1[414724.0.142347478]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide MacroPlan
  {
    #keys: '3[414724.0.142347480][414724.0.142347479][414724.0.142347481]'
    Cardinality: '0to1'
    ObjectDefinition: H_MaterialInfo
    OwningSide: 'Reference'
  }
  RelationSide.RightSide H_MaterialInfo
  {
    #keys: '3[414724.0.142347483][414724.0.142347482][414724.0.142347484]'
    Cardinality: '1toN'
    ObjectDefinition: MacroPlan
    OwningSide: 'Owned'
  }
}
_Main/BL/Type_CapacityAllocationResults/Attribute_Division.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Division
{
  #keys: '3[414702.0.340560478][414702.0.340560477][414702.0.340560479]'
  Description: '事业部'
  ValueType: String
}
_Main/BL/Type_CapacityAllocationResults/Attribute_ModuleBase.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ModuleBase
{
  #keys: '3[414702.0.340560468][414702.0.340560467][414702.0.340560469]'
  Description: '模组基地'
  ValueType: String
}
_Main/BL/Type_CapacityAllocationResults/Attribute_ModuleMaterialCode.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ModuleMaterialCode
{
  #keys: '3[414702.0.340560429][414702.0.340560428][414702.0.340560430]'
  Description: '模组物料编码'
  ValueType: String
}
_Main/BL/Type_CapacityAllocationResults/Attribute_ModuleMeasurementUnit.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ModuleMeasurementUnit
{
  #keys: '3[414702.0.340560458][414702.0.340560457][414702.0.340560459]'
  Description: '模组单位'
  ValueType: String
}
_Main/BL/Type_CapacityAllocationResults/Attribute_NumberOfModules.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute NumberOfModules
{
  #keys: '3[414702.0.340560442][414702.0.340560441][414702.0.340560443]'
  Description: '模组数量'
  ValueType: Real
}
_Main/BL/Type_CapacityAllocationResults/Attribute_NumberOfPanels.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute NumberOfPanels
{
  #keys: '3[414702.0.340560391][414702.0.340560390][414702.0.340560392]'
  Description: '面板数量'
  ValueType: Real
}
_Main/BL/Type_CapacityAllocationResults/Attribute_PanelBase.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute PanelBase
{
  #keys: '3[414702.0.340560371][414702.0.340560370][414702.0.340560372]'
  Description: '面板基地'
  ValueType: String
}
_Main/BL/Type_CapacityAllocationResults/Attribute_PanelMaterialCode.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute PanelMaterialCode
{
  #keys: '3[414702.0.340560381][414702.0.340560380][414702.0.340560382]'
  Description: '面板物料编码'
  ValueType: String
}
_Main/BL/Type_CapacityAllocationResults/Attribute_PanelMeasurementUnit.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute PanelMeasurementUnit
{
  #keys: '3[414702.0.340560404][414702.0.340560403][414702.0.340560405]'
  Description: '面板单位'
  ValueType: String
}
_Main/BL/Type_CapacityAllocationResults/Attribute_RequirementDate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute RequirementDate
{
  #keys: '3[414702.0.340560506][414702.0.340560505][414702.0.340560507]'
  Description: '需求日期'
  ValueType: Date
}
_Main/BL/Type_CapacityAllocationResults/Attribute_VersionNumber.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute VersionNumber
{
  #keys: '3[414702.0.340560355][414702.0.340560354][414702.0.340560356]'
  Description: '版本号'
  ValueType: String
}
_Main/BL/Type_CapacityAllocationResults/StaticMethod_CreateDate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateDate (
  GlobalOTDTable globalOTDTable,
  MacroPlan macroPlan
)
{
  TextBody:
  [*
    globalOTDTable.CapacityAllocationResults( relflush );
    finaleProduct_MPs := CapacityAllocationResults::ObtainTheFinalOutputProduct( macroPlan );
    period_MPS := null( Period_MPs );
    traverse ( macroPlan, PeriodSpecification_MP, psmp, psmp.ID() = "Planning periods" ) {
      period_MPS := selectsortedset( psmp, PeriodSpecificationPeriod.Period_MP, pmp, not pmp.IsHistorical(), pmp.StartDate() );
    }
    traverse ( finaleProduct_MPs, Elements, fpmp/*, fpmp.ID() = "ProXOver 1 D2.6 A"*/ ) {
      traverse ( fpmp, ProductInStockingPoint_MP, pisp, /*pisp.Name() = "ProXOver 1 D2.6 A in Finished Cars (France)" and*/ not pisp.IsSystem() ) {
        traverse ( period_MPS, Elements, pmp ) {
          CapacityAllocationResults::IterativeGeneration( globalOTDTable, pisp, 1, null( NewSupply ), -1.0, pmp.StartDate() );
        }
    //    info( pisp.Name() );
      }
    }
  *]
}
_Main/BL/Type_CapacityAllocationResults/StaticMethod_IterativeGeneration.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,55 @@
Quintiq file version 2.0
#parent: #root
StaticMethod IterativeGeneration (
  GlobalOTDTable globalOTDTable,
  ProductInStockingPoint_MP pisp,
  Number numberOfLayers,
  NewSupply finaleNewSupply,
  Real finaleDependentDemand,
  Date targetDate
)
{
  TextBody:
  [*
    traverse ( pisp, ProductInStockingPointInPeriodPlanning.astype( ProductInStockingPointInPeriodPlanningLeaf ), pispippl, pispippl.Start().Date() = targetDate ) {
      traverse ( pispippl, NewSupply, ns, ns.Quantity() > 0 ) {
    //    info( "生成的产品:", pisp.ProductID(), "    äº§å“åœ¨åº“存点:", pisp.Name(), "    å±‚数:", numberOfLayers, "    æ€»ç”Ÿäº§é‡ï¼š", ns.Quantity(), "    æœ€ç»ˆä¾èµ–物料数量:", finaleDependentDemand );
        if ( finaleDependentDemand < 0 ) {
          finaleDependentDemand := ns.Quantity();
        }
        if ( isnull( finaleNewSupply ) ) {
          finaleNewSupply := ns;
        }
        if ( guard( ns.PeriodTask_MP().astype( PeriodTaskOperation ).DependentDemand( relsize ) > 0, false ) ) {
          numberOfLayers++;
          traverse ( ns, PeriodTask_MP.astype( PeriodTaskOperation ).DependentDemand, dd ) {
            oo := ns.ProcessOutput().astype( OperationOutput );
            oi := dd.ProcessInput().astype( OperationInput );
            finaleDependentDemand := finaleDependentDemand * oo.Quantity() * oi.Quantity();
    //        info( "依赖需求产品ID:", dd.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID(), "    ä¾èµ–数量:", dd.Quantity(), "    å½“前周期任务Key:", dd.PeriodTask_MP().astype( PeriodTaskOperation ).Key() );
            CapacityAllocationResults::IterativeGeneration( globalOTDTable, dd.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP(), numberOfLayers, finaleNewSupply, finaleDependentDemand, targetDate );
          }
    //      info( "----------------------------------------------------" );
        } else {
    //      info( "无依赖需求,需要生成产能分配结果。。。" );
    //      info( "======" );
          pispPanel := ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP();
          pispModule := finaleNewSupply.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP();
          globalOTDTable.CapacityAllocationResults( relnew,
                                                    PanelBase             := pispPanel.StockingPointID(),
                                                    PanelMaterialCode     := pispPanel.ProductID(),
                                                    NumberOfPanels        := finaleDependentDemand,
                                                    PanelMeasurementUnit  := pispPanel.UnitOfMeasure_MP().Name(),
                                                    ModuleMaterialCode    := pispModule.ProductID(),
                                                    NumberOfModules       := finaleNewSupply.Quantity(),
                                                    ModuleMeasurementUnit := pispModule.UnitOfMeasure_MP().Name(),
                                                    ModuleBase            := pispModule.StockingPointID(),
                                                    RequirementDate       := finaleNewSupply.Start().Date()
                                                   );
        }
        finaleNewSupply := null( NewSupply );
      }
      numberOfLayers := 1;
    }
  *]
}
_Main/BL/Type_CapacityAllocationResults/StaticMethod_ObtainTheFinalOutputProduct.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
Quintiq file version 2.0
#parent: #root
StaticMethod ObtainTheFinalOutputProduct (
  MacroPlan macroPlan
) as owning Product_MPs
{
  TextBody:
  [*
    finaleProducts := construct( Product_MPs );
    traverse ( macroPlan, Product_MP, pmp, pmp.IsLeaf() ) {
      flag := true;
      traverse ( macroPlan, Routing.RoutingStep.Operation.OperationInput, oi, flag ) {
        if ( pmp = oi.ProductInStockingPoint_MP().Product_MP() ) {
          flag := false;
        }
      }
      if ( flag ) {
        finaleProducts.Add( pmp );
      }
    }
    return &finaleProducts;
  *]
}
_Main/BL/Type_CapacityAllocationResults/_ROOT_Type_CapacityAllocationResults.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type CapacityAllocationResults
{
  #keys: '5[414702.0.340560330][414702.0.340560328][0.0.0][414702.0.340560329][414702.0.340560331]'
  BaseType: Object
  Description: '产能分配结果报表'
  StructuredName: 'CapacityAllocationResultss'
}
_Main/BL/Type_CustomerOrder/StaticMethod_CreateOrUpdate.qbl
@@ -62,9 +62,34 @@
                               priorityName, salesSegmentName, currencyId, unitOfMeasureName, 
                               false, customerName, customerId, orderId, orderLineId, true, true, true );
    } else {
        result.Update( product, stockingPoint, orderDate, quantity, price,
                       priorityName, salesSegmentName, currencyId, unitOfMeasureName,
                       false, customerName, customerId, orderId, orderLineId, true, true, true );
        if( result.ProductID() = productId
            and result.StockingPointID() = stockingPointId
            and result.StartDate() = orderDate
            and result.Quantity() = quantity
            and result.Price() = price
            and result.PriorityName() = priorityName
            and result.SalesSegmentName() = salesSegmentName
            and result.CurrencyID() = currencyId
            and result.UnitOfMeasureName() = unitOfMeasureName
            and result.CustomerName() = customerName
            and result.CustomerID() = customerId
            and result.OrderID() = orderId
            and result.OrderLineID() = orderLineId ){
              info( "No need to update this order: " + id );
              }else{
                if( result.IsLocked() = true ){
                  pispips := selectset( result, ProductInStockingPoint_MP.ProductInStockingPointInPeriod, pispip, true );
                  pispipLeafs := selectset( pispips,
                                            Elements.astype( ProductInStockingPointInPeriodPlanningLeaf ),
                                            pispip,
                                            true );
                  ProductInStockingPointInPeriod::LockUnlockPlanning( pispipLeafs, false, true );
                }
                result.Update( product, stockingPoint, orderDate, quantity, price,
                               priorityName, salesSegmentName, currencyId, unitOfMeasureName,
                               false, customerName, customerId, orderId, orderLineId, true, true, true );
                result.IsLocked( false );
                }
    }
    return result;
  *]
_Main/BL/Type_CustomerOrder/StaticMethod_LockUnlock.qbl
@@ -20,7 +20,7 @@
        owner.OrderLockLog( relnew, 
                            CustomerName := order.CustomerName(), 
                            End := order.First().AsPlanningBaseSalesDemandInPeriod().End().Date(), 
                            EndDate := order.EndDate(),
                            EndDate := order.StartDate(),
                            IsLocked := order.IsLocked(), 
                            LastModify := order.LastModify(), 
                            LastModifyTime := order.LastModifyTime(), 
@@ -41,7 +41,7 @@
          owner.OrderLockLog( relnew, 
                              CustomerName := order.CustomerName(), 
                              End := order.First().AsPlanningBaseSalesDemandInPeriod().End().Date(), 
                              EndDate := order.EndDate(),
                              EndDate := order.StartDate(),
                              IsLocked := order.IsLocked(), 
                              LastModify := order.LastModify(), 
                              LastModifyTime := order.LastModifyTime(), 
_Main/BL/Type_GlobalDTOTable/Method_ReceivingPanelMaterials.qbl
@@ -44,44 +44,18 @@
    
    replynvt := LibInt_MessageAccessor::CreateEmptyMessage();
    LibInt_MessageAccessor::SetHeaderProperty( replynvt, "Content-Type", "application/json" );
    LibInt_MessageAccessor::SetHeaderProperty( replynvt, "path", "/panelMaterial/send" );
    
    rootNamedValue := replynvt.Root();
    bodyHandle := replynvt.GetHandle( "Body" );
    petHandle := replynvt.GetHandle( "Pet" );
    //petHandle := replynvt.GetHandle( "Pet" );
    bodyNamedValue := rootNamedValue.Child( bodyHandle );
    petNamedValue := bodyNamedValue.AddChild( petHandle );
    categoryHandle := replynvt.GetHandle( "Category" );
    categoryNamedValue := petNamedValue.AddChild( categoryHandle );
    categoryIDHandle := replynvt.GetHandle( "Id" );
    categoryIDNamedValue := categoryNamedValue.AddChild( categoryIDHandle );
    categoryIDNamedValue.SetValue( 3 );
    categoryNameHandle := replynvt.GetHandle( "Name" );
    categoryNameNamedValue := categoryNamedValue.AddChild( categoryNameHandle );
    categoryNameNamedValue.SetValue( "Cat" );
    petNameHandle := replynvt.GetHandle( "Name" );
    petNameValue := petNamedValue.AddChild( petNameHandle );
    petNameValue.SetValue( "Pet1" );
    petIdHandle := replynvt.GetHandle( "PetId" );
    petIdNameValue := petNamedValue.AddChild( petIdHandle );
    petIdNameValue.SetValue( 1 );
    codeHandler := replynvt.GetHandle( "code" );
    codeNamedValue := bodyNamedValue.AddChild( codeHandler );
    codeNamedValue.SetValue( 200 );
    
    photoUrlHandle := replynvt.GetHandle( "PhotoUrl" );
    photoUrlNameValue := petNamedValue.AddChild( photoUrlHandle );
    urlHandle := replynvt.GetHandle( "Url" );
    photoUrlNameValue.AddChild( urlHandle, "url1" );
    statusHandle := replynvt.GetHandle( "Status" );
    statusNameValue := petNamedValue.AddChild( statusHandle );
    statusNameValue.SetValue( "available" );
    tagHandle := replynvt.GetHandle( "Tag" );
    tagNameValue := petNamedValue.AddChild( tagHandle );
    tagIdHandle := replynvt.GetHandle( "Id" );
    tagNameValue.AddChild( tagIdHandle, 123 );
    tagNameHandle := replynvt.GetHandle( "Name" );
    tagNameValue.AddChild( tagNameHandle, "tag1" );
    info( "响应------------------------------------------------------------" );
    info( replynvt.ToString() );
    
    
_Main/BL/Type_H_Forecast/Attribute_StockingPointID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute StockingPointID
{
  #keys: '3[414724.0.149657552][414724.0.149657551][414724.0.149657553]'
  Description: '库存点'
  ValueType: String
}
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetALlBOM.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SM_GetALlBOM (
  MacroPlan Owner,
  MappingBOM Material
) as Number
{
  Description: '根据SKU获取期根部所有数据'
  TextBody:
  [*
    AllMaterials := selectset( Owner,MappingBOM,Obj,Obj.ComponentCode()=Material.ProductCode())
    if( AllMaterials.Size()>0)
    {
          traverse( AllMaterials,Elements,Obj,not isnull( Obj))
         {
              H_FunctionClass::SM_GetALlBOM( Owner,Obj);
         }
    }
    else
    {
        Owner.H_MaterialInfo(relnew,ID := H_FunctionClass::SM_GenerateID( "BM")
                                    ,MaterialName := Material.ComponentType()  );
    }
    return 0;
  *]
}
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetBOMBySKU.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SM_GetBOMBySKU (
  MacroPlan Owner,
  String SKU
) as MappingBOM
{
  Description: '根据SKU获取BOM'
  TextBody:
  [*
    Obj :=null( MappingBOM,constcontent );
    if( not isnull( Owner) and SKU.Length()>0)
    {
      Obj := select( Owner,MappingBOM,ObjM,ObjM.ProductCode()=SKU);
    }
    return Obj;
  *]
}
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetMaterialData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,104 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SM_GetMaterialData (
  MacroPlan Owner,
  String ParentSKU,
  Number ProductQty,
  String ForecastId,
  String VCode,
  Date NDate
) as owning JSON
{
  Description: '获取物料信息'
  TextBody:
  [*
    /**********************************初始化物料信息***************************************
    *创建人:yunying
    *创建日期:2023-09-21
    *描述:根据SKU获取下一层物料数据,这里不是遍历得到所有,时触发一次得到一层,并累计
    *参数:
    *****************************************************************************************/
    // åˆå§‹åŒ–结果
    bStatus := false;
    strMsg :="";
    try{
      if( Owner.MappingBOM(relsize )>0)
      {
        // å¾—到下一级数据
        AllData:= selectset( Owner, MappingBOM,object,object.ComponentCode()=ParentSKU);
        ObjProduct := null( MappingProduct,constcontent );
        ObjUnit := null( Unit,constcontent );
        MaterialType:="";
        MaterialName:="-";
        StockPoint := "";
        NRate:=1.0;
        NComponentsUsed :=0.0;
        ObjBOM := H_FunctionClass::SM_GetBOMBySKU( Owner,ParentSKU);
        if(not isnull( ObjBOM))
        {
          NRate := ObjBOM.ComponentOutputRate();
          NComponentsUsed := ObjBOM.UnitUsageOfComponents();
          // äº§å‡ºæ¯”异常按 100%产出计算
          if( NRate <=0.0)
          {
            NRate :=1.0;
          }
        }
        if( AllData.Size()>0)
        {
          traverse( AllData,Elements,Obj,not isnull( Obj))
          {
            // å¾—到当前已存在的物料信息(订单ID + SKU)
            ObjMaterial := select( Owner,H_MaterialInfo,ObjM,ObjM.ForecastID()=ForecastId and ObjM.SKU()=Obj.ProductCode());
            if( isnull( ObjMaterial))
            {
              // ç‰©æ–™ç±»åž‹
              MaterialType := Obj.ProductType();
              // å¾—到物料信息
              ObjProduct:= H_FunctionClass::SM_GetProductInfo(Owner, Obj.ProductCode());
              if( not isnull( ObjProduct))
              {
                MaterialType:= ObjProduct.ProductMajorType();
                MaterialName:=ObjProduct.Name();
              }
              ObjUnit:= H_FunctionClass::SM_GetUnitBySKU( Owner,Obj.ProductCode());
              if( not isnull( ObjUnit))
              {
                StockPoint:= ObjUnit.Name();
              }
              Owner.H_MaterialInfo(relnew,ParentSKU := Obj.ComponentCode(),SKU := Obj.ProductCode(),ForecastID := ForecastId,OrgCode := Obj.OrganCode(),VCode := VCode
                                    ,ID := H_FunctionClass::SM_GenerateID( "MI"),MaterialType := MaterialType,NeedDate := NDate
                                    ,NeedQty := [Number](ProductQty/NRate*NComponentsUsed).Round( 0),Unit := Obj.UnitOfMeasureName()
                                    ,StockPoint :=StockPoint,MaterialName := MaterialName );
            }
            else
            {
              // è€ƒè™‘是否要更新数据,暂不处理
            }
          }
        }
      }
      // æ²¡æœ‰BOM æ·»åŠ æµ‹è¯•æ•°æ®
      else
      {
        nCount :=Owner.H_MaterialInfo(relsize );
        Owner.H_MaterialInfo(relnew,ParentSKU := ParentSKU,SKU := "SKU"+ nCount.AsQUILL() ,ForecastID := ForecastId,OrgCode := "ORG_000",VCode := VCode
                                    ,ID := H_FunctionClass::SM_GenerateID( "MI"),MaterialType := "原材料",NeedDate := NDate
                                    ,NeedQty := [Number](ProductQty*0.8).Round( 0),Unit := "PCS"
                                    ,StockPoint :="测试",MaterialName := "测试数据" );
      }
      bStatus := true;
      strMsg :="";
    }
    onerror
    {
      strMsg :="加载物料失败,请联系系统管理员!";
      Owner.H_ErrorLogs(relnew,EClassName := "H_FunctionClass",EDateTime := DateTime::ActualGMTTime(),EFunctionName := "SM_InitialForcastData",
                         DeveloperInformation :=  e.DeveloperInformation(),ErrorNr := e.ErrorNr(),DetailedInformation := e.DetailedInformation(),
                         GeneralInformation := e.GeneralInformation());
    }
    return JSON::Object().Add( "Status",bStatus)
                         .Add( "Msg",strMsg).Build();
  *]
}
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetNextFriday.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SM_GetNextFriday () as Date
{
  Description: '获取下一个星期5的日期'
  TextBody:
  [*
    /**********************获取下一个周5的日期*******************
    *创建人:yunying
    *创建日期:2023-09-21
    *描述:得到下一个星期5的日期,如果当天时星期五,则返回当天日期,创建订单使用
    **********************************************************/
    //定义下一个星期
    nTargetWeenNum := 5;
    nTodayWeekNum := Date::ActualDate().DayOfWeek();
    // å‘后偏移天数
    nAddDays := 0;
    if( nTodayWeekNum <= nTargetWeenNum)
    {
      nAddDays := nTargetWeenNum-nTodayWeekNum;
    }
    else
    {
      nAddDays := 7 - nTodayWeekNum+nTargetWeenNum;
    }
    // ä¸‹ä¸€ä¸ªæ˜ŸæœŸçš„æ—¥æœŸ
    return Date::ActualDate() + nAddDays;
  *]
}
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetProductInfo#1.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SM_GetProductInfo (
  MacroPlan Owner,
  String SKU
) as MappingProduct
{
  Description: '根据SKU获取物料信息'
  TextBody:
  [*
    // æ ¹æ®SKU获取物料信息
    Obj := null( MappingProduct,constcontent );
    if( not isnull( Owner) and SKU.Length()>0)
    {
      Obj:= select( Owner,MappingProduct,ObjMP,ObjMP.ID()=SKU);
    }
    return Obj;
  *]
}
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetUnitBySKU.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SM_GetUnitBySKU (
  MacroPlan Owner,
  String SKU
) as Unit
{
  Description: '通过SKU获取库存点信息'
  TextBody:
  [*
    Obj :=null( Unit,constcontent );
    if( not isnull( Owner) and SKU.Length()>0)
    {
      OrgCode := select( Owner,MappingBOM,ObjM,ObjM.ProductCode()=SKU);
      if( not isnull( OrgCode))
      {
        Obj := select( Owner,Unit,ObjU,ObjU.ID()=  OrgCode.OrganCode());
      }
    }
    return Obj;
  *]
}
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_InitialForcastData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,111 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SM_InitialForcastData (
  MacroPlan Owner
) as owning JSON
{
  Description: '初始化订单预测信息'
  TextBody:
  [*
    /**********************************初始化订单预测信息***************************************
    *注:未确定上游预测订单更新逻辑和数据有效性,这里进行二次处理,新生成一个列表,避免上游信息变动严重
    *    å½±å“åŠŸèƒ½
    *
    *****************************************************************************************/
    // åˆå§‹åŒ–结果
    bStatus := false;
    strMsg :="";
    try{
      // æ¸…除旧数据,重新拉取
      if(Owner.H_Forecast(relget ).Size()>0)
      {
        traverse( Owner,H_Forecast,Obj,not isnull( Obj))
        {
          Owner.H_Forecast(reldelete, Obj);
        }
      }
      // èŽ·å–é¢„æµ‹è®¢å•ï¼šå½“æœˆå’Œä¹‹åŽçš„3个月预测数据 ä¸”预测数量>0的
      AllData:= selectset( Owner, Product_MP.SalesDemand.astype( Forecast ),object,object.EndDate().DateTime().Date() >= Date::ActualDate().StartOfMonth()
                           and object.EndDate().DateTime().Date() <= Date::ActualDate().StartOfNextMonth().StartOfNextMonth().StartOfNextMonth().StartOfNextMonth()
                           and object.Quantity()>0 );
      CustomName:="";
      DepartMent:="";
      idx:=0;
      strOrderCode:="";
      RQty:=0;
      ObjOrderRealQty:=null( H_OrderForecastRealQty,constcontent );
    //  ObjPruduct :=null( MappingProduct,constcontent );
      traverse( AllData,Elements,Obj,not isnull(Obj))
      {
        // è¿™é‡Œç”¨æŸ¥æ‰¾åŽæˆªå–,因为不确定有几个横线,以第一个为准
        idx:=Obj.SalesSegmentName().FindString( "-",0);
        if(idx>0)
        {
          DepartMent:=Obj.SalesSegmentName().SubString( 0,idx);
          CustomName := Obj.SalesSegmentName().SubString( idx+1, Obj.SalesSegmentName().Length() - (idx+1));
        }
        else
        {
          CustomName :=Obj.SalesSegmentName();
          DepartMent := "部门数据获取失败!"
        }
    //    // ä»Žç‰©æ–™è¡¨èŽ·å–ç‰©æ–™ä¿¡æ¯
    //    ObjPruduct := H_FunctionClass::SM_GetProductInfo( Owner,Obj.ProductID());
    //    if( not isnull( ObjPruduct))
    //    {
    //
    //    }
         // å†™å…¥é¢„测订单信息表
         strOrderCode:=H_FunctionClass::SM_GenerateID( "OF");
         Owner.H_Forecast(relnew,OrderCode := strOrderCode,
                                SKU := Obj.ProductID(),
                               CustomCode := CustomName,
                               CustomName := CustomName,
                               Util:=Obj.UnitOfMeasureName(),
                               NeedTime:=Obj.EndDate(),
                               ForecastQty:=[Number]Obj.Quantity().Round( 0),
                               StockingPointID := Obj.StockingPointID(),
                               Department:=DepartMent);
         // å†™å…¥é¢„测实时信息
         ObjOrderRealQty := select( Owner,H_OrderForecastRealQty,ObjO,ObjO.CustomID()=CustomName and ObjO.SKU()=Obj.ProductID()
                                    and ObjO.Month().StartOfMonth() = Obj.EndDate().StartOfMonth() )
         if( isnull( ObjOrderRealQty))
         {
             Owner.H_OrderForecastRealQty(relnew,CustomID := CustomName,CustomName := CustomName,ForecatsQty := [Number]Obj.Quantity().Round( 0)
                                           ,ForecatsRealQty := [Number]Obj.Quantity().Round( 0),ID := H_FunctionClass::SM_GenerateID( "OR")
                                           ,Month := Obj.EndDate(),OrderCode := strOrderCode,SKU := Obj.ProductID(),Unit := Obj.UnitOfMeasureName());
         }
         else
         {
            if( [Number]Obj.Quantity().Round( 0)<> ObjOrderRealQty.ForecatsQty())
            {
                  RQty := [Number]Obj.Quantity().Round( 0) - ObjOrderRealQty.ForecatsQty();
                  RQty := ObjOrderRealQty.ForecatsRealQty() + RQty;
                  if( RQty<0)
                  {
                      RQty :=0;
                  }
                  ObjOrderRealQty.ForecatsQty([Number]Obj.Quantity().Round( 0));
                  ObjOrderRealQty.ForecatsRealQty(RQty);
            }
         }
      }
      bStatus := true;
      strMsg :="订单预测初始化成功!";
    }
    onerror
    {
      strMsg :="订单预测初始化失败,可能影响冲减计算,请联系系统管理员!";
      Owner.H_ErrorLogs(relnew,EClassName := "H_FunctionClass",EDateTime := DateTime::ActualGMTTime(),EFunctionName := "SM_InitialForcastData",
                         DeveloperInformation :=  e.DeveloperInformation(),ErrorNr := e.ErrorNr(),DetailedInformation := e.DetailedInformation(),
                         GeneralInformation := e.GeneralInformation());
    }
    return JSON::Object().Add( "Status",bStatus)
                         .Add( "Msg",strMsg).Build();
  *]
}
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_InitialForcastDataEx.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,120 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SM_InitialForcastDataEx (
  MacroPlan Owner,
  Boolean IsNew
) as owning JSON
{
  Description: '初始化订单预测信息'
  TextBody:
  [*
    /**********************************初始化订单预测信息***************************************
    *注:未确定上游预测订单更新逻辑和数据有效性,这里进行二次处理,新生成一个列表,避免上游信息变动严重
    *    å½±å“åŠŸèƒ½
    *
    *****************************************************************************************/
    // åˆå§‹åŒ–结果
    bStatus := false;
    strMsg :="";
    try{
      // æ¸…除旧数据,重新拉取
      if(Owner.H_Forecast(relget ).Size()>0)
      {
        traverse( Owner,H_Forecast,Obj,not isnull( Obj))
        {
          Owner.H_Forecast(reldelete, Obj);
        }
      }
      // èŽ·å–é¢„æµ‹è®¢å•ï¼šå½“æœˆå’Œä¹‹åŽçš„3个月预测数据 ä¸”预测数量>0的
      AllData:= selectset( Owner, Product_MP.SalesDemand.astype( Forecast ),object,object.EndDate().DateTime().Date() >= Date::ActualDate().StartOfMonth()
                           and object.EndDate().DateTime().Date() <= Date::ActualDate().StartOfNextMonth().StartOfNextMonth().StartOfNextMonth().StartOfNextMonth()
                           and object.Quantity()>0 );
      CustomName:="";
      DepartMent:="";
      idx:=0;
      strOrderCode:="";
      RQty:=0;
      ObjOrderRealQty:=null( H_OrderForecastRealQty,constcontent );
    //  ObjPruduct :=null( MappingProduct,constcontent );
      traverse( AllData,Elements,Obj,not isnull(Obj))
      {
        // è¿™é‡Œç”¨æŸ¥æ‰¾åŽæˆªå–,因为不确定有几个横线,以第一个为准
        idx:=Obj.SalesSegmentName().FindString( "-",0);
        if(idx>0)
        {
          DepartMent:=Obj.SalesSegmentName().SubString( 0,idx);
          CustomName := Obj.SalesSegmentName().SubString( idx+1, Obj.SalesSegmentName().Length() - (idx+1));
        }
        else
        {
          CustomName :=Obj.SalesSegmentName();
          DepartMent := "部门数据获取失败!"
        }
    //    // ä»Žç‰©æ–™è¡¨èŽ·å–ç‰©æ–™ä¿¡æ¯
    //    ObjPruduct := H_FunctionClass::SM_GetProductInfo( Owner,Obj.ProductID());
    //    if( not isnull( ObjPruduct))
    //    {
    //
    //    }
         // å†™å…¥é¢„测订单信息表
         strOrderCode:=H_FunctionClass::SM_GenerateID( "OF");
         Owner.H_Forecast(relnew,OrderCode := strOrderCode,
                                SKU := Obj.ProductID(),
                               CustomCode := CustomName,
                               CustomName := CustomName,
                               Util:=Obj.UnitOfMeasureName(),
                               NeedTime:=Obj.EndDate(),
                               ForecastQty:=[Number]Obj.Quantity().Round( 0),
                               StockingPointID := Obj.StockingPointID(),
                               Department:=DepartMent);
         // å†™å…¥é¢„测实时信息
         ObjOrderRealQty := select( Owner,H_OrderForecastRealQty,ObjO,ObjO.CustomID()=CustomName and ObjO.SKU()=Obj.ProductID()
                                    and ObjO.Month().StartOfMonth() = Obj.EndDate().StartOfMonth() )
         if( isnull( ObjOrderRealQty))
         {
             Owner.H_OrderForecastRealQty(relnew,CustomID := CustomName,CustomName := CustomName,ForecatsQty := [Number]Obj.Quantity().Round( 0)
                                           ,ForecatsRealQty := [Number]Obj.Quantity().Round( 0),ID := H_FunctionClass::SM_GenerateID( "OR")
                                           ,Month := Obj.EndDate(),OrderCode := strOrderCode,SKU := Obj.ProductID(),Unit := Obj.UnitOfMeasureName());
         }
         else
         {
           if( IsNew)
           {
              ObjOrderRealQty.ForecatsQty([Number]Obj.Quantity().Round( 0));
              ObjOrderRealQty.ForecatsRealQty([Number]Obj.Quantity().Round( 0));
           }
           else
           {
              if( [Number]Obj.Quantity().Round( 0)<> ObjOrderRealQty.ForecatsQty())
              {
                    RQty := [Number]Obj.Quantity().Round( 0) - ObjOrderRealQty.ForecatsQty();
                    RQty := ObjOrderRealQty.ForecatsRealQty() + RQty;
                    if( RQty<0)
                    {
                        RQty :=0;
                    }
                    ObjOrderRealQty.ForecatsQty([Number]Obj.Quantity().Round( 0));
                    ObjOrderRealQty.ForecatsRealQty(RQty);
              }
           }
         }
      }
      bStatus := true;
      strMsg :="订单预测初始化成功!";
    }
    onerror
    {
      strMsg :="订单预测初始化失败,可能影响冲减计算,请联系系统管理员!";
      Owner.H_ErrorLogs(relnew,EClassName := "H_FunctionClass",EDateTime := DateTime::ActualGMTTime(),EFunctionName := "SM_InitialForcastData",
                         DeveloperInformation :=  e.DeveloperInformation(),ErrorNr := e.ErrorNr(),DetailedInformation := e.DetailedInformation(),
                         GeneralInformation := e.GeneralInformation());
    }
    return JSON::Object().Add( "Status",bStatus)
                         .Add( "Msg",strMsg).Build();
  *]
}
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_MaterialReverse.qbl
@@ -40,7 +40,7 @@
        // èŽ·å–é¢„æµ‹æ•°é‡ï¼ˆå®¢æˆ·+SKU+月份 ç†è®ºæ˜¯æ²¡æœ‰ç‰©æ–™é¢„测)
        OrderForecast := select(Owner, H_OrderForecastRealQty , Obj, Obj.SKU() = SKU 
                                              and Obj.CustomID() = CustomerCode 
                                              and Obj.Month().Format( "YM2") = Date::ActualDate().Format( "YM2"));
                                              and Obj.Month().Format( "YM2") = Date::ActualDate().Format( "YM2"));
        if ( not isnull(OrderForecast))
        {
            nForecastQtyOld := OrderForecast.ForecatsRealQty();
@@ -93,6 +93,28 @@
            Owner.H_ReverseRealQty(relnew,ID := H_FunctionClass::SM_GenerateID( "RQ"),SKU := SKU,Unit := "通过SKU获取",ReverseRealQty := nReverseQtyNew);
          } 
          
          MaterialResult := selectset( Owner,H_MaterialHedgingResult,Obj,Obj.SKU() = SKU);
          if( MaterialResult.Size()=0)
          {
              Owner.H_MaterialHedgingResult(relnew,
                                             ID := H_FunctionClass::SM_GenerateID( "MR"),
                                             SKU:=SKU,
                                             ForecastQty := nForecastQtyNew,
                                             ReverseQty := nReverseQtyNew,
                                             AuthorizeQty := 0,
                                             CustomerCode := CustomerCode,
                                             CustomerName := "",
                                             Unit := "",
                                             MType := "物料/半成品");
          }
          else
          {
              traverse( MaterialResult,Elements,Obj,not isnull( Obj))
              {
                 Obj.ReverseQty(  nReverseQtyNew);
              }
          }
          // é‡Šæ”¾é‡‡è´­
          Owner.H_MaterialPurchase(relnew,ID := H_FunctionClass::SM_GenerateID( "MP"),VCode:=VCode, DemandTime := DateTime::ActualTime(),
                                    H_HedgingRecord_ID := HRID,SKU := SKU,ProductSubclassType := "物料类型,用SKU抓物料表得到",Qty := OperateQty,Unit := "通过SKU抓",
@@ -196,7 +218,46 @@
                                                                                            AuthorizeRealQty :=nAuthorizeQtyNew,
                                                                                            Unit := "SKU åˆ°ç‰©æ–™è¡¨èŽ·å–");
          } 
          //更新结果
          MaterialResult := selectset( Owner,H_MaterialHedgingResult,Obj,Obj.SKU() = SKU);
          if( MaterialResult.Size()=0)
          {
            // æ·»åŠ ä¸€æ¡åç­¾è®°å½•
            Owner.H_MaterialHedgingResult(relnew,
                                   ID := H_FunctionClass::SM_GenerateID( "MR"),
                                   SKU:=SKU,
                                   ForecastQty := nForecastQtyNew,
                                   ReverseQty := nReverseQtyNew,
                                   AuthorizeQty := 0,
                                   CustomerCode := CustomerCode,
                                   CustomerName := "",
                                   Unit := "",
                                   MType := "物料/半成品");
            // æ·»åŠ ä¸€æ¡æŽˆæƒè®°å½•
            Owner.H_MaterialHedgingResult(relnew,
                                           ID := H_FunctionClass::SM_GenerateID( "MR"),
                                           SKU:=SKU,
                                           ForecastQty := nForecastQtyNew,
                                           ReverseQty := nReverseQtyNew,
                                           AuthorizeQty := nAuthorizeQtyNew,
                                           CustomerCode := CustomerCode,
                                           Unit := "",MType := "物料/半成品",
                                           CustomerName := CustomerCode);
          }
          else
          {
              traverse( MaterialResult,Elements,Obj,not isnull( Obj))
              {
                Obj.ReverseQty(  nReverseQtyNew);
                if( Obj.CustomerCode()= CustomerCode)
                {
                  Obj.AuthorizeQty(nAuthorizeQtyNew);
                  Obj.ForecastQty(nForecastQtyNew);
                }
              }
          }
          // é‡Šæ”¾é‡‡è´­
          nMid_R :=OperateQty - nReverseQtyOld;
          if( nMid_R > 0)
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_OrderHedging.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,200 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SM_OrderHedging (
  MacroPlan Owner,
  Boolean IsNew,
  String Operator,
  String OperatorType
) as owning JSON
{
  Description: '订单冲减调用函数'
  TextBody:
  [*
    /************************************订单冲减调用******************************
    *函数名:SM_OrderHedging
    *创建人:yunying
    *创建时间:20230-09-24
    *描述:系统内订单冲减调用函数,IsNew=true时,重新处理预测信息,IsNew=false时,用预测累计信息。
    *****************************************************************************/
    // åˆå§‹åŒ–结果
    bStatus := false;
    strMsg :="";
    // èŽ·å–ç‰ˆæœ¬å·,这里是否需要和版本号功能对接
    VCode :=H_FunctionClass::SM_GenerateID("VC");
    try{
      if( not isnull( Owner))
      {
        // åˆå§‹åŒ–预测信息
        JResult := H_FunctionClass::SM_InitialForcastDataEx( Owner,IsNew);
        if( JResult.Get( "Status").GetBoolean())
        {
          traverse( Owner,SalesDemand.astype( CustomerOrder ),ObjOrder,not isnull( ObjOrder))
          {
            //----------------------------------------以下后去预测 åç­¾ æŽˆæƒæ•°æ®ä¿¡æ¯----------------
            nForecastQtyOld := 0; //原预测数量
            nReverseQtyOld :=0;   //原反签数量
            nAuthorizeQtyOld :=0; //原授权数量
            nForecastQtyNew :=0;  //计算后的预测数量
            nReverseQtyNew :=0;   //计算后的反签数量
            nAuthorizeQtyNew :=0; //计算后的授权数量
            nHaveForecastQty :=0; //有预测数量
            nNoHaveForecastQty:=0;//五预测数量
            OrderQuantity := 0;   //剩余订单数量
            // èŽ·å–é¢„æµ‹æ•°é‡ï¼ˆå®¢æˆ·+SKU+月份 ç†è®ºæ˜¯æ²¡æœ‰ç‰©æ–™é¢„测)
            OrderForecast := select(Owner, H_OrderForecastRealQty , Obj, Obj.SKU() = ObjOrder.ProductID()
                                                  and Obj.CustomID() = ObjOrder.CustomerName()
                                                  and Obj.Month().Format( "YM2") =ObjOrder.EndDate().Format( "YM2"));
            if ( not isnull(OrderForecast))
            {
                nForecastQtyOld := OrderForecast.ForecatsRealQty();
                nForecastQtyNew := nForecastQtyOld;
            }
            // èŽ·å–åç­¾æ•°é‡ï¼ˆåªåˆ¤æ–­SKU)
            ObjReverse := select(Owner, H_ReverseRealQty , Obj, Obj.SKU() = ObjOrder.ProductID());
            if ( not isnull(ObjReverse))
            {
                nReverseQtyOld := ObjReverse.ReverseRealQty();
                nReverseQtyNew := nReverseQtyOld;
            }
            // èŽ·å–æŽˆæƒæ•°é‡ï¼ˆå®¢æˆ·ID+SKU)
            ObjAuthorize := select(Owner, H_AuthorizeRealQty , Obj, Obj.SKU() = ObjOrder.ProductID()
                                                                    and Obj.CustomID() = ObjOrder.CustomerName());
            if ( not isnull(ObjAuthorize))
            {
                nAuthorizeQtyOld := ObjAuthorize.AuthorizeRealQty();
                nAuthorizeQtyNew :=nAuthorizeQtyOld;
            }
            //-----------------------------以下订单冲减--------------------
            // æŽˆæƒè®°å½•ID
            AQID := H_FunctionClass::SM_GenerateID( "AQ");
            // è®¢å•剩余数量
            OrderQuantity := [Number]ObjOrder.Quantity().Round( 0);
            // 1 å…ˆå†²æŽˆæƒ
            if( OrderQuantity>0 and nAuthorizeQtyOld>0)
            {
               OrderQuantity := OrderQuantity-nAuthorizeQtyOld;
               nAuthorizeQtyNew :=0;
               if( OrderQuantity<0)
               {
                 nAuthorizeQtyNew := abs(OrderQuantity);
                 OrderQuantity :=0;
               }
            }
            // 2 å†å†²åç­¾
            if( OrderQuantity>0 and nReverseQtyOld>0)
            {
               OrderQuantity := OrderQuantity-nReverseQtyOld;
               nReverseQtyNew :=0;
               if( OrderQuantity<0)
               {
                 nReverseQtyNew := abs(OrderQuantity);
                 OrderQuantity :=0;
               }
            }
            // 3 æœ€åŽå†²é¢„测
            if( OrderQuantity>0 and nForecastQtyOld>0)
            {
               //默认订单数量>预测数量
               OrderQuantity := OrderQuantity-nForecastQtyOld;
               nForecastQtyNew :=0;
               nHaveForecastQty := nForecastQtyOld;
               nNoHaveForecastQty := OrderQuantity;
               if( OrderQuantity<0)
               {
                 nForecastQtyNew := abs(OrderQuantity);
                 OrderQuantity :=0;
                 nHaveForecastQty := nForecastQtyOld - nForecastQtyNew;
                 nNoHaveForecastQty := 0;
               }
            }
            // è®°å½•动作
            Owner.H_OrderRecord(relnew,
                                   ID := AQID,
                                   VCode:=VCode,
                                   SKU:=ObjOrder.ProductID(),
                                   ReverseQty := nReverseQtyNew,
                                   CustomerCode := ObjOrder.CustomerName(),
                                   CustomerName := ObjOrder.CustomerName(),
                                   ForecastQty := nForecastQtyNew,
                                   OrderDateTime := ObjOrder.EndDate(),
                                   OrderQty := [Number]ObjOrder.Quantity().Round( 0),
                                   OrderCode:=ObjOrder.OrderID(),
                                   AuthorizeQty := nAuthorizeQtyNew,
                                   ReverseDeductQty := nReverseQtyOld - nReverseQtyNew,
                                   AuthorizeDeductQty := 0,
                                   ForecastHitQty :=nHaveForecastQty,
                                   ForecastNoHitQty :=nNoHaveForecastQty,
                                   OperateType := OperatorType,
                                   Operator := Operator,
                                   Unit := ObjOrder.UnitOfMeasureName(),
                                   OperateQty := [Number]ObjOrder.Quantity().Round( 0),
                                   OperateTime := DateTime::ActualTime());
            // æ›´æ–°å½“前反签数量
            if( not isnull( ObjReverse))
            {
              ObjReverse.ReverseRealQty(nReverseQtyNew);
            }
            else
            {
              Owner.H_ReverseRealQty(relnew,ID := H_FunctionClass::SM_GenerateID( "RQ"),SKU := ObjOrder.ProductID(),Unit := ObjOrder.UnitOfMeasureName()
                                      ,ReverseRealQty := nReverseQtyNew);
            }
            // æ›´æ–°æŽˆæƒ
            if( not isnull( ObjAuthorize))
            {
              ObjAuthorize.AuthorizeRealQty(nAuthorizeQtyNew);
            }
            else
            {
              Owner.H_AuthorizeRealQty(relnew,ID := H_FunctionClass::SM_GenerateID( "AR"),SKU := ObjOrder.ProductID(),
                                                                                              Month := ObjOrder.EndDate(),
                                                                                              CustomID := ObjOrder.CustomerName(),
                                                                                              CustomName := ObjOrder.CustomerName(),
                                                                                              OrderCode := "-",
                                                                                              AuthorizeRealQty :=nAuthorizeQtyNew,
                                                                                              Unit := ObjOrder.UnitOfMeasureName());
            }
            // æ›´æ–°é¢„测
            if( not isnull( OrderForecast))
            {
              OrderForecast.ForecatsRealQty(nForecastQtyNew);
            }
            else
            {
              Owner.H_OrderForecastRealQty(relnew,ID := H_FunctionClass::SM_GenerateID( "OF"),SKU := ObjOrder.ProductID(),
                                                                                              Month := ObjOrder.EndDate(),
                                                                                              CustomID := ObjOrder.CustomerName(),
                                                                                              CustomName := ObjOrder.CustomerName(),
                                                                                              OrderCode := "-",
                                                                                              ForecatsQty :=0,
                                                                                              ForecatsRealQty :=nForecastQtyNew,
                                                                                              Unit := ObjOrder.UnitOfMeasureName());
            }
          }
        }
        else
        {
          strMsg:="预测订单信息加载失败,请联系系统管理员!";
        }
      }
    }
    onerror
    {
      strMsg :="订单冲减发生错误,请联系系统管理员!";
      // è¿™é‡Œæ˜¯å¦è¦åˆ é™¤å·²åˆ›å»ºçš„æ•°æ®ï¼Ÿå¾…定,如果按版本号可以不删除
      // è®°å½•错误日志
      Owner.H_ErrorLogs(relnew,EClassName := "H_FunctionClass",EDateTime := DateTime::ActualGMTTime(),EFunctionName := "SM_InitialForcastData",
                         DeveloperInformation :=  e.DeveloperInformation(),ErrorNr := e.ErrorNr(),DetailedInformation := e.DetailedInformation(),
                         GeneralInformation := e.GeneralInformation());
    }
    return JSON::Object().Add( "Status",bStatus)
                         .Add( "VersionCode",VCode)
                         .Add( "Msg",strMsg).Build();
  *]
}
_Main/BL/Type_H_FunctionClass/_ROOT_Type_H_FunctionClass.qbl
@@ -5,6 +5,6 @@
{
  #keys: '5[414724.0.53669729][414724.0.53669727][0.0.0][414724.0.53669728][414724.0.53669730]'
  BaseType: Object
  Description: '冲减操作类'
  Description: '冲减操作公用类'
  StructuredName: 'H_FunctionClasss'
}
_Main/BL/Type_H_MaterialHedgingResult/Attribute_AuthorizeQty.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute AuthorizeQty
{
  #keys: '3[414724.0.133544641][414724.0.133544640][414724.0.133544642]'
  Description: '授权剩余数量'
  ValueType: Number
}
_Main/BL/Type_H_MaterialHedgingResult/Attribute_CustomerCode.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CustomerCode
{
  #keys: '3[414724.0.133544653][414724.0.133544652][414724.0.133544654]'
  Description: '客户ID'
  ValueType: String
}
_Main/BL/Type_H_MaterialHedgingResult/Attribute_CustomerName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CustomerName
{
  #keys: '3[414724.0.133544660][414724.0.133544659][414724.0.133544661]'
  Description: '客户名称'
  ValueType: String
}
_Main/BL/Type_H_MaterialHedgingResult/Attribute_ForecastQty.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ForecastQty
{
  #keys: '3[414724.0.133544656][414724.0.133544655][414724.0.133544657]'
  Description: '当月预测剩余数量'
  ValueType: Number
}
_Main/BL/Type_H_MaterialHedgingResult/Attribute_ID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ID
{
  #keys: '3[414724.0.133544626][414724.0.133544625][414724.0.133544627]'
  Description: 'KEY'
  ValueType: String
}
_Main/BL/Type_H_MaterialHedgingResult/Attribute_MType.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MType
{
  #keys: '3[414724.0.134572562][414724.0.134572561][414724.0.134572563]'
  Description: ' ç‰©æ–™ç±»åž‹'
  ValueType: String
}
_Main/BL/Type_H_MaterialHedgingResult/Attribute_ReverseQty.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ReverseQty
{
  #keys: '3[414724.0.133544623][414724.0.133544622][414724.0.133544624]'
  Description: '反签剩余数量'
  ValueType: Number
}
_Main/BL/Type_H_MaterialHedgingResult/Attribute_SKU.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute SKU
{
  #keys: '3[414724.0.133544644][414724.0.133544643][414724.0.133544645]'
  Description: 'SKU编码'
  ValueType: String
}
_Main/BL/Type_H_MaterialHedgingResult/Attribute_Serial.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Serial
{
  #keys: '3[414724.0.133544647][414724.0.133544646][414724.0.133544648]'
  Description: '序号,不一定使用'
  ValueType: Number
}
_Main/BL/Type_H_MaterialHedgingResult/Attribute_Unit.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Unit
{
  #keys: '3[414724.0.133544673][414724.0.133544672][414724.0.133544674]'
  Description: '单位'
  ValueType: String
}
_Main/BL/Type_H_MaterialHedgingResult/DefaultValue_CustomerCode.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: CustomerCode
}
_Main/BL/Type_H_MaterialHedgingResult/DefaultValue_ID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: ID
}
_Main/BL/Type_H_MaterialHedgingResult/DefaultValue_SKU.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: SKU
}
_Main/BL/Type_H_MaterialHedgingResult/_ROOT_Type_H_MaterialHedgingResult.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type H_MaterialHedgingResult
{
  #keys: '5[414724.0.133544603][414724.0.133544601][0.0.0][414724.0.133544602][414724.0.133544604]'
  BaseType: Object
  Description: '物料反签授权结果'
  StructuredName: 'H_MaterialHedgingResults'
}
_Main/BL/Type_H_MaterialInfo/Attribute_ForecastID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ForecastID
{
  #keys: '3[414724.0.150662643][414724.0.150662642][414724.0.150662644]'
  Description: '预测ID'
  ValueType: String
}
_Main/BL/Type_H_MaterialInfo/Attribute_ID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ID
{
  #keys: '3[414724.0.142347495][414724.0.142347494][414724.0.142347496]'
  Description: '主键ID'
  ValueType: String
}
_Main/BL/Type_H_MaterialInfo/Attribute_MaterialName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MaterialName
{
  #keys: '3[414724.0.142347535][414724.0.142347534][414724.0.142347536]'
  Description: '物料名称'
  ValueType: String
}
_Main/BL/Type_H_MaterialInfo/Attribute_MaterialType.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MaterialType
{
  #keys: '3[414724.0.142347525][414724.0.142347524][414724.0.142347526]'
  Description: '物料类型:成品、半成品、原材料????'
  ValueType: String
}
_Main/BL/Type_H_MaterialInfo/Attribute_NeedDate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute NeedDate
{
  #keys: '3[414724.0.143344655][414724.0.143344654][414724.0.143344656]'
  Description: '需求时间'
  ValueType: Date
}
_Main/BL/Type_H_MaterialInfo/Attribute_NeedQty.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute NeedQty
{
  #keys: '3[414724.0.142347555][414724.0.142347554][414724.0.142347556]'
  Description: '需求数量'
  ValueType: Number
}
_Main/BL/Type_H_MaterialInfo/Attribute_OrgCode.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute OrgCode
{
  #keys: '3[414724.0.142347565][414724.0.142347564][414724.0.142347566]'
  Description: '组织代码'
  ValueType: String
}
_Main/BL/Type_H_MaterialInfo/Attribute_ParentSKU.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ParentSKU
{
  #keys: '3[414724.0.142347515][414724.0.142347514][414724.0.142347516]'
  Description: '父物料SKU'
  ValueType: String
}
_Main/BL/Type_H_MaterialInfo/Attribute_SKU.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute SKU
{
  #keys: '3[414724.0.142347505][414724.0.142347504][414724.0.142347506]'
  Description: 'SKU(产品、半成品、物料)'
  ValueType: String
}
_Main/BL/Type_H_MaterialInfo/Attribute_StockPoint.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute StockPoint
{
  #keys: '3[414724.0.142347575][414724.0.142347574][414724.0.142347576]'
  Description: '库存点'
  ValueType: String
}
_Main/BL/Type_H_MaterialInfo/Attribute_Unit.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Unit
{
  #keys: '3[414724.0.142347545][414724.0.142347544][414724.0.142347546]'
  Description: '单位'
  ValueType: String
}
_Main/BL/Type_H_MaterialInfo/Attribute_VCode.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute VCode
{
  #keys: '3[414724.0.142347585][414724.0.142347584][414724.0.142347586]'
  Description: '版本号'
  ValueType: String
}
_Main/BL/Type_H_MaterialInfo/_ROOT_Type_H_MaterialInfo.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type H_MaterialInfo
{
  #keys: '5[414724.0.142347475][414724.0.142347473][0.0.0][414724.0.142347474][414724.0.142347476]'
  BaseType: Object
  Description: '物料信息'
  StructuredName: 'H_MaterialInfos'
}
_Main/BL/Type_H_MessagePassing/Attribute_ValueJsonString.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ValueJsonString
{
  #keys: '3[414724.0.138457270][414724.0.138457269][414724.0.138457271]'
  Description: 'Json格式字符串格式的Value'
  ValueType: String
}
_Main/BL/Type_MPSync/Method_RefreshCapacityAndSaleBudgeFilter#323.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
#parent: #root
Method RefreshCapacityAndSaleBudgeFilter (
  Boolean deleteBeforeCreate
)
{
  TextBody:
  [*
    if( deleteBeforeCreate ) {
      this.CapacityAndSaleBudgeFilterBusinessType( relflush );
      this.CapacityAndSaleBudgeFilterPlaceOfProductionOfArray( relflush );
    }
    this.RefreshCapacityAndSaleBudgeFilter();
  *]
}
_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeCompare.qbl
@@ -72,7 +72,9 @@
    info( "dealing é¢æ¿åˆ†é…é‡" )
    if( CapacityAndSaleBudgeFilterItem::Contains( items, "面板分配量" ) ) {
      traverse( years, Elements, year ) {
        info( "面板分配量" + [String]year.YearNo() + "å¹´" );
        // åŽ†å²æ•°æ®
        info( "面板分配量" + [String]year.YearNo() + "年历史数据" );
        traverse( months, Elements, month ) {
          columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "面板分配量-" + [String]year.YearNo() + "å¹´-" + [String]month.MonthNo() + "月-年度预算" );
          traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
@@ -87,6 +89,7 @@
          cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
          cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
        }
        info( "面板分配量" + [String]year.YearNo() + "å¹´S&OP数据" );
        // S&OP数据
        traverse( macroPlans, Elements, macroPlan ) {
          traverse( months, Elements, month ) {
@@ -112,7 +115,9 @@
    info( "dealing é”€å”®é¢" )
    if( CapacityAndSaleBudgeFilterItem::Contains( items, "销售额" ) ) {
      traverse( years, Elements, year ) {
        info( "销售额" + [String]year.YearNo() + "å¹´" );
        // åŽ†å²æ•°æ®
        info( "销售额" + [String]year.YearNo() + "年历史数据" );
        traverse( months, Elements, month ) {
          columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "对外销售额-" + [String]year.YearNo() + "å¹´-" + [String]month.MonthNo() + "月-年度预算" );
          traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
@@ -127,6 +132,7 @@
          cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
          cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
        }
        info( "销售额" + [String]year.YearNo() + "年历史数据S&OP数据" );
        // S&OP数据
        traverse( macroPlans, Elements, macroPlan ) {
          traverse( months, Elements, month ) {
@@ -151,7 +157,7 @@
    info( "dealing å¤§å¼ ç›ˆåˆ©é¢" )
    traverse( years, Elements, year ) {
      // åŽ†å²æ•°æ®
      columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "大张盈利额-年度预算" );
      columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "大张盈利额-" + [String]year.YearNo() + "å¹´-年度预算" );
      traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
        // todo 
        // QID 23
@@ -160,7 +166,7 @@
      }
      // S&OP数据
      traverse( macroPlans, Elements, macroPlan ) {
        columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "大张盈利额-" + [String]year.YearNo() + "å¹´" );
        columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "大张盈利额-" + [String]year.YearNo() + "å¹´-" + macroPlan.ScenarioName() );
        traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
          cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) );
          cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
@@ -171,16 +177,15 @@
    info( "dealing äº§å“ç›ˆåˆ©é¢" )
    traverse( years, Elements, year ) {
      // åŽ†å²æ•°æ®
      columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "产品盈利额-年度预算" );
      columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "产品盈利额-" + [String]year.YearNo() + "å¹´-年度预算" );
      traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
        // todo
        // QID 23
        cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) );
        cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
      }
      // S&OP数据
      traverse( macroPlans, Elements, macroPlan ) {
        columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "产品盈利额-" + [String]year.YearNo() + "å¹´" );
        columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "产品盈利额-" + [String]year.YearNo() + "å¹´-" + macroPlan.ScenarioName() );
        traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
          // todo
          cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) );
_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeCompareExport.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,42 @@
Quintiq file version 2.0
#parent: #root
Method CapacityAndSaleBudgeCompareExport () as BinaryValue
{
  Description: '导出比较结果'
  TextBody:
  [*
    // yypsybs Sep-22-2023 (created)
    tableName := "年度产销预算对比";
    text:= '<?xml version="1.0" encoding="utf-8" standalone="yes"?><table><name>' + tableName + '</name>';
    // å¤„理column <column><name>物料编码</name><type>String</type></column>
    columnXml := ""
    traverse( this, CapacityAndSaleBudgeCompareItemColumn, column ) {
      info( "columnName : " + column.ColumnName() );
      columnXml := columnXml + "<column><name>" + column.ColumnName() + "</name><type>String</type></column>";
    }
    text := text + columnXml + "</table>"
    // å¡žå†…容
    xmlDOMImplementation := XMLDOMImplementation::Create();
    xmlDOMDocument := xmlDOMImplementation.CreateDocumentFromString( text );
    tableElement:= xmlDOMDocument.GetElementByTagName( "table", 0 );
    rows := selectsortedset( this, CapacityAndSaleBudgeCompareItemRow, row, row.PlaceOfProductionOfArray() + "_" + row.BusinessType() );
    traverse ( rows, Elements, row ) {
      info( "rowNo : " + [String]row.RowNo() );
      traverse( row, CapacityAndSaleBudgeCompareItemCell, cell ) {
        ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, cell.CellContent(), cell.CapacityAndSaleBudgeCompareItemColumn().ColumnName() );
      }
    }
    xmlDOMSerializer := xmlDOMImplementation.CreateSerializer();
    xmlTableString := xmlDOMSerializer.WriteToString( xmlDOMDocument );
    tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlTableString ) );
    tableGroupHandle := TableGroupHandle::Create( tableName );
    tableGroupHandle.Add( tableHandle );
    tableBinaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true );
    return tableBinaryData.AsBinaryValue();
  *]
}
_Main/BL/Type_ScenarioManager/StaticMethod_GeneratesTheSpecifiedXMLColumn.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GeneratesTheSpecifiedXMLColumn (
  XMLDOMDocument xmlDOMDocument,
  XMLDOMElement tableElement,
  String value,
  String columnName
)
{
  TextBody:
  [*
    columnElements := tableElement.GetElementsByTagName( "column" );
    traverse ( columnElements, Elements, ce ) {
      nameElement := ce.GetElementByTagName( "name", 0 );
      if ( nameElement.TextContent() = columnName ) {
        cell := xmlDOMDocument.CreateElement( "cell" );
        cell.SetAttribute( "value", value );
        ce.AppendChild( cell );
      }
    }
  *]
}
_Main/Sys/Integration/Brokers/PanelMaterialResponseResult1.xml
Binary files differ
_Main/Sys/Integration/Mapping/PanelMaterialResponseResult1.xml
Binary files differ
_Main/Sys/Integration/Structure/PanelMaterialResponseResult1_from.xml
Binary files differ
_Main/Sys/Integration/Structure/PanelMaterialResponseResult1_to.xml
Binary files differ
_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Component_mbMainMenu.def
@@ -136,6 +136,8 @@
      [
        Component menuSeparator457 { #keys: '[414702.0.265704251]' BaseType: 'Menu' Properties: [ Separator: true ] }
        Component ComponentMenu666 { #keys: '[414702.0.265704260]' BaseType: 'ComponentMenu' Properties: [ ComponentType: 'FormBrokerExecuteLog' Text: '' ] }
        Component menuSeparator822 { #keys: '[414702.0.340555024]' BaseType: 'Menu' Properties: [ Separator: true ] }
        Component ComponentMenu783 { #keys: '[414702.0.340555035]' BaseType: 'ComponentMenu' Properties: [ ComponentType: 'FormTestButtonCollection' Text: '' ] }
      ]
      Properties:
      [
@@ -154,6 +156,8 @@
          c: menuExit
          c: menuSeparator457
          c: ComponentMenu666
          c: menuSeparator822
          c: ComponentMenu783
        }
      ]
    }
_Main/UI/MacroPlanner/Component_FormTestButtonCollection/Response_Button398_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
Quintiq file version 2.0
#parent: Button398
Response OnClick () id:Response_FormTestButtonCollection_Button398_OnClick
{
  #keys: '[414702.0.340554926]'
  Body:
  [*
    CapacityAllocationResults::CreateDate( GlobalOTDTable, MacroPlan );
  *]
  CanBindMultiple: false
  DefinitionID: 'Responsedef_GUIButtonBase_OnClick'
}
_Main/UI/MacroPlanner/Component_FormTestButtonCollection/_ROOT_Component_FormTestButtonCollection.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,50 @@
Quintiq file version 2.0
#root
#parent: MacroPlanner
OrphanComponent FormTestButtonCollection
{
  #keys: '[414702.0.340554698]'
  BaseType: 'Form'
  GBLayout
  {
    Type: 'internal[GBLayoutDefinition]'
    Columns:
    [
      GBFlow.Column { grow: 0 id: 454 parent: 0 }
    ]
    Elements:
    [
      GBElement
      {
        Component => Button398
        Position { startcolumn: 454 startrow: 649 endcolumn: 454 endrow: 649 }
      }
    ]
    Gaps: [ left: 5 right: 5 top: 5 bottom: 5 inner: 5 ]
    Rows:
    [
      GBFlow.Row { grow: 0 id: 649 parent: 0 }
    ]
  }
  Children:
  [
    Component Button398
    {
      #keys: '[414702.0.340554799]'
      BaseType: 'Button'
      Properties:
      [
        Image: 'HARDHAT'
        Text: '生成产能分配结果数据'
      ]
    }
  ]
  Properties:
  [
    Height: 209
    Image: 'PIPETTE_TEST'
    IncludeInView: true
    Title: '功能测试按钮'
    Width: 535
  ]
}
_Main/UI/MacroPlannerWebApp/Component_Form234/Component_List174.def
@@ -28,7 +28,7 @@
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderCode","title":"OrderCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SKU","title":"SKU","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SKU"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderDateTime","title":"OrderDateTime","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderDateTime"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderQty","title":"OrderQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastHitQty","title":"ForecastHitQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastHitQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastNoHitQty","title":"ForecastNoHitQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastNoHitQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Unit","title":"Unit","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Unit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerName","title":"CustomerName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerCode","title":"CustomerCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerCode"}}]'
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderCode","title":"订单编号","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SKU","title":"SKU编码","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SKU"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderQty","title":"数量","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderDateTime","title":"需求时间","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderDateTime"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastHitQty","title":"有预测","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastHitQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastNoHitQty","title":"无预测","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastNoHitQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Unit","title":"单位","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Unit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerName","title":"客户名称","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerCode","title":"客户ID","subtotals":"","tooltip":"","width":-1,"display":"hidden","editable":false,"attribute":"CustomerCode"}}]'
        ContextMenu: 'listContextMenu108'
        SortCriteria: 'OperateTime'
        Taborder: 2
_Main/UI/MacroPlannerWebApp/Component_Form234/_ROOT_Component_FrmOrderResultEx#234.def
@@ -40,6 +40,7 @@
  Properties:
  [
    Description: '订单冲减后列表展示'
    Image: 'NAV_REDO_LIGHT_BLUE'
    Title: '订单冲减后列表展示'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_ListCapacityAllocationResults.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
Quintiq file version 2.0
Component ListCapacityAllocationResults
{
  #keys: '[414702.0.338762075]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractorCapacityAllocationResults
    {
      #keys: '[414702.0.338762076]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'GlobalOTDTable'
        Source: 'GlobalOTDTable'
        Taborder: 0
        Transformation: 'CapacityAllocationResults'
      ]
    }
    #child: listActionBarPageCapacityAllocationResults
    Component DataSetLevelCapacityAllocationResults
    {
      #keys: '[414702.0.338762081]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenuCapacityAllocationResults
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"VersionNumber","title":"VersionNumber","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"VersionNumber"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PanelMeasurementUnit","title":"PanelMeasurementUnit","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PanelMeasurementUnit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PanelMaterialCode","title":"PanelMaterialCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PanelMaterialCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"NumberOfPanels","title":"NumberOfPanels","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"NumberOfPanels"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PanelMeasurementUnit","title":"PanelMeasurementUnit","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PanelMeasurementUnit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ModuleMaterialCode","title":"ModuleMaterialCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ModuleMaterialCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"NumberOfModules","title":"NumberOfModules","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"NumberOfModules"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ModuleMeasurementUnit","title":"ModuleMeasurementUnit","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ModuleMeasurementUnit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ModuleMeasurementUnit","title":"ModuleMeasurementUnit","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ModuleMeasurementUnit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Division","title":"Division","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Division"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"RequirementDate","title":"RequirementDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"RequirementDate"}}]'
        ContextMenu: 'listContextMenuCapacityAllocationResults'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_listActionBarPageCapacityAllocationResults.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPageCapacityAllocationResults
{
  #keys: '[414702.0.338762078]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_listContextMenuCapacityAllocationResults.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listContextMenuCapacityAllocationResults
{
  #keys: '[414702.0.338762083]'
  BaseType: 'listContextMenu'
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_ButtonGenerateCapacityAllocationResults_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: ButtonGenerateCapacityAllocationResults
Response OnClick () id:Response_FormCapacityAllocationResults_ButtonGenerateCapacityAllocationResults_OnClick
{
  #keys: '[414702.0.340111671]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      CapacityAllocationResults::CreateDate( GlobalOTDTable, MacroPlan );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/_ROOT_Component_FormCapacityAllocationResults.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent FormCapacityAllocationResults
{
  #keys: '[414702.0.338731526]'
  BaseType: 'WebForm'
  Children:
  [
    #child: ListCapacityAllocationResults
    Component ButtonGenerateCapacityAllocationResults
    {
      #keys: '[414702.0.340677556]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'PROCESS'
        Label: '生成数据'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    Image: 'PUMPKIN_HALLOWEEN'
    Title: '产能分配结果'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Component_MatrixEditorCapacityAndSaleBudgeCompare.def
@@ -93,6 +93,6 @@
    ContextMenu: 'matrixeditorContextMenuCapacityAndSaleBudgeCompare'
    Editable: false
    Rows: 'MatrixEditorRowsCapacityAndSaleBudgeCompare'
    Taborder: 1
    Taborder: 2
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Response_ButtonExportCompare_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
Quintiq file version 2.0
#parent: ButtonExportCompare
Response OnClick () id:Response_FormCapacityAndSaleBudgeCompare_ButtonExportCompare_OnClick
{
  #keys: '[414384.0.881345276]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( GlobalOTDTable );
  *]
  QuillAction
  {
    Body:
    [*
      tableBinaryData := ScenarioManager.CapacityAndSaleBudgeCompareExport().AsBinaryData();
      Application.Download( "年度产销预算对比.xlsx", tableBinaryData );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/_ROOT_Component_FormCapacityAndSaleBudgeCompare.def
@@ -18,6 +18,17 @@
        Taborder: 0
      ]
    }
    Component ButtonExportCompare
    {
      #keys: '[414384.0.881345277]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'EXPORT1'
        Label: '导出'
        Taborder: 1
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterBusinessType/Component_ListCapacityAndSaleBudgeFilterBusinessType.def
@@ -30,7 +30,7 @@
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessType","title":"BusinessType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BusinessType"}}]'
        ContextMenu: 'listContextMenuCapacityAndSaleBudgeFilterYear'
        SortCriteria: 'YearNo'
        SortCriteria: 'BusinessType'
        Taborder: 2
      ]
    }
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray/Component_ListCapacityAndSaleBudgeFilterPlaceOfProductionOfArray.def
@@ -30,7 +30,7 @@
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PlaceOfProductionOfArray","title":"PlaceOfProductionOfArray","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PlaceOfProductionOfArray"}}]'
        ContextMenu: 'listContextMenuCapacityAndSaleBudgeFilterYear'
        SortCriteria: 'YearNo'
        SortCriteria: 'PlaceOfProductionOfArray'
        Taborder: 2
      ]
    }
_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/Component_ListHedgingOfLog.def
@@ -28,7 +28,7 @@
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Serial","title":"Serial","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Serial"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastQty","title":"ForecastQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ReverseQty","title":"ReverseQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ReverseQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"AuthorizeQty","title":"AuthorizeQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"AuthorizeQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OperateQty","title":"OperateQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OperateQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OperateType","title":"OperateType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OperateType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Operator","title":"Operator","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Operator"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OperateTime","title":"OperateTime","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OperateTime"}}]'
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Serial","title":"序号","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Serial"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SKU","title":"SKU编号","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SKU"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastQty","title":"预测数量","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ReverseQty","title":"反签数量","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ReverseQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"AuthorizeQty","title":"授权数量","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"AuthorizeQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OperateQty","title":"动作数量","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OperateQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OperateType","title":"动作类型","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OperateType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Operator","title":"操作人","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Operator"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OperateTime","title":"操作时间","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OperateTime"}}]'
        ContextMenu: 'listContextMenuHedgingOfLog'
        Taborder: 2
      ]
@@ -36,6 +36,6 @@
  ]
  Properties:
  [
    Taborder: 3
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/Component_PanelHedgingOfLog.def
@@ -27,15 +27,13 @@
      ]
      Properties:
      [
        Taborder: 2
        Taborder: 0
      ]
    }
    #child: ListHedgingOfLog
    #child: PanelHedgingOfLog761
    #child: PanelHedgingOfLog593
  ]
  Properties:
  [
    Taborder: 0
    Taborder: 2
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/Component_PanelHedgingOfLog221.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
Component PanelHedgingOfLog221
{
  #keys: '[414724.0.149787927]'
  BaseType: 'WebPanel'
  Children:
  [
    Component LabelHedgingOfLog id:LabelHedgingOfLog_298
    {
      #keys: '[414724.0.149788086]'
      BaseType: 'WebLabel'
      Properties:
      [
        FixedSize: false
        Taborder: 0
        Text: '日志页面'
      ]
    }
  ]
  Properties:
  [
    Border: true
    FixedSize: true
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/Component_PanelHedgingOfLog593#93.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,38 @@
Quintiq file version 2.0
Component PanelHedgingOfLog593 id:PanelHedgingOfLog593_93
{
  #keys: '[414724.0.152989129]'
  BaseType: 'WebPanel'
  Children:
  [
    Component txt_QueryContent_FHO
    {
      #keys: '[414724.0.152989222]'
      BaseType: 'WebEditField'
      Properties:
      [
        PlaceHolder: '模糊搜索'
        Taborder: 0
      ]
    }
    Component btn_Query_FHO
    {
      #keys: '[414724.0.152920619]'
      BaseType: 'WebButton'
      Properties:
      [
        ButtonSize: 'compact'
        Image: 'VIEW'
        Label: '查询'
        Taborder: 1
      ]
    }
  ]
  Properties:
  [
    Alignment: 'trailing'
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/Component_PanelHedgingOfLog593.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/Component_PanelHedgingOfLog761.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/Response_PanelHedgingOfLog593_93_btn_Query_FHO_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: PanelHedgingOfLog593_93/btn_Query_FHO
Response OnClick () id:Response_PanelHedgingOfLog593_93_btn_Query_FHO_OnClick
{
  #keys: '[414724.0.152920798]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      DataExtractorHedgingOfLog.FixedFilter(  "object.SKU().LikeUserLocale( " + txt_QueryContent_FHO.Text().AsQUILL() + " )"
                                               + " or " + "object.OperateType().LikeUserLocale( " + txt_QueryContent_FHO.Text().AsQUILL() + " )"
                                               + " or " + "object.Operator().LikeUserLocale( " + txt_QueryContent_FHO.Text().AsQUILL() + " )"
                                           );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/_ROOT_Component_FormHedgingOfLog.def
@@ -8,21 +8,13 @@
  Children:
  [
    #child: PanelHedgingOfLog
    Component lb_ForecastQty
    {
      #keys: '[414724.0.31031550]'
      BaseType: 'WebLabel'
      Properties:
      [
        Taborder: 1
        Text: '原材料的预测数量:0'
      ]
    }
    #child: PanelHedgingOfLog221
    #child: PanelHedgingOfLog593_93
  ]
  Properties:
  [
    Description: '冲减结果-日志'
    Image: 'DOCUMENT_REFRESH'
    Title: '反签授权列表明细页'
    Image: 'NAV_REDO_LIGHT_BLUE'
    Title: '日志页面'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormMaterialPurchase/Component_ListMaterialPurchase.def
@@ -12,6 +12,7 @@
      Properties:
      [
        DataType: 'structured[H_MaterialPurchase]'
        FixedFilter: 'object.Status()="未发布"'
        Source: 'DataHolderMaterialPurchase'
        Taborder: 0
        Transformation: 'Elements'
@@ -28,7 +29,7 @@
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SKU","title":"SKU","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SKU"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductSubclassType","title":"ProductSubclassType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductSubclassType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Qty","title":"Qty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Qty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Unit","title":"Unit","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Unit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrgCode","title":"OrgCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrgCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"WarehouseCode","title":"WarehouseCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"WarehouseCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DemandTime","title":"DemandTime","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"DemandTime"}}]'
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SKU","title":"SKU编码","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SKU"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductSubclassType","title":"类型","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductSubclassType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Qty","title":"数量","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Qty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Unit","title":"单位","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Unit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrgCode","title":"组织代码","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrgCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"WarehouseCode","title":"仓库代码","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"WarehouseCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DemandTime","title":"需求时间","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"DemandTime"}}]'
        ContextMenu: 'listContextMenuMaterialPurchase'
        Taborder: 2
      ]
_Main/UI/MacroPlannerWebApp/Component_FormMaterialPurchase/Component_PanelMaterialPurchase.def
@@ -11,15 +11,17 @@
      BaseType: 'WebLabel'
      Properties:
      [
        NumberOfColumns: 50
        NumberOfColumns: 30
        Taborder: 0
        Text: '开始时间:2023-03-26 12:24:46'
        Visible: false
      ]
    }
    #child: PanelMaterialPurchase613
  ]
  Properties:
  [
    Alignment: 'trailing'
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 1
_Main/UI/MacroPlannerWebApp/Component_FormMaterialPurchase/Component_PanelMaterialPurchase354.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
Component PanelMaterialPurchase354
{
  #keys: '[414724.0.149784759]'
  BaseType: 'WebPanel'
  Children:
  [
    Component lb_Title208
    {
      #keys: '[414724.0.149784840]'
      BaseType: 'WebLabel'
      Properties:
      [
        Description: '授权/反签物料采购明细释放'
        Taborder: 0
        Text: '授权/反签物料采购明细释放'
      ]
    }
  ]
  Properties:
  [
    Border: true
    FixedSize: true
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormMaterialPurchase/_ROOT_Component_FormMaterialPurchase.def
@@ -7,17 +7,6 @@
  BaseType: 'WebForm'
  Children:
  [
    Component lb_Title
    {
      #keys: '[414724.0.32644779]'
      BaseType: 'WebLabel'
      Properties:
      [
        Description: '授权/反签物料采购明细释放'
        Taborder: 0
        Text: '授权/反签物料采购明细释放'
      ]
    }
    #child: PanelMaterialPurchase
    Component DataHolderMaterialPurchase
    {
@@ -45,11 +34,12 @@
      ]
    }
    #child: ListMaterialPurchase
    #child: PanelMaterialPurchase354
  ]
  Properties:
  [
    Description: '授权/反签物料采购明细释放'
    Image: 'DOG'
    Image: 'NAV_REDO_LIGHT_BLUE'
    Title: '授权/反签物料采购明细释放'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_ListOrderLock#844.def
@@ -29,7 +29,7 @@
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderID","title":"OrderID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"ProductID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesSegmentName","title":"SalesSegmentName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SalesSegmentName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerName","title":"CustomerName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasureName","title":"UnitOfMeasureName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasureName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Price","title":"Price","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Price"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"EndDate","title":"EndDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"EndDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsLocked","title":"IsLocked","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsLocked"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"First.AsPlanningBaseSalesDemandInPeriod.End","title":"End","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"First.AsPlanningBaseSalesDemandInPeriod.End"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"LastModify","title":"LastModify","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"LastModify"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"LastModifyTime","title":"LastModifyTime","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"LastModifyTime"}}]'
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderID","title":"OrderID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"ProductID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesSegmentName","title":"SalesSegmentName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SalesSegmentName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerName","title":"CustomerName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasureName","title":"UnitOfMeasureName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasureName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Price","title":"Price","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Price"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StartDate","title":"StartDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StartDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsLocked","title":"IsLocked","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsLocked"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"First.AsPlanningBaseSalesDemandInPeriod.End","title":"End","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"First.AsPlanningBaseSalesDemandInPeriod.End"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"LastModify","title":"LastModify","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"LastModify"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"LastModifyTime","title":"LastModifyTime","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"LastModifyTime"}}]'
        ContextMenu: 'listContextMenuOrderLock'
        Taborder: 2
      ]
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLockHeader#545.def
@@ -87,7 +87,7 @@
        ButtonSize: 'compact'
        Description: '订单锁定'
        Label: '锁定'
        Taborder: 7
        Taborder: 8
      ]
    }
    Component ButtonOrderLockHeaderUnlock
@@ -99,7 +99,7 @@
        ButtonSize: 'compact'
        Description: '订单解锁'
        Label: '解锁'
        Taborder: 8
        Taborder: 9
      ]
    }
    Component ButtonOrderLockHeaderClear
@@ -114,6 +114,18 @@
        Taborder: 6
      ]
    }
    Component ButtonOrderLockHeaderFresh
    {
      #keys: '[412960.0.259721852]'
      BaseType: 'WebButton'
      Properties:
      [
        ButtonSize: 'compact'
        Description: '从数据源刷新订单数据'
        Label: '重新获取订单'
        Taborder: 7
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_ButtonOrderLockHeaderFresh_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: PanelOrderLockHeader_545/ButtonOrderLockHeaderFresh
Response OnClick () id:Response_PanelOrderLockHeader_545_ButtonOrderLockHeaderFresh_OnClick
{
  #keys: '[412960.0.259721886]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      macroplan := MacroPlan;
      businesstypes := DataHolderOrderLockGlobal.Data().BusinessType().Tokenize( ',' );
      CustomerOrder::DoSync( macroplan, businesstypes );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderCustomerOrder_O.def
@@ -19,11 +19,11 @@
      newfilter := "";
      findcount := 0;
      traverse( existfilterlist, Elements, filter ){
        if( filter.FindString( "EndDate()", 0 ) >= 0 ){
        if( filter.FindString( "StartDate()", 0 ) >= 0 ){
          if( newfilter = "" ){
            newfilter := "( object.EndDate() = " + this.Date().AsQUILL() + " )";
            newfilter := "( object.StartDate() = " + this.Date().AsQUILL() + " )";
            }else{
              newfilter := newfilter + " and " + "( object.EndDate() = " + this.Date().AsQUILL() + " )";
              newfilter := newfilter + " and " + "( object.StartDate() = " + this.Date().AsQUILL() + " )";
              }
          findcount := 1;
          }else{
@@ -37,9 +37,9 @@
      
      if( findcount = 0 ){
        if( newfilter = "" ){
          newfilter := "( object.EndDate() = " + this.Date().AsQUILL() + " )";
          newfilter := "( object.StartDate() = " + this.Date().AsQUILL() + " )";
          }else{
            newfilter := newfilter + " and " + "( object.EndDate() = " + this.Date().AsQUILL() + " )";
            newfilter := newfilter + " and " + "( object.StartDate() = " + this.Date().AsQUILL() + " )";
            }
        }
      
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderPlanDeliver_OnC.def
@@ -19,7 +19,7 @@
      newfilter := "";
      findcount := 0;
      traverse( existfilterlist, Elements, filter ){
        if( filter.FindString( "End()", 0 ) >= 0 and filter.FindString( "EndDate()", 0 ) < 0 ){
        if( filter.FindString( "End()", 0 ) >= 0 ){
          if( newfilter = "" ){
            newfilter := "( object.First().AsPlanningBaseSalesDemandInPeriod().End().Date() = " + this.Date().AsQUILL() + " )";
            }else{
_Main/UI/MacroPlannerWebApp/Component_FormReleaseRecord/Component_ListReleaseRecord.def
@@ -28,7 +28,7 @@
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ID","title":"ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Issuer","title":"Issuer","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Issuer"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IssuingDate","title":"IssuingDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IssuingDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"FinishDate","title":"FinishDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"FinishDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Status","title":"Status","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Status"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"VCode","title":"VCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"VCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Serial","title":"Serial","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Serial"}}]'
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ID","title":"ID","subtotals":"","tooltip":"","width":-1,"display":"hidden","editable":false,"attribute":"ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Serial","title":"序号","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Serial"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IssuingDate","title":"发布时间","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IssuingDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"FinishDate","title":"结束时间","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"FinishDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Issuer","title":"发布人","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Issuer"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Status","title":"状态","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Status"}}]'
        ContextMenu: 'listContextMenuReleaseRecord'
        Taborder: 2
      ]
_Main/UI/MacroPlannerWebApp/Component_FormReleaseRecord/Component_ListReleaseRecord243.def
@@ -28,7 +28,7 @@
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"H_ReleaseRecord_ID","title":"H_ReleaseRecord_ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"H_ReleaseRecord_ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"H_HedgingRecord_ID","title":"H_HedgingRecord_ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"H_HedgingRecord_ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ID","title":"ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Qty","title":"Qty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Qty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Status","title":"Status","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Status"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IssuingDate","title":"IssuingDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IssuingDate"}}]'
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SKU","title":"物料编号","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SKU"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductSubclassType","title":"类型","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductSubclassType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Qty","title":"数量","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Qty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Unit","title":"单位","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Unit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrgCode","title":"组织代码","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrgCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"WarehouseCode","title":"仓库代码","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"WarehouseCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DemandTime","title":"需求时间","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"DemandTime"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IssuingDate","title":"发布时间","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IssuingDate"}}]'
        ContextMenu: 'listContextMenuReleaseRecord690'
        Taborder: 2
      ]
_Main/UI/MacroPlannerWebApp/Component_FormReleaseRecord/Component_PanelReleaseRecord423.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
Component PanelReleaseRecord423
{
  #keys: '[414724.0.149784904]'
  BaseType: 'WebPanel'
  Children:
  [
    Component LabelReleaseRecord id:LabelReleaseRecord_296
    {
      #keys: '[414724.0.149784974]'
      BaseType: 'WebLabel'
      Properties:
      [
        NumberOfColumns: 20
        Taborder: 0
        Text: '反签/授权物料发布版本明细'
      ]
    }
  ]
  Properties:
  [
    Border: true
    FixedSize: true
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormReleaseRecord/Response_ListReleaseRecord_OnSelectionChanged.def
@@ -11,7 +11,15 @@
  {
    Body:
    [*
      DataExtractorReleaseRecord661.FixedFilter( "object.H_ReleaseRecord_ID() = " + selection.ID().AsQUILL());
      // å‘布ID
      H_ReleaseRecord_ID := "-1";
      H_Status:="已发布";
      if( not isnull( selection))
      {
        H_ReleaseRecord_ID :=  selection.ID();
      }
      DataExtractorReleaseRecord661.FixedFilter( "object.H_ReleaseRecord_ID() = " + H_ReleaseRecord_ID.AsQUILL()
                                                 + " and " + "object.Status() = " + H_Status.AsQUILL());
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FormReleaseRecord/Response_OnCreated.def
@@ -5,12 +5,12 @@
  #keys: '[414724.0.37110847]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      dtMonth.Date(Date::Today());
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormReleaseRecord/_ROOT_Component_FormReleaseRecord.def
@@ -7,25 +7,15 @@
  BaseType: 'WebForm'
  Children:
  [
    Component LabelReleaseRecord
    {
      #keys: '[414724.0.36933216]'
      BaseType: 'WebLabel'
      Properties:
      [
        NumberOfColumns: 20
        Taborder: 0
        Text: '反签/授权物料发布版本明细'
      ]
    }
    #child: PanelReleaseRecord
    #child: PanelReleaseRecord108
    #child: PanelReleaseRecord527
    #child: PanelReleaseRecord423
  ]
  Properties:
  [
    Description: '反签/授权物料发布版本明细'
    Image: 'BULL'
    Image: 'NAV_REDO_LIGHT_BLUE'
    Title: '反签/授权物料发布版本明细'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Component_PanelOptimizerGeneral718.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Component_PanelTop0001#655.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Component_PanelTop820.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Response_OnCreated.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Response_Panel261_btn_Cancel_FAAC_OnClick.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Response_Panel261_btn_OK_FAAC_OnClick.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/_ROOT_Component_FrmAuthorizeAndCountersign.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Material/Response_OnCreated.def
@@ -15,21 +15,18 @@
    [*
      // èŽ·å–é€‰æ‹©åŽçš„SKU
      SelectItem := select( MacroPlan,H_MessagePassing,Obj,Obj.FKey()="FrmMaterial" and Obj.ItemKey()="ListSelect");
      if(not isnull( SelectItem) and SelectItem.Value().Length()>0)
      if(not isnull( SelectItem))
      {
        StrValue := SelectItem.Value().Tokenize( ";");
        lb_SUK_FAACM.Text(StrValue.Element( 0));
        lb_MaterialCode_FAACM.Text(StrValue.Element( 1));
        lb_Unit_FAACM.Text(StrValue.Element( 2));
        lb_Operator_FAACM.Text(ApplicationMacroPlanner.GetUserName());
      }
      // èŽ·å–é€‰æ‹©åŽçš„SKU
      SelectItem := select( MacroPlan,H_MessagePassing,Obj,Obj.FKey()="FrmOrderForecast" and Obj.ItemKey()="ListSelect");
      if(not isnull( SelectItem) and SelectItem.Value().Length()>0)
      {
        StrValue := SelectItem.Value().Tokenize( ";");
        txt_CustomID_FAACM.Text(StrValue.Element( 2));
        txt_CustomName_FAACM.Text(StrValue.Element( 3));
        if(SelectItem.ValueJsonString().Length()>0)
        {
          JInfo := JSON::Parse( SelectItem.ValueJsonString());
          lb_SUK_FAACM.Text(JInfo.Get( "ParentSKU").GetString());
          lb_MaterialCode_FAACM.Text(JInfo.Get( "SKU").GetString());
          lb_Unit_FAACM.Text(JInfo.Get( "Unit").GetString());
          lb_Operator_FAACM.Text(ApplicationMacroPlanner.GetUserName());
          txt_CustomID_FAACM.Text(JInfo.Get( "CustomCode").GetString());
          txt_CustomName_FAACM.Text(JInfo.Get( "CustomName").GetString());
        }
      }
    *]
    GroupServerCalls: false
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Material/_ROOT_Component_FrmAuthorizeAndCountersign_Material.def
@@ -24,6 +24,7 @@
  Properties:
  [
    Description: '原材料半成品反签授权新增页'
    Image: 'NAV_REDO_LIGHT_BLUE'
    Title: '原材料半成品反签授权新增页'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_Panel261#223.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Component_Panel261.def ÐÞ¸Ä
@@ -1,13 +1,13 @@
Quintiq file version 2.0
Component Panel261
Component Panel261 id:Panel261_223
{
  #keys: '[414724.0.44249978]'
  #keys: '[414724.0.117732107]'
  BaseType: 'WebPanel'
  Children:
  [
    Component btn_OK_FAAC
    {
      #keys: '[414724.0.44279077]'
      #keys: '[414724.0.117732108]'
      BaseType: 'WebButton'
      Properties:
      [
@@ -18,7 +18,7 @@
    }
    Component btn_Cancel_FAAC
    {
      #keys: '[414724.0.44279090]'
      #keys: '[414724.0.117732109]'
      BaseType: 'WebButton'
      Properties:
      [
@@ -34,6 +34,6 @@
    Border: true
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 2
    Taborder: 10
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_Panel796.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
Component Panel796
{
  #keys: '[414724.0.116871632]'
  BaseType: 'WebPanel'
  Children:
  [
    Component Label417
    {
      #keys: '[414724.0.115502113]'
      BaseType: 'WebLabel'
      Properties:
      [
        Description: '订单反潜授权新增页'
        Taborder: 0
        Text: '订单反潜授权新增页'
      ]
    }
  ]
  Properties:
  [
    Border: true
    FixedSize: true
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_Panel989.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
Component Panel989
{
  #keys: '[414724.0.115531444]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ds_NeedDate id:ds_NeedDate_456
    {
      #keys: '[414724.0.117731536]'
      BaseType: 'WebDateSelector'
      Properties:
      [
        Label: '需求日期'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    FixedSize: true
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_PanelTop#217.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Component_PanelTop.def ÐÞ¸Ä
@@ -1,13 +1,13 @@
Quintiq file version 2.0
Component PanelTop
Component PanelTop id:PanelTop_217
{
  #keys: '[414724.0.43072496]'
  #keys: '[414724.0.117731595]'
  BaseType: 'WebPanel'
  Children:
  [
    Component lb_SKUCode_FAAC
    {
      #keys: '[414724.0.43602743]'
      #keys: '[414724.0.117731596]'
      BaseType: 'WebLabel'
      Properties:
      [
@@ -22,6 +22,6 @@
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 1
    Taborder: 2
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_PanelTop104#150.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Component_PanelTop104.def ÐÞ¸Ä
@@ -1,20 +1,22 @@
Quintiq file version 2.0
Component PanelTop104
Component PanelTop104 id:PanelTop104_150
{
  #keys: '[414724.0.43764561]'
  #keys: '[414724.0.117731993]'
  BaseType: 'WebPanel'
  Children:
  [
    Component txt_CustomName_FAAC
    {
      #keys: '[414724.0.43764592]'
      #keys: '[414724.0.117731994]'
      BaseType: 'WebEditField'
      Properties:
      [
        Description: '客户名称'
        Enabled: false
        Label: '客户名称'
        NumberOfColumns: 30
        PlaceHolder: '请输入'
        ReadOnly: true
        Taborder: 0
      ]
    }
@@ -23,6 +25,6 @@
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 7
    Taborder: 8
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_PanelTop264#19.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Component_PanelTop264.def ÐÞ¸Ä
@@ -1,13 +1,13 @@
Quintiq file version 2.0
Component PanelTop264
Component PanelTop264 id:PanelTop264_19
{
  #keys: '[414724.0.43764392]'
  #keys: '[414724.0.117731831]'
  BaseType: 'WebPanel'
  Children:
  [
    Component lb_Util_FAAC
    {
      #keys: '[414724.0.43764416]'
      #keys: '[414724.0.117731832]'
      BaseType: 'WebLabel'
      Properties:
      [
@@ -23,6 +23,6 @@
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 4
    Taborder: 5
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_PanelTop360#136.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Component_PanelTop360.def ÐÞ¸Ä
@@ -1,13 +1,13 @@
Quintiq file version 2.0
Component PanelTop360
Component PanelTop360 id:PanelTop360_136
{
  #keys: '[414724.0.43764343]'
  #keys: '[414724.0.117731775]'
  BaseType: 'WebPanel'
  Children:
  [
    Component np_Qty_FAAC
    {
      #keys: '[414724.0.43764374]'
      #keys: '[414724.0.117731776]'
      BaseType: 'WebNumberPicker'
      Properties:
      [
@@ -24,6 +24,6 @@
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 3
    Taborder: 4
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_PanelTop597#324.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Component_PanelTop597.def ÐÞ¸Ä
@@ -1,13 +1,13 @@
Quintiq file version 2.0
Component PanelTop597
Component PanelTop597 id:PanelTop597_324
{
  #keys: '[414724.0.43764439]'
  #keys: '[414724.0.117731885]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ddsl_OperateType_FAAC
    {
      #keys: '[414724.0.44398642]'
      #keys: '[414724.0.117731886]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
@@ -23,6 +23,6 @@
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 5
    Taborder: 6
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_PanelTop612#612.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Component_PanelTop612.def ÐÞ¸Ä
@@ -1,13 +1,13 @@
Quintiq file version 2.0
Component PanelTop612
Component PanelTop612 id:PanelTop612_612
{
  #keys: '[414724.0.43764662]'
  #keys: '[414724.0.117732047]'
  BaseType: 'WebPanel'
  Children:
  [
    Component lb_Operator_FAAC
    {
      #keys: '[414724.0.43764687]'
      #keys: '[414724.0.117732048]'
      BaseType: 'WebLabel'
      Properties:
      [
@@ -23,6 +23,6 @@
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 8
    Taborder: 9
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_PanelTop744#568.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Component_PanelTop744.def ÐÞ¸Ä
@@ -1,13 +1,13 @@
Quintiq file version 2.0
Component PanelTop744
Component PanelTop744 id:PanelTop744_568
{
  #keys: '[414724.0.43764285]'
  #keys: '[414724.0.117731719]'
  BaseType: 'WebPanel'
  Children:
  [
    Component lb_SKUName_FAAC
    {
      #keys: '[414724.0.43764315]'
      #keys: '[414724.0.117731720]'
      BaseType: 'WebLabel'
      Properties:
      [
@@ -22,6 +22,6 @@
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 2
    Taborder: 3
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_PanelTop846#618.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Component_PanelTop846.def ÐÞ¸Ä
@@ -1,19 +1,21 @@
Quintiq file version 2.0
Component PanelTop846
Component PanelTop846 id:PanelTop846_618
{
  #keys: '[414724.0.43764508]'
  #keys: '[414724.0.117731939]'
  BaseType: 'WebPanel'
  Children:
  [
    Component txt_CustomID_FAAC
    {
      #keys: '[414724.0.43764542]'
      #keys: '[414724.0.117731940]'
      BaseType: 'WebEditField'
      Properties:
      [
        Enabled: false
        Label: '客户ID'
        NumberOfColumns: 30
        PlaceHolder: '请输入'
        ReadOnly: true
        Taborder: 0
      ]
    }
@@ -22,7 +24,7 @@
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 6
    Taborder: 7
    Visible: false
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Response_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
Quintiq file version 2.0
#parent: #root
Response OnCreated () id:Response_FrmAuthorizeAndCountersign_Order_OnCreated
{
  #keys: '[414724.0.117762728]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      // éœ€æ±‚日期,默认下一个星期五
      ds_NeedDate.Date(H_FunctionClass::SM_GetNextFriday());
      // èŽ·å–é€‰æ‹©åŽçš„SKU
      SelectItem := select( MacroPlan,H_MessagePassing,Obj,Obj.FKey()="FrmOrderForecast" and Obj.ItemKey()="ListSelect");
      if(not isnull( SelectItem))
      {
        if(SelectItem.ValueJsonString().Length()>0)
        {
          // å¾—到选中的预测订单
          SelForecast := JSON::Parse( SelectItem.ValueJsonString());
          lb_SKUCode_FAAC.Text(SelForecast.Get( "SKU").GetString());
          lb_SKUName_FAAC.Text("产品");
          lb_Util_FAAC.Text(SelForecast.Get( "Util").GetString());
          txt_CustomID_FAAC.Text(SelForecast.Get( "CustomCode").GetString());
          txt_CustomName_FAAC.Text(SelForecast.Get( "CustomName").GetString());
          lb_Operator_FAAC.Text(ApplicationMacroPlanner.GetUserName());
      //    StrValue := SelectItem.Value().Tokenize( ";");
      //    lb_SKUCode_FAAC.Text(StrValue.Element( 0));
      //    lb_SKUName_FAAC.Text("产品");
      //    lb_Operator_FAAC.Text("");
      //    lb_Util_FAAC.Text(StrValue.Element( 1));
      //    txt_CustomID_FAAC.Text(StrValue.Element( 2));
      //    txt_CustomName_FAAC.Text(StrValue.Element( 3));
      //    lb_Operator_FAAC.Text(ApplicationMacroPlanner.GetUserName());
        }
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Response_Panel261_223_btn_Cancel_FAAC_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: Panel261_223/btn_Cancel_FAAC
Response OnClick () id:Response_Panel261_223_btn_Cancel_FAAC_OnClick
{
  #keys: '[414724.0.117732105]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      FrmAuthorizeAndCountersign_Order.Close();
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Response_Panel261_223_btn_OK_FAAC_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
Quintiq file version 2.0
#parent: Panel261_223/btn_OK_FAAC
Response OnClick () id:Response_Panel261_223_btn_OK_FAAC_OnClick
{
  #keys: '[414724.0.117732106]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( MacroPlan);
  *]
  QuillAction
  {
    Body:
    [*
      // æ•°é‡
      Qty := [Number]np_Qty_FAAC.Number().Round( 0);
      OperateMsg :="";
      OperateResult := H_FunctionClass::SM_OrderReverseOrAuthorize(  MacroPlan,lb_Util_FAAC.Text() ,"-",ds_NeedDate.Date() ,txt_CustomID_FAAC.Text(),lb_SKUCode_FAAC.Text(),Qty,
                                                            lb_Operator_FAAC.Text(),txt_CustomName_FAAC.Text(),OperateMsg,ddsl_OperateType_FAAC.Text());
      if( OperateResult)
      {
        FrmAuthorizeAndCountersign_Order.Close();
        if( OperateMsg.Length()>0)
        {
            WebMessageBox::Success( OperateMsg);
        }
      }
      else
      {
        WebMessageBox::Warning( OperateMsg);
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/_ROOT_Component_FrmAuthorizeAndCountersign_Order.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent FrmAuthorizeAndCountersign_Order
{
  #keys: '[414724.0.115523082]'
  BaseType: 'WebForm'
  Children:
  [
    #child: Panel796
    #child: Panel989
    #child: PanelTop_217
    #child: PanelTop744_568
    #child: PanelTop360_136
    #child: PanelTop264_19
    #child: PanelTop597_324
    #child: PanelTop846_618
    #child: PanelTop104_150
    #child: PanelTop612_612
    #child: Panel261_223
  ]
  Properties:
  [
    Description: '原材料半成品反签授权新增页'
    Image: 'NAV_REDO_LIGHT_BLUE'
    Title: '订单反签授权新增页'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Component_List832.def
@@ -11,7 +11,7 @@
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'structured[Product_MP]'
        DataType: 'structured[H_MaterialInfo]'
        Source: 'dh_FM_PruductMP'
        Taborder: 0
        Transformation: 'Elements'
@@ -28,7 +28,7 @@
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ID","title":"ID","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"TotalInventoryLevels","title":"TotalInventoryLevels","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"TotalInventoryLevels"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Level","title":"Level","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"Level"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsProductCategory","title":"IsProductCategory","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"IsProductCategory"}}]'
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SKU","title":"物料编码","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SKU"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MaterialType","title":"物料类型","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MaterialType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MaterialName","title":"物料名称","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MaterialName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Unit","title":"单位","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Unit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"NeedQty","title":"需求数量","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"NeedQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"NeedDate","title":"需求时间","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"NeedDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrgCode","title":"组织代码","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrgCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockPoint","title":"库存点","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockPoint"}}]'
        ContextMenu: 'listContextMenu892'
        Taborder: 2
      ]
_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Component_Panel418.def
@@ -24,7 +24,7 @@
      [
        NumberOfColumns: 15
        PlaceHolder: '模糊搜索'
        Taborder: 1
        Taborder: 2
      ]
    }
    Component btn_Query_FM
@@ -35,7 +35,7 @@
      [
        Image: 'VIEW'
        Label: '查询'
        Taborder: 2
        Taborder: 3
      ]
    }
    Component btn_Add_FM
@@ -46,7 +46,34 @@
      [
        Image: 'ADD2'
        Label: '新增反签/授权'
        Taborder: 3
        Taborder: 4
      ]
      ResponseDefinitions:
      [
        ResponseDefinition OnClick id:Responsedef_Panel418_btn_Add_FM_OnClick
        {
          #keys: '[414724.0.145266825]'
          IsInherited: false
          ResponseType: 'OnClick'
          Arguments:
          [
            ResponseDefinitionArgument selection
            {
              #keys: '[271.0.74853915]'
              Binding: 'List832.Selection()'
            }
          ]
        }
      ]
    }
    Component ds_Month_FM
    {
      #keys: '[414724.0.148121614]'
      BaseType: 'WebDateSelector'
      Properties:
      [
        DateFormat: 'YMM'
        Taborder: 1
      ]
    }
  ]
_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_List832_OnDoubleClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
Quintiq file version 2.0
#parent: List832
Response OnDoubleClick (
  H_MaterialInfo selection
) id:Response_List832_OnDoubleClick
{
  #keys: '[414724.0.160542461]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebList_OnDoubleClick'
  QuillAction
  {
    Body:
    [*
      if( not isnull( selection))
      {
        if(selection.MaterialType()="半成品")
        {
          OrderCode:="";
          if( txtSaveForecastData_FM.Text().Length()>0)
          {
            JForecast := JSON::Parse( txtSaveForecastData_FM.Text());
            OrderCode := JForecast.Get( "OrderCode").GetString();
          }
         jResult := H_FunctionClass::SM_GetMaterialData( MacroPlan,selection.SKU(),selection.NeedQty(), OrderCode,"-",selection.NeedDate());
          if(jResult.Get( "Status").GetBoolean())
          {
                de_dh_FM_ProductMP.FixedFilter( "object.ParentSKU() = " +  selection.SKU().AsQUILL()
                                                + " and object.ForecastID() = " + OrderCode.AsQUILL()
                                                );
          }
          else
          {
            WebMessageBox::Warning( jResult.Get( "Msg").GetString());
          }
        }
        else
        {
            // å¼¹å‡ºç‰©æ–™åç­¾æŽˆæƒ
        }
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_List832_OnSelectionChanged.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_OnCreated.def
@@ -2,20 +2,28 @@
#parent: #root
Response OnCreated () id:Response_FrmMaterial_OnCreated
{
  #keys: '[414724.0.93205703]'
  #keys: '[414724.0.118802220]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      ds_Month_FM.Date(Date::ActualDate());
      txtSaveForecastData_FM.Text("");
      // èŽ·å–é€‰æ‹©åŽçš„SKU
      SelectItem := select( MacroPlan,H_MessagePassing,Obj,Obj.FKey()="FrmOrderForecast" and Obj.ItemKey()="ListSelect");
      if(not isnull( SelectItem) and SelectItem.Value().Length()>0)
      if(not isnull( SelectItem))
      {
        StrValue := SelectItem.Value().Tokenize( ";");
        lb_SUK_FM.Text(StrValue.Element( 0));
        de_dh_FM_ProductMP.FixedFilter( "object.ParentID()="+lb_SUK_FM.Text());
        if( SelectItem.ValueJsonString().Length()>0)
        {
          txtSaveForecastData_FM.Text(  SelectItem.ValueJsonString());
          JSelect := JSON::Parse( SelectItem.ValueJsonString());
          lb_SUK_FM.Text(JSelect.Get( "SKU").GetString());
          de_dh_FM_ProductMP.FixedFilter( "object.ParentSKU() = " + JSelect.Get( "SKU").GetString().AsQUILL()
                                          + " and object.ForecastID() = " + JSelect.Get( "OrderCode").GetString().AsQUILL()
                                          );
        }
      }
    *]
    GroupServerCalls: false
_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_Panel418_btn_Add_FM_OnClick#975.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,54 @@
Quintiq file version 2.0
#parent: Panel418/btn_Add_FM
Response OnClick (
  H_MaterialInfo selection
) id:Response_Panel418_btn_Add_FM_OnClick_975
{
  #keys: '[414724.0.145238844]'
  CanBindMultiple: false
  DefinitionID => /Panel418/Responsedef_Panel418_btn_Add_FM_OnClick
  Precondition:
  [*
    return not isnull( MacroPlan);
  *]
  QuillAction
  {
    Body:
    [*
      SelectItem :=  select( MacroPlan,H_MessagePassing,Obj,Obj.FKey()="FrmMaterial" and Obj.ItemKey()="ListSelect");
      CustomCode:="";
      CustomName:="";
      SValue:="";
      SValueJsonString:="";
      // èŽ·å–å®¢æˆ·åç§°å’Œå®¢æˆ·ID
      if(txtSaveForecastData_FM.Text().Length()>0)
      {
         jForecast := JSON::Parse( txtSaveForecastData_FM.Text());
         CustomCode := jForecast.Get( "CustomCode").GetString();
         CustomName := jForecast.Get( "CustomName").GetString();
      }
      if(not isnull(selection))
      {
        SValueJsonString:= JSON::Object().Add( "SKU",selection.SKU())
                    .Add( "MaterialName",selection.MaterialName())
                    .Add( "MaterialType",selection.MaterialType())
                    .Add( "OrgCode",selection.OrgCode())
                    .Add( "Unit",selection.Unit())
                    .Add( "CustomCode",CustomCode)
                    .Add( "ParentSKU",lb_SUK_FM.Text())
                    .Add( "CustomName",CustomName).Build().AsString();
      }
      if( isnull( SelectItem))
      {
        MacroPlan.H_MessagePassing(relnew,FKey := "FrmMaterial",ItemKey := "ListSelect", Value:=SValue,ValueJsonString:=SValueJsonString);
      }
      else
      {
        SelectItem.Value(SValue);
        SelectItem.ValueJsonString( SValueJsonString);
      }
      Application.OpenForm( "FrmAuthorizeAndCountersign_Material","modal");
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_Panel418_btn_Add_FM_OnClick.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_Panel418_btn_Query_FM_OnClick.def
@@ -9,10 +9,17 @@
  {
    Body:
    [*
      de_dh_FM_ProductMP.FixedFilter( "object.ID().LikeUserLocale( " + txt_QueryContent_FM.Text().AsQUILL() + " )" );
      //                                             + " or " + "object.SKU().LikeUserLocale( " + txt_QueryContent_FM.Text().AsQUILL() + " )"
      //                                             + " or " + "object.CustomerCode().LikeUserLocale( " + txt_QueryContent_FM.Text().AsQUILL() + " )"
      //                                             + " or " + "object.CustomerName().LikeUserLocale( " + txt_QueryContent_FM.Text().AsQUILL() + " )" );
      de_dh_FM_ProductMP.FixedFilter( "( object.SKU().LikeUserLocale( " + txt_QueryContent_FM.Text().AsQUILL() + " )"
                                                   + " or " + "object.MaterialType().LikeUserLocale( " + txt_QueryContent_FM.Text().AsQUILL() + " )"
                                                   + " or " + "object.MaterialName().LikeUserLocale( " + txt_QueryContent_FM.Text().AsQUILL() + " )"
                                                   + " or " + "object.Unit().LikeUserLocale( " + txt_QueryContent_FM.Text().AsQUILL() + " )"
                                                   + " or " + "object.OrgCode().LikeUserLocale( " + txt_QueryContent_FM.Text().AsQUILL() + " )"
                                                   + " or " + "object.StockPoint().LikeUserLocale( " + txt_QueryContent_FM.Text().AsQUILL() + " )"
                                                   + " or " + "object.Unit().LikeUserLocale( " + txt_QueryContent_FM.Text().AsQUILL() + " ))"
                                                   + " and " + "( object.NeedDate() < " + ds_Month_FM.Date().StartOfNextMonth().AsQUILL()
                                                   + " and " + "object.NeedDate() >= " + ds_Month_FM.Date().StartOfMonth().AsQUILL() + " )"
                                      );
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/_ROOT_Component_FrmMaterial.def
@@ -14,7 +14,7 @@
    {
      #keys: '[414724.0.53475285]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[Product_MP]*'
      Databinding: 'structured[H_MaterialInfo]*'
      Children:
      [
        Component de_dh_FM_ProductMP
@@ -26,7 +26,7 @@
            DataType: 'MacroPlan'
            Source: 'MacroPlan'
            Taborder: 0
            Transformation: 'Product_MP'
            Transformation: 'H_MaterialInfo'
          ]
        }
      ]
@@ -35,10 +35,26 @@
        Taborder: 2
      ]
    }
    Component txtSaveForecastData_FM
    {
      #keys: '[414724.0.143737386]'
      BaseType: 'WebEditField'
      Properties:
      [
        Description: '存储所选物料信息'
        Enabled: false
        ReadOnly: true
        Taborder: 4
        Visible: false
      ]
    }
  ]
  Properties:
  [
    Description: '原料列表页'
    Image: 'NAV_REDO_LIGHT_BLUE'
    MinimumColumns: 80
    MinimumRows: 40
    Title: '原料列表页'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_Panel351.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,96 @@
Quintiq file version 2.0
Component Panel351
{
  #keys: '[414724.0.115504403]'
  BaseType: 'WebPanel'
  Children:
  [
    Component btn_Add_Order_FOF449
    {
      #keys: '[414724.0.115504404]'
      BaseType: 'WebButton'
      Properties:
      [
        Description: '订单新增反签/授权'
        Label: '订单新增反签/授权'
        Taborder: 1
      ]
      ResponseDefinitions:
      [
        ResponseDefinition OnClick id:Responsedef_Panel351_btn_Add_Order_FOF449_OnClick
        {
          #keys: '[414724.0.141224456]'
          IsInherited: false
          ResponseType: 'OnClick'
          Arguments:
          [
            ResponseDefinitionArgument selection
            {
              #keys: '[271.0.41037309]'
              Binding: 'liH_Forecast.Selection()'
            }
          ]
        }
      ]
    }
    Component btn_Add_Material_FOF503
    {
      #keys: '[414724.0.115504405]'
      BaseType: 'WebButton'
      Properties:
      [
        Description: '原料新增反签/授权'
        Label: '原料新增反签/授权'
        Taborder: 2
      ]
      ResponseDefinitions:
      [
        ResponseDefinition OnClick id:Responsedef_Panel351_btn_Add_Material_FOF503_OnClick
        {
          #keys: '[414724.0.145304022]'
          IsInherited: false
          ResponseType: 'OnClick'
          Arguments:
          [
            ResponseDefinitionArgument selection
            {
              #keys: '[271.0.68431130]'
              Binding: 'liH_Forecast.Selection()'
            }
          ]
        }
      ]
    }
    Component btn_InitialData778
    {
      #keys: '[414724.0.115504406]'
      BaseType: 'WebButton'
      Properties:
      [
        Description: '加载数据(假的,后续需要对接数据)'
        Label: '加载预测订单数据'
        Taborder: 0
        Visible: false
      ]
    }
    Component btn_OrderH_FOF
    {
      #keys: '[414724.0.165490408]'
      BaseType: 'WebButton'
      Properties:
      [
        Description: 'ERO订单冲减'
        Image: 'AMMUNITION_BOX_CLOSED'
        Label: 'ERP订单冲减'
        Taborder: 3
      ]
    }
  ]
  Properties:
  [
    Alignment: 'trailing'
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_Panel383.def
@@ -48,5 +48,6 @@
    MinimumColumns: 80
    Orientation: 'horizontal'
    Taborder: 0
    Visible: false
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_Panel647.def
@@ -36,6 +36,7 @@
        Description: '加载数据(假的,后续需要对接数据)'
        Label: '加载预测订单数据'
        Taborder: 0
        Visible: false
      ]
    }
  ]
@@ -43,7 +44,6 @@
  [
    Alignment: 'trailing'
    FixedSize: true
    MinimumColumns: 20
    Orientation: 'horizontal'
    Taborder: 1
  ]
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_Panel849.def
@@ -10,8 +10,10 @@
  ]
  Properties:
  [
    Description: '已经隐藏,暂未使用'
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 1
    Taborder: 2
    Visible: false
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_liH_Forecast.def
@@ -28,7 +28,7 @@
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderCode","title":"OrderCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SKU","title":"SKU","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SKU"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastQty","title":"ForecastQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"NeedTime","title":"NeedTime","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"NeedTime"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Util","title":"Util","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Util"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomName","title":"CustomName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Department","title":"Department","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Department"}}]'
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderCode","title":"订单编号","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SKU","title":"SKU编码","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SKU"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastQty","title":"预测数量","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"NeedTime","title":"需求时间","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"NeedTime"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Util","title":"单位","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Util"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomName","title":"客户名称","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Department","title":"销售部门","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Department"}}]'
        ContextMenu: 'listContextMenu367'
        Taborder: 2
      ]
@@ -36,6 +36,6 @@
  ]
  Properties:
  [
    Taborder: 6
    Taborder: 7
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_list_ForecastView_FOF#670.def
@@ -37,7 +37,7 @@
  ]
  Properties:
  [
    Taborder: 4
    Taborder: 5
    Visible: false
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_OnClose.def
@@ -13,7 +13,8 @@
      SelectItem := select( MacroPlan,H_MessagePassing,Obj,Obj.FKey()="FrmOrderForecast" and Obj.ItemKey()="ListSelect");
      if( not isnull( SelectItem))
      {
        SelectItem.Value("");
        SelectItem.Value("");
        SelectItem.ValueJsonString("");
      }
    *]
    GroupServerCalls: false
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_OnCreated.def
@@ -11,41 +11,12 @@
    [*
      // åˆå§‹åŒ–查询参数月份
      ds_Month_FOF.Date(Date::ActualDate());
      // é¢„测数据2此处理(筛选+客户名称提取)
      if( MacroPlan.H_Forecast(relget ).Size()>0)
      // åˆå§‹åŒ–预测数据
      JResult := H_FunctionClass::SM_InitialForcastData( MacroPlan);
      if(not JResult.Get( "Status").GetBoolean())
      {
        MacroPlan.H_Forecast(relget ).Delete( 0,MacroPlan.H_Forecast(relget ).Size()-1);
          WebMessageBox::Warning( JResult.Get( "Msg").GetString());
      }
      //AllData:= selectset( MacroPlan, Product_MP.SalesDemand.astype( Forecast ),object,object.EndDate().DateTime().Date() >= Date::ActualDate().StartOfMonth()
      //                     and object.EndDate().DateTime().Date() <= Date::ActualDate().StartOfNextMonth().StartOfNextMonth().StartOfNextMonth().StartOfNextMonth()
      //                     and object.Quantity()>0 );
      //
      //CustomName:="";
      //DepartMent:="";
      //idx:=0;
      //traverse( AllData,Elements,Obj,not isnull(Obj))
      //{
      //  idx:=Obj.SalesSegmentName().FindString( "_",0);
      //  if(idx>0)
      //  {
      //    DepartMent:=Obj.SalesSegmentName().SubString( 0,idx+1);
      //    CustomName := Obj.SalesSegmentName().SubString( idx+1, Obj.SalesSegmentName().Length() - (idx+1));
      //  }
      //  else
      //  {
      //    CustomName :=Obj.SalesSegmentName();
      //  }
      //
      //   ArrayData:=Obj.SalesSegmentName().SubString( 0,Obj.SalesSegmentName().FindString( "_",0)+1);
      //   MacroPlan.H_Forecast(relnew,OrderCode := H_FunctionClass::SM_GenerateID( "OF"),
      //                          SKU := Obj.ProductID(),
      //                          CustomCode := CustomName,
      //                         CustomName := CustomName,
      //                         Util:=Obj.UnitOfMeasureName(),
      //                         NeedTime:=Obj.EndDate(),
      //                         ForecastQty:=[Number]Obj.Quantity().Round( 0),
      //                         Department:=DepartMent);
      //}
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel351_btn_Add_Material_FOF503_OnClick#222.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,58 @@
Quintiq file version 2.0
#parent: Panel351/btn_Add_Material_FOF503
Response OnClick (
  H_Forecast selection
) id:Response_Panel351_btn_Add_Material_FOF503_OnClick_222
{
  #keys: '[414724.0.145178766]'
  CanBindMultiple: false
  DefinitionID => /Panel351/Responsedef_Panel351_btn_Add_Material_FOF503_OnClick
  QuillAction
  {
    Body:
    [*
      if( not isnull( selection))
      {
        SelectItem :=  select( MacroPlan,H_MessagePassing,Obj,Obj.FKey()="FrmOrderForecast" and Obj.ItemKey()="ListSelect");
        if( isnull( SelectItem))
        {
           MacroPlan.H_MessagePassing(relnew,FKey :="FrmOrderForecast",ItemKey := "ListSelect",
                                       Value := selection.SKU()+";"+selection.Util()+";"+selection.CustomCode()+";"+selection.CustomName(),
                                       ValueJsonString := JSON::Object().Add( "SKU",selection.SKU())
                                                                         .Add( "Util",selection.Util())
                                                                         .Add( "CustomCode",selection.CustomCode())
                                                                         .Add( "CustomName",selection.CustomName())
                                                                         .Add( "ForecastQty",selection.ForecastQty())
                                                                         .Add( "NeedTime",selection.NeedTime().AsQUILL())
                                                                         .Add( "OrderCode",selection.OrderCode()).Build().AsString());
        }
        else
        {
          SelectItem.Value(selection.SKU()+";"+selection.Util()+";"+selection.CustomCode()+";"+selection.CustomName());
          SelectItem.ValueJsonString(JSON::Object().Add( "SKU",selection.SKU())
                                   .Add( "Util",selection.Util())
                                   .Add( "CustomCode",selection.CustomCode())
                                   .Add( "CustomName",selection.CustomName())
                                   .Add( "ForecastQty",selection.ForecastQty())
                                   .Add( "NeedTime",selection.NeedTime().AsQUILL())
                                   .Add( "OrderCode",selection.OrderCode()).Build().AsString());
        }
        jResult := H_FunctionClass::SM_GetMaterialData( MacroPlan,selection.SKU(),selection.ForecastQty(),selection.OrderCode(),"-",selection.NeedTime());
        if(jResult.Get( "Status").GetBoolean())
        {
            Application.OpenForm( "FrmMaterial","popout");
        }
        else
        {
          WebMessageBox::Warning( jResult.Get( "Msg").GetString());
        }
      }
      else
      {
        WebMessageBox::Information( "请选择一项预测后再点击按钮!");
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel351_btn_Add_Order_FOF449_OnClick#880.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
Quintiq file version 2.0
#parent: Panel351/btn_Add_Order_FOF449
Response OnClick (
  H_Forecast selection
) id:Response_Panel351_btn_Add_Order_FOF449_OnClick_880
{
  #keys: '[414724.0.141244111]'
  CanBindMultiple: false
  DefinitionID => /Panel351/Responsedef_Panel351_btn_Add_Order_FOF449_OnClick
  QuillAction
  {
    Body:
    [*
      if( not isnull( selection))
      {
        SelectItem :=  select( MacroPlan,H_MessagePassing,Obj,Obj.FKey()="FrmOrderForecast" and Obj.ItemKey()="ListSelect");
        if( isnull( SelectItem))
        {
           MacroPlan.H_MessagePassing(relnew,FKey :="FrmOrderForecast",ItemKey := "ListSelect",
                                       Value := selection.SKU()+";"+selection.Util()+";"+selection.CustomCode()+";"+selection.CustomName(),
                                       ValueJsonString := JSON::Object().Add( "SKU",selection.SKU())
                                                                         .Add( "Util",selection.Util())
                                                                         .Add( "CustomCode",selection.CustomCode())
                                                                         .Add( "CustomName",selection.CustomName()).Build().AsString());
        }
        else
        {
          SelectItem.Value(selection.SKU()+";"+selection.Util()+";"+selection.CustomCode()+";"+selection.CustomName());
          SelectItem.ValueJsonString(JSON::Object().Add( "SKU",selection.SKU())
                                   .Add( "Util",selection.Util())
                                   .Add( "CustomCode",selection.CustomCode())
                                   .Add( "CustomName",selection.CustomName()).Build().AsString());
        }
        Application.OpenForm( "FrmAuthorizeAndCountersign_Order","modal");
      }
      else
      {
        WebMessageBox::Information( "请选择一项预测后再点击按钮!");
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel351_btn_InitialData778_OnClick#971.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
Quintiq file version 2.0
#parent: Panel351/btn_InitialData778
Response OnClick () id:Response_Panel351_btn_InitialData778_OnClick_971
{
  #keys: '[414724.0.141222418]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      //// æ²¡æœ‰ç”¨çš„æŒ‰é’®å’Œå‡½æ•°ï¼Œåªä¸ºäº†æµ‹è¯•生成假数据。
      //StrCustoms:="XM_2023,小米;HW_2023,华为;OV_2023,VIVO;OP_2023,OPPO;HX_2023,æµ·ä¿¡;YJ_2023,一加;HE_2023,海尔;GL_2023,格力;";
      //ArrayCustom := StrCustoms.Tokenize( ";"); //8个客户
      //idx :=0;
      //for( i:=0;i<20;i:=i+1)
      //{
      //  idx :=Number::Random( 0,7);
      //  arrCustomInfo := ArrayCustom.Element( idx).Tokenize( ",");
      //  MacroPlan.H_Forecast(relnew, CustomName := arrCustomInfo.Element( 1),CustomCode := arrCustomInfo.Element( 0),ForecastQty := Number::Random( 100,5000),
      //                        Department := "销售1部",NeedTime := Date::ActualDate(),OrderCode := H_FunctionClass::SM_GenerateID( "OF") ,SKU := "SKU-CP-2023-N"+(Number::Random( 1000,9999)).AsQUILL(),Util := "PCS");
      //
      //}
      //// ç”Ÿæˆé¢„测 å®žæ—¶æ•°æ®ï¼Œåç­¾æ•°æ®ï¼ŒæŽˆæƒæ•°æ®ï¼ˆåç­¾ æŽˆæƒé»˜è®¤ä¸º0,对自动创建,这里不再添加)
      // traverse(MacroPlan,H_Forecast ,Obj,not isnull(Obj) )
      //{
      //  MacroPlan.H_OrderForecastRealQty(relnew,CustomID := Obj.CustomCode(),CustomName := Obj.CustomName(),ForecatsQty := Obj.ForecastQty(),
      //                                    ForecatsRealQty := Obj.ForecastQty(),ID := H_FunctionClass::SM_GenerateID( "OF"),Month := Date::ActualDate(),
      //                                    OrderCode := Obj.OrderCode(),SKU := Obj.SKU(),Unit := Obj.Util());
      //
      //}
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel351_btn_OrderH_FOF_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: Panel351/btn_OrderH_FOF
Response OnClick () id:Response_Panel351_btn_OrderH_FOF_OnClick
{
  #keys: '[414724.0.166610329]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      H_FunctionClass::SM_OrderHedging( MacroPlan,true,"System","ERP订单");
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel647_btn_Add_Order_FOF_OnClick.def
@@ -16,7 +16,7 @@
      SelectItem := select( MacroPlan,H_MessagePassing,Obj,Obj.FKey()="FrmOrderForecast" and Obj.ItemKey()="ListSelect");
      if(not isnull( SelectItem) and SelectItem.Value().Length()>0)
      {
        Application.OpenForm( "FrmAuthorizeAndCountersign","popout");
        Application.OpenForm( "FrmAuthorizeAndCountersign_Order","popout");
      }
      else
      {
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_liH_Forecast_OnDoubleClick.def
@@ -14,10 +14,37 @@
      SelectItem :=  select( MacroPlan,H_MessagePassing,Obj,Obj.FKey()="FrmOrderForecast" and Obj.ItemKey()="ListSelect");
      if( isnull( SelectItem))
      {
         MacroPlan.H_MessagePassing(relnew,FKey :="FrmOrderForecast",ItemKey := "ListSelect",Value := "");
         MacroPlan.H_MessagePassing(relnew,FKey :="FrmOrderForecast",ItemKey := "ListSelect",
                                     Value := selection.SKU()+";"+selection.Util()+";"+selection.CustomCode()+";"+selection.CustomName(),
                                     ValueJsonString := JSON::Object().Add( "SKU",selection.SKU())
                                                                       .Add( "Util",selection.Util())
                                                                       .Add( "CustomCode",selection.CustomCode())
                                                                       .Add( "CustomName",selection.CustomName())
                                                                       .Add( "ForecastQty",selection.ForecastQty())
                                                                       .Add( "NeedTime",selection.NeedTime().AsQUILL())
                                                                       .Add( "OrderCode",selection.OrderCode()).Build().AsString());
      }
      SelectItem.Value(selection.SKU()+";"+selection.Util()+";"+selection.CustomCode()+";"+selection.CustomName());
      Application.OpenForm( "FrmMaterial","popout");
      else
      {
        SelectItem.Value(selection.SKU()+";"+selection.Util()+";"+selection.CustomCode()+";"+selection.CustomName());
        SelectItem.ValueJsonString(JSON::Object().Add( "SKU",selection.SKU())
                                 .Add( "Util",selection.Util())
                                 .Add( "CustomCode",selection.CustomCode())
                                 .Add( "CustomName",selection.CustomName())
                                 .Add( "ForecastQty",selection.ForecastQty())
                                 .Add( "NeedTime",selection.NeedTime().AsQUILL())
                                 .Add( "OrderCode",selection.OrderCode()).Build().AsString());
      }
      jResult := H_FunctionClass::SM_GetMaterialData( MacroPlan,selection.SKU(),selection.ForecastQty(),selection.OrderCode(),"-",selection.NeedTime());
      if(jResult.Get( "Status").GetBoolean())
      {
        Application.OpenForm( "FrmMaterial","popout");
      }
      else
      {
        WebMessageBox::Warning( jResult.Get( "Msg").GetString());
      }
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_liH_Forecast_OnSelectionChanged.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/_ROOT_Component_FrmOrderForecast.def
@@ -43,7 +43,7 @@
      ]
      Properties:
      [
        Taborder: 3
        Taborder: 4
      ]
    }
    #child: Panel961
@@ -93,7 +93,7 @@
      ]
      Properties:
      [
        Taborder: 2
        Taborder: 3
      ]
    }
    Component dh_FOF_H_Forecast
@@ -118,15 +118,16 @@
      ]
      Properties:
      [
        Taborder: 5
        Taborder: 6
      ]
    }
    #child: liH_Forecast
    #child: Panel351
  ]
  Properties:
  [
    Description: '订单预测页面'
    Image: 'GOLDFISH'
    Image: 'NAV_REDO_LIGHT_BLUE'
    Title: '预测列表页'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmOrderResult/Component_List782.def
@@ -28,7 +28,7 @@
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderCode","title":"OrderCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SKU","title":"SKU","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SKU"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderQty","title":"OrderQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ReverseQty","title":"ReverseQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ReverseQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"AuthorizeQty","title":"AuthorizeQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"AuthorizeQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastQty","title":"ForecastQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastHitQty","title":"ForecastHitQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastHitQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastNoHitQty","title":"ForecastNoHitQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastNoHitQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerName","title":"CustomerName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerCode","title":"CustomerCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerCode"}}]'
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderCode","title":"订单编号","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SKU","title":"SKU编码","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SKU"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderQty","title":"新增订单","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ReverseQty","title":"反签","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ReverseQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"AuthorizeQty","title":"授权","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"AuthorizeQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastQty","title":"预测","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastHitQty","title":"有预测","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastHitQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastNoHitQty","title":"无预测","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastNoHitQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerName","title":"客户名称","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerCode","title":"客户ID","subtotals":"","tooltip":"","width":-1,"display":"hidden","editable":false,"attribute":"CustomerCode"}}]'
        ContextMenu: 'listContextMenu526'
        Taborder: 2
      ]
_Main/UI/MacroPlannerWebApp/Component_FrmOrderResult/_ROOT_Component_FrmOrderResult.def
@@ -39,6 +39,7 @@
  Properties:
  [
    Description: '订单冲减过程及订单标签展示'
    Image: 'NAV_REDO_LIGHT_BLUE'
    Title: '订单冲减过程及订单标签展示'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmRAShow/Component_List696.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
Quintiq file version 2.0
Component List696
{
  #keys: '[414724.0.118276730]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractor838
    {
      #keys: '[414724.0.118276731]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'structured[H_MaterialHedgingResult]'
        Source: 'dh_FRAS'
        Taborder: 0
        Transformation: 'Elements'
      ]
    }
    #child: listActionBarPage112
    Component DataSetLevel187
    {
      #keys: '[414724.0.118276736]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenu660
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SKU","title":"SKU编码","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SKU"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MType","title":"类型","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ReverseQty","title":"预测数量","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ReverseQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"AuthorizeQty","title":"授权数量","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"AuthorizeQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Unit","title":"单位","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Unit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerName","title":"客户名称","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerName"}}]'
        ContextMenu: 'listContextMenu660'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Taborder: 3
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmRAShow/Component_Panel224.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,49 @@
Quintiq file version 2.0
Component Panel224
{
  #keys: '[414724.0.132480968]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ds_Month_FRAS
    {
      #keys: '[414724.0.132481008]'
      BaseType: 'WebDateSelector'
      Properties:
      [
        Enabled: false
        Taborder: 0
        Visible: false
      ]
    }
    Component txt_QueryContent_FRAS
    {
      #keys: '[414724.0.132481038]'
      BaseType: 'WebEditField'
      Properties:
      [
        PlaceHolder: '模糊搜索'
        Taborder: 1
      ]
    }
    Component btn_Query_FRAS
    {
      #keys: '[414724.0.132481089]'
      BaseType: 'WebButton'
      Properties:
      [
        ButtonSize: 'compact'
        Image: 'VIEW'
        Label: '查询'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Alignment: 'trailing'
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmRAShow/Component_Panel950.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
Quintiq file version 2.0
Component Panel950
{
  #keys: '[414724.0.133671405]'
  BaseType: 'WebPanel'
  Children:
  [
    Component Label782
    {
      #keys: '[414724.0.133671432]'
      BaseType: 'WebLabel'
      Properties:
      [
        Taborder: 0
        Text: '反签和授权列表展示页'
      ]
    }
  ]
  Properties:
  [
    Border: true
    FixedSize: true
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmRAShow/Component_listActionBarPage112.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FrmTEST/Component_listActionBarPage748.def ÐÞ¸Ä
@@ -1,7 +1,7 @@
Quintiq file version 2.0
Component listActionBarPage748
Component listActionBarPage112
{
  #keys: '[414724.0.58710450]'
  #keys: '[414724.0.118276733]'
  BaseType: 'listActionBarPage'
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FrmRAShow/Component_listContextMenu660.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FrmTEST/Component_listContextMenu623.def ÐÞ¸Ä
@@ -1,7 +1,7 @@
Quintiq file version 2.0
Component listContextMenu623
Component listContextMenu660
{
  #keys: '[414724.0.58710455]'
  #keys: '[414724.0.118276738]'
  BaseType: 'listContextMenu'
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FrmRAShow/Response_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: #root
Response OnCreated () id:Response_FrmRAShow_OnCreated
{
  #keys: '[414724.0.134602766]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      ds_Month_FRAS.Date(Date::ActualDate());
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FrmRAShow/Response_Panel224_btn_Query_FRAS_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: Panel224/btn_Query_FRAS
Response OnClick () id:Response_Panel224_btn_Query_FRAS_OnClick
{
  #keys: '[414724.0.135920812]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      de_dh_FRAS.FixedFilter( "object.ID().LikeUserLocale( " + txt_QueryContent_FRAS.Text().AsQUILL() + " )"
                                                   + " or " + "object.SKU().LikeUserLocale( " + txt_QueryContent_FRAS.Text().AsQUILL() + " )"
                                                   + " or " + "object.CustomerCode().LikeUserLocale( " + txt_QueryContent_FRAS.Text().AsQUILL() + " )"
                                                   + " or " + "object.CustomerName().LikeUserLocale( " + txt_QueryContent_FRAS.Text().AsQUILL() + " )"
                                                   );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FrmRAShow/_ROOT_Component_FrmRAShow.def
@@ -5,8 +5,41 @@
{
  #keys: '[414724.0.87341476]'
  BaseType: 'WebForm'
  Children:
  [
    #child: List696
    Component dh_FRAS
    {
      #keys: '[414724.0.118276696]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[H_MaterialHedgingResult]*'
      Children:
      [
        Component de_dh_FRAS
        {
          #keys: '[414724.0.118276712]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'MacroPlan'
            Source: 'MacroPlan'
            Taborder: 0
            Transformation: 'H_MaterialHedgingResult'
          ]
        }
      ]
      Properties:
      [
        Taborder: 2
      ]
    }
    #child: Panel950
    #child: Panel224
  ]
  Properties:
  [
    Description: '原料反签和授权展示'
    Image: 'NAV_REDO_LIGHT_BLUE'
    Title: '反签和授权列表展示页'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmTEST/Component_ListData_FT#710.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FrmTEST/Component_Panel675.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FrmTEST/Response_Panel675_ButtonClear_OnClick.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FrmTEST/_ROOT_Component_FrmTEST.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_Frm_TEST/Component_List212.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
Quintiq file version 2.0
Component List212
{
  #keys: '[414724.0.153225431]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractor924
    {
      #keys: '[414724.0.153225432]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'MacroPlan'
        Source: 'MacroPlan'
        Taborder: 0
        Transformation: 'MappingProduct'
      ]
    }
    #child: listActionBarPage441
    Component DataSetLevel622
    {
      #keys: '[414724.0.153225437]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenu182
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessType","title":"BusinessType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BusinessType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CommonBusiness","title":"CommonBusiness","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CommonBusiness"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"EndDate","title":"EndDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"EndDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ID","title":"ID","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsCommon","title":"IsCommon","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsCommon"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"KeyProduct","title":"KeyProduct","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"KeyProduct"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Name","title":"Name","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Notes","title":"Notes","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Notes"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductMajorType","title":"ProductMajorType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductMajorType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductSubclassType","title":"ProductSubclassType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductSubclassType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ShelfLife","title":"ShelfLife","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ShelfLife"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasureName","title":"UnitOfMeasureName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasureName"}}]'
        ContextMenu: 'listContextMenu182'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_Frm_TEST/Component_listActionBarPage441.def
copy from _Main/UI/MacroPlannerWebApp/Component_FrmTEST/Component_listActionBarPage748.def copy to _Main/UI/MacroPlannerWebApp/Component_Frm_TEST/Component_listActionBarPage441.def
Îļþ´Ó _Main/UI/MacroPlannerWebApp/Component_FrmTEST/Component_listActionBarPage748.def ¸´ÖÆ
@@ -1,7 +1,7 @@
Quintiq file version 2.0
Component listActionBarPage748
Component listActionBarPage441
{
  #keys: '[414724.0.58710450]'
  #keys: '[414724.0.153225434]'
  BaseType: 'listActionBarPage'
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_Frm_TEST/Component_listContextMenu182.def
copy from _Main/UI/MacroPlannerWebApp/Component_FrmTEST/Component_listContextMenu623.def copy to _Main/UI/MacroPlannerWebApp/Component_Frm_TEST/Component_listContextMenu182.def
Îļþ´Ó _Main/UI/MacroPlannerWebApp/Component_FrmTEST/Component_listContextMenu623.def ¸´ÖÆ
@@ -1,7 +1,7 @@
Quintiq file version 2.0
Component listContextMenu623
Component listContextMenu182
{
  #keys: '[414724.0.58710455]'
  #keys: '[414724.0.153225439]'
  BaseType: 'listContextMenu'
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_Frm_TEST/Response_Button593_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
#parent: Button593
Response OnClick () id:Response_Frm_TEST_Button593_OnClick
{
  #keys: '[414724.0.153411735]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      HObj := H_FunctionClass::SM_GetProductInfo( MacroPlan,"");
      if( not isnull( HObj))
      {
        WebMessageBox::Information( HObj.BusinessType());
      }
      else
      {
        WebMessageBox::Information( "得到的空值");
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_Frm_TEST/Response_Button687_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: Button687
Response OnClick () id:Response_Frm_TEST_Button687_OnClick
{
  #keys: '[414724.0.164341791]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      H_FunctionClass::SM_OrderHedging( MacroPlan,true,"System","ERP订单");
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_Frm_TEST/_ROOT_Component_Frm_TEST.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,61 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent Frm_TEST
{
  #keys: '[414724.0.153225415]'
  BaseType: 'WebForm'
  Children:
  [
    #child: List212
    Component DataHolder417
    {
      #keys: '[414724.0.153253171]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[MappingProduct]*'
      Children:
      [
        Component DataExtractor742
        {
          #keys: '[414724.0.153253184]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'MacroPlan'
            Source: 'MacroPlan'
            Taborder: 0
            Transformation: 'MappingProduct'
          ]
        }
      ]
      Properties:
      [
        Taborder: 2
      ]
    }
    Component Button593
    {
      #keys: '[414724.0.153411711]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'MONITOR_RGB'
        Label: '测试'
        Taborder: 0
      ]
    }
    Component Button687
    {
      #keys: '[414724.0.164341716]'
      BaseType: 'WebButton'
      Properties:
      [
        Taborder: 3
      ]
    }
  ]
  Properties:
  [
    Title: '测试页面'
  ]
}
_Main/UI/MacroPlannerWebApp/Views/OrderLock.vw
@@ -4,204 +4,403 @@
  {
    forms
    {
      form_legacy_1
      form_FormOrderLockLog
      {
        title: 'Scenario manager'
        title: 'QTIANMA_JITUAN::FormOrderLockLog'
        shown: true
        componentID: 'FormScenarioManager'
        componentID: 'QTIANMA_JITUAN::FormOrderLockLog'
        layout
        {
          mode: 'open'
          rowPosition: 1
          rowPosition: 14
          rowSpan: 8
          columnPosition: 1
          columnSpan: 5
          columnSpan: 12
        }
        components
        {
          FormScenarioManager_ListScenario
          FormOrderLockLog_PanelOrderLockLog
          {
            sizeRatio: 1
          }
          FormOrderLockLog_ListOrderLockLog
          {
          }
          FormScenarioManager_DataSetLevelScenario
          FormOrderLockLog_DataSetLevelOrderLockLog
          {
            groupDepth: -1
            column_All_constraints
            sort: 'DESC:Notes'
            column_OrderID
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              columnId: 'OrderID'
              dataPath: 'OrderID'
              dataType: 'string'
              title: 'All constraints'
              title: '订单号'
              index: 0
              subtotals: ''
              width: 90
              width: 150
            }
            column_Name
            column_ProductID
            {
              columnId: 'Name'
              dataPath: 'Name'
              columnId: 'ProductID'
              dataPath: 'ProductID'
              dataType: 'string'
              title: '名称'
              title: '物料号'
              index: 1
              subtotals: ''
              width: 277
              width: 150
            }
            column_ChangedBy
            column_SalesSegmentName
            {
              columnId: 'ChangedBy'
              dataPath: 'ChangedBy'
              columnId: 'SalesSegmentName'
              dataPath: 'SalesSegmentName'
              dataType: 'string'
              title: 'Changed by'
              title: '销售部门'
              index: 2
              subtotals: ''
              width: 106
              width: 150
            }
            column_ChangedOn
            column_StockingPointID
            {
              columnId: 'ChangedOn'
              dataPath: 'ChangedOn'
              dataType: 'datetime'
              title: 'Changed on'
              index: 3
              subtotals: ''
              width: 99
            }
            column_StorageMode
            {
              columnId: 'StorageMode'
              dataPath: 'StorageMode'
              columnId: 'StockingPointID'
              dataPath: 'StockingPointID'
              dataType: 'string'
              title: 'StorageMode'
              index: 4
              subtotals: ''
              width: 40
            }
          }
        }
      }
      form_legacy_2
      {
        title: 'Assumptions'
        shown: true
        componentID: 'FormAssumptions'
        layout
        {
          mode: 'open'
          rowPosition: 9
          rowSpan: 8
          columnPosition: 1
          columnSpan: 5
        }
        components
        {
          FormAssumptions_ListAssumptions
          {
          }
          FormAssumptions_DataSetLevelAssumptions
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Category
            {
              columnId: 'Category'
              dataPath: 'Category'
              dataType: 'string'
              title: '类别'
              index: 1
              subtotals: ''
              width: 108
            }
            column_Importance
            {
              columnId: 'Importance'
              dataPath: 'Importance'
              dataType: 'string'
              title: '重要性'
              index: 2
              subtotals: ''
              width: 110
            }
            column_Title
            {
              columnId: 'Title'
              dataPath: 'Title'
              dataType: 'string'
              title: '标题'
              title: '库存点'
              index: 3
              subtotals: ''
              width: 150
            }
            column_ChangedBy
            column_CustomerName
            {
              columnId: 'ChangedBy'
              dataPath: 'ChangedBy'
              columnId: 'CustomerName'
              dataPath: 'CustomerName'
              dataType: 'string'
              title: 'Changed by'
              title: '客户名称'
              index: 4
              subtotals: ''
              width: 150
            }
            column_CreatedOn
            column_Quantity
            {
              columnId: 'CreatedOn'
              dataPath: 'CreatedOn'
              dataType: 'datetime'
              title: 'Created on'
              columnId: 'Quantity'
              dataPath: 'Quantity'
              dataType: 'real'
              index: 5
              subtotals: ''
              width: 150
            }
            column_UnitOfMeasureName
            {
              columnId: 'UnitOfMeasureName'
              dataPath: 'UnitOfMeasureName'
              dataType: 'string'
              title: '单位'
              index: 6
              subtotals: ''
              width: 150
            }
            column_Price
            {
              columnId: 'Price'
              dataPath: 'Price'
              dataType: 'real'
              title: '销售额'
              index: 7
              subtotals: ''
              width: 150
            }
            column_EndDate
            {
              columnId: 'EndDate'
              dataPath: 'EndDate'
              dataType: 'date'
              title: '客户需求时间'
              index: 8
              subtotals: ''
              width: 150
            }
            column_IsLocked
            {
              columnId: 'IsLocked'
              dataPath: 'IsLocked'
              dataType: 'boolean'
              title: '状态'
              index: 9
              subtotals: ''
              width: 150
            }
            column_End
            {
              columnId: 'End'
              dataPath: 'End'
              dataType: 'date'
              title: '计划交付时间'
              index: 10
              subtotals: ''
              width: 150
            }
            column_LastModify
            {
              columnId: 'LastModify'
              dataPath: 'LastModify'
              dataType: 'string'
              title: '最后操作人'
              index: 11
              subtotals: ''
              width: 150
            }
            column_LastModifyTime
            {
              columnId: 'LastModifyTime'
              dataPath: 'LastModifyTime'
              dataType: 'datetime'
              title: '最后操作时间'
              index: 12
              subtotals: ''
              width: 145
            }
            column_Notes
            {
              columnId: 'Notes'
              dataPath: 'Notes'
              dataType: 'string'
              title: '操作详情'
              index: 13
              subtotals: ''
              width: 150
            }
          }
        }
      }
      form_FormScenariosKPIsComparison
      form_FormOrderLock
      {
        title: 'QLibMacroPlannerWebUI::FormScenariosKPIsComparison'
        title: 'QTIANMA_JITUAN::FormOrderLock'
        shown: true
        componentID: 'QLibMacroPlannerWebUI::FormScenariosKPIsComparison'
        componentID: 'QTIANMA_JITUAN::FormOrderLock'
        layout
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 16
          columnPosition: 6
          columnSpan: 7
          rowSpan: 13
          columnPosition: 1
          columnSpan: 12
        }
        components
        {
          FormScenariosKPIsComparison_MatrixEditorFinancialKPIs
          FormOrderLock_PanelOrderLock
          {
            sizeRatio: 1
          }
          FormOrderLock_PanelOrderLockHeader
          {
            sizeRatio: 1
          }
          FormOrderLock_PanelOrderLockOrder
          {
            sizeRatio: 1
          }
          FormOrderLock_ListOrderLock
          {
          }
          FormOrderLock_DataSetLevelOrderLock
          {
            groupDepth: -1
            sort: 'StartDate'
            column_OrderID
            {
              columnId: 'OrderID'
              dataPath: 'OrderID'
              dataType: 'string'
              title: '订单号'
              index: 0
              subtotals: ''
              width: 150
            }
            column_ProductID
            {
              columnId: 'ProductID'
              dataPath: 'ProductID'
              dataType: 'string'
              title: '物料号'
              index: 1
              subtotals: ''
              width: 150
            }
            column_SalesSegmentName
            {
              columnId: 'SalesSegmentName'
              dataPath: 'SalesSegmentName'
              dataType: 'string'
              title: '销售部门'
              index: 2
              subtotals: ''
              width: 150
            }
            column_StockingPointID
            {
              columnId: 'StockingPointID'
              dataPath: 'StockingPointID'
              dataType: 'string'
              title: '库存点'
              index: 3
              subtotals: ''
              width: 150
            }
            column_CustomerName
            {
              columnId: 'CustomerName'
              dataPath: 'CustomerName'
              dataType: 'string'
              title: '客户名称'
              index: 4
              subtotals: ''
              width: 150
            }
            column_Quantity
            {
              columnId: 'Quantity'
              dataPath: 'Quantity'
              dataType: 'real'
              index: 5
              subtotals: ''
              width: 150
            }
            column_UnitOfMeasureName
            {
              columnId: 'UnitOfMeasureName'
              dataPath: 'UnitOfMeasureName'
              dataType: 'string'
              title: '单位'
              index: 6
              subtotals: ''
              width: 150
            }
            column_Price
            {
              columnId: 'Price'
              dataPath: 'Price'
              dataType: 'real'
              title: '销售额'
              index: 7
              subtotals: ''
              width: 150
            }
            column_StartDate
            {
              columnId: 'StartDate'
              dataPath: 'StartDate'
              dataType: 'date'
              title: '客户需求时间'
              index: 8
              subtotals: ''
              width: 150
            }
            column_IsLocked
            {
              columnId: 'IsLocked'
              dataPath: 'IsLocked'
              dataType: 'boolean'
              title: '状态'
              index: 9
              subtotals: ''
              width: 150
            }
            column_First_AsPlanningBaseSalesDemandInPeriod_End
            {
              columnId: 'First.AsPlanningBaseSalesDemandInPeriod.End'
              dataPath: 'First.AsPlanningBaseSalesDemandInPeriod.End'
              dataType: 'datetime'
              title: '计划交付时间'
              index: 10
              subtotals: ''
              width: 150
            }
            column_LastModify
            {
              columnId: 'LastModify'
              dataPath: 'LastModify'
              dataType: 'string'
              title: '最后操作人'
              index: 11
              subtotals: ''
              width: 150
            }
            column_LastModifyTime
            {
              columnId: 'LastModifyTime'
              dataPath: 'LastModifyTime'
              dataType: 'datetime'
              title: '最后操作时间'
              index: 12
              subtotals: ''
              width: 150
            }
          }
          FormOrderLock_PanelOrderLockPlanning
          {
            sizeRatio: 1
          }
          FormOrderLock_PanelMatrix
          {
            sizeRatio: 1
          }
          FormOrderLock_MatrixEditorProductPlanning
          {
            gridColor: '#c4c4c4'
            totalHeaderWidth: 200
            attributeHeaderWidthRatio: 0.6
            nameHeaderWidthRatio: 0.4
            totalHeaderWidth: 427
            attributeHeaderWidthRatio: 0.325989701966572
            nameHeaderWidthRatio: 0.674010298033429
            columnWidth: 100
            horizontalGrid: true
            verticalGrid: true
            backendState
            {
              componentId: 'QLibMacroPlannerWebUI::FormScenariosKPIsComparison.MatrixEditorFinancialKPIs'
              componentId: 'QTIANMA_JITUAN::FormOrderLock.MatrixEditorProductPlanning'
              state
              {
                cells
                {
                  attributes
                  {
                    attribute_DisplayValue
                    attribute_DisplaySupplyQuantity
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 0
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'DisplayValue'
                      attribute: 'DisplaySupplyQuantity'
                    }
                    attribute_DependentDemandAndSalesDemandQuantity
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 1
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'DependentDemandAndSalesDemandQuantity'
                    }
                    attribute_TargetInventoryLevel
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 2
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'TargetInventoryLevel'
                    }
                    attribute_InventoryLevelEnd
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 3
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'InventoryLevelEnd'
                    }
                    attribute_StockLevelInDays
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 4
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'StockLevelInDays'
                    }
                  }
                }
@@ -209,14 +408,14 @@
                {
                  sorting
                  {
                    criteria: ''
                    criteria: "datamember:'Start'"
                  }
                }
                rows
                {
                  sorting
                  {
                    criteria: "datamember:'KPISetting.DisplayIndex'"
                    criteria: "datamember:'Product_MP.DisplayIndex';datamember:'Name'"
                  }
                }
              }
@@ -337,10 +536,10 @@
    userconfigurableinformation
    {
    }
    index: 2
    image: 'DOCUMENT_LOCK'
    page: 'applicationDevelopmentActionBarPageDef'
    group: ''
    index: 2
    image: 'DOCUMENT_LOCK'
    description: ''
  }
  formatversion: 2
_Main/UI/MacroPlannerWebApp/_ROOT_Project_MacroPlannerWebApp.qp
@@ -5,7 +5,7 @@
  ProjectProperties
  {
    ApplicationComponentName: 'ApplicationMacroPlanner'
    BuildVersion: '2022.3.0.113'
    BuildVersion: '2022.3.0.32'
    Description: 'Quintiq Macro Planner'
    ProjectKind: 'WebClient'
  }
_var/_Main/ProjSettings/MacroPlannerWebApp/TypeConfigs/CustomerOrder.qtc
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
{
  SelectableAttributes
  {
    ID
    {
      attribute: 'ID'
      isactive: true
    }
    IsLocked
    {
      attribute: 'IsLocked'
      isactive: true
    }
  }
  meta_
  {
    type: 'CustomerOrder'
  }
}