xiaoding721
2024-11-15 b342c8113d4add6f916f732d45c04fb57625f4fe
修复一些bug,调整页面布局
已添加6个文件
已修改16个文件
已删除10个文件
1103 ■■■■■ 文件已修改
_Main/BL/Type_ExportXMLData/Function_CalcPriority.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ExportXMLData/Method_CalculatePriority.qbl 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ExportXMLManager/Function_CalcFinalXML.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ExportXMLManager/StaticMethod_AwaitLocalTableXMLData#530.qbl 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ExportXMLManager/StaticMethod_AwaitLocalTableXMLData.qbl 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ExportXMLManager/StaticMethod_AwaitShiftPlanXMLData.qbl 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MP_Cell_AnnualPlanReport0/StaticMethod_CreateFullTable.qbl 65 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MP_Cell_ScheduleSummary0/StaticMethod_Create.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MP_Cell_ScheduleSummary0/StaticMethod_CreateFullTable.qbl 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MP_Cell_ScheduleSummary0/StaticMethod_CreateTempTable.qbl 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ShiftPlan/Method_GetWorkHours.qbl 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/Sys/Repr/Global/LocalCell_Default.qrp 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupArchiveReport.def 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupArchiveReport_ButtonArchivePackagingPlan.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupArchiveReport_ButtonArchiveTransferPlan_.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelFilter#490.def 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_490_ButtonClearFilter_OnClick.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_490_ButtonFilter676_OnClick.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_490_ddslGeneration_OnCreated.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_490_ddslMQBMLB_OnCreated.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_490_ddslPower_OnCreated.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormArchivePackagingPlan/_ROOT_Component_FormArchivePackagingPlan.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormArchiveTransferPlan/_ROOT_Component_FormArchiveTransferPlan.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_PanelFilter.def 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelFilter_ButtonClearFilter_OnClick.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelFilter_ButtonFilter458_OnClick.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelFilter_ddslGeneration_OnCreated.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelFilter_ddslMQBMLB_OnCreated.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelFilter_ddslPower_OnCreated.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Views/ArchivePackagingPlan.vw 289 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Views/ArchiveTransferPlan.vw 201 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Views/DispatchShiftSchedulingInformation.vw 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ExportXMLData/Function_CalcPriority.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
Quintiq file version 2.0
#parent: #root
Function CalcPriority
{
  TextBody:
  [*
    // Akari Nov-15-2024 (created)
    value := this.CalculatePriority();
    this.Priority( value );
  *]
}
_Main/BL/Type_ExportXMLData/Method_CalculatePriority.qbl
@@ -1,6 +1,6 @@
Quintiq file version 2.0
#parent: #root
Method CalculatePriority () as Number
Method CalculatePriority () const declarative as Number
{
  TextBody:
  [*
@@ -11,43 +11,50 @@
      priority := 1 ;
    }else if( element.LikeUserLocale( "<name>产线</name>" )){
      priority := 2 ;
    }else if( element.LikeUserLocale( "<name>    </name>" )){
    }else if( element.LikeUserLocale( "<name>Unit</name>" )){
      priority := 3 ;
    }else if( element.LikeUserLocale( "<name>Attribute</name>" )){
    }else if( element.LikeUserLocale( "<name>    </name>" )){
      priority := 4 ;
    }else if( element.LikeUserLocale( "<name>产地</name>" )){
    }else if( element.LikeUserLocale( "<name>Attribute</name>" )){
      priority := 5 ;
    }else if( element.LikeUserLocale( "<name>车型</name>" )){
    }else if( element.LikeUserLocale( "<name>产地</name>" )){
      priority := 6 ;
    }else if( element.LikeUserLocale( "<name>发动机零件号</name>" )){
    }else if( element.LikeUserLocale( "<name>车型</name>" )){
      priority := 7 ;
    }else if( element.LikeUserLocale( "<name>发动机四位码</name>" )){
    }else if( element.LikeUserLocale( "<name>发动机零件号</name>" )){
      priority := 8 ;
    }else if( element.LikeUserLocale( "<name>生产天数</name>" )){
    }else if( element.LikeUserLocale( "<name>发动机四位码</name>" )){
      priority := 9 ;
    }else if( element.LikeUserLocale( "<name>加班/欠工时长</name>" )){
    }else if( element.LikeUserLocale( "<name>生产天数</name>" )){
      priority := 10 ;
    }else if( element.LikeUserLocale( "<name>平日加班时长</name>" )){
    }else if( element.LikeUserLocale( "<name>加班/欠工时长</name>" )){
      priority := 11 ;
    }else if( element.LikeUserLocale( "<name>休息日加班时长</name>" )){
    }else if( element.LikeUserLocale( "<name>平日加班时长</name>" )){
      priority := 12 ;
    }else if( element.LikeUserLocale( "<name>节假日加班时长</name>" )){
    }else if( element.LikeUserLocale( "<name>休息日加班时长</name>" )){
      priority := 13 ;
    }else if( element.LikeUserLocale( "<name>欠工时长</name>" )){
    }else if( element.LikeUserLocale( "<name>节假日加班时长</name>" )){
      priority := 14 ;
    }else if( element.LikeUserLocale( "<name>加班/欠工费</name>" )){
    }else if( element.LikeUserLocale( "<name>欠工时长</name>" )){
      priority := 15 ;
    }else if( element.LikeUserLocale( "<name>平日加班费</name>" )){
    }else if( element.LikeUserLocale( "<name>加班/欠工费</name>" )){
      priority := 16 ;
    }else if( element.LikeUserLocale( "<name>休息日加班费</name>" )){
    }else if( element.LikeUserLocale( "<name>平日加班费</name>" )){
      priority := 17 ;
    }else if( element.LikeUserLocale( "<name>节假日加班费</name>" )){
    }else if( element.LikeUserLocale( "<name>休息日加班费</name>" )){
      priority := 18 ;
    }else if( element.LikeUserLocale( "<name>欠工费</name>" )){
    }else if( element.LikeUserLocale( "<name>节假日加班费</name>" )){
      priority := 19 ;
    }else if( element.LikeUserLocale( "<name>欠工费</name>" )){
      priority := 20 ;
    }else{
      //  <column><name>2020/04/01</name>
      priority := [Number]element.SubString( 14,10 ).ReplaceAll( "/","") ;
      try{
        //  <column><name>2020/04/01</name>
        priority := [Number]element.SubString( 14,10 ).ReplaceAll( "/","");
      }onerror{
        //  <column><name>2020-04-01</name>
        priority := [Number]element.SubString( 14,10 ).ReplaceAll( "-","");
      }
    }
    return priority;
  *]
