yanweiyuan3
2023-09-22 bfb4ac537004c7669338c86f59e909b1b79aea10
Add Auto Unlock

在从数据湖拉取订单数据时自动解锁被修改的订单
已修改8个文件
已添加2个文件
556 ■■■■ 文件已修改
_Main/BL/Type_CustomerOrder/StaticMethod_CreateOrUpdate.qbl 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CustomerOrder/StaticMethod_LockUnlock.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_ListOrderLock#844.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLockHeader#545.def 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_ButtonOrderLockHeaderFresh_OnClick.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderCustomerOrder_O.def 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderPlanDeliver_OnC.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Views/OrderLock.vw 451 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/_ROOT_Project_MacroPlannerWebApp.qp 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_var/_Main/ProjSettings/MacroPlannerWebApp/TypeConfigs/CustomerOrder.qtc 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CustomerOrder/StaticMethod_CreateOrUpdate.qbl
@@ -62,9 +62,34 @@
                               priorityName, salesSegmentName, currencyId, unitOfMeasureName, 
                               false, customerName, customerId, orderId, orderLineId, true, true, true );
    } else {
        result.Update( product, stockingPoint, orderDate, quantity, price,
                       priorityName, salesSegmentName, currencyId, unitOfMeasureName,
                       false, customerName, customerId, orderId, orderLineId, true, true, true );
        if( result.ProductID() = productId
            and result.StockingPointID() = stockingPointId
            and result.StartDate() = orderDate
            and result.Quantity() = quantity
            and result.Price() = price
            and result.PriorityName() = priorityName
            and result.SalesSegmentName() = salesSegmentName
            and result.CurrencyID() = currencyId
            and result.UnitOfMeasureName() = unitOfMeasureName
            and result.CustomerName() = customerName
            and result.CustomerID() = customerId
            and result.OrderID() = orderId
            and result.OrderLineID() = orderLineId ){
              info( "No need to update this order: " + id );
              }else{
                if( result.IsLocked() = true ){
                  pispips := selectset( result, ProductInStockingPoint_MP.ProductInStockingPointInPeriod, pispip, true );
                  pispipLeafs := selectset( pispips,
                                            Elements.astype( ProductInStockingPointInPeriodPlanningLeaf ),
                                            pispip,
                                            true );
                  ProductInStockingPointInPeriod::LockUnlockPlanning( pispipLeafs, false, true );
                }
                result.Update( product, stockingPoint, orderDate, quantity, price,
                               priorityName, salesSegmentName, currencyId, unitOfMeasureName,
                               false, customerName, customerId, orderId, orderLineId, true, true, true );
                result.IsLocked( false );
                }
    }
    return result;
  *]
_Main/BL/Type_CustomerOrder/StaticMethod_LockUnlock.qbl
@@ -20,7 +20,7 @@
        owner.OrderLockLog( relnew, 
                            CustomerName := order.CustomerName(), 
                            End := order.First().AsPlanningBaseSalesDemandInPeriod().End().Date(), 
                            EndDate := order.EndDate(),
                            EndDate := order.StartDate(),
                            IsLocked := order.IsLocked(), 
                            LastModify := order.LastModify(), 
                            LastModifyTime := order.LastModifyTime(), 
@@ -41,7 +41,7 @@
          owner.OrderLockLog( relnew, 
                              CustomerName := order.CustomerName(), 
                              End := order.First().AsPlanningBaseSalesDemandInPeriod().End().Date(), 
                              EndDate := order.EndDate(),
                              EndDate := order.StartDate(),
                              IsLocked := order.IsLocked(), 
                              LastModify := order.LastModify(), 
                              LastModifyTime := order.LastModifyTime(), 
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_ListOrderLock#844.def
@@ -29,7 +29,7 @@
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderID","title":"OrderID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"ProductID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesSegmentName","title":"SalesSegmentName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SalesSegmentName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerName","title":"CustomerName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasureName","title":"UnitOfMeasureName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasureName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Price","title":"Price","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Price"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"EndDate","title":"EndDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"EndDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsLocked","title":"IsLocked","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsLocked"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"First.AsPlanningBaseSalesDemandInPeriod.End","title":"End","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"First.AsPlanningBaseSalesDemandInPeriod.End"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"LastModify","title":"LastModify","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"LastModify"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"LastModifyTime","title":"LastModifyTime","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"LastModifyTime"}}]'
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderID","title":"OrderID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"ProductID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesSegmentName","title":"SalesSegmentName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SalesSegmentName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerName","title":"CustomerName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasureName","title":"UnitOfMeasureName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasureName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Price","title":"Price","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Price"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StartDate","title":"StartDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StartDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsLocked","title":"IsLocked","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsLocked"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"First.AsPlanningBaseSalesDemandInPeriod.End","title":"End","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"First.AsPlanningBaseSalesDemandInPeriod.End"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"LastModify","title":"LastModify","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"LastModify"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"LastModifyTime","title":"LastModifyTime","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"LastModifyTime"}}]'
        ContextMenu: 'listContextMenuOrderLock'
        Taborder: 2
      ]
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLockHeader#545.def
@@ -87,7 +87,7 @@
        ButtonSize: 'compact'
        Description: '订单锁定'
        Label: '锁定'
        Taborder: 7
        Taborder: 8
      ]
    }
    Component ButtonOrderLockHeaderUnlock
