From db432910aeb08e46f68bcf1183b3ead703e208b0 Mon Sep 17 00:00:00 2001 From: lazhen <17772815105@139.com> Date: 星期三, 03 七月 2024 15:05:43 +0800 Subject: [PATCH] 库存汇总字段调整 --- _Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_PanelUnit_ddslUnit_OnCreated.def | 2 _Main/BL/Type_InventorySummaryReport/Method_Clear.qbl | 8 _Main/BL/Type_InventroySummaryRow/Method_SetCellValue0.qbl | 21 ++ _Main/BL/Type_FinancialSalesSource/StaticMethod_Initialize.qbl | 16 +- _Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_OnCreated.def | 6 _Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_PanelCategory_RadioButtonGroupUseForPlanning_OnCreated.def | 16 ++ _Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_PanelPeriod_DateSelectorStart_OnChanged.def | 10 _Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelUnit_715_ddslUnit_OnCreated.def | 2 _Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Component_PanelPeriod.def | 1 _Main/BL/Type_InventorySummaryReport/Method_GenerateColumn.qbl | 38 ++++ _Main/BL/Type_InventorySummaryColumn/Method_GenerateCell.qbl | 41 +++++ _Main/BL/Type_InventorySummarySource/StaticMethod_Initialize.qbl | 109 +++++++++++- _Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_PanelPeriod_DateSelectorEnd_OnChanged.def | 10 _Main/BL/Type_FinancialSalesReport/Method_GetRow.qbl | 6 _Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_OnCreated.def | 8 _Main/BL/Type_InventorySummaryReport/StaticMethod_GetDefaultCCUnit.qbl | 4 _Main/BL/Type_InventorySummaryReport/Method_GetRow.qbl | 6 _Main/BL/Type_InventroySummaryRow/Method_SetCellValue#0.qbl | 18 ++ _Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_OnCreated.def | 6 _Main/BL/Type_InventorySummaryColumn/Attribute_TimeUnit.qbl | 2 /dev/null | 15 - _Main/BL/Type_InventroySummaryRow/Method_InitializeCell.qbl | 10 - _Main/BL/Type_InventorySummaryReport/Method_Generate.qbl | 61 ++++--- _Main/BL/Type_InventorySummaryReport/StaticMethod_GetDefaultDLUnit.qbl | 4 _Main/BL/Type_InventroySummaryRow/Method_Initialize.qbl | 2 _Main/BL/Type_FinancialSalesRow/Method_InitializeCell.qbl | 10 - 26 files changed, 312 insertions(+), 120 deletions(-) diff --git a/_Main/BL/Relations/Relation_InventorySummaryCell_ProductInStockingPointInPeriod_ProductInStocki.qbl b/_Main/BL/Relations/Relation_InventorySummaryCell_ProductInStockingPointInPeriod_ProductInStocki.qbl deleted file mode 100644 index b73e32a..0000000 --- a/_Main/BL/Relations/Relation_InventorySummaryCell_ProductInStockingPointInPeriod_ProductInStocki.qbl +++ /dev/null @@ -1,23 +0,0 @@ -Quintiq file version 2.0 -#parent: #root -Relation InventorySummaryCell_ProductInStockingPointInPeriod_ProductInStockingPointInPeriod_InventorySummaryCell -{ - #keys: '1[415136.0.865101866]' - DefaultRelationStrategy - { - } - RelationSide.LeftSide ProductInStockingPointInPeriod - { - #keys: '3[415136.0.865101868][415136.0.865101867][415136.0.865101869]' - Cardinality: '1toN' - ObjectDefinition: InventorySummaryCell - OwningSide: 'Reference' - } - RelationSide.RightSide InventorySummaryCell - { - #keys: '3[415136.0.865101871][415136.0.865101870][415136.0.865101872]' - Cardinality: '0to1' - ObjectDefinition: ProductInStockingPointInPeriod - OwningSide: 'Reference' - } -} diff --git a/_Main/BL/Type_FinancialSalesReport/Method_GetRow.qbl b/_Main/BL/Type_FinancialSalesReport/Method_GetRow.qbl index a656035..6cbc77d 100644 --- a/_Main/BL/Type_FinancialSalesReport/Method_GetRow.qbl +++ b/_Main/BL/Type_FinancialSalesReport/Method_GetRow.qbl @@ -2,9 +2,7 @@ #parent: #root Method GetRow ( String salessegment, - String product, - DateTime startdate, - DateTime enddate + String product ) as FinancialSalesRow { TextBody: @@ -15,7 +13,7 @@ if( isnull( row ) ){ row := this.FinancialSalesRow( relnew, Name := product, Unit := salessegment ); //鍒濆鍖栧崟鍏冩牸 - row.InitializeCell( this, startdate, enddate ); + row.InitializeCell( this ); } return row; diff --git a/_Main/BL/Type_FinancialSalesRow/Method_InitializeCell.qbl b/_Main/BL/Type_FinancialSalesRow/Method_InitializeCell.qbl index 0ef49d7..0c6ebc7 100644 --- a/_Main/BL/Type_FinancialSalesRow/Method_InitializeCell.qbl +++ b/_Main/BL/Type_FinancialSalesRow/Method_InitializeCell.qbl @@ -1,19 +1,13 @@ Quintiq file version 2.0 #parent: #root Method InitializeCell ( - FinancialSalesReport table, - DateTime startdate, - DateTime enddate + FinancialSalesReport table ) { TextBody: [* // 鐢勫叞楦� Jun-28-2024 (created) - for( start := startdate; start < enddate; start := start.StartOfNextMonth() ){ - periodtime := start.Date(); - periodname := periodtime.Format( "M2/D2/Y" ); - column := selectobject( table, FinancialSalesColumn, column, column.Name() = periodname and column.Period() = periodtime ); - + traverse( table, FinancialSalesColumn, column ){ this.Initialize( column, this.Unit() ); } *] diff --git a/_Main/BL/Type_FinancialSalesSource/StaticMethod_Initialize.qbl b/_Main/BL/Type_FinancialSalesSource/StaticMethod_Initialize.qbl index 8f63f1f..804d079 100644 --- a/_Main/BL/Type_FinancialSalesSource/StaticMethod_Initialize.qbl +++ b/_Main/BL/Type_FinancialSalesSource/StaticMethod_Initialize.qbl @@ -23,7 +23,7 @@ table := source.FinancialSalesReport( relnew, ID := source.Name(), Name := source.Name(), IsImport := false ); showtable := source.FinancialSalesReport( relnew, ID := source.Name() + 'Show', Name := source.Name(), IsImport := false, IsShow := true ); startofplanning := owner.StartOfPlanning(); - startofyear := startofplanning.StartOfYear(); + //startofyear := startofplanning.StartOfYear(); startofnextyear := startofplanning.StartOfNextYear(); search := source.FinancialSalesSearch( relnew, Unit := allsalessegment, Generation := allsalessegment, MqbMlb := allsalessegment, Power := allsalessegment ); @@ -34,7 +34,7 @@ traverse( owner, SalesDemand.astype( Forecast ), forecast, forecast.StartDate() < startofnextyear.Date() and ( ( forecast.SalesSegmentName() = ccsalessegment and forecast.Product_MP().MQBMLB() = 'MLB' ) or forecast.SalesSegmentName() = tjsalessegment or forecast.SalesSegmentName() = fssalessegment ) ){ product := forecast.Product_MP(); - allrow := table.GetRow( allsalessegment, product.ID(), startofyear, startofnextyear ); + allrow := table.GetRow( allsalessegment, product.ID() ); periodtime := forecast.StartDate().StartOfMonth(); periodname := periodtime.Format( "M2/D2/Y" ); @@ -47,13 +47,13 @@ //Forecast鐨凷ales Segment涓洪暱鏄ワ紝璇嗗埆鍑篗LB鐨勬墍鏈変骇鍝佹眹鎬� if( forecast.SalesSegmentName() = ccsalessegment and product.MQBMLB() = 'MLB' ){ // info( '------------------------', column.Name() ); - ccrow := table.GetRow( ccsalessegment, product.ID(), startofyear, startofnextyear ); + ccrow := table.GetRow( ccsalessegment, product.ID() ); // info( '------------------------', ccrow.FinancialSalesCell( relsize ), column.FinancialSalesCell( relsize ) ); ccrow.Initialize( column, forecast.Quantity() ); }else if( forecast.SalesSegmentName() = tjsalessegment or forecast.SalesSegmentName() = fssalessegment ){ //澶ц繛璐㈠姟閿�閲忥細棣栧厛鍦╢orecast鐣岄潰鏌ユ壘Sales Segment鏄ぉ娲ュ拰浣涘北鐨勬墍鏈夐渶姹傦紝姣忎釜浜у搧鎸夋湀姹囨�婚渶姹傛暟閲� // info( '------------------------', column.Name() ); - dlrow := table.GetRow( dlsalessegment, product.ID(), startofyear, startofnextyear ); + dlrow := table.GetRow( dlsalessegment, product.ID() ); // info( '------------------------', dlrow.FinancialSalesCell( relsize ), column.FinancialSalesCell( relsize ) ); dlrow.Initialize( column, forecast.Quantity() ); } @@ -67,10 +67,10 @@ periodtime := pispip.Start().StartOfMonth().Date(); periodname := periodtime.Format( "M2/D2/Y" ); column := selectobject( table, FinancialSalesColumn, column, column.Name() = periodname and column.Period() = periodtime ); - ccrow := table.GetRow( ccsalessegment, product.ID(), startofyear, startofnextyear ); + ccrow := table.GetRow( ccsalessegment, product.ID() ); ccrow.Initialize( column, pispip.DependentDemandAndSalesDemandQuantity() );//鍙朤otal Demand瀛楁鎸夋湀姹囨�婚渶姹傛暟閲� - allrow := table.GetRow( allsalessegment, product.ID(), startofyear, startofnextyear ); + allrow := table.GetRow( allsalessegment, product.ID() ); allrow.Initialize( column, pispip.DependentDemandAndSalesDemandQuantity() ); } } @@ -84,10 +84,10 @@ column := selectobject( table, FinancialSalesColumn, column, column.Name() = periodname and column.Period() = periodtime ); traverse( trip, ProductInTrip, pit ){ - dlrow := table.GetRow( dlsalessegment, pit.ProductID(), startofyear, startofnextyear ); + dlrow := table.GetRow( dlsalessegment, pit.ProductID() ); dlrow.Initialize( column, pit.Quantity() );//鍙朤otal Demand瀛楁鎸夋湀姹囨�婚渶姹傛暟閲� - allrow := table.GetRow( allsalessegment, pit.ProductID(), startofyear, startofnextyear ); + allrow := table.GetRow( allsalessegment, pit.ProductID() ); allrow.Initialize( column, pit.Quantity() ); } } diff --git a/_Main/BL/Type_InventorySummaryCell/Function_CalcAverageInventory.qbl b/_Main/BL/Type_InventorySummaryCell/Function_CalcAverageInventory.qbl deleted file mode 100644 index 976add9..0000000 --- a/_Main/BL/Type_InventorySummaryCell/Function_CalcAverageInventory.qbl +++ /dev/null @@ -1,13 +0,0 @@ -Quintiq file version 2.0 -#parent: #root -Function CalcAverageInventory -{ - TextBody: - [* - // 鐢勫叞楦� Jul-1-2024 (created) - - value := average( this, ProductInStockingPointInPeriod, pispip, pispip.PlannedInventoryLevelEnd() ); - - this.AverageInventory( value ); - *] -} diff --git a/_Main/BL/Type_InventorySummaryCell/Function_CalcEndingInventory.qbl b/_Main/BL/Type_InventorySummaryCell/Function_CalcEndingInventory.qbl deleted file mode 100644 index 7fcd1da..0000000 --- a/_Main/BL/Type_InventorySummaryCell/Function_CalcEndingInventory.qbl +++ /dev/null @@ -1,13 +0,0 @@ -Quintiq file version 2.0 -#parent: #root -Function CalcEndingInventory -{ - TextBody: - [* - // 鐢勫叞楦� Jul-1-2024 (created) - - value := maxobject( this, ProductInStockingPointInPeriod, pispip, pispip.Start() ); - - this.EndingInventory( value.PlannedInventoryLevelEnd() ); - *] -} diff --git a/_Main/BL/Type_InventorySummaryCell/Function_CalcMaximumInventory.qbl b/_Main/BL/Type_InventorySummaryCell/Function_CalcMaximumInventory.qbl deleted file mode 100644 index db9ad44..0000000 --- a/_Main/BL/Type_InventorySummaryCell/Function_CalcMaximumInventory.qbl +++ /dev/null @@ -1,13 +0,0 @@ -Quintiq file version 2.0 -#parent: #root -Function CalcMaximumInventory -{ - TextBody: - [* - // 鐢勫叞楦� Jul-1-2024 (created) - - value := max( this, ProductInStockingPointInPeriod, pispip, pispip.PlannedInventoryLevelEnd() ); - - this.MaximumInventory( value ); - *] -} diff --git a/_Main/BL/Type_InventorySummaryCell/Function_CalcMinimumInventory.qbl b/_Main/BL/Type_InventorySummaryCell/Function_CalcMinimumInventory.qbl deleted file mode 100644 index e730b7c..0000000 --- a/_Main/BL/Type_InventorySummaryCell/Function_CalcMinimumInventory.qbl +++ /dev/null @@ -1,13 +0,0 @@ -Quintiq file version 2.0 -#parent: #root -Function CalcMinimumInventory -{ - TextBody: - [* - // 鐢勫叞楦� Jul-1-2024 (created) - - value := min( this, ProductInStockingPointInPeriod, pispip, pispip.PlannedInventoryLevelEnd() ); - - this.MinimumInventory( value ); - *] -} diff --git a/_Main/BL/Type_InventorySummaryColumn/Attribute_Category.qbl b/_Main/BL/Type_InventorySummaryColumn/Attribute_TimeUnit.qbl similarity index 89% rename from _Main/BL/Type_InventorySummaryColumn/Attribute_Category.qbl rename to _Main/BL/Type_InventorySummaryColumn/Attribute_TimeUnit.qbl index 2674d93..9090596 100644 --- a/_Main/BL/Type_InventorySummaryColumn/Attribute_Category.qbl +++ b/_Main/BL/Type_InventorySummaryColumn/Attribute_TimeUnit.qbl @@ -1,6 +1,6 @@ Quintiq file version 2.0 #parent: #root -Attribute Category +Attribute TimeUnit { #keys: '3[415136.0.865101993][415136.0.865101992][415136.0.865101994]' Description: 'day;week;month' diff --git a/_Main/BL/Type_InventorySummaryColumn/Method_GenerateCell.qbl b/_Main/BL/Type_InventorySummaryColumn/Method_GenerateCell.qbl new file mode 100644 index 0000000..a85f1cd --- /dev/null +++ b/_Main/BL/Type_InventorySummaryColumn/Method_GenerateCell.qbl @@ -0,0 +1,41 @@ +Quintiq file version 2.0 +#parent: #root +Method GenerateCell ( + InventoryPointSelections selections, + Strings ccstockingpointids, + Strings dlstockingpointids, + InventorySummaryReport table, + Date start, + Date end, + String productid, + String allunit, + String ccunit, + String dlunit +) +{ + TextBody: + [* + // 鐢勫叞楦� Jul-3-2024 (created) + //All + alldetails := selectset( selections, Elements.InventoryInterfaceDataDetail, detail, detail.PartNumber() = productid and detail.Date() >= start and detail.Date() <= end ); + if( alldetails.Size() > 0 ){ + allrow := table.GetRow( allunit, productid ); + allvalue := sum( alldetails, Elements, e, e.Quantity() ); + allrow.SetCellValue( this, allvalue ); + //闀挎槬 + ccdetails := selectset( alldetails, Elements, detail, ccstockingpointids.Find( detail.InventoryPointSelection().StockpoingPoint() ) >= 0 ); + if( ccdetails.Size() > 0 ){ + ccrow := table.GetRow( ccunit, productid ); + value := sum( ccdetails, Elements, e, e.Quantity() ); + ccrow.SetCellValue( this, value ); + } + //澶ц繛 + dldetails := selectset( alldetails, Elements, detail, dlstockingpointids.Find( detail.InventoryPointSelection().StockpoingPoint() ) >= 0 ); + if( dldetails.Size() > 0 ){ + dlrow := table.GetRow( dlunit, productid ); + value := sum( dldetails, Elements, e, e.Quantity() ); + dlrow.SetCellValue( this, value ); + } + } + *] +} diff --git a/_Main/BL/Type_InventorySummaryReport/Method_Clear.qbl b/_Main/BL/Type_InventorySummaryReport/Method_Clear.qbl index ec171dc..25d5339 100644 --- a/_Main/BL/Type_InventorySummaryReport/Method_Clear.qbl +++ b/_Main/BL/Type_InventorySummaryReport/Method_Clear.qbl @@ -1,6 +1,10 @@ Quintiq file version 2.0 #parent: #root -Method Clear +Method Clear ( + String timeunit, + DateTime starttime, + DateTime endtime +) { TextBody: [* @@ -8,6 +12,6 @@ this.InventorySummaryColumn( relflush ); this.InventroySummaryRow( relflush ); - this.GenerateColumn( this.InventorySummarySource().MacroPlan() ); + this.GenerateColumn( this.InventorySummarySource().MacroPlan(), timeunit, starttime, endtime ); *] } diff --git a/_Main/BL/Type_InventorySummaryReport/Method_Generate.qbl b/_Main/BL/Type_InventorySummaryReport/Method_Generate.qbl index 8fbefce..f2bc208 100644 --- a/_Main/BL/Type_InventorySummaryReport/Method_Generate.qbl +++ b/_Main/BL/Type_InventorySummaryReport/Method_Generate.qbl @@ -8,35 +8,40 @@ TextBody: [* // 鐢勫叞楦� Jun-25-2024 (created) - table := selectobject( this, InventorySummarySource.InventorySummaryReport, report, not report.IsShow() ); - allunit := '<All>'; - //娓呯┖涔嬪墠瀛樺偍鐨勬樉绀烘暟鎹� - this.Clear(); - //杩囨护鍚庣殑浜у搧id - productids := selectuniquevalues( products, Elements, product, ( search.Generation() = allunit or product.Generation() = search.Generation() ) - and ( search.MqbMlb() = allunit or product.MQBMLB() = search.MqbMlb() ) - and ( search.Power() = allunit or product.Power() = search.Power() ), product.ID() ); - sumrow := this.InventroySummaryRow( relnew, Name := 'SUM', Unit := search.Unit(), RowNr := table.InventroySummaryRow( relsize ) ); - traverse( table, InventroySummaryRow, row, row.Unit() = search.Unit() ){ - productid := construct( Strings ); - productid.Add( row.Name() ); - - if( productids.ContainsAll( productid ) ){ - showrow := this.InventroySummaryRow( relnew, Name := row.Name(), Unit := row.Unit(), RowNr := row.RowNr() ); + startofplanning := search.InventorySummarySource().MacroPlan().StartOfPlanning(); + startofyear := startofplanning.StartOfYear(); + startofendyear := startofplanning.StartOfNextYear() - Duration::Days( 1 ); + //鏌ヨ鏃ユ湡杩斿洖闇�瑕佸湪璁″垝鏃ユ湡涔嬪唴 + if( search.StartDate().DateTime() < startofendyear and search.EndDate().DateTime() > startofyear ){ + table := selectobject( this, InventorySummarySource.InventorySummaryReport, report, not report.IsShow() ); + allunit := '<All>'; + //娓呯┖涔嬪墠瀛樺偍鐨勬樉绀烘暟鎹� + this.Clear( search.Category(), search.StartDate().DateTime(), search.EndDate().DateTime() ); + //杩囨护鍚庣殑浜у搧id + productids := selectuniquevalues( products, Elements, product, ( search.Generation() = allunit or product.Generation() = search.Generation() ) + and ( search.MqbMlb() = allunit or product.MQBMLB() = search.MqbMlb() ) + and ( search.Power() = allunit or product.Power() = search.Power() ), product.ID() ); + sumrow := this.InventroySummaryRow( relnew, Name := 'SUM', Unit := search.Unit(), RowNr := table.InventroySummaryRow( relsize ) ); + sumrow.InitializeCell( this ); + traverse( table, InventroySummaryRow, row, row.Unit() = search.Unit() ){ + productid := construct( Strings ); + productid.Add( row.Name() ); - traverse( row, InventorySummaryCell, cell ){ - // column := selectobject( this, InventorySummaryColumn, column, column.Name() = cell.InventorySummaryColumn().Name() ); - // - // sumcell := selectobject( column, InventorySummaryCell, c, c.InventroySummaryRow() = sumrow ); - // if( isnull( sumcell ) ){ - // sumcell := column.InventorySummaryCell( relnew, Value := '0' ); - // sumrow.InventorySummaryCell( relinsert, sumcell ); - // } - // - // showcell := column.InventorySummaryCell( relnew, Value := cell.Value() ); - // showrow.InventorySummaryCell( relinsert, showcell ); - // value := [Real]cell.Value() + [Real]sumcell.Value(); - // sumcell.Value( [String]value ); + if( productids.ContainsAll( productid ) ){ + showrow := this.InventroySummaryRow( relnew, Name := row.Name(), Unit := row.Unit(), RowNr := row.RowNr() ); + + traverse( row, InventorySummaryCell, cell, cell.InventorySummaryColumn().TimeUnit() = search.Category() ){ + column := selectobject( this, InventorySummaryColumn, column, column.Name() = cell.InventorySummaryColumn().Name() ); + + sumcell := selectobject( column, InventorySummaryCell, c, c.InventroySummaryRow() = sumrow ); + + showcell := column.InventorySummaryCell( relnew, EndingInventory := cell.EndingInventory(), MinimumInventory := cell.MinimumInventory(), MaximumInventory := cell.MaximumInventory(), AverageInventory := cell.AverageInventory() ); + showrow.InventorySummaryCell( relinsert, showcell ); + sumcell.EndingInventory( sumcell.EndingInventory() + cell.EndingInventory() ); + sumcell.MinimumInventory( sumcell.MinimumInventory() + cell.MinimumInventory() ); + sumcell.MaximumInventory( sumcell.MaximumInventory() + cell.MaximumInventory() ); + sumcell.AverageInventory( sumcell.AverageInventory() + cell.AverageInventory() ); + } } } } diff --git a/_Main/BL/Type_InventorySummaryReport/Method_GenerateColumn.qbl b/_Main/BL/Type_InventorySummaryReport/Method_GenerateColumn.qbl index bce7074..1b7156e 100644 --- a/_Main/BL/Type_InventorySummaryReport/Method_GenerateColumn.qbl +++ b/_Main/BL/Type_InventorySummaryReport/Method_GenerateColumn.qbl @@ -1,7 +1,10 @@ Quintiq file version 2.0 #parent: #root Method GenerateColumn ( - MacroPlan owner + MacroPlan owner, + String timeunit, + DateTime starttime, + DateTime endtime ) { TextBody: @@ -9,12 +12,37 @@ // 鐢勫叞楦� Jun-25-2024 (created) startofplanning := owner.StartOfPlanning(); startofyear := startofplanning.StartOfYear(); - startofnextyear := startofplanning.StartOfNextYear(); - - for( start := startofyear; start < startofnextyear; start := start.StartOfNextMonth() ){ + startofendyear := startofplanning.StartOfNextYear() - Duration::Days( 1 ); + //鏌ヨ鏃ユ湡杩斿洖闇�瑕佸湪璁″垝鏃ユ湡涔嬪唴 + if( starttime < startofendyear and endtime > startofyear ){ + if( starttime < startofyear ){ + starttime := startofyear; + } + if( endtime > startofendyear ){ + endtime := startofendyear; + } + for( start := starttime; start <= endtime; start := start.StartOfNextDay() ){ periodtime := start.Date(); periodname := periodtime.Format( "M2/D2/Y" ); - this.InventorySummaryColumn( relnew, Name := periodname, Period := periodtime ); + + if( timeunit = 'All' or timeunit = Translations::MP_GlobalParameters_Day() ){ + this.InventorySummaryColumn( relnew, Name := periodname, Period := periodtime, TimeUnit := Translations::MP_GlobalParameters_Day() ); + } + if( timeunit = 'All' or timeunit = Translations::MP_GlobalParameters_Week() ){ + weekend := ( start.StartOfNextWeek() - Duration::Days( 1 ) ).Date(); + + if( periodtime = weekend ){ + this.InventorySummaryColumn( relnew, Name := periodname, Period := periodtime, TimeUnit := Translations::MP_GlobalParameters_Week() ); + } + } + if( timeunit = 'All' or timeunit = Translations::MP_GlobalParameters_Month() ){ + monthend := ( start.StartOfNextMonth() - Duration::Days( 1 ) ).Date(); + + if( periodtime = monthend ){ + this.InventorySummaryColumn( relnew, Name := periodname, Period := periodtime, TimeUnit := Translations::MP_GlobalParameters_Month() ); + } + } + } } *] } diff --git a/_Main/BL/Type_InventorySummaryReport/Method_GetRow.qbl b/_Main/BL/Type_InventorySummaryReport/Method_GetRow.qbl index c11af49..7fc4aeb 100644 --- a/_Main/BL/Type_InventorySummaryReport/Method_GetRow.qbl +++ b/_Main/BL/Type_InventorySummaryReport/Method_GetRow.qbl @@ -2,9 +2,7 @@ #parent: #root Method GetRow ( String unit, - String product, - DateTime startdate, - DateTime enddate + String product ) as InventroySummaryRow { TextBody: @@ -15,7 +13,7 @@ if( isnull( row ) ){ row := this.InventroySummaryRow( relnew, Name := product, Unit := unit ); //鍒濆鍖栧崟鍏冩牸 - row.InitializeCell( this, startdate, enddate ); + row.InitializeCell( this ); } return row; diff --git a/_Main/BL/Type_InventorySummaryReport/StaticMethod_GetDefaultCCUnit.qbl b/_Main/BL/Type_InventorySummaryReport/StaticMethod_GetDefaultCCUnit.qbl index 6b92234..8379d63 100644 --- a/_Main/BL/Type_InventorySummaryReport/StaticMethod_GetDefaultCCUnit.qbl +++ b/_Main/BL/Type_InventorySummaryReport/StaticMethod_GetDefaultCCUnit.qbl @@ -5,7 +5,7 @@ TextBody: [* // 鐢勫叞楦� Jun-28-2024 (created) - return '闀挎槬'; - //return 'China'; + //return '闀挎槬'; + return 'Assembly Plant (France)'; *] } diff --git a/_Main/BL/Type_InventorySummaryReport/StaticMethod_GetDefaultDLUnit.qbl b/_Main/BL/Type_InventorySummaryReport/StaticMethod_GetDefaultDLUnit.qbl index f21ff7d..6bc2a6f 100644 --- a/_Main/BL/Type_InventorySummaryReport/StaticMethod_GetDefaultDLUnit.qbl +++ b/_Main/BL/Type_InventorySummaryReport/StaticMethod_GetDefaultDLUnit.qbl @@ -5,7 +5,7 @@ TextBody: [* // 鐢勫叞楦� Jun-28-2024 (created) - return '澶ц繛'; - //return 'Foregin'; + //return '澶ц繛'; + return 'Assembly Plant (Spain)'; *] } diff --git a/_Main/BL/Type_InventorySummarySource/StaticMethod_Initialize.qbl b/_Main/BL/Type_InventorySummarySource/StaticMethod_Initialize.qbl index 6ed8f07..183c900 100644 --- a/_Main/BL/Type_InventorySummarySource/StaticMethod_Initialize.qbl +++ b/_Main/BL/Type_InventorySummarySource/StaticMethod_Initialize.qbl @@ -1,7 +1,8 @@ Quintiq file version 2.0 #parent: #root StaticMethod Initialize ( - MacroPlan owner + MacroPlan owner, + InterfaceDataset interface ) { Description: '鍒濆鍖�' @@ -23,25 +24,105 @@ search := source.InventorySummarySearch( relnew, Unit := allunit, Generation := allunit, MqbMlb := allunit, Power := allunit, StartDate := Date::MinDate(), EndDate := Date::MaxDate() ); - table.GenerateColumn( owner ); - - //浠嶱roduct planning鏌ユ壘搴撳瓨鐐逛负闀挎槬瑁呴厤绾胯竟搴撶殑鎵�鏈塎QB浜у搧锛屽彇Total Demand瀛楁鎸夋湀姹囨�婚渶姹傛暟閲� + table.GenerateColumn( owner, 'All', startofyear, startofnextyear ); + //info( '-----------------------------------', table.InventorySummaryColumn( relsize ) ); + //搴撳瓨鏁伴噺涓篈ctual inventories閲岄潰鐨勭偣Planned inventories瀛楁搴撳瓨閲忓姞鎬� traverse( owner, Product_MP.ProductInStockingPoint_MP, pisp, pisp.IsLeaf() and not pisp.IsSystem() and ( pisp.StockingPoint_MP().UnitID() = ccunit or pisp.StockingPoint_MP().UnitID() = dlunit ) ){ unit := pisp.StockingPoint_MP().UnitID(); product := pisp.Product_MP(); - traverse( pisp, ProductInStockingPointInPeriod, pispip, pispip.Start() >= startofplanning - and pispip.Start() < startofnextyear and pispip.Period_MP().TimeUnit() = Translations::MP_GlobalParameters_Month() ){ - periodtime := pispip.Start().StartOfMonth().Date(); - periodname := periodtime.Format( "M2/D2/Y" ); - column := selectobject( table, InventorySummaryColumn, column, column.Name() = periodname and column.Period() = periodtime ); - ccrow := table.GetRow( ccunit, product.ID(), startofyear, startofnextyear ); - ccrow.Initialize( column, pispip );//鍙朤otal Demand瀛楁鎸夋湀姹囨�婚渶姹傛暟閲� + // info( '-----------------------------------', unit, product.ID() ); + weekpispips := construct( ProductInStockingPointInPeriods ); + monthpispips := construct( ProductInStockingPointInPeriods ); + nextweek := startofplanning.StartOfNextWeek(); + nextmonth := startofplanning.StartOfNextMonth(); + + unitrow := table.GetRow( unit, product.ID() ); + allrow := table.GetRow( allunit, product.ID() ); + pispips := selectsortedset( pisp, ProductInStockingPointInPeriod, pispip, pispip.Start() >= startofplanning and pispip.Start() < startofnextyear and pispip.Period_MP().TimeUnit() = Translations::MP_GlobalParameters_Day(), pispip.Start() ); + info( '-----------------------------------', isnull( allrow ), pispips.Size() ); + traverse( pispips, Elements, pispip ){ + info( '-----------------------------------', pispip.Start() ); + period := pispip.Period_MP(); + periodtime := period.Start().Date(); + periodname := periodtime.Format( "M2/D2/Y" ); + //澶╋紝閫夋嫨鏃ラ绮掑害鏃讹紝鏈熸湯搴撳瓨锛屾渶灏忓簱瀛橈紝鏈�澶у簱瀛樺拰骞冲潎搴撳瓨鐨勬暟鍊间繚鎸佷竴鑷� + daycolumn := selectobject( table, InventorySummaryColumn, column, column.Name() = periodname, column.Period() = periodtime, column.TimeUnit() = Translations::MP_GlobalParameters_Day() ); + unitrow.SetCellValue( daycolumn, pispip.PlannedInventoryLevelEnd() ); + allrow.SetCellValue( daycolumn, pispip.PlannedInventoryLevelEnd() ); + + //鍛紝閫夋嫨鍛ㄦ椂锛屾湡鏈簱瀛樹负姣忎竴鍛ㄦ渶鍚庝竴澶╃殑姹囨�诲簱瀛樹俊鎭紝鏈�灏忓簱瀛樹负杩欎竴鍛ㄥ簱瀛橀噺鏈�灏忕殑涓�澶╃殑鏁板�硷紝鏈�澶у簱瀛樹负杩欎竴鍛ㄥ簱瀛橀噺鏈�澶х殑涓�澶╃殑鏁板�硷紝骞冲潎搴撳瓨涓鸿鍛ㄧ殑骞冲潎鍊� + if( period.Start() < nextweek ){ + weekpispips.Add( pispip ); - allrow := table.GetRow( allunit, product.ID(), startofyear, startofnextyear ); - allrow.Initialize( column, pispip ); + weekend := nextweek - Duration::Days( 1 ); + if( period.Start() = weekend ){ + weekcolumn := selectobject( table, InventorySummaryColumn, column, column.Name() = periodname, column.Period() = periodtime, column.TimeUnit() = Translations::MP_GlobalParameters_Week() ); + + maxinventory := max( weekpispips, Elements, e, e.PlannedInventoryLevelEnd() ); + mininventory := min( weekpispips, Elements, e, e.PlannedInventoryLevelEnd() ); + aveinventory := average( weekpispips, Elements, e, e.PlannedInventoryLevelEnd() ); + unitrow.SetCellValue( weekcolumn, pispip.PlannedInventoryLevelEnd(), mininventory, maxinventory, aveinventory ); + allrow.SetCellValue( weekcolumn, pispip.PlannedInventoryLevelEnd(), mininventory, maxinventory, aveinventory ); + } + }else{ + weekpispips.Flush(); + weekpispips.Add( pispip ); + nextweek := nextweek.StartOfNextWeek(); } + + //鏈堬紝閫夋嫨鏈堟椂锛屾湡鏈簱瀛樹负姣忎竴鏈堟渶鍚庝竴澶╃殑姹囨�诲簱瀛樹俊鎭紝鏈�灏忓簱瀛樹负杩欎竴涓湀搴撳瓨閲忔渶灏忕殑涓�澶╃殑鏁板�硷紝鏈�澶у簱瀛樹负杩欎竴涓湀搴撳瓨閲忔渶澶х殑涓�澶╃殑鏁板�硷紝骞冲潎搴撳瓨涓鸿鏈堢殑骞冲潎鍊� + if( period.Start() < nextmonth ){ + monthpispips.Add( pispip ); + + monthend := nextmonth - Duration::Days( 1 ); + if( period.Start() = monthend ){ + monthcolumn := selectobject( table, InventorySummaryColumn, column, column.Name() = periodname, column.Period() = periodtime, column.TimeUnit() = Translations::MP_GlobalParameters_Month() ); + + maxinventory := max( monthpispips, Elements, e, e.PlannedInventoryLevelEnd() ); + mininventory := min( monthpispips, Elements, e, e.PlannedInventoryLevelEnd() ); + aveinventory := average( monthpispips, Elements, e, e.PlannedInventoryLevelEnd() ); + unitrow.SetCellValue( monthcolumn, pispip.PlannedInventoryLevelEnd(), mininventory, maxinventory, aveinventory ); + allrow.SetCellValue( monthcolumn, pispip.PlannedInventoryLevelEnd(), mininventory, maxinventory, aveinventory ); + } + }else{ + monthpispips.Flush(); + monthpispips.Add( pispip ); + nextmonth := nextmonth.StartOfNextMonth(); + } + } } - + //棣栧厛鍦‥ntities閲岃瘑鍒埗绾nit涓洪暱鏄�/澶ц繛鐨勬墍鏈夊簱瀛樼偣 + //闀挎槬搴撳瓨鐐� + ccsps := construct( Strings ); + //澶ц繛搴撳瓨鐐� + dlsps := construct( Strings ); + allsps := construct( Strings ); + traverse( owner, Unit, unit, unit.ID() = ccunit or unit.ID() = dlunit ){ + if( unit.ID() = ccunit ){ + ccsps := selectuniquevalues( unit, StockingPoint_MP, sp, sp.ID() ); + } + if( unit.ID() = dlunit ){ + dlsps := selectuniquevalues( unit, StockingPoint_MP, sp, sp.ID() ); + } + allsps := allsps.Union( selectuniquevalues( unit, StockingPoint_MP, sp, sp.ID() ) ); + } + //鍐嶅湪搴撳瓨鏇存柊鐨勫瓙鐣岄潰搴撳瓨鐐归�夋嫨涓壘鍒拌繖浜涘簱瀛樼偣鎵�鍏宠仈鐨勫凡鍕鹃�夊簱浣� + selections := selectset( interface, InventoryPointSelection, selection, allsps.Find( selection.StockpoingPoint() ) >= 0 and selection.IsIncluded() ); + productids := selectuniquevalues( selections, Elements, selection, selection.ProductID() ); + //鏈�鍚庡皢杩欎簺搴撲綅涓浂浠跺彿鐨勬暟閲忚繘琛屽姞鎬� + traverse( table, InventorySummaryColumn, column, column.Period() < startofplanning.Date() ){ + traverse( productids, Elements, productid ){ + if( column.TimeUnit() = Translations::MP_GlobalParameters_Day() ){//澶� + column.GenerateCell( selections, ccsps, dlsps, table, column.Period(), column.Period(), productid, allunit, ccunit, dlunit ); + }else if( column.TimeUnit() = Translations::MP_GlobalParameters_Week() ){//鍛� + column.GenerateCell( selections, ccsps, dlsps, table, column.Period().StartOfWeek(), column.Period(), productid, allunit, ccunit, dlunit ); + }else if( column.TimeUnit() = Translations::MP_GlobalParameters_Month() ){//鏈� + column.GenerateCell( selections, ccsps, dlsps, table, column.Period().StartOfMonth(), column.Period(), productid, allunit, ccunit, dlunit ); + } + } + } + + rows := selectsortedset( table, InventroySummaryRow, row, row.Name() ); i := 0; traverse( rows, Elements, e ){ diff --git "a/_Main/BL/Type_InventroySummaryRow/Method_Initialize\0430.qbl" "b/_Main/BL/Type_InventroySummaryRow/Method_Initialize\0430.qbl" deleted file mode 100644 index ec79cf4..0000000 --- "a/_Main/BL/Type_InventroySummaryRow/Method_Initialize\0430.qbl" +++ /dev/null @@ -1,15 +0,0 @@ -Quintiq file version 2.0 -#parent: #root -Method Initialize ( - InventorySummaryColumn column, - ProductInStockingPointInPeriod pispip -) -{ - TextBody: - [* - // 鐢勫叞楦� Jun-24-2024 (created) - cell := selectobject( this, InventorySummaryCell, cell, cell.InventorySummaryColumn() = column ); - - cell.ProductInStockingPointInPeriod( relinsert, pispip ); - *] -} diff --git a/_Main/BL/Type_InventroySummaryRow/Method_Initialize.qbl b/_Main/BL/Type_InventroySummaryRow/Method_Initialize.qbl index fbffb32..4adcb27 100644 --- a/_Main/BL/Type_InventroySummaryRow/Method_Initialize.qbl +++ b/_Main/BL/Type_InventroySummaryRow/Method_Initialize.qbl @@ -8,7 +8,7 @@ TextBody: [* // 鐢勫叞楦� Jun-24-2024 (created) - cell := column.InventorySummaryCell( relnew ); + cell := column.InventorySummaryCell( relnew, AverageInventory := 0, EndingInventory := 0, MaximumInventory := 0, MinimumInventory := 0 ); this.InventorySummaryCell( relinsert, cell ); *] diff --git a/_Main/BL/Type_InventroySummaryRow/Method_InitializeCell.qbl b/_Main/BL/Type_InventroySummaryRow/Method_InitializeCell.qbl index a619b37..46259bb 100644 --- a/_Main/BL/Type_InventroySummaryRow/Method_InitializeCell.qbl +++ b/_Main/BL/Type_InventroySummaryRow/Method_InitializeCell.qbl @@ -1,19 +1,13 @@ Quintiq file version 2.0 #parent: #root Method InitializeCell ( - InventorySummaryReport table, - DateTime startdate, - DateTime enddate + InventorySummaryReport table ) { TextBody: [* // 鐢勫叞楦� Jun-28-2024 (created) - for( start := startdate; start < enddate; start := start.StartOfNextMonth() ){ - periodtime := start.Date(); - periodname := periodtime.Format( "M2/D2/Y" ); - column := selectobject( table, InventorySummaryColumn, column, column.Name() = periodname and column.Period() = periodtime ); - + traverse( table, InventorySummaryColumn, column ){ this.Initialize( column, this.Unit() ); } *] diff --git "a/_Main/BL/Type_InventroySummaryRow/Method_SetCellValue\0430.qbl" "b/_Main/BL/Type_InventroySummaryRow/Method_SetCellValue\0430.qbl" new file mode 100644 index 0000000..20f91c4 --- /dev/null +++ "b/_Main/BL/Type_InventroySummaryRow/Method_SetCellValue\0430.qbl" @@ -0,0 +1,18 @@ +Quintiq file version 2.0 +#parent: #root +Method SetCellValue ( + InventorySummaryColumn column, + Real quantity +) +{ + TextBody: + [* + // 鐢勫叞楦� Jun-24-2024 (created) + cell := selectobject( this, InventorySummaryCell, cell, cell.InventorySummaryColumn() = column ); + + cell.AverageInventory( cell.AverageInventory() + quantity ); + cell.EndingInventory( cell.EndingInventory() + quantity ); + cell.MaximumInventory( cell.MaximumInventory() + quantity ); + cell.MinimumInventory( cell.MinimumInventory() + quantity ); + *] +} diff --git a/_Main/BL/Type_InventroySummaryRow/Method_SetCellValue0.qbl b/_Main/BL/Type_InventroySummaryRow/Method_SetCellValue0.qbl new file mode 100644 index 0000000..7f6b3b2 --- /dev/null +++ b/_Main/BL/Type_InventroySummaryRow/Method_SetCellValue0.qbl @@ -0,0 +1,21 @@ +Quintiq file version 2.0 +#parent: #root +Method SetCellValue ( + InventorySummaryColumn column, + Real endinginventory, + Real minimuminventory, + Real maximuminventory, + Real averageinventory +) +{ + TextBody: + [* + // 鐢勫叞楦� Jun-24-2024 (created) + cell := selectobject( this, InventorySummaryCell, cell, cell.InventorySummaryColumn() = column ); + + cell.AverageInventory( cell.AverageInventory() + averageinventory ); + cell.EndingInventory( cell.EndingInventory() + endinginventory ); + cell.MaximumInventory( cell.MaximumInventory() + maximuminventory ); + cell.MinimumInventory( cell.MinimumInventory() + minimuminventory ); + *] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_OnCreated.def index 62f7985..d90dc62 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_OnCreated.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_OnCreated.def @@ -10,12 +10,12 @@ Body: [* //鍒濆鍖� - if( not exists( MacroPlan, FinancialProductionSource, source, not source.IsImport() ) ){ + //if( not exists( MacroPlan, FinancialProductionSource, source, not source.IsImport() ) ){ FinancialProductionSource::Initialize( MacroPlan ); - } + //} //info( '------------------1----------------' ); table := selectobject( MacroPlan, FinancialProductionSource.FinancialProductionReport, table, not table.IsImport() and table.IsShow() ); - info( '------------------2----------------', table.IsImport(), table.IsShow() ); + //info( '------------------2----------------', table.IsImport(), table.IsShow() ); DataHolderTable.Data( table ); dhSearch.Data( table.FinancialProductionSource().FinancialProductionSearch() ); diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_OnCreated.def index 533640c..68f009c 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_OnCreated.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_OnCreated.def @@ -9,12 +9,12 @@ { Body: [* - if( not exists( MacroPlan, FinancialSalesSource, source, not source.IsImport() ) ){ + //if( not exists( MacroPlan, FinancialSalesSource, source, not source.IsImport() ) ){ FinancialSalesSource::Initialize( MacroPlan ); - } + //} //info( '------------------1----------------' ); table := selectobject( MacroPlan, FinancialSalesSource.FinancialSalesReport, table, not table.IsImport() and table.IsShow() ); - info( '------------------2----------------', table.IsImport(), table.IsShow() ); + //info( '------------------2----------------', table.IsImport(), table.IsShow() ); DataHolderTable.Data( table ); dhSearch.Data( table.FinancialSalesSource().FinancialSalesSearch() ); diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelUnit_715_ddslUnit_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelUnit_715_ddslUnit_OnCreated.def index 5a4d8e6..5424b65 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelUnit_715_ddslUnit_OnCreated.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelUnit_715_ddslUnit_OnCreated.def @@ -10,7 +10,7 @@ Body: [* - valueString := "<All>;" + FinancialProductionReport::GetDefaultCCUnit() + ";" + FinancialProductionReport::GetDefaultDLUnit(); + valueString := "<All>;" + FinancialSalesReport::GetSalesSegmentCC() + ";" + FinancialSalesReport::GetSalesSegmentDL(); this.Strings( valueString ); *] diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Component_PanelPeriod.def b/_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Component_PanelPeriod.def index bc6b316..188ac98 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Component_PanelPeriod.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Component_PanelPeriod.def @@ -21,6 +21,7 @@ BaseType: 'WebDateSelector' Properties: [ + Date: 9999-12-31 Label: 'End date' Taborder: 1 ] diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_OnCreated.def index 9b50f5f..ca45d5d 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_OnCreated.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_OnCreated.def @@ -9,12 +9,12 @@ { Body: [* - if( not isnull( MacroPlan.InventorySummarySource() ) ){ - InventorySummarySource::Initialize( MacroPlan ); - } + //if( not isnull( MacroPlan.InventorySummarySource() ) ){ + InventorySummarySource::Initialize( MacroPlan, InterfaceDataset ); + //} //info( '------------------1----------------' ); table := selectobject( MacroPlan, InventorySummarySource.InventorySummaryReport, table, table.IsShow() ); - info( '------------------2----------------', table.IsShow() ); + //info( '------------------2----------------', table.IsShow() ); DataHolderTable.Data( table ); dhSearch.Data( table.InventorySummarySource().InventorySummarySearch() ); diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_PanelCategory_RadioButtonGroupUseForPlanning_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_PanelCategory_RadioButtonGroupUseForPlanning_OnCreated.def new file mode 100644 index 0000000..cfe85d3 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_PanelCategory_RadioButtonGroupUseForPlanning_OnCreated.def @@ -0,0 +1,16 @@ +Quintiq file version 2.0 +#parent: PanelCategory/RadioButtonGroupUseForPlanning_545 +Response OnCreated () id:Response_PanelCategory_RadioButtonGroupUseForPlanning_OnCreated +{ + #keys: '[415136.0.875614032]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebComponent_OnCreated' + QuillAction + { + Body: + [* + this.ButtonValues( Translations::MP_GlobalParameters_Day() + ';' + Translations::MP_GlobalParameters_Week() + ';' + Translations::MP_GlobalParameters_Month() ); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_PanelPeriod_DateSelectorEnd_OnChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_PanelPeriod_DateSelectorEnd_OnChanged.def index 7d13e79..503f315 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_PanelPeriod_DateSelectorEnd_OnChanged.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_PanelPeriod_DateSelectorEnd_OnChanged.def @@ -10,9 +10,13 @@ Body: [* //鏃ユ湡鏀瑰彉鍚庡埛鏂版樉绀� - if( dhSearch.Data().EndDate() <> this.Date() ){ - dhSearch.Data().EndDate( this.Date() ); - DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() ); + if( this.Date() < DateSelectorStart.Date() ){ + this.HintError( 'The end date cannot be less than the start date!' ); + }else{ + if( dhSearch.Data().EndDate() <> this.Date() ){ + dhSearch.Data().EndDate( this.Date() ); + DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() ); + } } *] GroupServerCalls: false diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_PanelPeriod_DateSelectorStart_OnChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_PanelPeriod_DateSelectorStart_OnChanged.def index aa54f0a..ba04b08 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_PanelPeriod_DateSelectorStart_OnChanged.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_PanelPeriod_DateSelectorStart_OnChanged.def @@ -10,9 +10,13 @@ Body: [* //鏃ユ湡鏀瑰彉鍚庡埛鏂版樉绀� - if( dhSearch.Data().StartDate() <> this.Date() ){ - dhSearch.Data().StartDate( this.Date() ); - DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() ); + if( this.Date() > DateSelectorEnd.Date() ){ + this.HintError( 'The start date cannot be later than the end date!' ); + }else{ + if( dhSearch.Data().StartDate() <> this.Date() ){ + dhSearch.Data().StartDate( this.Date() ); + DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() ); + } } *] GroupServerCalls: false diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_PanelUnit_ddslUnit_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_PanelUnit_ddslUnit_OnCreated.def index 67038e1..81f2cba 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_PanelUnit_ddslUnit_OnCreated.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_PanelUnit_ddslUnit_OnCreated.def @@ -10,7 +10,7 @@ Body: [* - valueString := "<All>;" + FinancialProductionReport::GetDefaultCCUnit() + ";" + FinancialProductionReport::GetDefaultDLUnit(); + valueString := "<All>;" + InventorySummaryReport::GetDefaultCCUnit() + ";" + InventorySummaryReport::GetDefaultDLUnit(); this.Strings( valueString ); *] -- Gitblit v1.9.3