_Main/BL/Type_ExportXMLManager/Function_CalcFinalXML.qbl
@@ -7,7 +7,7 @@
    // rislai Jun-20-2024 (created)
    xmlTemplate := '<?xml version="1.0" encoding="UTF-16"?><table><name>'+ this.SheetName() +'</name>';
    
    datas := selectsortedset( this,ExportXMLData,data,true,data.Priority() );
    datas := selectsortedset( this,ExportXMLData,data,data.Priority() );
    
    traverse( datas,Elements,data ){
      xmlTemplate := xmlTemplate + data.XML(); 
_Main/BL/Type_ExportXMLManager/StaticMethod_AwaitLocalTableXMLData#530.qbl
@@ -16,12 +16,7 @@
    }
    manager := owner.ExportXMLManager( relnew,Name := tableName,SheetName := sheetName );
    traverse( columnXMLData,Elements,element,element.TrimBoth() <> "" ){
       data := manager.ExportXMLData( relnew, XML := element);
       try{
         data.Priority( data.CalculatePriority( ));
       }onerror{
         info( element );
       }
       manager.ExportXMLData( relnew, XML := element);
    }
  *]
}
_Main/BL/Type_ExportXMLManager/StaticMethod_AwaitLocalTableXMLData.qbl
@@ -15,12 +15,7 @@
    }
    manager := owner.ExportXMLManager( relnew,Name := tableName,SheetName := tableName );
    traverse( columnXMLData,Elements,element,element.TrimBoth() <> "" ){
       data := manager.ExportXMLData( relnew, XML := element);
       try{
         data.Priority( data.CalculatePriority( ));
       }onerror{
         info( element );
       }
       manager.ExportXMLData( relnew, XML := element);
    }
  *]
}
_Main/BL/Type_ExportXMLManager/StaticMethod_AwaitShiftPlanXMLData.qbl
@@ -15,14 +15,7 @@
      manager.ExportXMLData( relflush );
    }
    traverse( columnXMLData,Elements,element,element.TrimBoth() <> "" ){
       data := manager.ExportXMLData( relnew, XML := element);
       if( element.LikeUserLocale( "Unit" )){
         data.Priority( 1 );
       }else if( element.LikeUserLocale( "Attribute" )){
         data.Priority( 2 );
       }else{
         data.Priority( [Number]element.SubString( 14,10 ).ReplaceAll( "-","") );
       }
       manager.ExportXMLData( relnew, XML := element);
    }
  *]
}
_Main/BL/Type_MP_Cell_AnnualPlanReport0/StaticMethod_CreateFullTable.qbl
@@ -34,17 +34,18 @@
    }
    
    traverse( tables,Elements.ArchiveRow,row ){
       localRowHandle := localRowIndexTree.GetHandle( row.ProductID() + row.ProductionLine() );
       localRowIndex := guard( localRowIndexTree.Root().Child( localRowHandle ),null( NamedValue ));
       localRow := null( LocalRow );
       if( isnull( localRowIndex )){
         localRow := localTable.LocalRow( relnew,CustomName := row.Name(),ProductID := row.ProductID(),ProductionLine := row.ProductionLine(),Index := localTable.GetRowIndexCache() );
         localRows.Add( localRow );
         localRowIndexTree.Root().AddChild( localRowHandle,localRows.Size() - 1 );
       }else{
         localRow := localRows.Element( localRowIndex.GetValueAsNumber() );
       }
      localRow := null( LocalRow );
      {
        localRowHandle := localRowIndexTree.GetHandle( row.ProductID() + row.ProductionLine() );
        localRowIndex := guard( localRowIndexTree.Root().Child( localRowHandle ),null( NamedValue ));
        if( isnull( localRowIndex )){
          localRow := localTable.LocalRow( relnew,CustomName := row.Name(),ProductID := row.ProductID(),ProductionLine := row.ProductionLine(),Index := localTable.GetRowIndexCache() );
          localRows.Add( localRow );
          localRowIndexTree.Root().AddChild( localRowHandle,localRows.Size() - 1 );
        }else{
          localRow := localRows.Element( localRowIndex.GetValueAsNumber() );
        }
      }
      
       traverse( row,ArchiveCell.astype( ArchiveCell_AnnualPlanReport ),cell ){
         localColumnHandle := localColumnIndexTree.GetHandle( cell.ArchiveColumn().Date().AsQUILL());
@@ -67,33 +68,37 @@
       }
    }
    
    //owner := maxselect( owners,Elements,element,element.StartOfPlanning() );
    traverse( macroPlan,Product_MP.ProductInStockingPoint_MP,pisp_mp ){
      pispippls := selectset( pisp_mp,ProductInStockingPointInPeriod.astype( ProductInStockingPointInPeriodPlanningLeaf ),pispippl,
                              pispippl.Period_MP().StartDate() > endDate 
                              and pispippl.Period_MP().TimeUnit() = Translations::MP_GlobalParameters_Day());
    
      if( pispippls.Size() <> 0 ){
        localRowHandle := localRowIndexTree.GetHandle( pisp_mp.ProductID() + pisp_mp.StockingPoint_MP().Unit().Name() );
        localRowIndex := guard( localRowIndexTree.Root().Child( localRowHandle ),null( NamedValue ));
        localRow := null( LocalRow );
        if( isnull( localRowIndex )){
          localRow := localTable.LocalRow( relnew,CustomName := pisp_mp.Name(),ProductID := pisp_mp.ProductID(),ProductionLine := pisp_mp.StockingPoint_MP().Unit().Name(),Index := localTable.GetRowIndexCache() );
          localRows.Add( localRow );
          localRowIndexTree.Root().AddChild( localRowHandle,localRows.Size() - 1 );
        }else{
          localRow := localRows.Element( localRowIndex.GetValueAsNumber() );
        }
        traverse( pispippls,Elements,pispippl ){
          columnHandle := localColumnIndexTree.GetHandle( pispippl.Period_MP().StartDate().AsQUILL() );
          columnIndex := guard( localColumnIndexTree.Root().Child( columnHandle ),null( NamedValue ));
          column := null( LocalColumn );
          if( not isnull( columnIndex )){
            column := localColumns.Element( columnIndex.GetValueAsNumber() );
        {
          localRowHandle := localRowIndexTree.GetHandle( pisp_mp.ProductID() + pisp_mp.StockingPoint_MP().Unit().Name() );
          localRowIndex := guard( localRowIndexTree.Root().Child( localRowHandle ),null( NamedValue ));
          if( isnull( localRowIndex )){
            localRow := localTable.LocalRow( relnew,CustomName := pisp_mp.Name(),ProductID := pisp_mp.ProductID(),ProductionLine := pisp_mp.StockingPoint_MP().Unit().Name(),Index := localTable.GetRowIndexCache() );
            localRows.Add( localRow );
            localRowIndexTree.Root().AddChild( localRowHandle,localRows.Size() - 1 );
          }else{
            column := localTable.LocalColumn( relnew,CustomDate := pispippl.Period_MP().StartDate() ,TimeUnit := "Day");
            localColumns.Add( column );
            localColumnIndexTree.Root().AddChild( columnHandle,localColumns.Size() - 1 );
            localRow := localRows.Element( localRowIndex.GetValueAsNumber() );
          }
        }
        traverse( pispippls,Elements,pispippl ){
          column := null( LocalColumn );
          {
            columnHandle := localColumnIndexTree.GetHandle( pispippl.Period_MP().StartDate().AsQUILL() );
            columnIndex := guard( localColumnIndexTree.Root().Child( columnHandle ),null( NamedValue ));
            if( not isnull( columnIndex )){
              column := localColumns.Element( columnIndex.GetValueAsNumber() );
            }else{
              column := localTable.LocalColumn( relnew,CustomDate := pispippl.Period_MP().StartDate() ,TimeUnit := "Day");
              localColumns.Add( column );
              localColumnIndexTree.Root().AddChild( columnHandle,localColumns.Size() - 1 );
            }
          }
          
          localCellHandle := localCellIndexTree.GetHandle( localRow.ProductID() + localRow.ProductionLine() + column.CustomDate().AsQUILL() + column.TimeUnit() );
_Main/BL/Type_MP_Cell_ScheduleSummary0/StaticMethod_Create.qbl
@@ -59,7 +59,7 @@
          
          
          if( not isnull( workHours )){
            capacity := workDay * throughput //* workHours.Capacity().HoursAsReal()
            capacity := unitPeriodTime.ShiftPlan().GetWorkHours() * throughput //* workHours.Capacity().HoursAsReal()
          }
          
          isFirstWeekData := true;
_Main/BL/Type_MP_Cell_ScheduleSummary0/StaticMethod_CreateFullTable.qbl
@@ -83,7 +83,7 @@
                              cell.ArchiveColumn().CustomDate() >= localColumn.CustomDate() and 
                              cell.ArchiveColumn().CustomDate() < localColumn.CustomDate().StartOfNextMonth() );
          
          isFuture := macroPlan.StartOfPlanning().Date() < localColumn.CustomDate();
          isFuture := macroPlan.StartOfPlanning().Date() <= localColumn.CustomDate();
          
          workingDay := 0;
          capacity := 0.0;
@@ -97,15 +97,18 @@
              scheduleSummaryOutputData := scheduleSummaryOutputDatas.Element( scheduleSummaryOutputDataIndex.GetValueAsNumber() );
              output := scheduleSummaryOutputData.Output();
            }
          }
    
          traverse( archiveCells,Elements,cell ){
          }
          traverse( archiveCells,Elements,cell,cell.IsFristWeekData() ){
             workingDay := workingDay + cell.WorkingDay();
             capacity := capacity + cell.Capacity();
             if( cell.ShiftPattern() <> "" ){
               shiftPatterns.Add( cell.ShiftPattern() );
             }
          }
          localCell := null( LocalCell_ScheduleSummary );
          {
            localCellHandle := localCellIndexTree.GetHandle( row.Name() + localColumn.CustomDate().AsQUILL() );
@@ -150,21 +153,24 @@
          capacity := 0.0;
          output := 0.0;
          shiftPatterns := construct( Strings );
          isFuture := macroPlan.StartOfPlanning().Date() < localColumn.CustomDate();
          isFuture := macroPlan.StartOfPlanning().Date() <= localColumn.CustomDate();
          
          if( isFuture ){
            unitHandle := unitIndexTree.GetHandle( row.CustomName() );
            unitIndex := guard( unitIndexTree.Root().Child( unitHandle ),null( NamedValue ));
            if( not isnull( unitIndex )){
              unit := units.Element( unitIndex.GetValueAsNumber() );
              output := sum( unit,StockingPoint_MP.ProductInStockingPoint_MP.ProductInStockingPointInPeriod,pispip,
                             pispip.Period_MP().StartDate() >= localColumn.CustomDate() and
                             pispip.Period_MP().StartDate() < localColumn.CustomDate().StartOfNextMonth() and
                             pispip.Period_MP().TimeUnit() = "Day",
                             pispip.NewSupplyProductionQuantity());
              output := sum( unit,StockingPoint_MP.ProductInStockingPoint_MP.ProductInStockingPointInPeriod.astype( ProductInStockingPointInPeriodPlanningLeaf ).NewSupply,newSupply,
                             newSupply.PeriodTask_MP().istype( PeriodTaskOperation ) and not newSupply.PeriodTask_MP().astype( PeriodTaskOperation ).IsSupplier() and // åˆ—表过滤条件:FormProductionPlanDetails
                             newSupply.ProductInStockingPointInPeriodPlanning().Period_MP().StartDate() >= localColumn.CustomDate() and
                             newSupply.ProductInStockingPointInPeriodPlanning().Period_MP().StartDate() < localColumn.CustomDate().StartOfNextMonth() and
                             newSupply.ProductInStockingPointInPeriodPlanning().Period_MP().TimeUnit() = "Day",
                             newSupply.Quantity());
            }
          }
    
          }
          traverse( archiveCells,Elements,cell ){
             workingDay := workingDay + cell.WorkingDay();
             capacity := capacity + cell.Capacity();
@@ -172,6 +178,7 @@
               shiftPatterns.Add( cell.ShiftPattern() );
             }
          }
          localCell := null( LocalCell_ScheduleSummary );
          {
            localCellHandle := localCellIndexTree.GetHandle( row.CustomName() + localColumn.CustomDate().AsQUILL() );
@@ -194,11 +201,8 @@
       }
    }
    
    traverse( localTable,LocalRow.LocalCell.astype( LocalCell_ScheduleSummary ),cell ){
      cell.Capacity( cell.Capacity() / tables.Size() );
      cell.Output( cell.Output() / tables.Size() );
    traverse( localTable,LocalRow.LocalCell.astype( LocalCell_ScheduleSummary ),cell,cell.WorkingDay() <> 0 ){
      cell.Capacity( cell.Capacity() / cell.WorkingDay() );
    }
    
    AsyncFlag::Success( recycleBin,ArchiveCell_ScheduleSummary::GetTableName() );
_Main/BL/Type_MP_Cell_ScheduleSummary0/StaticMethod_CreateTempTable.qbl
@@ -54,7 +54,7 @@
          
          
          if( not isnull( workHours )){
            capacity := workDay * throughput //* workHours.Capacity().HoursAsReal()
            capacity := unitPeriodTime.ShiftPlan().GetWorkHours()* throughput //* workHours.Capacity().HoursAsReal()
          }
          
          row.LocalCell( relnew,LocalCell_ScheduleSummary,LocalColumn := column,
@@ -66,11 +66,9 @@
      }
    }
    
    traverse( table,LocalColumn,column,column.LocalCell( relsize ) = 0 ){
      column.Delete(); 
    }
    
    return table;
  *]
