xiaoding721
2024-11-11 ee8ce391f8ee400130b49645a7717b62a7bf73cf
Merge branch 'dev' of http://47.101.211.7:10101/r/VWED into dev
已重命名4个文件
已添加43个文件
已修改32个文件
已删除4个文件
1684 ■■■■ 文件已修改
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_IsAllCostUpdate.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_IsCoefficientUpdate.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_IsEstimateTotalCostUpdate.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_IsRentInCostUpdate.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_IsRentOutOfCostUpdate.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_IsRentStorCostUpdate.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_IsUpdate.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_IsWerkToRentTransCostUpdate.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell/Method_CalcEstimateTotalCost.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_IsAllCostUpdate.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_IsCCLongTransCostUpdate.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_IsCCRentInCostUpdate.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_IsCCRentOutOfCostUpdate.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_IsCCRentStorCostUpdate.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_IsCCShorTransCostUpdate.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_IsCoefficientUpdate.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_IsDLRentInCostUpdate.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_IsDLRentOtherCostUpdate.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_IsDLRentOutOfCostUpdate.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_IsDLRentStorCostUpdate.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_IsEstimateTotalCostUpdate.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_IsUpdate.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_IsWerkToDLRentTransCostUpdate.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Method_CalcEstimateTotalCost.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport/Method_Generate.qbl 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_Import.qbl 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_Initialize.qbl 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport0/Method_Generate.qbl 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_Import.qbl 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CC_EngineRackCell/StaticMethod_CreateData.qbl 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DL_EngineRackCell/StaticMethod_CreateData.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionColumn/Attribute_IsDay.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionReport/Method_GenerateColumn.qbl 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionReport/Method_GenerateShow.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionRow/Method_Initialize#110.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionSource/Method_AfterImport.qbl 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionSource/StaticMethod_Download.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionSource/StaticMethod_Initialize.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesColumn/Attribute_IsDay.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesReport/Method_GenerateColumn.qbl 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesReport/Method_GenerateShow.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesRow/Method_Initialize.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesSource/Method_AfterImport.qbl 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesSource/StaticMethod_Download.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesSource/StaticMethod_InitializeNew.qbl 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialWeeklyReport/StaticMethod_Initialize.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InterfaceDataset/Method_PublishPlanReportData.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InterfaceDataset/StaticMethod_PushOfflinePlanData.qbl 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InterfaceLoginfo/StaticMethod_CallInterfaceForDataCenter_OfflinePlan.qbl 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachineLogisticsCostReportCell/Attribute_EstimatedTotalCost#455.qbl 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachineLogisticsCostReportCell/Attribute_IsUpateEstimatedTotalCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachineLogisticsCostReportCell/Attribute_IsUpdateBufferPaperCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachineLogisticsCostReportCell/Attribute_IsUpdateCoefficient.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachineLogisticsCostReportCell/Attribute_IsUpdateExternalRentalWarehouseTransportationCosts.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachineLogisticsCostReportCell/Attribute_IsUpdateOutboundExpensesForRentedWarehouses.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachineLogisticsCostReportCell/Attribute_IsUpdatePackingCharges.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachineLogisticsCostReportCell/Attribute_IsUpdateQuantityOfWoodenCrates.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachineLogisticsCostReportCell/Attribute_IsUpdateRentalWarehouseStorageFees.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachineLogisticsCostReportCell/Attribute_IsUpdateStorageFeesForRentedWarehouses.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachineLogisticsCostReportCell/Attribute_IsUpdateTotalCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachineLogisticsCostReportCell/Attribute_IsUpdateTransferCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachineLogisticsCostReportCell/Attribute_IsUpdateUnpackingCost#0.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachineLogisticsCostReportCell/Attribute_IsUpdateWoodenCrateCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachineLogisticsCostReportCell/Attribute_PackingCharges#420.qbl 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachineLogisticsCostReportCell/Method_SetCellValue.qbl 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachineLogisticsCostReportCell/StaticMethod_CreateData.qbl 83 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachineLogisticsCostReportCell/StaticMethod_Export.qbl 134 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachineLogisticsCostReportCell/StaticMethod_Import.qbl 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachineLogisticsCostReportColumn/Attribute_DisplayName.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachineLogisticsCostReportColumn/DefaultValue_DisplayName.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachineLogisticsCostReportColumn/Function_CalcDisplayName.qbl 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachineLogisticsCostReportRow/Attribute_Index.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OfflinePlanArchiveVersion/Method_GetRow.qbl 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OfflinePlanArchiveVersion/StaticMethod_RefreshData.qbl 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/Sys/Repr/Global/CCEngineLogisticsCostCell.qrp 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/Sys/Repr/Global/DLEngineLogisticsCostCell.qrp 134 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/Sys/Repr/Global/MachineLogisticsCostReportCell.qrp 140 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMachineLogisticsCostReport/Component_MatrixEditor912.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMachineLogisticsCostReport/Component_pHeader.def 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMachineLogisticsCostReport/Response_MatrixEditor912_OnUpdateValue.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMachineLogisticsCostReport/Response_pHeader_bExport_OnClick.def 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMachineLogisticsCostReport/Response_pHeader_bImport_OnClick#298.def 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Views/MachineLogisticsCostReport.vw 141 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_IsAllCostUpdate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute IsAllCostUpdate
{
  #keys: '3[415136.0.1293740107][415136.0.1293740106][415136.0.1293740108]'
  Description: '总费用是否被导入更新'
  ValueType: Boolean
}
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_IsCoefficientUpdate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute IsCoefficientUpdate
{
  #keys: '3[415136.0.1293740114][415136.0.1293740113][415136.0.1293740115]'
  Description: '系数是否被导入更新'
  ValueType: Boolean
}
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_IsEstimateTotalCostUpdate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute IsEstimateTotalCostUpdate
{
  #keys: '3[415136.0.1293740121][415136.0.1293740120][415136.0.1293740122]'
  Description: '预计总费用是否被导入更新'
  ValueType: Boolean
}
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_IsRentInCostUpdate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute IsRentInCostUpdate
{
  #keys: '3[415136.0.1293740128][415136.0.1293740127][415136.0.1293740129]'
  Description: '外租库入库费用是否被导入更新'
  ValueType: Boolean
}
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_IsRentOutOfCostUpdate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute IsRentOutOfCostUpdate
{
  #keys: '3[415136.0.1293740140][415136.0.1293740139][415136.0.1293740141]'
  Description: '外租库出库费用是否被导入更新'
  ValueType: Boolean
}
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_IsRentStorCostUpdate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute IsRentStorCostUpdate
{
  #keys: '3[415136.0.1293740147][415136.0.1293740146][415136.0.1293740148]'
  Description: '外租库仓储费用是否被导入更新'
  ValueType: Boolean
}
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_IsUpdate.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_IsWerkToRentTransCostUpdate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute IsWerkToRentTransCostUpdate
{
  #keys: '3[415136.0.1293740154][415136.0.1293740153][415136.0.1293740155]'
  Description: '厂内到外租库运输费用是否被导入更新'
  ValueType: Boolean
}
_Main/BL/Type_CCEngineLogisticsCostCell/Method_CalcEstimateTotalCost.qbl
ÎļþÃû´Ó _Main/BL/Type_CCEngineLogisticsCostCell/Function_CalcEstimateTotalCost.qbl ÐÞ¸Ä
@@ -1,13 +1,12 @@
Quintiq file version 2.0
#parent: #root
Function CalcEstimateTotalCost
Method CalcEstimateTotalCost () as Real
{
  TextBody:
  [*
    // ç”„兰鸽 Sep-24-2024 (created)
    // ç”„兰鸽 Nov-11-2024 (created)
    value := this.RentInCost() + this.RentOutOfCost() + this.WerkToRentTransCost() + this.RentStorCost();
    
    this.EstimateTotalCost( value );
    return value;
  *]
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_IsAllCostUpdate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute IsAllCostUpdate
{
  #keys: '3[415136.0.1293750020][415136.0.1293750019][415136.0.1293750021]'
  Description: '总费用是否被导入更新'
  ValueType: Boolean
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_IsCCLongTransCostUpdate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute IsCCLongTransCostUpdate
{
  #keys: '3[415136.0.1293740011][415136.0.1293740010][415136.0.1293740012]'
  Description: '长春长途运输费用是否被导入更新'
  ValueType: Boolean
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_IsCCRentInCostUpdate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute IsCCRentInCostUpdate
{
  #keys: '3[415136.0.1293740018][415136.0.1293740017][415136.0.1293740019]'
  Description: '长春外租库入库费用是否被导入更新'
  ValueType: Boolean
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_IsCCRentOutOfCostUpdate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute IsCCRentOutOfCostUpdate
{
  #keys: '3[415136.0.1293740025][415136.0.1293740024][415136.0.1293740026]'
  Description: '长春外租库出库费用是否被导入更新'
  ValueType: Boolean
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_IsCCRentStorCostUpdate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute IsCCRentStorCostUpdate
{
  #keys: '3[415136.0.1293740032][415136.0.1293740031][415136.0.1293740033]'
  Description: '长春外租库仓储费用是否被导入更新'
  ValueType: Boolean
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_IsCCShorTransCostUpdate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute IsCCShorTransCostUpdate
{
  #keys: '3[415136.0.1293740039][415136.0.1293740038][415136.0.1293740040]'
  Description: '长春短途运输费用是否被导入更新'
  ValueType: Boolean
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_IsCoefficientUpdate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute IsCoefficientUpdate
{
  #keys: '3[415136.0.1293740046][415136.0.1293740045][415136.0.1293740047]'
  Description: '系数是否被导入更新'
  ValueType: Boolean
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_IsDLRentInCostUpdate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute IsDLRentInCostUpdate
{
  #keys: '3[415136.0.1293740053][415136.0.1293740052][415136.0.1293740054]'
  Description: '大连外租库入库费用是否被导入更新'
  ValueType: Boolean
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_IsDLRentOtherCostUpdate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute IsDLRentOtherCostUpdate
{
  #keys: '3[415136.0.1293740060][415136.0.1293740059][415136.0.1293740061]'
  Description: '大连外租库其他费用是否被导入更新'
  ValueType: Boolean
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_IsDLRentOutOfCostUpdate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute IsDLRentOutOfCostUpdate
{
  #keys: '3[415136.0.1293740067][415136.0.1293740066][415136.0.1293740068]'
  Description: '大连外租库出库费用是否被导入更新'
  ValueType: Boolean
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_IsDLRentStorCostUpdate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute IsDLRentStorCostUpdate
{
  #keys: '3[415136.0.1293740074][415136.0.1293740073][415136.0.1293740075]'
  Description: '大连外租库仓储费用是否被导入更新'
  ValueType: Boolean
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_IsEstimateTotalCostUpdate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute IsEstimateTotalCostUpdate
{
  #keys: '3[415136.0.1293740081][415136.0.1293740080][415136.0.1293740082]'
  Description: '预计总费用是否被导入更新'
  ValueType: Boolean
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_IsUpdate.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_IsWerkToDLRentTransCostUpdate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute IsWerkToDLRentTransCostUpdate
{
  #keys: '3[415136.0.1293740088][415136.0.1293740087][415136.0.1293740089]'
  Description: '厂内到大连外租库运输费用'
  ValueType: Boolean
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Method_CalcEstimateTotalCost.qbl
ÎļþÃû´Ó _Main/BL/Type_CCEngineLogisticsCostCell0/Function_CalcEstimateTotalCost.qbl ÐÞ¸Ä
@@ -1,14 +1,13 @@
Quintiq file version 2.0
#parent: #root
Function CalcEstimateTotalCost
Method CalcEstimateTotalCost () as Real
{
  TextBody:
  [*
    // ç”„兰鸽 Aug-12-2024 (created)
    // ç”„兰鸽 Nov-11-2024 (created)
    value := this.CCRentInCost() + this.CCRentOutOfCost() + this.CCLongTransCost() + this.CCShorTransCost() + this.CCRentStorCost()
    + this.DLRentInCost() + this.DLRentOutOfCost() + this.WerkToDLRentTransCost() + this.DLRentStorCost() + this.DLRentOtherCost()
    + this.DLRentInCost() + this.DLRentOutOfCost() + this.WerkToDLRentTransCost() + this.DLRentStorCost() + this.DLRentOtherCost();
    
    this.EstimateTotalCost( value );
    return value;
  *]
}
_Main/BL/Type_CCEngineLogisticsCostReport/Method_Generate.qbl
@@ -54,18 +54,25 @@
          sumcell.WerkToRentTransCost( cell.WerkToRentTransCost() + sumcell.WerkToRentTransCost() );
          sumcell.RentStorCost( cell.RentStorCost() + sumcell.RentStorCost() );
        }
        yearcell.EstimateTotalCost( yearcell.CalcEstimateTotalCost() );
        yearcell.AllCost( yearcell.EstimateTotalCost() * [Real]yearcell.CoefficientValue() );
      }
    }
    Transaction::Transaction().Propagate( attribute( CCEngineLogisticsCostCell, EstimateTotalCost ) );
    traverse( yearcolumn, Cell, cell ){
      cell.EstimateTotalCost( cell.CalcEstimateTotalCost() );
      cell.AllCost( cell.EstimateTotalCost() * [Real]cell.CoefficientValue() );
    }
    traverse( sumrow, Cell, cell ){
      cell.EstimateTotalCost( cell.CalcEstimateTotalCost() );
      cell.AllCost( cell.EstimateTotalCost() * [Real]cell.CoefficientValue() );
      if( exists( cell.Column(), Cell, acell, acell.IsUpdate() ) ){
        cell.IsUpdate( true );
      }
      cell.IsAllCostUpdate( exists( cell.Column(), Cell, acell, acell.IsAllCostUpdate() ) );
      cell.IsCoefficientUpdate( exists( cell.Column(), Cell, acell, acell.IsCoefficientUpdate() ) );
      cell.IsEstimateTotalCostUpdate( exists( cell.Column(), Cell, acell, acell.IsEstimateTotalCostUpdate() ) );
      cell.IsRentInCostUpdate( exists( cell.Column(), Cell, acell, acell.IsRentInCostUpdate() ) );
      cell.IsRentOutOfCostUpdate( exists( cell.Column(), Cell, acell, acell.IsRentOutOfCostUpdate() ) );
      cell.IsRentStorCostUpdate( exists( cell.Column(), Cell, acell, acell.IsRentStorCostUpdate() ) );
      cell.IsWerkToRentTransCostUpdate( exists( cell.Column(), Cell, acell, acell.IsWerkToRentTransCostUpdate() ) );
    }
  *]
}
_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_Import.qbl
@@ -42,33 +42,54 @@
          cell                := selectobject( ccrow, Cell, cell, cell.Column() = column );
          traverse( sameproductcells, Elements.GeneralExcelImportAndExportDataRow, samerow ){
            attricell         := selectobject( samerow, GeneralExcelImportAndExportDataCell, attricell, attricell.GeneralExcelImportAndExportDataColumn() = attricolumn );
            if( attricell.Value() = '总费用' ){
    //        if( attricell.Value() = '总费用' ){
    //          valuecell       := selectobject( samerow, GeneralExcelImportAndExportDataCell, valuecell, valuecell.GeneralExcelImportAndExportDataColumn() = excelcolumn );
    //          if( valuecell.Value() <> cell.AllCost().Format( 'N(Dec)' ) ){
    //            cell.AllCost( [Real]valuecell.Value() );
    //            cell.IsUpdate( true );
    //          }
    //        }
    //        if( not ( attricell.Value() = '预计总费用' or attricell.Value() = '总费用' ) ){
              valuecell       := selectobject( samerow, GeneralExcelImportAndExportDataCell, valuecell, valuecell.GeneralExcelImportAndExportDataColumn() = excelcolumn );
              if( attricell.Value() = '外租库入库费用' ){
                if( valuecell.Value() <> cell.RentInCost().Format( 'N(Dec)' ) ){
                  cell.RentInCost( [Real]valuecell.Value() );
                  cell.IsRentInCostUpdate( true );
                }
              }else if( attricell.Value() = '外租库出库费用' ){
                if( valuecell.Value() <> cell.RentOutOfCost().Format( 'N(Dec)' ) ){
                  cell.RentOutOfCost( [Real]valuecell.Value() );
                  cell.IsRentOutOfCostUpdate( true );
                }
              }else if( attricell.Value() = '厂内到外租库运输费用' ){
                if( valuecell.Value() <> cell.WerkToRentTransCost().Format( 'N(Dec)' ) ){
                  cell.WerkToRentTransCost( [Real]valuecell.Value() );
                  cell.IsWerkToRentTransCostUpdate( true );
                }
              }else if( attricell.Value() = '外租库仓储费用' ){
                if( valuecell.Value() <> cell.RentStorCost().Format( 'N(Dec)' ) ){
                  cell.RentStorCost( [Real]valuecell.Value() );
                  cell.IsRentStorCostUpdate( true );
                }
              }
              else if( attricell.Value() = '预计总费用' ){
                if( valuecell.Value() <> cell.EstimateTotalCost().Format( 'N(Dec)' ) ){
                  cell.EstimateTotalCost( [Real]valuecell.Value() );
                  cell.IsEstimateTotalCostUpdate( true );
                }
              }
              else if( attricell.Value() = '系数' ){
                if( valuecell.Value() <> cell.CoefficientValue() ){
                  cell.CoefficientValue( valuecell.Value() );
                  cell.IsCoefficientUpdate( true );
                }
              }
              else if( attricell.Value() = '总费用' ){
              if( valuecell.Value() <> cell.AllCost().Format( 'N(Dec)' ) ){
                cell.AllCost( [Real]valuecell.Value() );
                cell.IsUpdate( true );
                  cell.IsAllCostUpdate( true );
              }
            }
    //        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.CoefficientValue( valuecell.Value() );
    //          }
    //          else if( attricell.Value() = '总费用' ){
    //            cell.TotalCost( [Number]valuecell.Value() );
    //          }
    //        }
          }
        }
_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_Initialize.qbl
@@ -30,7 +30,7 @@
    //外租库入库费用:取自财务产量报表的产量,在产品表根据发动机号找到对应的Generation å’Œæ¨ªçºµåˆ¶ï¼Œåœ¨å‘动机成本参数表里找到对应的包装容量和入库单价,用公式计算,月度进行汇总
    traverse( owner, FinancialProductionSource, source, not source.IsImport() ){//财务产量报表非导入
      traverse( source, FinancialProductionReport, report, not report.IsShow() ){//财务产量报表不显示
        traverse( report, FinancialProductionRow, row, row.Unit() = ccunit and exists( row, FinancialProductionCell, cell, cell.Value() <> '0' and not cell.FinancialProductionColumn().IsDay() ) ){//财务产量报表里的长春产量, ä¸ä¸º0
        traverse( report, FinancialProductionRow, row, row.Unit() = ccunit and exists( row, FinancialProductionCell, cell, cell.Value() <> '0') ){//财务产量报表里的长春产量, ä¸ä¸º0
          product             := row.Product_MP();
          productparents      := product.GetAllParent();
          if( exists( productparents, Elements, e, e.ID() = produtparent ) ){//查询产品类型是发动机
@@ -41,7 +41,7 @@
            if( not isnull( enginecosts ) and enginecosts.Size() > 0 ){
              ccrow           := table.GetRow( row.Name() );
              products.Add( product );
              traverse( row, FinancialProductionCell, cell, cell.Value() <> '0' and not cell.FinancialProductionColumn().IsDay() ){
              traverse( row, FinancialProductionCell, cell, cell.Value() <> '0' ){
                cellcolumn    := cell.FinancialProductionColumn();
                enginecost    := selectobject( enginecosts, Elements, engine, engine.StartDate() <= cellcolumn.Period() and engine.EndDate() >= cellcolumn.Period() );
                if( not isnull( enginecost ) ){
@@ -60,7 +60,7 @@
    //外租库出库费用:出库量等于长春销量,取自财务销量报表的销量,在产品表根据发动机号找到对应的Generation å’Œæ¨ªçºµåˆ¶ï¼Œåœ¨å‘动机成本参数表里找到对应的包装容量和出库单价,用公式计算,月度进行汇总
    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 not cell.FinancialSalesColumn().IsDay() ) ){//财务销量报表里的长春产量, ä¸ä¸º0
        traverse( report, FinancialSalesRow, row, row.Unit() = ccunit and exists( row, FinancialSalesCell, cell, cell.Value() <> '0' ) ){//财务销量报表里的长春产量, ä¸ä¸º0
          product             := row.Product_MP();
          productparents      := product.GetAllParent();
          if( exists( productparents, Elements, e, e.ID() = produtparent ) ){//查询产品类型是发动机
@@ -71,7 +71,7 @@
            if( not isnull( enginecosts ) and enginecosts.Size() > 0 ){
              ccrow           := table.GetRow( row.Name() );
              products.Add( product );
              traverse( row, FinancialSalesCell, cell, cell.Value() <> '0' and not cell.FinancialSalesColumn().IsDay() ){
              traverse( row, FinancialSalesCell, cell, cell.Value() <> '0' ){
                cellcolumn    := cell.FinancialSalesColumn();
                enginecost    := selectobject( enginecosts, Elements, engine, engine.StartDate() <= cellcolumn.Period() and engine.EndDate() >= cellcolumn.Period() );
                if( not isnull( enginecost ) ){
_Main/BL/Type_CCEngineLogisticsCostReport0/Method_Generate.qbl
@@ -79,18 +79,31 @@
          sumcell.WerkToDLRentTransCost( cell.WerkToDLRentTransCost() + sumcell.WerkToDLRentTransCost() );
          sumcell.DLRentStorCost( cell.DLRentStorCost() + sumcell.DLRentStorCost() );
        }
        yearcell.EstimateTotalCost( yearcell.CalcEstimateTotalCost() );
        yearcell.AllCost( yearcell.EstimateTotalCost() * [Real]yearcell.CoefficientValue() );
      }
    }
    Transaction::Transaction().Propagate( attribute( DLEngineLogisticsCostCell, EstimateTotalCost ) );
    traverse( yearcolumn, Cell, cell ){
      cell.EstimateTotalCost( cell.CalcEstimateTotalCost() );
      cell.AllCost( cell.EstimateTotalCost() * [Real]cell.CoefficientValue() );
    }
    traverse( sumrow, Cell, cell ){
      cell.EstimateTotalCost( cell.CalcEstimateTotalCost() );
      cell.AllCost( cell.EstimateTotalCost() * [Real]cell.CoefficientValue() );
      if( exists( cell.Column(), Cell, acell, acell.IsUpdate() ) ){
        cell.IsUpdate( true );
      }
      cell.IsAllCostUpdate( exists( cell.Column(), Cell, acell, acell.IsAllCostUpdate() ) );
      cell.IsCCLongTransCostUpdate( exists( cell.Column(), Cell, acell, acell.IsCCLongTransCostUpdate() ) );
      cell.IsCCRentInCostUpdate( exists( cell.Column(), Cell, acell, acell.IsCCRentInCostUpdate() ) );
      cell.IsCCRentOutOfCostUpdate( exists( cell.Column(), Cell, acell, acell.IsCCRentOutOfCostUpdate() ) );
      cell.IsCCRentStorCostUpdate( exists( cell.Column(), Cell, acell, acell.IsCCRentStorCostUpdate() ) );
      cell.IsCCShorTransCostUpdate( exists( cell.Column(), Cell, acell, acell.IsCCShorTransCostUpdate() ) );
      cell.IsCoefficientUpdate( exists( cell.Column(), Cell, acell, acell.IsCoefficientUpdate() ) );
      cell.IsDLRentInCostUpdate( exists( cell.Column(), Cell, acell, acell.IsDLRentInCostUpdate() ) );
      cell.IsDLRentOtherCostUpdate( exists( cell.Column(), Cell, acell, acell.IsDLRentOtherCostUpdate() ) );
      cell.IsDLRentOutOfCostUpdate( exists( cell.Column(), Cell, acell, acell.IsDLRentOutOfCostUpdate() ) );
      cell.IsDLRentStorCostUpdate( exists( cell.Column(), Cell, acell, acell.IsDLRentStorCostUpdate() ) );
      cell.IsEstimateTotalCostUpdate( exists( cell.Column(), Cell, acell, acell.IsEstimateTotalCostUpdate() ) );
      cell.IsWerkToDLRentTransCostUpdate( exists( cell.Column(), Cell, acell, acell.IsWerkToDLRentTransCostUpdate() ) );
    }
    info( '-------------------------g------------end---------------------------------' );
  *]
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_Import.qbl
@@ -25,59 +25,97 @@
    attricolumn               := selectobject( source, GeneralExcelImportAndExportDataTable.GeneralExcelImportAndExportDataColumn, column, column.ColumnIndex() = 1 );
    //生成新表的日期列
    table                     := DLEngineLogisticsCostReport::InitiateSearch( owner );
    traverse( source, GeneralExcelImportAndExportDataTable.GeneralExcelImportAndExportDataRow, excelrow ){
      productcell             := selectobject( excelrow, GeneralExcelImportAndExportDataCell, excelcell, excelcell.GeneralExcelImportAndExportDataColumn() = productcolumn );
    sameproductvalues         := selectuniquevalues( productcolumn, GeneralExcelImportAndExportDataCell, productcell, productcell.Value() );
    traverse( sameproductvalues, Elements, productvalue ){
      //处理未被同步的产品
      if( not exists( products, Elements, product, product.ID() = productcell.Value() ) ){
        product               := selectobject( owner, Product_MP, product, product.ID() = productcell.Value() );
      if( not exists( products, Elements, product, product.ID() = productvalue ) ){
        product               := selectobject( owner, Product_MP, product, product.ID() = productvalue );
        products.Add( product );
        ccrow                 := table.GetRow( productcell.Value() );
        ccrow                 := table.GetRow( productvalue );
        //获取相同的产品
        sameproductcells      := selectset( productcolumn, GeneralExcelImportAndExportDataCell, excelcell, excelcell.Value() = productcell.Value() );
        sameproductcells      := selectset( productcolumn, GeneralExcelImportAndExportDataCell, excelcell, excelcell.Value() = productvalue );
        //从日期列开始处理
        traverse( excelrow, GeneralExcelImportAndExportDataCell, excelcell, excelcell.GeneralExcelImportAndExportDataColumn().ColumnIndex() > 1 ){
          excelcolumn         := excelcell.GeneralExcelImportAndExportDataColumn();
        traverse( source, GeneralExcelImportAndExportDataTable.GeneralExcelImportAndExportDataColumn, excelcolumn, excelcolumn.ColumnIndex() > 1 ){
          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( attricell.Value() = '总费用' ){
    //        if( attricell.Value() = '总费用' ){
    //          valuecell       := selectobject( samerow, GeneralExcelImportAndExportDataCell, valuecell, valuecell.GeneralExcelImportAndExportDataColumn() = excelcolumn );
    //          info( '------------------', valuecell.Value(), cell.AllCost().Format( 'N(Dec)' ),valuecell.Value() <> cell.AllCost().Format( 'N(Dec)' ));
    //          if( valuecell.Value() <> cell.AllCost().Format( 'N(Dec)' ) ){
    //            cell.AllCost( [Real]valuecell.Value() );
    //            cell.IsUpdate( true );
    //          }
    //        }
    //        if( not ( attricell.Value() = '预计总费用' or attricell.Value() = '总费用' ) ){
              valuecell       := selectobject( samerow, GeneralExcelImportAndExportDataCell, valuecell, valuecell.GeneralExcelImportAndExportDataColumn() = excelcolumn );
              if( attricell.Value() = '长春外租库入库费用' ){
                if( valuecell.Value() <> cell.CCRentInCost().Format( 'N(Dec)' ) ){
                  cell.CCRentInCost( [Real]valuecell.Value() );
                  cell.IsCCRentInCostUpdate( true );
                }
              }else if( attricell.Value() = '长春外租库出库费用' ){
                if( valuecell.Value() <> cell.CCRentOutOfCost().Format( 'N(Dec)' ) ){
                  cell.CCRentOutOfCost( [Real]valuecell.Value() );
                  cell.IsCCRentOutOfCostUpdate( true );
                }
              }else if( attricell.Value() = '长春长途运输费用' ){
                if( valuecell.Value() <> cell.CCLongTransCost().Format( 'N(Dec)' ) ){
                  cell.CCLongTransCost( [Real]valuecell.Value() );
                  cell.IsCCLongTransCostUpdate( true );
                }
              }else if( attricell.Value() = '长春短途运输费用' ){
                if( valuecell.Value() <> cell.CCShorTransCost().Format( 'N(Dec)' ) ){
                  cell.CCShorTransCost( [Real]valuecell.Value() );
                  cell.IsCCShorTransCostUpdate( true );
                }
              }else if( attricell.Value() = '长春外租库仓储费用' ){
                if( valuecell.Value() <> cell.CCRentStorCost().Format( 'N(Dec)' ) ){
                  cell.CCRentStorCost( [Real]valuecell.Value() );
                  cell.IsCCRentStorCostUpdate( true );
                }
              }else if( attricell.Value() = '大连外租库入库费用' ){
                if( valuecell.Value() <> cell.DLRentInCost().Format( 'N(Dec)' ) ){
                  cell.DLRentInCost( [Real]valuecell.Value() );
                  cell.IsDLRentInCostUpdate( true );
                }
              }else if( attricell.Value() = '大连外租库出库费用' ){
                if( valuecell.Value() <> cell.DLRentOutOfCost().Format( 'N(Dec)' ) ){
                  cell.DLRentOutOfCost( [Real]valuecell.Value() );
                  cell.IsDLRentOutOfCostUpdate( true );
                }
              }else if( attricell.Value() = '厂内到外租库运输费用' ){
                if( valuecell.Value() <> cell.WerkToDLRentTransCost().Format( 'N(Dec)' ) ){
                  cell.WerkToDLRentTransCost( [Real]valuecell.Value() );
                  cell.IsWerkToDLRentTransCostUpdate( true );
                }
              }else if( attricell.Value() = '大连外租库仓储费用' ){
                if( valuecell.Value() <> cell.DLRentStorCost().Format( 'N(Dec)' ) ){
                  cell.DLRentStorCost( [Real]valuecell.Value() );
                  cell.IsDLRentStorCostUpdate( true );
                }
              }else if( attricell.Value() = '大连外租库其他费用' ){
                if( valuecell.Value() <> cell.DLRentOtherCost().Format( 'N(Dec)' ) ){
                  cell.DLRentOtherCost( [Real]valuecell.Value() );
                  cell.IsDLRentOtherCostUpdate( true );
                }
              }else if( attricell.Value() = '预计总费用' ){
                if( valuecell.Value() <> cell.EstimateTotalCost().Format( 'N(Dec)' ) ){
                  cell.EstimateTotalCost( [Real]valuecell.Value() );
                  cell.IsEstimateTotalCostUpdate( true );
                }
              }else if( attricell.Value() = '系数' ){
                if( valuecell.Value() <> cell.CoefficientValue() ){
                  cell.CoefficientValue( valuecell.Value() );
                  cell.IsCoefficientUpdate( true );
                }
              }else if( attricell.Value() = '总费用' ){
              if( valuecell.Value() <> cell.AllCost().Format( 'N(Dec)' ) ){
                cell.AllCost( [Real]valuecell.Value() );
                cell.IsUpdate( true );
                  cell.IsAllCostUpdate( true );
              }
            }
    //        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.CoefficientValue( valuecell.Value() );
    //          }
    ////          else if( attricell.Value() = '总费用' ){
    ////            cell.TotalCost( [Number]valuecell.Value() );
    ////          }
    //        }
          }
        }
_Main/BL/Type_CC_EngineRackCell/StaticMethod_CreateData.qbl
@@ -46,9 +46,6 @@
        // å®¢æˆ·åº“料架总数量
        mrcc := select( macroPlan, MaterialRackCustomRow.MaterialRackCustomCell, tempMRCCell, tempMRCCell.MaterialRackCustomRow().Generation() = ccerr.Generation() and tempMRCCell.MaterialRackCustomRow().MLB_MQB() = ccerr.MLB_MQB() and tempMRCCell.MaterialRackColumn().Month() = ccerc.StartDate().Month() );
        
        // å½“前月末最后一天日期
        lastDayOfThisMonth := ccerc.StartDate().StartOfNextMonth() - 1;
        cell := ccerr.CC_EngineRackCell( relnew );
        
        // æ–™æž¶æ€»æ•°é‡
@@ -56,7 +53,7 @@
                           tempMRTCell.MaterialRackTotalRow().Generation() = ccerr.Generation()        and
                           tempMRTCell.MaterialRackTotalRow().MLB_MQB()    = ccerr.MLB_MQB()           and
                           tempMRTCell.MaterialRackColumn().Month()        = ccerc.StartDate().Month() );
        cell.TotalQuantityOfMaterialRacks( mrtcell.Quantity() );
        cell.TotalQuantityOfMaterialRacks( guard( mrtcell.Quantity(), 0 ) );
        
        // ç©ºæ–™æž¶æ•°é‡ï¼šã€350bar MQB料架总数量 - æ‰€æœ‰350bar MQB总库存 / åŒ…装容量-客户库料架数量】* é•¿æ˜¥å¤–租库空料架比例
        plannedInventory := sum( macroPlan, Product_MP.ProductInStockingPoint_MP.ProductInStockingPointInPeriod, tempPISPIP,
_Main/BL/Type_DL_EngineRackCell/StaticMethod_CreateData.qbl
@@ -61,7 +61,7 @@
                           tempMRTCell.MaterialRackTotalRow().MLB_MQB()    = dlerr.MLB_MQB()           and
                           tempMRTCell.MaterialRackColumn().Month()        = dlerc.StartDate().Month() );
        if ( dlerr.Generation() = "350bar" and dlerr.MLB_MQB() = "MQB" ) {
          cell.TotalQuantityOfMaterialRacks( mrtcell.Quantity() );
          cell.TotalQuantityOfMaterialRacks( guard( mrtcell.Quantity(), 0 ) );
        }
       
        // å¤§è¿žå¤–租库空料架数量:【350bar MQB料架总数量 - æ‰€æœ‰350bar MQB总库存 / åŒ…装容量 - å®¢æˆ·åº“料架数量】* å¤§è¿žå¤–租库空料架比例
_Main/BL/Type_FinancialProductionColumn/Attribute_IsDay.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_FinancialProductionReport/Method_GenerateColumn.qbl
@@ -11,13 +11,10 @@
    startofyear               := startofplanning.StartOfYear();
    startofnextyear           := startofplanning.StartOfNextYear();
    
    for( start := startofyear; start < startofnextyear; start := start + Duration::Days( 1 ) ){
    for( start := startofyear; start < startofnextyear; start := start.StartOfMonth() ){
      periodtime := start.Date();
      periodname := periodtime.Format( "M2/D2/Y" );
      this.FinancialProductionColumn( relnew, Name := periodname, Period := periodtime, IsDay := true );
      if( start = start.StartOfMonth() ){
        this.FinancialProductionColumn( relnew, Name := periodname, Period := periodtime );
      }
    }
  *]
}
_Main/BL/Type_FinancialProductionReport/Method_GenerateShow.qbl
@@ -31,8 +31,8 @@
          yearcell            := yearcolumn.FinancialProductionCell( relnew, Quantity := 0 );
          showrow.FinancialProductionCell( relinsert, yearcell );
        }
        traverse( row, FinancialProductionCell, cell, not cell.FinancialProductionColumn().IsDay() ){
          column              := selectobject( this, FinancialProductionColumn, column, column.Name() = cell.FinancialProductionColumn().Name() and not column.IsDay() );
        traverse( row, FinancialProductionCell, cell ){
          column              := selectobject( this, FinancialProductionColumn, column, column.Name() = cell.FinancialProductionColumn().Name() );
          if( isnull( column ) ){
            column            := this.FinancialProductionColumn( relnew, Name := cell.FinancialProductionColumn().Name(), Period := cell.FinancialProductionColumn().Period() );
          }
_Main/BL/Type_FinancialProductionRow/Method_Initialize#110.qbl
@@ -13,7 +13,7 @@
    cell := column.FinancialProductionCell( relnew, Quantity := 0 );
    
    this.FinancialProductionCell( relinsert, cell );
    if( unit <> FinancialProductionReport::GetDefaultAllUnit() and not column.IsDay()){
    if( unit <> FinancialProductionReport::GetDefaultAllUnit() ){
      importdata := product.MacroPlan().FPImportData( relnew, Generation := product.Generation()
                                                      , MqbMlb := product.MQBMLB()
                                                      , Power := product.Power()
_Main/BL/Type_FinancialProductionSource/Method_AfterImport.qbl
@@ -29,10 +29,6 @@
        if( isnull( unitrow ) ){
          unitrow           := table.FinancialProductionRow( relnew, Name := product.Value(), Unit := unit.Value() );
        }
    //    allrow  := selectobject( table, FinancialProductionRow, allrow, allrow.Name() = product.Value() and allrow.Unit() = allunit );
    //    if( isnull( unitrow ) ){
    //      allrow            := table.FinancialProductionRow( relnew, Name := product.Value(), Unit := allunit );
    //    }
        
        //读取每一行的单元格
        traverse( row, FinancialProductionCell, cell, cell.Value() <> '0' and cell.FinancialProductionColumn() <> productcolumn and cell.FinancialProductionColumn() <> unitcolumn and cnv2.Convert( cell.FinancialProductionColumn().Name() ) <> beforeyearday ){
@@ -44,24 +40,13 @@
            previouscell    := selectobject( row, FinancialProductionCell, previouscell, previouscell.FinancialProductionColumn() = previouscolumn );
            quantity        := [Real]cell.Value() + [Real]previouscell.Value();
          }
    //      info( '-----------------', period );
          //获取被导入报表的日期列
          tablecolumn       := selectobject( table, FinancialProductionColumn, column, not column.IsDay() and column.Name() = periodname );
          tablecolumn       := selectobject( table, FinancialProductionColumn, column, column.Name() = periodname );
          if( isnull( tablecolumn ) ){
            tablecolumn     := table.FinancialProductionColumn( relnew, Name := periodname, Period := yearday.Date() );
          }
          //获取被导入报表的单元格
          unitcell          := selectobject( unitrow, FinancialProductionCell, unitcell, unitcell.FinancialProductionColumn() = tablecolumn );
    //      allcell           := selectobject( allrow, FinancialProductionCell, allcell, allcell.FinancialProductionColumn() = tablecolumn );
    //      if( isnull( allcell ) ){
    //        allcell         := tablecolumn.FinancialProductionCell( relnew, Quantity := [Real]cell.Value(), Value := cell.Value() );
    //        allrow.FinancialProductionCell( relinsert, allcell );
    //      }else{
    //        if( allcell.Quantity() <> quantity ){
    //          allcell.Quantity( quantity );
    //          allcell.IsUpdate( true );
    //        }
    //      }
          if( isnull( unitcell ) ){
            unitcell        := tablecolumn.FinancialProductionCell( relnew, Quantity := [Real]cell.Value(), Value := cell.Value() );
            unitrow.FinancialProductionCell( relinsert, unitcell );
_Main/BL/Type_FinancialProductionSource/StaticMethod_Download.qbl
@@ -27,8 +27,8 @@
    //Unit
    unitcolumnelement             := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, 'Unit' );
    
    minindex                      := min( table, FinancialProductionColumn, column, not column.IsDay(), column.Index() );
    traverse ( table, FinancialProductionColumn, column, not column.IsDay() ) {
    minindex                      := min( table, FinancialProductionColumn, column, column.Index() );
    traverse ( table, FinancialProductionColumn, column ) {
      columnelement               := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, column.Name() );
      
      cells                       := selectsortedset( column, FinancialProductionCell, cell, cell.FinancialProductionRow().RowNr() );
_Main/BL/Type_FinancialProductionSource/StaticMethod_Initialize.qbl
@@ -39,8 +39,8 @@
            periodtime        := dayperiodtime.StartOfMonth();
            periodname        := periodtime.Format( "M2/D2/Y" );
    //        quantity          := [Number]pispip.NewSupplyQuantity();//四舍五入
            daycolumn         := selectobject( table, FinancialProductionColumn, column, column.Name() = dayperiodname and column.Period() = dayperiodtime and column.IsDay() );
            column            := selectobject( table, FinancialProductionColumn, column, column.Name() = periodname and column.Period() = periodtime and not column.IsDay() );
            daycolumn         := selectobject( table, FinancialProductionColumn, column, column.Name() = dayperiodname and column.Period() = dayperiodtime );
            column            := selectobject( table, FinancialProductionColumn, column, column.Name() = periodname and column.Period() = periodtime );
            factoryrow.Initialize( daycolumn, pispip.NewSupplyQuantity() );
            factoryrow.Initialize( column, pispip.NewSupplyQuantity() );
    //        allrow.Initialize( column, pispip.NewSupplyQuantity() );
_Main/BL/Type_FinancialSalesColumn/Attribute_IsDay.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_FinancialSalesReport/Method_GenerateColumn.qbl
@@ -11,13 +11,10 @@
    startofyear               := startofplanning.StartOfYear();
    startofnextyear           := startofplanning.StartOfNextYear();
    
    for( start := startofyear; start < startofnextyear; start := start + Duration::Days( 1 ) ){
    for( start := startofyear; start < startofnextyear; start := start.StartOfMonth() ){
      periodtime := start.Date();
      periodname := periodtime.Format( "M2/D2/Y" );
      this.FinancialSalesColumn( relnew, Name := periodname, Period := periodtime, IsDay := true );
      if( start = start.StartOfMonth() ){
        this.FinancialSalesColumn( relnew, Name := periodname, Period := periodtime );
      }
    }
  *]
}
_Main/BL/Type_FinancialSalesReport/Method_GenerateShow.qbl
@@ -33,8 +33,8 @@
          showrow.FinancialSalesCell( relinsert, yearcell );
        }
        
        traverse( row, FinancialSalesCell, cell, not cell.FinancialSalesColumn().IsDay() ){
          column        := selectobject( this, FinancialSalesColumn, column, column.Name() = cell.FinancialSalesColumn().Name() and not column.IsDay());
        traverse( row, FinancialSalesCell, cell ){
          column        := selectobject( this, FinancialSalesColumn, column, column.Name() = cell.FinancialSalesColumn().Name() );
          if( isnull( column ) ){
            column            := this.FinancialSalesColumn( relnew, Name := cell.FinancialSalesColumn().Name(), Period := cell.FinancialSalesColumn().Period() );
          }
_Main/BL/Type_FinancialSalesRow/Method_Initialize.qbl
@@ -13,7 +13,7 @@
    cell := column.FinancialSalesCell( relnew, Value := '0' );
    
    this.FinancialSalesCell( relinsert, cell );
    if( unit <> FinancialProductionReport::GetDefaultAllUnit() and not column.IsDay() ){
    if( unit <> FinancialProductionReport::GetDefaultAllUnit() ){
      importdata := product.MacroPlan().FSImportData( relnew, Generation := product.Generation()
                                                      , MqbMlb := product.MQBMLB()
                                                      , Power := product.Power()
_Main/BL/Type_FinancialSalesSource/Method_AfterImport.qbl
@@ -25,10 +25,6 @@
        if( isnull( unitrow ) ){
          unitrow           := table.FinancialSalesRow( relnew, Name := product.Value(), Unit := unit.Value() );
        }
    //    allrow              := selectobject( table, FinancialSalesRow, allrow, allrow.Name() = product.Value() and allrow.Unit() = allunit );
    //    if( isnull( unitrow ) ){
    //      allrow            := table.FinancialSalesRow( relnew, Name := product.Value(), Unit := allunit );
    //    }
        
        traverse( row, FinancialSalesCell, cell, cell.Value() <> '0' and cell.FinancialSalesColumn() <> productcolumn and cell.FinancialSalesColumn() <> unitcolumn and cnv2.Convert( cell.FinancialSalesColumn().Name() ) <> beforeyearday  ){
          column            := cell.FinancialSalesColumn();
@@ -42,7 +38,7 @@
          }
          tablecolumn       := construct( FinancialSalesColumn );
          //获取被导入报表的日期列
          tablecolumn       := selectobject( table, FinancialSalesColumn, fscolumn, not fscolumn.IsDay() and fscolumn.Name() = periodname );
          tablecolumn       := selectobject( table, FinancialSalesColumn, fscolumn, fscolumn.Name() = periodname );
          if( isnull( tablecolumn ) ){
            tablecolumn     := table.FinancialSalesColumn( relnew, Name := periodname, Period := yearday.Date() );
          }
@@ -56,16 +52,6 @@
              unitcell.IsUpdate( true );
            }
          }
    //      allcell  := selectobject( allrow, FinancialSalesCell, allcell, allcell.FinancialSalesColumn() = tablecolumn  );
    //      if( isnull( allcell ) ){
    //        allcell         := tablecolumn.FinancialSalesCell( relnew, Value := cell.Value() );
    //        allrow.FinancialSalesCell( relinsert, allcell );
    //      }else{
    //        if( [Real]allcell.Value() <> quantity ){
    //          allcell.Value( [String]( [Number]quantity ) );
    //          allcell.IsUpdate( true );
    //        }
    //      }
        }
      }
    }
_Main/BL/Type_FinancialSalesSource/StaticMethod_Download.qbl
@@ -27,8 +27,8 @@
    //Unit
    unitcolumnelement             := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, 'Unit' );
    
    minindex                      := min( table, FinancialSalesColumn, column, not column.IsDay(), column.Index() );
    traverse ( table, FinancialSalesColumn, column, not column.IsDay() ) {
    minindex                      := min( table, FinancialSalesColumn, column, column.Index() );
    traverse ( table, FinancialSalesColumn, column ) {
      columnelement               := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, column.Name() );
      
      cells := selectsortedset( column, FinancialSalesCell, cell, cell.FinancialSalesRow().RowNr() );
_Main/BL/Type_FinancialSalesSource/StaticMethod_InitializeNew.qbl
@@ -56,8 +56,8 @@
          periodtime         := dayperiodtime.StartOfMonth();
          periodname         := periodtime.Format( "M2/D2/Y" );
    //      info( '-------------------------', periodname, periodtime );
          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() );
          daycolumn          := selectobject( table, FinancialSalesColumn, column, column.Name() = dayperiodname and column.Period() = dayperiodtime );
          column             := selectobject( table, FinancialSalesColumn, column, column.Name() = periodname and column.Period() = periodtime );
    //      info( '-------------------------', column.Name() );
          quantity   := [Number]psdip.Quantity();//四舍五入
          
@@ -81,8 +81,8 @@
            dayperiodname   := dayperiodtime.Format( "M2/D2/Y" );
            periodtime      := dayperiodtime.StartOfMonth();
            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() );
            daycolumn       := selectobject( table, FinancialSalesColumn, column, column.Name() = dayperiodname and column.Period() = dayperiodtime );
            column          := selectobject( table, FinancialSalesColumn, column, column.Name() = periodname and column.Period() = periodtime );
            quantity        := [Number]pispip.NewSupplyQuantity();//四舍五入
            
            factoryrow.Initialize( column, quantity );//取Total Demand字段按月汇总需求数量
_Main/BL/Type_FinancialWeeklyReport/StaticMethod_Initialize.qbl
@@ -40,8 +40,8 @@
    ccsvaluecumulant          := [Real]0;
    
    traverse( table, FinancialWeeklyColumn, column ){
      productioncolumn      := selectobject( productiontable, FinancialProductionColumn, pcolumn, pcolumn.Name() = column.Name() and pcolumn.Period() = column.Period() and not pcolumn.IsDay() );
      salescolumn           := selectobject( salestable, FinancialSalesColumn, scolumn, scolumn.Name() = column.Name() and scolumn.Period() = column.Period() and not scolumn.IsDay() );
      productioncolumn      := selectobject( productiontable, FinancialProductionColumn, pcolumn, pcolumn.Name() = column.Name() and pcolumn.Period() = column.Period() );
      salescolumn           := selectobject( salestable, FinancialSalesColumn, scolumn, scolumn.Name() = column.Name() and scolumn.Period() = column.Period() );
      
      //产量汇总
      dlpvalue              := [Real]0;
_Main/BL/Type_InterfaceDataset/Method_PublishPlanReportData.qbl
@@ -18,7 +18,7 @@
      CustomerDemandPPAIDS::GenerateData( this, macroplan, executor );
    }
    if( isofflineplan ){//各产线下线计划
    //  OfflinePlanArchiveVersion::RefreshData( this, macroplan, archive );
      InterfaceDataset::PushOfflinePlanData( macroplan, this, executor );
    }
    if( isshiftplan ){//班次计划
      DispatchShiftPlan::Dispatch(this, macroplan,executor );
_Main/BL/Type_InterfaceDataset/StaticMethod_PushOfflinePlanData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,51 @@
Quintiq file version 2.0
#parent: #root
StaticMethod PushOfflinePlanData (
  const MacroPlan macroPlan,
  InterfaceDataset interfaceDataset,
  String executor
)
{
  Description: '发送下线计划数据接口'
  TextBody:
  [*
    table         := selectobject( interfaceDataset, OfflinePlanArchiveVersion, version, not version.IsShow() );
    totalRow      := 0;
    interfaceTime := DateTime::ActualTime().Format( "Y-M2-D2 H2:m:s" );
    jsonarray     := JSON::Array();
    traverse ( table, Row, r ){
      traverse ( table, Column, c, c.TimeUnit() = Translations::MP_GlobalParameters_Day() ) {
        cell := select( r, Cell, tempC, tempC.Column() = c );
        if ( not isnull( cell ) ) {
          idsjson := JSON::Object().Add( "product", r.ProductID() )
                                   .Add( "planningDate", c.StartDate().Format( 'Y-M2-D2' ) )
                                   .Add( "planningQty", cell.Quantity() )
                                   .Add( "versionName", macroPlan.ScenarioName() )
                                   .Add( "factoryName", ifexpr( r.Unit().Regex( "CC" ), "长春工厂", "大连工厂" ) )
                                   .Add( "fac", ifexpr( r.Unit().Regex( "CC" ), "CC", "DL" ) )
                                   .Add( "interfaceTime", interfaceTime ).Build();
          jsonarray.Add( idsjson );
          totalRow++;
        }
      }
    }
    requestbody := jsonarray.Build().AsString();
    //info(  requestbody );
    loginfo := interfaceDataset.InterfaceLoginfo( relnew,
                                                  ExecuteUser       := executor,
                                                  Name              := "Offline plan data",
                                                  InterfaceDateTime := DateTime::ActualTime(),
                                                  Message           := "下线计划数据",
                                                  RequestBody       := requestbody,
                                                  TotalRow          := totalRow );
    InterfaceLoginfo::CallInterfaceForDataCenter_OfflinePlan( interfaceDataset, loginfo );
  *]
}
_Main/BL/Type_InterfaceLoginfo/StaticMethod_CallInterfaceForDataCenter_OfflinePlan.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,48 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CallInterfaceForDataCenter_OfflinePlan (
  InterfaceDataset owner,
  InterfaceLoginfo loginfo
)
{
  Description: '调用数据中台接口【下线计划】'
  TextBody:
  [*
    address       := Translations::InterfaceDataset_DataCenter_Address();
    httpinterface := HTTPInterface::Create( address,80 );
    httpinterface.PostMethod( true );
    httpinterface.URL( "/api/production-planning/saveList" );
    httpinterface.MediaType( Translations::InterfaceDataset_ContentType() );
    httpinterface.AddHeader( "clientId", Translations::InterfaceDataset_DataCenter_ClientId() );
    httpinterface.AddHeader( "clientSecret", Translations::InterfaceDataset_DataCenter_ClientSecret() );
    try {
      httpinterface.Call( loginfo.RequestBody() );
      result := httpinterface.Result();
      loginfo.Response( result );
      loginfo.Success( true );
    } onerror {
      loginfo.ReturnMsg( e.GeneralInformation() );
    }
    // åŽç»­å…¬å…±å¤„理
    loginfo.FinishTime( DateTime::ActualTime() );
    if ( loginfo.Success() ) {
      resultJson := JSON::Parse( loginfo.Response() );
      code       := resultJson.Get( "code" ).GetNumber();
      msg        := resultJson.Get( "message" ).GetString();
      loginfo.ReturnMsg( msg );
      if ( code = 200 ) {
        loginfo.ReturnSuccess( true );
        loginfo.UpdateLast();
      }
    }
  *]
}
_Main/BL/Type_MachineLogisticsCostReportCell/Attribute_EstimatedTotalCost#455.qbl
_Main/BL/Type_MachineLogisticsCostReportCell/Attribute_IsUpateEstimatedTotalCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute IsUpateEstimatedTotalCost
{
  #keys: '3[413988.1.99460691][413988.1.99460690][413988.1.99460692]'
  Description: '预计总费用更新值'
  ValueType: Boolean
}
_Main/BL/Type_MachineLogisticsCostReportCell/Attribute_IsUpdateBufferPaperCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute IsUpdateBufferPaperCost
{
  #keys: '3[413988.1.99460214][413988.1.99460213][413988.1.99460215]'
  Description: '缓冲纸费用更新值'
  ValueType: Boolean
}
_Main/BL/Type_MachineLogisticsCostReportCell/Attribute_IsUpdateCoefficient.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute IsUpdateCoefficient
{
  #keys: '3[413988.1.99460638][413988.1.99460637][413988.1.99460639]'
  Description: '系数更新值'
  ValueType: Boolean
}
_Main/BL/Type_MachineLogisticsCostReportCell/Attribute_IsUpdateExternalRentalWarehouseTransportationCosts.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute IsUpdateExternalRentalWarehouseTransportationCosts
{
  #keys: '3[413988.1.99460585][413988.1.99460584][413988.1.99460586]'
  Description: '外租库运输费用更新值'
  ValueType: Boolean
}
_Main/BL/Type_MachineLogisticsCostReportCell/Attribute_IsUpdateOutboundExpensesForRentedWarehouses.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute IsUpdateOutboundExpensesForRentedWarehouses
{
  #keys: '3[413988.1.99460479][413988.1.99460478][413988.1.99460480]'
  Description: '外租库出库费用更新值'
  ValueType: Boolean
}
_Main/BL/Type_MachineLogisticsCostReportCell/Attribute_IsUpdatePackingCharges.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute IsUpdatePackingCharges
{
  #keys: '3[413988.1.99360501][413988.1.99360500][413988.1.99360502]'
  Description: '包装费用更新值'
  ValueType: Boolean
}
_Main/BL/Type_MachineLogisticsCostReportCell/Attribute_IsUpdateQuantityOfWoodenCrates.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute IsUpdateQuantityOfWoodenCrates
{
  #keys: '3[413988.1.99460320][413988.1.99460319][413988.1.99460321]'
  Description: '木箱数量更新值'
  ValueType: Boolean
}
_Main/BL/Type_MachineLogisticsCostReportCell/Attribute_IsUpdateRentalWarehouseStorageFees.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute IsUpdateRentalWarehouseStorageFees
{
  #keys: '3[413988.1.99460532][413988.1.99460531][413988.1.99460533]'
  Description: '外租库仓储费用更新值'
  ValueType: Boolean
}
_Main/BL/Type_MachineLogisticsCostReportCell/Attribute_IsUpdateStorageFeesForRentedWarehouses.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute IsUpdateStorageFeesForRentedWarehouses
{
  #keys: '3[413988.1.99460426][413988.1.99460425][413988.1.99460427]'
  Description: '外租库入库费用更新值'
  ValueType: Boolean
}
_Main/BL/Type_MachineLogisticsCostReportCell/Attribute_IsUpdateTotalCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute IsUpdateTotalCost
{
  #keys: '3[413988.1.99460744][413988.1.99460743][413988.1.99460745]'
  Description: '总费用更新值'
  ValueType: Boolean
}
_Main/BL/Type_MachineLogisticsCostReportCell/Attribute_IsUpdateTransferCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute IsUpdateTransferCost
{
  #keys: '3[413988.1.99460373][413988.1.99460372][413988.1.99460374]'
  Description: '调拨费用更新值'
  ValueType: Boolean
}
_Main/BL/Type_MachineLogisticsCostReportCell/Attribute_IsUpdateUnpackingCost#0.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute IsUpdateUnpackingCost
{
  #keys: '3[413988.1.99360582][413988.1.99360581][413988.1.99360583]'
  Description: '拆包费用更新值'
  ValueType: Boolean
}
_Main/BL/Type_MachineLogisticsCostReportCell/Attribute_IsUpdateWoodenCrateCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute IsUpdateWoodenCrateCost
{
  #keys: '3[413988.1.99460267][413988.1.99460266][413988.1.99460268]'
  Description: '木箱费用更新值'
  ValueType: Boolean
}
_Main/BL/Type_MachineLogisticsCostReportCell/Attribute_PackingCharges#420.qbl
_Main/BL/Type_MachineLogisticsCostReportCell/Method_SetCellValue.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,34 @@
Quintiq file version 2.0
#parent: #root
Method SetCellValue (
  Real quantityOfWoodenCrates
)
{
  Description: '更新单元格值'
  TextBody:
  [*
    // è®¾ç½®æœ¨ç®±æ•°é‡
    this.QuantityOfWoodenCrates( quantityOfWoodenCrates );
    // ç©ºæ–™æž¶æ•°é‡è”动
    this.WoodenCrateCost( [Number] ( quantityOfWoodenCrates * this.WoodenCratePriceReal() ) );
    // SUM行联动
    cell := select( this, MachineLogisticsCostReportColumn.MachineLogisticsCostReportCell, tempMLCRCell, tempMLCRCell.MachineLogisticsCostReportRow().Category() = "SUM" );
    cell.QuantityOfWoodenCrates( sum( this, MachineLogisticsCostReportColumn.MachineLogisticsCostReportCell,
                                      tempMLCRCell, tempMLCRCell.MachineLogisticsCostReportRow().Category() <> "SUM" and tempMLCRCell.MachineLogisticsCostReportRow().Factory() = this.MachineLogisticsCostReportRow().Factory(),
                                      tempMLCRCell.QuantityOfWoodenCrates() ) );
    cell.WoodenCrateCost(        sum( this, MachineLogisticsCostReportColumn.MachineLogisticsCostReportCell, tempMLCRCell,
                                      tempMLCRCell.MachineLogisticsCostReportRow().Category() <> "SUM" and tempMLCRCell.MachineLogisticsCostReportRow().Factory() = this.MachineLogisticsCostReportRow().Factory(),
                                      tempMLCRCell.WoodenCrateCost() ) );
    // SUM列联动
    cell := select( this, MachineLogisticsCostReportRow.MachineLogisticsCostReportCell, tempMLCRCell, tempMLCRCell.MachineLogisticsCostReportColumn().DisplayName() = "SUM" );
    cell.QuantityOfWoodenCrates( sum( this, MachineLogisticsCostReportRow.MachineLogisticsCostReportCell, tempMLCRCell,
                                      not tempMLCRCell.MachineLogisticsCostReportColumn().StartDate().IsMaxInfinity(),
                                      tempMLCRCell.QuantityOfWoodenCrates() ) );
    cell.WoodenCrateCost(        sum( this, MachineLogisticsCostReportRow.MachineLogisticsCostReportCell, tempMLCRCell,
                                      not tempMLCRCell.MachineLogisticsCostReportColumn().StartDate().IsMaxInfinity(),
                                      tempMLCRCell.WoodenCrateCost() ) );
  *]
}
_Main/BL/Type_MachineLogisticsCostReportCell/StaticMethod_CreateData.qbl
@@ -14,8 +14,8 @@
                                      exists( tempPMP, AllParent.AsParent, tempPMP1, tempPMP1.ID() = "机加件" ),  
                                      tempPMP.ParentID() );
    traverse ( categories, Elements, c ) {
      macroPlan.MachineLogisticsCostReportRow( relnew, Factory := "大连工厂", Category := c  );
      macroPlan.MachineLogisticsCostReportRow( relnew, Factory := "长春工厂", Category := c );
      macroPlan.MachineLogisticsCostReportRow( relnew, Factory := "大连工厂", Category := c, Index := 0 );
      macroPlan.MachineLogisticsCostReportRow( relnew, Factory := "长春工厂", Category := c, Index := 0 );
    }
    
    // åˆ›å»ºåˆ—
@@ -60,7 +60,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( [Number] ( packageQuantity * guard( lcm.PackagePrice(), 1 ) ) );
    
        // è®¾ç½®æ‹†åŒ…费用(拆包量 * æ‹†åŒ…单价)
        unpackingQuantity := sum( macroPlan, PackagingPlanRow.PackagingPlanCell, tempPPC,
@@ -69,10 +69,10 @@
                                  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( [Number] ( unpackingQuantity * guard( lcm.UnpackingPrice(), 1 ) ) );
    
        // è®¾ç½®ç¼“冲纸费用(包装类 * ç¼“冲纸单价)
        cell.BufferPaperCost( packageQuantity * guard( lcm.BufferPaperPrice(), 1 ) );
        cell.BufferPaperCost( [Number] ( packageQuantity * guard( lcm.BufferPaperPrice(), 1 ) ) );
    
          // è®¾ç½®æœ¨ç®±å•ä»·
        cell.WoodenCratePriceReal( guard( lcm.WoodenCratePrice(), 1 ) );
@@ -88,10 +88,10 @@
        cell.TransferCost( [Number] ( ceil( ceil( transferQuantity / guard( lcm.PackagingCapacity(), 1 ) ) / guard( lct1.LoadingCapacity(), 1 ) ) * guard( lct1.TransportPrice(), 1 ) ) );
    
        // å¤–租库入库费用(入库量[包装量] / åŒ…装容量 * å…¥åº“单价)
        cell.StorageFeesForRentedWarehouses( packageQuantity / guard( lcm.PackagingCapacity(), 1 ) * guard( lcm.WarehousingPrice(), 1 ) );
        cell.StorageFeesForRentedWarehouses( [Number] ( packageQuantity / guard( lcm.PackagingCapacity(), 1 ) * guard( lcm.WarehousingPrice(), 1 ) ) );
    
        // å¤–租库出库费用(出库量[拆包量] / åŒ…装容量 * å‡ºåº“单价)
        cell.OutboundExpensesForRentedWarehouses( unpackingQuantity / guard( lcm.PackagingCapacity(), 1 ) * guard( lcm.OutboundPrice(), 1 ) );
        cell.OutboundExpensesForRentedWarehouses( [Number] ( unpackingQuantity / guard( lcm.PackagingCapacity(), 1 ) * guard( lcm.OutboundPrice(), 1 ) ) );
    
        // å¤–租库运输费用(运输数量 / åŒ…装容量 / è£…载容量 * è¿è¾“单价)
        transportationQuantity := sum( macroPlan, Unit.Lane.LaneLeg.Trip.ProductInTrip, tempPIT,
@@ -111,7 +111,7 @@
                                       tempPIT.Trip().LaneLeg().AsDestinationStockingPointLeg().StockingPoint_MP().ID() =  ifexpr( mlcrr.Factory() = "大连工厂", "DL", "CC" ) + " " + mlcrr.Category() + "线边库",
                                       tempPIT.Quantity()
                                      );
        cell.ExternalRentalWarehouseTransportationCosts( transportationQuantity / guard( lcm.PackagingCapacity(), 1 ) / guard( lct.LoadingCapacity(), 1 ) * guard( lct.TransportPrice(), 1 ) );
        cell.ExternalRentalWarehouseTransportationCosts( [Number] ( transportationQuantity / guard( lcm.PackagingCapacity(), 1 ) / guard( lct.LoadingCapacity(), 1 ) * guard( lct.TransportPrice(), 1 ) ) );
    
        // å¤–租库仓储费用:仓储数量/包装容量*仓储单价
        plannedInventory := sum( macroPlan, Product_MP.ProductInStockingPoint_MP.ProductInStockingPointInPeriod, tempPISPIP,
@@ -122,7 +122,7 @@
                                 tempPISPIP.End().Date()                                                                                <= lastDayOfThisMonth and
                                 tempPISPIP.ProductInStockingPoint_MP().StockingPointID()                                               =  ifexpr( mlcrr.Factory() = "大连工厂", "DL", "CC" ) + " " + mlcrr.Category() + "外租库",
                                 tempPISPIP.PlannedInventoryLevelEnd() );
        cell.RentalWarehouseStorageFees( plannedInventory / guard( lcm.PackagingCapacity(), 1 ) * guard( lcm.StoragePrice(), 1 ) );
        cell.RentalWarehouseStorageFees( [Number] ( plannedInventory / guard( lcm.PackagingCapacity(), 1 ) * guard( lcm.StoragePrice(), 1 ) ) );
    
        
        
@@ -143,10 +143,73 @@
        cell.Coefficient( 1.05 );
    
        // æ€»è´¹ç”¨
        cell.TotalCost( cell.EstimatedTotalCost() * cell.Coefficient() );
        cell.TotalCost( [Number] ( cell.EstimatedTotalCost() * cell.Coefficient() ) );
        
        cell.MachineLogisticsCostReportColumn( relset, mlcrc );
      }
    }
    // åˆ›å»ºSUM行
    sumR   := macroPlan.MachineLogisticsCostReportRow( relnew,  Category := "SUM", Factory := "大连工厂", Index := 2 );
    traverse ( macroPlan, MachineLogisticsCostReportColumn, mlcrc ) {
      cell := sumR.MachineLogisticsCostReportCell( relnew );
      cell.MachineLogisticsCostReportColumn( relset, mlcrc );
      cell.PackingCharges( sum( mlcrc, MachineLogisticsCostReportCell, tempMLCRCell, tempMLCRCell.MachineLogisticsCostReportRow().Category() <> "SUM" and tempMLCRCell.MachineLogisticsCostReportRow().Factory() = sumR.Factory(), tempMLCRCell.PackingCharges() ) );
      cell.UnpackingCost( sum( mlcrc, MachineLogisticsCostReportCell, tempMLCRCell, tempMLCRCell.MachineLogisticsCostReportRow().Category() <> "SUM" and tempMLCRCell.MachineLogisticsCostReportRow().Factory() = sumR.Factory(), tempMLCRCell.UnpackingCost() ) );
      cell.BufferPaperCost( sum( mlcrc, MachineLogisticsCostReportCell, tempMLCRCell, tempMLCRCell.MachineLogisticsCostReportRow().Category() <> "SUM" and tempMLCRCell.MachineLogisticsCostReportRow().Factory() = sumR.Factory(), tempMLCRCell.BufferPaperCost() ) );
      cell.QuantityOfWoodenCrates( sum( mlcrc, MachineLogisticsCostReportCell, tempMLCRCell, tempMLCRCell.MachineLogisticsCostReportRow().Category() <> "SUM" and tempMLCRCell.MachineLogisticsCostReportRow().Factory() = sumR.Factory(), tempMLCRCell.QuantityOfWoodenCrates() ) );
      cell.WoodenCrateCost( sum( mlcrc, MachineLogisticsCostReportCell, tempMLCRCell, tempMLCRCell.MachineLogisticsCostReportRow().Category() <> "SUM" and tempMLCRCell.MachineLogisticsCostReportRow().Factory() = sumR.Factory(), tempMLCRCell.WoodenCrateCost() ) );
      cell.TransferCost( sum( mlcrc, MachineLogisticsCostReportCell, tempMLCRCell, tempMLCRCell.MachineLogisticsCostReportRow().Category() <> "SUM" and tempMLCRCell.MachineLogisticsCostReportRow().Factory() = sumR.Factory(), tempMLCRCell.TransferCost() ) );
      cell.StorageFeesForRentedWarehouses( sum( mlcrc, MachineLogisticsCostReportCell, tempMLCRCell, tempMLCRCell.MachineLogisticsCostReportRow().Category() <> "SUM" and tempMLCRCell.MachineLogisticsCostReportRow().Factory() = sumR.Factory(), tempMLCRCell.StorageFeesForRentedWarehouses() ) );
      cell.OutboundExpensesForRentedWarehouses( sum( mlcrc, MachineLogisticsCostReportCell, tempMLCRCell, tempMLCRCell.MachineLogisticsCostReportRow().Category() <> "SUM" and tempMLCRCell.MachineLogisticsCostReportRow().Factory() = sumR.Factory(), tempMLCRCell.OutboundExpensesForRentedWarehouses() ) );
      cell.ExternalRentalWarehouseTransportationCosts( sum( mlcrc, MachineLogisticsCostReportCell, tempMLCRCell, tempMLCRCell.MachineLogisticsCostReportRow().Category() <> "SUM" and tempMLCRCell.MachineLogisticsCostReportRow().Factory() = sumR.Factory(), tempMLCRCell.ExternalRentalWarehouseTransportationCosts() ) );
      cell.RentalWarehouseStorageFees( sum( mlcrc, MachineLogisticsCostReportCell, tempMLCRCell, tempMLCRCell.MachineLogisticsCostReportRow().Category() <> "SUM" and tempMLCRCell.MachineLogisticsCostReportRow().Factory() = sumR.Factory(), tempMLCRCell.RentalWarehouseStorageFees() ) );
      cell.EstimatedTotalCost( sum( mlcrc, MachineLogisticsCostReportCell, tempMLCRCell, tempMLCRCell.MachineLogisticsCostReportRow().Category() <> "SUM" and tempMLCRCell.MachineLogisticsCostReportRow().Factory() = sumR.Factory(), tempMLCRCell.EstimatedTotalCost() ) );
      cell.Coefficient( 1.05 );
      cell.TotalCost( sum( mlcrc, MachineLogisticsCostReportCell, tempMLCRCell, tempMLCRCell.MachineLogisticsCostReportRow().Category() <> "SUM" and tempMLCRCell.MachineLogisticsCostReportRow().Factory() = sumR.Factory(), tempMLCRCell.TotalCost() ) );
    }
    // åˆ›å»ºSUM行
    sumR   := macroPlan.MachineLogisticsCostReportRow( relnew,  Category := "SUM", Factory := "长春工厂", Index := 2 );
    traverse ( macroPlan, MachineLogisticsCostReportColumn, mlcrc ) {
      cell := sumR.MachineLogisticsCostReportCell( relnew );
      cell.MachineLogisticsCostReportColumn( relset, mlcrc );
      cell.PackingCharges( sum( mlcrc, MachineLogisticsCostReportCell, tempMLCRCell, tempMLCRCell.MachineLogisticsCostReportRow().Category() <> "SUM" and tempMLCRCell.MachineLogisticsCostReportRow().Factory() = sumR.Factory(), tempMLCRCell.PackingCharges() ) );
      cell.UnpackingCost( sum( mlcrc, MachineLogisticsCostReportCell, tempMLCRCell, tempMLCRCell.MachineLogisticsCostReportRow().Category() <> "SUM" and tempMLCRCell.MachineLogisticsCostReportRow().Factory() = sumR.Factory(), tempMLCRCell.UnpackingCost() ) );
      cell.BufferPaperCost( sum( mlcrc, MachineLogisticsCostReportCell, tempMLCRCell, tempMLCRCell.MachineLogisticsCostReportRow().Category() <> "SUM" and tempMLCRCell.MachineLogisticsCostReportRow().Factory() = sumR.Factory(), tempMLCRCell.BufferPaperCost() ) );
      cell.QuantityOfWoodenCrates( sum( mlcrc, MachineLogisticsCostReportCell, tempMLCRCell, tempMLCRCell.MachineLogisticsCostReportRow().Category() <> "SUM" and tempMLCRCell.MachineLogisticsCostReportRow().Factory() = sumR.Factory(), tempMLCRCell.QuantityOfWoodenCrates() ) );
      cell.WoodenCrateCost( sum( mlcrc, MachineLogisticsCostReportCell, tempMLCRCell, tempMLCRCell.MachineLogisticsCostReportRow().Category() <> "SUM" and tempMLCRCell.MachineLogisticsCostReportRow().Factory() = sumR.Factory(), tempMLCRCell.WoodenCrateCost() ) );
      cell.TransferCost( sum( mlcrc, MachineLogisticsCostReportCell, tempMLCRCell, tempMLCRCell.MachineLogisticsCostReportRow().Category() <> "SUM" and tempMLCRCell.MachineLogisticsCostReportRow().Factory() = sumR.Factory(), tempMLCRCell.TransferCost() ) );
      cell.StorageFeesForRentedWarehouses( sum( mlcrc, MachineLogisticsCostReportCell, tempMLCRCell, tempMLCRCell.MachineLogisticsCostReportRow().Category() <> "SUM" and tempMLCRCell.MachineLogisticsCostReportRow().Factory() = sumR.Factory(), tempMLCRCell.StorageFeesForRentedWarehouses() ) );
      cell.OutboundExpensesForRentedWarehouses( sum( mlcrc, MachineLogisticsCostReportCell, tempMLCRCell, tempMLCRCell.MachineLogisticsCostReportRow().Category() <> "SUM" and tempMLCRCell.MachineLogisticsCostReportRow().Factory() = sumR.Factory(), tempMLCRCell.OutboundExpensesForRentedWarehouses() ) );
      cell.ExternalRentalWarehouseTransportationCosts( sum( mlcrc, MachineLogisticsCostReportCell, tempMLCRCell, tempMLCRCell.MachineLogisticsCostReportRow().Category() <> "SUM" and tempMLCRCell.MachineLogisticsCostReportRow().Factory() = sumR.Factory(), tempMLCRCell.ExternalRentalWarehouseTransportationCosts() ) );
      cell.RentalWarehouseStorageFees( sum( mlcrc, MachineLogisticsCostReportCell, tempMLCRCell, tempMLCRCell.MachineLogisticsCostReportRow().Category() <> "SUM" and tempMLCRCell.MachineLogisticsCostReportRow().Factory() = sumR.Factory(), tempMLCRCell.RentalWarehouseStorageFees() ) );
      cell.EstimatedTotalCost( sum( mlcrc, MachineLogisticsCostReportCell, tempMLCRCell, tempMLCRCell.MachineLogisticsCostReportRow().Category() <> "SUM" and tempMLCRCell.MachineLogisticsCostReportRow().Factory() = sumR.Factory(), tempMLCRCell.EstimatedTotalCost() ) );
      cell.Coefficient( 1.05 );
      cell.TotalCost( sum( mlcrc, MachineLogisticsCostReportCell, tempMLCRCell, tempMLCRCell.MachineLogisticsCostReportRow().Category() <> "SUM" and tempMLCRCell.MachineLogisticsCostReportRow().Factory() = sumR.Factory(), tempMLCRCell.TotalCost() ) );
    }
    // åˆ›å»ºSUM列
    sumC   := macroPlan.MachineLogisticsCostReportColumn( relnew, StartDate := Date::MaxDate() );
    traverse ( macroPlan, MachineLogisticsCostReportRow, mlcrr ) {
      cell := mlcrr.MachineLogisticsCostReportCell( relnew );
      cell.MachineLogisticsCostReportColumn( relset, sumC );
      cell.PackingCharges( sum( mlcrr, MachineLogisticsCostReportCell, tempMLCRCell, not tempMLCRCell.MachineLogisticsCostReportColumn().StartDate().IsMaxInfinity(), tempMLCRCell.PackingCharges() ) );
      cell.UnpackingCost( sum( mlcrr, MachineLogisticsCostReportCell, tempMLCRCell, not tempMLCRCell.MachineLogisticsCostReportColumn().StartDate().IsMaxInfinity(), tempMLCRCell.UnpackingCost() ) );
      cell.BufferPaperCost( sum( mlcrr, MachineLogisticsCostReportCell, tempMLCRCell, not tempMLCRCell.MachineLogisticsCostReportColumn().StartDate().IsMaxInfinity(), tempMLCRCell.BufferPaperCost() ) );
      cell.QuantityOfWoodenCrates( sum( mlcrr, MachineLogisticsCostReportCell, tempMLCRCell, not tempMLCRCell.MachineLogisticsCostReportColumn().StartDate().IsMaxInfinity(), tempMLCRCell.QuantityOfWoodenCrates() ) );
      cell.WoodenCrateCost( sum( mlcrr, MachineLogisticsCostReportCell, tempMLCRCell, not tempMLCRCell.MachineLogisticsCostReportColumn().StartDate().IsMaxInfinity(), tempMLCRCell.WoodenCrateCost() ) );
      cell.TransferCost( sum( mlcrr, MachineLogisticsCostReportCell, tempMLCRCell, not tempMLCRCell.MachineLogisticsCostReportColumn().StartDate().IsMaxInfinity(), tempMLCRCell.TransferCost() ) );
      cell.StorageFeesForRentedWarehouses( sum( mlcrr, MachineLogisticsCostReportCell, tempMLCRCell, not tempMLCRCell.MachineLogisticsCostReportColumn().StartDate().IsMaxInfinity(), tempMLCRCell.StorageFeesForRentedWarehouses() ) );
      cell.OutboundExpensesForRentedWarehouses( sum( mlcrr, MachineLogisticsCostReportCell, tempMLCRCell, not tempMLCRCell.MachineLogisticsCostReportColumn().StartDate().IsMaxInfinity(), tempMLCRCell.OutboundExpensesForRentedWarehouses() ) );
      cell.ExternalRentalWarehouseTransportationCosts( sum( mlcrr, MachineLogisticsCostReportCell, tempMLCRCell, not tempMLCRCell.MachineLogisticsCostReportColumn().StartDate().IsMaxInfinity(), tempMLCRCell.ExternalRentalWarehouseTransportationCosts() ) );
      cell.RentalWarehouseStorageFees( sum( mlcrr, MachineLogisticsCostReportCell, tempMLCRCell, not tempMLCRCell.MachineLogisticsCostReportColumn().StartDate().IsMaxInfinity(), tempMLCRCell.RentalWarehouseStorageFees() ) );
      cell.EstimatedTotalCost( sum( mlcrr, MachineLogisticsCostReportCell, tempMLCRCell, not tempMLCRCell.MachineLogisticsCostReportColumn().StartDate().IsMaxInfinity(), tempMLCRCell.EstimatedTotalCost() ) );
      cell.Coefficient( 1.05 );
      cell.TotalCost( sum( mlcrr, MachineLogisticsCostReportCell, tempMLCRCell, not tempMLCRCell.MachineLogisticsCostReportColumn().StartDate().IsMaxInfinity(), tempMLCRCell.TotalCost() ) );
    }
  *]
}
_Main/BL/Type_MachineLogisticsCostReportCell/StaticMethod_Export.qbl
@@ -1,7 +1,139 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Export (
  MacroPlan macroPlan,
  MachineLogisticsCostReportRows mlcrrs
)
) as BinaryValue
{
  TextBody:
  [*
    xmlDOMI      := XMLDOMImplementation::Create();
    xmlDOM       := xmlDOMI.CreateDocumentFromString( '<?xml version="1.0" encoding="UTF-16"?><table><name>Sheet1</name></table>' );
    tableElement := xmlDOM.GetElementByTagName( "table", 0 );
    // ç¬¬ä¸€åˆ—(名称)
    mlcrrs      := selectsortedset( mlcrrs, Elements, tempMLCRR, true, tempMLCRR.Index(), tempMLCRR.Category() );
    firstColumn := xmlDOM.CreateElement( "column" );
    firstName   := xmlDOM.CreateElement( "name" );
    firstType   := xmlDOM.CreateElement( "type" );
    firstName.TextContent( "*" );
    firstType.TextContent( "String" );
    firstColumn.AppendChild( firstName );
    firstColumn.AppendChild( firstType );
    traverse ( mlcrrs, Elements, mlcrr ) {
      firstCell := xmlDOM.CreateElement( "cell" );
      firstCell.SetAttribute( "value", mlcrr.Category() );
      firstColumn.AppendChild( firstCell );
      for ( i := 0; i < 12; i++ ) {
        firstCell := xmlDOM.CreateElement( "cell" );
        firstCell.SetAttribute( "value", "" );
        firstColumn.AppendChild( firstCell );
      }
    }
    tableElement.AppendChild( firstColumn );
    // ç¬¬äºŒåˆ—
    attrs        := construct( Strings ); attrs.Add( "包装费用" ); attrs.Add( "拆包费用" ); attrs.Add( "缓冲纸费用" ); attrs.Add( "木箱数量" ); attrs.Add( "木箱费用" );
                                          attrs.Add( "调拨费用" ); attrs.Add( "外租库入库费用" ); attrs.Add( "外租库出库费用" ); attrs.Add( "外租库运输费用" ); attrs.Add( "外租库仓储费用" );
                                          attrs.Add( "预计总费用" ); attrs.Add( "系数" ); attrs.Add( "总费用" );
    secondColumn := xmlDOM.CreateElement( "column" );
    secondName   := xmlDOM.CreateElement( "name" );
    secondType   := xmlDOM.CreateElement( "type" );
    secondName.TextContent( "*" );
    secondType.TextContent( "String" );
    secondColumn.AppendChild( secondName );
    secondColumn.AppendChild( secondType );
    for ( i := 0; i < mlcrrs.Size(); i++ ) {
      traverse ( attrs, Elements, attr ) {
        secondCell := xmlDOM.CreateElement( "cell" );
        secondCell.SetAttribute( "value", attr );
        secondColumn.AppendChild( secondCell );
      }
    }
    tableElement.AppendChild( secondColumn );
    // æ—¶é—´åˆ—
    mlcrcs := selectsortedset( macroPlan, MachineLogisticsCostReportColumn, tempMLCRC, true, tempMLCRC.StartDate() );
    traverse ( mlcrcs, Elements, mlcrc ) {
      cellColumn := xmlDOM.CreateElement( "column" );
      cellName   := xmlDOM.CreateElement( "name" );
      cellType   := xmlDOM.CreateElement( "type" );
      cellName.TextContent( mlcrc.DisplayName() );
      cellType.TextContent( "Real" );
      cellColumn.AppendChild( cellName );
      cellColumn.AppendChild( cellType );
      cells := selectsortedset( mlcrc, MachineLogisticsCostReportCell, tempMLCRCell,
                                exists( mlcrrs, Elements, tempMLCRR, tempMLCRR = tempMLCRCell.MachineLogisticsCostReportRow() ),
                                tempMLCRCell.MachineLogisticsCostReportRow().Index(), tempMLCRCell.MachineLogisticsCostReportRow().Category() );
      traverse ( cells, Elements, c ) {
        cell := xmlDOM.CreateElement( "cell" );
        cell.SetAttribute( "value", [String]c.PackingCharges().Round( 0 ) ); // åŒ…装费用
        cellColumn.AppendChild( cell );
        cell := xmlDOM.CreateElement( "cell" );
        cell.SetAttribute( "value", [String]c.UnpackingCost().Round( 0 ) ); // æ‹†åŒ…费用
        cellColumn.AppendChild( cell );
        cell := xmlDOM.CreateElement( "cell" );
        cell.SetAttribute( "value", [String]c.BufferPaperCost().Round( 0 ) ); // ç¼“冲纸费用
        cellColumn.AppendChild( cell );
        cell := xmlDOM.CreateElement( "cell" );
        cell.SetAttribute( "value", [String]c.QuantityOfWoodenCrates().Round( 0 ) ); // æœ¨ç®±æ•°é‡
        cellColumn.AppendChild( cell );
        cell := xmlDOM.CreateElement( "cell" );
        cell.SetAttribute( "value", [String]c.WoodenCrateCost().Round( 0 ) ); // æœ¨ç®±è´¹ç”¨
        cellColumn.AppendChild( cell );
        cell := xmlDOM.CreateElement( "cell" );
        cell.SetAttribute( "value", [String]c.TransferCost().Round( 0 ) ); // è°ƒæ‹¨è´¹ç”¨
        cellColumn.AppendChild( cell );
        cell := xmlDOM.CreateElement( "cell" );
        cell.SetAttribute( "value", [String]c.StorageFeesForRentedWarehouses().Round( 0 ) ); // å¤–租库入库费用
        cellColumn.AppendChild( cell );
        cell := xmlDOM.CreateElement( "cell" );
        cell.SetAttribute( "value", [String]c.OutboundExpensesForRentedWarehouses().Round( 0 ) ); // å¤–租库出库费用
        cellColumn.AppendChild( cell );
        cell := xmlDOM.CreateElement( "cell" );
        cell.SetAttribute( "value", [String]c.ExternalRentalWarehouseTransportationCosts().Round( 0 ) ); // å¤–租库运输费用
        cellColumn.AppendChild( cell );
        cell := xmlDOM.CreateElement( "cell" );
        cell.SetAttribute( "value", [String]c.RentalWarehouseStorageFees().Round( 0 ) ); // å¤–租库仓储费用
        cellColumn.AppendChild( cell );
        cell := xmlDOM.CreateElement( "cell" );
        cell.SetAttribute( "value", [String]c.EstimatedTotalCost().Round( 0 ) ); // é¢„计总费用
        cellColumn.AppendChild( cell );
        cell := xmlDOM.CreateElement( "cell" );
        cell.SetAttribute( "value", [String]c.Coefficient().Round( 2 ) ); // ç³»æ•°
        cellColumn.AppendChild( cell );
        cell := xmlDOM.CreateElement( "cell" );
        cell.SetAttribute( "value", [String]c.TotalCost().Round( 0 ) ); // æ€»è´¹ç”¨
        cellColumn.AppendChild( cell );
      }
      tableElement.AppendChild( cellColumn );
    }
    xmlString := xmlDOMI.CreateSerializer().WriteToString( xmlDOM )
    //info( xmlString );
    tableGroupHandle := TableGroupHandle::Create( "Sheet1" );
    tableHandle      := TableHandle::ImportXML( BinaryValue::Construct( xmlString ) );
    tableGroupHandle.Add( tableHandle );
    binaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true );
    return binaryData.AsBinaryValue();
  *]
}
_Main/BL/Type_MachineLogisticsCostReportCell/StaticMethod_Import.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,107 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Import (
  MacroPlan macroPlan,
  GeneralExcelImportAndExportDataTable table
)
{
  TextBody:
  [*
    isUpdateFlag        := "";
    attributeUpdateFlag := "";
    factory := table.GeneralExcelImportAndExportDataSource().Name().Tokenize( "_" ).Element( 0 );
    if ( not ( factory = "大连工厂" or factory = "长春工厂" ) ) {
      error( "文件名错误" );
    }
    traverse ( table, GeneralExcelImportAndExportDataRow, row ) {
      traverse ( table, GeneralExcelImportAndExportDataColumn, column ) {
        // å•元格值
        cellValue := select( row, GeneralExcelImportAndExportDataCell, tempGEIAEDCell, tempGEIAEDCell.GeneralExcelImportAndExportDataColumn() = column ).Value();
        // æœºåŠ ç‰©æµæˆæœ¬æŠ¥è¡¨åˆ—
        mlcrc     := select( macroPlan, MachineLogisticsCostReportColumn, tempMLCRC, tempMLCRC.DisplayName() = column.Name() );
        cell      := select( macroPlan, MachineLogisticsCostReportRow.MachineLogisticsCostReportCell, tempMLCRCell,
                             tempMLCRCell.MachineLogisticsCostReportRow().Category() = "SUM" and tempMLCRCell.MachineLogisticsCostReportRow().Factory() = factory
                             and tempMLCRCell.MachineLogisticsCostReportColumn() = mlcrc );
        if ( column.ColumnIndex() = 0 and cellValue <> "" ) {
          isUpdateFlag := cellValue;
        }
        if ( column.ColumnIndex() = 1 and cellValue <> "" ) {
          attributeUpdateFlag := cellValue;
        }
        if ( isUpdateFlag = "SUM" ) {
          if ( attributeUpdateFlag = "包装费用"            and not isnull( cell ) ) {
            if ( not cell.IsUpdatePackingCharges() and cell.PackingCharges() <> [Real]cellValue ) {
              cell.IsUpdatePackingCharges( true );
            }
            cell.PackingCharges( [Real]cellValue );
          } else if ( attributeUpdateFlag = "拆包费用"     and not isnull( cell ) ) {
            if ( not cell.IsUpdateUnpackingCost() and cell.UnpackingCost() <> [Real]cellValue ) {
              cell.IsUpdateUnpackingCost( true );
            }
            cell.UnpackingCost( [Real]cellValue );
          } else if ( attributeUpdateFlag = "缓冲纸费用"       and not isnull( cell ) ) {
            if ( not cell.IsUpdateBufferPaperCost() and cell.BufferPaperCost() <> [Real]cellValue ) {
              cell.IsUpdateBufferPaperCost( true );
            }
            cell.BufferPaperCost( [Real]cellValue );
          } else if ( attributeUpdateFlag = "木箱数量"       and not isnull( cell ) ) {
            if ( not cell.IsUpdateQuantityOfWoodenCrates() and cell.QuantityOfWoodenCrates() <> [Real]cellValue ) {
              cell.IsUpdateQuantityOfWoodenCrates( true );
            }
            cell.QuantityOfWoodenCrates( [Real]cellValue );
          } else if ( attributeUpdateFlag = "木箱费用"       and not isnull( cell ) ) {
            if ( not cell.IsUpdateWoodenCrateCost() and cell.WoodenCrateCost() <> [Real]cellValue ) {
              cell.IsUpdateWoodenCrateCost( true );
            }
            cell.WoodenCrateCost( [Real]cellValue );
          } else if ( attributeUpdateFlag = "调拨费用"       and not isnull( cell ) ) {
            if ( not cell.IsUpdateTransferCost() and cell.TransferCost() <> [Real]cellValue ) {
              cell.IsUpdateTransferCost( true );
            }
            cell.TransferCost( [Real]cellValue );
          } else if ( attributeUpdateFlag = "外租库入库费用" and not isnull( cell ) ) {
            if ( not cell.IsUpdateStorageFeesForRentedWarehouses() and cell.StorageFeesForRentedWarehouses() <> [Real]cellValue ) {
              cell.IsUpdateStorageFeesForRentedWarehouses( true );
            }
            cell.StorageFeesForRentedWarehouses( [Real]cellValue );
          } else if ( attributeUpdateFlag = "外租库出库费用" and not isnull( cell ) ) {
            if ( not cell.IsUpdateOutboundExpensesForRentedWarehouses() and cell.OutboundExpensesForRentedWarehouses() <> [Real]cellValue ) {
              cell.IsUpdateOutboundExpensesForRentedWarehouses( true );
            }
            cell.OutboundExpensesForRentedWarehouses( [Real]cellValue );
          } else if ( attributeUpdateFlag = "外租库运输费用" and not isnull( cell ) ) {
            if ( not cell.IsUpdateExternalRentalWarehouseTransportationCosts() and cell.ExternalRentalWarehouseTransportationCosts() <> [Real]cellValue ) {
              cell.IsUpdateExternalRentalWarehouseTransportationCosts( true );
            }
            cell.ExternalRentalWarehouseTransportationCosts( [Real]cellValue );
          } else if ( attributeUpdateFlag = "外租库仓储费用" and not isnull( cell ) ) {
            if ( not cell.IsUpdateRentalWarehouseStorageFees() and cell.RentalWarehouseStorageFees() <> [Real]cellValue ) {
              cell.IsUpdateRentalWarehouseStorageFees( true );
            }
            cell.RentalWarehouseStorageFees( [Real]cellValue );
          }else if ( attributeUpdateFlag = "预计总费用"     and not isnull( cell ) ) {
            if ( not cell.IsUpateEstimatedTotalCost() and cell.EstimatedTotalCost() <> [Real]cellValue ) {
              cell.IsUpateEstimatedTotalCost( true );
            }
            cell.EstimatedTotalCost( [Real]cellValue );
          } else if ( attributeUpdateFlag = "系数"           and not isnull( cell ) ) {
            if ( not cell.IsUpdateCoefficient() and cell.Coefficient() <> [Real]cellValue ) {
              cell.IsUpdateCoefficient( true );
            }
            cell.Coefficient( [Real]cellValue );
          } else if ( attributeUpdateFlag = "总费用"         and not isnull( cell ) ) {
            if ( not cell.IsUpdateTotalCost() and cell.TotalCost() <> [Real]cellValue ) {
              cell.IsUpdateTotalCost( true );
            }
            cell.TotalCost( [Real]cellValue );
          }
        }
      }
    }
  *]
}
_Main/BL/Type_MachineLogisticsCostReportColumn/Attribute_DisplayName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute DisplayName
{
  #keys: '3[413988.1.100804848][413988.1.100804847][413988.1.100804849]'
  Description: '列显示'
  ValueType: String
}
_Main/BL/Type_MachineLogisticsCostReportColumn/DefaultValue_DisplayName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: DisplayName
}
_Main/BL/Type_MachineLogisticsCostReportColumn/Function_CalcDisplayName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
Quintiq file version 2.0
#parent: #root
Function CalcDisplayName
{
  TextBody:
  [*
    value := ifexpr( this.StartDate().IsMaxInfinity(), "SUM", this.StartDate().Format( "Y-M2-D2" ) );
    this.DisplayName( value );
  *]
}
_Main/BL/Type_MachineLogisticsCostReportRow/Attribute_Index.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Index
{
  #keys: '3[413988.1.100900359][413988.1.100900358][413988.1.100900360]'
  Description: '排序索引'
  ValueType: Number
}
_Main/BL/Type_OfflinePlanArchiveVersion/Method_GetRow.qbl
@@ -11,12 +11,14 @@
    
    if( isnull( row ) ){
      product := selectobject( noprow.NewOfflinePlanTable().MacroPlan(), Product_MP, product, product.ID() = noprow.ProductID() );
      if( not isnull( product ) ){
      unit    := ifexpr( noprow.ProductionLine().FindString( "CC", 0 ) > -1, FinancialProductionReport::GetDefaultCCUnit(), FinancialProductionReport::GetDefaultDLUnit() );
      row     := this.Row( relnew, Name := noprow.ProductID(), ProductionLine := noprow.ProductionLine(), Type := noprow.Type(), Unit := unit
                           , ProductID := ifexpr( exists( product.GetAllParent(), Elements, e, e.ID() = EnginePipelineReport::GetDefaultProductParent() ), product.Notes(), product.ID() ) );
      //初始化单元格
      row.InitializeCell();
    }
    }
    
    return row;
  *]
_Main/BL/Type_OfflinePlanArchiveVersion/StaticMethod_RefreshData.qbl
@@ -35,6 +35,7 @@
    }
    traverse( noptable, NewOfflinePlanRow, noprow ){
      row                  := table.GetRow( noprow );
      if( not isnull( row ) ){
      traverse( noprow, NewOfflinePlanCell, nopcell ){
        column             := selectobject( table, Column, column, column.TimeUnit() = Translations::MP_GlobalParameters_Day() and column.StartDate() = nopcell.NewOfflinePlanColumn().StartDate() );
        cell               := selectobject( row, Cell, cell, cell.Column() = column );
@@ -55,6 +56,7 @@
    //      cell.Value( nopcell.Value() );
      }
    }
    }
    showtable.Generate( search );
  *]
}
_Main/Sys/Repr/Global/CCEngineLogisticsCostCell.qrp
@@ -11,7 +11,7 @@
      DataRepresentation.Conditional
      {
        BackgroundColor: '$FF6666'
        ConditionBody: 'object.IsUpdate()'
        ConditionBody: 'object.IsAllCostUpdate()'
        ConversionBody: ''
        DefaultBackgroundColor: false
        InheritConversion: false
@@ -22,31 +22,97 @@
  {
    AttributeKey: '[415136.0.1188511346]'
    Synonym: '系数'
    Conditional:
    [
      DataRepresentation.Conditional
      {
        BackgroundColor: '$FF6666'
        ConditionBody: 'object.IsCoefficientUpdate()'
        ConversionBody: ''
        DefaultBackgroundColor: false
        InheritConversion: false
      }
    ]
  }
  AttributeRepresentation EstimateTotalCost
  {
    AttributeKey: '[415136.0.1160240036]'
    Synonym: '预计总费用'
    Conditional:
    [
      DataRepresentation.Conditional
      {
        BackgroundColor: '$FF6666'
        ConditionBody: 'object.IsEstimateTotalCostUpdate()'
        ConversionBody: ''
        DefaultBackgroundColor: false
        InheritConversion: false
      }
    ]
  }
  AttributeRepresentation RentInCost
  {
    AttributeKey: '[415136.0.1160164662]'
    Synonym: '外租库入库费用'
    Conditional:
    [
      DataRepresentation.Conditional
      {
        BackgroundColor: '$FF6666'
        ConditionBody: 'object.IsRentInCostUpdate()'
        ConversionBody: ''
        DefaultBackgroundColor: false
        InheritConversion: false
      }
    ]
  }
  AttributeRepresentation RentOutOfCost
  {
    AttributeKey: '[415136.0.1160164672]'
    Synonym: '外租库出库费用'
    Conditional:
    [
      DataRepresentation.Conditional
      {
        BackgroundColor: '$FF6666'
        ConditionBody: 'object.IsRentOutOfCostUpdate()'
        ConversionBody: ''
        DefaultBackgroundColor: false
        InheritConversion: false
      }
    ]
  }
  AttributeRepresentation RentStorCost
  {
    AttributeKey: '[415136.0.1160164707]'
    Synonym: '外租库仓储费用'
    Conditional:
    [
      DataRepresentation.Conditional
      {
        BackgroundColor: '$FF6666'
        ConditionBody: 'object.IsRentStorCostUpdate()'
        ConversionBody: ''
        DefaultBackgroundColor: false
        InheritConversion: false
      }
    ]
  }
  AttributeRepresentation WerkToRentTransCost
  {
    AttributeKey: '[415136.0.1160240024]'
    Synonym: '厂内到外租库运输费用'
    Conditional:
    [
      DataRepresentation.Conditional
      {
        BackgroundColor: '$FF6666'
        ConditionBody: 'object.IsWerkToRentTransCostUpdate()'
        ConversionBody: ''
        DefaultBackgroundColor: false
        InheritConversion: false
      }
    ]
  }
  RelationRepresentation Column { RelationKey: '[415136.0.986881392]' Visibility: 'Normal' }
}
_Main/Sys/Repr/Global/DLEngineLogisticsCostCell.qrp
@@ -11,7 +11,7 @@
      DataRepresentation.Conditional
      {
        BackgroundColor: '$FF6666'
        ConditionBody: 'object.IsUpdate()'
        ConditionBody: 'object.IsAllCostUpdate()'
        ConversionBody: ''
        DefaultBackgroundColor: false
        InheritConversion: false
@@ -22,61 +22,193 @@
  {
    AttributeKey: '[415136.0.1160164734]'
    Synonym: '长春长途运输费用'
    Conditional:
    [
      DataRepresentation.Conditional
      {
        BackgroundColor: '$FF6666'
        ConditionBody: 'object.IsCCLongTransCostUpdate()'
        ConversionBody: ''
        DefaultBackgroundColor: false
        InheritConversion: false
      }
    ]
  }
  AttributeRepresentation CCRentInCost
  {
    AttributeKey: '[415136.0.1160164742]'
    Synonym: '长春外租库入库费用'
    Conditional:
    [
      DataRepresentation.Conditional
      {
        BackgroundColor: '$FF6666'
        ConditionBody: 'object.IsCCRentInCostUpdate()'
        ConversionBody: ''
        DefaultBackgroundColor: false
        InheritConversion: false
      }
    ]
  }
  AttributeRepresentation CCRentOutOfCost
  {
    AttributeKey: '[415136.0.1160164750]'
    Synonym: '长春外租库出库费用'
    Conditional:
    [
      DataRepresentation.Conditional
      {
        BackgroundColor: '$FF6666'
        ConditionBody: 'object.IsCCRentOutOfCostUpdate()'
        ConversionBody: ''
        DefaultBackgroundColor: false
        InheritConversion: false
      }
    ]
  }
  AttributeRepresentation CCRentStorCost
  {
    AttributeKey: '[415136.0.1160164771]'
    Synonym: '长春外租库仓储费用'
    Conditional:
    [
      DataRepresentation.Conditional
      {
        BackgroundColor: '$FF6666'
        ConditionBody: 'object.IsCCRentStorCostUpdate()'
        ConversionBody: ''
        DefaultBackgroundColor: false
        InheritConversion: false
      }
    ]
  }
  AttributeRepresentation CCShorTransCost
  {
    AttributeKey: '[415136.0.1160164779]'
    Synonym: '长春短途运输费用'
    Conditional:
    [
      DataRepresentation.Conditional
      {
        BackgroundColor: '$FF6666'
        ConditionBody: 'object.IsCCShorTransCostUpdate()'
        ConversionBody: ''
        DefaultBackgroundColor: false
        InheritConversion: false
      }
    ]
  }
  AttributeRepresentation CoefficientValue
  {
    AttributeKey: '[415136.0.1188511355]'
    Synonym: '系数'
    Conditional:
    [
      DataRepresentation.Conditional
      {
        BackgroundColor: '$FF6666'
        ConditionBody: 'object.IsCoefficientUpdate()'
        ConversionBody: ''
        DefaultBackgroundColor: false
        InheritConversion: false
      }
    ]
  }
  AttributeRepresentation DLRentInCost
  {
    AttributeKey: '[415136.0.1160164787]'
    Synonym: '大连外租库入库费用'
    Conditional:
    [
      DataRepresentation.Conditional
      {
        BackgroundColor: '$FF6666'
        ConditionBody: 'object.IsDLRentInCostUpdate()'
        ConversionBody: ''
        DefaultBackgroundColor: false
        InheritConversion: false
      }
    ]
  }
  AttributeRepresentation DLRentOtherCost
  {
    AttributeKey: '[415136.0.1184074681]'
    Synonym: '大连外租库其他费用'
    Conditional:
    [
      DataRepresentation.Conditional
      {
        BackgroundColor: '$FF6666'
        ConditionBody: 'object.IsDLRentOtherCostUpdate()'
        ConversionBody: ''
        DefaultBackgroundColor: false
        InheritConversion: false
      }
    ]
  }
  AttributeRepresentation DLRentOutOfCost
  {
    AttributeKey: '[415136.0.1160164795]'
    Synonym: '大连外租库出库费用'
    Conditional:
    [
      DataRepresentation.Conditional
      {
        BackgroundColor: '$FF6666'
        ConditionBody: 'object.IsDLRentOutOfCostUpdate()'
        ConversionBody: ''
        DefaultBackgroundColor: false
        InheritConversion: false
      }
    ]
  }
  AttributeRepresentation DLRentStorCost
  {
    AttributeKey: '[415136.0.1160164806]'
    Synonym: '大连外租库仓储费用'
    Conditional:
    [
      DataRepresentation.Conditional
      {
        BackgroundColor: '$FF6666'
        ConditionBody: 'object.IsDLRentStorCostUpdate()'
        ConversionBody: ''
        DefaultBackgroundColor: false
        InheritConversion: false
      }
    ]
  }
  AttributeRepresentation EstimateTotalCost
  {
    AttributeKey: '[415136.0.1160164814]'
    Synonym: '预计总费用'
    Conditional:
    [
      DataRepresentation.Conditional
      {
        BackgroundColor: '$FF6666'
        ConditionBody: 'object.IsEstimateTotalCostUpdate()'
        ConversionBody: ''
        DefaultBackgroundColor: false
        InheritConversion: false
      }
    ]
  }
  AttributeRepresentation WerkToDLRentTransCost
  {
    AttributeKey: '[415136.0.1160164822]'
    Synonym: '厂内到外租库运输费用'
    Conditional:
    [
      DataRepresentation.Conditional
      {
        BackgroundColor: '$FF6666'
        ConditionBody: 'object.IsWerkToDLRentTransCostUpdate()'
        ConversionBody: ''
        DefaultBackgroundColor: false
        InheritConversion: false
      }
    ]
  }
  RelationRepresentation Column { RelationKey: '[415136.0.992900194]' Visibility: 'Normal' }
}
_Main/Sys/Repr/Global/MachineLogisticsCostReportCell.qrp
@@ -6,6 +6,17 @@
  {
    AttributeKey: '[413988.0.1462991459]'
    Synonym: '缓冲纸费用'
    Conditional:
    [
      DataRepresentation.Conditional
      {
        BackgroundColor: '$FF3399'
        ConditionBody: 'object.IsUpdateBufferPaperCost()'
        ConversionBody: ''
        DefaultBackgroundColor: false
        InheritConversion: false
      }
    ]
  }
  AttributeRepresentation Coefficient
  {
@@ -13,6 +24,14 @@
    Synonym: '系数'
    Conditional:
    [
      DataRepresentation.Conditional
      {
        BackgroundColor: '$FF3399'
        ConditionBody: 'object.IsUpdateCoefficient()'
        ConversionBody: ''
        DefaultBackgroundColor: false
        InheritConversion: false
      }
    ]
    DataRepresentation.Default
    {
@@ -24,56 +43,177 @@
  {
    AttributeKey: '[413988.0.1462991539]'
    Synonym: '预计总费用'
    Conditional:
    [
      DataRepresentation.Conditional
      {
        BackgroundColor: '$FF3399'
        ConditionBody: 'object.IsUpateEstimatedTotalCost()'
        ConversionBody: ''
        DefaultBackgroundColor: false
        InheritConversion: false
      }
    ]
  }
  AttributeRepresentation ExternalRentalWarehouseTransportationCosts
  {
    AttributeKey: '[413988.0.1462991519]'
    Synonym: '外租库运输费用'
    Conditional:
    [
      DataRepresentation.Conditional
      {
        BackgroundColor: '$FF3399'
        ConditionBody: 'object.IsUpdateExternalRentalWarehouseTransportationCosts()'
        ConversionBody: ''
        DefaultBackgroundColor: false
        InheritConversion: false
      }
    ]
  }
  AttributeRepresentation OutboundExpensesForRentedWarehouses
  {
    AttributeKey: '[413988.0.1462991509]'
    Synonym: '外租库出库费用'
    Conditional:
    [
      DataRepresentation.Conditional
      {
        BackgroundColor: '$FF3399'
        ConditionBody: 'object.IsUpdateOutboundExpensesForRentedWarehouses()'
        ConversionBody: ''
        DefaultBackgroundColor: false
        InheritConversion: false
      }
    ]
  }
  AttributeRepresentation PackingCharges
  {
    AttributeKey: '[413988.0.1462991439]'
    Synonym: '包装费用'
    Conditional:
    [
      DataRepresentation.Conditional
      {
        BackgroundColor: '$FF3399'
        ConditionBody: 'object.IsUpdatePackingCharges()'
        ConversionBody: ''
        DefaultBackgroundColor: false
        InheritConversion: false
      }
    ]
  }
  AttributeRepresentation QuantityOfWoodenCrates
  {
    AttributeKey: '[413988.0.1462991469]'
    Synonym: '木箱数量'
    Conditional:
    [
      DataRepresentation.Conditional
      {
        BackgroundColor: '$FF3399'
        ConditionBody: 'object.IsUpdateQuantityOfWoodenCrates()'
        ConversionBody: ''
        DefaultBackgroundColor: false
        InheritConversion: false
      }
    ]
  }
  AttributeRepresentation RentalWarehouseStorageFees
  {
    AttributeKey: '[413988.0.1462991529]'
    Synonym: '外租库仓储费用'
    Conditional:
    [
      DataRepresentation.Conditional
      {
        BackgroundColor: '$FF3399'
        ConditionBody: 'object.IsUpdateRentalWarehouseStorageFees()'
        ConversionBody: ''
        DefaultBackgroundColor: false
        InheritConversion: false
      }
    ]
  }
  AttributeRepresentation StorageFeesForRentedWarehouses
  {
    AttributeKey: '[413988.0.1462991499]'
    Synonym: '外租库入库费用'
    Conditional:
    [
      DataRepresentation.Conditional
      {
        BackgroundColor: '$FF3399'
        ConditionBody: 'object.IsUpdateStorageFeesForRentedWarehouses()'
        ConversionBody: ''
        DefaultBackgroundColor: false
        InheritConversion: false
      }
    ]
  }
  AttributeRepresentation TotalCost
  {
    AttributeKey: '[413988.0.1462991549]'
    Synonym: '总费用'
    Conditional:
    [
      DataRepresentation.Conditional
      {
        BackgroundColor: '$FF3399'
        ConditionBody: 'object.IsUpdateTotalCost()'
        ConversionBody: ''
        DefaultBackgroundColor: false
        InheritConversion: false
      }
    ]
  }
  AttributeRepresentation TransferCost
  {
    AttributeKey: '[413988.0.1462991489]'
    Synonym: '调拨费用'
    Conditional:
    [
      DataRepresentation.Conditional
      {
        BackgroundColor: '$FF3399'
        ConditionBody: 'object.IsUpdateTransferCost()'
        ConversionBody: ''
        DefaultBackgroundColor: false
        InheritConversion: false
      }
    ]
  }
  AttributeRepresentation UnpackingCost
  {
    AttributeKey: '[413988.0.1462991449]'
    Synonym: '拆包费用'
    Conditional:
    [
      DataRepresentation.Conditional
      {
        BackgroundColor: '$FF3399'
        ConditionBody: 'object.IsUpdateUnpackingCost()'
        ConversionBody: ''
        DefaultBackgroundColor: false
        InheritConversion: false
      }
    ]
  }
  AttributeRepresentation WoodenCrateCost
  {
    AttributeKey: '[413988.0.1462991479]'
    Synonym: '木箱费用'
    Conditional:
    [
      DataRepresentation.Conditional
      {
        BackgroundColor: '$FF3399'
        ConditionBody: 'object.IsUpdateWoodenCrateCost()'
        ConversionBody: ''
        DefaultBackgroundColor: false
        InheritConversion: false
      }
    ]
  }
  RelationRepresentation MachineLogisticsCostReportColumn { RelationKey: '[413988.0.1462991383]' Visibility: 'Normal' }
}
_Main/UI/MacroPlannerWebApp/Component_FormMachineLogisticsCostReport/Component_MatrixEditor912.def
@@ -56,7 +56,7 @@
      Properties:
      [
        Legend: 'Category'
        SortCriteria: 'Category'
        SortCriteria: 'Index;Category'
        Taborder: 1
      ]
    }
@@ -81,7 +81,7 @@
      ]
      Properties:
      [
        Legend: 'StartDate'
        Legend: 'DisplayName'
        SortCriteria: 'StartDate'
        Taborder: 2
      ]
_Main/UI/MacroPlannerWebApp/Component_FormMachineLogisticsCostReport/Component_pHeader.def
@@ -33,6 +33,18 @@
      Properties:
      [
        Image: 'EXPORT1'
        Label: '导出'
        Taborder: 3
      ]
    }
    Component bImport id:bImport_438
    {
      #keys: '[413988.1.109640450]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'IMPORT1'
        Label: '导入'
        Taborder: 2
      ]
    }
_Main/UI/MacroPlannerWebApp/Component_FormMachineLogisticsCostReport/Response_MatrixEditor912_OnUpdateValue.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: MatrixEditor912
Response OnUpdateValue (
  MachineLogisticsCostReportCell cell,
  Real value
) id:Response_MatrixEditor912_OnUpdateValue
{
  #keys: '[413988.1.115290697]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebMatrixEditor_OnUpdateValue'
  QuillAction
  {
    Body:
    [*
      cell.SetCellValue( value );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormMachineLogisticsCostReport/Response_pHeader_bExport_OnClick.def
@@ -13,9 +13,11 @@
  {
    Body:
    [*
      mlcrrs := selectset( MacroPlan, MachineLogisticsCostReportRow, tempMLCRR, true );
      mlcrrs := selectset( MacroPlan, MachineLogisticsCostReportRow, tempMLCRR, tempMLCRR.Factory() = ddslFactory.Text() );
      
      MachineLogisticsCostReportCell::Export( mlcrrs );
      binaryValue := MachineLogisticsCostReportCell::Export( MacroPlan, mlcrrs );
      Application.Download( ddslFactory.Text() + "_机加物流成本报表.xlsx", binaryValue.AsBinaryData() );
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FormMachineLogisticsCostReport/Response_pHeader_bImport_OnClick#298.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,45 @@
Quintiq file version 2.0
#parent: pHeader/bImport_438
Response OnClick () id:Response_pHeader_bImport_OnClick_298
{
  #keys: '[413988.1.109640449]'
  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();
          generalExcelImportAndExportDataSource := GeneralExcelImportAndExportDataSource::Upload( RecycleBin, webFileBinaryData, fileName );
          generalExcelImportAndExportDataSource.ReadStructure();
          selection := select( generalExcelImportAndExportDataSource, GeneralExcelImportAndExportDataTable, tempGEIAEDT, tempGEIAEDT.Name() = "Sheet1" );
          MachineLogisticsCostReportCell::Import( MacroPlan, selection );
          // åŽç»­åˆ é™¤
          generalExcelImportAndExportDataSource.Delete();
          WebMessageBox::Success( Translations::A_VWED_Success() );
        }
      } onerror {
        WebMessageBox::Error( e.GeneralInformation() );
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Views/MachineLogisticsCostReport.vw
@@ -27,6 +27,147 @@
          {
            sizeRatio: 1
          }
          FormMachineLogisticsCostReport_MatrixEditor912
          {
            gridColor: '#c4c4c4'
            totalHeaderWidth: 200
            attributeHeaderWidthRatio: 0.6
            nameHeaderWidthRatio: 0.4
            columnWidth: 90
            horizontalGrid: true
            verticalGrid: true
            backendState
            {
              componentId: 'QMacroPlanner::FormMachineLogisticsCostReport.MatrixEditor912'
              state
              {
                cells
                {
                  attributes
                  {
                    attribute_PackingCharges
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 0
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'PackingCharges'
                    }
                    attribute_UnpackingCost
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 1
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'UnpackingCost'
                    }
                    attribute_BufferPaperCost
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 2
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'BufferPaperCost'
                    }
                    attribute_QuantityOfWoodenCrates
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 3
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'QuantityOfWoodenCrates'
                    }
                    attribute_WoodenCrateCost
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 4
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'WoodenCrateCost'
                    }
                    attribute_TransferCost
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 5
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'TransferCost'
                    }
                    attribute_StorageFeesForRentedWarehouses
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 6
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'StorageFeesForRentedWarehouses'
                    }
                    attribute_OutboundExpensesForRentedWarehouses
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 7
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'OutboundExpensesForRentedWarehouses'
                    }
                    attribute_ExternalRentalWarehouseTransportationCosts
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 8
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'ExternalRentalWarehouseTransportationCosts'
                    }
                    attribute_RentalWarehouseStorageFees
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 9
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'RentalWarehouseStorageFees'
                    }
                    attribute_EstimatedTotalCost
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 10
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'EstimatedTotalCost'
                    }
                    attribute_Coefficient
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 11
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'Coefficient'
                    }
                    attribute_TotalCost
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 12
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'TotalCost'
                    }
                  }
                }
                columns
                {
                  sorting
                  {
                    criteria: "datamember:'StartDate'"
                  }
                }
                rows
                {
                  sorting
                  {
                    criteria: "datamember:'Index';datamember:'Category'"
                  }
                }
              }
            }
          }
        }
      }
      form_FormGeneralSettings