limj
2023-10-07 8d37eebd5b4e52c12b25e90ca7ce59439798f14e
Merge branch 'dev' of http://47.101.211.7:10101/r/TIANMA_JITUAN into dev_lmj
已添加21个文件
已修改16个文件
878 ■■■■■ 文件已修改
_Main/BL/Relations/Relation_OrganCode_BusinessType_BusinessType_OrganCode.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_BusinessType/Attribute_BusinessTypeName.qbl 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_BusinessType/Attribute_DisplayType.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_BusinessType/Attribute_ScenarioName.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_MappingActualPISPIPData.qbl 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_MappingCustomerOrderData.qbl 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_MappingExternalSupplyData.qbl 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_MappingForecastData.qbl 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_MappingOperationBOMData.qbl 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_MappingOperationCostData.qbl 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_MappingOperationData.qbl 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_MappingProductData.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_MappingSalesSegmentData.qbl 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_MappingUnitData.qbl 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OrganCode/Attribute_OrganCodeName.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OrganCode/_ROOT_Type_OrganCode.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogBusinessType/Component_pnlContent.def 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Component_pnlActions.def 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Component_pnlContent.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_ClickBtnOk.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_Edit.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_New.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Response_pnlActions_btnCancel_OnClick.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Response_pnlActions_btnOk_OnClick.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/_ROOT_Component_DialogOrganCode.def 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form367/Component_ListBusinessType.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form367/Component_ListOrganCode.def 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form367/Component_PanelBusinessType.def 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listActionBarPageOrganCode.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listContextMenuBusinessType.def 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listContextMenuBusinessType655.def 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListBusinessType_MenuNewOrganCode_OnClick.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListOrganCode_MenuDelete267_OnClick.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListOrganCode_MenuEdit526_OnClick.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form367/_ROOT_Component_FormBusinessType#367.def 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Views/Business_Type_Maintain.vw 351 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_OrganCode_BusinessType_BusinessType_OrganCode.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation OrganCode_BusinessType_BusinessType_OrganCode
{
  #keys: '1[412960.0.276650038]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide BusinessType
  {
    #keys: '3[412960.0.276650040][412960.0.276650039][412960.0.276650041]'
    Cardinality: '0to1'
    ObjectDefinition: OrganCode
    OwningSide: 'Reference'
  }
  RelationSide.RightSide OrganCode
  {
    #keys: '3[412960.0.276650043][412960.0.276650042][412960.0.276650044]'
    Cardinality: '1toN'
    ObjectDefinition: BusinessType
    OwningSide: 'Owned'
  }
}
_Main/BL/Type_BusinessType/Attribute_BusinessTypeName.qbl
@@ -3,5 +3,6 @@
Attribute BusinessTypeName
{
  #keys: '3[414382.0.361554811][414382.0.361554810][414382.0.361554812]'
  Description: '事业部名称'
  ValueType: String
}
_Main/BL/Type_BusinessType/Attribute_DisplayType.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute DisplayType
{
  #keys: '3[412960.0.276650024][412960.0.276650023][412960.0.276650025]'
  Description: '显示类型'
  ValueType: String
}
_Main/BL/Type_BusinessType/Attribute_ScenarioName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ScenarioName
{
  #keys: '3[412960.0.276650011][412960.0.276650010][412960.0.276650012]'
  Description: '场景名称'
  ValueType: String
}
_Main/BL/Type_MacroPlan/Method_MappingActualPISPIPData.qbl
@@ -9,7 +9,12 @@
  TextBody:
  [*
    // renhao Aug-14-2023 (created)
    listtodeal := selectset( globalOTDTable,Global_MappingActualProductInStockingPointInPeriod,actual,actual.ActualInventoryLevelEnd() > 0 );
    organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businessTypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() );
    listtodeal := selectset( globalOTDTable,
                             Global_MappingActualProductInStockingPointInPeriod,
                             actual,
                             ( actual.ActualInventoryLevelEnd() > 0 ) and
                             ( organcodelist.Find( actual.StockingPointID().SubString( 0, 3 ) ) >= 0 ) );
    totalcount := listtodeal.Size();
    info( "ActualPISPIP has " + totalcount.AsQUILL() + " rows in total" );
    
