xiaoding721
2024-09-25 ad242bf0203ebb1236bd2cb5c1da1dd8619aedce
Merge branch 'dev' of http://47.101.211.7:10101/r/VWED into dev
已修改134个文件
已添加44个文件
已删除26个文件
2713 ■■■■ 文件已修改
_Main/BL/EDI/Broker_MP_ExportChangeLossSettingsBroker.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/EDI/Broker_MP_ImportChangeLossSettingsBroker.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_EnginePipelineSearch_MacroPlan_MacroPlan_EnginePipelineSearch.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_EnginePipelineSource_Search_EnginePipelineSearch_Source.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_FinancialProductionSearch_FinancialProductionSource_FinancialProduc.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_FinancialProductionSearch_MacroPlan_MacroPlan_FinancialProductionSe.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_FinancialSalesSearch_MacroPlan_MacroPlan_FinancialSalesSearch.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_FinancialSalesSource_FinancialSalesSearch_FinancialSalesSearch_Fina.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_InventorySummarySearch_InventorySummarySource_InventorySummarySourc.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_InventorySummarySearch_MacroPlan_MacroPlan_InventorySummarySearch.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_MachiningPipelineSearch_MacroPlan_MacroPlan_MachiningPipelineSearch.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_MachiningPipelineSearch_Source_MachiningPipelineSource_Search.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_AllCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_EstimateTotalCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_EstimatedTotalCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_FactoryToRentTransCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_RentEnterCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_RentInCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_RentOutCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_RentOutOfCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_RentStorCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_RentStorageCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_TotalCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_WerkToRentTransCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell/Function_CalcAllCost.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell/Function_CalcEstimateTotalCost.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell/Function_CalcEstimatedTotalCost.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell/Function_CalcTotalCost.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_AllCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_CCLongTransCoat.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_CCLongTransCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_CCRentEnterCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_CCRentInCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_CCRentOutCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_CCRentOutOfCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_CCRentQuantity.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_CCRentStorCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_CCRentStorageCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_CCShorTransCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_CCShortTransCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_DLRentEnterCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_DLRentInCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_DLRentOutCost#0.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_DLRentOutOfCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_DLRentStorCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_DLRentStorageCost#0.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_EstimateTotalCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_EstimatedTotalCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_FactoryToDLRentTransCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_TotalCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_WerkToDLRentTransCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Function_CalcAllCost.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Function_CalcEstimateTotalCost.qbl 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Function_CalcEstimatedTotalCost.qbl 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Function_CalcTotalCost.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport/Method_Generate.qbl 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_Download.qbl 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_GetDefaultCCUnit.qbl 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_Import.qbl 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_Initialize.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport0/Method_Generate.qbl 54 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_Download.qbl 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_GetDefaultCCUnit.qbl 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_GetDefaultDLUnit.qbl 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_Import.qbl 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_Initialize.qbl 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_InitializeNew.qbl 280 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostRow/Method_Initialize.qbl 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostRow/Method_SetFactoryToRentTransCost.qbl 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostRow/Method_SetRentEnterCost#517.qbl 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostRow/Method_SetRentOutCost.qbl 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostRow/Method_SetRentStorageCost.qbl 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostRow0/Method_Initialize.qbl 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostRow0/Method_SetDLRentEnterCost.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostRow0/Method_SetDLRentOutCost.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostRow0/Method_SetFactoryToRentTransCost.qbl 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostRow0/Method_SetRentOutCost.qbl 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostRow0/Method_SetRentStorageCost.qbl 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CC_EngineRackCell/Attribute_PackagingCapacity.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CC_EngineRackCell/Attribute_UnitPriceOfEmptyShelfStorage.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ChangeLossSetting/StaticMethod_ValidateInput.qbl 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ChangeLossSettingExcel/Attribute_EndDate.qbl 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ChangeLossSettingExcel/Attribute_StartDate.qbl 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ChangeLossSettingExcel/StaticMethod_ExportTemplate.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ChangeLossSettingExcel/StaticMethod_Import.qbl 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ChangeLossSettingExcel/TypeIndex_ChangeLossSettingTypeIndex.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_EnginePipelineReport/StaticMethod_GetDefaultCCUnit.qbl 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_EnginePipelineReport/StaticMethod_GetDefaultDLUnit.qbl 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_EnginePipelineSource/StaticMethod_Initialize.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionReport/Method_Generate.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionReport/StaticMethod_GetDefaultCCUnit.qbl 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionReport/StaticMethod_GetDefaultDLUnit.qbl 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionSource/StaticMethod_Initialize.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesReport/Method_Generate.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesReport/StaticMethod_GetDefaultCCUnit.qbl 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesReport/StaticMethod_GetDefaultDLUnit.qbl 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesReport/StaticMethod_GetSalesSegmentCC.qbl 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesReport/StaticMethod_GetSalesSegmentFS.qbl 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesReport/StaticMethod_GetSalesSegmentTJ.qbl 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesSource/StaticMethod_Initialize.qbl 108 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventoryInterfaceData/StaticMethod_SynchronizeInventory#575.qbl 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventorySummaryReport/Method_Generate.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventorySummaryReport/StaticMethod_GetDefaultCCUnit.qbl 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventorySummaryReport/StaticMethod_GetDefaultDLUnit.qbl 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventorySummarySource/StaticMethod_Initialize.qbl 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LogisticsCostEngine/Attribute_OtherPrice.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LogisticsCostEngine/Attribute_OutboundPrice.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LogisticsCostEngine/Attribute_PackagingCapacity.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LogisticsCostEngine/Attribute_StoragePrice.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LogisticsCostEngine/Attribute_WarehousingPrice.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LogisticsCostMachining/Attribute_BufferPaperPrice.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LogisticsCostMachining/Attribute_OutboundPrice.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LogisticsCostMachining/Attribute_PackagePrice.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LogisticsCostMachining/Attribute_PackagingCapacity.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LogisticsCostMachining/Attribute_StoragePrice.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LogisticsCostMachining/Attribute_UnpackingPrice.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LogisticsCostMachining/Attribute_WarehousingPrice.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LogisticsCostMachining/Attribute_WoodenCratePrice.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LogisticsCostMaterialRack/Attribute_CleanPrice.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LogisticsCostMaterialRack/Attribute_OutboundPrice.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LogisticsCostMaterialRack/Attribute_StoragePrice.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LogisticsCostMaterialRack/Attribute_WarehousingPrice.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LogisticsCostTransport/Attribute_LoadingCapacity.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LogisticsCostTransport/Attribute_TransportPrice.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachineLogisticsCostReportCell/StaticMethod_CreateData.qbl 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachiningPipelineReport/StaticMethod_GetDefaultCCUnit.qbl 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachiningPipelineReport/StaticMethod_GetDefaultDLUnit.qbl 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachiningPipelineSource0/StaticMethod_Initialize.qbl 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OfflinePlanCell/StaticMethod_RefreshOfflinePlan.qbl 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_TransferPlanCell/StaticMethod_GenerateReport.qbl 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_TransferPlanRow/Method_Filter.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/Sys/Repr/Global/CCEngineLogisticsCostCell.qrp 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/Sys/Repr/Global/DLEngineLogisticsCostCell.qrp 52 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/Sys/Repr/Global/LogisticsCostEngine.qrp 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/Sys/Repr/Global/LogisticsCostMachining.qrp 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/Sys/Repr/Global/LogisticsCostMaterialRack.qrp 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/Sys/Repr/Global/LogisticsCostTransport.qrp 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_abgSecondDevelopmentPlan.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Component_MatrixEditorTable#358.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Component_PanelExport#670.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Response_MatrixEditorTable_358_OnUpdateValue.def 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Response_OnCreated.def 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Response_PanelExport_670_ButtonImport_OnClick.def 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Response_PanelExport_670_bRefresh_OnClick.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Response_PanelGeneration_969_ddslGeneration_OnSelectionChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Response_PanelMQBMLB_667_ddslMQBMLB_OnSelectionChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Response_PanelPower_653_ddslPower_OnSelectionChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/_ROOT_Component_FormCCEngineLogisticsCostReport.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Component_MatrixEditorTable.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Component_PanelExport.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Response_OnCreated.def 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Response_PanelExport_ButtonImport_OnClick#130.def 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Response_PanelExport_bRefresh_OnClick#57.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Response_PanelGeneration_ddslGeneration_OnSelectionChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Response_PanelMQBMLB_ddslMQBMLB_OnSelectionChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Response_PanelPower_ddslPower_OnSelectionChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/_ROOT_Component_FormDLEngineLogisticsCostReport.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormEnginePipelineReport/Component_PanelExport#570.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormEnginePipelineReport/Response_OnCreated.def 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormEnginePipelineReport/Response_PanelExport_570_bRefresh_OnClick.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormEnginePipelineReport/Response_PanelPeriod_325_DateSelectorEnd_OnChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormEnginePipelineReport/Response_PanelPeriod_325_DateSelectorStart_OnChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormEnginePipelineReport/Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormEnginePipelineReport/_ROOT_Component_FormEnginePipelineReport.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelExport.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_OnCreated.def 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelExport_bRefresh_OnClick.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelGeneration_ddslGeneration_OnSelectionChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelMQBMLB_ddslMQBMLB_OnSelectionChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelPower_ddslPower_OnSelectionChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelUnit_ddslUnit_OnSelectionChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/_ROOT_Component_FormFinancialProductionReport.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelExport#545.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_OnCreated.def 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelExport_545_bRefresh_OnClick.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelGeneration_844_ddslGeneration_OnSelectionChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelMQBMLB_603_ddslMQBMLB_OnSelectionChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelPower_858_ddslPower_OnSelectionChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelUnit_715_ddslUnit_OnSelectionChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/_ROOT_Component_FormFinancialSalesReport.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/Component_PanelHeader.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/Response_OnCreated.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/Response_PanelHeader_bRefresh_OnClick.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Component_PanelExport.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_OnCreated.def 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_PanelCategory_RadioButtonGroupUseForPlanning_OnChanged#847.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_PanelExport_bRefresh_OnClick.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_PanelGeneration_ddslGeneration_OnSelectionChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_PanelMQBMLB_ddslMQBMLB_OnSelectionChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_PanelPeriod_DateSelectorEnd_OnChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_PanelPeriod_DateSelectorStart_OnChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_PanelPower_ddslPower_OnSelectionChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_PanelUnit_ddslUnit_OnSelectionChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/_ROOT_Component_FormInventorySummaryReport.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMachiningPipelineReport/Component_PanelExport.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMachiningPipelineReport/Response_OnCreated.def 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMachiningPipelineReport/Response_PanelExport_bRefresh_OnClick.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMachiningPipelineReport/Response_PanelPeriod_DateSelectorEnd_OnChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMachiningPipelineReport/Response_PanelPeriod_DateSelectorStart_OnChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMachiningPipelineReport/Response_PanelTimeUnit_778_RadioButtonGroupUseForTimeUnit_OnChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMachiningPipelineReport/_ROOT_Component_FormMachiningPipelineReport.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormTransferPlan/Component_MatrixEditor872.def 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Views/LogisticsCostParameterSetting.vw 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_var/_Main/Data/MP_ChangeoverLossSetting.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/EDI/Broker_MP_ExportChangeLossSettingsBroker.qbl
@@ -11,8 +11,10 @@
    {
      TargetType: ChangeLossSettingExcel
      EDIMLColumn ChangeLossNumber { Attribute: ChangeLossNumber ValueType: String }
      EDIMLColumn EndDate { Attribute: EndDate ValueType: Date }
      EDIMLColumn Product1 { Attribute: Product1 ValueType: String }
      EDIMLColumn Product2 { Attribute: Product2 ValueType: String }
      EDIMLColumn StartDate { Attribute: StartDate ValueType: Date }
      EDIMLColumn Unit { Attribute: Unit ValueType: String }
    }
  }
@@ -23,8 +25,10 @@
      InputTable: ChangeLossSettingExcel
      OutputTable: ChangeoverLossSetting
      EDIColumnMatch { InputColumn: ChangeLossNumber OutputColumn: ChangeLossNumber }
      EDIColumnMatch { InputColumn: EndDate OutputColumn: EndDate }
      EDIColumnMatch { InputColumn: Product1 OutputColumn: Product1 }
      EDIColumnMatch { InputColumn: Product2 OutputColumn: Product2 }
      EDIColumnMatch { InputColumn: StartDate OutputColumn: StartDate }
      EDIColumnMatch { InputColumn: Unit OutputColumn: Unit }
    }
  }
@@ -38,6 +42,8 @@
        EDIXLSLinkColumn Product1 { ValueType: String }
        EDIXLSLinkColumn Product2 { ValueType: String }
        EDIXLSLinkColumn Unit { ValueType: String }
        EDIXLSLinkColumn StartDate { ValueType: Date }
        EDIXLSLinkColumn EndDate { ValueType: Date }
        EDIXLSLinkColumn ChangeLossNumber { ValueType: String }
      ]
    }
_Main/BL/EDI/Broker_MP_ImportChangeLossSettingsBroker.qbl
@@ -9,14 +9,18 @@
  {
    EDIMLTable ChangeLossSettingExcel
    {
      PrimaryKeyColumns: EndDate
      PrimaryKeyColumns: Product1
      PrimaryKeyColumns: Product2
      PrimaryKeyColumns: StartDate
      PrimaryKeyColumns: Unit
      TargetType: ChangeLossSettingExcel
      TypeIndex: ChangeLossSettingTypeIndex
      EDIMLColumn ChangeLossNumber { Attribute: ChangeLossNumber ValueType: String }
      EDIMLColumn EndDate { Attribute: EndDate ValueType: Date }
      EDIMLColumn Product1 { Attribute: Product1 ValueType: String }
      EDIMLColumn Product2 { Attribute: Product2 ValueType: String }
      EDIMLColumn StartDate { Attribute: StartDate ValueType: Date }
      EDIMLColumn Unit { Attribute: Unit ValueType: String }
    }
  }
@@ -27,8 +31,10 @@
      InputTable: ChangeoverLossSetting
      OutputTable: ChangeLossSettingExcel
      EDIColumnMatch { InputColumn: ChangeLossNumber OutputColumn: ChangeLossNumber }
      EDIColumnMatch { InputColumn: EndDate OutputColumn: EndDate }
      EDIColumnMatch { InputColumn: Product1 OutputColumn: Product1 }
      EDIColumnMatch { InputColumn: Product2 OutputColumn: Product2 }
      EDIColumnMatch { InputColumn: StartDate OutputColumn: StartDate }
      EDIColumnMatch { InputColumn: Unit OutputColumn: Unit }
    }
  }
@@ -43,6 +49,8 @@
        EDIXLSLinkColumn Product2 { ValueType: String }
        EDIXLSLinkColumn Unit { ValueType: String }
        EDIXLSLinkColumn ChangeLossNumber { ValueType: String }
        EDIXLSLinkColumn StartDate { ValueType: Date }
        EDIXLSLinkColumn EndDate { ValueType: Date }
      ]
    }
  }
