| | |
| | | EDIMLColumn OrderDate { Attribute: OrderDate ValueType: Date } |
| | | EDIMLColumn OrderID { Attribute: OrderID ValueType: String } |
| | | EDIMLColumn OrderLineID { Attribute: OrderLineID ValueType: String } |
| | | EDIMLColumn OrderTime { Attribute: OrderTime ValueType: Date } |
| | | EDIMLColumn OrderType { Attribute: OrderType ValueType: String } |
| | | EDIMLColumn Price { Attribute: Price ValueType: Real } |
| | | EDIMLColumn PriorityName { Attribute: PriorityName ValueType: String } |
| | | EDIMLColumn ProductGrade { Attribute: ProductGrade ValueType: String } |
| | | EDIMLColumn ProductID { Attribute: ProductID ValueType: String } |
| | | EDIMLColumn Quantity { Attribute: Quantity ValueType: Real } |
| | | EDIMLColumn SalesSegmentName { Attribute: SalesSegmentName ValueType: String } |
| | | EDIMLColumn SegmentPriority { Attribute: SegmentPriority ValueType: String } |
| | | EDIMLColumn SheetProfitability { Attribute: SheetProfitability ValueType: String } |
| | | EDIMLColumn StockingPointID { Attribute: StockingPointID ValueType: String } |
| | | EDIMLColumn UnitOfMeasureName { Attribute: UnitOfMeasureName ValueType: String } |
| | | } |
| | |
| | | EDIODBCLinkColumn ORDERTIME |
| | | { |
| | | OthersMayUpdateColumn: true |
| | | ValueType: String |
| | | ValueType: DateTime |
| | | } |
| | | EDIODBCLinkColumn ORDERTYPE |
| | | { |
| | |
| | | } |
| | | EDIColumnMatch { InputColumn: ORDERID OutputColumn: OrderID } |
| | | EDIColumnMatch { InputColumn: ORDERLINEID OutputColumn: OrderLineID } |
| | | EDIColumnMatch { InputColumn: ORDERTIME OutputColumn: OrderType } |
| | | EDIColumnMatch |
| | | { |
| | | InputColumn: ORDERTIME |
| | | OutputColumn: OrderTime |
| | | Converter |
| | | { |
| | | XMLDefinition: |
| | | [* |
| | | <?xml version="1.0" encoding="UTF-16"?> |
| | | <DateTimeToDate xmlns="http://www.quintiq.com/GEB/DateTimeToDate" Key="@1"> |
| | | <IsStandard>true</IsStandard> |
| | | <IsISO>false</IsISO> |
| | | <IsCustom>false</IsCustom> |
| | | <ConversionType>0</ConversionType> |
| | | </DateTimeToDate> |
| | | *] |
| | | } |
| | | } |
| | | EDIColumnMatch { InputColumn: ORDERTYPE OutputColumn: OrderType } |
| | | EDIColumnMatch { InputColumn: PRICE OutputColumn: Price } |
| | | EDIColumnMatch { InputColumn: PRIORITYNAME OutputColumn: PriorityName } |
| | | EDIColumnMatch { InputColumn: PRODUCTGRADE OutputColumn: ProductGrade } |
| | | EDIColumnMatch { InputColumn: PRODUCTID OutputColumn: ProductID } |
| | | EDIColumnMatch { InputColumn: QUANTITY OutputColumn: Quantity } |
| | | EDIColumnMatch { InputColumn: SALESEGMENTNAME OutputColumn: SalesSegmentName } |
| | | EDIColumnMatch { InputColumn: SEGMENTPRIORITY OutputColumn: SegmentPriority } |
| | | EDIColumnMatch { InputColumn: SHEETPROFITABILITY OutputColumn: SheetProfitability } |
| | | EDIColumnMatch { InputColumn: STOCKINGPOINTID OutputColumn: StockingPointID } |
| | | EDIColumnMatch { InputColumn: UNITOFMEASURENAME OutputColumn: UnitOfMeasureName } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method SynchronizationAllMappingBrokerAndAPIByOption ( |
| | | Boolean isCustomOrder, |
| | | Boolean isForeacst |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | if ( isCustomOrder ) { |
| | | this.Global_MappingCustomOrder( relflush ); |
| | | this.GlobalOTDTable_CustomOrder().AsyncExecute(); |
| | | } |
| | | |
| | | if ( isForeacst ) { |
| | | this.Global_MappingForecast( relflush ); |
| | | this.GlobalOTDTable_Forecast().AsyncExecute(); |
| | | } |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method SynchronizeDataToMacroPlan ( |
| | | MacroPlan macroPlan, |
| | | Strings businessTypes, |
| | | Boolean isCustomOrder, |
| | | Boolean isForecast |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | if ( isCustomOrder ) { |
| | | macroPlan.MappingCustomerOrderData( businessTypes, this ); |
| | | } |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute OrderTime |
| | | { |
| | | #keys: '3[414702.0.462647536][414702.0.462647535][414702.0.462647537]' |
| | | ValueType: Date |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute OrderType |
| | | { |
| | | #keys: '3[414702.0.462647526][414702.0.462647525][414702.0.462647527]' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute ProductGrade |
| | | { |
| | | #keys: '3[414702.0.462647546][414702.0.462647545][414702.0.462647547]' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute SegmentPriority |
| | | { |
| | | #keys: '3[414702.0.462647556][414702.0.462647555][414702.0.462647557]' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute SheetProfitability |
| | | { |
| | | #keys: '3[414702.0.462647566][414702.0.462647565][414702.0.462647567]' |
| | | ValueType: String |
| | | } |
| | |
| | | } |
| | | // if( not isnull( Product_MP::FindById( this, item.ProductID() ) ) ){ |
| | | // info( item.ProductID().AsQUILL() ); |
| | | CustomerOrder::CreateOrUpdate( this, item.CurrencyID(), item.Customer(), item.CustomerID(), item.ID(), |
| | | item.OrderDate(), item.OrderID(), item.OrderLineID(), item.Price(), |
| | | priorityName, item.ProductID(), |
| | | item.StockingPointID(), |
| | | item.SalesSegmentName(), |
| | | item.Quantity(), item.UnitOfMeasureName(), item.OrderType(), item.IsAvailable()); |
| | | customOrder := CustomerOrder::CreateOrUpdate( this, item.CurrencyID(), item.Customer(), item.CustomerID(), item.ID(), |
| | | item.OrderDate(), item.OrderID(), item.OrderLineID(), item.Price(), |
| | | priorityName, item.ProductID(), |
| | | item.StockingPointID(), |
| | | item.SalesSegmentName(), |
| | | item.Quantity(), item.UnitOfMeasureName(), item.OrderType(), item.IsAvailable()); |
| | | customOrder.BusinessType( item.BusinessType() ); |
| | | customOrder.OrderType( item.OrderType() ); |
| | | customOrder.OrderTime( item.OrderTime() ); |
| | | customOrder.ProductGrade( item.ProductGrade() ); |
| | | customOrder.SegmentPriority( item.SegmentPriority() ); |
| | | customOrder.SheetProfitability( item.SheetProfitability() ); |
| | | // }else{ |
| | | // info( "invaild product: " + item.ProductID().AsQUILL() ); |
| | | // } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component abgInterfaceTest |
| | | { |
| | | #keys: '[414702.0.457001887]' |
| | | BaseType: 'WebActionBarGroup' |
| | | Children: |
| | | [ |
| | | Component btnInterfaceTest |
| | | { |
| | | #keys: '[414702.0.459575623]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Image: 'BEAR' |
| | | Label: 'æ¥å£æµè¯' |
| | | Taborder: 0 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Taborder: 5 |
| | | ] |
| | | } |
| | |
| | | Children: |
| | | [ |
| | | #child: abgTest |
| | | #child: abgInterfaceTest |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: abgInterfaceTest/btnInterfaceTest |
| | | Response OnClick () id:Response_TIANMA_JITUAN_abgInterfaceTest_btnInterfaceTest_OnClick |
| | | { |
| | | #keys: '[414702.0.459575742]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebButton_OnClick' |
| | | GroupServerCalls: true |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | ApplicationScope.ViewManager().ResetUserViewById( "æ¥å£æµè¯", true ); |
| | | *] |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component ListInterfaceTest |
| | | { |
| | | #keys: '[414702.0.459846558]' |
| | | BaseType: 'WebList' |
| | | Children: |
| | | [ |
| | | Component DataExtractorInterfaceTest |
| | | { |
| | | #keys: '[414702.0.459846559]' |
| | | BaseType: 'WebDataExtractor' |
| | | Properties: |
| | | [ |
| | | DataType: 'GlobalOTDTable' |
| | | Source: 'GlobalOTDTable' |
| | | Taborder: 0 |
| | | Transformation: 'Global_BrokerExecuteLog' |
| | | ] |
| | | } |
| | | #child: listActionBarPageInterfaceTest |
| | | Component DataSetLevelInterfaceTest |
| | | { |
| | | #keys: '[414702.0.459846564]' |
| | | BaseType: 'WebDataSetLevel' |
| | | Children: |
| | | [ |
| | | #child: listContextMenuInterfaceTest |
| | | ] |
| | | Properties: |
| | | [ |
| | | Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BrokerName","title":"BrokerName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BrokerName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ElementTotal","title":"ElementTotal","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ElementTotal"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ErrorDateTime","title":"ErrorDateTime","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ErrorDateTime"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ErrorMessage","title":"ErrorMessage","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ErrorMessage"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ErrorNo","title":"ErrorNo","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ErrorNo"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsSuccess","title":"IsSuccess","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsSuccess"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Name","title":"Name","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SuccessDateTime","title":"SuccessDateTime","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SuccessDateTime"}}]' |
| | | ContextMenu: 'listContextMenuInterfaceTest' |
| | | Taborder: 2 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Taborder: 0 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component PanelInterfaceOptions |
| | | { |
| | | #keys: '[414702.0.459752107]' |
| | | BaseType: 'WebPanel' |
| | | Children: |
| | | [ |
| | | Component CheckboxCustomOrder |
| | | { |
| | | #keys: '[414702.0.459786494]' |
| | | BaseType: 'WebCheckbox' |
| | | Properties: |
| | | [ |
| | | Label: 'CustomOrder' |
| | | Taborder: 0 |
| | | ] |
| | | } |
| | | Component CheckboxForecast |
| | | { |
| | | #keys: '[414702.0.459501981]' |
| | | BaseType: 'WebCheckbox' |
| | | Properties: |
| | | [ |
| | | Label: 'Forecast' |
| | | Taborder: 1 |
| | | ] |
| | | } |
| | | Component DropDownListBusinessType |
| | | { |
| | | #keys: '[414702.0.465923773]' |
| | | BaseType: 'WebDropDownList' |
| | | Databinding: 'BusinessType' |
| | | Children: |
| | | [ |
| | | Component DataExtractorInterfaceOptions |
| | | { |
| | | #keys: '[414702.0.465923775]' |
| | | BaseType: 'WebDataExtractor' |
| | | Properties: |
| | | [ |
| | | DataType: 'GlobalOTDTable' |
| | | Source: 'GlobalOTDTable' |
| | | Taborder: 0 |
| | | Transformation: 'BusinessType' |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | DisplayField: 'BusinessTypeName' |
| | | Label: 'äºä¸é¨' |
| | | Taborder: 2 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | FixedSize: true |
| | | Orientation: 'horizontal' |
| | | Taborder: 0 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component PanelInterfaceTest |
| | | { |
| | | #keys: '[414702.0.459815967]' |
| | | BaseType: 'WebPanel' |
| | | Children: |
| | | [ |
| | | Component ButtonPullInterfaceDataToIntermediateTable |
| | | { |
| | | #keys: '[414702.0.457042579]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Image: 'WINE' |
| | | Label: 'æåæ¥å£æ°æ®å°ä¸é´è¡¨' |
| | | Taborder: 0 |
| | | ] |
| | | } |
| | | Component ButtonSynchronizeDataToMacroPlan |
| | | { |
| | | #keys: '[414702.0.461471389]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Image: 'COFFEE_MACHINE' |
| | | Label: 'åæ¥æ°æ®å°MacroPlan' |
| | | Taborder: 1 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | FixedSize: true |
| | | Orientation: 'horizontal' |
| | | Taborder: 1 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component PanelInterfaceTest981 |
| | | { |
| | | #keys: '[414702.0.459917264]' |
| | | BaseType: 'WebPanel' |
| | | Children: |
| | | [ |
| | | #child: ListInterfaceTest |
| | | ] |
| | | Properties: |
| | | [ |
| | | Taborder: 2 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component listActionBarPageInterfaceTest |
| | | { |
| | | #keys: '[414702.0.459846561]' |
| | | BaseType: 'listActionBarPage' |
| | | Properties: |
| | | [ |
| | | Taborder: 1 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component listContextMenuInterfaceTest |
| | | { |
| | | #keys: '[414702.0.459846566]' |
| | | BaseType: 'listContextMenu' |
| | | Properties: |
| | | [ |
| | | Taborder: 0 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: PanelInterfaceTest/ButtonPullInterfaceDataToIntermediateTable |
| | | Response OnClick () id:Response_PanelInterfaceTest_ButtonPullInterfaceDataToIntermediateTable_OnClick |
| | | { |
| | | #keys: '[414702.0.459947783]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebButton_OnClick' |
| | | Precondition: |
| | | [* |
| | | return not isnull( GlobalOTDTable ); |
| | | *] |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | GlobalOTDTable.SynchronizationAllMappingBrokerAndAPIByOption( CheckboxCustomOrder.Checked(), |
| | | CheckboxForecast.Checked() ); |
| | | |
| | | WebMessageBox::Success( "æåæåï¼", true ); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: PanelInterfaceTest/ButtonSynchronizeDataToMacroPlan |
| | | Response OnClick () id:Response_PanelInterfaceTest_ButtonSynchronizeDataToMacroPlan_OnClick |
| | | { |
| | | #keys: '[414702.0.465857875]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebButton_OnClick' |
| | | Precondition: |
| | | [* |
| | | return not isnull( GlobalOTDTable ) and not isnull( MacroPlan ); |
| | | *] |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | businessTypes := construct( Strings ); |
| | | businessTypes.Add( DropDownListBusinessType.Data().BusinessTypeName() ); |
| | | GlobalOTDTable.SynchronizeDataToMacroPlan( MacroPlan, |
| | | businessTypes, |
| | | CheckboxCustomOrder.Checked(), |
| | | CheckboxForecast.Checked() |
| | | ); |
| | | |
| | | WebMessageBox::Success( "忥æåï¼", true ); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: MacroPlannerWebApp |
| | | OrphanComponent FormInterfaceTest |
| | | { |
| | | #keys: '[414702.0.459670964]' |
| | | BaseType: 'WebForm' |
| | | Children: |
| | | [ |
| | | #child: PanelInterfaceOptions |
| | | #child: PanelInterfaceTest |
| | | #child: PanelInterfaceTest981 |
| | | ] |
| | | Properties: |
| | | [ |
| | | Image: 'BACON' |
| | | Title: 'æ¥å£æµè¯' |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | { |
| | | viewcontents |
| | | { |
| | | forms |
| | | { |
| | | form_FormInterfaceTest |
| | | { |
| | | title: 'QTIANMA_JITUAN::FormInterfaceTest' |
| | | shown: true |
| | | componentID: 'QTIANMA_JITUAN::FormInterfaceTest' |
| | | layout |
| | | { |
| | | mode: 'open' |
| | | rowPosition: 1 |
| | | rowSpan: 16 |
| | | columnPosition: 1 |
| | | columnSpan: 7 |
| | | } |
| | | components: null |
| | | } |
| | | 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 |
| | | { |
| | | } |
| | | page: '' |
| | | group: '' |
| | | index: 0 |
| | | image: 'SKIN_TIGER' |
| | | description: '' |
| | | } |
| | | formatversion: 2 |
| | | id: 'æ¥å£æµè¯' |
| | | name: 'æ¥å£æµè¯' |
| | | isglobal: false |
| | | isroot: true |
| | | } |