@@ -24,7 +29,7 @@
      if( not isnull(businessTypes)){
      
        for( i :=0 ;i < businessTypes.Size();i++ ){
          businessType := businessTypes.Element( i);
          businessType := businessTypes.Element( i );
          if( product.BusinessType() = businessType and not product.IsCommon()){
            ActualProductInStockingPointInPeriod::CreateOrUpdate( this,
                                                                  actual.ProductID(),
_Main/BL/Type_MacroPlan/Method_MappingCustomerOrderData.qbl
@@ -14,7 +14,12 @@
    if( isnull( businessTypes ) or businessTypes.Size() = 0 ) {
        listToDeal := selectset( globalOTDTable, Global_MappingCustomOrder, item, true );
    } else {
        listToDeal := selectset( globalOTDTable, Global_MappingCustomOrder, item, businessTypes.Find( item.BusinessType() ) <> -1 );
        organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businessTypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() );
        listToDeal := selectset( globalOTDTable,
                                 Global_MappingCustomOrder,
                                 item,
                                 ( businessTypes.Find( item.BusinessType() ) <> -1 ) and
                                 ( organcodelist.Find( item.StockingPointID().SubString( 0, 3 ) ) >= 0 ) );
    }
    queryStartDate := guard( min( this, Period_MP, item, true, item.StartDate() ) - Duration::Days( 30 ), DateTime::MinDateTime() ).Date();
    queryEndDate := guard( max( this, Period_MP, item, true, item.EndDate() ), Date::MaxDate() );
_Main/BL/Type_MacroPlan/Method_MappingExternalSupplyData.qbl
@@ -11,7 +11,13 @@
    // renhao Aug-14-2023 (created)
    queryStartDate := guard( min( this, Period_MP, item, true, item.StartDate() ) - Duration::Days( 30 ), DateTime::MinDateTime() ).Date();
    queryEndDate := guard( max( this, Period_MP, item, true, item.EndDate() ), Date::MaxDate() );
    listtodeal := selectset( globalOTDTable,Global_MappingInventorySupply,externalSupply, externalSupply.UserQuantity()>0 and externalSupply.Date() >= queryStartDate /*and externalSupply.Date() <= queryEndDate*/);
    organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businessTypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() );
    listtodeal := selectset( globalOTDTable,
                             Global_MappingInventorySupply,
                             externalSupply,
                             ( externalSupply.UserQuantity()>0 ) and
                             ( externalSupply.Date() >= queryStartDate ) and
                             ( organcodelist.Find( externalSupply.StockingPointID().SubString( 0, 3 ) ) >= 0 )/*and externalSupply.Date() <= queryEndDate*/);
    totalcount := listtodeal.Size();
    description := "在途在制";
    info( "ExternalSupply has " + totalcount.AsQUILL() + " rows in total" );
@@ -32,7 +38,7 @@
        if( not isnull(businessTypes)){
        
          for( i :=0 ;i < businessTypes.Size();i++ ){
            businessType := businessTypes.Element( i);
            businessType := businessTypes.Element( i );
            if( product.BusinessType() = businessType and not product.IsCommon()){
              InventorySupply::CreateOrUpdate( externalSupply.ID(),
                                               productMP,
_Main/BL/Type_MacroPlan/Method_MappingForecastData.qbl
@@ -14,7 +14,13 @@
    if( isnull( businessTypes ) or businessTypes.Size() = 0 ) {
        listToDeal := selectset( globalOTDTable, Global_MappingForecast, item, item.Quantity() > 0 );
    } else {
        listToDeal := selectset( globalOTDTable, Global_MappingForecast, item, businessTypes.Find( item.BusinessType() ) <> -1 and item.Quantity()>0 );
        organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businessTypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() );
        listToDeal := selectset( globalOTDTable,
                                 Global_MappingForecast,
                                 item,
                                 ( businessTypes.Find( item.BusinessType() ) <> -1 ) and
                                 ( item.Quantity()>0 ) and
                                 ( organcodelist.Find( item.StockingPointID().SubString( 0, 3 ) ) >= 0 ) );
    }
    queryStartDate := guard( min( this, Period_MP, item, true, item.StartDate() ) - Duration::Days( 30 ), DateTime::MinDateTime() ).Date();
    queryEndDate := guard( max( this, Period_MP, item, true, item.EndDate() ), Date::MaxDate() );
_Main/BL/Type_MacroPlan/Method_MappingOperationBOMData.qbl
@@ -14,11 +14,13 @@
    if( isKeyProduct ) {
        keyProductList := selectuniquevalues( globalOTDTable, Global_MappingProduct_MP, item, item.ProductMajorType()="成品" or item.ProductMajorType()="半成品", item.ID() );
    }
    organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businessTypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() );
    bomList := selectsortedset(  globalOTDTable, Global_MappingOperationBOM, item,
                                 ifexpr( isnull( businessTypes ) or businessTypes.Size() = 0, 
                                         true, 
    //                                     businessTypes.Difference( businessTypes.Difference( item.BusinessType().Tokenize( ", " ) ) ).Size() > 0 )
                                         businessTypes.Find( item.BusinessType() ) >= 0 )
                                         ( businessTypes.Find( item.BusinessType() ) >= 0 ) and
                                         ( organcodelist.Find( item.OrganCode() ) >= 0 ) )
    //                             and ifexpr( isKeyProduct, 
    //                                         keyProductList.Size() > 0 and keyProductList.Find( item.ComponentCode() ) >= 0,
    //                                         true )
_Main/BL/Type_MacroPlan/Method_MappingOperationCostData.qbl
@@ -1,6 +1,7 @@
Quintiq file version 2.0
#parent: #root
Method MappingOperationCostData (
  GlobalOTDTable globalOTDTable,
  Strings businesstypes
)
{
@@ -14,7 +15,12 @@
    if( isnull( businesstypes ) or businesstypes.Size() = 0 ) {
        listtodeal := selectset( this, MappingOperation, item, true );
    } else {
        listtodeal := selectset( this, MappingOperation, item, businesstypes.Find( item.BusinessType() ) <> -1 );
        organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businesstypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() );
        listtodeal := selectset( this,
                                 MappingOperation,
                                 item,
                                 ( businesstypes.Find( item.BusinessType() ) <> -1 ) and
                                 ( organcodelist.Find( item.OrganCode() ) >= 0 ) );
    }
    
    // Get the list to deal with max sequence number
_Main/BL/Type_MacroPlan/Method_MappingOperationData.qbl
@@ -11,8 +11,10 @@
    // èŽ·å–æœ‰åºçš„å¾…å¤„ç†è®°å½•
    toDealList := construct( Global_MappingOperations ) ;
    if( not isnull( businessTypes ) and businessTypes.Size() > 0 ) {
        organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businessTypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() );
        toDealList := selectsortedset( globalOTDTable, Global_MappingOperation, item, 
                                       businessTypes.Find( item.BusinessType() ) >= 0,
                                       ( businessTypes.Find( item.BusinessType() ) >= 0 ) and
                                       ( organcodelist.Find( item.OrganCode() ) >= 0 ),
    //                                   businessTypes.Difference( businessTypes.Difference( item.BusinessType().Tokenize( ", " ) ) ).Size() > 0, 
                                       item.SequenceNumber() );
    } else {
_Main/BL/Type_MacroPlan/Method_MappingProductData.qbl
@@ -23,10 +23,10 @@
          }
    } else {
        if( iskeyproduct = true ){
          listToDeal := selectset( globalOTDTable, Global_MappingProduct_MP, item, item.KeyProduct() = true and businesstypes.Find(  item.BusinessType()) >= 0 );
          listToDeal := selectset( globalOTDTable, Global_MappingProduct_MP, item, item.KeyProduct() = true and businesstypes.Find( item.BusinessType() ) >= 0 );
         }
        else{
          listToDeal := selectset( globalOTDTable, Global_MappingProduct_MP, item, businesstypes.Find(  item.BusinessType()) >= 0 );
          listToDeal := selectset( globalOTDTable, Global_MappingProduct_MP, item, businesstypes.Find( item.BusinessType() ) >= 0 );
        }
    }
    totalcount := listToDeal.Size();
_Main/BL/Type_MacroPlan/Method_MappingSalesSegmentData.qbl
@@ -14,7 +14,10 @@
    if( isnull( businessTypes ) or businessTypes.Size() = 0 ) {
        listToDeal := selectset( globalOTDTable, Global_MappingSalesSegment_MP, item, true );
    } else {
        listToDeal := selectset( globalOTDTable, Global_MappingSalesSegment_MP, item, businessTypes.Find( item.BusinessType() ) <> -1 );
        listToDeal := selectset( globalOTDTable,
                                 Global_MappingSalesSegment_MP,
                                 item,
                                 businessTypes.Find( item.BusinessType() ) <> -1 );
    }
    //nameList := construct( structured[String] );
    //nameList := selectvalues( listToDeal, Elements, item, true, item.Name() );
_Main/BL/Type_MacroPlan/Method_MappingUnitData.qbl
@@ -15,9 +15,11 @@
    if( isnull( businesstypes ) or businesstypes.Size() = 0 ) {
        listtodeal := selectset( globalOTDTable, Global_MappingOperation, item, true );
    } else {
        organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businesstypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() );
        listtodeal := selectset( globalOTDTable, Global_MappingOperation, item, 
    //                             businesstypes.Difference( businesstypes.Difference( item.BusinessType().Tokenize( ", " ) ) ).Size() > 0
                                 businesstypes.Find( item.BusinessType() ) >= 0
                                 ( businesstypes.Find( item.BusinessType() ) >= 0 ) and
                                 ( organcodelist.Find( item.OrganCode() ) >= 0 )
                                );
    }
    
_Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl
@@ -131,7 +131,7 @@
    
    // todo åˆ¶é€ æˆæœ¬-16
    info( "InventoryCost Finished, Start OperationCost Mapping" );
    macroPlan.MappingOperationCostData( businessTypes );
    macroPlan.MappingOperationCostData( globalOTDTable, businessTypes );
    
    // è®¢å•预测-17
    Forecast::DoSync( macroPlan, businessTypes ,globalOTDTable);
_Main/BL/Type_OrganCode/Attribute_OrganCodeName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute OrganCodeName
{
  #keys: '3[412960.0.276650052][412960.0.276650051][412960.0.276650053]'
  Description: '组织编码名称'
  ValueType: String
}
_Main/BL/Type_OrganCode/_ROOT_Type_OrganCode.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type OrganCode
{
  #keys: '5[412960.0.276650035][412960.0.276650033][0.0.0][412960.0.276650034][412960.0.276650036]'
  BaseType: Object
  Description: '事业部对应的组织编码集合'
  StructuredName: 'OrganCodes'
}
_Main/UI/MacroPlannerWebApp/Component_DialogBusinessType/Component_pnlContent.def
@@ -12,10 +12,35 @@
      Properties:
      [
        DataBinding: 'DataHolderBusinessType.Data.BusinessTypeName'
        Label: 'Business Type Name'
        Description: '事业部名称输入'
        Label: '事业部名称'
        Taborder: 0
      ]
    }
    Component editScenarioName
    {
      #keys: '[412960.0.275480603]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderBusinessType.Data.ScenarioName'
        Description: '场景名称编辑'
        Label: '场景名称'
        Taborder: 1
      ]
    }
    Component editDisplayType
    {
      #keys: '[412960.0.278321833]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderBusinessType.Data.DisplayType'
        Description: '显示类型编辑'
        Label: '显示类型'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Component_pnlActions.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
Quintiq file version 2.0
Component pnlActions
{
  #keys: '[412960.0.278371059]'
  BaseType: 'WebPanel'
  Children:
  [
    Component btnOk
    {
      #keys: '[412960.0.278371063]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: 'OK'
        Taborder: 0
      ]
    }
    Component btnCancel
    {
      #keys: '[412960.0.278371065]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: 'Cancel'
        Taborder: 1
      ]
    }
  ]
  Properties:
  [
    Alignment: 'trailing'
    Border: true
    ExcludeFromActiveComponent: true
    FixedSize: true
    Orientation: 'horizontal'
    Padding: 'true'
    Style: 'footer'
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Component_pnlContent.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
Component pnlContent
{
  #keys: '[412960.0.278371057]'
  BaseType: 'WebPanel'
  Children:
  [
    Component editOrganCodeName
    {
      #keys: '[412960.0.280135212]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderOrganCode.Data.OrganCodeName'
        Description: '组织编码名称编辑'
        Label: '组织编码'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    Padding: 'true'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_ClickBtnOk.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: #root
Method ClickBtnOk () id:Method_DialogOrganCode_ClickBtnOk
{
  #keys: '[412960.0.279955432]'
  Body:
  [*
    // Disabled button to prevent the possibility of multiple firing
    btnOk.Enabled(false,'');
    // OnOk
    this.ApplyChanges();
    DataHolderOrganCode.Data().Commit();
    this.Close();
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_Edit.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: #root
Method Edit (
  OrganCode selection
) id:Method_DialogOrganCode_Edit
{
  #keys: '[412960.0.279955433]'
  Body:
  [*
    // Edits assumption
    data := shadow( selection );
    DataHolderOrganCode.Data( &data );
    ApplicationMacroPlanner.ShowFormModal( this );
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_New.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
#parent: #root
Method New (
  BusinessType owner
) id:Method_DialogOrganCode_New
{
  #keys: '[412960.0.279955435]'
  Body:
  [*
    data := owner.OrganCode(relshadow);
    DataHolderOrganCode.Data( &data);
    ApplicationMacroPlanner.ShowFormModal( this );
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Response_pnlActions_btnCancel_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
#parent: pnlActions/btnCancel
Response OnClick () id:Response_pnlActions_btnCancel_OnClick
{
  #keys: '[412960.0.278371069]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      Form.Close();
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Response_pnlActions_btnOk_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
#parent: pnlActions/btnOk
Response OnClick () id:Response_pnlActions_btnOk_OnClick
{
  #keys: '[412960.0.278371068]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      Form.ClickBtnOk()
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/_ROOT_Component_DialogOrganCode.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent DialogOrganCode
{
  #keys: '[412960.0.278371055]'
  BaseType: 'WebForm'
  Children:
  [
    #child: pnlContent
    #child: pnlActions
    Component DataHolderOrganCode
    {
      #keys: '[412960.0.279955517]'
      BaseType: 'WebDataHolder'
      Databinding: 'shadow[OrganCode]*'
      Properties:
      [
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Alignment: 'trailing'
    Description: '组织编码边界弹窗'
    EnterButton: 'btnOk'
    EscapeButton: 'btnCancel'
    ExcludeFromActiveComponent: true
    Padding: 'false'
    Title: '组织编码编辑'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_Form367/Component_ListBusinessType.def
@@ -28,7 +28,7 @@
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessTypeName","title":"BusinessTypeName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BusinessTypeName"}}]'
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessTypeName","title":"BusinessTypeName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BusinessTypeName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DisplayType","title":"DisplayType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"DisplayType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ScenarioName","title":"ScenarioName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ScenarioName"}}]'
        ContextMenu: 'listContextMenuBusinessType655'
        Taborder: 2
      ]
_Main/UI/MacroPlannerWebApp/Component_Form367/Component_ListOrganCode.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,62 @@
Quintiq file version 2.0
Component ListOrganCode
{
  #keys: '[412960.0.278370451]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractorOrganCode
    {
      #keys: '[412960.0.278370452]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'BusinessType'
        Description: '组织编码'
        ExtractionMode: 'Selected'
        Source: 'ListBusinessType'
        Taborder: 0
        Transformation: 'OrganCode'
      ]
    }
    #child: listActionBarPageOrganCode
    Component DataSetLevelOrganCode
    {
      #keys: '[412960.0.278370457]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenuBusinessType
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrganCodeName","title":"OrganCodeName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrganCodeName"}}]'
        ContextMenu: 'listContextMenuBusinessType'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Description: '组织编码'
    Taborder: 0
  ]
  ResponseDefinitions:
  [
    DelegatedResponseDefinition OnClick id:Responsedef_ListOrganCode_WebMenu_OnClick
    {
      #keys: '[412960.0.280046014]'
      Initiator: 'WebMenu'
      IsInherited: false
      ResponseType: 'OnClick'
      Arguments:
      [
        ResponseDefinitionArgument selection
        {
          #keys: '[507.0.16811226]'
          Binding: 'this.Selection()'
        }
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_Form367/Component_PanelBusinessType.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
Quintiq file version 2.0
Component PanelBusinessType
{
  #keys: '[412960.0.278370440]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: ListOrganCode
  ]
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listActionBarPageOrganCode.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPageOrganCode
{
  #keys: '[412960.0.278370454]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listContextMenuBusinessType.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
Quintiq file version 2.0
Component listContextMenuBusinessType
{
  #keys: '[412960.0.278370459]'
  BaseType: 'listContextMenu'
  Children:
  [
    Component MenuEdit526
    {
      #keys: '[412960.0.278370780]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'PENCIL'
        Taborder: 3
        Title: 'Edit'
      ]
    }
    Component MenuDelete267
    {
      #keys: '[412960.0.278370833]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'DELETE'
        Taborder: 4
        Title: 'Delete'
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listContextMenuBusinessType655.def
@@ -38,6 +38,18 @@
        Title: 'Delete'
      ]
    }
    Component MenuNewOrganCode
    {
      #keys: '[412960.0.280077335]'
      BaseType: 'WebMenu'
      Properties:
      [
        Description: '新建组织编码'
        Image: 'EARTH_ADD'
        Taborder: 6
        Title: 'Add Organ Code'
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListBusinessType_MenuNewOrganCode_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: ListBusinessType
Response OnClick (
  BusinessType selection
) id:Response_ListBusinessType_MenuNewOrganCode_OnClick
{
  #keys: '[412960.0.280105097]'
  CanBindMultiple: false
  DefinitionID => /ListBusinessType/Responsedef_ListBusinessType_WebMenu_OnClick
  GroupServerCalls: true
  Initiator: 'MenuNewOrganCode'
  QuillAction
  {
    Body:
    [*
      dlg := construct( DialogOrganCode );
      dlg.New( selection );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListOrganCode_MenuDelete267_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: ListOrganCode
Response OnClick (
  OrganCode selection
) id:Response_ListOrganCode_MenuDelete267_OnClick
{
  #keys: '[412960.0.280046423]'
  CanBindMultiple: false
  DefinitionID => /ListOrganCode/Responsedef_ListOrganCode_WebMenu_OnClick
  GroupServerCalls: true
  Initiator: 'MenuDelete267'
  QuillAction
  {
    Body:
    [*
      selection.Delete();
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListOrganCode_MenuEdit526_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: ListOrganCode
Response OnClick (
  OrganCode selection
) id:Response_ListOrganCode_MenuEdit526_OnClick
{
  #keys: '[412960.0.280046170]'
  CanBindMultiple: false
  DefinitionID => /ListOrganCode/Responsedef_ListOrganCode_WebMenu_OnClick
  GroupServerCalls: true
  Initiator: 'MenuEdit526'
  QuillAction
  {
    Body:
    [*
      dlg := construct( DialogOrganCode );
      dlg.Edit(  selection );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_Form367/_ROOT_Component_FormBusinessType#367.def
@@ -8,9 +8,10 @@
  Children:
  [
    #child: ListBusinessType
    #child: PanelBusinessType
  ]
  Properties:
  [
    Title: 'Business Type'
    Title: '事业部&组织编码维护'
  ]
}
_Main/UI/MacroPlannerWebApp/Views/Business_Type_Maintain.vw
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,351 @@
Quintiq file version 2.0
{
  viewcontents
  {
    forms
    {
      form_legacy_1
      {
        title: 'Scenario manager'
        shown: true
        componentID: 'FormScenarioManager'
        layout
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 8
          columnPosition: 1
          columnSpan: 5
        }
        components
        {
          FormScenarioManager_ListScenario
          {
          }
          FormScenarioManager_DataSetLevelScenario
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 90
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 277
            }
            column_ChangedBy
            {
              columnId: 'ChangedBy'
              dataPath: 'ChangedBy'
              dataType: 'string'
              title: 'Changed by'
              index: 2
              subtotals: ''
              width: 106
            }
            column_ChangedOn
            {
              columnId: 'ChangedOn'
              dataPath: 'ChangedOn'
              dataType: 'datetime'
              title: 'Changed on'
              index: 3
              subtotals: ''
              width: 99
            }
            column_StorageMode
            {
              columnId: 'StorageMode'
              dataPath: 'StorageMode'
              dataType: 'string'
              title: 'StorageMode'
              index: 4
              subtotals: ''
              width: 40
            }
          }
        }
      }
      form_legacy_2
      {
        title: 'Assumptions'
        shown: true
        componentID: 'FormAssumptions'
        layout
        {
          mode: 'open'
          rowPosition: 9
          rowSpan: 8
          columnPosition: 1
          columnSpan: 5
        }
        components
        {
          FormAssumptions_ListAssumptions
          {
          }
          FormAssumptions_DataSetLevelAssumptions
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Category
            {
              columnId: 'Category'
              dataPath: 'Category'
              dataType: 'string'
              title: '类别'
              index: 1
              subtotals: ''
              width: 108
            }
            column_Importance
            {
              columnId: 'Importance'
              dataPath: 'Importance'
              dataType: 'string'
              title: '重要性'
              index: 2
              subtotals: ''
              width: 110
            }
            column_Title
            {
              columnId: 'Title'
              dataPath: 'Title'
              dataType: 'string'
              title: '标题'
              index: 3
              subtotals: ''
              width: 150
            }
            column_ChangedBy
            {
              columnId: 'ChangedBy'
              dataPath: 'ChangedBy'
              dataType: 'string'
              title: 'Changed by'
              index: 4
              subtotals: ''
              width: 150
            }
            column_CreatedOn
            {
              columnId: 'CreatedOn'
              dataPath: 'CreatedOn'
              dataType: 'datetime'
              title: 'Created on'
              index: 5
              subtotals: ''
              width: 150
            }
          }
        }
      }
      form_FormScenariosKPIsComparison
      {
        title: 'QLibMacroPlannerWebUI::FormScenariosKPIsComparison'
        shown: true
        componentID: 'QLibMacroPlannerWebUI::FormScenariosKPIsComparison'
        layout
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 16
          columnPosition: 6
          columnSpan: 7
        }
        components
        {
          FormScenariosKPIsComparison_MatrixEditorFinancialKPIs
          {
            gridColor: '#c4c4c4'
            totalHeaderWidth: 200
            attributeHeaderWidthRatio: 0.6
            nameHeaderWidthRatio: 0.4
            columnWidth: 100
            horizontalGrid: true
            verticalGrid: true
            backendState
            {
              componentId: 'QLibMacroPlannerWebUI::FormScenariosKPIsComparison.MatrixEditorFinancialKPIs'
              state
              {
                cells
                {
                  attributes
                  {
                    attribute_DisplayValue
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 0
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'DisplayValue'
                    }
                  }
                }
                columns
                {
                  sorting
                  {
                    criteria: ''
                  }
                }
                rows
                {
                  sorting
                  {
                    criteria: "datamember:'KPISetting.DisplayIndex'"
                  }
                }
              }
            }
          }
        }
      }
      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: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              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: '名称'
              index: 1
              subtotals: ''
              width: 200
            }
          }
        }
      }
    }
    userconfigurableinformation
    {
    }
    index: 3
    image: 'ELEMENTS_TREE_EDIT'
    page: 'applicationDevelopmentActionBarPageDef'
    group: ''
    description: ''
  }
  formatversion: 2
  id: 'Business_Type_Maintain'
  name: 'Business Type Maintain'
  isglobal: false
  isroot: true
}