_Main/BL/Relations/Relation_EnginePipelineSearch_MacroPlan_MacroPlan_EnginePipelineSearch.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation EnginePipelineSearch_MacroPlan_MacroPlan_EnginePipelineSearch
{
  #keys: '1[415136.0.1155410815]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide MacroPlan
  {
    #keys: '3[415136.0.1155410817][415136.0.1155410816][415136.0.1155410818]'
    Cardinality: '0to1'
    ObjectDefinition: EnginePipelineSearch
    OwningSide: 'Reference'
  }
  RelationSide.RightSide EnginePipelineSearch
  {
    #keys: '3[415136.0.1155410820][415136.0.1155410819][415136.0.1155410821]'
    Cardinality: '0to1'
    ObjectDefinition: MacroPlan
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_EnginePipelineSource_Search_EnginePipelineSearch_Source.qbl
ÎļþÒÑɾ³ý
_Main/BL/Relations/Relation_FinancialProductionSearch_FinancialProductionSource_FinancialProduc.qbl
ÎļþÒÑɾ³ý
_Main/BL/Relations/Relation_FinancialProductionSearch_MacroPlan_MacroPlan_FinancialProductionSe.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation FinancialProductionSearch_MacroPlan_MacroPlan_FinancialProductionSearch
{
  #keys: '1[415136.0.1155603424]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide MacroPlan
  {
    #keys: '3[415136.0.1155603426][415136.0.1155603425][415136.0.1155603427]'
    Cardinality: '0to1'
    ObjectDefinition: FinancialProductionSearch
    OwningSide: 'Reference'
  }
  RelationSide.RightSide FinancialProductionSearch
  {
    #keys: '3[415136.0.1155603429][415136.0.1155603428][415136.0.1155603430]'
    Cardinality: '0to1'
    ObjectDefinition: MacroPlan
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_FinancialSalesSearch_MacroPlan_MacroPlan_FinancialSalesSearch.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation FinancialSalesSearch_MacroPlan_MacroPlan_FinancialSalesSearch
{
  #keys: '1[415136.0.1155410792]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide MacroPlan
  {
    #keys: '3[415136.0.1155410794][415136.0.1155410793][415136.0.1155410795]'
    Cardinality: '0to1'
    ObjectDefinition: FinancialSalesSearch
    OwningSide: 'Reference'
  }
  RelationSide.RightSide FinancialSalesSearch
  {
    #keys: '3[415136.0.1155410797][415136.0.1155410796][415136.0.1155410798]'
    Cardinality: '0to1'
    ObjectDefinition: MacroPlan
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_FinancialSalesSource_FinancialSalesSearch_FinancialSalesSearch_Fina.qbl
ÎļþÒÑɾ³ý
_Main/BL/Relations/Relation_InventorySummarySearch_InventorySummarySource_InventorySummarySourc.qbl
ÎļþÒÑɾ³ý
_Main/BL/Relations/Relation_InventorySummarySearch_MacroPlan_MacroPlan_InventorySummarySearch.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation InventorySummarySearch_MacroPlan_MacroPlan_InventorySummarySearch
{
  #keys: '1[415136.0.1155603461]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide MacroPlan
  {
    #keys: '3[415136.0.1155603463][415136.0.1155603462][415136.0.1155603464]'
    Cardinality: '0to1'
    ObjectDefinition: InventorySummarySearch
    OwningSide: 'Reference'
  }
  RelationSide.RightSide InventorySummarySearch
  {
    #keys: '3[415136.0.1155603466][415136.0.1155603465][415136.0.1155603467]'
    Cardinality: '0to1'
    ObjectDefinition: MacroPlan
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_MachiningPipelineSearch_MacroPlan_MacroPlan_MachiningPipelineSearch.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation MachiningPipelineSearch_MacroPlan_MacroPlan_MachiningPipelineSearch
{
  #keys: '1[415136.0.1155410837]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide MacroPlan
  {
    #keys: '3[415136.0.1155410839][415136.0.1155410838][415136.0.1155410840]'
    Cardinality: '0to1'
    ObjectDefinition: MachiningPipelineSearch
    OwningSide: 'Reference'
  }
  RelationSide.RightSide MachiningPipelineSearch
  {
    #keys: '3[415136.0.1155410842][415136.0.1155410841][415136.0.1155410843]'
    Cardinality: '0to1'
    ObjectDefinition: MacroPlan
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_MachiningPipelineSearch_Source_MachiningPipelineSource_Search.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_AllCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute AllCost
{
  #keys: '3[415136.0.1160240045][415136.0.1160240044][415136.0.1160240046]'
  Description: '总费用'
  ValueType: Real
}
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_EstimateTotalCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute EstimateTotalCost
{
  #keys: '3[415136.0.1160240037][415136.0.1160240036][415136.0.1160240038]'
  Description: '预计总费用'
  ValueType: Real
}
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_EstimatedTotalCost.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_FactoryToRentTransCost.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_RentEnterCost.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_RentInCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute RentInCost
{
  #keys: '3[415136.0.1160164663][415136.0.1160164662][415136.0.1160164664]'
  Description: '外租库入库费用'
  ValueType: Real
}
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_RentOutCost.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_RentOutOfCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute RentOutOfCost
{
  #keys: '3[415136.0.1160164673][415136.0.1160164672][415136.0.1160164674]'
  Description: '外租库出库费用'
  ValueType: Real
}
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_RentStorCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute RentStorCost
{
  #keys: '3[415136.0.1160164708][415136.0.1160164707][415136.0.1160164709]'
  Description: '外租库仓储费用'
  ValueType: Real
}
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_RentStorageCost.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_TotalCost.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_WerkToRentTransCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute WerkToRentTransCost
{
  #keys: '3[415136.0.1160240025][415136.0.1160240024][415136.0.1160240026]'
  Description: '厂内到外租库运输费用'
  ValueType: Real
}
_Main/BL/Type_CCEngineLogisticsCostCell/Function_CalcAllCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
Quintiq file version 2.0
#parent: #root
Function CalcAllCost
{
  Description: '计算总费用'
  TextBody:
  [*
    // ç”„兰鸽 Aug-12-2024 (created)
    value := this.EstimateTotalCost() * this.Coefficient();
    this.AllCost( value );
  *]
}
_Main/BL/Type_CCEngineLogisticsCostCell/Function_CalcEstimateTotalCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
Quintiq file version 2.0
#parent: #root
Function CalcEstimateTotalCost
{
  TextBody:
  [*
    // ç”„兰鸽 Sep-24-2024 (created)
    value := this.RentInCost() + this.RentOutOfCost() + this.WerkToRentTransCost() + this.RentStorCost();
    this.EstimateTotalCost( value );
  *]
}
_Main/BL/Type_CCEngineLogisticsCostCell/Function_CalcEstimatedTotalCost.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CCEngineLogisticsCostCell/Function_CalcTotalCost.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_AllCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute AllCost
{
  #keys: '3[415136.0.1160164831][415136.0.1160164830][415136.0.1160164832]'
  Description: '总费用'
  ValueType: Real
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_CCLongTransCoat.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_CCLongTransCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CCLongTransCost
{
  #keys: '3[415136.0.1160164735][415136.0.1160164734][415136.0.1160164736]'
  Description: '长春长途运输费用'
  ValueType: Real
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_CCRentEnterCost.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_CCRentInCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CCRentInCost
{
  #keys: '3[415136.0.1160164743][415136.0.1160164742][415136.0.1160164744]'
  Description: '长春外租库入库费用'
  ValueType: Real
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_CCRentOutCost.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_CCRentOutOfCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CCRentOutOfCost
{
  #keys: '3[415136.0.1160164751][415136.0.1160164750][415136.0.1160164752]'
  Description: '长春外租库出库费用'
  ValueType: Real
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_CCRentQuantity.qbl
@@ -2,7 +2,7 @@
#parent: #root
Attribute CCRentQuantity
{
  #keys: '3[415136.0.993115853][415136.0.993115852][415136.0.993115854]'
  #keys: '3[415136.0.1160164759][415136.0.1160164758][415136.0.1160164760]'
  Description: '长春外租库数量'
  ValueType: Number
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_CCRentStorCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CCRentStorCost
{
  #keys: '3[415136.0.1160164772][415136.0.1160164771][415136.0.1160164773]'
  Description: '长春外租库仓储费用'
  ValueType: Real
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_CCRentStorageCost.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_CCShorTransCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CCShorTransCost
{
  #keys: '3[415136.0.1160164780][415136.0.1160164779][415136.0.1160164781]'
  Description: '长春短途运输费用'
  ValueType: Real
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_CCShortTransCost.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_DLRentEnterCost.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_DLRentInCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute DLRentInCost
{
  #keys: '3[415136.0.1160164788][415136.0.1160164787][415136.0.1160164789]'
  Description: '大连外租库入库费用'
  ValueType: Real
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_DLRentOutCost#0.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_DLRentOutOfCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute DLRentOutOfCost
{
  #keys: '3[415136.0.1160164796][415136.0.1160164795][415136.0.1160164797]'
  Description: '大连外租库出库费用'
  ValueType: Real
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_DLRentStorCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute DLRentStorCost
{
  #keys: '3[415136.0.1160164807][415136.0.1160164806][415136.0.1160164808]'
  Description: '大连外租库仓储费用'
  ValueType: Real
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_DLRentStorageCost#0.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_EstimateTotalCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute EstimateTotalCost
{
  #keys: '3[415136.0.1160164815][415136.0.1160164814][415136.0.1160164816]'
  Description: '预计总费用'
  ValueType: Real
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_EstimatedTotalCost.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_FactoryToDLRentTransCost.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_TotalCost.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_WerkToDLRentTransCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute WerkToDLRentTransCost
{
  #keys: '3[415136.0.1160164823][415136.0.1160164822][415136.0.1160164824]'
  Description: '厂内到大连外租库运输费用'
  ValueType: Real
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Function_CalcAllCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
Quintiq file version 2.0
#parent: #root
Function CalcAllCost
{
  Description: '计算总费用'
  TextBody:
  [*
    // ç”„兰鸽 Aug-12-2024 (created)
    value := this.EstimateTotalCost() * this.Coefficient();
    this.AllCost( value );
  *]
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Function_CalcEstimateTotalCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
Quintiq file version 2.0
#parent: #root
Function CalcEstimateTotalCost
{
  TextBody:
  [*
    // ç”„兰鸽 Aug-12-2024 (created)
    value := this.CCRentInCost() + this.CCRentOutOfCost() + this.CCLongTransCost() + this.CCShorTransCost() + this.CCRentStorCost()
    + this.DLRentInCost() + this.DLRentOutOfCost() + this.WerkToDLRentTransCost() + this.DLRentStorCost()
    this.EstimateTotalCost( value );
  *]
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Function_CalcEstimatedTotalCost.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CCEngineLogisticsCostCell0/Function_CalcTotalCost.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CCEngineLogisticsCostReport/Method_Generate.qbl
@@ -29,19 +29,19 @@
          
          sumcell    := selectobject( column, Cell, c, c.Row() = sumrow );
          if( isnull( sumcell ) ){
            sumcell  := sumrow.Cell( relnew, RentEnterCost         := 0
                                     , RentOutCost                 := 0
                                     , FactoryToRentTransCost      := 0
                                     , RentStorageCost             := 0 );
            sumcell  := sumrow.Cell( relnew, RentInCost            := 0
                                     , RentOutOfCost               := 0
                                     , WerkToRentTransCost         := 0
                                     , RentStorCost                := 0 );
            column.Cell( relinsert, sumcell );
          }
          
          showcell   := showrow.Cell( relnew, RentEnterCost := cell.RentEnterCost(), RentOutCost := cell.RentOutCost(), FactoryToRentTransCost := cell.FactoryToRentTransCost(), RentStorageCost := cell.RentStorageCost() );
          showcell   := showrow.Cell( relnew, RentInCost := cell.RentInCost(), RentOutOfCost := cell.RentOutOfCost(), WerkToRentTransCost := cell.WerkToRentTransCost(), RentStorCost := cell.RentStorCost() );
          column.Cell( relinsert, showcell );
          sumcell.RentEnterCost( cell.RentEnterCost() + sumcell.RentEnterCost() );
          sumcell.RentOutCost( cell.RentOutCost() + sumcell.RentOutCost() );
          sumcell.FactoryToRentTransCost( cell.FactoryToRentTransCost() + sumcell.FactoryToRentTransCost() );
          sumcell.RentStorageCost( cell.RentStorageCost() + sumcell.RentStorageCost() );
          sumcell.RentInCost( cell.RentInCost() + sumcell.RentInCost() );
          sumcell.RentOutOfCost( cell.RentOutOfCost() + sumcell.RentOutOfCost() );
          sumcell.WerkToRentTransCost( cell.WerkToRentTransCost() + sumcell.WerkToRentTransCost() );
          sumcell.RentStorCost( cell.RentStorCost() + sumcell.RentStorCost() );
        }
      }
    }
_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_Download.qbl
@@ -107,23 +107,23 @@
        }
        //外租库入库费用
        rententercostcellElement := xmlDOM.CreateElement( "cell" );
        rententercostcellElement.SetAttribute( "value", [String]c.RentEnterCost() );
        rententercostcellElement.SetAttribute( "value", [String]c.RentInCost() );
        columnelement.AppendChild( rententercostcellElement );
        //外租库出库费用
        rentoutcostcellElement := xmlDOM.CreateElement( "cell" );
        rentoutcostcellElement.SetAttribute( "value", [String]c.RentOutCost() );
        rentoutcostcellElement.SetAttribute( "value", [String]c.RentOutOfCost() );
        columnelement.AppendChild( rentoutcostcellElement );
        //厂内到外租库运输费用
        factorytorenttranscostcellElement := xmlDOM.CreateElement( "cell" );
        factorytorenttranscostcellElement.SetAttribute( "value", [String]c.FactoryToRentTransCost() );
        factorytorenttranscostcellElement.SetAttribute( "value", [String]c.WerkToRentTransCost() );
        columnelement.AppendChild( factorytorenttranscostcellElement );
        //外租库仓储费用
        rentstoragecostcellElement := xmlDOM.CreateElement( "cell" );
        rentstoragecostcellElement.SetAttribute( "value", [String]c.RentStorageCost() );
        rentstoragecostcellElement.SetAttribute( "value", [String]c.RentStorCost() );
        columnelement.AppendChild( rentstoragecostcellElement );
        //预计总费用
        estimatedtotalcostcellElement := xmlDOM.CreateElement( "cell" );
        estimatedtotalcostcellElement.SetAttribute( "value", [String]c.EstimatedTotalCost() );
        estimatedtotalcostcellElement.SetAttribute( "value", [String]c.EstimateTotalCost() );
        columnelement.AppendChild( estimatedtotalcostcellElement );
        //系数
        coefficientcellElement := xmlDOM.CreateElement( "cell" );
@@ -131,7 +131,7 @@
        columnelement.AppendChild( coefficientcellElement );
        //总费用
        totalcostcellElement := xmlDOM.CreateElement( "cell" );
        totalcostcellElement.SetAttribute( "value", [String]c.TotalCost() );
        totalcostcellElement.SetAttribute( "value", [String]c.AllCost() );
        columnelement.AppendChild( totalcostcellElement );
      }
      tableElement.AppendChild( columnelement );  
_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_GetDefaultCCUnit.qbl
@@ -5,7 +5,8 @@
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    return '长春工厂';
    //return '长春工厂';
    return 'VWED CC';
    //return 'Assembly Plant (France)';
  *]
}
_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_Import.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,81 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Import (
  MacroPlan owner,
  RecycleBin recycle,
  BinaryValue binaryValue,
  String filePath
)
{
  TextBody:
  [*
    // ç”„兰鸽 Sep-20-2024 (created)
    name                      := CCEngineLogisticsCostReport::GetDefaultName();
    source                    := GeneralExcelImportAndExportDataSource::Upload( recycle, binaryValue, OS::TempPath() + "template.xlsx" );
    source.ReadStructure();
    Transaction::Transaction().Propagate( attribute( GeneralExcelImportAndExportDataColumn, ColumnIndex ) );
    //清空导入之前的表
    owner.CCEngineLogisticsCostReport( relflush );
    cnv2 := StringToDate::StandardConverter();
    cnv2.SetCustomConversion();
    cnv2.CustomFormatString( "M2/D2/Y" );
    products                  := construct( Product_MPs );
    productcolumn             := selectobject( source, GeneralExcelImportAndExportDataTable.GeneralExcelImportAndExportDataColumn, column, column.ColumnIndex() = 0 );
    attricolumn               := selectobject( source, GeneralExcelImportAndExportDataTable.GeneralExcelImportAndExportDataColumn, column, column.ColumnIndex() = 1 );
    //生成新表的日期列
    table                     := owner.CCEngineLogisticsCostReport( relnew, ID := name, Name := name );
    showtable                 := owner.CCEngineLogisticsCostReport( relnew, ID := name + 'Show', Name := name, IsShow := true );
    table.GenerateColumn( owner );
    traverse( source, GeneralExcelImportAndExportDataTable.GeneralExcelImportAndExportDataRow, excelrow ){
      productcell             := selectobject( excelrow, GeneralExcelImportAndExportDataCell, excelcell, excelcell.GeneralExcelImportAndExportDataColumn() = productcolumn );
      //处理未被同步的产品
      if( not exists( products, Elements, product, product.ID() = productcell.Value() ) ){
        product               := selectobject( owner, Product_MP, product, product.ID() = productcell.Value() );
        products.Add( product );
        ccrow                 := table.GetRow( productcell.Value() );
        //获取相同的产品
        sameproductcells      := selectset( productcolumn, GeneralExcelImportAndExportDataCell, excelcell, excelcell.Value() = productcell.Value() );
        //从日期列开始处理
        traverse( excelrow, GeneralExcelImportAndExportDataCell, excelcell, excelcell.GeneralExcelImportAndExportDataColumn().ColumnIndex() > 1 ){
          excelcolumn         := excelcell.GeneralExcelImportAndExportDataColumn();
          column              := selectobject( table, Column, column, column.Name() = excelcolumn.Name() );
          cell                := selectobject( ccrow, Cell, cell, cell.Column() = column );
          traverse( sameproductcells, Elements.GeneralExcelImportAndExportDataRow, samerow ){
            attricell         := selectobject( samerow, GeneralExcelImportAndExportDataCell, attricell, attricell.GeneralExcelImportAndExportDataColumn() = attricolumn );
            if( not ( attricell.Value() = '预计总费用' or attricell.Value() = '总费用' ) ){
              valuecell       := selectobject( samerow, GeneralExcelImportAndExportDataCell, valuecell, valuecell.GeneralExcelImportAndExportDataColumn() = excelcolumn );
              if( attricell.Value() = '外租库入库费用' ){
                cell.RentInCost( [Number]valuecell.Value() );
              }else if( attricell.Value() = '外租库出库费用' ){
                cell.RentOutOfCost( [Number]valuecell.Value() );
              }else if( attricell.Value() = '厂内到外租库运输费用' ){
                cell.WerkToRentTransCost( [Number]valuecell.Value() );
              }else if( attricell.Value() = '外租库仓储费用' ){
                cell.RentStorCost( [Number]valuecell.Value() );
              }
    //          else if( attricell.Value() = '预计总费用' ){
    //            cell.EstimatedTotalCost( [Number]valuecell.Value() );
    //          }
              else if( attricell.Value() = '系数' ){
                cell.Coefficient( [Number]valuecell.Value() );
              }
    //          else if( attricell.Value() = '总费用' ){
    //            cell.TotalCost( [Number]valuecell.Value() );
    //          }
            }
          }
        }
      }
    }
    rows := selectsortedset( table, Row, row, row.Name() );
    i    := 0;
    traverse( rows, Elements, e ){
      e.RowNr( i );
      i := i + 1;
    }
    //
    showtable.Generate( owner.CCEngineLogisticsCostSearch(), products );
  *]
}
_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_Initialize.qbl
@@ -47,7 +47,7 @@
                  //入库量/包装容量*入库单价,入库量等于长春产量
                  quantity          := ceil( [Number]cell.Value() / enginecost.PackagingCapacity() ) * enginecost.WarehousingPrice();
                  column            := selectobject( table, Column, column, column.Name() = cell.FinancialProductionColumn().Name() );
                  //外租库入库费用
                  //外租库入库费用
                  ccrow.SetRentEnterCost( column, quantity );
                }
              }
@@ -86,7 +86,7 @@
        }
      }
    }
    //厂内到外租库运输费用:,在 trip plan里找到长春装配线边库到长春外租库的运输数量,,,用公式计算得出结果,月度进行汇总
    //厂内到外租库运输费用:,在 trip plan里找到长春装配线边库到长春外租库的运输数量,,,用公式计算得出结果,月度进行汇总CC-MOMO到长春外租库
    traverse( owner, Unit.Lane.LaneLeg, laneleg ){
      //起始库存点是否是长春装配线边库
      originsp               := selectobject( owner, StockingPoint_MP, sp, sp.ID() = laneleg.OriginStockingPointID() );
_Main/BL/Type_CCEngineLogisticsCostReport0/Method_Generate.qbl
@@ -29,37 +29,37 @@
          
          sumcell    := selectobject( column, Cell, c, c.Row() = sumrow );
          if( isnull( sumcell ) ){
            sumcell  := sumrow.Cell( relnew, CCRentEnterCost         := 0
                                     , CCRentOutCost                 := 0
                                     , CCLongTransCoat               := 0
                                     , CCShortTransCost              := 0
                                     , CCRentStorageCost             := 0
                                     , DLRentEnterCost               := 0
                                     , DLRentOutCost                 := 0
                                     , FactoryToDLRentTransCost      := 0
                                     , DLRentStorageCost             := 0 );
            sumcell  := sumrow.Cell( relnew, CCRentInCost            := 0
                                     , CCRentOutOfCost               := 0
                                     , CCLongTransCost               := 0
                                     , CCShorTransCost               := 0
                                     , CCRentStorCost                := 0
                                     , DLRentInCost                  := 0
                                     , DLRentOutOfCost               := 0
                                     , WerkToDLRentTransCost         := 0
                                     , DLRentStorCost                := 0 );
            column.Cell( relinsert, sumcell );
          }
          
          showcell   := showrow.Cell( relnew, CCRentEnterCost        := cell.CCRentEnterCost()
                                      , CCRentOutCost                := cell.CCRentOutCost()
                                      , CCLongTransCoat              := cell.CCLongTransCoat()
                                      , CCShortTransCost             := cell.CCShortTransCost()
                                      , CCRentStorageCost            := cell.CCRentStorageCost()
                                      , DLRentEnterCost              := cell.DLRentEnterCost()
                                      , DLRentOutCost                := cell.DLRentOutCost()
                                      , FactoryToDLRentTransCost     := cell.FactoryToDLRentTransCost()
                                      , DLRentStorageCost            := cell.DLRentStorageCost() );
          showcell   := showrow.Cell( relnew, CCRentInCost           := cell.CCRentInCost()
                                      , CCRentOutOfCost              := cell.CCRentOutOfCost()
                                      , CCLongTransCost              := cell.CCLongTransCost()
                                      , CCShorTransCost              := cell.CCShorTransCost()
                                      , CCRentStorCost               := cell.CCRentStorCost()
                                      , DLRentInCost                 := cell.DLRentInCost()
                                      , DLRentOutOfCost              := cell.DLRentOutOfCost()
                                      , WerkToDLRentTransCost        := cell.WerkToDLRentTransCost()
                                      , DLRentStorCost            := cell.DLRentStorCost() );
          column.Cell( relinsert, showcell );
          sumcell.CCRentEnterCost( cell.CCRentEnterCost() + sumcell.CCRentEnterCost() );
          sumcell.CCRentOutCost( cell.CCRentOutCost() + sumcell.CCRentOutCost() );
          sumcell.CCLongTransCoat( cell.CCLongTransCoat() + sumcell.CCLongTransCoat() );
          sumcell.CCShortTransCost( cell.CCShortTransCost() + sumcell.CCShortTransCost() );
          sumcell.CCRentStorageCost( cell.CCRentStorageCost() + sumcell.CCRentStorageCost() );
          sumcell.DLRentEnterCost( cell.DLRentEnterCost() + sumcell.DLRentEnterCost() );
          sumcell.DLRentOutCost( cell.DLRentOutCost() + sumcell.DLRentOutCost() );
          sumcell.FactoryToDLRentTransCost( cell.FactoryToDLRentTransCost() + sumcell.FactoryToDLRentTransCost() );
          sumcell.DLRentStorageCost( cell.DLRentStorageCost() + sumcell.DLRentStorageCost() );
          sumcell.CCRentOutOfCost( cell.CCRentOutOfCost() + sumcell.CCRentOutOfCost() );
          sumcell.CCRentOutOfCost( cell.CCRentOutOfCost() + sumcell.CCRentOutOfCost() );
          sumcell.CCLongTransCost( cell.CCLongTransCost() + sumcell.CCLongTransCost() );
          sumcell.CCShorTransCost( cell.CCShorTransCost() + sumcell.CCShorTransCost() );
          sumcell.CCRentStorCost( cell.CCRentStorCost() + sumcell.CCRentStorCost() );
          sumcell.DLRentInCost( cell.DLRentInCost() + sumcell.DLRentInCost() );
          sumcell.DLRentOutOfCost( cell.DLRentOutOfCost() + sumcell.DLRentOutOfCost() );
          sumcell.WerkToDLRentTransCost( cell.WerkToDLRentTransCost() + sumcell.WerkToDLRentTransCost() );
          sumcell.DLRentStorCost( cell.DLRentStorCost() + sumcell.DLRentStorCost() );
        }
      }
    }
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_Download.qbl
@@ -147,43 +147,43 @@
        }
        //长春外租库入库费用
        ccrententercostcellElement := xmlDOM.CreateElement( "cell" );
        ccrententercostcellElement.SetAttribute( "value", [String]c.CCRentEnterCost() );
        ccrententercostcellElement.SetAttribute( "value", [String]c.CCRentInCost() );
        columnelement.AppendChild( ccrententercostcellElement );
        //长春外租库出库费用
        ccrentoutcostcellElement := xmlDOM.CreateElement( "cell" );
        ccrentoutcostcellElement.SetAttribute( "value", [String]c.CCRentOutCost() );
        ccrentoutcostcellElement.SetAttribute( "value", [String]c.CCRentOutOfCost() );
        columnelement.AppendChild( ccrentoutcostcellElement );
        //长春长途运输费用
        cclongtranscostcellElement := xmlDOM.CreateElement( "cell" );
        cclongtranscostcellElement.SetAttribute( "value", [String]c.CCLongTransCoat() );
        cclongtranscostcellElement.SetAttribute( "value", [String]c.CCLongTransCost() );
        columnelement.AppendChild( cclongtranscostcellElement );
        //长春短途运输费用
        ccshorttranscostcellElement := xmlDOM.CreateElement( "cell" );
        ccshorttranscostcellElement.SetAttribute( "value", [String]c.CCShortTransCost() );
        ccshorttranscostcellElement.SetAttribute( "value", [String]c.CCShorTransCost() );
        columnelement.AppendChild( ccshorttranscostcellElement );
        //长春外租库仓储费用
        ccrentstoragecostcellElement := xmlDOM.CreateElement( "cell" );
        ccrentstoragecostcellElement.SetAttribute( "value", [String]c.CCRentStorageCost() );
        ccrentstoragecostcellElement.SetAttribute( "value", [String]c.CCRentStorCost() );
        columnelement.AppendChild( ccrentstoragecostcellElement );
        //大连外租库入库费用
        dlrententercostcellElement := xmlDOM.CreateElement( "cell" );
        dlrententercostcellElement.SetAttribute( "value", [String]c.DLRentEnterCost() );
        dlrententercostcellElement.SetAttribute( "value", [String]c.DLRentInCost() );
        columnelement.AppendChild( dlrententercostcellElement );
        //大连外租库出库费用
        dlrentoutcostcellElement := xmlDOM.CreateElement( "cell" );
        dlrentoutcostcellElement.SetAttribute( "value", [String]c.DLRentOutCost() );
        dlrentoutcostcellElement.SetAttribute( "value", [String]c.DLRentOutOfCost() );
        columnelement.AppendChild( dlrentoutcostcellElement );
        //厂内到外租库运输费用
        factorytorenttranscostcellElement := xmlDOM.CreateElement( "cell" );
        factorytorenttranscostcellElement.SetAttribute( "value", [String]c.FactoryToDLRentTransCost() );
        factorytorenttranscostcellElement.SetAttribute( "value", [String]c.WerkToDLRentTransCost() );
        columnelement.AppendChild( factorytorenttranscostcellElement );
        //大连外租库仓储费用
        dlrentstoragecostcellElement := xmlDOM.CreateElement( "cell" );
        dlrentstoragecostcellElement.SetAttribute( "value", [String]c.DLRentStorageCost() );
        dlrentstoragecostcellElement.SetAttribute( "value", [String]c.DLRentStorCost() );
        columnelement.AppendChild( dlrentstoragecostcellElement );
        //预计总费用
        estimatedtotalcostcellElement := xmlDOM.CreateElement( "cell" );
        estimatedtotalcostcellElement.SetAttribute( "value", [String]c.EstimatedTotalCost() );
        estimatedtotalcostcellElement.SetAttribute( "value", [String]c.EstimateTotalCost() );
        columnelement.AppendChild( estimatedtotalcostcellElement );
        //系数
        coefficientcellElement := xmlDOM.CreateElement( "cell" );
@@ -191,7 +191,7 @@
        columnelement.AppendChild( coefficientcellElement );
        //总费用
        totalcostcellElement := xmlDOM.CreateElement( "cell" );
        totalcostcellElement.SetAttribute( "value", [String]c.TotalCost() );
        totalcostcellElement.SetAttribute( "value", [String]c.AllCost() );
        columnelement.AppendChild( totalcostcellElement );
      }
      tableElement.AppendChild( columnelement );  
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_GetDefaultCCUnit.qbl
@@ -5,7 +5,8 @@
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    return '长春工厂';
    //return '长春工厂';
    return 'VWED CC';
    //return 'Assembly Plant (France)';
  *]
}
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_GetDefaultDLUnit.qbl
@@ -5,7 +5,8 @@
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    return '大连工厂';
    //return '大连工厂';
    return 'VWED DL';
    //return 'Assembly Plant (France)';
  *]
}
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_Import.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,91 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Import (
  MacroPlan owner,
  RecycleBin recycle,
  BinaryValue binaryValue,
  String filePath
)
{
  TextBody:
  [*
    // ç”„兰鸽 Sep-20-2024 (created)
    name                      := CCEngineLogisticsCostReport::GetDefaultName();
    source                    := GeneralExcelImportAndExportDataSource::Upload( recycle, binaryValue, OS::TempPath() + "template.xlsx" );
    source.ReadStructure();
    Transaction::Transaction().Propagate( attribute( GeneralExcelImportAndExportDataColumn, ColumnIndex ) );
    //清空导入之前的表
    owner.DLEngineLogisticsCostReport( relflush );
    cnv2 := StringToDate::StandardConverter();
    cnv2.SetCustomConversion();
    cnv2.CustomFormatString( "M2/D2/Y" );
    products                  := construct( Product_MPs );
    productcolumn             := selectobject( source, GeneralExcelImportAndExportDataTable.GeneralExcelImportAndExportDataColumn, column, column.ColumnIndex() = 0 );
    attricolumn               := selectobject( source, GeneralExcelImportAndExportDataTable.GeneralExcelImportAndExportDataColumn, column, column.ColumnIndex() = 1 );
    //生成新表的日期列
    table                     := owner.DLEngineLogisticsCostReport( relnew, ID := name, Name := name );
    showtable                 := owner.DLEngineLogisticsCostReport( relnew, ID := name + 'Show', Name := name, IsShow := true );
    table.GenerateColumn( owner );
    traverse( source, GeneralExcelImportAndExportDataTable.GeneralExcelImportAndExportDataRow, excelrow ){
      productcell             := selectobject( excelrow, GeneralExcelImportAndExportDataCell, excelcell, excelcell.GeneralExcelImportAndExportDataColumn() = productcolumn );
      //处理未被同步的产品
      if( not exists( products, Elements, product, product.ID() = productcell.Value() ) ){
        product               := selectobject( owner, Product_MP, product, product.ID() = productcell.Value() );
        products.Add( product );
        ccrow                 := table.GetRow( productcell.Value() );
        //获取相同的产品
        sameproductcells      := selectset( productcolumn, GeneralExcelImportAndExportDataCell, excelcell, excelcell.Value() = productcell.Value() );
        //从日期列开始处理
        traverse( excelrow, GeneralExcelImportAndExportDataCell, excelcell, excelcell.GeneralExcelImportAndExportDataColumn().ColumnIndex() > 1 ){
          excelcolumn         := excelcell.GeneralExcelImportAndExportDataColumn();
          column              := selectobject( table, Column, column, column.Name() = excelcolumn.Name() );
          cell                := selectobject( ccrow, Cell, cell, cell.Column() = column );
          traverse( sameproductcells, Elements.GeneralExcelImportAndExportDataRow, samerow ){
            attricell         := selectobject( samerow, GeneralExcelImportAndExportDataCell, attricell, attricell.GeneralExcelImportAndExportDataColumn() = attricolumn );
            if( not ( attricell.Value() = '预计总费用' or attricell.Value() = '总费用' ) ){
              valuecell       := selectobject( samerow, GeneralExcelImportAndExportDataCell, valuecell, valuecell.GeneralExcelImportAndExportDataColumn() = excelcolumn );
              if( attricell.Value() = '长春外租库入库费用' ){
                cell.CCRentInCost( [Number]valuecell.Value() );
              }else if( attricell.Value() = '长春外租库出库费用' ){
                cell.CCRentOutOfCost( [Number]valuecell.Value() );
              }else if( attricell.Value() = '长春长途运输费用' ){
                cell.CCLongTransCost( [Number]valuecell.Value() );
              }else if( attricell.Value() = '长春短途运输费用' ){
                cell.CCShorTransCost( [Number]valuecell.Value() );
              }else if( attricell.Value() = '长春外租库仓储费用' ){
                cell.CCRentStorCost( [Number]valuecell.Value() );
              }else if( attricell.Value() = '大连外租库入库费用' ){
                cell.DLRentInCost( [Number]valuecell.Value() );
              }else if( attricell.Value() = '大连外租库出库费用' ){
                cell.DLRentOutOfCost( [Number]valuecell.Value() );
              }else if( attricell.Value() = '厂内到外租库运输费用' ){
                cell.WerkToDLRentTransCost( [Number]valuecell.Value() );
              }else if( attricell.Value() = '大连外租库仓储费用' ){
                cell.DLRentStorCost( [Number]valuecell.Value() );
              }
    //          else if( attricell.Value() = '预计总费用' ){
    //            cell.EstimatedTotalCost( [Number]valuecell.Value() );
    //          }
              else if( attricell.Value() = '系数' ){
                cell.Coefficient( [Number]valuecell.Value() );
              }
    //          else if( attricell.Value() = '总费用' ){
    //            cell.TotalCost( [Number]valuecell.Value() );
    //          }
            }
          }
        }
      }
    }
    rows := selectsortedset( table, Row, row, row.Name() );
    i    := 0;
    traverse( rows, Elements, e ){
      e.RowNr( i );
      i := i + 1;
    }
    //
    showtable.Generate( owner.DLEngineLogisticsCostSearch(), products );
  *]
}
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_Initialize.qbl
@@ -29,7 +29,7 @@
    
    table.GenerateColumn( owner );
    //发往长春的销量需要在trip plan里面找到起始库存点为大连装配线边库,目的地为长春外租库的产品 ç®—出发往长春的销量后,在发动机成本参数表里找到对应的包装容量和长春入库单价,用公式计算,月度进行汇总
    //在 trip plan里找到大连装配线边库到大连外租库的运输数量
    //在 trip plan里找到大连装配线边库到大连外租库的运输数量//大连厂内库到外租库
    traverse( owner, Unit.Lane.LaneLeg, laneleg ){
      //起始库存点是否是大连装配线边库
      originsp               := selectobject( owner, StockingPoint_MP, sp, sp.ID() = laneleg.OriginStockingPointID() );
@@ -67,8 +67,8 @@
                  entercost  := ceil( quantity / enginecost.PackagingCapacity() ) * enginecost.WarehousingPrice();
                  //长春外租库出库费用: å‡ºåº“量/包装容量*出库单价
                  outcost    := ceil( quantity / enginecost.PackagingCapacity() ) * enginecost.WarehousingPrice();
                  cell.CCRentEnterCost( cell.CCRentEnterCost() + entercost );
                  cell.CCRentOutCost( cell.CCRentOutCost() + outcost );
                  cell.CCRentInCost( cell.CCRentInCost() + entercost );
                  cell.CCRentOutOfCost( cell.CCRentOutOfCost() + outcost );
                }
              }
              if( isdlrent ){//目的地是大连外租库
@@ -85,7 +85,7 @@
                  cell       := selectobject( row, Cell, cell, cell.Column() = column );
                  //运输数量/包装容量/装载容量*运输单价
                  cost       := ceil( ceil( quantity / enginecost.PackagingCapacity() ) / transcost.LoadingCapacity() ) * transcost.TransportPrice();//四舍五入
                  cell.FactoryToDLRentTransCost( cell.FactoryToDLRentTransCost() + cost );
                  cell.WerkToDLRentTransCost( cell.WerkToDLRentTransCost() + cost );
                }
              }
            }
@@ -93,7 +93,7 @@
        }
      }
    }
    //大连外租库入库费用:入库量/包装容量*入库单价,入库量等于大连工厂该产品产量减去发往长春的数量
    //大连外租库入库费用:入库量/包装容量*入库单价,入库量等于大连工厂该产品产量减去发往长春的数量-newSupply
    traverse( owner, FinancialProductionSource, source, not source.IsImport() ){//财务产量报表非导入
      traverse( source, FinancialProductionReport, report, not report.IsShow() ){//财务产量报表不显示
        traverse( report, FinancialProductionRow, row, row.Unit() = dlunit and exists( row, FinancialProductionCell, cell, cell.Value() <> '0' and cell.FinancialProductionColumn().IsDay() ) ){//财务产量报表里的大连产量, ä¸ä¸º0
@@ -121,7 +121,7 @@
        }
      }
    }
    //大连外租库出库费用:出库量/包装容量*出库单价,出库量等于大连工厂该产品销量减去发往长春的数量
    //大连外租库出库费用:出库量/包装容量*出库单价,出库量等于大连工厂该产品销量减去发往长春的数量-newSupply, å¤§è¿žåŽ‚å†…åº“ï¼Œå¤§è¿žå¤–ç§Ÿåº“
    traverse( owner, FinancialSalesSource, source, not source.IsImport() ){//财务销量报表非导入
      traverse( source, FinancialSalesReport, report, not report.IsShow() ){//财务销量报表不显示
        traverse( report, FinancialSalesRow, row, row.Unit() = ccunit and exists( row, FinancialSalesCell, cell, cell.Value() <> '0' and cell.FinancialSalesColumn().IsDay() ) ){//财务销量报表里的大连产量, ä¸ä¸º0
@@ -183,7 +183,7 @@
                 
                cost           := ceil( ceil( [Number]tpcell.Value() / enginecost.PackagingCapacity() ) / transcost.LoadingCapacity() ) * transcost.TransportPrice();
                cell           := selectobject( row, Cell, cell, cell.Column() = column );
                cell.CCLongTransCoat( cell.CCLongTransCoat() + cost );
                cell.CCLongTransCost( cell.CCLongTransCost() + cost );
              }
            }
          }
