Merge branch 'dev' of http://47.101.211.7:10101/r/VWED into dev
| | |
| | | { |
| | | DefaultText: 'The import ChangeLossNr is not positive number.' |
| | | } |
| | | InfoMessage MP_ChangeLossSettingExcel_Import_ProductNoExist |
| | | InfoMessage MP_ChangeLossSettingExcel_Import_ProductNoExist ( |
| | | const String productids |
| | | ) |
| | | { |
| | | DefaultText: 'The entered product does not exist.' |
| | | DefaultText: 'The entered products @productids@does not exist.' |
| | | } |
| | | InfoMessage MP_ChangeLossSettingExcel_Import_UnitNoExist |
| | | { |
| | |
| | | owner.CCEngineLogisticsCostReport( relflush ); |
| | | cnv2 := StringToDate::StandardConverter(); |
| | | cnv2.SetCustomConversion(); |
| | | cnv2.CustomFormatString( "M2/D2/Y" ); |
| | | //cnv2.CustomFormatString( "M2/D2/Y" ); |
| | | cnv2.CustomFormatString( "MM/dd/yyyy" ); |
| | | |
| | | products := construct( Product_MPs ); |
| | | productcolumn := selectobject( source, GeneralExcelImportAndExportDataTable.GeneralExcelImportAndExportDataColumn, column, column.ColumnIndex() = 0 ); |
| | |
| | | owner.DLEngineLogisticsCostReport( relflush ); |
| | | cnv2 := StringToDate::StandardConverter(); |
| | | cnv2.SetCustomConversion(); |
| | | cnv2.CustomFormatString( "M2/D2/Y" ); |
| | | //cnv2.CustomFormatString( "M2/D2/Y" ); |
| | | cnv2.CustomFormatString( "MM/dd/yyyy" ); |
| | | |
| | | products := construct( Product_MPs ); |
| | | productcolumn := selectobject( source, GeneralExcelImportAndExportDataTable.GeneralExcelImportAndExportDataColumn, column, column.ColumnIndex() = 0 ); |
| | |
| | | error( Translations::MP_ChangeLossSettingExcel_Import_PositiveInteger() ); |
| | | } |
| | | //导å
¥äº§åæ¯å¦åå¨ |
| | | if( exists( macroplan, ChangeLossSettingExcel, excel, not exists( macroplan, Product_MP, product, product.ID() = excel.Product1() or product.ID() = excel.Product2() ) ) ){ |
| | | error( Translations::MP_ChangeLossSettingExcel_Import_ProductNoExist() ); |
| | | productfirsts := selectuniquevalues( macroplan, ChangeLossSettingExcel, excel, excel.Product1() ); |
| | | productseconds := selectuniquevalues( macroplan, ChangeLossSettingExcel, excel, excel.Product2() ); |
| | | productids := productfirsts.Union( productseconds ); |
| | | nonproductids := selectuniquevalues( productids, Elements, e, not exists( macroplan, Product_MP, product, product.ID() = e ), e ); |
| | | if( nonproductids.Size() > 0 ){ |
| | | error( Translations::MP_ChangeLossSettingExcel_Import_ProductNoExist( nonproductids.Concatenate( ";" ) ) ); |
| | | //if( exists( macroplan, ChangeLossSettingExcel, excel, not exists( macroplan, Product_MP, product, product.ID() = excel.Product1() or product.ID() = excel.Product2() ) ) ){ |
| | | // error( Translations::MP_ChangeLossSettingExcel_Import_ProductNoExist() ); |
| | | } |
| | | //导å
¥äº§çº¿æ¯å¦åå¨ |
| | | if( exists( macroplan, ChangeLossSettingExcel, excel, not exists( macroplan, Unit, unit, unit.ID() = excel.Unit() ) ) ){ |
| | |
| | | |
| | | sumcell := selectobject( column, FinancialProductionCell, c, c.FinancialProductionRow() = sumrow ); |
| | | if( isnull( sumcell ) ){ |
| | | sumcell := column.FinancialProductionCell( relnew, Quantity := 0 ); |
| | | sumcell := column.FinancialProductionCell( relnew, Quantity := 0); |
| | | sumrow.FinancialProductionCell( relinsert, sumcell ); |
| | | } |
| | | |
| | | showcell := column.FinancialProductionCell( relnew, Quantity := cell.Quantity() ); |
| | | showcell := column.FinancialProductionCell( relnew, Quantity := cell.Quantity(), IsUpdate := cell.IsUpdate() ); |
| | | showrow.FinancialProductionCell( relinsert, showcell ); |
| | | yearcell.Quantity( yearcell.Quantity() + cell.Quantity() ); |
| | | sumyearcell.Quantity( sumyearcell.Quantity() + cell.Quantity() ); |
| | |
| | | beforeyearday := ( yearday - Duration::Days( 1 ) ).Date(); |
| | | cnv2 := StringToDate::StandardConverter(); |
| | | cnv2.SetCustomConversion(); |
| | | cnv2.CustomFormatString( "M2/D2/Y" ); |
| | | //cnv2.CustomFormatString( "M2/D2/Y" ); |
| | | cnv2.CustomFormatString( "MM/dd/yyyy" ); |
| | | traverse( this, FinancialProductionReport, report ){ |
| | | //è·å导å
¥ç产åååå·¥åå |
| | | productcolumn := selectobject( report, FinancialProductionColumn, column, column.Name() = 'Product' ); |
| | |
| | | sumrow.FinancialSalesCell( relinsert, sumcell ); |
| | | } |
| | | |
| | | showcell := column.FinancialSalesCell( relnew, Value := cell.Value() ); |
| | | showcell := column.FinancialSalesCell( relnew, Value := cell.Value(), IsUpdate := cell.IsUpdate() ); |
| | | showrow.FinancialSalesCell( relinsert, showcell ); |
| | | yearcell.Value( [String]( [Real]yearcell.Value() + [Real]cell.Value() ) ); |
| | | sumyearcell.Value( [String]( [Real]sumyearcell.Value() + [Real]cell.Value() ) ); |
| | |
| | | beforeyearday := ( yearday - Duration::Days( 1 ) ).Date(); |
| | | cnv2 := StringToDate::StandardConverter(); |
| | | cnv2.SetCustomConversion(); |
| | | cnv2.CustomFormatString( "M2/D2/Y" ); |
| | | //cnv2.CustomFormatString( "M2/D2/Y" ); |
| | | cnv2.CustomFormatString( "MM/dd/yyyy" ); |
| | | traverse( this, FinancialSalesReport, report ){ |
| | | productcolumn := selectobject( report, FinancialSalesColumn, column, column.Name() = 'Product' ); |
| | | unitcolumn := selectobject( report, FinancialSalesColumn, column, column.Name() = 'Unit' ); |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method GetNewOfflinePlanMatrixTooltip () declarative remote as String |
| | | { |
| | | TextBody: |
| | | [* |
| | | tooltip := '<table>'; |
| | | |
| | | tooltip := tooltip |
| | | + '<tr><td><b>æ»éï¼</b></td><td>' + [String]this.Total().TotalQuantity() + '</td></tr>' |
| | | + '<tr><td><b>çæ¬¡åï¼</b></td><td>' + this.Total().ShiftPatternName() + '</td></tr>' |
| | | + '<tr><td><b>çæ¬¡å¼å§æ¶é´ï¼</b></td><td>' + this.Total().ShiftPatternStart() + '</td></tr>' |
| | | + '<tr><td><b>çæ¬¡ç»ææ¶é´ï¼</b></td><td>' + this.Total().ShiftPatternEnd() + '</td></tr>'; |
| | | |
| | | tooltip := tooltip + '</table>'; |
| | | |
| | | return tooltip; |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod DeductionOfReplacementLoss ( |
| | | MacroPlan macroPlan, |
| | | NewOfflinePlanTable nopt |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | // ä¿åä¸ä¸ä»½åæ¡£ |
| | | newNOPT := NewOfflinePlanCell::SaveAsDraft( macroPlan, nopt ); |
| | | |
| | | // æ§è¡æ¢åæå¤± |
| | | allProductionLines := selectuniquevalues( newNOPT, NewOfflinePlanRow, tempNOPR, true, tempNOPR.ProductionLine() ); |
| | | |
| | | traverse ( allProductionLines, Elements, pl |
| | | // , pl = "eMotor Assy (France)" |
| | | ) |
| | | { |
| | | // ä¸çº¿è®¡åå½å产线ä¸çè¡ |
| | | noprs := selectset( newNOPT, NewOfflinePlanRow, tempNOPR, tempNOPR.ProductionLine() = pl and tempNOPR.Type() = "1" ); |
| | | |
| | | // ä¸ä¸ä¸ªç产ç产åCell |
| | | preNOPCell := null( NewOfflinePlanCell ); |
| | | |
| | | traverse ( newNOPT, NewOfflinePlanColumn, nopc |
| | | // , nopc.StartDate() >= macroPlan.StartOfPlanning().Date() and nopc.StartDate() <= Date::Construct( 2024, 4, 17 ) // æµè¯æ¶å¯ä»¥è¿æ»¤æ¶é´ |
| | | ) |
| | | { |
| | | for ( i := 1; i < 10; i++ ) { |
| | | nopcell := select( noprs, Elements.NewOfflinePlanCell, tempNOPC, tempNOPC.NewOfflinePlanColumn() = nopc and tempNOPC.OrderNr() = i ); |
| | | // æ¢åæå¤±åæ° |
| | | cls := select( macroPlan, ChangeLossSetting, tempCLS, |
| | | tempCLS.ProductFirst().ID() = guard( preNOPCell.NewOfflinePlanRow().ProductID(), "" ) and |
| | | tempCLS.ProductSecond().ID() = guard( nopcell.NewOfflinePlanRow().ProductID(), "" ) and |
| | | tempCLS.StartDate() <= nopc.StartDate() and |
| | | tempCLS.EndDate() >= nopc.StartDate() |
| | | ); |
| | | |
| | | // æ£åæ¢åæå¤± |
| | | if ( not isnull( preNOPCell ) and not isnull( nopcell ) and not isnull( cls ) ) { |
| | | preNOPCell.Quantity( preNOPCell.Quantity() - cls.ChangeLossNumber() ); |
| | | // info( "å½ååæ¶é´ï¼", nopc.StartDate().Format( "Y-M2-D2" ), |
| | | // " ä¸ä¸ä¸ªäº§åå½ååºå·ï¼", preNOPCell.Order(), " ä¸ä¸ä¸ªäº§åæ°éï¼", preNOPCell.Quantity(), " ä¸ä¸ä¸ªäº§ååï¼", preNOPCell.NewOfflinePlanRow().ProductID(), |
| | | // " å½å产ååºå·ï¼" , nopcell.Order() , " å½åäº§åæ°éï¼" , nopcell.Quantity(), " å½å产ååï¼" , nopcell.NewOfflinePlanRow().ProductID() ); |
| | | } |
| | | |
| | | // 设置ä¸ä¸ä¸ªç产ç产åCell |
| | | if ( not isnull( nopcell ) ) { |
| | | preNOPCell := nopcell; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | *] |
| | | } |
| | |
| | | // çæä¸çº¿è®¡åã产线æç»ãè¡ |
| | | detailedNOPR := select( nopt, NewOfflinePlanRow, tempNOPR, tempNOPR.ProductionLine() = u.ID() and tempNOPR.ProductID() = pisp.ProductID() and tempNOPR.Type() = "1" ); |
| | | if ( isnull( detailedNOPR ) ) { |
| | | detailedNOPR := nopt.NewOfflinePlanRow( relnew, ProductionLine := u.ID(), ProductID := pisp.ProductID(), Type := "1" ); |
| | | detailedNOPR := nopt.NewOfflinePlanRow( relnew, ProductionLine := u.ID(), ProductID := pisp.ProductID(), Type := "1", OperationID := o.ID() ); |
| | | } |
| | | |
| | | // çæä¸çº¿è®¡åå |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod SynchronizeToNewSupply ( |
| | | MacroPlan macroPlan, |
| | | NewOfflinePlanTable nopt |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | traverse ( nopt, NewOfflinePlanRow.NewOfflinePlanCell, cell, |
| | | cell.NewOfflinePlanRow().Type() = "1" and cell.Quantity() > 0.0 |
| | | // and cell.NewOfflinePlanRow().ProductionLine() = "eMotor Assy (France)" and cell.NewOfflinePlanColumn().StartDate() = Date::Construct( 2020, 4, 4 ) |
| | | ) |
| | | { |
| | | pto := select( macroPlan, Unit.Operation.PeriodTaskOperation, tempPTO, |
| | | exists( tempPTO, NewSupply, tempNS, tempNS.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID() = cell.NewOfflinePlanRow().ProductID() ) and |
| | | tempPTO.Operation().UnitID() = cell.NewOfflinePlanRow().ProductionLine() and |
| | | tempPTO.Start().Date() = cell.NewOfflinePlanColumn().StartDate() ); |
| | | if ( isnull( pto ) ) { |
| | | o := select( macroPlan, Unit.Operation, tempO, tempO.ID() = cell.NewOfflinePlanRow().OperationID() ); |
| | | up := select( macroPlan, Unit.UnitPeriod, tempUP, tempUP.UnitID() = cell.NewOfflinePlanRow().ProductionLine() and tempUP.StartDate() = cell.NewOfflinePlanColumn().StartDate() ); |
| | | if ( not isnull( o ) and not isnull( up ) ) { |
| | | PeriodTaskOperation::Create( o, up, cell.Quantity(), false ); |
| | | } |
| | | } else { |
| | | if ( [Number]cell.Quantity() <> [Number]pto.Quantity() ) { |
| | | pto.Update( cell.Quantity(), false ); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute OperationID |
| | | { |
| | | #keys: '3[413988.0.1695608112][413988.0.1695608111][413988.0.1695608113]' |
| | | ValueType: String |
| | | } |
| | |
| | | Title: 'Inventory report' |
| | | ] |
| | | } |
| | | Component mOfflinePlanInterface |
| | | { |
| | | #keys: '[413988.0.1697411489]' |
| | | BaseType: 'WebMenu' |
| | | Properties: |
| | | [ |
| | | Image: 'WIND_ENGINE_OFFSHORE' |
| | | Taborder: 11 |
| | | Title: 'ä¸çº¿è®¡å' |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | |
| | | Image: 'LIGHTBULB' |
| | | Label: 'Output plan' |
| | | Taborder: 1 |
| | | Visible: false |
| | | ] |
| | | } |
| | | Component bAssemblyOnlinePlan |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: ContextMenuInterface/mOfflinePlanInterface |
| | | Response OnClick () id:Response_MacroPlanner_ContextMenuInterface_mOfflinePlanInterface_OnClick |
| | | { |
| | | #keys: '[413988.0.1697411525]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebMenu_OnClick' |
| | | Precondition: |
| | | [* |
| | | return not isnull( MacroPlan ) and not isnull( InterfaceDataset ); |
| | | *] |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | // åæ¡£ |
| | | NewOfflinePlanCell::InterfaceArchive( MacroPlan, InterfaceDataset ); |
| | | |
| | | WebMessageBox::Success( Translations::A_VWED_Success() ); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
| | |
| | | ProductGeneration::Initilize( MacroPlan ); |
| | | ProductPower::Initilize( MacroPlan ); |
| | | ProductMLBMQB::Initilize( MacroPlan ); |
| | | dhFactorys.Data( selectset( MacroPlan, Factory, factory, factory.ID() = FinancialProductionReport::GetDefaultAllUnit() ) ); |
| | | dhGenerations.Data( selectset( MacroPlan, ProductGeneration, factory, true ) ); |
| | | dhPowers.Data( selectset( MacroPlan, ProductPower, factory, true ) ); |
| | | dhMQBMLBs.Data( selectset( MacroPlan, ProductMLBMQB, factory, true ) ); |
| | | DataHolderTable.Data( table ); |
| | | *] |
| | | GroupServerCalls: false |
| | |
| | | ProductGeneration::Initilize( MacroPlan ); |
| | | ProductPower::Initilize( MacroPlan ); |
| | | ProductMLBMQB::Initilize( MacroPlan ); |
| | | dhFactorys.Data( selectset( MacroPlan, Factory, factory, factory.ID() = FinancialProductionReport::GetDefaultAllUnit() ) ); |
| | | dhGenerations.Data( selectset( MacroPlan, ProductGeneration, factory, true ) ); |
| | | dhPowers.Data( selectset( MacroPlan, ProductPower, factory, true ) ); |
| | | dhMQBMLBs.Data( selectset( MacroPlan, ProductMLBMQB, factory, true ) ); |
| | | DataHolderTable.Data( table ); |
| | | *] |
| | | GroupServerCalls: false |
| | |
| | | ProductGeneration::Initilize( MacroPlan ); |
| | | ProductPower::Initilize( MacroPlan ); |
| | | ProductMLBMQB::Initilize( MacroPlan ); |
| | | dhFactorys.Data( selectset( MacroPlan, Factory, factory, factory.ID() = FinancialProductionReport::GetDefaultAllUnit() ) ); |
| | | dhGenerations.Data( selectset( MacroPlan, ProductGeneration, factory, true ) ); |
| | | dhPowers.Data( selectset( MacroPlan, ProductPower, factory, true ) ); |
| | | dhMQBMLBs.Data( selectset( MacroPlan, ProductMLBMQB, factory, true ) ); |
| | | DataHolderTable.Data( table ); |
| | | *] |
| | | GroupServerCalls: false |
| | |
| | | } |
| | | #child: matrixEditorActionBarPage623 |
| | | #child: matrixeditorContextMenu229 |
| | | Component UserConfigurableInformation675 |
| | | { |
| | | #keys: '[413988.0.1697329605]' |
| | | BaseType: 'WebUserConfigurableInformation' |
| | | Properties: |
| | | [ |
| | | ObjectType: 'NewOfflinePlanCell' |
| | | Taborder: 5 |
| | | Tooltip: 'VALUE( object.GetNewOfflinePlanMatrixTooltip() )' |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | |
| | | { |
| | | Body: |
| | | [* |
| | | // åæ¡£ |
| | | NewOfflinePlanCell::InterfaceArchive( MacroPlan, InterfaceDataset ); |
| | | // 忥å°å¨æä»»å¡ |
| | | NewOfflinePlanCell::SynchronizeToNewSupply( MacroPlan, dhNewOfflinePlanTable.Data() ); |
| | | |
| | | // 设置æé®ï¼é¤ä¸è½½ï¼ä¸å¯ç¨ |
| | | MacroPlan.A_PreviousScenaioName( MacroPlan.ScenarioName() ); |
| | |
| | | { |
| | | Body: |
| | | [* |
| | | NewOfflinePlanCell::DeductionOfReplacementLoss( MacroPlan, dhNewOfflinePlanTable.Data() ); |
| | | |
| | | opt := maxselect( MacroPlan, NewOfflinePlanTable, tempNOPT, true, tempNOPT.SaveDateTime() ); |
| | | dhNewOfflinePlanTable.Data( opt ); |
| | | |
| | | WebMessageBox::Success( Translations::A_VWED_Success() ); |
| | | *] |
| | | GroupServerCalls: false |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component MatrixEditorPISPIP #extension |
| | | { |
| | | Children: |
| | | [ |
| | | Component UserConfigurableInformationMatrixEditorPISPIP #extension |
| | | { |
| | | } |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component PanelMatrix #extension |
| | | { |
| | | Children: |
| | | [ |
| | | #child: MatrixEditorPISPIP |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: LibMacroPlannerWebUI |
| | | OrphanComponent FormProductionPlan #extension |
| | | { |
| | | Children: |
| | | [ |
| | | #child: PanelMatrix |
| | | ] |
| | | } |
| | |
| | | FormNewOfflinePlan_MatrixEditor515 |
| | | { |
| | | gridColor: '#c4c4c4' |
| | | totalHeaderWidth: 511 |
| | | totalHeaderWidth: 507 |
| | | attributeHeaderWidthRatio: 0.6 |
| | | nameHeaderWidthRatio: 0.4 |
| | | columnWidth: 100 |
| | |
| | | type: 'MatrixEditorWebApiCellDataModelInterest' |
| | | index: 0 |
| | | rowsubtotal: '' |
| | | columnsubtotal: 'sum' |
| | | columnsubtotal: '' |
| | | attribute: 'Quantity' |
| | | } |
| | | attribute_Order |
| | |
| | | FormNewOfflinePlan_MatrixEditor583 |
| | | { |
| | | gridColor: '#c4c4c4' |
| | | totalHeaderWidth: 510 |
| | | totalHeaderWidth: 509 |
| | | attributeHeaderWidthRatio: 0.6 |
| | | nameHeaderWidthRatio: 0.4 |
| | | columnWidth: 100 |
| | |
| | | } |
| | | } |
| | | } |
| | | form_FormGeneralSettings |
| | | { |
| | | title: 'General Settings' |
| | | shown: true |
| | | componentID: 'FormGeneralSettings' |
| | | layout |
| | | { |
| | | mode: 'dockright' |
| | | index: 0 |
| | | } |
| | | components |
| | | { |
| | | FormGeneralSettings_PanelContent |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | FormGeneralSettings_PanelGeneralParameter |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | FormGeneralSettings_PanelLeadTimeDependent |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | FormGeneralSettings_PanelShelfLife |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | FormGeneralSettings_PanelSustainability |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | FormGeneralSettings_PanelForecastNetting |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | FormGeneralSettings_PanelActions |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | } |
| | | } |
| | | } |
| | | userconfigurableinformation |
| | | { |
| | |
| | | page: '' |
| | | group: '' |
| | | index: 0 |
| | | image: 'CHART_DONUT' |
| | | image: 'BEAR' |
| | | description: '' |
| | | } |
| | | formatversion: 2 |