_Main/BL/Type_ShiftPlan/Method_GetWorkHours.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
Quintiq file version 2.0
#parent: #root
Method GetWorkHours () const declarative remote as Real
{
  TextBody:
  [*
    // Akari Sep-6-2024 (created)
    result := 0.0;
    if( this.Outcome() = "1" ){
      result := 8.0;
    }else if( this.Outcome() = "2" ){
      result := 16.0;
    }else if(this.Outcome() = "9+9"){
      result := 18.0;
    }else if(this.Outcome() = "10+10"){
      result := 20.0;
    }else if(this.Outcome() = "11+11"){
      result := 22.0;
    }else if(this.Outcome() = "1(9)" or this.Outcome() = "1(9)"){
      result := 9.0;
    }else if(this.Outcome() = "1(10)" or this.Outcome() = "1(10)"){
      result := 10.0;
    }else if(this.Outcome() = "3"){
      result := 22.5;
    }
    return result;
  *]
}
_Main/Sys/Repr/Global/LocalCell_Default.qrp
@@ -10,7 +10,7 @@
    ]
    DataRepresentation.Default
    {
      FormatString: 'N(Dec(1))'
      FormatString: 'N(Dec(0))'
      InheritFormatting: false
    }
  }
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupArchiveReport.def
@@ -60,6 +60,28 @@
        Taborder: 4
      ]
    }
    Component ButtonArchivePackagingPlan
    {
      #keys: '[414996.1.236261009]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'PRODUCT'
        Label: 'Archive packaging plan'
        Taborder: 5
      ]
    }
    Component ButtonArchiveTransferPlan
    {
      #keys: '[414996.1.236261022]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'TRUCK2_BLUE'
        Label: 'Archive transfer plan'
        Taborder: 6
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupArchiveReport_ButtonArchivePackagingPlan.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: ActionBarGroupArchiveReport/ButtonArchivePackagingPlan
Response OnClick () id:Response_MacroPlanner_ActionBarGroupArchiveReport_ButtonArchivePackagingPlan_OnClick
{
  #keys: '[414996.1.236261208]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      // Open view
      ApplicationMacroPlanner.OpenView( 'ArchivePackagingPlan', this );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupArchiveReport_ButtonArchiveTransferPlan_.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: ActionBarGroupArchiveReport/ButtonArchiveTransferPlan
Response OnClick () id:Response_MacroPlanner_ActionBarGroupArchiveReport_ButtonArchiveTransferPlan_OnClick
{
  #keys: '[414996.1.236261219]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      // Open view
      ApplicationMacroPlanner.OpenView( 'ArchiveTransferPlan', this );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelFilter#490.def
@@ -5,36 +5,6 @@
  BaseType: 'WebPanel'
  Children:
  [
    Component ddslGeneration
    {
      #keys: '[414996.1.211223982]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        Label: 'Generation'
        Taborder: 0
      ]
    }
    Component ddslMQBMLB
    {
      #keys: '[414996.1.211223983]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        Label: 'MQB/MLB'
        Taborder: 1
      ]
    }
    Component ddslPower
    {
      #keys: '[414996.1.211223984]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        Label: '功率'
        Taborder: 2
      ]
    }
    Component dsStartDate
    {
      #keys: '[414996.1.211223985]'
@@ -42,7 +12,7 @@
      Properties:
      [
        Label: 'Start Date'
        Taborder: 3
        Taborder: 0
      ]
    }
    Component dsEndDate
@@ -53,17 +23,7 @@
      [
        Date: 9999-12-31
        Label: 'End Date'
        Taborder: 5
      ]
    }
    Component ButtonFilter676
    {
      #keys: '[414996.1.211223987]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: '过滤'
        Taborder: 7
        Taborder: 2
      ]
    }
    Component dhStartDate