@@ -99,7 +99,7 @@
        ButtonSize: 'compact'
        Description: '订单解锁'
        Label: '解锁'
        Taborder: 8
        Taborder: 9
      ]
    }
    Component ButtonOrderLockHeaderClear
@@ -114,6 +114,18 @@
        Taborder: 6
      ]
    }
    Component ButtonOrderLockHeaderFresh
    {
      #keys: '[412960.0.259721852]'
      BaseType: 'WebButton'
      Properties:
      [
        ButtonSize: 'compact'
        Description: '从数据源刷新订单数据'
        Label: '重新获取订单'
        Taborder: 7
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_ButtonOrderLockHeaderFresh_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: PanelOrderLockHeader_545/ButtonOrderLockHeaderFresh
Response OnClick () id:Response_PanelOrderLockHeader_545_ButtonOrderLockHeaderFresh_OnClick
{
  #keys: '[412960.0.259721886]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      macroplan := MacroPlan;
      businesstypes := DataHolderOrderLockGlobal.Data().BusinessType().Tokenize( ',' );
      CustomerOrder::DoSync( macroplan, businesstypes );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderCustomerOrder_O.def
@@ -19,11 +19,11 @@
      newfilter := "";
      findcount := 0;
      traverse( existfilterlist, Elements, filter ){
        if( filter.FindString( "EndDate()", 0 ) >= 0 ){
        if( filter.FindString( "StartDate()", 0 ) >= 0 ){
          if( newfilter = "" ){
            newfilter := "( object.EndDate() = " + this.Date().AsQUILL() + " )";
            newfilter := "( object.StartDate() = " + this.Date().AsQUILL() + " )";
            }else{
              newfilter := newfilter + " and " + "( object.EndDate() = " + this.Date().AsQUILL() + " )";
              newfilter := newfilter + " and " + "( object.StartDate() = " + this.Date().AsQUILL() + " )";
              }
          findcount := 1;
          }else{
@@ -37,9 +37,9 @@
      
      if( findcount = 0 ){
        if( newfilter = "" ){
          newfilter := "( object.EndDate() = " + this.Date().AsQUILL() + " )";
          newfilter := "( object.StartDate() = " + this.Date().AsQUILL() + " )";
          }else{
            newfilter := newfilter + " and " + "( object.EndDate() = " + this.Date().AsQUILL() + " )";
            newfilter := newfilter + " and " + "( object.StartDate() = " + this.Date().AsQUILL() + " )";
            }
        }
      
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderPlanDeliver_OnC.def
@@ -19,7 +19,7 @@
      newfilter := "";
      findcount := 0;
      traverse( existfilterlist, Elements, filter ){
        if( filter.FindString( "End()", 0 ) >= 0 and filter.FindString( "EndDate()", 0 ) < 0 ){
        if( filter.FindString( "End()", 0 ) >= 0 ){
          if( newfilter = "" ){
            newfilter := "( object.First().AsPlanningBaseSalesDemandInPeriod().End().Date() = " + this.Date().AsQUILL() + " )";
            }else{
_Main/UI/MacroPlannerWebApp/Views/OrderLock.vw
@@ -4,204 +4,403 @@
  {
    forms
    {
      form_legacy_1
      form_FormOrderLockLog
      {
        title: 'Scenario manager'
        title: 'QTIANMA_JITUAN::FormOrderLockLog'
        shown: true
        componentID: 'FormScenarioManager'
        componentID: 'QTIANMA_JITUAN::FormOrderLockLog'
        layout
        {
          mode: 'open'
          rowPosition: 1
          rowPosition: 14
          rowSpan: 8
          columnPosition: 1
          columnSpan: 5
          columnSpan: 12
        }
        components
        {
          FormScenarioManager_ListScenario
          FormOrderLockLog_PanelOrderLockLog
          {
            sizeRatio: 1
          }
          FormOrderLockLog_ListOrderLockLog
          {
          }
          FormScenarioManager_DataSetLevelScenario
          FormOrderLockLog_DataSetLevelOrderLockLog
          {
            groupDepth: -1
            column_All_constraints
            sort: 'DESC:Notes'
            column_OrderID
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              columnId: 'OrderID'
              dataPath: 'OrderID'
              dataType: 'string'
              title: 'All constraints'
              title: '订单号'
              index: 0
              subtotals: ''
              width: 90
              width: 150
            }
            column_Name
            column_ProductID
            {
              columnId: 'Name'
              dataPath: 'Name'
              columnId: 'ProductID'
              dataPath: 'ProductID'
              dataType: 'string'
              title: '名称'
              title: '物料号'
              index: 1
              subtotals: ''
              width: 277
              width: 150
            }
            column_ChangedBy
            column_SalesSegmentName
            {
              columnId: 'ChangedBy'
              dataPath: 'ChangedBy'
              columnId: 'SalesSegmentName'
              dataPath: 'SalesSegmentName'
              dataType: 'string'
              title: 'Changed by'
              title: '销售部门'
              index: 2
              subtotals: ''
              width: 106
              width: 150
            }
            column_ChangedOn
            column_StockingPointID
            {
              columnId: 'ChangedOn'
              dataPath: 'ChangedOn'
              dataType: 'datetime'
              title: 'Changed on'
              index: 3
              subtotals: ''
              width: 99
            }
            column_StorageMode
            {
              columnId: 'StorageMode'
              dataPath: 'StorageMode'
              columnId: 'StockingPointID'
              dataPath: 'StockingPointID'
              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: '标题'
              title: '库存点'
              index: 3
              subtotals: ''
              width: 150
            }
            column_ChangedBy
            column_CustomerName
            {
              columnId: 'ChangedBy'
              dataPath: 'ChangedBy'
              columnId: 'CustomerName'
              dataPath: 'CustomerName'
              dataType: 'string'
              title: 'Changed by'
              title: '客户名称'
              index: 4
              subtotals: ''
              width: 150
            }
            column_CreatedOn
            column_Quantity
            {
              columnId: 'CreatedOn'
              dataPath: 'CreatedOn'
              dataType: 'datetime'
              title: 'Created on'
              columnId: 'Quantity'
              dataPath: 'Quantity'
              dataType: 'real'
              index: 5
              subtotals: ''
              width: 150
            }
            column_UnitOfMeasureName
            {
              columnId: 'UnitOfMeasureName'
              dataPath: 'UnitOfMeasureName'
              dataType: 'string'
              title: '单位'
              index: 6
              subtotals: ''
              width: 150
            }
            column_Price
            {
              columnId: 'Price'
              dataPath: 'Price'
              dataType: 'real'
              title: '销售额'
              index: 7
              subtotals: ''
              width: 150
            }
            column_EndDate
            {
              columnId: 'EndDate'
              dataPath: 'EndDate'
              dataType: 'date'
              title: '客户需求时间'
              index: 8
              subtotals: ''
              width: 150
            }
            column_IsLocked
            {
              columnId: 'IsLocked'
              dataPath: 'IsLocked'
              dataType: 'boolean'
              title: '状态'
              index: 9
              subtotals: ''
              width: 150
            }
            column_End
            {
              columnId: 'End'
              dataPath: 'End'
              dataType: 'date'
              title: '计划交付时间'
              index: 10
              subtotals: ''
              width: 150
            }
            column_LastModify
            {
              columnId: 'LastModify'
              dataPath: 'LastModify'
              dataType: 'string'
              title: '最后操作人'
              index: 11
              subtotals: ''
              width: 150
            }
            column_LastModifyTime
            {
              columnId: 'LastModifyTime'
              dataPath: 'LastModifyTime'
              dataType: 'datetime'
              title: '最后操作时间'
              index: 12
              subtotals: ''
              width: 145
            }
            column_Notes
            {
              columnId: 'Notes'
              dataPath: 'Notes'
              dataType: 'string'
              title: '操作详情'
              index: 13
              subtotals: ''
              width: 150
            }
          }
        }
      }
      form_FormScenariosKPIsComparison
      form_FormOrderLock
      {
        title: 'QLibMacroPlannerWebUI::FormScenariosKPIsComparison'
        title: 'QTIANMA_JITUAN::FormOrderLock'
        shown: true
        componentID: 'QLibMacroPlannerWebUI::FormScenariosKPIsComparison'
        componentID: 'QTIANMA_JITUAN::FormOrderLock'
        layout
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 16
          columnPosition: 6
          columnSpan: 7
          rowSpan: 13
          columnPosition: 1
          columnSpan: 12
        }
        components
        {
          FormScenariosKPIsComparison_MatrixEditorFinancialKPIs
          FormOrderLock_PanelOrderLock
          {
            sizeRatio: 1
          }
          FormOrderLock_PanelOrderLockHeader
          {
            sizeRatio: 1
          }
          FormOrderLock_PanelOrderLockOrder
          {
            sizeRatio: 1
          }
          FormOrderLock_ListOrderLock
          {
          }
          FormOrderLock_DataSetLevelOrderLock
          {
            groupDepth: -1
            sort: 'StartDate'
            column_OrderID
            {
              columnId: 'OrderID'
              dataPath: 'OrderID'
              dataType: 'string'
              title: '订单号'
              index: 0
              subtotals: ''
              width: 150
            }
            column_ProductID
            {
              columnId: 'ProductID'
              dataPath: 'ProductID'
              dataType: 'string'
              title: '物料号'
              index: 1
              subtotals: ''
              width: 150
            }
            column_SalesSegmentName
            {
              columnId: 'SalesSegmentName'
              dataPath: 'SalesSegmentName'
              dataType: 'string'
              title: '销售部门'
              index: 2
              subtotals: ''
              width: 150
            }
            column_StockingPointID
            {
              columnId: 'StockingPointID'
              dataPath: 'StockingPointID'
              dataType: 'string'
              title: '库存点'
              index: 3
              subtotals: ''
              width: 150
            }
            column_CustomerName
            {
              columnId: 'CustomerName'
              dataPath: 'CustomerName'
              dataType: 'string'
              title: '客户名称'
              index: 4
              subtotals: ''
              width: 150
            }
            column_Quantity
            {
              columnId: 'Quantity'
              dataPath: 'Quantity'
              dataType: 'real'
              index: 5
              subtotals: ''
              width: 150
            }
            column_UnitOfMeasureName
            {
              columnId: 'UnitOfMeasureName'
              dataPath: 'UnitOfMeasureName'
              dataType: 'string'
              title: '单位'
              index: 6
              subtotals: ''
              width: 150
            }
            column_Price
            {
              columnId: 'Price'
              dataPath: 'Price'
              dataType: 'real'
              title: '销售额'
              index: 7
              subtotals: ''
              width: 150
            }
            column_StartDate
            {
              columnId: 'StartDate'
              dataPath: 'StartDate'
              dataType: 'date'
              title: '客户需求时间'
              index: 8
              subtotals: ''
              width: 150
            }
            column_IsLocked
            {
              columnId: 'IsLocked'
              dataPath: 'IsLocked'
              dataType: 'boolean'
              title: '状态'
              index: 9
              subtotals: ''
              width: 150
            }
            column_First_AsPlanningBaseSalesDemandInPeriod_End
            {
              columnId: 'First.AsPlanningBaseSalesDemandInPeriod.End'
              dataPath: 'First.AsPlanningBaseSalesDemandInPeriod.End'
              dataType: 'datetime'
              title: '计划交付时间'
              index: 10
              subtotals: ''
              width: 150
            }
            column_LastModify
            {
              columnId: 'LastModify'
              dataPath: 'LastModify'
              dataType: 'string'
              title: '最后操作人'
              index: 11
              subtotals: ''
              width: 150
            }
            column_LastModifyTime
            {
              columnId: 'LastModifyTime'
              dataPath: 'LastModifyTime'
              dataType: 'datetime'
              title: '最后操作时间'
              index: 12
              subtotals: ''
              width: 150
            }
          }
          FormOrderLock_PanelOrderLockPlanning
          {
            sizeRatio: 1
          }
          FormOrderLock_PanelMatrix
          {
            sizeRatio: 1
          }
          FormOrderLock_MatrixEditorProductPlanning
          {
            gridColor: '#c4c4c4'
            totalHeaderWidth: 200
            attributeHeaderWidthRatio: 0.6
            nameHeaderWidthRatio: 0.4
            totalHeaderWidth: 427
            attributeHeaderWidthRatio: 0.325989701966572
            nameHeaderWidthRatio: 0.674010298033429
            columnWidth: 100
            horizontalGrid: true
            verticalGrid: true
            backendState
            {
              componentId: 'QLibMacroPlannerWebUI::FormScenariosKPIsComparison.MatrixEditorFinancialKPIs'
              componentId: 'QTIANMA_JITUAN::FormOrderLock.MatrixEditorProductPlanning'
              state
              {
                cells
                {
                  attributes
                  {
                    attribute_DisplayValue
                    attribute_DisplaySupplyQuantity
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 0
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'DisplayValue'
                      attribute: 'DisplaySupplyQuantity'
                    }
                    attribute_DependentDemandAndSalesDemandQuantity
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 1
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'DependentDemandAndSalesDemandQuantity'
                    }
                    attribute_TargetInventoryLevel
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 2
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'TargetInventoryLevel'
                    }
                    attribute_InventoryLevelEnd
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 3
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'InventoryLevelEnd'
                    }
                    attribute_StockLevelInDays
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 4
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'StockLevelInDays'
                    }
                  }
                }
@@ -209,14 +408,14 @@
                {
                  sorting
                  {
                    criteria: ''
                    criteria: "datamember:'Start'"
                  }
                }
                rows
                {
                  sorting
                  {
                    criteria: "datamember:'KPISetting.DisplayIndex'"
                    criteria: "datamember:'Product_MP.DisplayIndex';datamember:'Name'"
                  }
                }
              }
@@ -337,10 +536,10 @@
    userconfigurableinformation
    {
    }
    index: 2
    image: 'DOCUMENT_LOCK'
    page: 'applicationDevelopmentActionBarPageDef'
    group: ''
    index: 2
    image: 'DOCUMENT_LOCK'
    description: ''
  }
  formatversion: 2
_Main/UI/MacroPlannerWebApp/_ROOT_Project_MacroPlannerWebApp.qp
@@ -5,7 +5,7 @@
  ProjectProperties
  {
    ApplicationComponentName: 'ApplicationMacroPlanner'
    BuildVersion: '2022.3.0.32'
    BuildVersion: '2022.3.0.250'
    Description: 'Quintiq Macro Planner'
    ProjectKind: 'WebClient'
  }
_var/_Main/ProjSettings/MacroPlannerWebApp/TypeConfigs/CustomerOrder.qtc
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
{
  SelectableAttributes
  {
    ID
    {
      attribute: 'ID'
      isactive: true
    }
    IsLocked
    {
      attribute: 'IsLocked'
      isactive: true
    }
  }
  meta_
  {
    type: 'CustomerOrder'
  }
}