lazhen
2024-11-05 aa42b48fd2d23e75b64a0aec05d5be4b9ebf0465
计划库存后端类
已添加60个文件
已修改13个文件
1352 ■■■■■ 文件已修改
_Main/BL/Relations/Relation_InventoryPlanArchiveColumn_Cell_InventoryPlanArchiveCell_Column.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_InventoryPlanArchiveColumn_Version_InventoryPlanArchiveVersion_Colu.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_InventoryPlanArchiveRow_Cell_InventoryPlanArchiveCell_Row.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_InventoryPlanArchiveRow_Version_InventoryPlanArchiveVersion_Row.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_InventoryPlanArchiveVersionSearch_InterfaceDataset_InterfaceDataset.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_InventoryPlanArchiveVersion_InterfaceDataset_InterfaceDataset_Inven.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_AssemblyOnlinePlanRow/Attribute_Name.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_AssemblyOnlinePlanVersion/Method_GenerateColumn.qbl 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_AssemblyOnlinePlanVersion/Method_GetRow.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_AssemblyOnlinePlanVersion/StaticMethod_RefreshData.qbl 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InterfaceLoginfo/StaticMethod_CallInterfaceForSAPGet.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventoryPlanArchiveCell/Attribute_ActualQuantity.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventoryPlanArchiveCell/Attribute_PlanQuantity.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventoryPlanArchiveCell/_ROOT_Type_InventoryPlanArchiveCell.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventoryPlanArchiveColumn/Attribute_EndDate.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventoryPlanArchiveColumn/Attribute_Name.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventoryPlanArchiveColumn/Attribute_StartDate.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventoryPlanArchiveColumn/Attribute_TimeUnit.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventoryPlanArchiveColumn/DefaultValue_TimeUnit.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventoryPlanArchiveColumn/_ROOT_Type_InventoryPlanArchiveColumn.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventoryPlanArchiveRow/Attribute_Name.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventoryPlanArchiveRow/Attribute_Unit.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventoryPlanArchiveRow/Method_Initialize.qbl 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventoryPlanArchiveRow/Method_SetQuantity.qbl 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventoryPlanArchiveRow/_ROOT_Type_InventoryPlanArchiveRow.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventoryPlanArchiveVersion/Attribute_ID.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventoryPlanArchiveVersion/Attribute_IsShow.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventoryPlanArchiveVersion/Attribute_Name.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventoryPlanArchiveVersion/DefaultValue_IsShow.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventoryPlanArchiveVersion/Method_GenerateColumn.qbl 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventoryPlanArchiveVersion/Method_GetColumnByTimeUnit.qbl 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventoryPlanArchiveVersion/Method_GetRowByUnit.qbl 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventoryPlanArchiveVersion/StaticMethod_GenerateData.qbl 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventoryPlanArchiveVersion/StaticMethod_GetDefaultName.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventoryPlanArchiveVersion/_ROOT_Type_InventoryPlanArchiveVersion.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventoryPlanArchiveVersionSearch/Attribute_EndDate.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventoryPlanArchiveVersionSearch/Attribute_Product.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventoryPlanArchiveVersionSearch/Attribute_StartDate.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventoryPlanArchiveVersionSearch/Attribute_TimeUnit.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventoryPlanArchiveVersionSearch/Attribute_Unit.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventoryPlanArchiveVersionSearch/_ROOT_Type_InventoryPlanArchiveVersionSearch.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OfflinePlanArchiveVersion/Method_GenerateColumn.qbl 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OfflinePlanArchiveVersion/StaticMethod_RefreshData.qbl 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OfflinePlanArchiveVersionRow/Attribute_Name.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OfflinePlanArchiveVersionRow/DefaultValue_Name.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupArchiveReport.def 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupArchiveReport_ButtonInventoryPlanArchive.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_MatrixEditorTable#384.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelHeader#952.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCustomerDemandPPAIDS/Component_MatrixEditorTable.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_MatrixEditorTable#791.def 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelHeader#503.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelOperation#414.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelPeriod.def 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelProduct#133.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelTable#881.def 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelTimeUnit#805.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelUnit.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_matrixEditorActionBarPageTable#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_matrixeditorContextMenuTable#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelPeriod_DateSelectorEnd_OnChanged.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelPeriod_DateSelectorStart_OnChanged.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelProduct_133_ddslProduct_OnCreated.def 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelProduct_133_ddslProduct_OnSelectionChanged.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelTimeUnit_805_RadioButtonGroupUseForTimeUnit_OnChanged.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelTimeUnit_805_RadioButtonGroupUseForTimeUnit_OnCreated.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelUnit_ddslUnit_OnCreated.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelUnit_ddslUnit_OnSelectionChanged.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/_ROOT_Component_FormInventoryPlanArchive.def 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_MatrixEditorTable.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelHeader.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/_ROOT_Component_FormOfflinePlanArchive.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Views/Inventory_plan_archive_report.vw 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_InventoryPlanArchiveColumn_Cell_InventoryPlanArchiveCell_Column.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation InventoryPlanArchiveColumn_Cell_InventoryPlanArchiveCell_Column
{
  #keys: '1[415136.0.1275901429]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide Cell
  {
    #keys: '3[415136.0.1275901431][415136.0.1275901430][415136.0.1275901432]'
    Cardinality: '1toN'
    ObjectDefinition: InventoryPlanArchiveColumn
    OwningSide: 'Reference'
  }
  RelationSide.RightSide Column
  {
    #keys: '3[415136.0.1275901434][415136.0.1275901433][415136.0.1275901435]'
    Cardinality: '0to1'
    ObjectDefinition: InventoryPlanArchiveCell
    OwningSide: 'Reference'
  }
}
_Main/BL/Relations/Relation_InventoryPlanArchiveColumn_Version_InventoryPlanArchiveVersion_Colu.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation InventoryPlanArchiveColumn_Version_InventoryPlanArchiveVersion_Column
{
  #keys: '1[415136.0.1275901416]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide Version
  {
    #keys: '3[415136.0.1275901418][415136.0.1275901417][415136.0.1275901419]'
    Cardinality: '0to1'
    ObjectDefinition: InventoryPlanArchiveColumn
    OwningSide: 'Reference'
  }
  RelationSide.RightSide Column
  {
    #keys: '3[415136.0.1275901421][415136.0.1275901420][415136.0.1275901422]'
    Cardinality: '1toN'
    ObjectDefinition: InventoryPlanArchiveVersion
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_InventoryPlanArchiveRow_Cell_InventoryPlanArchiveCell_Row.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation InventoryPlanArchiveRow_Cell_InventoryPlanArchiveCell_Row
{
  #keys: '1[415136.0.1275901400]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide Cell
  {
    #keys: '3[415136.0.1275901402][415136.0.1275901401][415136.0.1275901403]'
    Cardinality: '1toN'
    ObjectDefinition: InventoryPlanArchiveRow
    OwningSide: 'Owned'
  }
  RelationSide.RightSide Row
  {
    #keys: '3[415136.0.1275901405][415136.0.1275901404][415136.0.1275901406]'
    Cardinality: '0to1'
    ObjectDefinition: InventoryPlanArchiveCell
    OwningSide: 'Reference'
  }
}
_Main/BL/Relations/Relation_InventoryPlanArchiveRow_Version_InventoryPlanArchiveVersion_Row.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation InventoryPlanArchiveRow_Version_InventoryPlanArchiveVersion_Row
{
  #keys: '1[415136.0.1275901387]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide Version
  {
    #keys: '3[415136.0.1275901389][415136.0.1275901388][415136.0.1275901390]'
    Cardinality: '0to1'
    ObjectDefinition: InventoryPlanArchiveRow
    OwningSide: 'Reference'
  }
  RelationSide.RightSide Row
  {
    #keys: '3[415136.0.1275901392][415136.0.1275901391][415136.0.1275901393]'
    Cardinality: '1toN'
    ObjectDefinition: InventoryPlanArchiveVersion
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_InventoryPlanArchiveVersionSearch_InterfaceDataset_InterfaceDataset.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation InventoryPlanArchiveVersionSearch_InterfaceDataset_InterfaceDataset_InventoryPlanArchiveVersionSearch
{
  #keys: '1[415136.0.1275930069]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide InterfaceDataset
  {
    #keys: '3[415136.0.1275930071][415136.0.1275930070][415136.0.1275930072]'
    Cardinality: '0to1'
    ObjectDefinition: InventoryPlanArchiveVersionSearch
    OwningSide: 'Reference'
  }
  RelationSide.RightSide InventoryPlanArchiveVersionSearch
  {
    #keys: '3[415136.0.1275930074][415136.0.1275930073][415136.0.1275930075]'
    Cardinality: '0to1'
    ObjectDefinition: InterfaceDataset
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_InventoryPlanArchiveVersion_InterfaceDataset_InterfaceDataset_Inven.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation InventoryPlanArchiveVersion_InterfaceDataset_InterfaceDataset_InventoryPlanArchiveVersion
{
  #keys: '1[415136.0.1275901359]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide InterfaceDataset
  {
    #keys: '3[415136.0.1275901361][415136.0.1275901360][415136.0.1275901362]'
    Cardinality: '0to1'
    ObjectDefinition: InventoryPlanArchiveVersion
    OwningSide: 'Reference'
  }
  RelationSide.RightSide InventoryPlanArchiveVersion
  {
    #keys: '3[415136.0.1275901364][415136.0.1275901363][415136.0.1275901365]'
    Cardinality: '1toN'
    ObjectDefinition: InterfaceDataset
    OwningSide: 'Owned'
  }
}
_Main/BL/Type_AssemblyOnlinePlanRow/Attribute_Name.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Name
{
  #keys: '3[415136.0.1275901593][415136.0.1275901592][415136.0.1275901594]'
  ValueType: String
}
_Main/BL/Type_AssemblyOnlinePlanVersion/Method_GenerateColumn.qbl
@@ -1,65 +1,40 @@
Quintiq file version 2.0
#parent: #root
Method GenerateColumn (
  Dates periods,
  String timeunit,
  Date starttime,
  Date endtime
  Dates periods
)
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    mindate               := min( periods, Elements, period, period );
    maxdate               := max( periods, Elements, period, period );
    //查询日期返回需要在计划日期之内
    if( starttime < mindate and endtime > maxdate ){
      if( starttime < mindate ){
        starttime             := mindate;
      }
      if( endtime > maxdate ){
        endtime               := maxdate;
      }
      if( timeunit = Translations::MP_GlobalParameters_Day() ){
        for( start := starttime; start <= endtime; start := start.DateTime().StartOfNextDay().Date() ){
          periodname          := start.Format( "M2/D2/Y" );
          if( not exists( this, Column, column, column.StartDate() = start ) ){
            this.Column( relnew, ColumnName := periodname, StartDate := start, EndDate := start, TimeUnit := Translations::MP_GlobalParameters_Day() );
          }
        }
      }else if( timeunit = Translations::MP_GlobalParameters_Week() ){
    //    weekstartstr          := ' KW';
        for( start := starttime; start <= endtime; start := start.StartOfNextWeek() ){
          weekend             := ( start.StartOfNextWeek() - Duration::Days( 1 ) ).Date();//.Concat( weekstartstr.Concat( weekend.Week().Format( 'N(LPad0(2))' ) ) )
    weekstart             := periods.Element( 0 );
          
          this.Column( relnew, ColumnName := weekend.Format( "M2/D2/Y" ), StartDate := start, EndDate := weekend, TimeUnit := Translations::MP_GlobalParameters_Week() );
    monthstart            := periods.Element( 0 );
    traverse( periods, Elements, periodtime ){
      periodname          := periodtime.Format( "M2/D2/Y" );
      this.Column( relnew, ColumnName := periodname, StartDate := periodtime, EndDate := periodtime, TimeUnit := Translations::MP_GlobalParameters_Day() );
      weekend             := ( weekstart + Duration::Days( 6 ) ).Date();
      if( ( weekend.Year() <> periodtime.Year() and weekend.Month() > 1 ) or ( abs( weekstart.Week() - periodtime.Week() ) > 1 and weekend.Year() = periodtime.Year() ) ){
        weekstart         := periodtime;
        }
      }else if( timeunit = Translations::MP_GlobalParameters_Month() ){
        for( start := starttime; start <= endtime; start := start.StartOfNextMonth() ){
          monthend            := ( start.StartOfNextMonth() - Duration::Days( 1 ) ).Date();//.Concat( ' ' ).Concat( monthend.Format( "MM", us_locale ).Concat( '/').Concat( [String]monthend.Month() ).Concat( '月' ) )
    //      us_locale := Locale::Construct( 'en_us' );
          this.Column( relnew, ColumnName := monthend.Format( "M2/D2/Y" ), StartDate := start, EndDate := monthend, TimeUnit := Translations::MP_GlobalParameters_Month() );
      if( periodtime = weekstart ){
        weekperiodname    := weekstart.Format( "M2/D2/Y" );
        this.Column( relnew, ColumnName := weekperiodname, StartDate := weekstart, EndDate := ( weekstart.StartOfNextWeek() - Duration::Days( 1 ) ).Date(), TimeUnit := Translations::MP_GlobalParameters_Week() );
        }
      if( ( monthstart.Year() <> periodtime.Year() and abs( monthstart.Month() - periodtime.Month() ) <> 11 ) or ( abs( monthstart.Month() - periodtime.Month() ) > 1 and monthstart.Year() = periodtime.Year() ) ){
        monthstart        := periodtime;
      }
      if( periodtime = monthstart ){
        monthperiodname   := monthstart.Format( "M2/D2/Y" );
        enddate           := ( monthstart.StartOfNextMonth() - Duration::Days( 1 ) ).Date();
        this.Column( relnew, ColumnName := monthperiodname, StartDate := monthstart, EndDate := enddate, TimeUnit := Translations::MP_GlobalParameters_Month() );
    }
    //weekstart             := periods.Element( 0 );
    //monthstart            := periods.Element( 0 );
    //traverse( periods, Elements, periodtime ){
    //  periodname          := periodtime.Format( "M2/D2/Y" );
    //
    //  this.Column( relnew, Name := periodname, StartDate := periodtime, EndDate := periodtime, TimeUnit := Translations::MP_GlobalParameters_Day() );
    //
    //  if( periodtime = weekstart ){
    //    weekperiodname    := weekstart.Format( "M2/D2/Y" );
    //    this.Column( relnew, Name := weekperiodname, StartDate := weekstart, EndDate := ( weekstart + Duration::Days( 6 ) ).Date(), TimeUnit := Translations::MP_GlobalParameters_Week() );
    //    weekstart         := ( weekstart + Duration::Days( 7 ) ).Date();
    //  }
    //  if( periodtime = monthstart ){
    //    monthperiodname   := monthstart.Format( "M2/D2/Y" );
    //    enddate           := ( monthstart.StartOfNextMonth() - Duration::Days( 1 ) ).Date();
    //    this.Column( relnew, Name := monthperiodname, StartDate := monthstart, EndDate := enddate, TimeUnit := Translations::MP_GlobalParameters_Month() );
    //    monthstart        := monthstart.StartOfNextMonth();
    //  }
    //}
      weekstart         := periodtime.StartOfNextWeek();
      monthstart        := periodtime.StartOfNextMonth();
    }
  *]
}
_Main/BL/Type_AssemblyOnlinePlanVersion/Method_GetRow.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
Method GetRow (
  const AssemblyOnlinePlanRow aoprow
  const NewAssemblyOnlinePlanRow aoprow
) as AssemblyOnlinePlanVersionRow
{
  TextBody:
_Main/BL/Type_AssemblyOnlinePlanVersion/StaticMethod_RefreshData.qbl
@@ -8,31 +8,31 @@
  TextBody:
  [*
    //根据当前版本的装配上线计划
    //interface.AssemblyOnlinePlanVersion( relflush );
    interface.AssemblyOnlinePlanVersion( relflush );
    allunit                := AssemblyOnlinePlanVersion::GetDefaultAllUnit();
    name                   := AssemblyOnlinePlanVersion::GetDefaultName();
    search                 := interface.AssemblyOnlinePlanVersionSearch( relnew, Product := allunit, ProductionLine := allunit, TimeUnit := Translations::MP_GlobalParameters_Day(), Unit := allunit, StartDate := Date::MinDate(), EndDate := Date::MaxDate() );
    name                   := AssemblyOnlinePlanVersion::GetDefaultName();//search                 :=
    interface.AssemblyOnlinePlanVersionSearch( relnew, Product := allunit, ProductionLine := allunit, TimeUnit := Translations::MP_GlobalParameters_Day(), Unit := allunit, StartDate := Date::MinDate(), EndDate := Date::MaxDate() );
    table                  := selectobject( interface, AssemblyOnlinePlanVersion, version, not version.IsShow() );
    if( isnull( table ) ){
      table                := interface.AssemblyOnlinePlanVersion( relnew, ID := name, Name := name );
    }
    showtable              := selectobject( interface, AssemblyOnlinePlanVersion, version, version.IsShow() );
    if( isnull( table ) ){
      showtable               := interface.AssemblyOnlinePlanVersion( relnew, ID := name, Name := name, IsShow := true );
    }
    aopcolumns             := selectuniquevalues(  macroPlan, AssemblyOnlinePlanColumn, aopcolumn, aopcolumn.ColumnIndex() > 1 and not exists( table, Column, column, column.TimeUnit() = Translations::MP_GlobalParameters_Day() and column.StartDate() = aopcolumn.ColumnDate() ), aopcolumn.ColumnDate() );
    table.GenerateColumn( aopcolumns, search.TimeUnit(), search.StartDate(), search.EndDate() );
    traverse( macroPlan, AssemblyOnlinePlanRow, aoprow, aoprow.Type() = '1' ){
    //showtable              := selectobject( interface, AssemblyOnlinePlanVersion, version, version.IsShow() );
    //if( isnull( table ) ){
    //  showtable               := interface.AssemblyOnlinePlanVersion( relnew, ID := name, Name := name, IsShow := true );
    //}
    aopcolumns             := selectuniquevalues(  macroPlan, NewAssemblyOnlinePlanColumn, aopcolumn, not exists( table, Column, column, column.TimeUnit() = Translations::MP_GlobalParameters_Day() and column.StartDate() = aopcolumn.StartDate() ), aopcolumn.StartDate() );
    table.GenerateColumn( aopcolumns );
    traverse( macroPlan, NewAssemblyOnlinePlanRow, aoprow, aoprow.Type() = '1' ){
      row                  := table.GetRow( aoprow );
      info( '---------------------', row.Type() );
      traverse( aoprow, AssemblyOnlinePlanCell, aopcell, aopcell.AssemblyOnlinePlanColumn().ColumnIndex() > 1  ){
        column             := selectobject( table, Column, column, column.TimeUnit() = Translations::MP_GlobalParameters_Day() and column.StartDate() = aopcell.AssemblyOnlinePlanColumn().ColumnDate() );
      info( '------------------------', row.Type() );
      traverse( aoprow, NewAssemblyOnlinePlanCell, aopcell ){
        column             := selectobject( table, Column, column, column.TimeUnit() = Translations::MP_GlobalParameters_Day() and column.StartDate() = aopcell.NewAssemblyOnlinePlanColumn().StartDate() );
        cell               := selectobject( row, Cell, cell, cell.Column() = column );
        cell.InventoryWeight( aopcell.InventoryWeight() );
        cell.ProductionSerialNumber( aopcell.ProductionSerialNumber() );
    //    cell.ProductionSerialNumber( aopcell.ProductionSerialNumber() );
        cell.Quantity( aopcell.Quantity() );
        cell.Shift( aopcell.Shift() );
        cell.Value( aopcell.Value() );
    //    cell.Shift( aopcell.Shift() );
    //    cell.Value( aopcell.Value() );
      }
    }
    //showtable.Generate( search, products );
_Main/BL/Type_InterfaceLoginfo/StaticMethod_CallInterfaceForSAPGet.qbl
@@ -10,7 +10,7 @@
  [*
    // ç”„兰鸽 Jul-22-2024 (created)
    address           := Translations::InterfaceDataset_SAP_Address(); 
    httpinterface     := HTTPInterface::Create( address,80);
    httpinterface     := HTTPInterface::Create( address,8080);
    httpinterface.PostMethod( false ); 
    httpinterface.MediaType( Translations::InterfaceDataset_ContentType() );
    try{
_Main/BL/Type_InventoryPlanArchiveCell/Attribute_ActualQuantity.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute ActualQuantity
{
  #keys: '3[415136.0.1275901529][415136.0.1275901528][415136.0.1275901530]'
  ValueType: Real
}
_Main/BL/Type_InventoryPlanArchiveCell/Attribute_PlanQuantity.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute PlanQuantity
{
  #keys: '3[415136.0.1275901522][415136.0.1275901521][415136.0.1275901523]'
  ValueType: Real
}
_Main/BL/Type_InventoryPlanArchiveCell/_ROOT_Type_InventoryPlanArchiveCell.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type InventoryPlanArchiveCell
{
  #keys: '5[415136.0.1275901384][415136.0.1275901382][0.0.0][415136.0.1275901383][415136.0.1275901385]'
  BaseType: Object
  Description: '计划库存存档单元格'
  StructuredName: 'InventoryPlanArchiveCells'
}
_Main/BL/Type_InventoryPlanArchiveColumn/Attribute_EndDate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute EndDate
{
  #keys: '3[415136.0.1275930135][415136.0.1275930134][415136.0.1275930136]'
  Description: '结束日期'
  ValueType: Date
}
_Main/BL/Type_InventoryPlanArchiveColumn/Attribute_Name.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Name
{
  #keys: '3[415136.0.1275930151][415136.0.1275930150][415136.0.1275930152]'
  ValueType: String
}
_Main/BL/Type_InventoryPlanArchiveColumn/Attribute_StartDate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute StartDate
{
  #keys: '3[415136.0.1275930125][415136.0.1275930124][415136.0.1275930126]'
  Description: '开始日期'
  ValueType: Date
}
_Main/BL/Type_InventoryPlanArchiveColumn/Attribute_TimeUnit.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute TimeUnit
{
  #keys: '3[415136.0.1275930121][415136.0.1275930120][415136.0.1275930122]'
  Description: '日期类型'
  ValueType: String
}
_Main/BL/Type_InventoryPlanArchiveColumn/DefaultValue_TimeUnit.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: TimeUnit
}
_Main/BL/Type_InventoryPlanArchiveColumn/_ROOT_Type_InventoryPlanArchiveColumn.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type InventoryPlanArchiveColumn
{
  #keys: '5[415136.0.1275901379][415136.0.1275901377][0.0.0][415136.0.1275901378][415136.0.1275901380]'
  BaseType: Object
  Description: '计划库存存档列'
  StructuredName: 'InventoryPlanArchiveColumns'
}
_Main/BL/Type_InventoryPlanArchiveRow/Attribute_Name.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Name
{
  #keys: '3[415136.0.1275901545][415136.0.1275901544][415136.0.1275901546]'
  Description: '产品名称'
  ValueType: String
}
_Main/BL/Type_InventoryPlanArchiveRow/Attribute_Unit.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Unit
{
  #keys: '3[415136.0.1275930165][415136.0.1275930164][415136.0.1275930166]'
  Description: '工厂'
  ValueType: String
}
_Main/BL/Type_InventoryPlanArchiveRow/Method_Initialize.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
#parent: #root
Method Initialize (
  InventoryPlanArchiveColumn column
)
{
  Description: '初始化单元格'
  TextBody:
  [*
    // ç”„兰鸽 Jun-24-2024 (created)
    cell := this.Cell( relnew, PlanQuantity := 0, ActualQuantity := 0 );
    column.Cell( relinsert, cell );
  *]
}
_Main/BL/Type_InventoryPlanArchiveRow/Method_SetQuantity.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: #root
Method SetQuantity (
  InventoryPlanArchiveColumn column,
  Real planqty,
  Real actualaty
)
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-24-2024 (created)
    cell := selectobject( this, Cell, cell, cell.Column() = column );
    cell.PlanQuantity( cell.PlanQuantity() + planqty );
    cell.ActualQuantity( cell.ActualQuantity() + actualaty );
  *]
}
_Main/BL/Type_InventoryPlanArchiveRow/_ROOT_Type_InventoryPlanArchiveRow.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type InventoryPlanArchiveRow
{
  #keys: '5[415136.0.1275901374][415136.0.1275901372][0.0.0][415136.0.1275901373][415136.0.1275901375]'
  BaseType: Object
  Description: '计划库存存档行'
  StructuredName: 'InventoryPlanArchiveRows'
}
_Main/BL/Type_InventoryPlanArchiveVersion/Attribute_ID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ID
{
  #keys: '3[415136.0.1275901479][415136.0.1275901478][415136.0.1275901480]'
  IsReadOnly: true
  ValueType: String
}
_Main/BL/Type_InventoryPlanArchiveVersion/Attribute_IsShow.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute IsShow
{
  #keys: '3[415136.0.1275901487][415136.0.1275901486][415136.0.1275901488]'
  Description: '是否显示'
  ValueType: Boolean
}
_Main/BL/Type_InventoryPlanArchiveVersion/Attribute_Name.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Name
{
  #keys: '3[415136.0.1275930106][415136.0.1275930105][415136.0.1275930107]'
  Description: '名称'
  ValueType: String
}
_Main/BL/Type_InventoryPlanArchiveVersion/DefaultValue_IsShow.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  ISOValue: 'true'
  TargetAttribute: IsShow
}
_Main/BL/Type_InventoryPlanArchiveVersion/Method_GenerateColumn.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
Quintiq file version 2.0
#parent: #root
Method GenerateColumn (
  Dates periods
)
{
  Description: '生成日期列'
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    weekstart             := periods.Element( 0 );
    monthstart            := periods.Element( 0 );
    traverse( periods, Elements, periodtime ){
      periodname          := periodtime.Format( "M2/D2/Y" );
      this.Column( relnew, Name := periodname, StartDate := periodtime, EndDate := periodtime, TimeUnit := Translations::MP_GlobalParameters_Day() );
      weekend             := ( weekstart + Duration::Days( 6 ) ).Date();
      if( ( weekend.Year() <> periodtime.Year() and weekend.Month() > 1 ) or ( abs( weekstart.Week() - periodtime.Week() ) > 1 and weekend.Year() = periodtime.Year() ) ){
        weekstart         := periodtime;
      }
      if( periodtime = weekstart ){
        weekperiodname    := weekstart.Format( "M2/D2/Y" );
        this.Column( relnew, Name := weekperiodname, StartDate := weekstart, EndDate := ( weekstart.StartOfNextWeek() - Duration::Days( 1 ) ).Date(), TimeUnit := Translations::MP_GlobalParameters_Week() );
      }
      if( ( monthstart.Year() <> periodtime.Year() and abs( monthstart.Month() - periodtime.Month() ) <> 11 ) or ( abs( monthstart.Month() - periodtime.Month() ) > 1 and monthstart.Year() = periodtime.Year() ) ){
        monthstart        := periodtime;
      }
      if( periodtime = monthstart ){
        monthperiodname   := monthstart.Format( "M2/D2/Y" );
        enddate           := ( monthstart.StartOfNextMonth() - Duration::Days( 1 ) ).Date();
        this.Column( relnew, Name := monthperiodname, StartDate := monthstart, EndDate := enddate, TimeUnit := Translations::MP_GlobalParameters_Month() );
      }
      weekstart         := periodtime.StartOfNextWeek();
      monthstart        := periodtime.StartOfNextMonth();
    }
  *]
}
_Main/BL/Type_InventoryPlanArchiveVersion/Method_GetColumnByTimeUnit.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: #root
Method GetColumnByTimeUnit (
  String unit,
  Date period
) as InventoryPlanArchiveColumn
{
  TextBody:
  [*
    // ç”„兰鸽 Aug-7-2024 (created)
    //periodname := period.Format( "M2/D2/Y" );
    column := selectobject( this, Column, column, column.StartDate() <= period and column.EndDate() >= period and column.TimeUnit() = unit );
    return column;
  *]
}
_Main/BL/Type_InventoryPlanArchiveVersion/Method_GetRowByUnit.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
Quintiq file version 2.0
#parent: #root
Method GetRowByUnit (
  String product,
  String unit
) as InventoryPlanArchiveRow
{
  TextBody:
  [*
    // ç”„兰鸽 Sep-6-2024 (created)
    row := selectobject( this, Row, row, row.Name() = product and row.Unit() = unit );
    if( isnull( row ) ){
      //初始化单元格
      row := this.Row( relnew, Name := product, Unit := unit );
      traverse( this, Column, column ){
        row.Initialize( column );
      }
    }
    return row;
  *]
}
_Main/BL/Type_InventoryPlanArchiveVersion/StaticMethod_GenerateData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,72 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GenerateData (
  MacroPlan macroPlan,
  InterfaceDataset interfaceDataset
)
{
  Description: '生成计划库存存档数据'
  TextBody:
  [*
    interfaceDataset.InventoryPlanArchiveVersion( relflush );
    info( '-------------------------Start---------------------');
    allunit                := AssemblyOnlinePlanVersion::GetDefaultAllUnit();
    name                   := InventoryPlanArchiveVersion::GetDefaultName();
    interfaceDataset.InventoryPlanArchiveVersionSearch( relnew, Product := allunit, TimeUnit := Translations::MP_GlobalParameters_Day(), Unit := allunit, StartDate := Date::MinDate(), EndDate := Date::MaxDate() );
    table                  := selectobject( interfaceDataset, InventoryPlanArchiveVersion, version, not version.IsShow() );
    if( isnull( table ) ){
      table                := interfaceDataset.InventoryPlanArchiveVersion( relnew, ID := name, Name := name );
    }
    //showtable              := selectobject( interfaceDataset, InventoryPlanArchiveVersion, version, version.IsShow() );
    //if( isnull( table ) ){
    //  showtable               := interfaceDataset.AssemblyOnlinePlanVersion( relnew, ID := name, Name := name, IsShow := true );
    //}
    periods                := selectuniquevalues(  macroPlan, Period_MP, period, not period.IsHistorical() and period.TimeUnit() = Translations::MP_GlobalParameters_Day()
                                                   and not exists( table, Column, column, column.TimeUnit() = Translations::MP_GlobalParameters_Day() and column.StartDate() = period.StartDate() ), period.StartDate() );
    table.GenerateColumn( periods );
    actinventorytree       := NamedValueTree::Create();
    inventoryqrys          := construct( Reals );
    inventoryindex         := 0;
    traverse( interfaceDataset,InterfaceLoginfo.MachineStockData, actinventory ){
      inventoryqrys.Add( actinventory.Total() );
      actinventoryKey      := actinventory.MaterialNo() + actinventory.DDay().AsQUILL();
      actinventoryhandle   := actinventorytree.GetHandle( actinventoryKey );
      actinventorytree.Root().AddChild( actinventoryhandle,inventoryindex );
      inventoryindex       := inventoryindex + 1;
    }
    traverse( interfaceDataset,InterfaceLoginfo.FinishedEngineInventory,actinventory ){
      product               := selectobject( macroPlan, Product_MP, product, product.Notes() = actinventory.FourCode() );
      if( not isnull( product ) ){
        inventoryqrys.Add( actinventory.Total() );
        actinventoryKey     := actinventory.FourCode() + actinventory.DDay().AsQUILL();
        actinventoryhandle  := actinventorytree.GetHandle( actinventoryKey );
        actinventorytree.Root().AddChild( actinventoryhandle,inventoryindex );
        inventoryindex      := inventoryindex + 1;
      }
    }
    traverse ( macroPlan, Product_MP.ProductInStockingPoint_MP, pispmp, not pispmp.IsSystem() and pispmp.IsLeaf() ) {
      unit                 := ifexpr( pispmp.StockingPointID().Regex( "大连" ) or pispmp.StockingPointID().Regex( "DL" ), FinancialProductionReport::GetDefaultDLUnit(), FinancialProductionReport::GetDefaultCCUnit() );
      inventoryrow         := table.GetRowByUnit( pispmp.ProductID(), unit );
      traverse ( pispmp, ProductInStockingPointInPeriodPlanning.astype( ProductInStockingPointInPeriodPlanningLeaf ), pispippl, not pispippl.IsPeriodFrozen() ) {
        startdate          := pispippl.Start().Date();
        daycolumn          := table.GetColumnByTimeUnit( Translations::MP_GlobalParameters_Day(), startdate );
        weekcolumn         := table.GetColumnByTimeUnit( Translations::MP_GlobalParameters_Week(), startdate );
        monthcolumn        := table.GetColumnByTimeUnit( Translations::MP_GlobalParameters_Month(), startdate );
        actinventoryKey    := pispmp.ProductID() + startdate.AsQUILL();
        actinventoryhandle := actinventorytree.GetHandle( actinventoryKey );
        actinventoryindex  := guard( actinventorytree.Root().Child( actinventoryhandle ),null( NamedValue ));
        actinventoryqty    := 0.0;
        if( not isnull( actinventoryindex )){
          actinventoryqty  := inventoryqrys.Element( actinventoryindex.GetValueAsNumber() );
        }
        inventoryrow.SetQuantity( daycolumn, pispippl.InventoryLevelEnd(), actinventoryqty );
        inventoryrow.SetQuantity( weekcolumn, pispippl.InventoryLevelEnd(), actinventoryqty );
        inventoryrow.SetQuantity( monthcolumn, pispippl.InventoryLevelEnd(), actinventoryqty );
      }
    }
    info( '-------------------------End---------------------');
  *]
}
_Main/BL/Type_InventoryPlanArchiveVersion/StaticMethod_GetDefaultName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetDefaultName () const as String
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    return 'Inventory plan archive';
  *]
}
_Main/BL/Type_InventoryPlanArchiveVersion/_ROOT_Type_InventoryPlanArchiveVersion.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type InventoryPlanArchiveVersion
{
  #keys: '5[415136.0.1275901356][415136.0.1275901354][0.0.0][415136.0.1275901355][415136.0.1275901357]'
  BaseType: Object
  Description: '计划库存存档'
  StructuredName: 'InventoryPlanArchiveVersions'
}
_Main/BL/Type_InventoryPlanArchiveVersionSearch/Attribute_EndDate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute EndDate
{
  #keys: '3[415136.0.1275930091][415136.0.1275930090][415136.0.1275930092]'
  Description: '结束日期'
  ValueType: Date
}
_Main/BL/Type_InventoryPlanArchiveVersionSearch/Attribute_Product.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Product
{
  #keys: '3[415136.0.1275930083][415136.0.1275930082][415136.0.1275930084]'
  Description: '产品'
  ValueType: String
}
_Main/BL/Type_InventoryPlanArchiveVersionSearch/Attribute_StartDate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute StartDate
{
  #keys: '3[415136.0.1275901469][415136.0.1275901468][415136.0.1275901470]'
  Description: '开始时间'
  ValueType: Date
}
_Main/BL/Type_InventoryPlanArchiveVersionSearch/Attribute_TimeUnit.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute TimeUnit
{
  #keys: '3[415136.0.1275901459][415136.0.1275901458][415136.0.1275901460]'
  Description: '日期类型'
  ValueType: String
}
_Main/BL/Type_InventoryPlanArchiveVersionSearch/Attribute_Unit.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Unit
{
  #keys: '3[415136.0.1275901449][415136.0.1275901448][415136.0.1275901450]'
  Description: '工厂'
  ValueType: String
}
_Main/BL/Type_InventoryPlanArchiveVersionSearch/_ROOT_Type_InventoryPlanArchiveVersionSearch.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type InventoryPlanArchiveVersionSearch
{
  #keys: '5[415136.0.1275930066][415136.0.1275930064][0.0.0][415136.0.1275930065][415136.0.1275930067]'
  BaseType: Object
  Description: '计划库存存档查询条件'
  StructuredName: 'InventoryPlanArchiveVersionSearchs'
}
_Main/BL/Type_OfflinePlanArchiveVersion/Method_GenerateColumn.qbl
@@ -1,65 +1,40 @@
Quintiq file version 2.0
#parent: #root
Method GenerateColumn (
  Dates periods,
  String timeunit,
  Date starttime,
  Date endtime
  Dates periods
)
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created) 
    mindate               := min( periods, Elements, period, period );
    maxdate               := max( periods, Elements, period, period );
    //查询日期返回需要在计划日期之内
    if( starttime < mindate and endtime > maxdate ){
      if( starttime < mindate ){
        starttime             := mindate;
      }
      if( endtime > maxdate ){
        endtime               := maxdate;
      }
      if( timeunit = Translations::MP_GlobalParameters_Day() ){
        for( start := starttime; start <= endtime; start := start.DateTime().StartOfNextDay().Date() ){
          periodname          := start.Format( "M2/D2/Y" );
          if( not exists( this, Column, column, column.StartDate() = start ) ){
            this.Column( relnew, ColumnName := periodname, StartDate := start, EndDate := start, TimeUnit := Translations::MP_GlobalParameters_Day() );
          }
        }
      }else if( timeunit = Translations::MP_GlobalParameters_Week() ){
    //    weekstartstr          := ' KW';
        for( start := starttime; start <= endtime; start := start.StartOfNextWeek() ){
          weekend             := ( start.StartOfNextWeek() - Duration::Days( 1 ) ).Date();//.Concat( weekstartstr.Concat( weekend.Week().Format( 'N(LPad0(2))' ) ) )
    weekstart             := periods.Element( 0 );
          
          this.Column( relnew, ColumnName := weekend.Format( "M2/D2/Y" ), StartDate := start, EndDate := weekend, TimeUnit := Translations::MP_GlobalParameters_Week() );
    monthstart            := periods.Element( 0 );
    traverse( periods, Elements, periodtime ){
      periodname          := periodtime.Format( "M2/D2/Y" );
      this.Column( relnew, ColumnName := periodname, StartDate := periodtime, EndDate := periodtime, TimeUnit := Translations::MP_GlobalParameters_Day() );
      weekend             := ( weekstart + Duration::Days( 6 ) ).Date();
      if( ( weekend.Year() <> periodtime.Year() and weekend.Month() > 1 ) or ( abs( weekstart.Week() - periodtime.Week() ) > 1 and weekend.Year() = periodtime.Year() ) ){
        weekstart         := periodtime;
        }
      }else if( timeunit = Translations::MP_GlobalParameters_Month() ){
        for( start := starttime; start <= endtime; start := start.StartOfNextMonth() ){
          monthend            := ( start.StartOfNextMonth() - Duration::Days( 1 ) ).Date();//.Concat( ' ' ).Concat( monthend.Format( "MM", us_locale ).Concat( '/').Concat( [String]monthend.Month() ).Concat( '月' ) )
    //      us_locale := Locale::Construct( 'en_us' );
          this.Column( relnew, ColumnName := monthend.Format( "M2/D2/Y" ), StartDate := start, EndDate := monthend, TimeUnit := Translations::MP_GlobalParameters_Month() );
      if( periodtime = weekstart ){
        weekperiodname    := weekstart.Format( "M2/D2/Y" );
        this.Column( relnew, ColumnName := weekperiodname, StartDate := weekstart, EndDate := ( weekstart.StartOfNextWeek() - Duration::Days( 1 ) ).Date(), TimeUnit := Translations::MP_GlobalParameters_Week() );
        }
      if( ( monthstart.Year() <> periodtime.Year() and abs( monthstart.Month() - periodtime.Month() ) <> 11 ) or ( abs( monthstart.Month() - periodtime.Month() ) > 1 and monthstart.Year() = periodtime.Year() ) ){
        monthstart        := periodtime;
      }
      if( periodtime = monthstart ){
        monthperiodname   := monthstart.Format( "M2/D2/Y" );
        enddate           := ( monthstart.StartOfNextMonth() - Duration::Days( 1 ) ).Date();
        this.Column( relnew, ColumnName := monthperiodname, StartDate := monthstart, EndDate := enddate, TimeUnit := Translations::MP_GlobalParameters_Month() );
    }
    //weekstart             := periods.Element( 0 );
    //monthstart            := periods.Element( 0 );
    //traverse( periods, Elements, periodtime ){
    //  periodname          := periodtime.Format( "M2/D2/Y" );
    //
    //  this.Column( relnew, Name := periodname, StartDate := periodtime, EndDate := periodtime, TimeUnit := Translations::MP_GlobalParameters_Day() );
    //
    //  if( periodtime = weekstart ){
    //    weekperiodname    := weekstart.Format( "M2/D2/Y" );
    //    this.Column( relnew, Name := weekperiodname, StartDate := weekstart, EndDate := ( weekstart + Duration::Days( 6 ) ).Date(), TimeUnit := Translations::MP_GlobalParameters_Week() );
    //    weekstart         := ( weekstart + Duration::Days( 7 ) ).Date();
    //  }
    //  if( periodtime = monthstart ){
    //    monthperiodname   := monthstart.Format( "M2/D2/Y" );
    //    enddate           := ( monthstart.StartOfNextMonth() - Duration::Days( 1 ) ).Date();
    //    this.Column( relnew, Name := monthperiodname, StartDate := monthstart, EndDate := enddate, TimeUnit := Translations::MP_GlobalParameters_Month() );
    //    monthstart        := monthstart.StartOfNextMonth();
    //  }
    //}
      weekstart         := periodtime.StartOfNextWeek();
      monthstart        := periodtime.StartOfNextMonth();
    }
  *]
}
_Main/BL/Type_OfflinePlanArchiveVersion/StaticMethod_RefreshData.qbl
@@ -11,17 +11,17 @@
    //根据当前版本的下线计划
    allunit                := OfflinePlanArchiveVersion::GetDefaultAllUnit();
    name                   := OfflinePlanArchiveVersion::GetDefaultName();
    search                 := interface.OfflinePlanArchiveSearch( relnew, Product := allunit, ProductionLine := allunit, TimeUnit := Translations::MP_GlobalParameters_Day(), Unit := allunit, StartDate := Date::MinDate(), EndDate := Date::MaxDate() );
    interface.OfflinePlanArchiveSearch( relnew, Product := allunit, ProductionLine := allunit, TimeUnit := Translations::MP_GlobalParameters_Day(), Unit := allunit, StartDate := Date::MinDate(), EndDate := Date::MaxDate() );
    table                  := selectobject( interface, OfflinePlanArchiveVersion, version, not version.IsShow() );
    if( isnull( table ) ){
      table                := interface.OfflinePlanArchiveVersion( relnew, ID := name, Name := name );
    }
    showtable              := selectobject( interface, OfflinePlanArchiveVersion, version, version.IsShow() );
    if( isnull( table ) ){
      showtable               := interface.OfflinePlanArchiveVersion( relnew, ID := name, Name := name, IsShow := true );
    }
    //showtable              := selectobject( interface, OfflinePlanArchiveVersion, version, version.IsShow() );
    //if( isnull( table ) ){
    //  showtable               := interface.OfflinePlanArchiveVersion( relnew, ID := name, Name := name, IsShow := true );
    //}
    nopcolumns             := selectuniquevalues(  macroPlan, NewOfflinePlanTable.NewOfflinePlanColumn, nopcolumn, not exists( table, Column, column, column.TimeUnit() = Translations::MP_GlobalParameters_Day() and column.StartDate() = nopcolumn.StartDate() ), nopcolumn.StartDate() );
    table.GenerateColumn( nopcolumns, search.TimeUnit(), search.StartDate(), search.EndDate() );
    table.GenerateColumn( nopcolumns );
    noptable               := maxobject( macroPlan, NewOfflinePlanTable, noptable, noptable.SaveDateTime() );
    actproductiondatas     := selectset( archive,ActualDailyProductionData,data,true );
    actproductiontree      := NamedValueTree::Create();
_Main/BL/Type_OfflinePlanArchiveVersionRow/Attribute_Name.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Name
{
  #keys: '3[415136.0.1275901603][415136.0.1275901602][415136.0.1275901604]'
  ValueType: String
}
_Main/BL/Type_OfflinePlanArchiveVersionRow/DefaultValue_Name.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: Name
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupArchiveReport.def
@@ -34,7 +34,7 @@
      Properties:
      [
        Image: 'PAPER_JET'
        Label: 'Offline plan archive'
        Label: '下线计划存档'
        Taborder: 2
      ]
    }
@@ -49,6 +49,17 @@
        Taborder: 3
      ]
    }
    Component ButtonInventoryPlanArchiveReport
    {
      #keys: '[415136.0.1277502282]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'WAREHOUSE'
        Label: '计划库存存档'
        Taborder: 4
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupArchiveReport_ButtonInventoryPlanArchive.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: ActionBarGroupArchiveReport/ButtonInventoryPlanArchiveReport
Response OnClick () id:Response_MacroPlanner_ActionBarGroupArchiveReport_ButtonInventoryPlanArchiveReport_OnClick
{
  #keys: '[415136.0.1277502334]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      ApplicationScope.ViewManager().ResetUserViewById( "Inventory_plan_archive_report", true);
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_MatrixEditorTable#384.def
@@ -49,7 +49,7 @@
            DataType: 'InterfaceDataset'
            Description: "( search.Generation() = '<All>' or object.Product_MP().Generation() = search.Generation() ) and ( search.MqbMlb() = '<All>' or object.Product_MP().MQBMLB() = search.MqbMlb() ) and ( search.Power() = '<All>' or object.Product_MP().Power() = search.Power() )"
            FilterArguments: 'search:QMacroPlanner::FormAssemblyOnlinePlanVersion.dhSearch'
            FixedFilter: "( search.Product() = '<All>' or object.ProductID() = search.Product() ) and ( search.ProductionLine() = '<All>' or object.ProductionLine() = search.ProductionLine() )"
            FixedFilter: "( search.Product() = '<All>' or object.ProductID() = search.Product() ) and ( search.ProductionLine() = '<All>' or object.ProductionLine() = search.ProductionLine() ) and ( search.Unit() = '<All>' or object.Unit() = search.Unit() )"
            Source: 'InterfaceDataset'
            Taborder: 0
            Transformation: 'AssemblyOnlinePlanVersion.Row'
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelHeader#952.def
@@ -14,6 +14,7 @@
  ]
  Properties:
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 1
  ]
_Main/UI/MacroPlannerWebApp/Component_FormCustomerDemandPPAIDS/Component_MatrixEditorTable.def
@@ -49,7 +49,7 @@
            DataType: 'InterfaceDataset'
            Description: "( search.Generation() = '<All>' or object.Product_MP().Generation() = search.Generation() ) and ( search.MqbMlb() = '<All>' or object.Product_MP().MQBMLB() = search.MqbMlb() ) and ( search.Power() = '<All>' or object.Product_MP().Power() = search.Power() )"
            FilterArguments: 'search:QMacroPlanner::FormCustomerDemandPPAIDS.dhSearch'
            FixedFilter: "search.Product() = '<All>' or object.Name() = search.Product()"
            FixedFilter: "search.Product() = '<All>' or object.Name() = search.Product() and ( search.Unit() = '<All>' or object.Factory() = search.Unit() )"
            Source: 'InterfaceDataset'
            Taborder: 0
            Transformation: 'CustomerDemandIDS.Row'
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_MatrixEditorTable#791.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,105 @@
Quintiq file version 2.0
Component MatrixEditorTable id:MatrixEditorTable_791
{
  #keys: '[415136.0.1277502045]'
  BaseType: 'WebMatrixEditor'
  Children:
  [
    Component MatrixEditorCellTable
    {
      #keys: '[415136.0.1277502046]'
      BaseType: 'WebMatrixEditorCell'
      Children:
      [
        Component DataExtractorCells
        {
          #keys: '[415136.0.1277502047]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'InterfaceDataset'
            FilterArguments: 'search:QMacroPlanner::FormAssemblyOnlinePlanVersion.dhSearch'
            FixedFilter: 'object.Column().TimeUnit() = search.TimeUnit() and object.Column().StartDate() >= search.StartDate() and object.Column().StartDate() <= search.EndDate()'
            Source: 'InterfaceDataset'
            Taborder: 0
            Transformation: 'InventoryPlanArchiveVersion.Row.Cell'
          ]
        }
      ]
      Properties:
      [
        Attributes: 'PlanQuantity;ActualQuantity'
        Column: 'Column'
        Row: 'Row'
        Taborder: 0
      ]
    }
    Component MatrixEditorRowsTable
    {
      #keys: '[415136.0.1277502048]'
      BaseType: 'WebMatrixEditorHeaderLevel'
      Children:
      [
        Component DataExtractorRows
        {
          #keys: '[415136.0.1277502049]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'InterfaceDataset'
            Description: "( search.Generation() = '<All>' or object.Product_MP().Generation() = search.Generation() ) and ( search.MqbMlb() = '<All>' or object.Product_MP().MQBMLB() = search.MqbMlb() ) and ( search.Power() = '<All>' or object.Product_MP().Power() = search.Power() )"
            FilterArguments: 'search:QMacroPlanner::FormAssemblyOnlinePlanVersion.dhSearch'
            FixedFilter: "( search.Product() = '<All>' or object.Name() = search.Product() ) and ( search.Unit() = '<All>' or object.Unit() = search.Unit() )"
            Source: 'InterfaceDataset'
            Taborder: 0
            Transformation: 'InventoryPlanArchiveVersion.Row'
          ]
        }
      ]
      Properties:
      [
        Legend: 'Name'
        SortCriteria: 'Name'
        Taborder: 1
      ]
    }
    Component MatrixEditorColumnsTable
    {
      #keys: '[415136.0.1277502050]'
      BaseType: 'WebMatrixEditorHeaderLevel'
      Children:
      [
        Component DataExtractorColumns
        {
          #keys: '[415136.0.1277502051]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'InterfaceDataset'
            FilterArguments: 'search:QMacroPlanner::FormAssemblyOnlinePlanVersion.dhSearch'
            FixedFilter: 'object.TimeUnit() = search.TimeUnit() and  ( search.StartDate().IsMinInfinity() or object.StartDate() >= search.StartDate() )  and ( search.EndDate().IsMaxInfinity() or object.StartDate() <= search.EndDate() )'
            Source: 'InterfaceDataset'
            Taborder: 0
            Transformation: 'InventoryPlanArchiveVersion.Column'
          ]
        }
      ]
      Properties:
      [
        Legend: 'Name'
        SortCriteria: 'StartDate'
        Taborder: 2
      ]
    }
    #child: matrixEditorActionBarPageTable_1
    #child: matrixeditorContextMenuTable_1
  ]
  Properties:
  [
    AllowMultipleAttributes: true
    Columns: 'MatrixEditorColumnsTable'
    ContextMenu: 'matrixeditorContextMenuTable'
    Rows: 'MatrixEditorRowsTable'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelHeader#503.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
Component PanelHeader id:PanelHeader_503
{
  #keys: '[415136.0.1277502010]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: PanelUnit
    #child: PanelOperation_414
    #child: PanelTimeUnit_805
    #child: PanelPeriod
    #child: PanelProduct_133
  ]
  Properties:
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelOperation#414.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
Component PanelOperation id:PanelOperation_414
{
  #keys: '[415136.0.1277502018]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ButtonSearch
    {
      #keys: '[415136.0.1277502019]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'VIEW'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    Taborder: 4
    Visible: false
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelPeriod.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
Quintiq file version 2.0
Component PanelPeriod
{
  #keys: '[415136.0.1277502013]'
  BaseType: 'WebPanel'
  Children:
  [
    Component DateSelectorStart
    {
      #keys: '[415136.0.1277502014]'
      BaseType: 'WebDateSelector'
      Properties:
      [
        Label: 'Start date'
        Taborder: 0
      ]
    }
    Component DateSelectorEnd
    {
      #keys: '[415136.0.1277502015]'
      BaseType: 'WebDateSelector'
      Properties:
      [
        Date: 9999-12-31
        Label: 'End date'
        Taborder: 1
      ]
    }
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 2
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelProduct#133.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
Component PanelProduct id:PanelProduct_133
{
  #keys: '[415136.0.1277502011]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ddslProduct
    {
      #keys: '[415136.0.1277502012]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        FixedSize: false
        Label: 'Product'
        Sorting: 'none'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    FixedSize: true
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelTable#881.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
Quintiq file version 2.0
Component PanelTable id:PanelTable_881
{
  #keys: '[415136.0.1277502044]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: MatrixEditorTable_791
  ]
  Properties:
  [
    Taborder: 2
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelTimeUnit#805.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
Component PanelTimeUnit id:PanelTimeUnit_805
{
  #keys: '[415136.0.1277502016]'
  BaseType: 'WebPanel'
  Children:
  [
    Component RadioButtonGroupUseForTimeUnit
    {
      #keys: '[415136.0.1277502017]'
      BaseType: 'WebRadioButtonGroup'
      Properties:
      [
        ButtonLabels: 'Day;Week;Month'
        ButtonValues: 'Day;Week;Month'
        Orientation: 'horizontal'
        Taborder: 0
        Title: 'Periods'
      ]
    }
  ]
  Properties:
  [
    Taborder: 3
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelUnit.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
Component PanelUnit
{
  #keys: '[415136.0.1277502022]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ddslUnit
    {
      #keys: '[415136.0.1277502023]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        Label: 'Unit'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    FixedSize: true
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_matrixEditorActionBarPageTable#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component matrixEditorActionBarPageTable id:matrixEditorActionBarPageTable_1
{
  #keys: '[415136.0.1277502052]'
  BaseType: 'matrixEditorActionBarPage'
  Properties:
  [
    Taborder: 3
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_matrixeditorContextMenuTable#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component matrixeditorContextMenuTable id:matrixeditorContextMenuTable_1
{
  #keys: '[415136.0.1277502053]'
  BaseType: 'matrixeditorContextMenu'
  Properties:
  [
    Taborder: 4
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelPeriod_DateSelectorEnd_OnChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
#parent: PanelPeriod/DateSelectorEnd
Response OnChanged () id:Response_PanelPeriod_DateSelectorEnd_OnChanged
{
  #keys: '[415136.0.1277502006]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDateTimeFieldBase_OnChanged'
  QuillAction
  {
    Body:
    [*
      //日期改变后刷新显示
      if( this.Date() < DateSelectorStart.Date() ){
        this.HintError( 'The end date cannot be less than the start date!' );
      }else{
        if( dhSearch.Data().EndDate() <> this.Date() ){
          dhSearch.Data().EndDate( this.Date() );
      //    DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
        }
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelPeriod_DateSelectorStart_OnChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
#parent: PanelPeriod/DateSelectorStart
Response OnChanged () id:Response_PanelPeriod_DateSelectorStart_OnChanged
{
  #keys: '[415136.0.1277502007]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDateTimeFieldBase_OnChanged'
  QuillAction
  {
    Body:
    [*
      //日期改变后刷新显示
      if( this.Date() > DateSelectorEnd.Date() ){
        this.HintError( 'The start date cannot be later than the end date!' );
      }else{
        if( dhSearch.Data().StartDate() <> this.Date() ){
          dhSearch.Data().StartDate( this.Date() );
      //    DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
        }
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelProduct_133_ddslProduct_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: PanelProduct_133/ddslProduct
Response OnCreated () id:Response_PanelProduct_133_ddslProduct_OnCreated
{
  #keys: '[415136.0.1277502009]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      values := selectuniquevalues( InterfaceDataset, AssemblyOnlinePlanVersion.Row, row, true, row.ProductID() );
      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_FormInventoryPlanArchive/Response_PanelProduct_133_ddslProduct_OnSelectionChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: PanelProduct_133/ddslProduct
Response OnSelectionChanged () id:Response_PanelProduct_133_ddslProduct_OnSelectionChanged
{
  #keys: '[415136.0.1277502008]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDropDownStringList_OnSelectionChanged'
  QuillAction
  {
    Body:
    [*
      if( not isnull( dhSearch.Data() ) and dhSearch.Data().Product() <> selection ){
        dhSearch.Data().Product( selection );
      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelTimeUnit_805_RadioButtonGroupUseForTimeUnit_OnChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: PanelTimeUnit_805/RadioButtonGroupUseForTimeUnit
Response OnChanged () id:Response_PanelTimeUnit_805_RadioButtonGroupUseForTimeUnit_OnChanged
{
  #keys: '[415136.0.1277502005]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebRadioButtonGroup_OnChanged'
  QuillAction
  {
    Body:
    [*
      //区间改变后刷新显示
      if( dhSearch.Data().TimeUnit() <> this.BoundValue() ){
        dhSearch.Data().TimeUnit( this.BoundValue() );
      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelTimeUnit_805_RadioButtonGroupUseForTimeUnit_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: PanelTimeUnit_805/RadioButtonGroupUseForTimeUnit
Response OnCreated () id:Response_PanelTimeUnit_805_RadioButtonGroupUseForTimeUnit_OnCreated
{
  #keys: '[415136.0.1277502004]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      this.ButtonValues( Translations::MP_GlobalParameters_Day() + ';' + Translations::MP_GlobalParameters_Week() + ';' + Translations::MP_GlobalParameters_Month() );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelUnit_ddslUnit_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: PanelUnit/ddslUnit
Response OnCreated () id:Response_PanelUnit_ddslUnit_OnCreated
{
  #keys: '[415136.0.1277502001]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      valueString := "All";
      this.Strings( valueString.Concat( ";" ).Concat( FinancialProductionReport::GetDefaultCCUnit().Concat( ";" ) ).Concat( FinancialProductionReport::GetDefaultDLUnit() ) );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelUnit_ddslUnit_OnSelectionChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: PanelUnit/ddslUnit
Response OnSelectionChanged () id:Response_PanelUnit_ddslUnit_OnSelectionChanged
{
  #keys: '[415136.0.1277502000]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDropDownStringList_OnSelectionChanged'
  QuillAction
  {
    Body:
    [*
      if( not isnull( dhSearch.Data() ) and dhSearch.Data().Unit() <> selection ){
        dhSearch.Data().Unit( selection );
      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/_ROOT_Component_FormInventoryPlanArchive.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent FormInventoryPlanArchive
{
  #keys: '[415136.0.1277501873]'
  BaseType: 'WebForm'
  Children:
  [
    Component dhSearch
    {
      #keys: '[415136.0.1277501926]'
      BaseType: 'WebDataHolder'
      Databinding: 'InventoryPlanArchiveVersionSearch'
      Children:
      [
        Component deSearch id:deSearch_426
        {
          #keys: '[415136.0.1277501927]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'InterfaceDataset'
            Source: 'InterfaceDataset'
            Taborder: 0
            Transformation: 'InventoryPlanArchiveVersionSearch'
          ]
        }
      ]
      Properties:
      [
        Taborder: 0
      ]
    }
    #child: PanelHeader_503
    #child: PanelTable_881
  ]
  Properties:
  [
    Image: 'WAREHOUSE'
    Title: '计划库存存档'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_MatrixEditorTable.def
@@ -49,7 +49,7 @@
            DataType: 'InterfaceDataset'
            Description: "( search.Generation() = '<All>' or object.Product_MP().Generation() = search.Generation() ) and ( search.MqbMlb() = '<All>' or object.Product_MP().MQBMLB() = search.MqbMlb() ) and ( search.Power() = '<All>' or object.Product_MP().Power() = search.Power() )"
            FilterArguments: 'search:QMacroPlanner::FormAssemblyOnlinePlanVersion.dhSearch'
            FixedFilter: "( search.Product() = '<All>' or object.ProductID() = search.Product() ) and ( search.ProductionLine() = '<All>' or object.ProductionLine() = search.ProductionLine() )"
            FixedFilter: "( search.Product() = '<All>' or object.ProductID() = search.Product() ) and ( search.ProductionLine() = '<All>' or object.ProductionLine() = search.ProductionLine() ) and ( search.Unit() = '<All>' or object.Unit() = search.Unit() )"
            Source: 'InterfaceDataset'
            Taborder: 0
            Transformation: 'OfflinePlanArchiveVersion.Row'
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelHeader.def
@@ -14,6 +14,7 @@
  ]
  Properties:
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 1
  ]
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/_ROOT_Component_FormOfflinePlanArchive.def
@@ -38,6 +38,6 @@
  Properties:
  [
    Image: 'PAPER_JET'
    Title: 'Offline plan archive'
    Title: '下线计划存档'
  ]
}
_Main/UI/MacroPlannerWebApp/Views/Inventory_plan_archive_report.vw
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,77 @@
Quintiq file version 2.0
{
  viewcontents
  {
    forms
    {
      form_FormInventoryPlanArchive
      {
        title: 'QMacroPlanner::FormInventoryPlanArchive'
        shown: true
        componentID: 'QMacroPlanner::FormInventoryPlanArchive'
        layout
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 15
          columnPosition: 1
          columnSpan: 12
        }
        components
        {
          FormInventoryPlanArchive_PanelHeader
          {
            sizeRatio: 1
          }
          FormInventoryPlanArchive_PanelUnit
          {
            sizeRatio: 1
          }
          FormInventoryPlanArchive_PanelProduct
          {
            sizeRatio: 1
          }
          FormInventoryPlanArchive_PanelPeriod
          {
            sizeRatio: 1
          }
          FormInventoryPlanArchive_PanelTimeUnit
          {
            sizeRatio: 1
          }
          FormInventoryPlanArchive_PanelOperation
          {
            sizeRatio: 1
          }
          FormInventoryPlanArchive_PanelTable
          {
            sizeRatio: 1
          }
          FormInventoryPlanArchive_MatrixEditorTable
          {
            totalHeaderWidth: 200
            attributeHeaderWidthRatio: 0.6
            nameHeaderWidthRatio: 0.4
            columnWidth: 100
            horizontalGrid: true
            verticalGrid: true
            gridColor: '#c4c4c4'
          }
        }
      }
    }
    userconfigurableinformation
    {
    }
    page: ''
    group: ''
    index: 31
    image: 'WAREHOUSE'
    description: ''
  }
  formatversion: 2
  id: 'Inventory_plan_archive_report'
  name: 'Inventory plan archive report'
  isglobal: false
  isroot: true
}