@@ -73,7 +33,7 @@
      Databinding: 'Date*'
      Properties:
      [
        Taborder: 4
        Taborder: 1
      ]
    }
    Component dhEndDate
@@ -83,17 +43,7 @@
      Databinding: 'Date*'
      Properties:
      [
        Taborder: 6
      ]
    }
    Component ButtonClearFilter
    {
      #keys: '[414996.1.211223990]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: 'Clear'
        Taborder: 8
        Taborder: 3
      ]
    }
  ]
_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_490_ButtonClearFilter_OnClick.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_490_ButtonFilter676_OnClick.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_490_ddslGeneration_OnCreated.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_490_ddslMQBMLB_OnCreated.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_490_ddslPower_OnCreated.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormArchivePackagingPlan/_ROOT_Component_FormArchivePackagingPlan.def
@@ -12,6 +12,7 @@
  ]
  Properties:
  [
    Image: 'PRODUCT'
    Title: 'Archive Packaging Plan'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormArchiveTransferPlan/_ROOT_Component_FormArchiveTransferPlan.def
@@ -12,6 +12,7 @@
  ]
  Properties:
  [
    Image: 'TRUCK2_BLUE'
    Title: 'Archive Transfer Plan'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_PanelFilter.def
@@ -5,36 +5,6 @@
  BaseType: 'WebPanel'
  Children:
  [
    Component ddslGeneration
    {
      #keys: '[414996.1.211222325]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        Label: 'Generation'
        Taborder: 0
      ]
    }
    Component ddslMQBMLB
    {
      #keys: '[414996.1.211222326]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        Label: 'MQB/MLB'
        Taborder: 1
      ]
    }
    Component ddslPower
    {
      #keys: '[414996.1.211222327]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        Label: '功率'
        Taborder: 2
      ]
    }
    Component dsStartDate
    {
      #keys: '[414996.1.211222328]'
@@ -42,7 +12,7 @@
      Properties:
      [
        Label: 'Start Date'
        Taborder: 3
        Taborder: 0
      ]
    }
    Component dsEndDate
