rislai
2024-06-21 315c0f4db2e89a9a3e31461abc06c08317d48f8b
Merge branch 'dev' of http://47.101.211.7:10101/r/VWED into dev
已修改4个文件
已添加83个文件
1852 ■■■■■ 文件已修改
LibMacroPlanner/BL/Type_Product_MP/Method_SetDefaultManufacturedDateActualForShelfLife.qbl 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_FinancialProductionColumn_FinancialProductionCell_FinancialProducti.qbl 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_FinancialProductionReport_FinancialProductionColumn_FinancialProduc.qbl 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_FinancialProductionReport_FinancialProductionRow_FinancialProductio.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_FinancialProductionRow_FinancialProductionCell_FinancialProductionC.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_FinancialProductionSource_FinancialProductionReport_FinancialProduc.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_FinancialProductionSource_MacroPlan_MacroPlan_FinancialProductionSo.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Feedback/_ROOT_Type_Feedback.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionCell/Attribute_Value.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionCell/_ROOT_Type_FinancialProductionCell.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionColumn/Attribute_Index.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionColumn/Attribute_Name.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionColumn/Attribute_Period.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionColumn/Function_CalcIndex.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionColumn/_ROOT_Type_FinancialProductionColumn.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionReport/Attribute_ID.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionReport/Attribute_IsImport.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionReport/Attribute_Name.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionReport/Method_SyncRows.qbl 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXML/XMLElementId_Key.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXML/XMLElementId_QuintiqType.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXML/XMLObjectBase_cell.qbl 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXML/XMLObjectBase_column.qbl 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXML/XMLObjectBase_table.qbl 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXML/_ROOT_XML_FinancialProductionReportXML.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXMLHeaders/XMLElementId_Key.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXMLHeaders/XMLElementId_QuintiqType.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXMLHeaders/XMLObjectBase_column.qbl 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXMLHeaders/XMLObjectBase_table.qbl 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXMLHeaders/_ROOT_XML_FinancialProductionReportXMLHeaders.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionReport/_ROOT_Type_FinancialProductionReport.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionRow/Attribute_Name.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionRow/Attribute_RowNr.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionRow/_ROOT_Type_FinancialProductionRow.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionSource/Attribute_FileBinaryValue.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionSource/Attribute_IsXLSX.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionSource/Attribute_Name.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionSource/Attribute_UploadDateTime.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionSource/Attribute_UploadUser.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionSource/DefaultValue_Name.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionSource/DefaultValue_UploadDateTime.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionSource/DefaultValue_UploadUser.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionSource/Method_ReadStructure.qbl 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionSource/StaticMethod_Download.qbl 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionSource/StaticMethod_DownloadTemplate.qbl 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionSource/StaticMethod_Upload.qbl 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionSource/_ROOT_Type_FinancialProductionSource.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Product_MP/Attribute_Generation.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Product_MP/Attribute_MQBMLB.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Product_MP/Attribute_Power.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Product_MP/Method_Update#587.qbl 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Product_MP/Method_Update.qbl 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Product_MP/StaticMethod_Update.qbl 156 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupReport.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageReport.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageScenarioSelection.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_applicationFixedPageActionBarPageDef.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupReport_ButtonFinancialProductionReport_O.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProduct/Component_PanelGeneral.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProduct/Component_PanelGeneration.def 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProduct/Component_PanelMQBMLB.def 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProduct/Component_PanelPower.def 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProduct/Component_pnlContent.def 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProduct/Method_OnOK.def 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProduct/Method_UIShowHideComponentForBatchEdit.def 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProduct/_ROOT_Component_DialogCreateEditProduct.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelExport.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelFinancialProductionReportHeader.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelFinancialProductionReportOperation.def 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelFinancialProductionReportSearch.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelFinancialProductionReportTable.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelGeneration.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelMQBMLB.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelPower.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelUnit.def 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelExport_ButtonExport_OnClick.def 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelFinancialProductionReportOperation_ButtonProductionExport_OnCl.def 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelFinancialProductionReportOperation_ButtonProductionImport_OnCl.def 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelGeneration_ddslGeneration_OnCreated.def 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelMQBMLB_ddslMQBMLB_OnCreated.def 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelPower_ddslPower_OnCreated.def 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/_ROOT_Component_FormFinancialProductionReport.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormProducts/Component_ListProduct#844.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormProducts/Component_PanelList.def 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormProducts/_ROOT_Component_FormProducts.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Views/Financial_production_report_view.vw 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LibMacroPlanner/BL/Type_Product_MP/Method_SetDefaultManufacturedDateActualForShelfLife.qbl
@@ -15,5 +15,4 @@
      }
    }
  *]
  InterfaceProperties { Accessibility: 'Module' }
}
_Main/BL/Relations/Relation_FinancialProductionColumn_FinancialProductionCell_FinancialProducti.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
#parent: #root
Relation FinancialProductionColumn_FinancialProductionCell_FinancialProductionCell_FinancialProductionColumn
{
  #keys: '1[415136.0.834715204]'
  ProceduralSequenceRelationStrategy
  {
    #keys: '13[0.0.0][415136.0.834715223][415136.0.834715217][415136.0.834715224][415136.0.834715218][415136.0.834715225][415136.0.834715219][415136.0.834715226][415136.0.834715220][415136.0.834715227][415136.0.834715221][415136.0.834715228][415136.0.834715222]'
    SequenceElementSuffix: 'CellInColumn'
    SequenceSuffix: 'CellInColumn'
  }
  RelationSide.LeftSide FinancialProductionCell
  {
    #keys: '3[415136.0.834715206][415136.0.834715205][415136.0.834715207]'
    Cardinality: '1toN'
    ObjectDefinition: FinancialProductionColumn
    OwningSide: 'Owned'
  }
  RelationSide.RightSide FinancialProductionColumn
  {
    #keys: '3[415136.0.834715209][415136.0.834715208][415136.0.834715210]'
    Cardinality: '0to1'
    ObjectDefinition: FinancialProductionCell
    OwningSide: 'Reference'
  }
}
_Main/BL/Relations/Relation_FinancialProductionReport_FinancialProductionColumn_FinancialProduc.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
#parent: #root
Relation FinancialProductionReport_FinancialProductionColumn_FinancialProductionColumn_FinancialProductionReport
{
  #keys: '1[415136.0.834715133]'
  ProceduralSequenceRelationStrategy
  {
    #keys: '13[0.0.0][415136.0.834715155][415136.0.834715149][415136.0.834715156][415136.0.834715150][415136.0.834715157][415136.0.834715151][415136.0.834715158][415136.0.834715152][415136.0.834715159][415136.0.834715153][415136.0.834715160][415136.0.834715154]'
    SequenceElementSuffix: 'Column'
    SequenceSuffix: 'Column'
  }
  RelationSide.LeftSide FinancialProductionColumn
  {
    #keys: '3[415136.0.834715135][415136.0.834715134][415136.0.834715136]'
    Cardinality: '1toN'
    ObjectDefinition: FinancialProductionReport
    OwningSide: 'Owned'
  }
  RelationSide.RightSide FinancialProductionReport
  {
    #keys: '3[415136.0.834715138][415136.0.834715137][415136.0.834715139]'
    Cardinality: '0to1'
    ObjectDefinition: FinancialProductionColumn
    OwningSide: 'Reference'
  }
}
_Main/BL/Relations/Relation_FinancialProductionReport_FinancialProductionRow_FinancialProductio.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation FinancialProductionReport_FinancialProductionRow_FinancialProductionRow_FinancialProductionReport
{
  #keys: '1[415136.0.834715120]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide FinancialProductionRow
  {
    #keys: '3[415136.0.834715122][415136.0.834715121][415136.0.834715123]'
    Cardinality: '1toN'
    ObjectDefinition: FinancialProductionReport
    OwningSide: 'Owned'
  }
  RelationSide.RightSide FinancialProductionReport
  {
    #keys: '3[415136.0.834715125][415136.0.834715124][415136.0.834715126]'
    Cardinality: '0to1'
    ObjectDefinition: FinancialProductionRow
    OwningSide: 'Reference'
  }
}
_Main/BL/Relations/Relation_FinancialProductionRow_FinancialProductionCell_FinancialProductionC.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation FinancialProductionRow_FinancialProductionCell_FinancialProductionCell_FinancialProductionRow
{
  #keys: '1[415136.0.834715244]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide FinancialProductionCell
  {
    #keys: '3[415136.0.834715246][415136.0.834715245][415136.0.834715247]'
    Cardinality: '1toN'
    ObjectDefinition: FinancialProductionRow
    OwningSide: 'Reference'
  }
  RelationSide.RightSide FinancialProductionRow
  {
    #keys: '3[415136.0.834715249][415136.0.834715248][415136.0.834715250]'
    Cardinality: '0to1'
    ObjectDefinition: FinancialProductionCell
    OwningSide: 'Reference'
  }
}
_Main/BL/Relations/Relation_FinancialProductionSource_FinancialProductionReport_FinancialProduc.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation FinancialProductionSource_FinancialProductionReport_FinancialProductionReport_FinancialProductionSource
{
  #keys: '1[415136.0.833840404]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide FinancialProductionReport
  {
    #keys: '3[415136.0.833840406][415136.0.833840405][415136.0.833840407]'
    Cardinality: '1toN'
    ObjectDefinition: FinancialProductionSource
    OwningSide: 'Owned'
  }
  RelationSide.RightSide FinancialProductionSource
  {
    #keys: '3[415136.0.833840409][415136.0.833840408][415136.0.833840410]'
    Cardinality: '0to1'
    ObjectDefinition: FinancialProductionReport
    OwningSide: 'Reference'
  }
}
_Main/BL/Relations/Relation_FinancialProductionSource_MacroPlan_MacroPlan_FinancialProductionSo.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation FinancialProductionSource_MacroPlan_MacroPlan_FinancialProductionSource
{
  #keys: '1[415136.0.834715355]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide MacroPlan
  {
    #keys: '3[415136.0.834715357][415136.0.834715356][415136.0.834715358]'
    Cardinality: '0to1'
    ObjectDefinition: FinancialProductionSource
    OwningSide: 'Reference'
  }
  RelationSide.RightSide FinancialProductionSource
  {
    #keys: '3[415136.0.834715360][415136.0.834715359][415136.0.834715361]'
    Cardinality: '1toN'
    ObjectDefinition: MacroPlan
    OwningSide: 'Owned'
  }
}
_Main/BL/Type_Feedback/_ROOT_Type_Feedback.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type Feedback #extension
{
}
_Main/BL/Type_FinancialProductionCell/Attribute_Value.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Value
{
  #keys: '3[415136.0.834715167][415136.0.834715166][415136.0.834715168]'
  ValueType: String
}
_Main/BL/Type_FinancialProductionCell/_ROOT_Type_FinancialProductionCell.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type FinancialProductionCell
{
  #keys: '5[415136.0.834715104][415136.0.834715102][0.0.0][415136.0.834715103][415136.0.834715105]'
  BaseType: Object
  Description: '财务产量报表单元格'
  StructuredName: 'FinancialProductionCells'
}
_Main/BL/Type_FinancialProductionColumn/Attribute_Index.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Index
{
  #keys: '3[415136.0.834715088][415136.0.834715087][415136.0.834715089]'
  ValueType: Number
}
_Main/BL/Type_FinancialProductionColumn/Attribute_Name.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Name
{
  #keys: '3[415136.0.834715282][415136.0.834715281][415136.0.834715283]'
  ValueType: String
}
_Main/BL/Type_FinancialProductionColumn/Attribute_Period.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Period
{
  #keys: '3[415136.0.834715078][415136.0.834715077][415136.0.834715079]'
  ValueType: Date
}
_Main/BL/Type_FinancialProductionColumn/Function_CalcIndex.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
Quintiq file version 2.0
#parent: #root
Function CalcIndex
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-21-2024 (created)
    value := ifexpr( isnull( this.PreviousColumn() ), 0, this.PreviousColumn().Index() + 1 );
    this.Index( value );
  *]
}
_Main/BL/Type_FinancialProductionColumn/_ROOT_Type_FinancialProductionColumn.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type FinancialProductionColumn
{
  #keys: '5[415136.0.834715074][415136.0.834715072][0.0.0][415136.0.834715073][415136.0.834715075]'
  BaseType: Object
  Description: '财务产量列'
  StructuredName: 'FinancialProductionColumns'
}
_Main/BL/Type_FinancialProductionReport/Attribute_ID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ID
{
  #keys: '3[415136.0.834715053][415136.0.834715052][415136.0.834715054]'
  IsReadOnly: true
  ValueType: String
}
_Main/BL/Type_FinancialProductionReport/Attribute_IsImport.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute IsImport
{
  #keys: '3[415136.0.834715063][415136.0.834715062][415136.0.834715064]'
  ValueType: Boolean
}
_Main/BL/Type_FinancialProductionReport/Attribute_Name.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Name
{
  #keys: '3[415136.0.834715043][415136.0.834715042][415136.0.834715044]'
  Description: '名称'
  ValueType: String
}
_Main/BL/Type_FinancialProductionReport/Method_SyncRows.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,39 @@
Quintiq file version 2.0
#parent: #root
Method SyncRows
{
  TextBody:
  [*
    totalRows := 0;
    totalColumns := this.FinancialProductionColumn( relsize );
    if ( totalColumns > 0 ) {
      randomCol := select( this, FinancialProductionColumn, tempFPC, true );
      totalRows := randomCol.FinancialProductionCell( relsize );
      this.FinancialProductionRow( relflush );
      cells := construct( FinancialProductionCells );
      traverse ( this, FinancialProductionColumn, fpc ) {
        cells.Add( fpc.FirstCellInColumn() );
      }
      for ( i := 0; i < totalRows; i++ ) {
        assert( selectvalues( cells, Elements, c, true, c.FinancialProductionColumn().Index() ).ToString( "" ) =
                selectvalues( selectsortedset( cells, Elements, c, true, c.FinancialProductionColumn().Index() ), Elements, c, true, c.FinancialProductionColumn().Index() ).ToString( "" ),
                "Assertion error in FrockDataTable::syncRows: Cells not sorted by column index" );
        row := this.FinancialProductionRow( relnew, RowNr := i );
        newCells := construct( FinancialProductionCells );
        traverse ( cells, Elements, c ) {
          row.FinancialProductionCell( relinsert, c );
          newCells.Add( c.NextCellInColumn() );
        }
        cells := &newCells;
      }
    }
  *]
}
_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXML/XMLElementId_Key.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
XMLElementId
{
  XMLAddressType { }
  XMLID Key { }
}
_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXML/XMLElementId_QuintiqType.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
XMLElementId
{
  XMLID QuintiqType { }
  XMLQualifierType { }
}
_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXML/XMLObjectBase_cell.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: #root
XMLObjectBase.ObjectDefinitions
{
  IdField: Key
  ObjectTypeField: QuintiqType
  TargetType: FinancialProductionCell
  XMLID cell { }
  Attributes:
  [
    XMLAttribute
    {
      Attribute: Value
      XMLID value { }
    }
  ]
}
_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXML/XMLObjectBase_column.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
Quintiq file version 2.0
#parent: #root
XMLObjectBase.ObjectDefinitions
{
  IdField: Key
  ObjectTypeField: QuintiqType
  TargetType: FinancialProductionColumn
  XMLID column { }
  Aggregates:
  [
    XMLAggregate
    {
      ElementDefinition: cell
      GenerateOutput: false
      Relation: FinancialProductionCell
      XMLID FinancialProductionCell { }
    }
  ]
  Attributes:
  [
    XMLAttribute
    {
      Attribute: Name
      XMLID name { }
    }
  ]
}
_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXML/XMLObjectBase_table.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
Quintiq file version 2.0
#parent: #root
XMLObjectBase.ObjectDefinitions
{
  IdField: Key
  ObjectTypeField: QuintiqType
  TargetType: FinancialProductionReport
  XMLID table { }
  Aggregates:
  [
    XMLAggregate
    {
      ElementDefinition: column
      GenerateOutput: false
      Relation: FinancialProductionColumn
      XMLID FinancialProductionColumn { }
    }
  ]
  Attributes:
  [
    XMLAttribute
    {
      Attribute: Name
      XMLID name { }
    }
  ]
}
_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXML/_ROOT_XML_FinancialProductionReportXML.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#root
#parent: #root
XML FinancialProductionReportXML
{
  Direction: 'ImportExport'
  Root: table
}
_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXMLHeaders/XMLElementId_Key.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
XMLElementId
{
  XMLAddressType { }
  XMLID Key { }
}
_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXMLHeaders/XMLElementId_QuintiqType.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
XMLElementId
{
  XMLID QuintiqType { }
  XMLQualifierType { }
}
_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXMLHeaders/XMLObjectBase_column.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: #root
XMLObjectBase.ObjectDefinitions
{
  IdField: Key
  ObjectTypeField: QuintiqType
  TargetType: FinancialProductionColumn
  XMLID column { }
  Attributes:
  [
    XMLAttribute
    {
      Attribute: Name
      XMLID name { }
    }
  ]
}
_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXMLHeaders/XMLObjectBase_table.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
Quintiq file version 2.0
#parent: #root
XMLObjectBase.ObjectDefinitions
{
  IdField: Key
  ObjectTypeField: QuintiqType
  TargetType: FinancialProductionReport
  XMLID table { }
  Aggregates:
  [
    XMLAggregate
    {
      ElementDefinition: column
      GenerateOutput: false
      Relation: FinancialProductionColumn
      XMLID FinancialProductionColumn { }
    }
  ]
  Attributes:
  [
    XMLAttribute
    {
      Attribute: Name
      XMLID name { }
    }
  ]
}
_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXMLHeaders/_ROOT_XML_FinancialProductionReportXMLHeaders.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#root
#parent: #root
XML FinancialProductionReportXMLHeaders
{
  Direction: 'ImportExport'
  Root: table
}
_Main/BL/Type_FinancialProductionReport/_ROOT_Type_FinancialProductionReport.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type FinancialProductionReport
{
  #keys: '5[415136.0.834715039][415136.0.834715037][0.0.0][415136.0.834715038][415136.0.834715040]'
  BaseType: Object
  Description: '财务产量报表'
  StructuredName: 'FinancialProductionReports'
}
_Main/BL/Type_FinancialProductionRow/Attribute_Name.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Name
{
  #keys: '3[415136.0.834715259][415136.0.834715258][415136.0.834715260]'
  ValueType: String
}
_Main/BL/Type_FinancialProductionRow/Attribute_RowNr.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute RowNr
{
  #keys: '3[415136.0.834200012][415136.0.834200011][415136.0.834200013]'
  ValueType: Number
}
_Main/BL/Type_FinancialProductionRow/_ROOT_Type_FinancialProductionRow.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type FinancialProductionRow
{
  #keys: '5[415136.0.834715099][415136.0.834715097][0.0.0][415136.0.834715098][415136.0.834715100]'
  BaseType: Object
  Description: '财务产量行'
  StructuredName: 'FinancialProductionRows'
}
_Main/BL/Type_FinancialProductionSource/Attribute_FileBinaryValue.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute FileBinaryValue
{
  #keys: '3[415136.0.833840427][415136.0.833840426][415136.0.833840428]'
  ValueType: BinaryValue
}
_Main/BL/Type_FinancialProductionSource/Attribute_IsXLSX.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute IsXLSX
{
  #keys: '3[415136.0.833840418][415136.0.833840417][415136.0.833840419]'
  ValueType: Boolean
}
_Main/BL/Type_FinancialProductionSource/Attribute_Name.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Name
{
  #keys: '3[415136.0.833840430][415136.0.833840429][415136.0.833840431]'
  ValueType: String
}
_Main/BL/Type_FinancialProductionSource/Attribute_UploadDateTime.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute UploadDateTime
{
  #keys: '3[415136.0.833840421][415136.0.833840420][415136.0.833840422]'
  ValueType: String
}
_Main/BL/Type_FinancialProductionSource/Attribute_UploadUser.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute UploadUser
{
  #keys: '3[415136.0.833840424][415136.0.833840423][415136.0.833840425]'
  ValueType: String
}
_Main/BL/Type_FinancialProductionSource/DefaultValue_Name.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: Name
}
_Main/BL/Type_FinancialProductionSource/DefaultValue_UploadDateTime.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: UploadDateTime
}
_Main/BL/Type_FinancialProductionSource/DefaultValue_UploadUser.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: UploadUser
}
_Main/BL/Type_FinancialProductionSource/Method_ReadStructure.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
#parent: #root
Method ReadStructure
{
  TextBody:
  [*
    tableGroupHandle := TableGroupHandle::Create( this.Name() );
    tableGroupHandle := XLS::LoadTableGroupFromBinaryData( this.FileBinaryValue().AsBinaryData(), tableGroupHandle, true, this.IsXLSX() );
    sheets := tableGroupHandle.TableNames();
    traverse ( sheets, Elements, sheetName ) {
      tableHandle := tableGroupHandle.Table( sheetName );
      tableXML := TableHandle::ExportXML( tableHandle );
    //  info( tableXML.AsQUILL() );
      FinancialProductionReport::XMLImportFinancialProductionReportXMLHeaders( tableXML );
      xlstable := FinancialProductionReport::XMLImportFinancialProductionReportXML( tableXML );
      xlstable.SyncRows();
      xlstable.Name( sheetName );
      this.FinancialProductionReport( relinsert, &xlstable );
    }
  *]
}
_Main/BL/Type_FinancialProductionSource/StaticMethod_Download.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,47 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Download (
  MacroPlan macroPlan
) as BinaryValue
{
  TextBody:
  [*
    table := selectobject( macroPlan, FinancialProductionSource.FinancialProductionReport, table, not table.IsImport() );
    xmlDOMI := XMLDOMImplementation::Create();
    xmlDOM  := xmlDOMI.CreateDocumentFromString( '<?xml version="1.0" encoding="UTF-16"?><table><name>' + table.Name() + '</name></table>' );
    tableElement := xmlDOM.GetElementByTagName( "table", 0 );
    traverse ( table, FinancialProductionColumn, column ) {
      columnelement := xmlDOM.CreateElement( "column" );
      nameelement   := xmlDOM.CreateElement( "name" );
      typeelement   := xmlDOM.CreateElement( "type" );
      nameelement.TextContent( column.Name() );
      typeelement.TextContent( "String" );
      columnelement.AppendChild( nameelement );
      columnelement.AppendChild( typeelement );
      cells := selectsortedset( column, FinancialProductionCell, cell, true, cell.FinancialProductionRow().RowNr() );
      traverse ( cells, Elements, c ) {
        cellElement := xmlDOM.CreateElement( "cell" );
        cellElement.SetAttribute( "value", c.Value() );
        columnelement.AppendChild( cellElement );
      }
      tableElement.AppendChild( columnelement );
    }
    xmlString := xmlDOMI.CreateSerializer().WriteToString( xmlDOM )
    //info( xmlString );
    tableGroupHandle := TableGroupHandle::Create( "Financial productions" );
    tableHandle      := TableHandle::ImportXML( BinaryValue::Construct( xmlString ) );
    tableGroupHandle.Add( tableHandle );
    binaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true );
    return binaryData.AsBinaryValue();
  *]
}
_Main/BL/Type_FinancialProductionSource/StaticMethod_DownloadTemplate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
Quintiq file version 2.0
#parent: #root
StaticMethod DownloadTemplate (
  MacroPlan macroPlan
) as BinaryValue
{
  TextBody:
  [*
    xmlDOMI := XMLDOMImplementation::Create();
    xmlDOM  := xmlDOMI.CreateDocumentFromString( '<?xml version="1.0" encoding="UTF-16"?><table><name>Sheet1</name><column><name>Product</name><type>String</type></column><column><name>Unit</name><type>String</type></column></table>' );
    tableElement              := xmlDOM.GetElementByTagName( "table", 0 );
    startofyear               := macroPlan.StartOfPlanning().StartOfYear();
    startofnextyear           := macroPlan.StartOfPlanning().StartOfNextYear();
    for( start := startofyear; start < startofnextyear; start := start.StartOfNextMonth() ){
      columnElement := xmlDOM.CreateElement( "column" );
      nameElement   := xmlDOM.CreateElement( "name" );
      typeElement   := xmlDOM.CreateElement( "type" );
      nameElement.TextContent( start.Format( "M2/D2/Y" ) );
      typeElement.TextContent( "String" );
      columnElement.AppendChild( nameElement );
      columnElement.AppendChild( typeElement );
      tableElement.AppendChild( columnElement );
    }
    xmlString := xmlDOMI.CreateSerializer().WriteToString( xmlDOM )
    //info( xmlString );
    tableGroupHandle := TableGroupHandle::Create( "Financial productions" );
    tableHandle      := TableHandle::ImportXML( BinaryValue::Construct( xmlString ) );
    tableGroupHandle.Add( tableHandle );
    binaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true );
    return binaryData.AsBinaryValue();
  *]
}
_Main/BL/Type_FinancialProductionSource/StaticMethod_Upload.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Upload (
  MacroPlan owner,
  BinaryValue binaryValue,
  String filePath
) as FinancialProductionSource
{
  TextBody:
  [*
    fileName := filePath.Tokenize( "\" ).Element( filePath.Tokenize( "\" ).Size() - 1 );
    source := owner.FinancialProductionSource( relnew, FileBinaryValue := binaryValue,
                                               Name                    := fileName,
                                               IsXLSX                  := fileName.EndsWith( "xlsx" ),
                                               UploadDateTime          := DateTime::ActualTime().Format( "Y-M2-D2 H:m:s" ),
                                               UploadUser              := guard( QuintiqUser::CurrentUser().Username(), "" ) );
    return source;
  *]
}
_Main/BL/Type_FinancialProductionSource/_ROOT_Type_FinancialProductionSource.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type FinancialProductionSource
{
  #keys: '5[415136.0.834715352][415136.0.834715350][0.0.0][415136.0.834715351][415136.0.834715353]'
  BaseType: Object
  Description: '财务产量报表'
  StructuredName: 'FinancialProductionSources'
}
_Main/BL/Type_Product_MP/Attribute_Generation.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Generation
{
  #keys: '3[415136.0.823981334][415136.0.823981333][415136.0.823981335]'
  Description: '代'
  ValueType: String
}
_Main/BL/Type_Product_MP/Attribute_MQBMLB.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MQBMLB
{
  #keys: '3[415136.0.823981341][415136.0.823981340][415136.0.823981342]'
  Description: 'MQB/MLB'
  ValueType: String
}
_Main/BL/Type_Product_MP/Attribute_Power.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Power
{
  #keys: '3[415136.0.823981348][415136.0.823981347][415136.0.823981349]'
  Description: '功率'
  ValueType: String
}
_Main/BL/Type_Product_MP/Method_Update#587.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,63 @@
Quintiq file version 2.0
#parent: #root
Method Update (
  String id,
  String name,
  Product_MP parent,
  String unitofmeasurename,
  String generation,
  String mqbmlb,
  String power,
  Boolean isbyproduct,
  Number gridx,
  Number gridy,
  String iconname,
  Boolean isuservisible,
  String namedisplaybehavior,
  String textcolor,
  ViewBase view,
  String notes,
  Boolean hasshelflife,
  Real shelflife,
  Boolean hasmaturation,
  Real maturationdays,
  Boolean isexcludedfromoptimization,
  Boolean isplannedafteroptimization,
  Boolean isexcludedfromfulfilmentkpis,
  Boolean isfromdb
)
{
  Description: 'Update product and node'
  TextBody:
  [*
    //Update product
    parentproductid := guard( parent.ID(), '' );
    this.Update( id,
                 name,
                 parentproductid,
                 unitofmeasurename,
                 generation,
                 mqbmlb,
                 power,
                 isbyproduct,
                 iconname,
                 notes,
                 hasshelflife,
                 shelflife,
                 hasmaturation,
                 maturationdays,
                 isexcludedfromoptimization,
                 isplannedafteroptimization,
                 isexcludedfromfulfilmentkpis,
                 isfromdb);
    //Update product node
    node := select( this, ProductNode, n, n.ViewBase() = view );
    if( not isnull( node ) )
    {
      node.Update( gridx, gridy, isuservisible, namedisplaybehavior, textcolor, iconname );
    }
  *]
}
_Main/BL/Type_Product_MP/Method_Update.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,79 @@
Quintiq file version 2.0
#parent: #root
Method Update (
  String id,
  String name,
  String parentid,
  String unitofmeasurename,
  String generation,
  String mqbmlb,
  String power,
  Boolean isbyproduct,
  String iconname,
  String notes,
  Boolean hasshelflife,
  Real shelflife,
  Boolean hasmaturation,
  Real maturationdays,
  Boolean isexcludedfromoptimization,
  Boolean isplannedafteroptimization,
  Boolean isexcludedfromfulfilmentkpis,
  Boolean isfromdb
)
{
  Description: 'This update method is used to update product parameters that takes only non object arguments'
  TextBody:
  [*
    // Store the previous parent for recreating pispips
    oldParent := this.Parent();
    hasnewparent := guard( this.Parent().ID(),'' ) <> parentid;
    parent := Product_MP::FindProductTypeIndex( parentid );
    isroot := isnull( parent );
    this.UpdateTypeIndex( id );
    this.Name( name );
    this.Generation( generation );
    this.MQBMLB( mqbmlb );
    this.Power( power );
    this.UnitOfMeasureName( unitofmeasurename );
    this.IsByProduct( isbyproduct );
    this.IconName( iconname );
    this.Notes( notes );
    this.IsManuallyConfigured( not isfromdb );
    this.HasShelfLife( hasshelflife );
    if( not hasshelflife )
    {
      shelflife := 0.0;
    }
    this.ShelfLife( shelflife );
    this.SetDefaultManufacturedDateActualForShelfLife( hasshelflife );
    this.HasMaturation( hasmaturation );
    if( not hasmaturation )
    {
      maturationdays := 0.0;
    }
    this.MaturationDays( maturationdays );
    this.IsExcludedFromOptimization( isexcludedfromoptimization );
    this.IsPlannedAfterOptimization( isplannedafteroptimization );
    this.IsExcludedFromFulfillmentKPI( isexcludedfromfulfilmentkpis );
    //Update the parent relations
    if( hasnewparent )
    {
      this.AssignParent( parent );
    }
    else if( isroot )
    {
      this.SetRootProduct();
    }
    // Resync pispips
    this.RecreatePISPIPs( oldParent );
  *]
}
_Main/BL/Type_Product_MP/StaticMethod_Update.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,156 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Update (
  Product_MPs products_i,
  Boolean isBatchEditParent,
  Boolean isBatchEditUOM,
  Boolean isBatchEditShelfLife,
  Boolean isBatchEditMaturation,
  Boolean isBatchEditByProduct,
  Boolean isBatchEditOptimization,
  Boolean isbatcheditExcludeFulfillmentKPI,
  Boolean isBatchEditNote,
  String id,
  String name,
  Product_MP parent,
  UnitOfMeasure_MP unitOfMeasure,
  String generation,
  String mqbmlb,
  String power,
  Boolean hasShelfLife,
  Real shelfLife,
  Boolean hasMaturation,
  Real maturationdays,
  Boolean isByProduct,
  Boolean isExcludedFromOptimization,
  Boolean isPlannedAfterOptimization,
  Boolean isExcludedFromFulfillmentKPI,
  String notes,
  ViewBase scView
)
{
  Description:
  [*
    This is meant for webclient
    Combined (1)edit + (2)batch edit for product(s), for web client product dialog.
  *]
  TextBody:
  [*
    // Traverse the selected set of Product_MPs for batch update
    gridx               := Number::MinNumber();
    gridy               := Number::MinNumber();
    iconname            := "";
    isuservisible       := false;
    namedisplaybehavior := "";
    textcolor           := "";
    traverse( products_i, Elements, product )
    {
      if( products_i.Size() > 1 ) //isBatch
      {
        // attributes that has no change on batch editing
        id        := product.ID();
        name      := product.Name();
    //    generation:= product.Generation();
    //    mqbmlb    := product.MQBMLB();
    //    power     := product.Power();
        //if no batch edit, set it with original unit's value, else, follow the screen value
        if( not isBatchEditParent )
        {
          parent := product.Parent();
        }
        if(  not isBatchEditUOM )
        {
          unitOfMeasure := product.UnitOfMeasure_MP();
        }
        if(  not isBatchEditShelfLife )
        {
          hasShelfLife  := product.HasShelfLife();
          shelfLife     := product.ShelfLife();
        }
        if(  not isBatchEditMaturation )
        {
          hasMaturation  := product.HasMaturation();
          maturationdays := product.MaturationDays();
        }
        if(  not isBatchEditByProduct )
        {
          isByProduct   := product.IsByProduct();
        }
        if(  not isBatchEditOptimization )
        {
          isExcludedFromOptimization := product.IsExcludedFromOptimization();
          isPlannedAfterOptimization := product.IsPlannedAfterOptimization();
        }
        if(  not isbatcheditExcludeFulfillmentKPI )
        {
          isExcludedFromFulfillmentKPI := product.IsExcludedFromFulfillmentKPI();
        }
        if(  not isBatchEditNote )
        {
          notes := product.Notes();
        }
      }
      // Populate variables with default values
      gridx               := GlobalParameters_MP::GetDefaultGridX();
      gridy               := GlobalParameters_MP::GetDefaultGridY();
      isuservisible       := true;
      namedisplaybehavior := '';
      textcolor           := 'Black';
      iconname            := GlobalParameters_MP::GetDefaultProductIcon();
      // Get ProductNode
      productnode := select( product, ProductNode, n, n.ViewBase() = scView );
      // If ProductNode is found, update the variables with data in the ProductNode
      if( not isnull( productnode ) )
      {
        gridx               := productnode.GridX();
        gridy               := productnode.GridY();
        iconname            := productnode.IconName();
        isuservisible       := productnode.IsUserVisible();
        namedisplaybehavior := productnode.NameDisplayBehavior();
        textcolor           := productnode.TextColor();
      }
      // Update current Product_MP
      product.Update( id,
                      name,
                      parent,
                      guard( unitOfMeasure.Name(), "" ),
                      generation,
                      mqbmlb,
                      power,
                      isByProduct,
                      gridx,
                      gridy,
                      iconname,
                      isuservisible,
                      namedisplaybehavior,
                      textcolor,
                      scView,
                      notes,
                      hasShelfLife,
                      shelfLife,
                      hasMaturation,
                      maturationdays,
                      isExcludedFromOptimization,
                      isPlannedAfterOptimization,
                      isExcludedFromFulfillmentKPI,
                      false
                     );
    }
  *]
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupReport.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
Component ActionBarGroupReport
{
  #keys: '[415136.0.834352165]'
  BaseType: 'WebActionBarGroup'
  Children:
  [
    Component ButtonFinancialProductionReport
    {
      #keys: '[415136.0.834352212]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'DOCUMENT_REFRESH'
        Label: 'Financial production report'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageReport.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
Component ActionBarPageReport
{
  #keys: '[415136.0.834352164]'
  BaseType: 'WebActionBarPage'
  Children:
  [
    #child: ActionBarGroupReport
  ]
  Properties:
  [
    Taborder: 21
    Title: 'Report'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageScenarioSelection.def
@@ -3,6 +3,6 @@
{
  Properties:
  [
    Taborder: 21
    Taborder: 22
  ]
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_applicationFixedPageActionBarPageDef.def
@@ -3,6 +3,6 @@
{
  Properties:
  [
    Taborder: 22
    Taborder: 23
  ]
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupReport_ButtonFinancialProductionReport_O.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: ActionBarGroupReport/ButtonFinancialProductionReport
Response OnClick () id:Response_MacroPlanner_ActionBarGroupReport_ButtonFinancialProductionReport_OnClick
{
  #keys: '[415136.0.836061956]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      ApplicationScope.ViewManager().ResetUserViewById( "Financial_production_report_view", true);
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def
@@ -19,6 +19,7 @@
        #child: applicationDevelopmentActionBarPageDef_1
        #child: abpAlgorithmPostProcessing
        #child: ActionBarPagePlan
        #child: ActionBarPageReport
      ]
    }
    Component dhBinaryDataPR id:dhBinaryDataPR_688
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProduct/Component_PanelGeneral.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component PanelGeneral #extension
{
  Children:
  [
    #child: PanelGeneration
    #child: PanelMQBMLB
    #child: PanelPower
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProduct/Component_PanelGeneration.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,36 @@
Quintiq file version 2.0
Component PanelGeneration
{
  #keys: '[415136.0.825312166]'
  BaseType: 'WebPanel'
  Children:
  [
    Component LabelBatchEditSpacerGeneration
    {
      #keys: '[415136.0.825312187]'
      BaseType: 'WebLabel'
      Properties:
      [
        NumberOfColumns: 4
        Taborder: 0
      ]
    }
    Component EditFieldGeneration
    {
      #keys: '[415136.0.825312322]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderDialogData.Data.Generation'
        FixedSize: false
        Label: '                               Generation'
        Taborder: 1
      ]
    }
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 4
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProduct/Component_PanelMQBMLB.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,36 @@
Quintiq file version 2.0
Component PanelMQBMLB
{
  #keys: '[415136.0.827111683]'
  BaseType: 'WebPanel'
  Children:
  [
    Component LabelBatchEditSpacerMQBMLB
    {
      #keys: '[415136.0.827111733]'
      BaseType: 'WebLabel'
      Properties:
      [
        NumberOfColumns: 4
        Taborder: 0
      ]
    }
    Component EditFieldMQBMLB
    {
      #keys: '[415136.0.827111803]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderDialogData.Data.MQBMLB'
        FixedSize: false
        Label: '                               MQB/MLB'
        Taborder: 1
      ]
    }
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 5
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProduct/Component_PanelPower.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,36 @@
Quintiq file version 2.0
Component PanelPower
{
  #keys: '[415136.0.827111860]'
  BaseType: 'WebPanel'
  Children:
  [
    Component LabelBatchEditSpacerPower
    {
      #keys: '[415136.0.827111909]'
      BaseType: 'WebLabel'
      Properties:
      [
        NumberOfColumns: 4
        Taborder: 0
      ]
    }
    Component EditFieldPower
    {
      #keys: '[415136.0.827111928]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderDialogData.Data.Power'
        FixedSize: false
        Label: '                               Power'
        Taborder: 1
      ]
    }
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 6
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProduct/Component_pnlContent.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
Component pnlContent #extension
{
  Children:
  [
    #child: PanelGeneral
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProduct/Method_OnOK.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,58 @@
Quintiq file version 2.0
#parent: #root
Method OnOK () id:Method_DialogCreateEditProduct_OnOK #extension
{
  Body:
  [*
    // onOK for ProductDialog
    // When the user clicks ok,
    // we either create or edit the data
    this.ApplyChanges();
    this.SetAttributeAfterApplyData();
    data := DataHolderDialogData.Data();
    if( isnull( data.WrappedInstance() ) ) // New
    {
      // When create product, parent relation must be null (as server method has logic to detect parent change using this relation)
      data.Parent( relflush );
      data.Commit();
      DataHolderForm.Data().ListProduct().SelectByKey( data.WrappedInstance().Key() );
    }
    else
    {
      supplyChainView := select( MacroPlan, ViewBase.astype( SupplyChainView ), scv, true );  //TODO!! handling of current SupplyChainView
      Product_MP::Update(  DataHolderDialogDatas.Data()
                          ,CheckBoxBatchEditParent.Checked()
                          ,CheckBoxBatchEditUOM.Checked()
                          ,CheckBoxBatchEditShelfLife.Checked()
                          ,CheckBoxBatchEditMaturation.Checked()
                          ,CheckBoxBatchEditByProduct.Checked()
                          ,CheckBoxBatchEditExcludeFromOptimizer.Checked()
                          ,CheckboxBatchEditExcludeFromFulfillmentKPI.Checked()
                          ,CheckBoxBatchEditNote.Checked()
                          ,EditFieldID.Text()
                          ,EditFieldName.Text()
                          ,guard( selParentProduct.Data(), null(  Product_MP ) )
                          ,guard( DropDownListUOM.Data(), null( UnitOfMeasure_MP ) )
                          ,EditFieldGeneration.Text()
                          ,EditFieldMQBMLB.Text()
                          ,EditFieldPower.Text()
                          ,data.HasShelfLife()
                          ,data.ShelfLife()
                          ,data.HasMaturation()
                          ,data.MaturationDays()
                          ,data.IsByProduct()
                          ,data.IsExcludedFromOptimization()
                          ,data.IsPlannedAfterOptimization()
                          ,ifexpr( CheckboxIsExcludedFromFulfillmentKPI.Enabled(),
                                   data.IsDerivedExcludeFromFulfillmentKPI(),
                                   data.IsExcludedFromFulfillmentKPI() )
                          ,data.Notes()
                          ,supplyChainView );
    }
    this.Close();
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProduct/Method_UIShowHideComponentForBatchEdit.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,114 @@
Quintiq file version 2.0
#parent: #root
Method UIShowHideComponentForBatchEdit (
  Boolean isInit,
  Boolean isBatchEdit
) id:Method_DialogCreateEditProduct_UIShowHideComponentForBatchEdit #extension
{
  Body:
  [*
    // Handles the toggling of the batch related component
    if(  isInit )
    {
      //for initialize, control batch checkboxes visibility
      CheckBoxBatchEditParent.Visible( isBatchEdit );
      CheckBoxBatchEditUOM.Visible( isBatchEdit );
      CheckBoxBatchEditShelfLife.Visible( isBatchEdit );
      CheckBoxBatchEditMaturation.Visible( isBatchEdit );
      CheckBoxBatchEditByProduct.Visible( isBatchEdit );
      CheckBoxBatchEditExcludeFromOptimizer.Visible( isBatchEdit );
      CheckboxBatchEditExcludeFromFulfillmentKPI.Visible( isBatchEdit );
      CheckBoxBatchEditNote.Visible( isBatchEdit );
      LabelBatchEditSpacerName.Visible( isBatchEdit );
      LabelBatchEditSpacerID.Visible( isBatchEdit );
      LabelBatchEditSpacerGeneration.Visible( isBatchEdit );
      LabelBatchEditSpacerMQBMLB.Visible( isBatchEdit );
      LabelBatchEditSpacerPower.Visible( isBatchEdit );
      //disable all other component
      if( isBatchEdit )
      {
        disableText := Translations::MP_Product_DialogCreateEdit_DisableForBatchEdit();
        disableFlag := false;
        selParentProduct.Enabled( disableFlag, disableText );
        EditFieldID.Enabled( disableFlag, disableText );
        EditFieldName.Enabled( disableFlag, disableText );
        EditFieldGeneration.Enabled( disableFlag, disableText );
        EditFieldMQBMLB.Enabled( disableFlag, disableText );
        EditFieldPower.Enabled( disableFlag, disableText );
      }
    }
    //batch parent
    batchParentActive := ifexpr( isInit
                                 ,not isBatchEdit //when isBatchEdit,default=disable all
                                 ,CheckBoxBatchEditParent.Checked()
                                );
    selParentProduct.Enabled( batchParentActive, "" );
    //batch UOM
    batchUOMActive := ifexpr(  isInit
                              ,not isBatchEdit //when isBatchEdit,default=disable all
                              ,CheckBoxBatchEditUOM.Checked()
                             );
    DropDownListUOM.Enabled( batchUOMActive, "" );
    //batch shelf life
    batchShelfLifeActive := ifexpr( isInit
                                   ,not isBatchEdit //when isBatchEdit,default=disable all
                                   ,CheckBoxBatchEditShelfLife.Checked()
                                  );
    CheckBoxHasShelfLife.Enabled( batchShelfLifeActive, "" );
    EditFieldShelfLife.Enabled( batchShelfLifeActive
                                and CheckBoxHasShelfLife.Checked()
                                , "" );
    //batch maturation
    batchMaturationActive := ifexpr( isInit
                                   ,not isBatchEdit //when isBatchEdit,default=disable all
                                   ,CheckBoxBatchEditMaturation.Checked()
                                  );
    CheckBoxHasMaturation.Enabled( batchMaturationActive, "" );
    EditFieldMaturation.Enabled( batchMaturationActive
                                and CheckBoxHasMaturation.Checked()
                                , "" );
    //batch by-product
    batchByProductActive := ifexpr( isInit
                                   ,not isBatchEdit //when isBatchEdit,default=disable all
                                   ,CheckBoxBatchEditByProduct.Checked()
                                  );
    CheckBoxIsByProduct.Enabled( batchByProductActive, "" );
    //batch exclude optimizer
    batchExcludeOptiActive := ifexpr( isInit
                                     ,not isBatchEdit //when isBatchEdit,default=disable all
                                     ,CheckBoxBatchEditExcludeFromOptimizer.Checked()
                                    );
    CheckBoxExcludeFromOptimizer.Enabled( batchExcludeOptiActive
                                          and not CheckBoxIsPlannedAfterOptimization.Checked()
                                          , "" );
    CheckBoxIsPlannedAfterOptimization.Enabled( batchExcludeOptiActive
                                                and CheckBoxExcludeFromOptimizer.Checked()
                                                , "" );
    //batch isexcludedfromfulfillmentkpi
    batchByIsExcludedFulfillmentKPIActive := ifexpr( isInit
                                                     ,not isBatchEdit //when isBatchEdit,default=disable all
                                                     ,CheckboxBatchEditExcludeFromFulfillmentKPI.Checked()
                                                    );
    CheckboxIsExcludedFromFulfillmentKPI.Enabled( batchByIsExcludedFulfillmentKPIActive, "" );
    //batch Note
    batchNoteActive:= ifexpr( isInit
                              ,not isBatchEdit //when sBatchEdit,default=disable all
                              ,CheckBoxBatchEditNote.Checked()
                            );
    EditFieldNotes.Enabled( batchNoteActive, "" );
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditProduct/_ROOT_Component_DialogCreateEditProduct.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: LibMacroPlannerWebUI
OrphanComponent DialogCreateEditProduct #extension
{
  Children:
  [
    #child: pnlContent
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelExport.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
Component PanelExport
{
  #keys: '[415136.0.834352718]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ButtonExport
    {
      #keys: '[415136.0.834352737]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'EXPORT1'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 4
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelFinancialProductionReportHeader.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
Component PanelFinancialProductionReportHeader
{
  #keys: '[415136.0.834352344]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: PanelFinancialProductionReportSearch
    #child: PanelFinancialProductionReportOperation
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelFinancialProductionReportOperation.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,46 @@
Quintiq file version 2.0
Component PanelFinancialProductionReportOperation
{
  #keys: '[415136.0.834352420]'
  BaseType: 'WebPanel'
  Children:
  [
    Component LabelFinancialProductionReportOperation
    {
      #keys: '[415136.0.834352468]'
      BaseType: 'WebLabel'
      Properties:
      [
        NumberOfColumns: 15
        Taborder: 0
        Text: 'Production import'
      ]
    }
    Component ButtonProductionImport
    {
      #keys: '[415136.0.834352491]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'EXPORT1'
        Taborder: 1
      ]
    }
    Component ButtonProductionExport
    {
      #keys: '[415136.0.834352534]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'IMPORT1'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelFinancialProductionReportSearch.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
Component PanelFinancialProductionReportSearch
{
  #keys: '[415136.0.834352398]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: PanelUnit
    #child: PanelGeneration
    #child: PanelMQBMLB
    #child: PanelPower
    #child: PanelExport
  ]
  Properties:
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelFinancialProductionReportTable.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component PanelFinancialProductionReportTable
{
  #keys: '[415136.0.834352365]'
  BaseType: 'WebPanel'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelGeneration.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
Component PanelGeneration
{
  #keys: '[415136.0.834352628]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ddslGeneration
    {
      #keys: '[415136.0.834850709]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        Label: 'Generation'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelMQBMLB.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
Component PanelMQBMLB
{
  #keys: '[415136.0.834352657]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ddslMQBMLB
    {
      #keys: '[415136.0.834850906]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        Label: 'MQB/MLB'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 2
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelPower.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
Component PanelPower
{
  #keys: '[415136.0.834352679]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ddslPower
    {
      #keys: '[415136.0.834851149]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        Label: 'Power'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 3
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelUnit.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
Quintiq file version 2.0
Component PanelUnit
{
  #keys: '[415136.0.834352594]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ddslUnit
    {
      #keys: '[415136.0.834851281]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        Label: 'Unit'
        Strings: '<All>;长春;大连'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelExport_ButtonExport_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
Quintiq file version 2.0
#parent: PanelExport/ButtonExport
Response OnClick () id:Response_PanelExport_ButtonExport_OnClick
{
  #keys: '[415136.0.834850599]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( MacroPlan );
  *]
  QuillAction
  {
    Body:
    [*
      binaryValue := FinancialProductionSource::Download( MacroPlan );
      Application.Download( "Financial productions.xlsx", binaryValue.AsBinaryData() );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelFinancialProductionReportOperation_ButtonProductionExport_OnCl.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
Quintiq file version 2.0
#parent: PanelFinancialProductionReportOperation/ButtonProductionExport
Response OnClick () id:Response_PanelFinancialProductionReportOperation_ButtonProductionExport_OnClick
{
  #keys: '[415136.0.834850519]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( MacroPlan );
  *]
  QuillAction
  {
    Body:
    [*
      binaryValue := FinancialProductionSource::DownloadTemplate( MacroPlan );
      Application.Download( "Financial productions.xlsx", binaryValue.AsBinaryData() );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelFinancialProductionReportOperation_ButtonProductionImport_OnCl.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,38 @@
Quintiq file version 2.0
#parent: PanelFinancialProductionReportOperation/ButtonProductionImport
Response OnClick () id:Response_PanelFinancialProductionReportOperation_ButtonProductionImport_OnClick
{
  #keys: '[415136.0.836011369]'
  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();
          source := FinancialProductionSource::Upload( MacroPlan, webFileBinaryData, fileName );
          source.ReadStructure();
          WebMessageBox::Success( Translations::A_VWED_Success() );
        }
      } onerror {
        WebMessageBox::Error( e.GeneralInformation() );
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelGeneration_ddslGeneration_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: PanelGeneration/ddslGeneration
Response OnCreated () id:Response_PanelGeneration_ddslGeneration_OnCreated
{
  #keys: '[415136.0.834850727]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      values := selectuniquevalues( MacroPlan, Product_MP, tempPMP, true, tempPMP.Generation() );
      valueString := values.Concatenate( ";" );
      valueString := selectuniquevalues( valueString.Tokenize( ";" ), Elements, tempS, true, tempS ).Concatenate( ";" );
      valueString := "<All>" + ifexpr( valueString = "", "", ";" ) + valueString;
      this.Strings( valueString );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelMQBMLB_ddslMQBMLB_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: PanelMQBMLB/ddslMQBMLB
Response OnCreated () id:Response_PanelMQBMLB_ddslMQBMLB_OnCreated
{
  #keys: '[415136.0.834851070]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      values := selectuniquevalues( MacroPlan, Product_MP, tempPMP, true, tempPMP.MQBMLB() );
      valueString := values.Concatenate( ";" );
      valueString := selectuniquevalues( valueString.Tokenize( ";" ), Elements, tempS, true, tempS ).Concatenate( ";" );
      valueString := "<All>" + ifexpr( valueString = "", "", ";" ) + valueString;
      this.Strings( valueString );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelPower_ddslPower_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: PanelPower/ddslPower
Response OnCreated () id:Response_PanelPower_ddslPower_OnCreated
{
  #keys: '[415136.0.834851166]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      values := selectuniquevalues( MacroPlan, Product_MP, tempPMP, true, tempPMP.Power() );
      valueString := values.Concatenate( ";" );
      valueString := selectuniquevalues( valueString.Tokenize( ";" ), Elements, tempS, true, tempS ).Concatenate( ";" );
      valueString := "<All>" + ifexpr( valueString = "", "", ";" ) + valueString;
      this.Strings( valueString );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/_ROOT_Component_FormFinancialProductionReport.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent FormFinancialProductionReport
{
  #keys: '[415136.0.834352278]'
  BaseType: 'WebForm'
  Children:
  [
    #child: PanelFinancialProductionReportHeader
    #child: PanelFinancialProductionReportTable
  ]
  Properties:
  [
    Image: 'DOCUMENT_REFRESH'
    Title: 'Financial production report'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormProducts/Component_ListProduct#844.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
Component ListProduct id:ListProduct_844 #extension
{
  Children:
  [
    Component DataSetLevelRootProduct #extension
    {
      Children:
      [
        Component DataSetLevelChildProduct #extension
        {
          Properties:
          [
            Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeAllConstraint","columnid":"All constraints","title":"All constraints","subtotals":"","tooltip":"","width":-1,"display":"shown"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Name","title":"Name","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasureName","title":"UoM","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasureName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Generation","title":"Generation","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Generation"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MQBMLB","title":"MQBMLB","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MQBMLB"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Power","title":"Power","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Power"}}]'
          ]
        }
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeAllConstraint","columnid":"All constraints","title":"All constraints","subtotals":"","tooltip":"","width":-1,"display":"shown"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Name","title":"Name","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasureName","title":"UoM","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasureName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Generation","title":"Generation","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Generation"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MQBMLB","title":"MQBMLB","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MQBMLB"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Power","title":"Power","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Power"}}]'
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormProducts/Component_PanelList.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
Component PanelList #extension
{
  Children:
  [
    #child: ListProduct_844
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormProducts/_ROOT_Component_FormProducts.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: LibMacroPlannerWebUI
OrphanComponent FormProducts #extension
{
  Children:
  [
    #child: PanelList
  ]
}
_Main/UI/MacroPlannerWebApp/Views/Financial_production_report_view.vw
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,75 @@
Quintiq file version 2.0
{
  viewcontents
  {
    forms
    {
      form_FormFinancialProductionReport
      {
        title: 'QMacroPlanner::FormFinancialProductionReport'
        shown: true
        componentID: 'QMacroPlanner::FormFinancialProductionReport'
        layout
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 15
          columnPosition: 1
          columnSpan: 12
        }
        components
        {
          FormFinancialProductionReport_PanelFinancialProductionReportHeader
          {
            sizeRatio: 1
          }
          FormFinancialProductionReport_PanelFinancialProductionReportSearch
          {
            sizeRatio: 1
          }
          FormFinancialProductionReport_PanelUnit
          {
            sizeRatio: 1
          }
          FormFinancialProductionReport_PanelGeneration
          {
            sizeRatio: 1
          }
          FormFinancialProductionReport_PanelMQBMLB
          {
            sizeRatio: 1
          }
          FormFinancialProductionReport_PanelPower
          {
            sizeRatio: 1
          }
          FormFinancialProductionReport_PanelExport
          {
            sizeRatio: 1
          }
          FormFinancialProductionReport_PanelFinancialProductionReportOperation
          {
            sizeRatio: 1
          }
          FormFinancialProductionReport_PanelFinancialProductionReportTable
          {
            sizeRatio: 1
          }
        }
      }
    }
    userconfigurableinformation
    {
    }
    page: ''
    group: ''
    index: 16
    image: 'DOCUMENT_REFRESH'
    description: ''
  }
  formatversion: 2
  id: 'Financial_production_report_view'
  name: 'Financial production report view'
  isglobal: false
  isroot: true
}