Merge branch 'dev' of http://47.101.211.7:10101/r/VWED into dev
已修改11个文件
已添加20个文件
已删除1个文件
| | |
| | | { |
| | | DefaultText: 'ds-yunrong-gw.dmp.vwfawedl.mobi' |
| | | } |
| | | InfoMessage InterfaceDataset_AssemblyOnlinePlanPPPSPush_Name |
| | | { |
| | | DefaultText: 'Assembly online plan - PPPS' |
| | | } |
| | | InfoMessage InterfaceDataset_ContentType |
| | | { |
| | | DefaultText: 'application/json' |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Relation AssemblyOnlinePlanPPPSPush_InterfaceDataset_InterfaceDataset_AssemblyOnlinePlanPPPSPush |
| | | { |
| | | #keys: '1[415136.0.1029932763]' |
| | | DefaultRelationStrategy |
| | | { |
| | | } |
| | | RelationSide.LeftSide InterfaceDataset |
| | | { |
| | | #keys: '3[415136.0.1029932765][415136.0.1029932764][415136.0.1029932766]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: AssemblyOnlinePlanPPPSPush |
| | | OwningSide: 'Reference' |
| | | } |
| | | RelationSide.RightSide AssemblyOnlinePlanPPPSPush |
| | | { |
| | | #keys: '3[415136.0.1029932768][415136.0.1029932767][415136.0.1029932769]' |
| | | Cardinality: '1toN' |
| | | ObjectDefinition: InterfaceDataset |
| | | OwningSide: 'Owned' |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Relation AssemblyOnlinePlanPPPSPush_InterfaceLoginfo_InterfaceLoginfo_AssemblyOnlinePlanPPPSPush |
| | | { |
| | | #keys: '1[415136.0.1029932776]' |
| | | DefaultRelationStrategy |
| | | { |
| | | } |
| | | RelationSide.LeftSide InterfaceLoginfo |
| | | { |
| | | #keys: '3[415136.0.1029932778][415136.0.1029932777][415136.0.1029932779]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: AssemblyOnlinePlanPPPSPush |
| | | OwningSide: 'Reference' |
| | | } |
| | | RelationSide.RightSide AssemblyOnlinePlanPPPSPush |
| | | { |
| | | #keys: '3[415136.0.1029932781][415136.0.1029932780][415136.0.1029932782]' |
| | | Cardinality: '1toN' |
| | | ObjectDefinition: InterfaceLoginfo |
| | | OwningSide: 'Reference' |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Relation ShiftDayTime_ShiftPattern_ShiftPattern_ShiftDayTime |
| | | { |
| | | #keys: '1[415754.0.123915968]' |
| | | DefaultRelationStrategy |
| | | { |
| | | } |
| | | RelationSide.LeftSide ShiftPattern |
| | | { |
| | | #keys: '3[415754.0.123915970][415754.0.123915969][415754.0.123915971]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: ShiftDayTime |
| | | OwningSide: 'Reference' |
| | | } |
| | | RelationSide.RightSide ShiftDayTime |
| | | { |
| | | #keys: '3[415754.0.123915973][415754.0.123915972][415754.0.123915974]' |
| | | Cardinality: '1toN' |
| | | ObjectDefinition: ShiftPattern |
| | | OwningSide: 'Owned' |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Fac |
| | | { |
| | | #keys: '3[415136.0.1029932754][415136.0.1029932753][415136.0.1029932755]' |
| | | Description: 'å·¥åç®å' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute FactoryName |
| | | { |
| | | #keys: '3[415136.0.1029932760][415136.0.1029932759][415136.0.1029932761]' |
| | | Description: 'å·¥ååç§°' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute InterfaceTime |
| | | { |
| | | #keys: '3[415136.0.1029932757][415136.0.1029932756][415136.0.1029932758]' |
| | | Description: 'æ¥å£æ¶é´' |
| | | ValueType: DateTime |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute PlanningDate |
| | | { |
| | | #keys: '3[415136.0.1029932714][415136.0.1029932713][415136.0.1029932715]' |
| | | Description: 'è®¡åæ¥æ' |
| | | ValueType: Date |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute PlanningQty |
| | | { |
| | | #keys: '3[415136.0.1029932727][415136.0.1029932726][415136.0.1029932728]' |
| | | Description: 'å¯¹åºæ¥æçä¸çº¿è®¡åæ°é' |
| | | ValueType: Number |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Product |
| | | { |
| | | #keys: '3[415136.0.1029932704][415136.0.1029932703][415136.0.1029932705]' |
| | | Description: 'ç©æå·' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Sequence |
| | | { |
| | | #keys: '3[415136.0.1029932737][415136.0.1029932736][415136.0.1029932738]' |
| | | Description: 'å¯¹åºæ¥æçä¸çº¿é¡ºåº' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute VersionFlag |
| | | { |
| | | #keys: '3[415136.0.1029932747][415136.0.1029932746][415136.0.1029932748]' |
| | | Description: 'çæ¬æ è¯' |
| | | ValueType: Boolean |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute VersionName |
| | | { |
| | | #keys: '3[415136.0.1029932750][415136.0.1029932749][415136.0.1029932751]' |
| | | Description: 'çæ¬åç§°' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | DefaultValue |
| | | { |
| | | TargetAttribute: Fac |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | DefaultValue |
| | | { |
| | | TargetAttribute: FactoryName |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | DefaultValue |
| | | { |
| | | TargetAttribute: VersionName |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod GenerateData ( |
| | | const MacroPlan macroplan, |
| | | InterfaceDataset interfaceDataset, |
| | | String executor, |
| | | Boolean versionflag |
| | | ) |
| | | { |
| | | Description: 'çæå¯ä»¥ä¸åç客æ·éæ±ï¼PPA+IDSï¼æ°æ®' |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Aug-20-2024 (created) |
| | | cdlast := maxobject( interfaceDataset, AssemblyOnlinePlanPPPSPush, cd, cd.InterfaceTime(), cd.PlanningDate(), cd.Product() ); |
| | | if( not isnull( cdlast ) ){ |
| | | loginfo := cdlast.InterfaceLoginfo(); |
| | | if( not loginfo.IsShow() ){ |
| | | loginfo.Delete(); |
| | | }else{ |
| | | loginfo.Last( false ); |
| | | } |
| | | interfaceDataset.AssemblyOnlinePlanPPPSPush( relflush ); |
| | | } |
| | | nowdate := DateTime::ActualTime(); |
| | | loginfo := interfaceDataset.InterfaceLoginfo( relnew, ExecuteUser := executor |
| | | , Name := Translations::InterfaceDataset_AssemblyOnlinePlanPPPSPush_Name() |
| | | , InterfaceDateTime := nowdate |
| | | , Message := 'è£
é
ä¸çº¿è®¡å-PPPSä¼ è¾è³æ°æ®ä¸å°ï¼å
嫿åºï¼/SAPï¼ä¸å
嫿åºï¼' |
| | | , IsShow := false |
| | | , Last := true |
| | | , ReturnSuccess := true |
| | | , ReturnMsg := 'Success' |
| | | , Success := true |
| | | ); |
| | | traverse( macroplan, AssemblyOnlinePlanColumn, column ){ |
| | | traverse( column, AssemblyOnlinePlanCell, cell, cell.Value() <> '' and cell.AssemblyOnlinePlanRow().RowNr() = '1' ){ |
| | | quantityrow := cell.AssemblyOnlinePlanRow(); |
| | | ordercell := selectobject( column, AssemblyOnlinePlanCell, ocell, ocell.AssemblyOnlinePlanRow().ProductID() = quantityrow.ProductID() |
| | | and ocell.AssemblyOnlinePlanRow().ProductionLine() = quantityrow.ProductionLine() |
| | | and ocell.AssemblyOnlinePlanRow().RowNr() = '2' ); |
| | | |
| | | cd :=interfaceDataset.AssemblyOnlinePlanPPPSPush( relnew, Product := quantityrow.ProductID() |
| | | , PlanningDate := column.ColumnDate() |
| | | , PlanningQty := [Number]cell.Value() |
| | | , Sequence := ordercell.Value() |
| | | , VersionName := macroplan.ScenarioName() |
| | | , InterfaceTime := nowdate |
| | | , VersionFlag := versionflag |
| | | ); |
| | | loginfo.AssemblyOnlinePlanPPPSPush( relinsert, cd ); |
| | | } |
| | | } |
| | | loginfo.TotalRow( loginfo.AssemblyOnlinePlanPPPSPush( relsize ) ); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: #DomainModel |
| | | Type AssemblyOnlinePlanPPPSPush |
| | | { |
| | | #keys: '5[415136.0.1029932700][415136.0.1029932698][0.0.0][415136.0.1029932699][415136.0.1029932701]' |
| | | BaseType: Object |
| | | Description: '3.5è£
é
ä¸çº¿è®¡å-PPPSä¼ è¾è³æ°æ®ä¸å°ï¼å
嫿åºï¼/SAPï¼ä¸å
嫿åºï¼' |
| | | StructuredName: 'AssemblyOnlinePlanPPPSPushs' |
| | | } |
| | |
| | | nowdate := DateTime::ActualTime(); |
| | | loginfo := interfaceDataset.InterfaceLoginfo( relnew, ExecuteUser := executor |
| | | , Name := Translations::InterfaceDataset_CustomerDemandPPAIDS_Name() |
| | | , InterfaceDateTime := DateTime::ActualTime() |
| | | , InterfaceDateTime := nowdate |
| | | , Message := '客æ·éæ±ï¼PPA+IDSï¼æ°æ®æ¨é' |
| | | , IsShow := false |
| | | , Last := true |
| | |
| | | cnv2.SetCustomConversion(); |
| | | cnv2.CustomFormatString( 'yyyy-MM-dd' ); |
| | | |
| | | // sadatalist := construct( ShippingActualDatas ); |
| | | sadatalist := construct( FinishedEngineInventorys ); |
| | | for( seq := 0;seq < data.Size();seq++){ |
| | | item := data.Get(seq); |
| | | FinishedEngineInventory::GenerateData( loginfo, cnv2, item ); |
| | | // sadatalist.Add( sadata ); |
| | | sadata := FinishedEngineInventory::GenerateData( loginfo, cnv2, item ); |
| | | sadatalist.Add( sadata ); |
| | | } |
| | | |
| | | options := DatasetFindOptions::Construct( 'MacroPlan' ).IncludeOffline( true ); //to load we must search offline datasets. |
| | | mdskey := DatasetController::FindUnique( options ); |
| | | |
| | | MDSMacroPlan::Root( mdskey ) -> InventoryInterfaceData::SynchronizeInventory( owner, sadatalist ); |
| | | } |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod SynchronizeInventory ( |
| | | MacroPlan macroplan, |
| | | InterfaceDataset owner, |
| | | const FinishedEngineInventorys inventorys |
| | | ) |
| | | { |
| | | Description: 'å卿ºæååºå' |
| | | TextBody: |
| | | [* |
| | | |
| | | //æ¸
空åæçåºåæ´æ°æ°æ® |
| | | //traverse( interfaceDataset, InventoryInterfaceData, iid, iid.Date() = date ){ |
| | | // iid.Delete(); |
| | | //} |
| | | // è·åæå®æ¥æåºåæ¥å£æ°æ® |
| | | //å卿ºæååºå |
| | | traverse( inventorys, Elements, inventory ){ |
| | | product := select( macroplan, Product_MP, product, product.Notes() = inventory.FourCode() ); |
| | | InventoryInterfaceData::Generate( owner, inventory.DDay(), product.ID(), inventory.BIPlace(), [Number]inventory.Total() ); |
| | | } |
| | | *] |
| | | } |
| | |
| | | |
| | | // sadatalist := construct( ShippingActualDatas ); |
| | | for( seq := 0;seq < data.Size();seq++){ |
| | | item := data.Get(seq); |
| | | MachineStockData::GenerateData( loginfo, cnv2, item ); |
| | | item := data.Get(seq); |
| | | inventory :=MachineStockData::GenerateData( loginfo, cnv2, item ); |
| | | inventoryname := inventory.Lgort(); |
| | | if( inventory.Fac() = 'DL' and inventory.Lgort() = 'All' ){ |
| | | inventoryname := inventory.LineType(); |
| | | } |
| | | InventoryInterfaceData::Generate( owner, inventory.DDay(), inventory.MaterialNo(), inventoryname, [Number]inventory.Total() ); |
| | | // sadatalist.Add( sadata ); |
| | | } |
| | | } |
| | |
| | | traverse ( shiftStartDateOPRs, Elements, ssdOPR ) { |
| | | shift := select( opc, OfflinePlanCell, tempOPC, tempOPC.OfflinePlanRow().ProductionLine() = ssdOPR.ProductionLine() and tempOPC.OfflinePlanRow().Type() = "1" ); |
| | | if ( not isnull( shift ) ) { |
| | | startDate := guard( minselect( macroPlan, ShiftPattern.ShiftDay.ShiftDayTime, tempSDT, tempSDT.ShiftDay().ShiftPatternName() = shift.Shift(), tempSDT.Sequence() ).StartDateTime().Format( "H:m" ), "" ); |
| | | startDate := guard( minselect( macroPlan, ShiftPattern.ShiftDayTime, tempSDT, tempSDT.ShiftPattern().Name() = shift.Shift(), tempSDT.Sequence() ).StartDateTime().Format( "H:m" ), "" ); |
| | | startDateCell := opc.OfflinePlanCell( relnew, Value := startDate ); |
| | | startDateCell.OfflinePlanRow( relset, ssdOPR ); |
| | | } |
| | |
| | | traverse ( shiftEndDateOPRs, Elements, sedOPR ) { |
| | | shift := select( opc, OfflinePlanCell, tempOPC, tempOPC.OfflinePlanRow().ProductionLine() = sedOPR.ProductionLine() and tempOPC.OfflinePlanRow().Type() = "1" ); |
| | | if ( not isnull( shift ) ) { |
| | | endDate := guard( maxselect( macroPlan, ShiftPattern.ShiftDay.ShiftDayTime, tempSDT, tempSDT.ShiftDay().ShiftPatternName() = shift.Shift(), tempSDT.Sequence() ).EndDateTIme().Format( "H:m" ), "" ); |
| | | endDate := guard( maxselect( macroPlan, ShiftPattern.ShiftDayTime, tempSDT, tempSDT.ShiftPattern().Name() = shift.Shift(), tempSDT.Sequence() ).EndDateTIme().Format( "H:m" ), "" ); |
| | | endDateCell := opc.OfflinePlanCell( relnew, Value := endDate ); |
| | | endDateCell.OfflinePlanRow( relset, sedOPR ); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod CreateData ( |
| | | MacroPlan macroPlan, |
| | | DateTime startDateTime, |
| | | DateTime endDateTime, |
| | | String name |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | sp := select( macroPlan, ShiftPattern, tempSP, tempSP.Name() = name ); |
| | | sp.ShiftDayTime( relnew, |
| | | StartDateTime := startDateTime, |
| | | EndDateTIme := endDateTime, |
| | | Name := name ); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod EditData ( |
| | | MacroPlan macroPlan, |
| | | ShiftDayTime sdt, |
| | | DateTime startDateTime, |
| | | DateTime endDateTime, |
| | | String name |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | sdt.Delete(); |
| | | |
| | | ShiftDayTime::CreateData( macroPlan, startDateTime, endDateTime, name ); |
| | | *] |
| | | } |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method New ( |
| | | ShiftDay selection |
| | | ) id:Method_DialogCreateEditShiftDayTime_New |
| | | Method New () id:Method_DialogCreateEditShiftDayTime_New |
| | | { |
| | | #keys: '[413988.0.1372696375]' |
| | | Body: |
| | | [* |
| | | data := selection.ShiftDayTime( relnew ); |
| | | |
| | | DataHolderDialogData.Data( data ); |
| | | |
| | | ApplicationMacroPlanner.ShowFormModal( this ); |
| | | *] |
| | | } |
| | |
| | | Body: |
| | | [* |
| | | // On ok |
| | | Form.ApplyChanges(); |
| | | |
| | | if ( isnull( DataHolderDialogData.Data() ) ) { |
| | | ShiftDayTime::CreateData( MacroPlan, dtsStart.DateTime(), |
| | | dtsEnd.DateTime(), ddslName.Text() ); |
| | | } else { |
| | | ShiftDayTime::EditData( MacroPlan, DataHolderDialogData.Data(), dtsStart.DateTime(), |
| | | dtsEnd.DateTime(), ddslName.Text() ); |
| | | } |
| | | |
| | | Form.Close(); |
| | | *] |
| | |
| | | { |
| | | #keys: '[413988.0.1372501452]' |
| | | DefinitionID: 'Responsedef_WebButton_OnClick' |
| | | GroupServerCalls: true |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | Form.ApplyChanges(); |
| | | Form.Close(); |
| | | Form.OnOK(); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
| | |
| | | BaseType: 'WebDataExtractor' |
| | | Properties: |
| | | [ |
| | | DataType: 'ShiftDay' |
| | | Source: 'ApplicationMacroPlanner.dhSelectedShiftDay' |
| | | DataType: 'MacroPlan' |
| | | Source: 'MacroPlan' |
| | | Taborder: 0 |
| | | Transformation: 'ShiftDayTime' |
| | | Transformation: 'ShiftPattern.ShiftDayTime' |
| | | ] |
| | | } |
| | | #child: listActionBarPageShiftDayTime |
| | |
| | | CanBindMultiple: false |
| | | DefinitionID => /ListShiftDayTime/Responsedef_ListShiftDayTime_WebMenu_OnClick |
| | | Initiator: 'mNew' |
| | | Precondition: |
| | | [* |
| | | return not isnull( ApplicationMacroPlanner.dhSelectedShiftDay().Data() ); |
| | | *] |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | dlg := construct( DialogCreateEditShiftDayTime ); |
| | | |
| | | dlg.New( ApplicationMacroPlanner.dhSelectedShiftDay().Data() ); |
| | | dlg.New(); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | |
| | | rowSpan: 15 |
| | | } |
| | | } |
| | | form_FormProductionLineBatchData |
| | | { |
| | | title: 'QMacroPlanner::FormProductionLineBatchData' |
| | | shown: true |
| | | componentID: 'QMacroPlanner::FormProductionLineBatchData' |
| | | layout |
| | | { |
| | | mode: 'open' |
| | | rowPosition: 26 |
| | | rowSpan: 9 |
| | | columnPosition: 1 |
| | | columnSpan: 8 |
| | | } |
| | | components |
| | | { |
| | | FormProductionLineBatchData_PanelProductionLineBatchData |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | FormProductionLineBatchData_ListProductionLineBatchData |
| | | { |
| | | } |
| | | FormProductionLineBatchData_DataSetLevelProductionLineBatchData |
| | | { |
| | | groupDepth: -1 |
| | | column_StartDate |
| | | { |
| | | columnId: 'StartDate' |
| | | dataPath: 'StartDate' |
| | | dataType: 'date' |
| | | index: 0 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_EndDate |
| | | { |
| | | columnId: 'EndDate' |
| | | dataPath: 'EndDate' |
| | | dataType: 'date' |
| | | index: 1 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | } |
| | | } |
| | | } |
| | | form_FormShiftDayTime |
| | | { |
| | | title: 'QMacroPlanner::FormShiftDayTime' |
| | |
| | | } |
| | | } |
| | | } |
| | | form_FormProductionLineBatchData |
| | | { |
| | | title: 'QMacroPlanner::FormProductionLineBatchData' |
| | | shown: true |
| | | componentID: 'QMacroPlanner::FormProductionLineBatchData' |
| | | layout |
| | | { |
| | | mode: 'open' |
| | | rowPosition: 26 |
| | | rowSpan: 9 |
| | | columnPosition: 1 |
| | | columnSpan: 8 |
| | | } |
| | | components |
| | | { |
| | | FormProductionLineBatchData_PanelProductionLineBatchData |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | FormProductionLineBatchData_ListProductionLineBatchData |
| | | { |
| | | } |
| | | FormProductionLineBatchData_DataSetLevelProductionLineBatchData |
| | | { |
| | | groupDepth: -1 |
| | | column_StartDate |
| | | { |
| | | columnId: 'StartDate' |
| | | dataPath: 'StartDate' |
| | | dataType: 'date' |
| | | index: 0 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_EndDate |
| | | { |
| | | columnId: 'EndDate' |
| | | dataPath: 'EndDate' |
| | | dataType: 'date' |
| | | index: 1 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | formatversion: 2 |