@@ -53,17 +23,7 @@
      [
        Date: 9999-12-31
        Label: 'End Date'
        Taborder: 5
      ]
    }
    Component ButtonFilter458
    {
      #keys: '[414996.1.211222330]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: '过滤'
        Taborder: 7
        Taborder: 2
      ]
    }
    Component dhStartDate
@@ -73,7 +33,7 @@
      Databinding: 'Date*'
      Properties:
      [
        Taborder: 4
        Taborder: 1
      ]
    }
    Component dhEndDate
@@ -83,17 +43,7 @@
      Databinding: 'Date*'
      Properties:
      [
        Taborder: 6
      ]
    }
    Component ButtonClearFilter
    {
      #keys: '[414996.1.211222333]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: 'Clear'
        Taborder: 8
        Taborder: 3
      ]
    }
  ]
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelFilter_ButtonClearFilter_OnClick.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelFilter_ButtonFilter458_OnClick.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelFilter_ddslGeneration_OnCreated.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelFilter_ddslMQBMLB_OnCreated.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelFilter_ddslPower_OnCreated.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Views/ArchivePackagingPlan.vw
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,289 @@
Quintiq file version 2.0
{
  viewcontents
  {
    forms
    {
      form_FormArchivePackagingPlan
      {
        title: 'QMacroPlanner::FormArchivePackagingPlan'
        shown: true
        componentID: 'QMacroPlanner::FormArchivePackagingPlan'
        layout
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 25
          columnPosition: 1
          columnSpan: 11
        }
        components
        {
          FormArchivePackagingPlan_PanelArchivePackagingPlan
          {
            sizeRatio: 1
          }
          FormArchivePackagingPlan_PanelArchivePackagingPlan922
          {
            sizeRatio: 1
          }
          FormArchivePackagingPlan_MatrixEditorArchivePackagingPlan
          {
            gridColor: '#c4c4c4'
            totalHeaderWidth: 200
            attributeHeaderWidthRatio: 0.6
            nameHeaderWidthRatio: 0.4
            columnWidth: 100
            horizontalGrid: true
            verticalGrid: true
            backendState
            {
              componentId: 'QMacroPlanner::FormArchivePackagingPlan.MatrixEditorArchivePackagingPlan'
              state
              {
                cells
                {
                  attributes
                  {
                    attribute_CC_PackagingInventory
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 0
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'CC_PackagingInventory'
                    }
                    attribute_CC_UnpackagedInventory
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 1
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'CC_UnpackagedInventory'
                    }
                    attribute_EndingInventory
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 2
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'EndingInventory'
                    }
                    attribute_InitialPackagingInventory
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 3
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'InitialPackagingInventory'
                    }
                    attribute_NetDemand
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 4
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'NetDemand'
                    }
                    attribute_NewSupply
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 5
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'NewSupply'
                    }
                    attribute_Out
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 6
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'Out'
                    }
                    attribute_Package
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 7
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'Package'
                    }
                    attribute_PackagingInventory
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 8
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'PackagingInventory'
                    }
                    attribute_TransferIn
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 9
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'TransferIn'
                    }
                    attribute_UnpackagedInventory
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 10
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'UnpackagedInventory'
                    }
                    attribute_Unpacking
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 11
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'Unpacking'
                    }
                  }
                }
                columns
                {
                  sorting
                  {
                    criteria: "datamember:'StartDate'"
                  }
                }
                rows
                {
                  sorting
                  {
                    criteria: "datamember:'ProductID'"
                  }
                }
              }
            }
          }
        }
      }
      form_FormOptimizerPuzzles
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 0
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: 'Name'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: 'Description'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI
      {
        title: 'KPI Dashboard'
        shown: true
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 1
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: 'PanelKPISelection'
          }
          FormKPI_PanelKPIDashboard
          {
            sizeRatio: 1
          }
          FormKPI_PanelKPISelection
          {
            sizeRatio: 1
          }
          FormKPI_ListKPISelection
          {
            QuillViewData
            {
              Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
            }
          }
          FormKPI_DataSetLevelKPISelection
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: 'Name'
              index: 1
              subtotals: ''
              width: 200
            }
          }
        }
      }
    }
    userconfigurableinformation
    {
    }
    index: 0
    image: 'PRODUCT'
    page: ''
    group: ''
    description: ''
  }
  formatversion: 2
  id: 'ArchivePackagingPlan'
  name: 'ArchivePackagingPlan'
  isglobal: false
  isroot: true
}
_Main/UI/MacroPlannerWebApp/Views/ArchiveTransferPlan.vw
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,201 @@
Quintiq file version 2.0
{
  viewcontents
  {
    forms
    {
      form_FormArchiveTransferPlan
      {
        title: 'QMacroPlanner::FormArchiveTransferPlan'
        shown: true
        componentID: 'QMacroPlanner::FormArchiveTransferPlan'
        layout
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 24
          columnPosition: 1
          columnSpan: 10
        }
        components
        {
          FormArchiveTransferPlan_PanelArchiveTransferPlan
          {
            sizeRatio: 1
          }
          FormArchiveTransferPlan_PanelArchiveTransferPlan515
          {
            sizeRatio: 1
          }
          FormArchiveTransferPlan_MatrixEditorArchiveTransferPlan
          {
            gridColor: '#c4c4c4'
            totalHeaderWidth: 200
            attributeHeaderWidthRatio: 0.6
            nameHeaderWidthRatio: 0.4
            columnWidth: 100
            horizontalGrid: true
            verticalGrid: true
            backendState
            {
              componentId: 'QMacroPlanner::FormArchiveTransferPlan.MatrixEditorArchiveTransferPlan'
              state
              {
                cells
                {
                  attributes
                  {
                    attribute_Value
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 0
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'Value'
                    }
                  }
                }
                columns
                {
                  sorting
                  {
                    criteria: "datamember:'ColumnDate'"
                  }
                }
                rows
                {
                  sorting
                  {
                    criteria: "datamember:'SourceStockpoingPointID';datamember:'TargetStockpoingPointID';datamember:'ProductID'"
                  }
                }
              }
            }
          }
        }
      }
      form_FormOptimizerPuzzles
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 0
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: 'Name'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: 'Description'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI
      {
        title: 'KPI Dashboard'
        shown: true
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 1
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: 'PanelKPISelection'
          }
          FormKPI_PanelKPIDashboard
          {
            sizeRatio: 1
          }
          FormKPI_PanelKPISelection
          {
            sizeRatio: 1
          }
          FormKPI_ListKPISelection
          {
            QuillViewData
            {
              Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
            }
          }
          FormKPI_DataSetLevelKPISelection
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: 'Name'
              index: 1
              subtotals: ''
              width: 200
            }
          }
        }
      }
    }
    userconfigurableinformation
    {
    }
    image: 'TRUCK2_BLUE'
    page: ''
    group: ''
    index: 0
    description: ''
  }
  formatversion: 2
  id: 'ArchiveTransferPlan'
  name: 'ArchiveTransferPlan'
  isglobal: false
  isroot: true
}
_Main/UI/MacroPlannerWebApp/Views/DispatchShiftSchedulingInformation.vw
@@ -13,9 +13,9 @@
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 6
          columnPosition: 6
          columnSpan: 4
          rowSpan: 26
          columnPosition: 1
          columnSpan: 11
        }
        components
        {
@@ -494,10 +494,10 @@
    userconfigurableinformation
    {
    }
    index: 0
    image: 'SKIN_TIGER'
    page: ''
    group: ''
    index: 0
    description: ''
  }
  formatversion: 2