@@ -217,7 +217,7 @@
          //      info( '-------------------------', column.Name() );
                cost           := ceil( [Number]psdip.Quantity() / enginecost.PackagingCapacity() ) * enginecost.WarehousingPrice();
                cell           := selectobject( row, Cell, cell, cell.Column() = column );
                cell.CCShortTransCost( cell.CCShortTransCost() + cost );
                cell.CCShorTransCost( cell.CCShorTransCost() + cost );
              }
            }
          }
@@ -255,7 +255,7 @@
                                                     and engine.Factory() = ccunit );
                   if( not isnull( enginecost ) ){
                     cost        := ceil( [Number]pispip.NewSupplyQuantity() / enginecost.PackagingCapacity() ) * enginecost.StoragePrice();//四舍五入
                     cell.CCRentStorageCost( cell.CCRentStorageCost() + cost );
                     cell.CCRentStorCost( cell.CCRentStorCost() + cost );
                   }
                } else {
                  //在发动机成本参数表找到对应的包装容量
@@ -263,7 +263,7 @@
                                                     and engine.Factory() = dlunit  );
                   if( not isnull( enginecost ) ){
                     cost        := ceil( [Number]pispip.NewSupplyQuantity() / enginecost.PackagingCapacity() ) * enginecost.StoragePrice();//四舍五入
                     cell.DLRentStorageCost( cell.DLRentStorageCost() + cost );;
                     cell.DLRentStorCost( cell.DLRentStorCost() + cost );
                   }
                }
              }   
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_InitializeNew.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,280 @@
Quintiq file version 2.0
#parent: #root
StaticMethod InitializeNew (
  MacroPlan owner
)
{
  TextBody:
  [*
    // ç”„兰鸽 Aug-12-2024 (created)
    owner.DLEngineLogisticsCostReport( relflush );
    produtparent              := DLEngineLogisticsCostReport::GetDefaultProductParent();
    name                      := DLEngineLogisticsCostReport::GetDefaultName();
    allunit                   := DLEngineLogisticsCostReport::GetDefaultAllUnit();
    ccunit                    := DLEngineLogisticsCostReport::GetDefaultCCUnit();
    dlunit                    := DLEngineLogisticsCostReport::GetDefaultDLUnit();
    //dlline                    := DLEngineLogisticsCostReport::GetStockingPointDLLine();
    ccrent                    := DLEngineLogisticsCostReport::GetStockingPointCCRent();
    dlrent                    := DLEngineLogisticsCostReport::GetStockingPointCCRent();
    startofplanning           := owner.StartOfPlanning().Date();
    //startofyear               := startofplanning.StartOfYear();
    startofnextyear           := startofplanning.StartOfNextYear();
    table                     := owner.DLEngineLogisticsCostReport( relnew, ID := name, Name := name );
    showtable                 := owner.DLEngineLogisticsCostReport( relnew, ID := name + 'Show', Name := name, IsShow := true );
    search                    := owner.DLEngineLogisticsCostSearch( relnew, Generation := allunit, MqbMlb := allunit, Power := allunit );
    products                  := construct( Product_MPs );
    table.GenerateColumn( owner );
    //在 trip plan里找到大连装配线边库到大连外租库的运输数量//大连厂内库到外租库
    traverse( owner, Unit.Lane.LaneLeg, laneleg ){
      //起始库存点是否是大连装配线边库
    //  originsp               := selectobject( owner, StockingPoint_MP, sp, sp.ID() = laneleg.OriginStockingPointID() );
      isdlspline             := laneleg.OriginStockingPointID().EndsWith( '厂内库' ) and ( laneleg.OriginStockingPointID().StartsWith( '大连' ) or laneleg.OriginStockingPointID().StartsWith( 'DL' ) );//table.IsInUnit( originsp, dlline );
      //目的地是否是大连外租库
    //  destisp                := selectobject( owner, StockingPoint_MP, sp, sp.ID() = laneleg.DestinationStockingPointID() );
      isdlrent               := laneleg.DestinationStockingPointID().EndsWith( '外租库' ) and ( laneleg.DestinationStockingPointID().StartsWith( '大连' ) or laneleg.DestinationStockingPointID().StartsWith( 'DL' ) );//table.IsInUnit( destisp, dlrent );
      if( isdlspline and isdlrent ){
        traverse( laneleg, Trip, trip, trip.Departure().Date() < startofnextyear ){//由于需要考虑产品运输lead time,每个月的汇总数据需要推迟两天进行计算
          periodtime         := trip.Departure().StartOfMonth().Date();
          periodname         := periodtime.Format( "M2/D2/Y" );
          column             := selectobject( table, Column, column, column.Name() = periodname and column.StartDate() = periodtime );
          enginecosts        := selectset( owner, LogisticsCostEngine, engine, engine.StartDate() <= trip.Departure().Date() and engine.EndDate() >= trip.Departure().Date() );
          transcosts         := selectset( owner, LogisticsCostTransport, trans, trans.StartDate() <= trip.Departure().Date() and trans.EndDate() >= trip.Departure().Date() );
          if( not isnull( enginecosts ) and enginecosts.Size() > 0 and not isnull( transcosts ) and transcosts.Size() > 0 ){
            traverse( trip, ProductInTrip, pit, pit.Quantity() <> 0 and not isnull( column ) and exists( pit.Product_MP().GetAllParent(), Elements, e, e.ID() = produtparent ) ){//查询产品类型是发动机
              quantity       := [Number]pit.Quantity();
              row            := table.GetRow( pit.ProductID() );
              product        := pit.Product_MP();
              productparents := product.GetAllParent();
              //在发动机成本参数表找到对应的包装容量
              enginecost     := selectobject( enginecosts, Elements, engine, engine.Generation().ToLower() = product.Generation().ToLower()
                                                   and engine.MLB_MQB() = product.MQBMLB()
                                                   and engine.Factory() = dlunit  );
              //在运输成本参数表里找到发动机对应运输单价和装载容量
              transcost      := selectobject( transcosts, Elements, trans, trans.Origin() = laneleg.OriginStockingPointID()
                                                  and trans.Destination() = laneleg.DestinationStockingPointID()
                                                  and exists( productparents, Elements, e, ifexpr( trans.Product().FindString( '发动机', 0 ) >= 0, e.ID() = produtparent,  e.ID() = trans.Product() ) ) );
              if( not isnull( enginecost ) and not isnull( transcost ) ){
                products.Add( product );
                cell         := selectobject( row, Cell, cell, cell.Column() = column );
                //运输数量/包装容量/装载容量*运输单价
                cost         := ceil( ceil( quantity / enginecost.PackagingCapacity() ) / transcost.LoadingCapacity() ) * transcost.TransportPrice();//四舍五入
                cell.WerkToDLRentTransCost( cell.WerkToDLRentTransCost() + cost );
              }
    //          if( isccrent ){//目的地是长春外租库
    //            //在发动机成本参数表找到对应的包装容量
    //            enginecost   := selectobject( enginecosts, Elements, engine, engine.Generation().ToLower() = product.Generation().ToLower()
    //                                               and engine.MLB_MQB() = product.MQBMLB()
    //                                               and engine.Factory() = ccunit );
    //            if( not isnull( enginecost ) ){
    //              products.Add( product );
    //              cell       := selectobject( row, Cell, cell, cell.Column() = column );
    //              cell.CCRentQuantity( cell.CCRentQuantity() + quantity );
    //              //长春外租库入库费用:入库量/包装容量*入库单价
    //              entercost  := ceil( quantity / enginecost.PackagingCapacity() ) * enginecost.WarehousingPrice();
    //              //长春外租库出库费用: å‡ºåº“量/包装容量*出库单价
    //              outcost    := ceil( quantity / enginecost.PackagingCapacity() ) * enginecost.WarehousingPrice();
    //              cell.CCRentEnterCost( cell.CCRentEnterCost() + entercost );
    //              cell.CCRentOutCost( cell.CCRentOutCost() + outcost );
    //            }
    //          }
            }
          }
        }
      }
    }
    //大连外租库入库费用:入库量/包装容量*入库单价,入库量等于大连工厂该产品产量减去发往长春的数量-newSupply
    traverse( owner, FinancialProductionSource, source, not source.IsImport() ){//财务产量报表非导入
      traverse( source, FinancialProductionReport, report, not report.IsShow() ){//财务产量报表不显示
        traverse( report, FinancialProductionRow, row, row.Unit() = dlunit and exists( row, FinancialProductionCell, cell, cell.Value() <> '0' and cell.FinancialProductionColumn().IsDay() ) ){//财务产量报表里的大连产量, ä¸ä¸º0
          product            := row.Product_MP();
          productparents     := product.GetAllParent();
          if( exists( productparents, Elements, e, e.ID() = produtparent ) ){//查询产品类型是发动机
            //查询对应的发动机成本
            enginecosts      := selectset( owner, LogisticsCostEngine, engine, engine.Generation().ToLower() = product.Generation().ToLower()
                                                 and engine.MLB_MQB() = product.MQBMLB()
                                                 and engine.Factory() = dlunit );
            if( not isnull( enginecosts ) and enginecosts.Size() > 0 ){
              products.Add( product );
              ccrow          := table.GetRow( row.Name() );
              traverse( row, FinancialProductionCell, cell, cell.Value() <> '0' and cell.FinancialProductionColumn().IsDay() ){
                cellcolumn   := cell.FinancialProductionColumn();
                enginecost   := selectobject( enginecosts, Elements, engine, engine.StartDate() <= cellcolumn.Period() and engine.EndDate() >= cellcolumn.Period() );
                if( not isnull( enginecost ) ){
                  column     := selectobject( table, Column, column, column.Name() = cell.FinancialProductionColumn().Name() );
                  //大连外租库入库费用
                  ccrow.SetDLRentEnterCost( column, enginecost, cell );
                }
              }
            }
          }
        }
      }
    }
    //大连外租库出库费用:出库量/包装容量*出库单价,出库量等于大连工厂该产品销量减去发往长春的数量-newSupply, å¤§è¿žåŽ‚å†…åº“ï¼Œå¤§è¿žå¤–ç§Ÿåº“
    traverse( owner, FinancialSalesSource, source, not source.IsImport() ){//财务销量报表非导入
      traverse( source, FinancialSalesReport, report, not report.IsShow() ){//财务销量报表不显示
        traverse( report, FinancialSalesRow, row, row.Unit() = ccunit and exists( row, FinancialSalesCell, cell, cell.Value() <> '0' and cell.FinancialSalesColumn().IsDay() ) ){//财务销量报表里的大连产量, ä¸ä¸º0
          product            := row.Product_MP();
          productparents     := product.GetAllParent();
          if( exists( productparents, Elements, e, e.ID() = produtparent ) ){//查询产品类型是发动机
            //查询对应的发动机成本
            enginecosts      := selectset( owner, LogisticsCostEngine, engine, engine.Generation().ToLower() = product.Generation().ToLower()
                                                 and engine.MLB_MQB() = product.MQBMLB()
                                                 and engine.Factory() = dlunit );
            if( not isnull( enginecosts ) and enginecosts.Size() > 0 ){
              products.Add( product );
              ccrow          := table.GetRow( row.Name() );
              traverse( row, FinancialSalesCell, cell, cell.Value() <> '0' and cell.FinancialSalesColumn().IsDay() ){
                cellcolumn   := cell.FinancialSalesColumn();
                enginecost   := selectobject( enginecosts, Elements, engine, engine.StartDate() <= cellcolumn.Period() and engine.EndDate() >= cellcolumn.Period() );
                if(  not isnull( enginecost ) ){
                  column     := selectobject( table, Column, column, column.Name() = cell.FinancialSalesColumn().Name() );
                  //大连外租库出库费用
                  ccrow.SetDLRentOutCost( column, enginecost, cell );
                }
              }
            }
          }
        }
      }
    }
    //长春长途运输费用:调拨数量/包装容量/装载容量*运输单价,调拨计划里找到该产品从DL到CC的调拨数量,即起始地大连装配线边库,目的地为长春外租库对应的运输数量,在发动机成本参数表找到对应的包装容量,在运输成本参数表里找到发动机对应运输单价和装载容量,用公式计算得出结果,月度进行汇总
    traverse( owner, TransferPlanRow, tprow ){
      product                 := selectobject( owner, Product_MP, product, product.ID() = tprow.ProductID() );
      productparents          := product.GetAllParent();
      if( exists( productparents, Elements, e, e.ID() = produtparent ) ){//查询产品类型是发动机
        //起始库存点是否是大连
        originsp               := selectobject( owner, StockingPoint_MP, sp, sp.ID() = tprow.SourceStockpoingPointID() );
        isdl                   := table.IsInUnit( originsp, dlunit );
        //目的地库存点是否是长春
        destisp                := selectobject( owner, StockingPoint_MP, sp, sp.ID() = tprow.TargetStockpoingPointID() );
        iscc                   := table.IsInUnit( destisp, ccunit );
        if( isdl and iscc ){
          //查询对应的发动机成本
          enginecosts          := selectset( owner, LogisticsCostEngine, engine, engine.Generation().ToLower() = product.Generation().ToLower()
                                                 and engine.MLB_MQB() = product.MQBMLB()
                                                 and engine.Factory() = ccunit );
          //在运输成本参数表里找到发动机对应运输单价和装载容量
          transcosts           := selectset( owner, LogisticsCostTransport, trans, trans.Origin() = tprow.SourceStockpoingPointID()
                                                  and trans.Destination() = tprow.TargetStockpoingPointID()
                                                  and exists( productparents, Elements, e, ifexpr( trans.Product().FindString( '发动机', 0 ) >= 0, e.ID() = produtparent,  e.ID() = trans.Product() ) ) );
          if( not isnull( enginecosts ) and enginecosts.Size() > 0 and not isnull( transcosts ) and transcosts.Size() > 0 ){
            row                := table.GetRow( product.ID() );
            products.Add( product );
            traverse( tprow,TransferPlanCell, tpcell, tpcell.TransferPlanColumn().ColumnDate() <> Date::MinDate() and [Number]tpcell.Value() > 0){
              tpcolumndate     := tpcell.TransferPlanColumn().ColumnDate();
              enginecost       := selectobject( enginecosts, Elements, engine, engine.StartDate() <= tpcolumndate and engine.EndDate() >= tpcolumndate );
              transcost        := selectobject( transcosts, Elements, trans, trans.StartDate() <= tpcolumndate and trans.EndDate() >= tpcolumndate );
              if( not isnull( enginecost ) and not isnull( transcost ) ){
                periodtime     := tpcolumndate.StartOfMonth();
                periodname     := periodtime.Format( "M2/D2/Y" );
                column         := selectobject( table, Column, column, column.Name() = periodname and column.StartDate() = periodtime );
                cost           := ceil( ceil( [Number]tpcell.Value() / enginecost.PackagingCapacity() ) / transcost.LoadingCapacity() ) * transcost.TransportPrice();
                cell           := selectobject( row, Cell, cell, cell.Column() = column );
                cell.CCLongTransCost( cell.CCLongTransCost() + cost );
              }
            }
          }
        }
      }
    }
    //长春短途运输费用:客户需求数量/包装容量/装载容量*运输单价,客户需求数量取自forecast里sales segment为长春的数量汇总,再用公式计算,月度进行汇总(取客户需求数量换算成车次)
    traverse( owner, SalesDemand.astype( Forecast ), forecast, forecast.Quantity() > 0 and not isnull( forecast.SalesSegment_MP() ) and forecast.StartDate() < startofnextyear ){
      salessegment            := forecast.SalesSegment_MP();
      parentsalessegments     := salessegment.GetAllParent();
      //是否属于长春
      iscc                    := salessegment.Name() = ccunit or exists( parentsalessegments, Elements, psalessegment, psalessegment.Name() = ccunit );
      if( iscc ){
        product               := forecast.Product_MP();
        productparents        := product.GetAllParent();
        if( exists( productparents, Elements, e, e.ID() = produtparent ) ){//查询产品类型是发动机
          //查询对应的发动机成本
          enginecosts         := selectset( owner, LogisticsCostEngine, engine, engine.Generation().ToLower() = product.Generation().ToLower()
                                                 and engine.MLB_MQB() = product.MQBMLB()
                                                 and engine.Factory() = ccunit );
          if( not isnull( enginecosts ) and enginecosts.Size() > 0 ){
            products.Add( forecast.Product_MP() );
            row               := table.GetRow( forecast.ProductID() );
            traverse( forecast, PlanningSalesDemandInPeriod, psdip, psdip.Quantity() > 0 ){
              enginecost      := selectobject( enginecosts, Elements, engine, engine.StartDate() <= psdip.StartDate() and engine.EndDate() >= psdip.StartDate() );
              if( not isnull( enginecost ) ){
                periodtime    := psdip.StartDate().StartOfMonth();
                periodname    := periodtime.Format( "M2/D2/Y" );
          //      info( '-------------------------', periodname, periodtime );
                column         := selectobject( table, Column, column, column.Name() = periodname and column.StartDate() = periodtime );
          //      info( '-------------------------', column.Name() );
                cost           := ceil( [Number]psdip.Quantity() / enginecost.PackagingCapacity() ) * enginecost.WarehousingPrice();
                cell           := selectobject( row, Cell, cell, cell.Column() = column );
                cell.CCShorTransCost( cell.CCShorTransCost() + cost );
              }
            }
          }
        }
      }
    }
    //外租库仓储费用:仓储数量/包装容量*仓储单价,在Actual inventories里取到长春外租库/大连外租库该发动机的仓储量,根据发动机号找到对应的Generation å’Œæ¨ªçºµåˆ¶ï¼Œåœ¨å‘动机成本参数表里找到对应的仓储单价和包装容量,用公式计算,月度进行汇总
    traverse( owner, StockingPoint_MP, stockingpoint ){
      unit                    := stockingpoint.Unit();
      parentunits             := unit.GetAllParent();
      //是否属于长春外租库
      isccrent                := stockingpoint.ID() = ccrent or unit.ID() = ccrent or exists( parentunits, Elements, punit, punit.ID() = ccrent );
      //是否属于大连外租库
      isdlrent                := stockingpoint.ID() = dlrent or unit.ID() = dlrent or exists( parentunits, Elements, punit, punit.ID() = dlrent );
      if( isccrent or isdlrent ){
        traverse( stockingpoint, ProductInStockingPoint_MP, pisp,  pisp.Product_MP().IsLeaf()
                  and exists( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and pispip.Period_MP().StartDate() < startofnextyear and pispip.NewSupplyQuantity() <> 0 ) ){
          //获取行
          product             := pisp.Product_MP();
          productparents      := product.GetAllParent();
          if( exists( productparents, Elements, e, e.ID() = produtparent ) ){//查询产品类型是发动机
            row               := table.GetRow( pisp.ProductID() );
            enginecosts       := selectset( owner, LogisticsCostEngine, engine, engine.Generation().ToLower() = product.Generation().ToLower() and engine.MLB_MQB() = product.MQBMLB() );
            if( not isnull( enginecosts ) and enginecosts.Size() > 0 ){
              products.Add( pisp.Product_MP() );
              traverse( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and pispip.Period_MP().StartDate() < startofnextyear and pispip.NewSupplyQuantity() <> 0  ){
                periodtime    := pispip.Start().StartOfMonth().Date();
                periodname    := periodtime.Format( "M2/D2/Y" );
                column        := selectobject( table, Column, column, column.Name() = periodname and column.StartDate() = periodtime );
                cell          := selectobject( row, Cell, cell, cell.Column() = column );
                if( isccrent ){
                  //在发动机成本参数表找到对应的包装容量
                  enginecost     := selectobject( enginecosts, Elements, engine, engine.StartDate() <= pispip.Start().Date() and engine.EndDate() >= pispip.Start().Date()
                                                     and engine.Factory() = ccunit );
                   if( not isnull( enginecost ) ){
                     cost        := ceil( [Number]pispip.NewSupplyQuantity() / enginecost.PackagingCapacity() ) * enginecost.StoragePrice();//四舍五入
                     cell.CCRentStorCost( cell.CCRentStorCost() + cost );
                   }
                } else {
                  //在发动机成本参数表找到对应的包装容量
                  enginecost     := selectobject( enginecosts, Elements, engine, engine.StartDate() <= pispip.Start().Date() and engine.EndDate() >= pispip.Start().Date()
                                                     and engine.Factory() = dlunit  );
                   if( not isnull( enginecost ) ){
                     cost        := ceil( [Number]pispip.NewSupplyQuantity() / enginecost.PackagingCapacity() ) * enginecost.StoragePrice();//四舍五入
                     cell.DLRentStorCost( cell.DLRentStorCost() + cost );
                   }
                }
              }
            }
          }
        }
      }
    }
    rows := selectsortedset( table, Row, row, row.Name() );
    i    := 0;
    traverse( rows, Elements, e ){
      e.RowNr( i );
      i := i + 1;
    }
    info( '-------------------------------------end---------------------------------' );
    //
    showtable.Generate( search, products );
  *]
}
_Main/BL/Type_CCEngineLogisticsCostRow/Method_Initialize.qbl
@@ -7,10 +7,10 @@
  TextBody:
  [*
    // ç”„兰鸽 Jun-24-2024 (created)
    cell := this.Cell( relnew, RentEnterCost         := 0
                         , RentOutCost                 := 0
                         , FactoryToRentTransCost      := 0
                         , RentStorageCost             := 0 );
    cell := this.Cell( relnew, RentInCost              := 0
                         , RentOutOfCost               := 0
                         , WerkToRentTransCost         := 0
                         , RentStorCost                := 0 );
    
    column.Cell( relinsert, cell );
  *]
_Main/BL/Type_CCEngineLogisticsCostRow/Method_SetFactoryToRentTransCost.qbl
@@ -2,7 +2,7 @@
#parent: #root
Method SetFactoryToRentTransCost (
  CCEngineLogisticsCostColumn column,
  Number quantity
  Real quantity
)
{
  TextBody:
@@ -10,7 +10,7 @@
    // ç”„兰鸽 Jun-24-2024 (created)
    cell := selectobject( this, Cell, cell, cell.Column() = column );
          
    value := cell.FactoryToRentTransCost() + quantity;
    cell.FactoryToRentTransCost( value );
    value := cell.WerkToRentTransCost() + quantity;
    cell.WerkToRentTransCost( value );
  *]
}
_Main/BL/Type_CCEngineLogisticsCostRow/Method_SetRentEnterCost#517.qbl
@@ -2,7 +2,7 @@
#parent: #root
Method SetRentEnterCost (
  CCEngineLogisticsCostColumn column,
  Number quantity
  Real quantity
)
{
  TextBody:
@@ -10,7 +10,7 @@
    // ç”„兰鸽 Jun-24-2024 (created)
    cell := selectobject( this, Cell, cell, cell.Column() = column );
          
    value := cell.RentEnterCost() + quantity;
    cell.RentEnterCost( value );
    value := cell.RentInCost() + quantity;
    cell.RentInCost( value );
  *]
}
_Main/BL/Type_CCEngineLogisticsCostRow/Method_SetRentOutCost.qbl
@@ -2,7 +2,7 @@
#parent: #root
Method SetRentOutCost (
  CCEngineLogisticsCostColumn column,
  Number quantity
  Real quantity
)
{
  TextBody:
@@ -10,7 +10,7 @@
    // ç”„兰鸽 Jun-24-2024 (created)
    cell := selectobject( this, Cell, cell, cell.Column() = column );
          
    value := cell.RentOutCost() + quantity;
    cell.RentOutCost( value );
    value := cell.RentOutOfCost() + quantity;
    cell.RentOutOfCost( value );
  *]
}
_Main/BL/Type_CCEngineLogisticsCostRow/Method_SetRentStorageCost.qbl
@@ -2,7 +2,7 @@
#parent: #root
Method SetRentStorageCost (
  CCEngineLogisticsCostColumn column,
  Number quantity
  Real quantity
)
{
  TextBody:
@@ -10,7 +10,7 @@
    // ç”„兰鸽 Jun-24-2024 (created)
    cell := selectobject( this, Cell, cell, cell.Column() = column );
          
    value := cell.RentStorageCost() + quantity;
    cell.RentStorageCost( value );
    value := cell.RentStorCost() + quantity;
    cell.RentStorCost( value );
  *]
}
_Main/BL/Type_CCEngineLogisticsCostRow0/Method_Initialize.qbl
@@ -7,15 +7,15 @@
  TextBody:
  [*
    // ç”„兰鸽 Jun-24-2024 (created)
    cell := this.Cell( relnew, CCRentEnterCost           := 0
                         , CCRentOutCost                 := 0
                         , CCLongTransCoat               := 0
                         , CCShortTransCost              := 0
                         , CCRentStorageCost             := 0
                         , DLRentEnterCost               := 0
                         , DLRentOutCost                 := 0
                         , FactoryToDLRentTransCost      := 0
                         , DLRentStorageCost             := 0 );
    cell := this.Cell( relnew, CCRentInCost              := 0
                         , CCRentOutOfCost               := 0
                         , CCLongTransCost               := 0
                         , CCShorTransCost               := 0
                         , CCRentStorCost                := 0
                         , DLRentInCost                  := 0
                         , DLRentOutOfCost               := 0
                         , WerkToDLRentTransCost         := 0
                         , DLRentStorCost                := 0 );
    
    column.Cell( relinsert, cell );
  *]
_Main/BL/Type_CCEngineLogisticsCostRow0/Method_SetDLRentEnterCost.qbl
@@ -14,7 +14,7 @@
    //入库量/包装容量*入库单价,入库量等于长春产量
    cost          := ceil( quantity / enginecost.PackagingCapacity() ) * enginecost.WarehousingPrice();
          
    value := cell.DLRentEnterCost() + cost;
    cell.DLRentEnterCost( value );
    value := cell.DLRentInCost() + cost;
    cell.DLRentInCost( value );
  *]
}
_Main/BL/Type_CCEngineLogisticsCostRow0/Method_SetDLRentOutCost.qbl
@@ -14,7 +14,7 @@
    //入库量/包装容量*入库单价,入库量等于长春产量
    cost          := ceil( quantity / enginecost.PackagingCapacity() ) * enginecost.WarehousingPrice();
          
    value := cell.DLRentOutCost() + cost;
    cell.DLRentOutCost( value );
    value := cell.DLRentOutOfCost() + cost;
    cell.DLRentOutOfCost( value );
  *]
}
_Main/BL/Type_CCEngineLogisticsCostRow0/Method_SetFactoryToRentTransCost.qbl
@@ -2,7 +2,7 @@
#parent: #root
Method SetFactoryToRentTransCost (
  DLEngineLogisticsCostColumn column,
  Number quantity
  Real quantity
)
{
  TextBody:
@@ -10,7 +10,7 @@
    // ç”„兰鸽 Jun-24-2024 (created)
    cell := selectobject( this, Cell, cell, cell.Column() = column );
          
    value := cell.FactoryToDLRentTransCost() + quantity;
    cell.FactoryToDLRentTransCost( value );
    value := cell.WerkToDLRentTransCost() + quantity;
    cell.WerkToDLRentTransCost( value );
  *]
}
_Main/BL/Type_CCEngineLogisticsCostRow0/Method_SetRentOutCost.qbl
@@ -2,7 +2,7 @@
#parent: #root
Method SetRentOutCost (
  DLEngineLogisticsCostColumn column,
  Number quantity
  Real quantity
)
{
  TextBody:
@@ -10,7 +10,7 @@
    // ç”„兰鸽 Jun-24-2024 (created)
    cell := selectobject( this, Cell, cell, cell.Column() = column );
          
    value := cell.CCRentOutCost() + quantity;
    cell.CCRentOutCost( value );
    value := cell.CCRentOutOfCost() + quantity;
    cell.CCRentOutOfCost( value );
  *]
}
_Main/BL/Type_CCEngineLogisticsCostRow0/Method_SetRentStorageCost.qbl
@@ -2,7 +2,7 @@
#parent: #root
Method SetRentStorageCost (
  DLEngineLogisticsCostColumn column,
  Number quantity
  Real quantity
)
{
  TextBody:
@@ -10,7 +10,7 @@
    // ç”„兰鸽 Jun-24-2024 (created)
    cell := selectobject( this, Cell, cell, cell.Column() = column );
          
    value := cell.CCRentStorageCost() + quantity;
    cell.CCRentStorageCost( value );
    value := cell.CCRentStorCost() + quantity;
    cell.CCRentStorCost( value );
  *]
}
_Main/BL/Type_CC_EngineRackCell/Attribute_PackagingCapacity.qbl
@@ -2,7 +2,7 @@
#parent: #root
Attribute PackagingCapacity
{
  #keys: '3[415754.0.111003142][415754.0.111003141][415754.0.111003143]'
  #keys: '3[415754.0.267850902][415754.0.267850901][415754.0.267850903]'
  Description: '包装容量'
  ValueType: Number
  ValueType: Real
}
_Main/BL/Type_CC_EngineRackCell/Attribute_UnitPriceOfEmptyShelfStorage.qbl
@@ -2,11 +2,7 @@
#parent: #root
Attribute UnitPriceOfEmptyShelfStorage
{
  #keys: '3[415754.0.135368204][415754.0.135368203][415754.0.135368205]'
  Description:
  [*
    ç©ºæ–™æž¶ä»“储单价
  *]
  ValueType: Number
  #keys: '3[415754.0.267850867][415754.0.267850866][415754.0.267850868]'
  Description: '空料架仓储单价'
  ValueType: Real
}
_Main/BL/Type_ChangeLossSetting/StaticMethod_ValidateInput.qbl
@@ -31,7 +31,9 @@
                      or ( cls.ProductFirst() = product2 and cls.ProductSecond() = product1 ) ) ) ){
      feedback := Translations::MP_ChangeLossSetting_Exist()
    }
    if( feedback = '' and exists( owner, ChangeLossSetting, cls, cls <> old and not ( cls.StartDate() > enddate or cls.EndDate() < startdate ) ) ){
    if( exists( owner, ChangeLossSetting, cls, cls <> old and cls.Unit() = unit  and not ( cls.StartDate() > enddate or cls.EndDate() < startdate )
                and ( ( cls.ProductFirst() = product1 and cls.ProductSecond() = product2 )
                      or ( cls.ProductFirst() = product2 and cls.ProductSecond() = product1 ) ) ) ){
      feedback := Translations::MP_ChangeLossSetting_DateCoincide()
    }
    
_Main/BL/Type_ChangeLossSettingExcel/Attribute_EndDate.qbl
@@ -3,5 +3,6 @@
Attribute EndDate
{
  #keys: '3[415136.0.1132074698][415136.0.1132074697][415136.0.1132074699]'
  IsReadOnly: true
  ValueType: Date
}
_Main/BL/Type_ChangeLossSettingExcel/Attribute_StartDate.qbl
@@ -3,5 +3,6 @@
Attribute StartDate
{
  #keys: '3[415136.0.1132074695][415136.0.1132074694][415136.0.1132074696]'
  IsReadOnly: true
  ValueType: Date
}
_Main/BL/Type_ChangeLossSettingExcel/StaticMethod_ExportTemplate.qbl
@@ -9,7 +9,7 @@
  [*
    // ç”„兰鸽 Aug-22-2024 (created)
    traverse( macroplan, ChangeLossSetting, cls ){
      macroplan.ChangeLossSettingExcel( relnew, Product1 := cls.ProductFirst().ID(), Product2 := cls.ProductSecond().ID(), Unit := cls.Unit().ID(), ChangeLossNumber := [String]cls.ChangeLossNr() );
      macroplan.ChangeLossSettingExcel( relnew, Product1 := cls.ProductFirst().ID(), Product2 := cls.ProductSecond().ID(), Unit := cls.Unit().ID(), ChangeLossNumber := [String]cls.ChangeLossNr(), StartDate := cls.StartDate(), EndDate := cls.EndDate() );
    }
    value := macroplan.MP_ExportChangeLossSettingsBroker().ExecuteToXLS( isxlsxformat ).AsBinaryValue();
    macroplan.ChangeLossSettingExcel( relflush );
_Main/BL/Type_ChangeLossSettingExcel/StaticMethod_Import.qbl
@@ -20,19 +20,32 @@
      macroplan.ChangeLossSettingExcel( relflush );
      error( e.GeneralInformation() );
    }
    clsset              := construct( ChangeLossSettings );
    //遍历处理导入的数据
    traverse( macroplan, ChangeLossSettingExcel, excel ){
      cls               := selectobject(  macroplan, ChangeLossSetting, cls, cls.ProductFirst().ID() = excel.Product1()
                                          and cls.ProductSecond().ID() = excel.Product2()
                                          and cls.Unit().ID() = excel.Unit() );
                                          and cls.Unit().ID() = excel.Unit()
                                          and cls.StartDate() = excel.StartDate()
                                          and cls.EndDate() = excel.EndDate() );
      if( isnull( cls ) ){
        cls             := macroplan.ChangeLossSetting( relnew, ChangeLossNr := [Number]excel.ChangeLossNumber() );
        product1        := selectobject( macroplan, Product_MP, product, product.ID() = excel.Product1() );
        product2        := selectobject( macroplan, Product_MP, product, product.ID() = excel.Product2() );
        unit            := selectobject( macroplan, Unit, unit, unit.ID() = excel.Unit() );
        cls.ProductFirst( relset, product1 );
        cls.ProductSecond( relset, product2 );
        cls.Unit( relset, unit );
        feedback        := '';
        if( ChangeLossSetting::ValidateInput( feedback, macroplan, null( ChangeLossSetting ), unit, product1, product2, excel.StartDate(), excel.EndDate(), [Number]excel.ChangeLossNumber() ) ){
          cls             := macroplan.ChangeLossSetting( relnew, ChangeLossNr := [Number]excel.ChangeLossNumber() );
          cls.ProductFirst( relset, product1 );
          cls.ProductSecond( relset, product2 );
          cls.Unit( relset, unit );
          clsset.Add( cls );
        }else{
          traverse( clsset, Elements, e ){
            e.Delete();
          }
          error( feedback );
        }
      }else {
        cls.ChangeLossNr( [Number]excel.ChangeLossNumber() );
      }
_Main/BL/Type_ChangeLossSettingExcel/TypeIndex_ChangeLossSettingTypeIndex.qbl
@@ -16,5 +16,13 @@
    {
      ModelElement: Unit
    }
    TypeIndexAttribute
    {
      ModelElement: StartDate
    }
    TypeIndexAttribute
    {
      ModelElement: EndDate
    }
  ]
}
_Main/BL/Type_EnginePipelineReport/StaticMethod_GetDefaultCCUnit.qbl
@@ -5,7 +5,8 @@
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    return '长春工厂';
    //return '长春工厂';
    return 'VWED CC';
    //return 'Assembly Plant (France)';
  *]
}
_Main/BL/Type_EnginePipelineReport/StaticMethod_GetDefaultDLUnit.qbl
@@ -5,7 +5,8 @@
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    return '大连工厂';
    //return '大连工厂';
    return 'VWED DL';
    //return 'Assembly Plant (Spain)';
  *]
}
_Main/BL/Type_EnginePipelineSource/StaticMethod_Initialize.qbl
@@ -11,16 +11,16 @@
    //ccunit                    := EnginePipelineReport::GetDefaultCCUnit();
    //dlunit                    := EnginePipelineReport::GetDefaultDLUnit();
    productparent             := EnginePipelineReport::GetDefaultProductParent();
    ccalineunit               := EnginePipelineReport::GetDefaultCCALineUnit();
    dlalienunit               := EnginePipelineReport::GetDefaultDLALineUnit()
    ccmplineunit              := EnginePipelineReport::GetDefaultCCMPLineUnit()
    dlmplineunit              := EnginePipelineReport::GetDefaultDLMPLineUnit();
    //ccalineunit               := EnginePipelineReport::GetDefaultCCALineUnit();
    //dlalienunit               := EnginePipelineReport::GetDefaultDLALineUnit()
    //ccmplineunit              := EnginePipelineReport::GetDefaultCCMPLineUnit()
    //dlmplineunit              := EnginePipelineReport::GetDefaultDLMPLineUnit();
    //allunit                   := EnginePipelineReport::GetDefaultAllUnit();
    source                    := owner.EnginePipelineSource( relnew, Name := EnginePipelineReport::GetDefaultName() );
    table                     := source.Report( relnew, ID := source.Name(), Name := source.Name() );
    showtable                 := source.Report( relnew, ID := source.Name() + 'Show', Name := source.Name(), IsShow := true );
    
    search                    := source.Search( relnew, StartDate := Date::MinDate(), EndDate := Date::MaxDate(), TimeUnit := Translations::MP_GlobalParameters_Day() );
    search                    := owner.EnginePipelineSearch( relnew, StartDate := Date::MinDate(), EndDate := Date::MaxDate(), TimeUnit := Translations::MP_GlobalParameters_Day() );
    
    products                  := construct( Product_MPs );
    //初始化列
@@ -28,13 +28,16 @@
    endperiod                 := maxobject( owner, Period_MP, period, not period.IsHistorical() and period.TimeUnit() = Translations::MP_GlobalParameters_Day(), period.StartDate() );
    
    //生成生产和库存数据
    traverse( owner, StockingPoint_MP, stockingpoint ){
      unit                    := stockingpoint.Unit();
      parentunits             := unit.GetAllParent();
    //traverse( owner, StockingPoint_MP, stockingpoint ){
    traverse( owner, StockingPoint_MP, stockingpoint, stockingpoint.ID().EndsWith( '厂内库' ) ){
    //  unit                    := stockingpoint.Unit();
    //  parentunits             := unit.GetAllParent();
      //是否属于长春工厂
      iscc         := unit.ID() = ccalineunit or unit.ID() = ccmplineunit or exists( parentunits, Elements, punit, punit.ID() = ccalineunit or punit.ID() = ccmplineunit );
    //  iscc                    := unit.ID() = ccalineunit or unit.ID() = ccmplineunit or exists( parentunits, Elements, punit, punit.ID() = ccalineunit or punit.ID() = ccmplineunit );
      iscc                    := stockingpoint.ID().StartsWith( 'CC' );
      //是否属于大连工厂
      isdl         := unit.ID() = dlalienunit or unit.ID() = dlmplineunit  or exists( parentunits, Elements, punit, punit.ID() = dlalienunit or punit.ID() = dlmplineunit );
    //  isdl                    := unit.ID() = dlalienunit or unit.ID() = dlmplineunit  or exists( parentunits, Elements, punit, punit.ID() = dlalienunit or punit.ID() = dlmplineunit );
      isdl                    := stockingpoint.ID().StartsWith( '大连' );
      
      traverse( stockingpoint, ProductInStockingPoint_MP, pisp,  pisp.Product_MP().IsLeaf() and not pisp.IsSystem() 
                and exists( pisp.Product_MP().GetAllParent(), Elements, e, e.ID() = productparent ) 
_Main/BL/Type_FinancialProductionReport/Method_Generate.qbl
@@ -25,7 +25,7 @@
        showrow := this.FinancialProductionRow( relnew, Name := row.Name(), Unit := row.Unit(), RowNr := row.RowNr() );
        
        traverse( row, FinancialProductionCell, cell, not cell.FinancialProductionColumn().IsDay() ){
          column   := selectobject( this, FinancialProductionColumn, column, column.Name() = cell.FinancialProductionColumn().Name() );
          column   := selectobject( this, FinancialProductionColumn, column, column.Name() = cell.FinancialProductionColumn().Name() and not column.IsDay() );
          
          sumcell  := selectobject( column, FinancialProductionCell, c, c.FinancialProductionRow() = sumrow );
          if( isnull( sumcell ) ){
_Main/BL/Type_FinancialProductionReport/StaticMethod_GetDefaultCCUnit.qbl
@@ -5,7 +5,8 @@
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    return '长春工厂';
    //return '长春工厂';
    return 'VWED CC';
    //return 'Assembly Plant (France)';
  *]
}
_Main/BL/Type_FinancialProductionReport/StaticMethod_GetDefaultDLUnit.qbl
@@ -5,7 +5,8 @@
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    return '大连工厂';
    //return '大连工厂';
    return 'VWED DL';
    //return 'Assembly Plant (Spain)';
  *]
}
_Main/BL/Type_FinancialProductionSource/StaticMethod_Initialize.qbl
@@ -11,10 +11,10 @@
    owner.FPImportData( relflush );
    ccunit                    := FinancialProductionReport::GetDefaultCCUnit();
    dlunit                    := FinancialProductionReport::GetDefaultDLUnit();
    ccalineunit               := FinancialProductionReport::GetDefaultCCALineUnit();
    dlalienunit               := FinancialProductionReport::GetDefaultDLALineUnit()
    ccmplineunit              := FinancialProductionReport::GetDefaultCCMPLineUnit()
    dlmplineunit              := FinancialProductionReport::GetDefaultDLMPLineUnit();
    //ccalineunit               := FinancialProductionReport::GetDefaultCCALineUnit();
    //dlalienunit               := FinancialProductionReport::GetDefaultDLALineUnit()
    //ccmplineunit              := FinancialProductionReport::GetDefaultCCMPLineUnit()
    //dlmplineunit              := FinancialProductionReport::GetDefaultDLMPLineUnit();
    allunit                   := FinancialProductionReport::GetDefaultAllUnit();
    source                    := owner.FinancialProductionSource( relnew, IsImport := false, Name := FinancialProductionReport::GetDefaultName() );
    table                     := source.FinancialProductionReport( relnew, ID := source.Name(), Name := source.Name(), IsImport := false );
@@ -23,7 +23,7 @@
    //startofnextmonth          := startofplanning.StartOfNextMonth();
    startofnextyear           := startofplanning.StartOfNextYear();
    
    search                    := source.FinancialProductionSearch( relnew, Unit := allunit, Generation := allunit, MqbMlb := allunit, Power := allunit );
    search                    := owner.FinancialProductionSearch( relnew, Unit := allunit, Generation := allunit, MqbMlb := allunit, Power := allunit );
    
    products                  := construct( Product_MPs );
    //需要的日期区间, å‘¨å’Œå¤©çš„只需要当前月
@@ -35,13 +35,16 @@
    //currentperiods            := table.GetCurrentPeriod( startofplanning, periods );
    table.GenerateColumn( owner );
    //取当前版本的product planning里new supply字段,分大连和长春工厂的产线,进行加总
    traverse( owner, StockingPoint_MP, stockingpoint ){
      unit                    := stockingpoint.Unit();
      parentunits             := unit.GetAllParent();
    //traverse( owner, StockingPoint_MP, stockingpoint ){
    traverse( owner, StockingPoint_MP, stockingpoint, stockingpoint.ID().EndsWith( '厂内库' ) ){
      iscc                    := stockingpoint.ID().StartsWith( 'CC' ) or stockingpoint.ID().StartsWith( '长春' );
      isdl                    := stockingpoint.ID().StartsWith( 'DL' ) or stockingpoint.ID().StartsWith( '大连' );
    //  unit                    := stockingpoint.Unit();
    //  parentunits             := unit.GetAllParent();
      //是否属于长春工厂
      iscc                    := unit.ID() = ccalineunit or unit.ID() = ccmplineunit or exists( parentunits, Elements, punit, punit.ID() = ccalineunit or punit.ID() = ccmplineunit );
    //  iscc                    := unit.ID() = ccalineunit or unit.ID() = ccmplineunit or exists( parentunits, Elements, punit, punit.ID() = ccalineunit or punit.ID() = ccmplineunit );
      //是否属于大连工厂
      isdl                    := unit.ID() = dlalienunit or unit.ID() = dlmplineunit  or exists( parentunits, Elements, punit, punit.ID() = dlalienunit or punit.ID() = dlmplineunit );
    //  isdl                    := unit.ID() = dlalienunit or unit.ID() = dlmplineunit  or exists( parentunits, Elements, punit, punit.ID() = dlalienunit or punit.ID() = dlmplineunit );
      if( iscc or isdl ){
        traverse( stockingpoint, ProductInStockingPoint_MP, pisp,  pisp.Product_MP().IsLeaf() 
                  and exists( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and pispip.Period_MP().StartDate() < startofnextyear and pispip.NewSupplyQuantity() <> 0 ) ){
_Main/BL/Type_FinancialSalesReport/Method_Generate.qbl
@@ -24,8 +24,8 @@
      if( productids.ContainsAll( productid ) ){
        showrow := this.FinancialSalesRow( relnew, Name := row.Name(), Unit := row.Unit(), RowNr := row.RowNr() );
        
        traverse( row, FinancialSalesCell, cell ){
          column   := selectobject( this, FinancialSalesColumn, column, column.Name() = cell.FinancialSalesColumn().Name() );
        traverse( row, FinancialSalesCell, cell, not cell.FinancialSalesColumn().IsDay() ){
          column   := selectobject( this, FinancialSalesColumn, column, column.Name() = cell.FinancialSalesColumn().Name() and not column.IsDay());
          
          sumcell  := selectobject( column, FinancialSalesCell, c, c.FinancialSalesRow() = sumrow );
          if( isnull( sumcell ) ){
_Main/BL/Type_FinancialSalesReport/StaticMethod_GetDefaultCCUnit.qbl
@@ -5,7 +5,8 @@
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    return '长春工厂';
    //return '长春工厂';
    return 'VWED CC';
    //return 'Assembly Plant (France)';
  *]
}
_Main/BL/Type_FinancialSalesReport/StaticMethod_GetDefaultDLUnit.qbl
@@ -5,7 +5,8 @@
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    return '大连工厂';
    //return '大连工厂';
    return 'VWED DL';
    //return 'Assembly Plant (Spain)';
  *]
}
_Main/BL/Type_FinancialSalesReport/StaticMethod_GetSalesSegmentCC.qbl
@@ -5,7 +5,8 @@
  TextBody:
  [*
    // ç”„兰鸽 Jun-28-2024 (created)
    return '长春';
    //return '长春';
    return 'Changchun';
    //return 'China';
  *]
}
_Main/BL/Type_FinancialSalesReport/StaticMethod_GetSalesSegmentFS.qbl
@@ -5,7 +5,8 @@
  TextBody:
  [*
    // ç”„兰鸽 Jun-28-2024 (created)
    return '佛山';
    //return '佛山';
    return 'Foshan';
    //return 'Germany';
  *]
}
_Main/BL/Type_FinancialSalesReport/StaticMethod_GetSalesSegmentTJ.qbl
@@ -5,7 +5,8 @@
  TextBody:
  [*
    // ç”„兰鸽 Jun-28-2024 (created)
    return '天津';
    //return '天津';
    return 'Tianjin';
    //return 'USA';
  *]
}
_Main/BL/Type_FinancialSalesSource/StaticMethod_Initialize.qbl
@@ -16,9 +16,9 @@
    ccsalessegment            := FinancialSalesReport::GetSalesSegmentCC();
    tjsalessegment            := FinancialSalesReport::GetSalesSegmentTJ();
    fssalessegment            := FinancialSalesReport::GetSalesSegmentFS();
    ccspline                  := FinancialSalesReport::GetStockingPointCCLine();
    dlspline                  := FinancialSalesReport::GetStockingPointDLLine();
    ccrent                    := FinancialSalesReport::GetStockingPointCCRent();
    //ccspline                  := FinancialSalesReport::GetStockingPointCCLine();
    //dlspline                  := FinancialSalesReport::GetStockingPointDLLine();
    //ccrent                    := FinancialSalesReport::GetStockingPointCCRent();
    
    source                    := owner.FinancialSalesSource( relnew, IsImport := false, Name := FinancialSalesReport::GetDefaultName() );
    table                     := source.FinancialSalesReport( relnew, ID := source.Name(), Name := source.Name(), IsImport := false );
@@ -27,7 +27,7 @@
    //startofyear               := startofplanning.StartOfYear();
    startofnextyear           := startofplanning.StartOfNextYear();
    
    search                    := source.FinancialSalesSearch( relnew, Unit := allunit, Generation := allunit, MqbMlb := allunit, Power := allunit );
    search                    := owner.FinancialSalesSearch( relnew, Unit := allunit, Generation := allunit, MqbMlb := allunit, Power := allunit );
    
    table.GenerateColumn( owner );
    
@@ -37,11 +37,15 @@
      salessegment            := forecast.SalesSegment_MP();
      parentsalessegments     := salessegment.GetAllParent();
      //是否属于长春
      iscc                    := salessegment.Name() = ccsalessegment or exists( parentsalessegments, Elements, psalessegment, psalessegment.Name() = ccsalessegment );
    //  iscc                    := salessegment.Name() = ccsalessegment or exists( parentsalessegments, Elements, psalessegment, psalessegment.Name() = ccsalessegment );
      iscc                    := salessegment.Name().StartsWith( ccsalessegment ) or exists( parentsalessegments, Elements, psalessegment, psalessegment.Name().StartsWith( ccsalessegment ) );
      //是否属于大连, å³å¤©æ´¥å’Œä½›å±±
      isdl                    := salessegment.Name() = tjsalessegment or salessegment.Name() = fssalessegment
                                  or exists( parentsalessegments, Elements, psalessegment, psalessegment.Name() = tjsalessegment )
                                  or exists( parentsalessegments, Elements, psalessegment, psalessegment.Name() = fssalessegment );
    //  isdl                    := salessegment.Name() = tjsalessegment or salessegment.Name() = fssalessegment
    //                              or exists( parentsalessegments, Elements, psalessegment, psalessegment.Name() = tjsalessegment )
    //                              or exists( parentsalessegments, Elements, psalessegment, psalessegment.Name() = fssalessegment );
      isdl                    := salessegment.Name().StartsWith( tjsalessegment ) or salessegment.Name().StartsWith( fssalessegment )
                                  or exists( parentsalessegments, Elements, psalessegment, psalessegment.Name().StartsWith( tjsalessegment ) )
                                  or exists( parentsalessegments, Elements, psalessegment, psalessegment.Name().StartsWith( fssalessegment ) );
      //Forecast的Sales Segment为长春,识别出MLB的所有产品汇总
      //大连财务销量:首先在forecast界面查找Sales Segment是天津和佛山的所有需求,每个产品按月汇总需求数量
      if( ( iscc and forecast.Product_MP().MQBMLB() = 'MLB' ) or isdl ){
@@ -69,70 +73,76 @@
        }
      }
    }
    //从Product planning查找库存点为长春装配线边库的所有MQB产品,取Total Demand字段按月汇总需求数量
    traverse( owner, StockingPoint_MP, stockingpoint ){
    //从Product planning查找库存点为长春装配线边库(CC厂内库)的所有MQB产品,取Total Demand字段按月汇总需求数量
    //从Product planning查找库存点为大连发动机的长春外租库,取New supply字段按月汇总需求数量
    //traverse( owner, StockingPoint_MP, stockingpoint ){
    traverse( owner, StockingPoint_MP, stockingpoint, ( stockingpoint.ID().StartsWith( 'CC' ) and stockingpoint.ID().EndsWith( '厂内库' ) ) or stockingpoint.ID() = '大连发动机的长春外租库' ){
      isdl                  := stockingpoint.ID() = '大连发动机的长春外租库';
    //  unit                  := stockingpoint.Unit();
    //  parentunits           := unit.GetAllParent();
      //是否属于长春装配线
    //  iscc                  := unit.ID() = ccspline or exists( parentunits, Elements, punit, punit.ID() = ccspline );
      if( table.IsInUnit( stockingpoint, ccspline ) ){
    //  if( table.IsInUnit( stockingpoint, ccspline ) ){
        traverse( stockingpoint, ProductInStockingPoint_MP, pisp, pisp.Product_MP().IsLeaf() and pisp.Product_MP().MQBMLB() = 'MQB' 
                  and exists( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and pispip.Period_MP().StartDate() < startofnextyear and pispip.DependentDemandAndSalesDemandQuantity() <> 0 ) ){//产品为MQB
                  and exists( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and pispip.Period_MP().StartDate() < startofnextyear
                              and ( pispip.DependentDemandAndSalesDemandQuantity() <> 0 or pispip.NewSupplyQuantity() <> 0 ) ) ){//产品为MQB
          product           := pisp.Product_MP();
          allrow            := table.GetRow( allunit, product );
          ccrow             := table.GetRow( ccunit, product );
          products.Add( product );
          traverse( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and pispip.Period_MP().StartDate() < startofnextyear and pispip.DependentDemandAndSalesDemandQuantity() <> 0 ){
          traverse( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical()
                    and pispip.Period_MP().StartDate() < startofnextyear
                    and ( pispip.DependentDemandAndSalesDemandQuantity() <> 0 or pispip.NewSupplyQuantity() <> 0 ) ){
            dayperiodtime   := pispip.Start().Date();
            dayperiodname   := dayperiodtime.Format( "M2/D2/Y" );
            periodtime      := pispip.Start().StartOfMonth().Date();
            periodname      := periodtime.Format( "M2/D2/Y" );
            daycolumn       := selectobject( table, FinancialSalesColumn, column, column.Name() = dayperiodname and column.Period() = dayperiodtime and column.IsDay() );
            column          := selectobject( table, FinancialSalesColumn, column, column.Name() = periodname and column.Period() = periodtime and not column.IsDay() );
            quantity        := [Number]pispip.DependentDemandAndSalesDemandQuantity();//四舍五入
            quantity        := ifexpr( isdl, [Number]pispip.NewSupplyQuantity(), [Number]pispip.DependentDemandAndSalesDemandQuantity() );//四舍五入
            
            ccrow.Initialize( column, quantity );//取Total Demand字段按月汇总需求数量
            ccrow.Initialize( daycolumn, quantity );
            allrow.Initialize( column, quantity );
          }
        }
      }
    //  }
    }
    startofnextyearlead       := startofplanning.StartOfNextYear() + FinancialSalesReport::GetDefaultTripLeadingTime();
    //startofnextyearlead       := startofplanning.StartOfNextYear() + FinancialSalesReport::GetDefaultTripLeadingTime();
    //大连财务销量:长春的需求需要在trip plan里面找到起始库存点为大连装配线边库,目的地为长春外租库的产品,由于需要考虑产品运输lead time,每个月的汇总数据需要推迟两天进行计算
    traverse( owner, Unit.Lane.LaneLeg, laneleg ){
      //起始库存点是否是大连装配线边库
      originsp              := selectobject( owner, StockingPoint_MP, sp, sp.ID() = laneleg.OriginStockingPointID() );
      isdlspline            := table.IsInUnit( originsp, dlspline );
      //目的地是否是长春外租库
      destisp               := selectobject( owner, StockingPoint_MP, sp, sp.ID() = laneleg.DestinationStockingPointID() );
      isccrent              := table.IsInUnit( destisp, ccrent );
      if( isdlspline and isccrent ){
        traverse( laneleg, Trip, trip, trip.Arrival() < startofnextyearlead and exists( trip, ProductInTrip, pit, pit.Quantity() <> 0 ) ){
    //      periodtime        := ( trip.Arrival() - FinancialSalesReport::GetDefaultTripLeadingTime() ).StartOfMonth().Date();
          dayperiodtime     := trip.Departure().Date();
          dayperiodname     := dayperiodtime.Format( "M2/D2/Y" );
          periodtime        := trip.Departure().StartOfMonth().Date();
          periodname        := periodtime.Format( "M2/D2/Y" );
          daycolumn         := selectobject( table, FinancialSalesColumn, column, column.Name() = dayperiodname and column.Period() = dayperiodtime and column.IsDay() );
          column            := selectobject( table, FinancialSalesColumn, column, column.Name() = periodname and column.Period() = periodtime and not column.IsDay() );
          if( not isnull( column ) ){
            traverse( trip, ProductInTrip, pit, pit.Quantity() <> 0 ){
              product       := pit.Product_MP();
              products.Add( product );
              quantity      := [Number]pit.Quantity();//四舍五入
              dlrow         := table.GetRow( dlunit, pit.Product_MP() );
              dlrow.Initialize( column, quantity );//汇总数量
              dlrow.Initialize( daycolumn, quantity );
              allrow        := table.GetRow( allunit, pit.Product_MP() );
              allrow.Initialize( column, quantity );
            }
          }
        }
      }
    }
    //traverse( owner, Unit.Lane.LaneLeg, laneleg ){
    //  //起始库存点是否是大连装配线边库
    //  originsp              := selectobject( owner, StockingPoint_MP, sp, sp.ID() = laneleg.OriginStockingPointID() );
    //  isdlspline            := table.IsInUnit( originsp, dlspline );
    //  //目的地是否是长春外租库
    //  destisp               := selectobject( owner, StockingPoint_MP, sp, sp.ID() = laneleg.DestinationStockingPointID() );
    //  isccrent              := table.IsInUnit( destisp, ccrent );
    //  if( isdlspline and isccrent ){
    //    traverse( laneleg, Trip, trip, trip.Arrival() < startofnextyearlead and exists( trip, ProductInTrip, pit, pit.Quantity() <> 0 ) ){
    ////      periodtime        := ( trip.Arrival() - FinancialSalesReport::GetDefaultTripLeadingTime() ).StartOfMonth().Date();
    //      dayperiodtime     := trip.Departure().Date();
    //      dayperiodname     := dayperiodtime.Format( "M2/D2/Y" );
    //      periodtime        := trip.Departure().StartOfMonth().Date();
    //      periodname        := periodtime.Format( "M2/D2/Y" );
    //
    //      daycolumn         := selectobject( table, FinancialSalesColumn, column, column.Name() = dayperiodname and column.Period() = dayperiodtime and column.IsDay() );
    //      column            := selectobject( table, FinancialSalesColumn, column, column.Name() = periodname and column.Period() = periodtime and not column.IsDay() );
    //      if( not isnull( column ) ){
    //        traverse( trip, ProductInTrip, pit, pit.Quantity() <> 0 ){
    //          product       := pit.Product_MP();
    //          products.Add( product );
    //          quantity      := [Number]pit.Quantity();//四舍五入
    //          dlrow         := table.GetRow( dlunit, pit.Product_MP() );
    //          dlrow.Initialize( column, quantity );//汇总数量
    //          dlrow.Initialize( daycolumn, quantity );
    //
    //          allrow        := table.GetRow( allunit, pit.Product_MP() );
    //          allrow.Initialize( column, quantity );
    //        }
    //      }
    //    }
    //  }
    //}
    
    rows := selectsortedset( table, FinancialSalesRow, row, row.Name() );
    i    := 0;
_Main/BL/Type_InventoryInterfaceData/StaticMethod_SynchronizeInventory#575.qbl
@@ -18,7 +18,9 @@
    //发动机成品库存
    traverse( inventorys, Elements, inventory ){
      product    := select( macroplan, Product_MP, product, product.Notes() = inventory.FourCode() );
      InventoryInterfaceData::Generate( owner, inventory.DDay(), product.ID(), inventory.BIPlace(), [Number]inventory.Total() );
      if(  not isnull( product ) ){
        InventoryInterfaceData::Generate( owner, inventory.DDay(), product.ID(), inventory.BIPlace(), [Number]inventory.Total() );
      }
    }
  *]
}
_Main/BL/Type_InventorySummaryReport/Method_Generate.qbl
@@ -8,7 +8,7 @@
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    startofplanning           := search.InventorySummarySource().MacroPlan().StartOfPlanning();
    startofplanning           := search.MacroPlan().StartOfPlanning();
    startofyear               := startofplanning.StartOfYear();
    startofendyear            := startofplanning.StartOfNextYear() - Duration::Days( 1 );
    //查询日期返回需要在计划日期之内
_Main/BL/Type_InventorySummaryReport/StaticMethod_GetDefaultCCUnit.qbl
@@ -5,7 +5,8 @@
  TextBody:
  [*
    // ç”„兰鸽 Jun-28-2024 (created)
    return '长春工厂';
    //return '长春工厂';
    return 'VWED CC';
    //return 'Assembly Plant (France)';
  *]
}
_Main/BL/Type_InventorySummaryReport/StaticMethod_GetDefaultDLUnit.qbl
@@ -5,7 +5,8 @@
  TextBody:
  [*
    // ç”„兰鸽 Jun-28-2024 (created)
    return '大连工厂';
    //return '大连工厂';
    return 'VWED DL';
    //return 'Assembly Plant (Spain)';
  *]
}
_Main/BL/Type_InventorySummarySource/StaticMethod_Initialize.qbl
@@ -14,10 +14,10 @@
    allunit                   := InventorySummaryReport::GetDefaultAllUnit();
    ccunit                    := InventorySummaryReport::GetDefaultCCUnit();
    dlunit                    := InventorySummaryReport::GetDefaultDLUnit();
    ccalineunit               := FinancialProductionReport::GetDefaultCCALineUnit();
    dlalienunit               := FinancialProductionReport::GetDefaultDLALineUnit()
    ccmplineunit              := FinancialProductionReport::GetDefaultCCMPLineUnit()
    dlmplineunit              := FinancialProductionReport::GetDefaultDLMPLineUnit();
    //ccalineunit               := FinancialProductionReport::GetDefaultCCALineUnit();
    //dlalienunit               := FinancialProductionReport::GetDefaultDLALineUnit()
    //ccmplineunit              := FinancialProductionReport::GetDefaultCCMPLineUnit()
    //dlmplineunit              := FinancialProductionReport::GetDefaultDLMPLineUnit();
    
    source                    := owner.InventorySummarySource( relnew, ID := InventorySummaryReport::GetDefaultName(), Name := InventorySummaryReport::GetDefaultName() );
    table                     := source.InventorySummaryReport( relnew, ID := source.Name(), Name := source.Name() );
@@ -26,18 +26,21 @@
    startofyear               := startofplanning.StartOfYear();
    startofnextyear           := startofplanning.StartOfNextYear();
    
    search                    := source.InventorySummarySearch( relnew, Unit := allunit, Generation := allunit, MqbMlb := allunit, Power := allunit, StartDate := Date::MinDate(), EndDate := Date::MaxDate() );
    search                    := owner.InventorySummarySearch( relnew, Unit := allunit, Generation := allunit, MqbMlb := allunit, Power := allunit, StartDate := Date::MinDate(), EndDate := Date::MaxDate() );
    
    table.GenerateColumn( owner, 'All', startofyear, startofnextyear );
    //info( '-----------------------------------', table.InventorySummaryColumn( relsize ) );
    //库存数量为Actual inventories里面的点Planned inventories字段库存量加总
    traverse( owner, StockingPoint_MP, stockingpoint ){
      unit                    := stockingpoint.Unit();
      parentunits             := unit.GetAllParent();
    //traverse( owner, StockingPoint_MP, stockingpoint ){
    traverse( owner, StockingPoint_MP, stockingpoint, stockingpoint.ID().EndsWith( '厂内库' ) ){
    //  unit                    := stockingpoint.Unit();
    //  parentunits             := unit.GetAllParent();
      //是否属于长春工厂
      iscc         := unit.ID() = ccalineunit or unit.ID() = ccmplineunit or exists( parentunits, Elements, punit, punit.ID() = ccalineunit or punit.ID() = ccmplineunit );
      iscc                    := stockingpoint.ID().StartsWith( 'CC' );//unit.ID() = ccalineunit or unit.ID() = ccmplineunit or exists( parentunits, Elements, punit, punit.ID() = ccalineunit or punit.ID() = ccmplineunit );
    //  iscc                    := stockingpoint.ID().StartsWith( 'CC' ) or unit.ID().StartsWith( 'CC' ) or exists( parentunits, Elements, punit, punit.ID().StartsWith( 'CC' ) );
      //是否属于大连工厂
      isdl         := unit.ID() = dlalienunit or unit.ID() = dlmplineunit  or exists( parentunits, Elements, punit, punit.ID() = dlalienunit or punit.ID() = dlmplineunit );
      isdl                    := stockingpoint.ID().StartsWith( '大连' );//unit.ID() = dlalienunit or unit.ID() = dlmplineunit  or exists( parentunits, Elements, punit, punit.ID() = dlalienunit or punit.ID() = dlmplineunit );
    //  isdl                    := stockingpoint.ID().StartsWith( 'DL' ) or unit.ID().StartsWith( 'DL' ) or exists( parentunits, Elements, punit, punit.ID().StartsWith( 'DL' ) );
      if( iscc or isdl ){
        traverse( stockingpoint, ProductInStockingPoint_MP, pisp,  pisp.Product_MP().IsLeaf() ){
          //获取工厂行
@@ -144,8 +147,12 @@
    rows := selectsortedset( table, InventroySummaryRow, row, row.Name() );
    i    := 0;
    traverse( rows, Elements, e ){
      e.RowNr( i );
      i := i + 1;
      if( exists( e, InventorySummaryCell, cell, cell.AverageInventory() <> 0 or cell.EndingInventory() <> 0 or cell.MaximumInventory() <> 0 or cell.MinimumInventory() <> 0 ) ){
        e.RowNr( i );
        i := i + 1;
      }{
        e.Delete();
      }
    }
    showtable.Generate( search, products );
  *]
_Main/BL/Type_LogisticsCostEngine/Attribute_OtherPrice.qbl
@@ -2,6 +2,6 @@
#parent: #root
Attribute OtherPrice
{
  #keys: '3[413988.0.1448874835][413988.0.1448874834][413988.0.1448874836]'
  ValueType: Number
  #keys: '3[415754.0.267816044][415754.0.267816043][415754.0.267816045]'
  ValueType: Real
}
_Main/BL/Type_LogisticsCostEngine/Attribute_OutboundPrice.qbl
@@ -2,7 +2,7 @@
#parent: #root
Attribute OutboundPrice
{
  #keys: '3[413988.0.1448874815][413988.0.1448874814][413988.0.1448874816]'
  #keys: '3[415754.0.267816079][415754.0.267816078][415754.0.267816080]'
  Description: '出库单价'
  ValueType: Number
  ValueType: Real
}
_Main/BL/Type_LogisticsCostEngine/Attribute_PackagingCapacity.qbl
@@ -2,7 +2,7 @@
#parent: #root
Attribute PackagingCapacity
{
  #keys: '3[413988.0.1448874789][413988.0.1448874788][413988.0.1448874790]'
  #keys: '3[415754.0.267850180][415754.0.267850179][415754.0.267850181]'
  Description: '包装容量'
  ValueType: Number
  ValueType: Real
}
_Main/BL/Type_LogisticsCostEngine/Attribute_StoragePrice.qbl
@@ -2,6 +2,6 @@
#parent: #root
Attribute StoragePrice
{
  #keys: '3[413988.0.1448874825][413988.0.1448874824][413988.0.1448874826]'
  ValueType: Number
  #keys: '3[415754.0.267850217][415754.0.267850216][415754.0.267850218]'
  ValueType: Real
}
_Main/BL/Type_LogisticsCostEngine/Attribute_WarehousingPrice.qbl
@@ -2,7 +2,7 @@
#parent: #root
Attribute WarehousingPrice
{
  #keys: '3[413988.0.1448874802][413988.0.1448874801][413988.0.1448874803]'
  #keys: '3[415754.0.267816116][415754.0.267816115][415754.0.267816117]'
  Description: '入库单价'
  ValueType: Number
  ValueType: Real
}
_Main/BL/Type_LogisticsCostMachining/Attribute_BufferPaperPrice.qbl
@@ -2,7 +2,7 @@
#parent: #root
Attribute BufferPaperPrice
{
  #keys: '3[413988.0.1448874918][413988.0.1448874917][413988.0.1448874919]'
  #keys: '3[415754.0.267816662][415754.0.267816661][415754.0.267816663]'
  Description: '缓冲纸单价'
  ValueType: Number
  ValueType: Real
}
_Main/BL/Type_LogisticsCostMachining/Attribute_OutboundPrice.qbl
@@ -2,7 +2,7 @@
#parent: #root
Attribute OutboundPrice
{
  #keys: '3[413988.0.1448874944][413988.0.1448874943][413988.0.1448874945]'
  #keys: '3[415754.0.267850482][415754.0.267850481][415754.0.267850483]'
  Description: '出库单价'
  ValueType: Number
  ValueType: Real
}
_Main/BL/Type_LogisticsCostMachining/Attribute_PackagePrice.qbl
@@ -2,6 +2,6 @@
#parent: #root
Attribute PackagePrice
{
  #keys: '3[413988.0.1448874881][413988.0.1448874880][413988.0.1448874882]'
  ValueType: Number
  #keys: '3[415754.0.267850517][415754.0.267850516][415754.0.267850518]'
  ValueType: Real
}
_Main/BL/Type_LogisticsCostMachining/Attribute_PackagingCapacity.qbl
@@ -2,7 +2,7 @@
#parent: #root
Attribute PackagingCapacity
{
  #keys: '3[413988.0.1448874858][413988.0.1448874857][413988.0.1448874859]'
  #keys: '3[415754.0.267816701][415754.0.267816700][415754.0.267816702]'
  Description: '包装容量'
  ValueType: Number
  ValueType: Real
}
_Main/BL/Type_LogisticsCostMachining/Attribute_StoragePrice.qbl
@@ -2,7 +2,7 @@
#parent: #root
Attribute StoragePrice
{
  #keys: '3[413988.0.1448874957][413988.0.1448874956][413988.0.1448874958]'
  #keys: '3[415754.0.267850554][415754.0.267850553][415754.0.267850555]'
  Description: '仓储单价'
  ValueType: Number
  ValueType: Real
}
_Main/BL/Type_LogisticsCostMachining/Attribute_UnpackingPrice.qbl
@@ -2,7 +2,7 @@
#parent: #root
Attribute UnpackingPrice
{
  #keys: '3[413988.0.1448874891][413988.0.1448874890][413988.0.1448874892]'
  #keys: '3[415754.0.267816738][415754.0.267816737][415754.0.267816739]'
  Description: '拆包单价'
  ValueType: Number
  ValueType: Real
}
_Main/BL/Type_LogisticsCostMachining/Attribute_WarehousingPrice.qbl
@@ -2,7 +2,7 @@
#parent: #root
Attribute WarehousingPrice
{
  #keys: '3[413988.0.1448874934][413988.0.1448874933][413988.0.1448874935]'
  #keys: '3[415754.0.267816775][415754.0.267816774][415754.0.267816776]'
  Description: '入库单价'
  ValueType: Number
  ValueType: Real
}
_Main/BL/Type_LogisticsCostMachining/Attribute_WoodenCratePrice.qbl
@@ -2,7 +2,7 @@
#parent: #root
Attribute WoodenCratePrice
{
  #keys: '3[413988.0.1448874901][413988.0.1448874900][413988.0.1448874902]'
  #keys: '3[415754.0.267850591][415754.0.267850590][415754.0.267850592]'
  Description: '木箱单价'
  ValueType: Number
  ValueType: Real
}
_Main/BL/Type_LogisticsCostMaterialRack/Attribute_CleanPrice.qbl
@@ -2,7 +2,7 @@
#parent: #root
Attribute CleanPrice
{
  #keys: '3[413988.0.1448875010][413988.0.1448875009][413988.0.1448875011]'
  #keys: '3[415754.0.267816834][415754.0.267816833][415754.0.267816835]'
  Description: '清洗单价'
  ValueType: Number
  ValueType: Real
}
_Main/BL/Type_LogisticsCostMaterialRack/Attribute_OutboundPrice.qbl
@@ -2,7 +2,7 @@
#parent: #root
Attribute OutboundPrice
{
  #keys: '3[413988.0.1448874987][413988.0.1448874986][413988.0.1448874988]'
  #keys: '3[415754.0.267816869][415754.0.267816868][415754.0.267816870]'
  Description: '出库单价'
  ValueType: Number
  ValueType: Real
}
_Main/BL/Type_LogisticsCostMaterialRack/Attribute_StoragePrice.qbl
@@ -2,7 +2,7 @@
#parent: #root
Attribute StoragePrice
{
  #keys: '3[413988.0.1448874997][413988.0.1448874996][413988.0.1448874998]'
  #keys: '3[415754.0.267816906][415754.0.267816905][415754.0.267816907]'
  Description: '仓储单价'
  ValueType: Number
  ValueType: Real
}
_Main/BL/Type_LogisticsCostMaterialRack/Attribute_WarehousingPrice.qbl
@@ -2,7 +2,7 @@
#parent: #root
Attribute WarehousingPrice
{
  #keys: '3[413988.0.1448874977][413988.0.1448874976][413988.0.1448874978]'
  #keys: '3[415754.0.267850713][415754.0.267850712][415754.0.267850714]'
  Description: '入库单价'
  ValueType: Number
  ValueType: Real
}
_Main/BL/Type_LogisticsCostTransport/Attribute_LoadingCapacity.qbl
@@ -2,7 +2,7 @@
#parent: #root
Attribute LoadingCapacity
{
  #keys: '3[413988.0.1448875053][413988.0.1448875052][413988.0.1448875054]'
  #keys: '3[415754.0.267816966][415754.0.267816965][415754.0.267816967]'
  Description: '装载容量'
  ValueType: Number
  ValueType: Real
}
_Main/BL/Type_LogisticsCostTransport/Attribute_TransportPrice.qbl
@@ -2,7 +2,7 @@
#parent: #root
Attribute TransportPrice
{
  #keys: '3[413988.0.1448875063][413988.0.1448875062][413988.0.1448875064]'
  #keys: '3[415754.0.267817001][415754.0.267817000][415754.0.267817002]'
  Description: '运输单价'
  ValueType: Number
  ValueType: Real
}
_Main/BL/Type_MachineLogisticsCostReportCell/StaticMethod_CreateData.qbl
@@ -44,7 +44,7 @@
                                tempPPC.PackagingPlanColumn().StartDate().Year()  = mlcrc.StartDate().Year()  and
                                tempPPC.PackagingPlanColumn().StartDate().Month() = mlcrc.StartDate().Month(),
                                tempPPC.Package() );
        cell.PackingCharges( packageQuantity * guard( lcm.PackagePrice(), 1 ) );
    //    cell.PackingCharges( packageQuantity * guard( lcm.PackagePrice(), 1 ) );
        
        // è®¾ç½®æ‹†åŒ…费用(拆包量 * æ‹†åŒ…单价)
        unpackingQuantity := sum( macroPlan, PackagingPlanRow.PackagingPlanCell, tempPPC, 
@@ -53,13 +53,13 @@
                                  tempPPC.PackagingPlanColumn().StartDate().Year()  = mlcrc.StartDate().Year()  and
                                  tempPPC.PackagingPlanColumn().StartDate().Month() = mlcrc.StartDate().Month(),
                                  tempPPC.Unpacking() );
        cell.UnpackingCost( unpackingQuantity * guard( lcm.UnpackingPrice(), 1 ) );
    //    cell.UnpackingCost( unpackingQuantity * guard( lcm.UnpackingPrice(), 1 ) );
        
        // è®¾ç½®ç¼“冲纸费用(包装类 * ç¼“冲纸单价)
        cell.BufferPaperCost( packageQuantity * guard( lcm.BufferPaperPrice(), 1 ) );
    //    cell.BufferPaperCost( packageQuantity * guard( lcm.BufferPaperPrice(), 1 ) );
        
        // è®¾ç½®æœ¨ç®±å•ä»·
        cell.UnitPriceOfWoodenCrate( guard( lcm.WoodenCratePrice(), 1 ) );
    //    cell.UnitPriceOfWoodenCrate( guard( lcm.WoodenCratePrice(), 1 ) );
        
        // è®¾ç½®è°ƒæ‹¨è´¹ç”¨ï¼ˆè°ƒæ‹¨æ•°é‡ / åŒ…装容量 / è£…载容量 * è¿è¾“单价)
        transferQuantity := sum( macroPlan, TransferPlanRow.TransferPlanCell, tempTPC,
@@ -68,13 +68,13 @@
                                 tempTPC.TransferPlanColumn().ColumnDate().Year()  = mlcrc.StartDate().Year()                               and
                                 tempTPC.TransferPlanColumn().ColumnDate().Month() = mlcrc.StartDate().Month(),
                                 [Number]tempTPC.Value() );
        cell.TransferCost( transferQuantity / guard( lcm.PackagingCapacity(), 1 ) / guard( lct.LoadingCapacity(), 1 ) * guard( lct.TransportPrice(), 1 ) );
    //    cell.TransferCost( transferQuantity / guard( lcm.PackagingCapacity(), 1 ) / guard( lct.LoadingCapacity(), 1 ) * guard( lct.TransportPrice(), 1 ) );
        
        // å¤–租库入库费用(入库量[包装量] / åŒ…装容量 * å…¥åº“单价)
        cell.StorageFeesForRentedWarehouses( packageQuantity / guard( lcm.PackagingCapacity(), 1 ) * guard( lcm.WarehousingPrice(), 1 ) );
    //    cell.StorageFeesForRentedWarehouses( packageQuantity / guard( lcm.PackagingCapacity(), 1 ) * guard( lcm.WarehousingPrice(), 1 ) );
        
        // å¤–租库出库费用(出库量[拆包量] / åŒ…装容量 * å‡ºåº“单价)
        cell.OutboundExpensesForRentedWarehouses( unpackingQuantity / guard( lcm.PackagingCapacity(), 1 ) * guard( lcm.OutboundPrice(), 1 ) );
    //    cell.OutboundExpensesForRentedWarehouses( unpackingQuantity / guard( lcm.PackagingCapacity(), 1 ) * guard( lcm.OutboundPrice(), 1 ) );
        
        // å¤–租库运输费用(运输数量 / åŒ…装容量 / è£…载容量 * è¿è¾“单价)
        
_Main/BL/Type_MachiningPipelineReport/StaticMethod_GetDefaultCCUnit.qbl
@@ -5,7 +5,8 @@
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    return '长春工厂';
    //return '长春工厂';
    return 'VWED CC';
    //return 'Assembly Plant (France)';
  *]
}
_Main/BL/Type_MachiningPipelineReport/StaticMethod_GetDefaultDLUnit.qbl
@@ -5,7 +5,8 @@
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    return '大连工厂';
    //return '大连工厂';
    return 'VWED DL';
    //return 'Assembly Plant (Spain)';
  *]
}
_Main/BL/Type_MachiningPipelineSource0/StaticMethod_Initialize.qbl
@@ -16,29 +16,29 @@
    table                     := source.Report( relnew, ID := source.Name(), Name := source.Name() );
    showtable                 := source.Report( relnew, ID := source.Name() + 'Show', Name := source.Name(), IsShow := true );
    
    search                    := source.Search( relnew, StartDate := Date::MinDate(), EndDate := Date::MaxDate(), TimeUnit := Translations::MP_GlobalParameters_Day() );
    search                    := owner.MachiningPipelineSearch( relnew, StartDate := Date::MinDate(), EndDate := Date::MaxDate(), TimeUnit := Translations::MP_GlobalParameters_Day() );
    
    products                  := construct( Product_MPs );
    //初始化列
    table.GenerateColumn( owner, 'All', search.StartDate(), search.EndDate() );
    endperiod                 := maxobject( owner, Period_MP, period, not period.IsHistorical() and period.TimeUnit() = Translations::MP_GlobalParameters_Day(), period.StartDate() );
    
    //生成装配、生产和库存数据
    //生成装配(长内库)、生产(的DL和库存数据
    traverse( owner, StockingPoint_MP, stockingpoint ){
      unit                    := stockingpoint.Unit();
      parentunits             := unit.GetAllParent();
      //是否属于长春工厂
      iscc                    := unit.ID() = ccunit or exists( parentunits, Elements, punit, punit.ID() = ccunit );
      iscc                    := stockingpoint.ID().StartsWith( 'CC' ) or unit.ID().StartsWith( 'CC' ) or exists( parentunits, Elements, punit, punit.ID().StartsWith( 'CC' ) );//unit.ID() = ccunit or exists( parentunits, Elements, punit, punit.ID() = ccunit );
      //是否属于大连工厂
      isdl                    := unit.ID() = dlunit or exists( parentunits, Elements, punit, punit.ID() = dlunit );
      //是否属于长春装配线
      isccassemnly            := unit.ID() = MachiningPipelineReport::GetDefaultCCAssemnlyUnit() or exists( parentunits, Elements, punit, punit.ID() = MachiningPipelineReport::GetDefaultCCAssemnlyUnit() );
      //是否属于大连装配线
      isdlassemnly            := unit.ID() = MachiningPipelineReport::GetDefaultDLAssemnlyUnit() or exists( parentunits, Elements, punit, punit.ID() = MachiningPipelineReport::GetDefaultDLAssemnlyUnit() );
      isdl                    := stockingpoint.ID().StartsWith( 'DL' ) or unit.ID().StartsWith( 'DL' ) or exists( parentunits, Elements, punit, punit.ID().StartsWith( 'DL' ) );//unit.ID() = dlunit or exists( parentunits, Elements, punit, punit.ID() = dlunit );
      //是否属于长春装配线CC厂内库
      isccassemnly            := stockingpoint.ID().EndsWith( '厂内库' ) and ( stockingpoint.ID().StartsWith( 'CC' ) or stockingpoint.ID().StartsWith( '长春' ) );//unit.ID() = MachiningPipelineReport::GetDefaultCCAssemnlyUnit() or exists( parentunits, Elements, punit, punit.ID() = MachiningPipelineReport::GetDefaultCCAssemnlyUnit() );
      //是否属于大连装配线DL厂内库
      isdlassemnly            := stockingpoint.ID().EndsWith( '厂内库' ) and ( stockingpoint.ID().StartsWith( 'DL' ) or stockingpoint.ID().StartsWith( '大连' ) );//unit.ID() = MachiningPipelineReport::GetDefaultDLAssemnlyUnit() or exists( parentunits, Elements, punit, punit.ID() = MachiningPipelineReport::GetDefaultDLAssemnlyUnit() );
      //是否属于长春机加产线
      isccproduction          := unit.ID() = MachiningPipelineReport::GetDefaultCCProductionUnit() or exists( parentunits, Elements, punit, punit.ID() = MachiningPipelineReport::GetDefaultCCProductionUnit() );
      isccproduction          := stockingpoint.ID().EndsWith( '线边库' ) and ( stockingpoint.ID().StartsWith( 'CC' ) or stockingpoint.ID().StartsWith( '长春' ) );//unit.ID() = MachiningPipelineReport::GetDefaultCCProductionUnit() or exists( parentunits, Elements, punit, punit.ID() = MachiningPipelineReport::GetDefaultCCProductionUnit() );
      //是否属于大连机加产线
      isdlproduction          := unit.ID() = MachiningPipelineReport::GetDefaultDLProductionUnit() or exists( parentunits, Elements, punit, punit.ID() = MachiningPipelineReport::GetDefaultDLProductionUnit() );
      isdlproduction          := unit.ID().EndsWith( 'MoMo' ) and unit.ID().StartsWith( 'DL' );//unit.ID() = MachiningPipelineReport::GetDefaultDLProductionUnit() or exists( parentunits, Elements, punit, punit.ID() = MachiningPipelineReport::GetDefaultDLProductionUnit() );
      if( iscc or isdl ){
        traverse( stockingpoint, ProductInStockingPoint_MP, pisp,  pisp.Product_MP().IsLeaf() and not pisp.IsSystem() 
    //              and exists( pisp.Product_MP().GetAllParent(), Elements, e, e.ID() = productparent ) 
_Main/BL/Type_OfflinePlanCell/StaticMethod_RefreshOfflinePlan.qbl
@@ -13,7 +13,7 @@
    // ç”Ÿæˆä¸‹çº¿è®¡åˆ’表
    traverse ( macroPlan, Unit, u, u.HasCapacityTypeTime() 
    //           and u.Name() = "eMotor Assy (France)" // æµ‹è¯•本地场景时可以过滤
    //           and u.Name() = "CC-MoMo"              // æµ‹è¯•实际场景时可以过滤
    //           and u.Name() = "DL-MoMo"              // æµ‹è¯•实际场景时可以过滤
              ) {
      // åˆ›å»ºäº§çº¿è¡Œ
      opt.OfflinePlanRow( relnew, ProductionLine := u.ID(), ProductID := "", Type := "0" );
@@ -145,9 +145,12 @@
      previousColumn := indexColumn.PreviousColumn();
      nextColumn     := indexColumn.NextColumn();
      
      while ( not isnull( indexColumn.NextColumn() ) ) {
      while ( not isnull( indexColumn.NextColumn() )
    //          and indexColumn.ColumnDate() <= Date::Construct( 2024, 4, 16 ) // æµ‹è¯•实际场景时可以过滤
             ) {
        productionSerialNumber := 1;
        opcs                   := selectsortedset( indexColumn, OfflinePlanCell, tempOPC, tempOPC.FindType( "2", pl ), tempOPC.InventoryWeight() );
        initialSize            := opcs.Size();
        if ( opcs.Size() > 0 ) {
          // åˆ¤å®š1
          previousOPC := maxselect( previousColumn, OfflinePlanCell, tempOPC, tempOPC.FindType( "2", pl ), tempOPC.ProductionSerialNumber() );
@@ -172,8 +175,8 @@
                                 exists( nextColumn, OfflinePlanCell, nextOPC, nextOPC.FindType( "2", pl ) and nextOPC.OfflinePlanRow().ProductID() = tempOPC.OfflinePlanRow().ProductID() ) );
          if ( nextOPCs.Size() = 1 ) {
            opc := nextOPCs.Element( 0 );
            opc.Value( "#" + opcs.Size().Format( "N(LPad0(2))" ) );
            opc.ProductionSerialNumber( opcs.Size() );
            opc.Value( "#" + initialSize.Format( "N(LPad0(2))" ) );
            opc.ProductionSerialNumber( initialSize );
            opcs.Remove( opc );
          }
          
_Main/BL/Type_TransferPlanCell/StaticMethod_GenerateReport.qbl
@@ -14,7 +14,7 @@
    // ç”Ÿæˆè°ƒæ‹¨è®¡åˆ’
    traverse ( macroPlan, Unit, u, u.HasCapacityTypeTransportQuantity() ) {
      traverse ( u, Lane.LaneLeg.Trip, t ) {
        traverse ( t, ProductInTrip, pit, pit.Quantity() > 0.0 ) {
        traverse ( t, ProductInTrip, pit, pit.Quantity() > 0.0 and exists( pit.Product_MP(), AllParent.AsParent, tempP, tempP.ID() = "机加件" ) ) {
          // æ‰¾è¡Œ
          tpr := TransferPlanRow::FindTransferPlanRowTypeIndex( TransferPlanRow::IdentifyTheFactory( t.LaneLeg().AsOriginStockingPointLeg().StockingPoint_MP() ),
                                                                TransferPlanRow::IdentifyTheFactory( t.LaneLeg().AsDestinationStockingPointLeg().StockingPoint_MP() ),
@@ -57,6 +57,16 @@
      indexDate := indexDate + 1;
    }
    
    // è¡¥é½ç©ºæ ¼å­
    traverse ( macroPlan, TransferPlanRow, tpr ) {
      traverse ( macroPlan, TransferPlanColumn, tpc, tpc.ColumnDate() >= minselect( macroPlan, TransferPlanColumn, tempTPC, true, tempTPC.ColumnDate() ).ColumnDate() ) {
        cell := select( tpr, TransferPlanCell, tempTPC, tempTPC.TransferPlanColumn() = tpc );
        if ( isnull( cell ) ) {
          cell := tpc.TransferPlanCell( relnew, Value := "" );
          cell.TransferPlanRow( relset, tpr );
        }
      }
    }
    
    // ç”Ÿæˆäº§å“åˆ—
    minDateTPC := macroPlan.TransferPlanColumn( relnew,
_Main/BL/Type_TransferPlanRow/Method_Filter.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
Quintiq file version 2.0
#parent: #root
Method Filter (
  Product_MPs products
) declarative remote as Boolean
{
  TextBody:
  [*
    flag := exists( products, Elements, tempP, tempP.ID() = this.ProductID() );
    return flag;
  *]
}
_Main/Sys/Repr/Global/CCEngineLogisticsCostCell.qrp
@@ -2,40 +2,40 @@
#parent: #root
TypeRepresentation CCEngineLogisticsCostCell
{
  AttributeRepresentation AllCost
  {
    AttributeKey: '[415136.0.1160240044]'
    Synonym: '总费用'
  }
  AttributeRepresentation Coefficient
  {
    AttributeKey: '[415136.0.986844757]'
    Synonym: '系数'
  }
  AttributeRepresentation EstimatedTotalCost
  AttributeRepresentation EstimateTotalCost
  {
    AttributeKey: '[415136.0.986844738]'
    AttributeKey: '[415136.0.1160240036]'
    Synonym: '预计总费用'
  }
  AttributeRepresentation FactoryToRentTransCost
  AttributeRepresentation RentInCost
  {
    AttributeKey: '[415136.0.986844780]'
    Synonym: '厂内到外租库运输费用'
  }
  AttributeRepresentation RentEnterCost
  {
    AttributeKey: '[415136.0.986881422]'
    AttributeKey: '[415136.0.1160164662]'
    Synonym: '外租库入库费用'
  }
  AttributeRepresentation RentOutCost
  AttributeRepresentation RentOutOfCost
  {
    AttributeKey: '[415136.0.986881432]'
    AttributeKey: '[415136.0.1160164672]'
    Synonym: '外租库出库费用'
  }
  AttributeRepresentation RentStorageCost
  AttributeRepresentation RentStorCost
  {
    AttributeKey: '[415136.0.986881445]'
    AttributeKey: '[415136.0.1160164707]'
    Synonym: '外租库仓储费用'
  }
  AttributeRepresentation TotalCost
  AttributeRepresentation WerkToRentTransCost
  {
    AttributeKey: '[415136.0.986844770]'
    Synonym: '总费用'
    AttributeKey: '[415136.0.1160240024]'
    Synonym: '厂内到外租库运输费用'
  }
  RelationRepresentation Column { RelationKey: '[415136.0.986881392]' Visibility: 'Normal' }
}
_Main/Sys/Repr/Global/DLEngineLogisticsCostCell.qrp
@@ -2,29 +2,34 @@
#parent: #root
TypeRepresentation DLEngineLogisticsCostCell
{
  AttributeRepresentation CCLongTransCoat
  AttributeRepresentation AllCost
  {
    AttributeKey: '[415136.0.992900331]'
    AttributeKey: '[415136.0.1160164830]'
    Synonym: '总费用'
  }
  AttributeRepresentation CCLongTransCost
  {
    AttributeKey: '[415136.0.1160164734]'
    Synonym: '长春长途运输费用'
  }
  AttributeRepresentation CCRentEnterCost
  AttributeRepresentation CCRentInCost
  {
    AttributeKey: '[415136.0.992900044]'
    AttributeKey: '[415136.0.1160164742]'
    Synonym: '长春外租库入库费用'
  }
  AttributeRepresentation CCRentOutCost
  AttributeRepresentation CCRentOutOfCost
  {
    AttributeKey: '[415136.0.992900047]'
    AttributeKey: '[415136.0.1160164750]'
    Synonym: '长春外租库出库费用'
  }
  AttributeRepresentation CCRentStorageCost
  AttributeRepresentation CCRentStorCost
  {
    AttributeKey: '[415136.0.992900050]'
    AttributeKey: '[415136.0.1160164771]'
    Synonym: '长春外租库仓储费用'
  }
  AttributeRepresentation CCShortTransCost
  AttributeRepresentation CCShorTransCost
  {
    AttributeKey: '[415136.0.992900341]'
    AttributeKey: '[415136.0.1160164779]'
    Synonym: '长春短途运输费用'
  }
  AttributeRepresentation Coefficient
@@ -32,35 +37,30 @@
    AttributeKey: '[415136.0.992900035]'
    Synonym: '系数'
  }
  AttributeRepresentation DLRentEnterCost
  AttributeRepresentation DLRentInCost
  {
    AttributeKey: '[415136.0.992900241]'
    AttributeKey: '[415136.0.1160164787]'
    Synonym: '大连外租库入库费用'
  }
  AttributeRepresentation DLRentOutCost
  AttributeRepresentation DLRentOutOfCost
  {
    AttributeKey: '[415136.0.992900248]'
    AttributeKey: '[415136.0.1160164795]'
    Synonym: '大连外租库出库费用'
  }
  AttributeRepresentation DLRentStorageCost
  AttributeRepresentation DLRentStorCost
  {
    AttributeKey: '[415136.0.992900261]'
    AttributeKey: '[415136.0.1160164806]'
    Synonym: '大连外租库仓储费用'
  }
  AttributeRepresentation EstimatedTotalCost
  AttributeRepresentation EstimateTotalCost
  {
    AttributeKey: '[415136.0.992900038]'
    AttributeKey: '[415136.0.1160164814]'
    Synonym: '预计总费用'
  }
  AttributeRepresentation FactoryToDLRentTransCost
  AttributeRepresentation WerkToDLRentTransCost
  {
    AttributeKey: '[415136.0.992900041]'
    Synonym: '厂内到大连外租库运输费用'
  }
  AttributeRepresentation TotalCost
  {
    AttributeKey: '[415136.0.992900053]'
    Synonym: '总费用'
    AttributeKey: '[415136.0.1160164822]'
    Synonym: '厂内到外租库运输费用'
  }
  RelationRepresentation Column { RelationKey: '[415136.0.992900194]' Visibility: 'Normal' }
}
_Main/Sys/Repr/Global/LogisticsCostEngine.qrp
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,66 @@
Quintiq file version 2.0
#parent: #root
TypeRepresentation LogisticsCostEngine
{
  AttributeRepresentation OtherPrice
  {
    AttributeKey: '[415754.0.267816043]'
    Conditional:
    [
    ]
    DataRepresentation.Default
    {
      FormatString: 'N(Dec(2))'
      InheritFormatting: false
    }
  }
  AttributeRepresentation OutboundPrice
  {
    AttributeKey: '[415754.0.267816078]'
    Conditional:
    [
    ]
    DataRepresentation.Default
    {
      FormatString: 'N(Dec(2))'
      InheritFormatting: false
    }
  }
  AttributeRepresentation PackagingCapacity
  {
    AttributeKey: '[415754.0.267850179]'
    Conditional:
    [
    ]
    DataRepresentation.Default
    {
      FormatString: 'N(Dec(2))'
      InheritFormatting: false
    }
  }
  AttributeRepresentation StoragePrice
  {
    AttributeKey: '[415754.0.267850216]'
    Conditional:
    [
    ]
    DataRepresentation.Default
    {
      FormatString: 'N(Dec(2))'
      InheritFormatting: false
    }
  }
  AttributeRepresentation WarehousingPrice
  {
    AttributeKey: '[415754.0.267816115]'
    Conditional:
    [
    ]
    DataRepresentation.Default
    {
      FormatString: 'N(Dec(2))'
      InheritFormatting: false
    }
  }
  RelationRepresentation MacroPlan { RelationKey: '[413988.0.1448874692]' Visibility: 'Normal' }
}
_Main/Sys/Repr/Global/LogisticsCostMachining.qrp
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,102 @@
Quintiq file version 2.0
#parent: #root
TypeRepresentation LogisticsCostMachining
{
  AttributeRepresentation BufferPaperPrice
  {
    AttributeKey: '[415754.0.267816661]'
    Conditional:
    [
    ]
    DataRepresentation.Default
    {
      FormatString: 'N(Dec(2))'
      InheritFormatting: false
    }
  }
  AttributeRepresentation OutboundPrice
  {
    AttributeKey: '[415754.0.267850481]'
    Conditional:
    [
    ]
    DataRepresentation.Default
    {
      FormatString: 'N(Dec(2))'
      InheritFormatting: false
    }
  }
  AttributeRepresentation PackagePrice
  {
    AttributeKey: '[415754.0.267850516]'
    Conditional:
    [
    ]
    DataRepresentation.Default
    {
      FormatString: 'N(Dec(2))'
      InheritFormatting: false
    }
  }
  AttributeRepresentation PackagingCapacity
  {
    AttributeKey: '[415754.0.267816700]'
    Conditional:
    [
    ]
    DataRepresentation.Default
    {
      FormatString: 'N(Dec(2))'
      InheritFormatting: false
    }
  }
  AttributeRepresentation StoragePrice
  {
    AttributeKey: '[415754.0.267850553]'
    Conditional:
    [
    ]
    DataRepresentation.Default
    {
      FormatString: 'N(Dec(2))'
      InheritFormatting: false
    }
  }
  AttributeRepresentation UnpackingPrice
  {
    AttributeKey: '[415754.0.267816737]'
    Conditional:
    [
    ]
    DataRepresentation.Default
    {
      FormatString: 'N(Dec(2))'
      InheritFormatting: false
    }
  }
  AttributeRepresentation WarehousingPrice
  {
    AttributeKey: '[415754.0.267816774]'
    Conditional:
    [
    ]
    DataRepresentation.Default
    {
      FormatString: 'N(Dec(2))'
      InheritFormatting: false
    }
  }
  AttributeRepresentation WoodenCratePrice
  {
    AttributeKey: '[415754.0.267850590]'
    Conditional:
    [
    ]
    DataRepresentation.Default
    {
      FormatString: 'N(Dec(2))'
      InheritFormatting: false
    }
  }
  RelationRepresentation MacroPlan { RelationKey: '[413988.0.1448874705]' Visibility: 'Normal' }
}
_Main/Sys/Repr/Global/LogisticsCostMaterialRack.qrp
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,54 @@
Quintiq file version 2.0
#parent: #root
TypeRepresentation LogisticsCostMaterialRack
{
  AttributeRepresentation CleanPrice
  {
    AttributeKey: '[415754.0.267816833]'
    Conditional:
    [
    ]
    DataRepresentation.Default
    {
      FormatString: 'N(Dec(2))'
      InheritFormatting: false
    }
  }
  AttributeRepresentation OutboundPrice
  {
    AttributeKey: '[415754.0.267816868]'
    Conditional:
    [
    ]
    DataRepresentation.Default
    {
      FormatString: 'N(Dec(2))'
      InheritFormatting: false
    }
  }
  AttributeRepresentation StoragePrice
  {
    AttributeKey: '[415754.0.267816905]'
    Conditional:
    [
    ]
    DataRepresentation.Default
    {
      FormatString: 'N(Dec(2))'
      InheritFormatting: false
    }
  }
  AttributeRepresentation WarehousingPrice
  {
    AttributeKey: '[415754.0.267850712]'
    Conditional:
    [
    ]
    DataRepresentation.Default
    {
      FormatString: 'N(Dec(2))'
      InheritFormatting: false
    }
  }
  RelationRepresentation MacroPlan { RelationKey: '[413988.0.1448874718]' Visibility: 'Normal' }
}
_Main/Sys/Repr/Global/LogisticsCostTransport.qrp
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,30 @@
Quintiq file version 2.0
#parent: #root
TypeRepresentation LogisticsCostTransport
{
  AttributeRepresentation LoadingCapacity
  {
    AttributeKey: '[415754.0.267816965]'
    Conditional:
    [
    ]
    DataRepresentation.Default
    {
      FormatString: 'N(Dec(2))'
      InheritFormatting: false
    }
  }
  AttributeRepresentation TransportPrice
  {
    AttributeKey: '[415754.0.267817000]'
    Conditional:
    [
    ]
    DataRepresentation.Default
    {
      FormatString: 'N(Dec(2))'
      InheritFormatting: false
    }
  }
  RelationRepresentation MacroPlan { RelationKey: '[413988.0.1448874731]' Visibility: 'Normal' }
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_abgSecondDevelopmentPlan.def
@@ -32,7 +32,7 @@
      Properties:
      [
        Image: 'LIGHTBULB'
        Label: 'Offline plan'
        Label: 'Output plan'
        Taborder: 1
      ]
    }
@@ -44,7 +44,7 @@
      [
        Description: 'AssemblyOnlinePlan'
        Image: 'PALM_TREE'
        Label: 'Assembly online plan'
        Label: 'Filing plan'
        Taborder: 2
      ]
    }
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Component_MatrixEditorTable#358.def
@@ -26,7 +26,7 @@
      ]
      Properties:
      [
        Attributes: 'RentEnterCost;RentOutCost;FactoryToRentTransCost;RentStorageCost;EstimatedTotalCost;Coefficient;TotalCost'
        Attributes: 'RentInCost;RentOutOfCost;WerkToRentTransCost;RentStorCost;EstimateTotalCost;Coefficient;AllCost'
        Column: 'Column'
        Row: 'Row'
        Taborder: 0
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Component_PanelExport#670.def
@@ -25,6 +25,26 @@
        Taborder: 0
      ]
    }
    Component ButtonImport
    {
      #keys: '[415136.0.1153801819]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'IMPORT1'
        Taborder: 2
      ]
    }
    Component bRefresh
    {
      #keys: '[415136.0.1153802554]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'REFRESH'
        Taborder: 3
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Response_MatrixEditorTable_358_OnUpdateValue.def
@@ -19,10 +19,10 @@
      cell.Coefficient( value );
      traverse( table, Row, trow, trow.Name() = row.Name() ){
        traverse( trow, Cell, tcel, tcel.Column().Name() = column.Name() ){
          tcel.RentEnterCost( cell.RentEnterCost() );
          tcel.RentOutCost( cell.RentOutCost() );
          tcel.FactoryToRentTransCost( cell.FactoryToRentTransCost() );
          tcel.RentStorageCost( cell.RentStorageCost() );
          tcel.RentInCost( cell.RentInCost() );
          tcel.RentOutOfCost( cell.RentOutOfCost() );
          tcel.WerkToRentTransCost( cell.WerkToRentTransCost() );
          tcel.RentStorCost( cell.RentStorCost() );
          tcel.Coefficient( cell.Coefficient() );
        }
      }
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Response_OnCreated.def
@@ -11,14 +11,14 @@
    [*
      //初始化
      //if( not exists( MacroPlan, FinancialProductionSource, source, not source.IsImport() ) ){
        CCEngineLogisticsCostReport::Initialize( MacroPlan );
      //  CCEngineLogisticsCostReport::Initialize( MacroPlan );
      //}
      //info( '------------------1----------------' );
      table := selectobject( MacroPlan, CCEngineLogisticsCostReport, table, table.IsShow() );
      //table := selectobject( MacroPlan, CCEngineLogisticsCostReport, table, table.IsShow() );
      //info( '------------------2----------------', table.IsImport(), table.IsShow() );
      DataHolderTable.Data( table );
      //DataHolderTable.Data( table );
      
      dhSearch.Data( table.MacroPlan().CCEngineLogisticsCostSearch() );
      //dhSearch.Data( table.MacroPlan().CCEngineLogisticsCostSearch() );
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Response_PanelExport_670_ButtonImport_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
Quintiq file version 2.0
#parent: PanelExport_670/ButtonImport
Response OnClick () id:Response_PanelExport_670_ButtonImport_OnClick
{
  #keys: '[415136.0.1153801818]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( MacroPlan );
  *]
  QuillAction
  {
    Body:
    [*
      try {
        uploadJsonString := Application.GetFile();
        if ( uploadJsonString <> "" ) {
          uploadJson := JSON::Parse( uploadJsonString );
          Archive::VerifyTheFileName( uploadJson );
          fileName := uploadJson.Get( "name" ).GetString();
          base64String := uploadJson.Get( "data" ).GetString();
          webFileBinaryData := BinaryData::FromBase64EncodedString( base64String ).AsBinaryValue();
          CCEngineLogisticsCostReport::Import( MacroPlan, RecycleBin, webFileBinaryData, fileName );
          WebMessageBox::Success( Translations::A_VWED_Success() );
        }
      } onerror {
        WebMessageBox::Error( e.GeneralInformation() );
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Response_PanelExport_670_bRefresh_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
#parent: PanelExport_670/bRefresh
Response OnClick () id:Response_PanelExport_bRefresh_OnClick
{
  #keys: '[415136.0.1153802553]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( MacroPlan );
  *]
  QuillAction
  {
    Body:
    [*
      CCEngineLogisticsCostReport::Initialize( MacroPlan );
      table := selectobject( MacroPlan, CCEngineLogisticsCostReport, table, table.IsShow() );
      DataHolderTable.Data( table );
      //dhSearch.Data( table.MacroPlan().CCEngineLogisticsCostSearch() );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Response_PanelGeneration_969_ddslGeneration_OnSelectionChanged.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      if( dhSearch.Data().Generation() <> selection ){
      if( not isnull( dhSearch.Data() ) and dhSearch.Data().Generation() <> selection ){
        dhSearch.Data().Generation( selection );
      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
      }
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Response_PanelMQBMLB_667_ddslMQBMLB_OnSelectionChanged.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      if( dhSearch.Data().MqbMlb() <> selection ){
      if( not isnull( dhSearch.Data() ) and dhSearch.Data().MqbMlb() <> selection ){
        dhSearch.Data().MqbMlb( selection );
      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
      }
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Response_PanelPower_653_ddslPower_OnSelectionChanged.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      if( dhSearch.Data().Power() <> selection ){
      if( not isnull( dhSearch.Data() ) and dhSearch.Data().Power() <> selection ){
        dhSearch.Data().Power( selection );
      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
      }
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/_ROOT_Component_FormCCEngineLogisticsCostReport.def
@@ -22,6 +22,21 @@
      #keys: '[415136.0.989500384]'
      BaseType: 'WebDataHolder'
      Databinding: 'CCEngineLogisticsCostSearch'
      Children:
      [
        Component deSearch
        {
          #keys: '[415136.0.1155813573]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'MacroPlan'
            Source: 'MacroPlan'
            Taborder: 0
            Transformation: 'CCEngineLogisticsCostSearch'
          ]
        }
      ]
      Properties:
      [
        Taborder: 1
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Component_MatrixEditorTable.def
@@ -26,7 +26,7 @@
      ]
      Properties:
      [
        Attributes: 'CCRentEnterCost;CCRentOutCost;CCLongTransCoat;CCShortTransCost;CCRentStorageCost;DLRentEnterCost;DLRentOutCost;FactoryToDLRentTransCost;DLRentStorageCost;EstimatedTotalCost;Coefficient;TotalCost'
        Attributes: 'CCRentInCost;CCRentOutOfCost;CCLongTransCost;CCShorTransCost;CCRentStorCost;DLRentInCost;DLRentOutOfCost;WerkToDLRentTransCost;DLRentStorCost;EstimateTotalCost;Coefficient;AllCost'
        Column: 'Column'
        Row: 'Row'
        Taborder: 0
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Component_PanelExport.def
@@ -25,6 +25,26 @@
        Taborder: 0
      ]
    }
    Component ButtonImport id:ButtonImport_85
    {
      #keys: '[415136.0.1153802162]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'IMPORT1'
        Taborder: 2
      ]
    }
    Component bRefresh id:bRefresh_427
    {
      #keys: '[415136.0.1153802325]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'REFRESH'
        Taborder: 3
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Response_OnCreated.def
@@ -11,15 +11,15 @@
    [*
      //初始化
      //if( not exists( MacroPlan, FinancialProductionSource, source, not source.IsImport() ) ){
        DLEngineLogisticsCostReport::Initialize( MacroPlan );
      //  DLEngineLogisticsCostReport::Initialize( MacroPlan );
      //}
      //info( '------------------1----------------' );
      table := selectobject( MacroPlan, DLEngineLogisticsCostReport, table, table.IsShow() );
      //table := selectobject( MacroPlan, DLEngineLogisticsCostReport, table, table.IsShow() );
      //info( '------------------2----------------', table.IsImport(), table.IsShow() );
      DataHolderTable.Data( table );
      //DataHolderTable.Data( table );
      
      dhSearch.Data( table.MacroPlan().DLEngineLogisticsCostSearch() );
      info( '------------------2----------------', isnull( dhSearch.Data() ) );
      //dhSearch.Data( table.MacroPlan().DLEngineLogisticsCostSearch() );
      //info( '------------------2----------------', isnull( dhSearch.Data() ) );
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Response_PanelExport_ButtonImport_OnClick#130.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
Quintiq file version 2.0
#parent: PanelExport/ButtonImport_85
Response OnClick () id:Response_PanelExport_670_ButtonImport_OnClick_130
{
  #keys: '[415136.0.1153802161]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( MacroPlan );
  *]
  QuillAction
  {
    Body:
    [*
      try {
        uploadJsonString := Application.GetFile();
        if ( uploadJsonString <> "" ) {
          uploadJson := JSON::Parse( uploadJsonString );
          Archive::VerifyTheFileName( uploadJson );
          fileName := uploadJson.Get( "name" ).GetString();
          base64String := uploadJson.Get( "data" ).GetString();
          webFileBinaryData := BinaryData::FromBase64EncodedString( base64String ).AsBinaryValue();
          DLEngineLogisticsCostReport::Import( MacroPlan, RecycleBin, webFileBinaryData, fileName );
          WebMessageBox::Success( Translations::A_VWED_Success() );
        }
      } onerror {
        WebMessageBox::Error( e.GeneralInformation() );
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Response_PanelExport_bRefresh_OnClick#57.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
#parent: PanelExport/bRefresh_427
Response OnClick () id:Response_pHeader_bRefresh_OnClick_57
{
  #keys: '[415136.0.1153802324]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( MacroPlan );
  *]
  QuillAction
  {
    Body:
    [*
      DLEngineLogisticsCostReport::Initialize( MacroPlan );
      table := selectobject( MacroPlan, DLEngineLogisticsCostReport, table, table.IsShow() );
      DataHolderTable.Data( table );
      //dhSearch.Data( MacroPlan.DLEngineLogisticsCostSearch() );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Response_PanelGeneration_ddslGeneration_OnSelectionChanged.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      if( dhSearch.Data().Generation() <> selection ){
      if( not isnull( dhSearch.Data() ) and dhSearch.Data().Generation() <> selection ){
        dhSearch.Data().Generation( selection );
      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
      }
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Response_PanelMQBMLB_ddslMQBMLB_OnSelectionChanged.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      if( dhSearch.Data().MqbMlb() <> selection ){
      if( not isnull( dhSearch.Data() ) and dhSearch.Data().MqbMlb() <> selection ){
        dhSearch.Data().MqbMlb( selection );
      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
      }
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Response_PanelPower_ddslPower_OnSelectionChanged.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      if( dhSearch.Data().Power() <> selection ){
      if( not isnull( dhSearch.Data() ) and dhSearch.Data().Power() <> selection ){
        dhSearch.Data().Power( selection );
      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
      }
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/_ROOT_Component_FormDLEngineLogisticsCostReport.def
@@ -22,6 +22,21 @@
      #keys: '[415136.0.992750376]'
      BaseType: 'WebDataHolder'
      Databinding: 'DLEngineLogisticsCostSearch'
      Children:
      [
        Component deSearch
        {
          #keys: '[415136.0.1155813898]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'MacroPlan'
            Source: 'MacroPlan'
            Taborder: 0
            Transformation: 'DLEngineLogisticsCostSearch'
          ]
        }
      ]
      Properties:
      [
        Taborder: 1
_Main/UI/MacroPlannerWebApp/Component_FormEnginePipelineReport/Component_PanelExport#570.def
@@ -25,6 +25,16 @@
        Taborder: 0
      ]
    }
    Component bRefresh id:bRefresh_765
    {
      #keys: '[415136.0.1153803836]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'REFRESH'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormEnginePipelineReport/Response_OnCreated.def
@@ -10,14 +10,14 @@
    Body:
    [*
      //if( not isnull( MacroPlan.EnginePipelineSource() ) ){
        EnginePipelineSource::Initialize( MacroPlan );
      //  EnginePipelineSource::Initialize( MacroPlan );
      //}
      //info( '------------------1----------------' );
      table := selectobject( MacroPlan, EnginePipelineSource.Report, table, table.IsShow() );
      //table := selectobject( MacroPlan, EnginePipelineSource.Report, table, table.IsShow() );
      //info( '------------------2----------------', table.IsShow() );
      DataHolderTable.Data( table );
      //DataHolderTable.Data( table );
      
      dhSearch.Data( table.Source().Search() );
      //dhSearch.Data( table.Source().Search() );
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FormEnginePipelineReport/Response_PanelExport_570_bRefresh_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
#parent: PanelExport_570/bRefresh_765
Response OnClick () id:Response_PanelExport_bRefresh_OnClick
{
  #keys: '[415136.0.1153803835]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( MacroPlan );
  *]
  QuillAction
  {
    Body:
    [*
      EnginePipelineSource::Initialize( MacroPlan );
      table := selectobject( MacroPlan, EnginePipelineSource.Report, table, table.IsShow() );
      DataHolderTable.Data( table );
      dhSearch.Data( MacroPlan.EnginePipelineSearch() );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormEnginePipelineReport/Response_PanelPeriod_325_DateSelectorEnd_OnChanged.def
@@ -13,7 +13,7 @@
      if( this.Date() < DateSelectorStart.Date() ){
        this.HintError( 'The end date cannot be less than the start date!' );
      }else{
        if( dhSearch.Data().EndDate() <> this.Date() ){
        if( not isnull( dhSearch.Data() ) and dhSearch.Data().EndDate() <> this.Date() ){
          dhSearch.Data().EndDate( this.Date() );
      //    DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
        }
_Main/UI/MacroPlannerWebApp/Component_FormEnginePipelineReport/Response_PanelPeriod_325_DateSelectorStart_OnChanged.def
@@ -13,7 +13,7 @@
      if( this.Date() > DateSelectorEnd.Date() ){
        this.HintError( 'The start date cannot be later than the end date!' );
      }else{
        if( dhSearch.Data().StartDate() <> this.Date() ){
        if( not isnull( dhSearch.Data() ) and dhSearch.Data().StartDate() <> this.Date() ){
          dhSearch.Data().StartDate( this.Date() );
      //    DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
        }
_Main/UI/MacroPlannerWebApp/Component_FormEnginePipelineReport/Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnChanged.def
@@ -10,7 +10,7 @@
    Body:
    [*
      //区间改变后刷新显示
      if( dhSearch.Data().TimeUnit() <> this.BoundValue() ){
      if( not isnull( dhSearch.Data() ) and dhSearch.Data().TimeUnit() <> this.BoundValue() ){
        dhSearch.Data().TimeUnit( this.BoundValue() );
      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
      }
_Main/UI/MacroPlannerWebApp/Component_FormEnginePipelineReport/_ROOT_Component_FormEnginePipelineReport.def
@@ -22,6 +22,21 @@
      #keys: '[415136.0.884990864]'
      BaseType: 'WebDataHolder'
      Databinding: 'EnginePipelineSearch'
      Children:
      [
        Component deSearch
        {
          #keys: '[415136.0.1155812008]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'MacroPlan'
            Source: 'MacroPlan'
            Taborder: 0
            Transformation: 'EnginePipelineSearch'
          ]
        }
      ]
      Properties:
      [
        Taborder: 1
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelExport.def
@@ -25,6 +25,16 @@
        Taborder: 0
      ]
    }
    Component bRefresh id:bRefresh_859
    {
      #keys: '[415136.0.1153802738]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'REFRESH'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_OnCreated.def
@@ -11,14 +11,14 @@
    [*
      //初始化
      //if( not exists( MacroPlan, FinancialProductionSource, source, not source.IsImport() ) ){
        FinancialProductionSource::Initialize( MacroPlan );
      //  FinancialProductionSource::Initialize( MacroPlan );
      //}
      //info( '------------------1----------------' );
      table := selectobject( MacroPlan, FinancialProductionSource.FinancialProductionReport, table, not table.IsImport() and table.IsShow() );
      //table := selectobject( MacroPlan, FinancialProductionSource.FinancialProductionReport, table, not table.IsImport() and table.IsShow() );
      //info( '------------------2----------------', table.IsImport(), table.IsShow() );
      DataHolderTable.Data( table );
      //DataHolderTable.Data( table );
      
      dhSearch.Data( table.FinancialProductionSource().FinancialProductionSearch() );
      //dhSearch.Data( MacroPlan.FinancialProductionSearch() );
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelExport_bRefresh_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
#parent: PanelExport/bRefresh_859
Response OnClick () id:Response_PanelExport_670_bRefresh_OnClick
{
  #keys: '[415136.0.1153802737]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( MacroPlan );
  *]
  QuillAction
  {
    Body:
    [*
      FinancialProductionSource::Initialize( MacroPlan );
      table := selectobject( MacroPlan, FinancialProductionSource.FinancialProductionReport, table, not table.IsImport() and table.IsShow() );
      DataHolderTable.Data( table );
      //dhSearch.Data( MacroPlan.FinancialProductionSearch() );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelGeneration_ddslGeneration_OnSelectionChanged.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      if( dhSearch.Data().Generation() <> selection ){
      if( not isnull( dhSearch.Data() ) and dhSearch.Data().Generation() <> selection ){
        dhSearch.Data().Generation( selection );
      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
      }
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelMQBMLB_ddslMQBMLB_OnSelectionChanged.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      if( dhSearch.Data().MqbMlb() <> selection ){
      if( not isnull( dhSearch.Data() ) and dhSearch.Data().MqbMlb() <> selection ){
        dhSearch.Data().MqbMlb( selection );
      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
      }
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelPower_ddslPower_OnSelectionChanged.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      if( dhSearch.Data().Power() <> selection ){
      if( not isnull( dhSearch.Data() ) and dhSearch.Data().Power() <> selection ){
        dhSearch.Data().Power( selection );
      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
      }
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelUnit_ddslUnit_OnSelectionChanged.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      if( dhSearch.Data().Unit() <> selection ){
      if( not isnull( dhSearch.Data() ) and dhSearch.Data().Unit() <> selection ){
        dhSearch.Data().Unit( selection );
      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
      }
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/_ROOT_Component_FormFinancialProductionReport.def
@@ -24,6 +24,21 @@
      #keys: '[415136.0.849431513]'
      BaseType: 'WebDataHolder'
      Databinding: 'FinancialProductionSearch'
      Children:
      [
        Component deSearch
        {
          #keys: '[415136.0.1153870614]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'MacroPlan'
            Source: 'MacroPlan'
            Taborder: 0
            Transformation: 'FinancialProductionSearch'
          ]
        }
      ]
      Properties:
      [
        Taborder: 1
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelExport#545.def
@@ -25,6 +25,16 @@
        Taborder: 0
      ]
    }
    Component bRefresh
    {
      #keys: '[415136.0.1153802934]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'REFRESH'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_OnCreated.def
@@ -10,14 +10,14 @@
    Body:
    [*
      //if( not exists( MacroPlan, FinancialSalesSource, source, not source.IsImport() ) ){
        FinancialSalesSource::Initialize( MacroPlan );
      //  FinancialSalesSource::Initialize( MacroPlan );
      //}
      //info( '------------------1----------------' );
      table := selectobject( MacroPlan, FinancialSalesSource.FinancialSalesReport, table, not table.IsImport() and table.IsShow() );
      //table := selectobject( MacroPlan, FinancialSalesSource.FinancialSalesReport, table, not table.IsImport() and table.IsShow() );
      //info( '------------------2----------------', table.IsImport(), table.IsShow() );
      DataHolderTable.Data( table );
      //DataHolderTable.Data( table );
      
      dhSearch.Data( table.FinancialSalesSource().FinancialSalesSearch() );
      //dhSearch.Data( MacroPlan.FinancialSalesSearch() );
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelExport_545_bRefresh_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
#parent: PanelExport_545/bRefresh
Response OnClick () id:Response_PanelExport_bRefresh_OnClick
{
  #keys: '[415136.0.1153802933]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( MacroPlan );
  *]
  QuillAction
  {
    Body:
    [*
      FinancialSalesSource::Initialize( MacroPlan );
      table := selectobject( MacroPlan, FinancialSalesSource.FinancialSalesReport, table, not table.IsImport() and table.IsShow() );
      DataHolderTable.Data( table );
      //dhSearch.Data( MacroPlan.FinancialSalesSearch() );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelGeneration_844_ddslGeneration_OnSelectionChanged.def
@@ -10,7 +10,7 @@
    Body:
    [*
      //代数改变后刷新显示
      if( dhSearch.Data().Generation() <> selection ){
      if( not isnull( dhSearch.Data() ) and dhSearch.Data().Generation() <> selection ){
        dhSearch.Data().Generation( selection );
      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
      }
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelMQBMLB_603_ddslMQBMLB_OnSelectionChanged.def
@@ -10,7 +10,7 @@
    Body:
    [*
      //横纵制改变后刷新显示
      if( dhSearch.Data().MqbMlb() <> selection ){
      if( not isnull( dhSearch.Data() ) and dhSearch.Data().MqbMlb() <> selection ){
        dhSearch.Data().MqbMlb( selection );
      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
      }
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelPower_858_ddslPower_OnSelectionChanged.def
@@ -10,7 +10,7 @@
    Body:
    [*
      //功率改变后刷新显示
      if( dhSearch.Data().Power() <> selection ){
      if( not isnull( dhSearch.Data() ) and dhSearch.Data().Power() <> selection ){
        dhSearch.Data().Power( selection );
      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
      }
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelUnit_715_ddslUnit_OnSelectionChanged.def
@@ -10,7 +10,7 @@
    Body:
    [*
      //Unit更新后生成新的显示
      if( dhSearch.Data().Unit() <> selection ){
      if( not isnull( dhSearch.Data() ) and dhSearch.Data().Unit() <> selection ){
        dhSearch.Data().Unit( selection );
      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
      }
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/_ROOT_Component_FormFinancialSalesReport.def
@@ -22,6 +22,21 @@
      #keys: '[415136.0.857870874]'
      BaseType: 'WebDataHolder'
      Databinding: 'FinancialSalesSearch'
      Children:
      [
        Component deSearch
        {
          #keys: '[415136.0.1155080551]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'MacroPlan'
            Source: 'MacroPlan'
            Taborder: 0
            Transformation: 'FinancialSalesSearch'
          ]
        }
      ]
      Properties:
      [
        Taborder: 1
_Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/Component_PanelHeader.def
@@ -15,6 +15,16 @@
        Taborder: 0
      ]
    }
    Component bRefresh id:bRefresh_561
    {
      #keys: '[415136.0.1153803361]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'REFRESH'
        Taborder: 1
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/Response_OnCreated.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      FinancialWeeklyReport::Initialize( MacroPlan );
      //FinancialWeeklyReport::Initialize( MacroPlan );
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/Response_PanelHeader_bRefresh_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: PanelHeader/bRefresh_561
Response OnClick () id:Response_PanelExport_545_bRefresh_OnClick
{
  #keys: '[415136.0.1153803360]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( MacroPlan );
  *]
  QuillAction
  {
    Body:
    [*
      FinancialWeeklyReport::Initialize( MacroPlan );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Component_PanelExport.def
@@ -25,6 +25,16 @@
        Taborder: 0
      ]
    }
    Component bRefresh id:bRefresh_509
    {
      #keys: '[415136.0.1153803172]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'REFRESH'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_OnCreated.def
@@ -10,14 +10,14 @@
    Body:
    [*
      //if( not isnull( MacroPlan.InventorySummarySource() ) ){
        InventorySummarySource::Initialize( MacroPlan, InterfaceDataset );
      //  InventorySummarySource::Initialize( MacroPlan, InterfaceDataset );
      //}
      //info( '------------------1----------------' );
      table := selectobject( MacroPlan, InventorySummarySource.InventorySummaryReport, table, table.IsShow() );
      //table := selectobject( MacroPlan, InventorySummarySource.InventorySummaryReport, table, table.IsShow() );
      //info( '------------------2----------------', table.IsShow() );
      DataHolderTable.Data( table );
      //DataHolderTable.Data( table );
      
      dhSearch.Data( table.InventorySummarySource().InventorySummarySearch() );
      //dhSearch.Data( table.InventorySummarySource().InventorySummarySearch() );
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_PanelCategory_RadioButtonGroupUseForPlanning_OnChanged#847.def
@@ -10,7 +10,7 @@
    Body:
    [*
      //区间改变后刷新显示
      if( dhSearch.Data().Category() <> this.BoundValue() ){
      if( not isnull( dhSearch.Data() ) and dhSearch.Data().Category() <> this.BoundValue() ){
        dhSearch.Data().Category( this.BoundValue() );
      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
      }
_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_PanelExport_bRefresh_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
#parent: PanelExport/bRefresh_509
Response OnClick () id:Response_PanelExport_545_bRefresh_OnClick
{
  #keys: '[415136.0.1153803171]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( MacroPlan );
  *]
  QuillAction
  {
    Body:
    [*
      InventorySummarySource::Initialize( MacroPlan, InterfaceDataset );
      table := selectobject( MacroPlan, InventorySummarySource.InventorySummaryReport, table, table.IsShow() );
      DataHolderTable.Data( table );
      //dhSearch.Data( MacroPlan.InventorySummarySearch() );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_PanelGeneration_ddslGeneration_OnSelectionChanged.def
@@ -10,7 +10,7 @@
    Body:
    [*
      //代数改变后刷新显示
      if( dhSearch.Data().Generation() <> selection ){
      if( not isnull( dhSearch.Data() ) and dhSearch.Data().Generation() <> selection ){
        dhSearch.Data().Generation( selection );
      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
      }
_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_PanelMQBMLB_ddslMQBMLB_OnSelectionChanged.def
@@ -10,7 +10,7 @@
    Body:
    [*
      //横纵制改变后刷新显示
      if( dhSearch.Data().MqbMlb() <> selection ){
      if( not isnull( dhSearch.Data() ) and dhSearch.Data().MqbMlb() <> selection ){
        dhSearch.Data().MqbMlb( selection );
      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
      }
_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_PanelPeriod_DateSelectorEnd_OnChanged.def
@@ -13,7 +13,7 @@
      if( this.Date() < DateSelectorStart.Date() ){
        this.HintError( 'The end date cannot be less than the start date!' );
      }else{
        if( dhSearch.Data().EndDate() <> this.Date() ){
        if( not isnull( dhSearch.Data() ) and dhSearch.Data().EndDate() <> this.Date() ){
          dhSearch.Data().EndDate( this.Date() );
      //    DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
        }
_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_PanelPeriod_DateSelectorStart_OnChanged.def
@@ -13,7 +13,7 @@
      if( this.Date() > DateSelectorEnd.Date() ){
        this.HintError( 'The start date cannot be later than the end date!' );
      }else{
        if( dhSearch.Data().StartDate() <> this.Date() ){
        if( not isnull( dhSearch.Data() ) and dhSearch.Data().StartDate() <> this.Date() ){
          dhSearch.Data().StartDate( this.Date() );
      //    DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
        }
_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_PanelPower_ddslPower_OnSelectionChanged.def
@@ -10,7 +10,7 @@
    Body:
    [*
      //功率改变后刷新显示
      if( dhSearch.Data().Power() <> selection ){
      if( not isnull( dhSearch.Data() ) and dhSearch.Data().Power() <> selection ){
        dhSearch.Data().Power( selection );
      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
      }
_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_PanelUnit_ddslUnit_OnSelectionChanged.def
@@ -10,7 +10,7 @@
    Body:
    [*
      //Unit更新后生成新的显示
      if( dhSearch.Data().Unit() <> selection ){
      if( not isnull( dhSearch.Data() ) and dhSearch.Data().Unit() <> selection ){
        dhSearch.Data().Unit( selection );
      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
      }
_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/_ROOT_Component_FormInventorySummaryReport.def
@@ -22,6 +22,21 @@
      #keys: '[415136.0.864612034]'
      BaseType: 'WebDataHolder'
      Databinding: 'InventorySummarySearch'
      Children:
      [
        Component deSearch
        {
          #keys: '[415136.0.1153810823]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'MacroPlan'
            Source: 'MacroPlan'
            Taborder: 0
            Transformation: 'InventorySummarySearch'
          ]
        }
      ]
      Properties:
      [
        Taborder: 1
_Main/UI/MacroPlannerWebApp/Component_FormMachiningPipelineReport/Component_PanelExport.def
@@ -25,6 +25,16 @@
        Taborder: 0
      ]
    }
    Component bRefresh
    {
      #keys: '[415136.0.1153803668]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'REFRESH'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormMachiningPipelineReport/Response_OnCreated.def
@@ -10,14 +10,14 @@
    Body:
    [*
      //if( not isnull( MacroPlan.EnginePipelineSource() ) ){
        MachiningPipelineSource::Initialize( MacroPlan );
      //  MachiningPipelineSource::Initialize( MacroPlan );
      //}
      //info( '------------------1----------------' );
      table := selectobject( MacroPlan, MachiningPipelineSource.Report, table, table.IsShow() );
      //table := selectobject( MacroPlan, MachiningPipelineSource.Report, table, table.IsShow() );
      //info( '------------------2----------------', table.IsShow() );
      DataHolderTable.Data( table );
      //DataHolderTable.Data( table );
      
      dhSearch.Data( table.Source().Search() );
      //dhSearch.Data( table.Source().Search() );
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FormMachiningPipelineReport/Response_PanelExport_bRefresh_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
#parent: PanelExport/bRefresh
Response OnClick () id:Response_PanelHeader_bRefresh_OnClick
{
  #keys: '[415136.0.1153803667]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( MacroPlan );
  *]
  QuillAction
  {
    Body:
    [*
      MachiningPipelineSource::Initialize( MacroPlan );
      table := selectobject( MacroPlan, MachiningPipelineSource.Report, table, table.IsShow() );
      DataHolderTable.Data( table );
      dhSearch.Data( MacroPlan.MachiningPipelineSearch() );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormMachiningPipelineReport/Response_PanelPeriod_DateSelectorEnd_OnChanged.def
@@ -13,7 +13,7 @@
      if( this.Date() < DateSelectorStart.Date() ){
        this.HintError( 'The end date cannot be less than the start date!' );
      }else{
        if( dhSearch.Data().EndDate() <> this.Date() ){
        if( not isnull( dhSearch.Data() ) and dhSearch.Data().EndDate() <> this.Date() ){
          dhSearch.Data().EndDate( this.Date() );
      //    DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
        }
_Main/UI/MacroPlannerWebApp/Component_FormMachiningPipelineReport/Response_PanelPeriod_DateSelectorStart_OnChanged.def
@@ -13,7 +13,7 @@
      if( this.Date() > DateSelectorEnd.Date() ){
        this.HintError( 'The start date cannot be later than the end date!' );
      }else{
        if( dhSearch.Data().StartDate() <> this.Date() ){
        if( not isnull( dhSearch.Data() ) and dhSearch.Data().StartDate() <> this.Date() ){
          dhSearch.Data().StartDate( this.Date() );
      //    DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
        }
_Main/UI/MacroPlannerWebApp/Component_FormMachiningPipelineReport/Response_PanelTimeUnit_778_RadioButtonGroupUseForTimeUnit_OnChanged.def
@@ -10,7 +10,7 @@
    Body:
    [*
      //区间改变后刷新显示
      if( dhSearch.Data().TimeUnit() <> this.BoundValue() ){
      if( not isnull( dhSearch.Data() ) and dhSearch.Data().TimeUnit() <> this.BoundValue() ){
        dhSearch.Data().TimeUnit( this.BoundValue() );
      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
      }
_Main/UI/MacroPlannerWebApp/Component_FormMachiningPipelineReport/_ROOT_Component_FormMachiningPipelineReport.def
@@ -22,6 +22,21 @@
      #keys: '[415136.0.893820823]'
      BaseType: 'WebDataHolder'
      Databinding: 'MachiningPipelineSearch'
      Children:
      [
        Component deSearch
        {
          #keys: '[415136.0.1155813174]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'MacroPlan'
            Source: 'MacroPlan'
            Taborder: 0
            Transformation: 'MachiningPipelineSearch'
          ]
        }
      ]
      Properties:
      [
        Taborder: 1
_Main/UI/MacroPlannerWebApp/Component_FormTransferPlan/Component_MatrixEditor872.def
@@ -45,6 +45,8 @@
          Properties:
          [
            DataType: 'MacroPlan'
            FilterArguments: 'products:QLibMacroPlannerWebUI::ApplicationMacroPlanner.DataHolderCheckedProduct'
            FixedFilter: 'object.Filter( products )'
            Source: 'MacroPlan'
            Taborder: 0
            Transformation: 'TransferPlanRow'
_Main/UI/MacroPlannerWebApp/Views/LogisticsCostParameterSetting.vw
@@ -74,7 +74,7 @@
            {
              columnId: 'PackagingCapacity'
              dataPath: 'PackagingCapacity'
              dataType: 'number'
              dataType: 'real'
              index: 5
              subtotals: ''
              width: 86
@@ -83,7 +83,7 @@
            {
              columnId: 'WarehousingPrice'
              dataPath: 'WarehousingPrice'
              dataType: 'number'
              dataType: 'real'
              index: 6
              subtotals: ''
              width: 126
@@ -92,7 +92,7 @@
            {
              columnId: 'OutboundPrice'
              dataPath: 'OutboundPrice'
              dataType: 'number'
              dataType: 'real'
              index: 7
              subtotals: ''
              width: 126
@@ -101,7 +101,7 @@
            {
              columnId: 'StoragePrice'
              dataPath: 'StoragePrice'
              dataType: 'number'
              dataType: 'real'
              index: 8
              subtotals: ''
              width: 124
@@ -110,7 +110,7 @@
            {
              columnId: 'OtherPrice'
              dataPath: 'OtherPrice'
              dataType: 'number'
              dataType: 'real'
              index: 9
              subtotals: ''
              width: 127
@@ -188,7 +188,7 @@
            {
              columnId: 'LoadingCapacity'
              dataPath: 'LoadingCapacity'
              dataType: 'number'
              dataType: 'real'
              index: 5
              subtotals: ''
              width: 109
@@ -197,7 +197,7 @@
            {
              columnId: 'TransportPrice'
              dataPath: 'TransportPrice'
              dataType: 'number'
              dataType: 'real'
              index: 6
              subtotals: ''
              width: 150
@@ -257,7 +257,7 @@
            {
              columnId: 'WarehousingPrice'
              dataPath: 'WarehousingPrice'
              dataType: 'number'
              dataType: 'real'
              index: 3
              subtotals: ''
              width: 123
@@ -266,7 +266,7 @@
            {
              columnId: 'OutboundPrice'
              dataPath: 'OutboundPrice'
              dataType: 'number'
              dataType: 'real'
              index: 4
              subtotals: ''
              width: 124
@@ -275,7 +275,7 @@
            {
              columnId: 'StoragePrice'
              dataPath: 'StoragePrice'
              dataType: 'number'
              dataType: 'real'
              index: 5
              subtotals: ''
              width: 126
@@ -284,7 +284,7 @@
            {
              columnId: 'CleanPrice'
              dataPath: 'CleanPrice'
              dataType: 'number'
              dataType: 'real'
              index: 6
              subtotals: ''
              width: 128
@@ -353,7 +353,7 @@
            {
              columnId: 'PackagingCapacity'
              dataPath: 'PackagingCapacity'
              dataType: 'number'
              dataType: 'real'
              index: 4
              subtotals: ''
              width: 73
@@ -362,7 +362,7 @@
            {
              columnId: 'WarehousingPrice'
              dataPath: 'WarehousingPrice'
              dataType: 'number'
              dataType: 'real'
              index: 5
              subtotals: ''
              width: 126
@@ -371,7 +371,7 @@
            {
              columnId: 'OutboundPrice'
              dataPath: 'OutboundPrice'
              dataType: 'number'
              dataType: 'real'
              index: 6
              subtotals: ''
              width: 130
@@ -380,7 +380,7 @@
            {
              columnId: 'PackagePrice'
              dataPath: 'PackagePrice'
              dataType: 'number'
              dataType: 'real'
              index: 7
              subtotals: ''
              width: 131
@@ -389,7 +389,7 @@
            {
              columnId: 'UnpackingPrice'
              dataPath: 'UnpackingPrice'
              dataType: 'number'
              dataType: 'real'
              index: 8
              subtotals: ''
              width: 133
@@ -398,7 +398,7 @@
            {
              columnId: 'BufferPaperPrice'
              dataPath: 'BufferPaperPrice'
              dataType: 'number'
              dataType: 'real'
              index: 9
              subtotals: ''
              width: 135
@@ -407,7 +407,7 @@
            {
              columnId: 'StoragePrice'
              dataPath: 'StoragePrice'
              dataType: 'number'
              dataType: 'real'
              index: 10
              subtotals: ''
              width: 126
@@ -416,7 +416,7 @@
            {
              columnId: 'WoodenCratePrice'
              dataPath: 'WoodenCratePrice'
              dataType: 'number'
              dataType: 'real'
              index: 11
              subtotals: ''
              width: 79
_var/_Main/Data/MP_ChangeoverLossSetting.xlsx
Binary files differ