From ed070d695972cadcf9b6bbfe9e779aa5a0850125 Mon Sep 17 00:00:00 2001 From: lazhen <17772815105@139.com> Date: 星期三, 09 十月 2024 09:15:28 +0800 Subject: [PATCH] 库存汇总报表数据逻辑bug --- _Main/BL/Type_InventorySummaryColumn/Attribute_EndaDate.qbl | 7 + _Main/BL/Type_MachiningPipelineReport/Method_GenerateColumn.qbl | 4 _Main/UI/MacroPlannerWebApp/Component_FormEnginePipelineReport/Response_PanelExport_570_bRefresh_OnClick.def | 2 _Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_InitializeNew.qbl | 10 _Main/BL/Type_InventorySummaryColumn/Attribute_StartDate.qbl | 7 + _Main/BL/Type_EnginePipelineReport/StaticMethod_GetDefaultProductParent.qbl | 3 /dev/null | 8 - _Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_GetDefaultProductParent.qbl | 3 _Main/BL/Type_InventorySummaryReport/Method_GenerateColumn.qbl | 37 +++--- _Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_Initialize.qbl | 28 ++-- _Main/BL/Type_InventorySummaryReport/Method_Generate.qbl | 46 ++++--- _Main/UI/MacroPlannerWebApp/Component_FormMachiningPipelineReport/Response_PanelExport_bRefresh_OnClick.def | 2 _Main/BL/Type_MachiningPipelineRow/Method_SetAssemblyPlanValue#0.qbl | 20 +++ _Main/BL/Type_EnginePipelineSource/StaticMethod_Initialize.qbl | 18 -- _Main/BL/Type_InventorySummarySource/StaticMethod_Initialize.qbl | 88 ++------------ _Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_GetDefaultProductParent.qbl | 3 _Main/BL/Type_MachiningPipelineSource0/StaticMethod_Initialize.qbl | 52 +++----- 17 files changed, 145 insertions(+), 193 deletions(-) diff --git a/_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_GetDefaultProductParent.qbl b/_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_GetDefaultProductParent.qbl index a0443f2..f076bf5 100644 --- a/_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_GetDefaultProductParent.qbl +++ b/_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_GetDefaultProductParent.qbl @@ -5,6 +5,7 @@ TextBody: [* // 鐢勫叞楦� Aug-14-2024 (created) - return '浜ф垚鍝�'; + //return '浜ф垚鍝�'; + return '鍙戝姩鏈�'; *] } diff --git a/_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_Initialize.qbl b/_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_Initialize.qbl index 25ae29f..69c2ade 100644 --- a/_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_Initialize.qbl +++ b/_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_Initialize.qbl @@ -13,7 +13,7 @@ allunit := CCEngineLogisticsCostReport::GetDefaultAllUnit(); ccfactory := CCEngineLogisticsCostReport::GetCCFactory(); ccunit := CCEngineLogisticsCostReport::GetDefaultCCUnit(); - ccline := CCEngineLogisticsCostReport::GetStockingPointCCLine(); + //ccline := CCEngineLogisticsCostReport::GetStockingPointCCLine(); ccrent := CCEngineLogisticsCostReport::GetStockingPointCCRent(); startofplanning := owner.StartOfPlanning().Date(); @@ -30,23 +30,23 @@ //澶栫搴撳叆搴撹垂鐢細鍙栬嚜璐㈠姟浜ч噺鎶ヨ〃鐨勪骇閲忥紝鍦ㄤ骇鍝佽〃鏍规嵁鍙戝姩鏈哄彿鎵惧埌瀵瑰簲鐨凣eneration 鍜屾í绾靛埗锛屽湪鍙戝姩鏈烘垚鏈弬鏁拌〃閲屾壘鍒板搴旂殑鍖呰瀹归噺鍜屽叆搴撳崟浠凤紝鐢ㄥ叕寮忚绠楋紝鏈堝害杩涜姹囨�� traverse( owner, FinancialProductionSource, source, not source.IsImport() ){//璐㈠姟浜ч噺鎶ヨ〃闈炲鍏� traverse( source, FinancialProductionReport, report, not report.IsShow() ){//璐㈠姟浜ч噺鎶ヨ〃涓嶆樉绀� - traverse( report, FinancialProductionRow, row, row.Unit() = ccunit and exists( row, FinancialProductionCell, cell, cell.Value() <> '0' and cell.FinancialProductionColumn().IsDay() ) ){//璐㈠姟浜ч噺鎶ヨ〃閲岀殑闀挎槬浜ч噺, 涓嶄负0 + traverse( report, FinancialProductionRow, row, row.Unit() = ccunit and exists( row, FinancialProductionCell, cell, cell.Value() <> '0' and not cell.FinancialProductionColumn().IsDay() ) ){//璐㈠姟浜ч噺鎶ヨ〃閲岀殑闀挎槬浜ч噺, 涓嶄负0 product := row.Product_MP(); productparents := product.GetAllParent(); if( exists( productparents, Elements, e, e.ID() = produtparent ) ){//鏌ヨ浜у搧绫诲瀷鏄彂鍔ㄦ満 //鏌ヨ瀵瑰簲鐨勫彂鍔ㄦ満鎴愭湰 - enginecosts := selectset( owner, LogisticsCostEngine, engine, engine.Generation().ToLower() = product.Generation().ToLower() + enginecosts := selectset( owner, LogisticsCostEngine, engine, engine.PackagingCapacity() <> 0 and engine.Generation().ToLower() = product.Generation().ToLower() and engine.MLB_MQB() = product.MQBMLB() and engine.Factory() = ccfactory );//ccunit if( not isnull( enginecosts ) and enginecosts.Size() > 0 ){ ccrow := table.GetRow( row.Name() ); products.Add( product ); - traverse( row, FinancialProductionCell, cell, cell.Value() <> '0' and cell.FinancialProductionColumn().IsDay() ){ + traverse( row, FinancialProductionCell, cell, cell.Value() <> '0' and not cell.FinancialProductionColumn().IsDay() ){ cellcolumn := cell.FinancialProductionColumn(); enginecost := selectobject( enginecosts, Elements, engine, engine.StartDate() <= cellcolumn.Period() and engine.EndDate() >= cellcolumn.Period() ); if( not isnull( enginecost ) ){ //鍏ュ簱閲�/鍖呰瀹归噺*鍏ュ簱鍗曚环锛屽叆搴撻噺绛変簬闀挎槬浜ч噺 - quantity := ceil( [Number]cell.Value() / enginecost.PackagingCapacity() ) * enginecost.WarehousingPrice(); + quantity := ceil( cell.Quantity() / enginecost.PackagingCapacity() ) * enginecost.WarehousingPrice(); column := selectobject( table, Column, column, column.Name() = cell.FinancialProductionColumn().Name() ); //澶栫搴撳叆搴撹垂鐢� ccrow.SetRentEnterCost( column, quantity ); @@ -60,23 +60,23 @@ //澶栫搴撳嚭搴撹垂鐢細鍑哄簱閲忕瓑浜庨暱鏄ラ攢閲忥紝鍙栬嚜璐㈠姟閿�閲忔姤琛ㄧ殑閿�閲忥紝鍦ㄤ骇鍝佽〃鏍规嵁鍙戝姩鏈哄彿鎵惧埌瀵瑰簲鐨凣eneration 鍜屾í绾靛埗锛屽湪鍙戝姩鏈烘垚鏈弬鏁拌〃閲屾壘鍒板搴旂殑鍖呰瀹归噺鍜屽嚭搴撳崟浠凤紝鐢ㄥ叕寮忚绠楋紝鏈堝害杩涜姹囨�� traverse( owner, FinancialSalesSource, source, not source.IsImport() ){//璐㈠姟閿�閲忔姤琛ㄩ潪瀵煎叆 traverse( source, FinancialSalesReport, report, not report.IsShow() ){//璐㈠姟閿�閲忔姤琛ㄤ笉鏄剧ず - traverse( report, FinancialSalesRow, row, row.Unit() = ccunit and exists( row, FinancialSalesCell, cell, cell.Value() <> '0' and cell.FinancialSalesColumn().IsDay() ) ){//璐㈠姟閿�閲忔姤琛ㄩ噷鐨勯暱鏄ヤ骇閲�, 涓嶄负0 + traverse( report, FinancialSalesRow, row, row.Unit() = ccunit and exists( row, FinancialSalesCell, cell, cell.Value() <> '0' and not cell.FinancialSalesColumn().IsDay() ) ){//璐㈠姟閿�閲忔姤琛ㄩ噷鐨勯暱鏄ヤ骇閲�, 涓嶄负0 product := row.Product_MP(); productparents := product.GetAllParent(); if( exists( productparents, Elements, e, e.ID() = produtparent ) ){//鏌ヨ浜у搧绫诲瀷鏄彂鍔ㄦ満 //鏌ヨ瀵瑰簲鐨勫彂鍔ㄦ満鎴愭湰 - enginecosts := selectset( owner, LogisticsCostEngine, engine, engine.Generation().ToLower() = product.Generation().ToLower() + enginecosts := selectset( owner, LogisticsCostEngine, engine, engine.PackagingCapacity() <> 0 and engine.Generation().ToLower() = product.Generation().ToLower() and engine.MLB_MQB() = product.MQBMLB() and engine.Factory() = ccfactory ); if( not isnull( enginecosts ) and enginecosts.Size() > 0 ){ ccrow := table.GetRow( row.Name() ); products.Add( product ); - traverse( row, FinancialSalesCell, cell, cell.Value() <> '0' and cell.FinancialSalesColumn().IsDay() ){ + traverse( row, FinancialSalesCell, cell, cell.Value() <> '0' and not cell.FinancialSalesColumn().IsDay() ){ cellcolumn := cell.FinancialSalesColumn(); enginecost := selectobject( enginecosts, Elements, engine, engine.StartDate() <= cellcolumn.Period() and engine.EndDate() >= cellcolumn.Period() ); if( not isnull( enginecost ) ){ //鍑哄簱閲�/鍖呰瀹归噺*鍑哄簱鍗曚环锛屽叆搴撻噺绛変簬闀挎槬閿�閲� - quantity := ceil( [Number]cell.Value() / enginecost.PackagingCapacity() ) * enginecost.WarehousingPrice(); + quantity := ceil( [Number]cell.Value() / enginecost.PackagingCapacity() ) * enginecost.OutboundPrice(); column := selectobject( table, Column, column, column.Name() = cell.FinancialSalesColumn().Name() ); //澶栫搴撳嚭搴撹垂鐢� ccrow.SetRentOutCost( column, quantity ); @@ -91,7 +91,7 @@ traverse( owner, Unit.Lane.LaneLeg, laneleg ){ //璧峰搴撳瓨鐐规槸鍚︽槸闀挎槬瑁呴厤绾胯竟搴� originsp := selectobject( owner, StockingPoint_MP, sp, sp.ID() = laneleg.OriginStockingPointID() ); - isccspline := table.IsInUnit( originsp, ccline ); + isccspline := table.IsInUnit( originsp, 'CC 鍘傚唴搴�' ); //鐩殑鍦版槸鍚︽槸闀挎槬澶栫搴� destisp := selectobject( owner, StockingPoint_MP, sp, sp.ID() = laneleg.DestinationStockingPointID() ); isccrent := table.IsInUnit( destisp, ccrent ); @@ -101,8 +101,8 @@ periodname := periodtime.Format( "M2/D2/Y" ); column := selectobject( table, Column, column, column.Name() = periodname and column.StartDate() = periodtime ); - enginecosts := selectset( owner, LogisticsCostEngine, engine, engine.StartDate() <= trip.Arrival().Date() and engine.EndDate() >= trip.Arrival().Date() ); - transcosts := selectset( owner, LogisticsCostTransport, trans, trans.StartDate() <= trip.Arrival().Date() and trans.EndDate() >= trip.Arrival().Date() ); + enginecosts := selectset( owner, LogisticsCostEngine, engine, engine.PackagingCapacity() <> 0 and engine.StartDate() <= trip.Arrival().Date() and engine.EndDate() >= trip.Arrival().Date() ); + transcosts := selectset( owner, LogisticsCostTransport, trans, trans.LoadingCapacity() <> 0 and trans.StartDate() <= trip.Arrival().Date() and trans.EndDate() >= trip.Arrival().Date() ); if( not isnull( enginecosts ) and enginecosts.Size() > 0 and not isnull( transcosts ) and transcosts.Size() > 0 ){ traverse( trip, ProductInTrip, pit, pit.Quantity() <> 0 ){ product := pit.Product_MP(); @@ -113,7 +113,7 @@ and engine.MLB_MQB() = product.MQBMLB() and engine.Factory() = ccfactory ); //鍦ㄨ繍杈撴垚鏈弬鏁拌〃閲屾壘鍒板彂鍔ㄦ満瀵瑰簲杩愯緭鍗曚环鍜岃杞藉閲� - transcost := selectobject( transcosts, Elements, trans, trans.Origin() = ccline + transcost := selectobject( transcosts, Elements, trans, trans.Origin() = 'CC 鍘傚唴搴�' and trans.Destination() = ccrent and exists( productparents, Elements, e, ifexpr( trans.Product().FindString( '鍙戝姩鏈�', 0 ) >= 0, e.ID() = produtparent, e.ID() = trans.Product() ) ) ); if( not isnull( enginecost ) and not isnull( transcost ) ){ @@ -142,7 +142,7 @@ productparents := product.GetAllParent(); if( exists( productparents, Elements, e, e.ID() = produtparent ) ){////鏌ヨ浜у搧绫诲瀷鏄彂鍔ㄦ満 //鏌ヨ瀵瑰簲鐨勫彂鍔ㄦ満鎴愭湰 - enginecosts := selectset( owner, LogisticsCostEngine, engine, engine.Generation().ToLower() = product.Generation().ToLower() + enginecosts := selectset( owner, LogisticsCostEngine, engine, engine.PackagingCapacity() <> 0 and engine.Generation().ToLower() = product.Generation().ToLower() and engine.MLB_MQB() = product.MQBMLB() and engine.Factory() = ccfactory ); if( not isnull( enginecosts ) and enginecosts.Size() > 0 ){ diff --git a/_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_GetDefaultProductParent.qbl b/_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_GetDefaultProductParent.qbl index a0443f2..f076bf5 100644 --- a/_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_GetDefaultProductParent.qbl +++ b/_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_GetDefaultProductParent.qbl @@ -5,6 +5,7 @@ TextBody: [* // 鐢勫叞楦� Aug-14-2024 (created) - return '浜ф垚鍝�'; + //return '浜ф垚鍝�'; + return '鍙戝姩鏈�'; *] } diff --git a/_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_InitializeNew.qbl b/_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_InitializeNew.qbl index 90133e3..3ab7f55 100644 --- a/_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_InitializeNew.qbl +++ b/_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_InitializeNew.qbl @@ -136,7 +136,7 @@ //澶ц繛澶栫搴撳叆搴撹垂鐢細鍏ュ簱閲�/鍖呰瀹归噺*鍏ュ簱鍗曚环锛屽叆搴撻噺绛変簬澶ц繛宸ュ巶璇ヤ骇鍝佷骇閲忓噺鍘诲彂寰�闀挎槬(澶ц繛鐨勯暱鏄ュ绉熷簱锛夌殑鏁伴噺-newSupply traverse( owner, FinancialProductionSource, source, not source.IsImport() ){//璐㈠姟浜ч噺鎶ヨ〃闈炲鍏� traverse( source, FinancialProductionReport, report, not report.IsShow() ){//璐㈠姟浜ч噺鎶ヨ〃涓嶆樉绀� - traverse( report, FinancialProductionRow, row, row.Unit() = dlunit and exists( row, FinancialProductionCell, cell, cell.Value() <> '0' and cell.FinancialProductionColumn().IsDay() ) ){//璐㈠姟浜ч噺鎶ヨ〃閲岀殑澶ц繛浜ч噺, 涓嶄负0 + traverse( report, FinancialProductionRow, row, row.Unit() = dlunit and exists( row, FinancialProductionCell, cell, cell.Value() <> '0' and not cell.FinancialProductionColumn().IsDay() ) ){//璐㈠姟浜ч噺鎶ヨ〃閲岀殑澶ц繛浜ч噺, 涓嶄负0 product := row.Product_MP(); productparents := product.GetAllParent(); if( exists( productparents, Elements, e, e.ID() = produtparent ) ){//鏌ヨ浜у搧绫诲瀷鏄彂鍔ㄦ満 @@ -147,7 +147,7 @@ if( not isnull( enginecosts ) and enginecosts.Size() > 0 ){ products.Add( product ); ccrow := table.GetRow( row.Name() ); - traverse( row, FinancialProductionCell, cell, cell.Value() <> '0' and cell.FinancialProductionColumn().IsDay() ){ + traverse( row, FinancialProductionCell, cell, cell.Value() <> '0' and not cell.FinancialProductionColumn().IsDay() ){ cellcolumn := cell.FinancialProductionColumn(); enginecost := selectobject( enginecosts, Elements, engine, engine.StartDate() <= cellcolumn.Period() and engine.EndDate() >= cellcolumn.Period() ); if( not isnull( enginecost ) ){ @@ -164,7 +164,7 @@ //澶ц繛澶栫搴撳嚭搴撹垂鐢細鍑哄簱閲�/鍖呰瀹归噺*鍑哄簱鍗曚环锛屽嚭搴撻噺绛変簬澶ц繛宸ュ巶璇ヤ骇鍝侀攢閲忓噺鍘诲彂寰�闀挎槬鐨勬暟閲�-newSupply, 澶ц繛鍘傚唴搴擄紝澶ц繛澶栫搴� traverse( owner, FinancialSalesSource, source, not source.IsImport() ){//璐㈠姟閿�閲忔姤琛ㄩ潪瀵煎叆 traverse( source, FinancialSalesReport, report, not report.IsShow() ){//璐㈠姟閿�閲忔姤琛ㄤ笉鏄剧ず - traverse( report, FinancialSalesRow, row, row.Unit() = ccunit and exists( row, FinancialSalesCell, cell, cell.Value() <> '0' and cell.FinancialSalesColumn().IsDay() ) ){//璐㈠姟閿�閲忔姤琛ㄩ噷鐨勫ぇ杩炰骇閲�, 涓嶄负0 + traverse( report, FinancialSalesRow, row, row.Unit() = ccunit and exists( row, FinancialSalesCell, cell, cell.Value() <> '0' and not cell.FinancialSalesColumn().IsDay() ) ){//璐㈠姟閿�閲忔姤琛ㄩ噷鐨勫ぇ杩炰骇閲�, 涓嶄负0 product := row.Product_MP(); productparents := product.GetAllParent(); if( exists( productparents, Elements, e, e.ID() = produtparent ) ){//鏌ヨ浜у搧绫诲瀷鏄彂鍔ㄦ満 @@ -175,7 +175,7 @@ if( not isnull( enginecosts ) and enginecosts.Size() > 0 ){ products.Add( product ); ccrow := table.GetRow( row.Name() ); - traverse( row, FinancialSalesCell, cell, cell.Value() <> '0' and cell.FinancialSalesColumn().IsDay() ){ + traverse( row, FinancialSalesCell, cell, cell.Value() <> '0' and not cell.FinancialSalesColumn().IsDay() ){ cellcolumn := cell.FinancialSalesColumn(); enginecost := selectobject( enginecosts, Elements, engine, engine.StartDate() <= cellcolumn.Period() and engine.EndDate() >= cellcolumn.Period() ); if( not isnull( enginecost ) ){ @@ -233,7 +233,7 @@ salessegment := forecast.SalesSegment_MP(); parentsalessegments := salessegment.GetAllParent(); //鏄惁灞炰簬闀挎槬 - iscc := salessegment.Name().StartsWith( 'Changechun' ) or exists( parentsalessegments, Elements, psalessegment, psalessegment.Name().StartsWith( 'Changechun' ) ); + iscc := salessegment.Name().StartsWith( 'Changchun' ) or exists( parentsalessegments, Elements, psalessegment, psalessegment.Name().StartsWith( 'Changchun' ) ); if( iscc ){ product := forecast.Product_MP(); productparents := product.GetAllParent(); diff --git a/_Main/BL/Type_EnginePipelineReport/StaticMethod_GetDefaultProductParent.qbl b/_Main/BL/Type_EnginePipelineReport/StaticMethod_GetDefaultProductParent.qbl index a0443f2..f076bf5 100644 --- a/_Main/BL/Type_EnginePipelineReport/StaticMethod_GetDefaultProductParent.qbl +++ b/_Main/BL/Type_EnginePipelineReport/StaticMethod_GetDefaultProductParent.qbl @@ -5,6 +5,7 @@ TextBody: [* // 鐢勫叞楦� Aug-14-2024 (created) - return '浜ф垚鍝�'; + //return '浜ф垚鍝�'; + return '鍙戝姩鏈�'; *] } diff --git a/_Main/BL/Type_EnginePipelineSource/StaticMethod_Initialize.qbl b/_Main/BL/Type_EnginePipelineSource/StaticMethod_Initialize.qbl index a024d30..1dad475 100644 --- a/_Main/BL/Type_EnginePipelineSource/StaticMethod_Initialize.qbl +++ b/_Main/BL/Type_EnginePipelineSource/StaticMethod_Initialize.qbl @@ -8,14 +8,7 @@ [* // 鐢勫叞楦� Jun-24-2024 (created) owner.EnginePipelineSource( relflush ); - //ccunit := EnginePipelineReport::GetDefaultCCUnit(); - //dlunit := EnginePipelineReport::GetDefaultDLUnit(); productparent := EnginePipelineReport::GetDefaultProductParent(); - //ccalineunit := EnginePipelineReport::GetDefaultCCALineUnit(); - //dlalienunit := EnginePipelineReport::GetDefaultDLALineUnit() - //ccmplineunit := EnginePipelineReport::GetDefaultCCMPLineUnit() - //dlmplineunit := EnginePipelineReport::GetDefaultDLMPLineUnit(); - //allunit := EnginePipelineReport::GetDefaultAllUnit(); source := owner.EnginePipelineSource( relnew, Name := EnginePipelineReport::GetDefaultName() ); table := source.Report( relnew, ID := source.Name(), Name := source.Name() ); showtable := source.Report( relnew, ID := source.Name() + 'Show', Name := source.Name(), IsShow := true ); @@ -28,16 +21,11 @@ endperiod := maxobject( owner, Period_MP, period, not period.IsHistorical() and period.TimeUnit() = Translations::MP_GlobalParameters_Day(), period.StartDate() ); //鐢熸垚鐢熶骇鍜屽簱瀛樻暟鎹� - //traverse( owner, StockingPoint_MP, stockingpoint ){ - traverse( owner, StockingPoint_MP, stockingpoint, stockingpoint.ID().EndsWith( '鍘傚唴搴�' ) ){ - // unit := stockingpoint.Unit(); - // parentunits := unit.GetAllParent(); + traverse( owner, StockingPoint_MP, stockingpoint ){ //鏄惁灞炰簬闀挎槬宸ュ巶 - // iscc := unit.ID() = ccalineunit or unit.ID() = ccmplineunit or exists( parentunits, Elements, punit, punit.ID() = ccalineunit or punit.ID() = ccmplineunit ); - iscc := stockingpoint.ID().StartsWith( 'CC' ); + iscc := ( stockingpoint.ID().StartsWith( 'CC' ) or stockingpoint.ID().StartsWith( '闀挎槬' ) ) and stockingpoint.ID().EndsWith( '鍘傚唴搴�' ); //鏄惁灞炰簬澶ц繛宸ュ巶 - // isdl := unit.ID() = dlalienunit or unit.ID() = dlmplineunit or exists( parentunits, Elements, punit, punit.ID() = dlalienunit or punit.ID() = dlmplineunit ); - isdl := stockingpoint.ID().StartsWith( '澶ц繛' ); + isdl := ( ( stockingpoint.ID().StartsWith( 'DL' ) or stockingpoint.ID().StartsWith( '澶ц繛' ) ) and stockingpoint.ID().EndsWith( '鍘傚唴搴�' ) ) or stockingpoint.ID() = '澶ц繛澶栫搴�'; traverse( stockingpoint, ProductInStockingPoint_MP, pisp, pisp.Product_MP().IsLeaf() and not pisp.IsSystem() and exists( pisp.Product_MP().GetAllParent(), Elements, e, e.ID() = productparent ) diff --git a/_Main/BL/Type_InventorySummaryColumn/Attribute_EndaDate.qbl b/_Main/BL/Type_InventorySummaryColumn/Attribute_EndaDate.qbl new file mode 100644 index 0000000..13999d8 --- /dev/null +++ b/_Main/BL/Type_InventorySummaryColumn/Attribute_EndaDate.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute EndaDate +{ + #keys: '3[415136.0.1181174808][415136.0.1181174807][415136.0.1181174809]' + ValueType: Date +} diff --git a/_Main/BL/Type_InventorySummaryColumn/Attribute_StartDate.qbl b/_Main/BL/Type_InventorySummaryColumn/Attribute_StartDate.qbl new file mode 100644 index 0000000..f957f31 --- /dev/null +++ b/_Main/BL/Type_InventorySummaryColumn/Attribute_StartDate.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute StartDate +{ + #keys: '3[415136.0.1181144701][415136.0.1181144700][415136.0.1181144702]' + ValueType: Date +} diff --git a/_Main/BL/Type_InventorySummaryReport/Method_Generate.qbl b/_Main/BL/Type_InventorySummaryReport/Method_Generate.qbl index 56611da..38e179b 100644 --- a/_Main/BL/Type_InventorySummaryReport/Method_Generate.qbl +++ b/_Main/BL/Type_InventorySummaryReport/Method_Generate.qbl @@ -13,36 +13,40 @@ 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>'; + 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 ) ); + 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 := construct( Strings ); productid.Add( row.Name() ); 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() ); + showrow := this.InventroySummaryRow( relnew, Name := row.Name(), Unit := row.Unit(), RowNr := row.RowNr() ); + traverse( this, InventorySummaryColumn, column ){ + sumcell := selectobject( column, InventorySummaryCell, c, c.InventroySummaryRow() = sumrow ); + daycells := selectset( row, InventorySummaryCell, cell, cell.InventorySummaryColumn().TimeUnit() = Translations::MP_GlobalParameters_Day() and + cell.InventorySummaryColumn().StartDate() >= column.StartDate() and + cell.InventorySummaryColumn().StartDate() <= column.EndaDate() ); - if( not isnull( column ) ){ - 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() ); - } + endinginventory := maxobject( daycells, Elements, e, e.InventorySummaryColumn().StartDate() ).EndingInventory(); + minimuminventory := min( daycells, Elements, e, e.MinimumInventory() ); + maximuminventory := max( daycells, Elements, e, e.MaximumInventory() ); + averageinventory := [Number]average( daycells, Elements, e, e.AverageInventory() ); + + showcell := column.InventorySummaryCell( relnew, EndingInventory := endinginventory, MinimumInventory := minimuminventory, MaximumInventory := maximuminventory, AverageInventory := averageinventory ); + showrow.InventorySummaryCell( relinsert, showcell ); + + sumcell.EndingInventory( sumcell.EndingInventory() + endinginventory ); + sumcell.MinimumInventory( sumcell.MinimumInventory() + minimuminventory ); + sumcell.MaximumInventory( sumcell.MaximumInventory() + maximuminventory); + sumcell.AverageInventory( sumcell.AverageInventory() + averageinventory ); } } } diff --git a/_Main/BL/Type_InventorySummaryReport/Method_GenerateColumn.qbl b/_Main/BL/Type_InventorySummaryReport/Method_GenerateColumn.qbl index 4484691..6198a96 100644 --- a/_Main/BL/Type_InventorySummaryReport/Method_GenerateColumn.qbl +++ b/_Main/BL/Type_InventorySummaryReport/Method_GenerateColumn.qbl @@ -16,31 +16,32 @@ //鏌ヨ鏃ユ湡杩斿洖闇�瑕佸湪璁″垝鏃ユ湡涔嬪唴 if( starttime < startofendyear and endtime > startofyear ){ if( starttime < startofyear ){ - starttime := startofyear; + starttime := startofyear; } if( endtime > startofendyear ){ - endtime := startofendyear; + endtime := startofendyear; } - for( start := starttime; start <= endtime; start := start.StartOfNextDay() ){ - periodtime := start.Date(); - periodname := periodtime.Format( "M2/D2/Y" ); - - if( timeunit = 'All' or timeunit = Translations::MP_GlobalParameters_Day() ){ - this.InventorySummaryColumn( relnew, Name := periodname, Period := periodtime, TimeUnit := Translations::MP_GlobalParameters_Day() ); + if( timeunit = Translations::MP_GlobalParameters_Day() ){ + for( start := starttime; start <= endtime; start := start.StartOfNextDay() ){ + periodtime := start.Date(); + periodname := periodtime.Format( "M2/D2/Y" ); + this.InventorySummaryColumn( relnew, Name := periodname, StartDate := periodtime, EndaDate := periodtime, TimeUnit := Translations::MP_GlobalParameters_Day() ); } - if( timeunit = 'All' or timeunit = Translations::MP_GlobalParameters_Week() ){ - weekend := ( start.StartOfNextWeek() - Duration::Days( 1 ) ).Date(); + }else if( timeunit = Translations::MP_GlobalParameters_Week() ){ + for( start := starttime; start <= endtime; start := start.StartOfNextWeek() ){ + periodtime := start.Date(); + periodname := periodtime.Format( "M2/D2/Y" ); + weekend := ( start.StartOfNextWeek() - Duration::Days( 1 ) ).Date(); - if( periodtime = weekend ){ - this.InventorySummaryColumn( relnew, Name := periodname, Period := periodtime, TimeUnit := Translations::MP_GlobalParameters_Week() ); - } + this.InventorySummaryColumn( relnew, Name := periodname, StartDate := periodtime, EndaDate := weekend, TimeUnit := Translations::MP_GlobalParameters_Week() ); } - if( timeunit = 'All' or timeunit = Translations::MP_GlobalParameters_Month() ){ - monthend := ( start.StartOfNextMonth() - Duration::Days( 1 ) ).Date(); + }else if( timeunit = Translations::MP_GlobalParameters_Month() ){ + for( start := starttime; start <= endtime; start := start.StartOfNextMonth() ){ + periodtime := start.Date(); + periodname := periodtime.Format( "M2/D2/Y" ); + monthend := ( start.StartOfNextMonth() - Duration::Days( 1 ) ).Date(); - if( periodtime = monthend ){ - this.InventorySummaryColumn( relnew, Name := periodname, Period := periodtime, TimeUnit := Translations::MP_GlobalParameters_Month() ); - } + this.InventorySummaryColumn( relnew, Name := periodname, StartDate := periodtime, EndaDate := monthend, TimeUnit := Translations::MP_GlobalParameters_Month() ); } } } diff --git a/_Main/BL/Type_InventorySummarySource/StaticMethod_Initialize.qbl b/_Main/BL/Type_InventorySummarySource/StaticMethod_Initialize.qbl index cc7d847..407d96a 100644 --- a/_Main/BL/Type_InventorySummarySource/StaticMethod_Initialize.qbl +++ b/_Main/BL/Type_InventorySummarySource/StaticMethod_Initialize.qbl @@ -14,32 +14,24 @@ allunit := InventorySummaryReport::GetDefaultAllUnit(); ccunit := InventorySummaryReport::GetDefaultCCUnit(); dlunit := InventorySummaryReport::GetDefaultDLUnit(); - //ccalineunit := FinancialProductionReport::GetDefaultCCALineUnit(); - //dlalienunit := FinancialProductionReport::GetDefaultDLALineUnit() - //ccmplineunit := FinancialProductionReport::GetDefaultCCMPLineUnit() - //dlmplineunit := FinancialProductionReport::GetDefaultDLMPLineUnit(); source := owner.InventorySummarySource( relnew, ID := InventorySummaryReport::GetDefaultName(), Name := InventorySummaryReport::GetDefaultName() ); table := source.InventorySummaryReport( relnew, ID := source.Name(), Name := source.Name() ); showtable := source.InventorySummaryReport( relnew, ID := source.Name() + 'Show', Name := source.Name(), IsShow := true ); startofplanning := owner.StartOfPlanning(); startofyear := startofplanning.StartOfYear() - Duration::Days( 1 ); - startofnextyear := startofplanning.StartOfNextYear() - Duration::Days( 1 ); + startofnextyear := startofplanning.StartOfNextYear(); search := owner.InventorySummarySearch( relnew, Unit := allunit, Generation := allunit, MqbMlb := allunit, Power := allunit, Category := Translations::MP_GlobalParameters_Day(), StartDate := Date::MinDate(), EndDate := Date::MaxDate() ); table.GenerateColumn( owner, 'All', startofyear, startofnextyear ); - //info( '-----------------------------------', table.InventorySummaryColumn( relsize ) ); //搴撳瓨鏁伴噺涓篈ctual inventories閲岄潰鐨勭偣Planned inventories瀛楁搴撳瓨閲忓姞鎬� traverse( owner, StockingPoint_MP, stockingpoint ){ - //traverse( owner, StockingPoint_MP, stockingpoint, stockingpoint.ID().EndsWith( '鍘傚唴搴�' ) ){ unit := stockingpoint.Unit(); parentunits := unit.GetAllParent(); //鏄惁灞炰簬闀挎槬宸ュ巶 - // iscc := stockingpoint.ID().StartsWith( 'CC' ) or stockingpoint.ID() = '闀挎槬' ;//unit.ID() = ccalineunit or unit.ID() = ccmplineunit or exists( parentunits, Elements, punit, punit.ID() = ccalineunit or punit.ID() = ccmplineunit ); iscc := exists( parentunits, Elements, punit, punit.ID().StartsWith( 'VWED CC' ) ); //鏄惁灞炰簬澶ц繛宸ュ巶 - // isdl := stockingpoint.ID().StartsWith( '澶ц繛' );//unit.ID() = dlalienunit or unit.ID() = dlmplineunit or exists( parentunits, Elements, punit, punit.ID() = dlalienunit or punit.ID() = dlmplineunit ); isdl := exists( parentunits, Elements, punit, punit.ID().StartsWith( 'VWED DL' ) ); if( iscc or isdl ){ traverse( stockingpoint, ProductInStockingPoint_MP, pisp, pisp.Product_MP().IsLeaf() ){ @@ -47,12 +39,6 @@ factoryrow := table.GetRow( ifexpr( iscc, ccunit, dlunit ), pisp.ProductID() ); //鑾峰彇鍚堣琛� allrow := table.GetRow( allunit, pisp.ProductID() ); - //鍛ㄥ害鐨勬暟鎹� - weekpispips := construct( ProductInStockingPointInPeriods ); - //鏈堝害鐨勬暟鎹� - monthpispips := construct( ProductInStockingPointInPeriods ); - nextweek := startofplanning.StartOfNextWeek(); - nextmonth := startofplanning.StartOfNextMonth(); pispips := selectsortedset( pisp, ProductInStockingPointInPeriod, pispip, pispip.Start() < startofnextyear and pispip.Period_MP().TimeUnit() = Translations::MP_GlobalParameters_Day(), pispip.Start() ); @@ -68,88 +54,42 @@ quantity := ifexpr( pispip.Period_MP().IsHistorical(), [Number]pispip.ActualInventoryLevelEnd(), [Number]pispip.PlannedInventoryLevelEnd() ); factoryrow.SetCellValue( daycolumn, quantity ); allrow.SetCellValue( daycolumn, quantity ); - - //鍛紝閫夋嫨鍛ㄦ椂锛屾湡鏈簱瀛樹负姣忎竴鍛ㄦ渶鍚庝竴澶╃殑姹囨�诲簱瀛樹俊鎭紝鏈�灏忓簱瀛樹负杩欎竴鍛ㄥ簱瀛橀噺鏈�灏忕殑涓�澶╃殑鏁板�硷紝鏈�澶у簱瀛樹负杩欎竴鍛ㄥ簱瀛橀噺鏈�澶х殑涓�澶╃殑鏁板�硷紝骞冲潎搴撳瓨涓鸿鍛ㄧ殑骞冲潎鍊� - if( period.Start() < nextweek ){ - weekpispips.Add( 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, ifexpr( pispip.Period_MP().IsHistorical(), [Number]e.ActualInventoryLevelEnd(), [Number]e.PlannedInventoryLevelEnd() ) ); - mininventory := min( weekpispips, Elements, e, ifexpr( pispip.Period_MP().IsHistorical(), [Number]e.ActualInventoryLevelEnd(), [Number]e.PlannedInventoryLevelEnd() ) ); - aveinventory := average( weekpispips, Elements, e, ifexpr( pispip.Period_MP().IsHistorical(), [Number]e.ActualInventoryLevelEnd(), [Number]e.PlannedInventoryLevelEnd() ) ); - factoryrow.SetCellValue( weekcolumn, quantity, mininventory, maxinventory, [Number]aveinventory ); - allrow.SetCellValue( weekcolumn, quantity, mininventory, maxinventory, [Number]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, ifexpr( pispip.Period_MP().IsHistorical(), [Number]e.ActualInventoryLevelEnd(), [Number]e.PlannedInventoryLevelEnd() ) ); - mininventory := min( monthpispips, Elements, e, ifexpr( pispip.Period_MP().IsHistorical(), [Number]e.ActualInventoryLevelEnd(), [Number]e.PlannedInventoryLevelEnd() ) ); - aveinventory := average( monthpispips, Elements, e, ifexpr( pispip.Period_MP().IsHistorical(), [Number]e.ActualInventoryLevelEnd(), [Number]e.PlannedInventoryLevelEnd() ) ); - factoryrow.SetCellValue( monthcolumn, quantity, mininventory, maxinventory, [Number]aveinventory ); - allrow.SetCellValue( monthcolumn, quantity, mininventory, maxinventory, [Number]aveinventory ); - } - }else{ - monthpispips.Flush(); - monthpispips.Add( pispip ); - nextmonth := nextmonth.StartOfNextMonth(); - } } } } } //棣栧厛鍦‥ntities閲岃瘑鍒埗绾nit涓洪暱鏄�/澶ц繛鐨勬墍鏈夊簱瀛樼偣 //闀挎槬搴撳瓨鐐� - ccsps := construct( Strings ); + ccsps := construct( Strings ); //澶ц繛搴撳瓨鐐� - dlsps := construct( Strings ); - allsps := 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() ); + ccsps := selectuniquevalues( unit, StockingPoint_MP, sp, sp.ID() ); } if( unit.ID() = dlunit ){ - dlsps := selectuniquevalues( unit, StockingPoint_MP, sp, sp.ID() ); + dlsps := selectuniquevalues( unit, StockingPoint_MP, sp, sp.ID() ); } - allsps := allsps.Union( 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() ); + 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( table, InventorySummaryColumn, column, column.TimeUnit() = Translations::MP_GlobalParameters_Day() and 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 ); - } + column.GenerateCell( selections, ccsps, dlsps, table, column.Period(), column.Period(), productid, allunit, ccunit, dlunit ); } } - rows := selectsortedset( table, InventroySummaryRow, row, row.Name() ); - i := 0; + rows := selectsortedset( table, InventroySummaryRow, row, row.Name() ); + i := 0; traverse( rows, Elements, e ){ if( exists( e, InventorySummaryCell, cell, cell.AverageInventory() <> 0 or cell.EndingInventory() <> 0 or cell.MaximumInventory() <> 0 or cell.MinimumInventory() <> 0 ) ){ e.RowNr( i ); - i := i + 1; + i := i + 1; }else{ e.Delete(); } diff --git a/_Main/BL/Type_MachiningPipelineColumn0/Attribute_CCAssemblyPlanQty.qbl b/_Main/BL/Type_MachiningPipelineColumn0/Attribute_CCAssemblyPlanQty.qbl deleted file mode 100644 index af5f2ec..0000000 --- a/_Main/BL/Type_MachiningPipelineColumn0/Attribute_CCAssemblyPlanQty.qbl +++ /dev/null @@ -1,8 +0,0 @@ -Quintiq file version 2.0 -#parent: #root -Attribute CCAssemblyPlanQty -{ - #keys: '3[415136.0.1006432687][415136.0.1006432686][415136.0.1006432688]' - Description: '闀挎槬瑁呴厤璁″垝' - ValueType: Real -} diff --git a/_Main/BL/Type_MachiningPipelineColumn0/Attribute_DLAssemblyPlanQty.qbl b/_Main/BL/Type_MachiningPipelineColumn0/Attribute_DLAssemblyPlanQty.qbl deleted file mode 100644 index 38d7472..0000000 --- a/_Main/BL/Type_MachiningPipelineColumn0/Attribute_DLAssemblyPlanQty.qbl +++ /dev/null @@ -1,8 +0,0 @@ -Quintiq file version 2.0 -#parent: #root -Attribute DLAssemblyPlanQty -{ - #keys: '3[415136.0.1006432691][415136.0.1006432690][415136.0.1006432692]' - Description: '澶ц繛瑁呴厤璁″垝' - ValueType: Real -} diff --git a/_Main/BL/Type_MachiningPipelineReport/Method_GenerateColumn.qbl b/_Main/BL/Type_MachiningPipelineReport/Method_GenerateColumn.qbl index 8a122c3..c4e150b 100644 --- a/_Main/BL/Type_MachiningPipelineReport/Method_GenerateColumn.qbl +++ b/_Main/BL/Type_MachiningPipelineReport/Method_GenerateColumn.qbl @@ -17,13 +17,13 @@ periodtime := period.StartDate(); periodname := periodtime.Format( "M2/D2/Y" ); - this.Column( relnew, Name := periodname, StartDate := periodtime, EndDate := periodtime, CCAssemblyPlanQty := 0, DLAssemblyPlanQty := 0, TimeUnit := Translations::MP_GlobalParameters_Day() ); + this.Column( relnew, Name := periodname, StartDate := periodtime, EndDate := periodtime, TimeUnit := Translations::MP_GlobalParameters_Day() ); } if( timeunit = 'All' or timeunit = Translations::MP_GlobalParameters_Week() ){ if( period.StartDate() = weekstart ){ weekperiodname := weekstart.Format( "M2/D2/Y" ); - this.Column( relnew, Name := weekperiodname, StartDate := weekstart, EndDate := ( weekstart + Duration::Days( 6 ) ).Date(), CCAssemblyPlanQty := 0, DLAssemblyPlanQty := 0, TimeUnit := Translations::MP_GlobalParameters_Week() ); + this.Column( relnew, Name := weekperiodname, StartDate := weekstart, EndDate := ( weekstart + Duration::Days( 6 ) ).Date(), TimeUnit := Translations::MP_GlobalParameters_Week() ); weekstart := ( weekstart + Duration::Days( 7 ) ).Date(); } } diff --git "a/_Main/BL/Type_MachiningPipelineRow/Method_SetAssemblyPlanValue\0430.qbl" "b/_Main/BL/Type_MachiningPipelineRow/Method_SetAssemblyPlanValue\0430.qbl" new file mode 100644 index 0000000..fdf9a70 --- /dev/null +++ "b/_Main/BL/Type_MachiningPipelineRow/Method_SetAssemblyPlanValue\0430.qbl" @@ -0,0 +1,20 @@ +Quintiq file version 2.0 +#parent: #root +Method SetAssemblyPlanValue ( + MachiningPipelineColumn column, + Boolean iscc, + Real quantity +) +{ + TextBody: + [* + // 鐢勫叞楦� Jun-24-2024 (created) + cell := selectobject( this, Cell, cell, cell.Column() = column ); + + if( iscc ){ + cell.CCAssemblyPlanQty( cell.CCAssemblyPlanQty() + quantity ); + } else { + cell.DLAssemblyPlanQty( cell.DLAssemblyPlanQty() + quantity ); + } + *] +} diff --git a/_Main/BL/Type_MachiningPipelineSource0/StaticMethod_Initialize.qbl b/_Main/BL/Type_MachiningPipelineSource0/StaticMethod_Initialize.qbl index ca7ed85..843e310 100644 --- a/_Main/BL/Type_MachiningPipelineSource0/StaticMethod_Initialize.qbl +++ b/_Main/BL/Type_MachiningPipelineSource0/StaticMethod_Initialize.qbl @@ -48,43 +48,37 @@ pispips := selectsortedset( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and pispip.Period_MP().TimeUnit() = Translations::MP_GlobalParameters_Day() and ( pispip.NewSupplyQuantity() <> 0 or pispip.PlannedInventoryLevelEnd() <> 0 or pispip.DependentDemandAndSalesDemandQuantity() <> 0 ), pispip.Start() ); traverse( pispips, Elements, pispip ){ - supplyquantity := [Number]pispip.NewSupplyQuantity();//鍥涜垗浜斿叆 + products.Add( pisp.Product_MP() ); + //澶� daycolumn := table.GetColumnByUnit( Translations::MP_GlobalParameters_Day(), pispip.Start().Date() ); //鍛� weekcolumn := table.GetColumnByUnit( Translations::MP_GlobalParameters_Week(), pispip.Start().Date() ); + product := pisp.Product_MP(); + productparents := product.GetAllParent(); + row := table.GetRow( pisp.ProductID() ); + //瑁呴厤绾� if( isccassemnly or isdlassemnly ){ quantity := [Number]pispip.DependentDemandAndSalesDemandQuantity();//鍥涜垗浜斿叆 - if( isccassemnly ){ - daycolumn.CCAssemblyPlanQty( daycolumn.CCAssemblyPlanQty() + quantity ); - weekcolumn.CCAssemblyPlanQty( weekcolumn.CCAssemblyPlanQty() + quantity ); - } else { - daycolumn.DLAssemblyPlanQty( daycolumn.DLAssemblyPlanQty() + quantity ); - weekcolumn.DLAssemblyPlanQty( weekcolumn.DLAssemblyPlanQty() + quantity ); - } + row.SetCellProductionValue( daycolumn, isccassemnly, [Real]quantity ); + row.SetCellProductionValue( weekcolumn, isccassemnly, [Real]quantity ); + } + + //鏈哄姞绾� + if( isccproduction or isdlproduction ){ + supplyqty := [Number]pispip.NewSupplyQuantity();//鍥涜垗浜斿叆 + row.SetCellProductionValue( daycolumn, isccproduction, [Real]supplyqty ); + row.SetCellProductionValue( weekcolumn, isccproduction, [Real]supplyqty ); } - product := pisp.Product_MP(); - productparents := product.GetAllParent(); - if( exists( productparents, Elements, e, e.ID() = productparent ) ){//鏌ヨ浜у搧绫诲瀷鏄彂鍔ㄦ満 - row := table.GetRow( pisp.ProductID() ); - products.Add( pisp.Product_MP() ); - - inventoryquantity:= [Number]pispip.PlannedInventoryLevelEnd();//鍥涜垗浜斿叆 - - //鏈哄姞绾� - if( isccproduction or isdlproduction ){ - row.SetCellProductionValue( daycolumn, isccproduction, [Real]supplyquantity ); - row.SetCellProductionValue( weekcolumn, isccproduction, [Real]supplyquantity ); - } - //搴撳瓨 - if( iscc or isdl ){ - row.SetCellInventoryValue( daycolumn, iscc, [Real]inventoryquantity ); - if( weekcolumn.EndDate() = pispip.Start().Date() or pispip.Period_MP() = endperiod ){ - row.SetCellInventoryValue( weekcolumn, iscc, [Real]inventoryquantity ); - } + //搴撳瓨 + if( iscc or isdl ){ + inventoryqty := [Number]pispip.PlannedInventoryLevelEnd();//鍥涜垗浜斿叆 + row.SetCellInventoryValue( daycolumn, iscc, [Real]inventoryqty ); + if( weekcolumn.EndDate() = pispip.Start().Date() or pispip.Period_MP() = endperiod ){ + row.SetCellInventoryValue( weekcolumn, iscc, [Real]inventoryqty ); } } } @@ -132,10 +126,6 @@ i := 0; traverse( rows, Elements, e ){ e.RowNr( i ); - traverse( e, Cell, cell ){ - cell.CCAssemblyPlanQty( cell.Column().CCAssemblyPlanQty() ); - cell.DLAssemblyPlanQty( cell.Column().DLAssemblyPlanQty() ); - } i := i + 1; } showtable.Generate( search, products ); diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormEnginePipelineReport/Response_PanelExport_570_bRefresh_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormEnginePipelineReport/Response_PanelExport_570_bRefresh_OnClick.def index cc8451d..6e83498 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormEnginePipelineReport/Response_PanelExport_570_bRefresh_OnClick.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormEnginePipelineReport/Response_PanelExport_570_bRefresh_OnClick.def @@ -19,7 +19,7 @@ DataHolderTable.Data( table ); - dhSearch.Data( MacroPlan.EnginePipelineSearch() ); + //dhSearch.Data( MacroPlan.EnginePipelineSearch() ); *] GroupServerCalls: false } diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormMachiningPipelineReport/Response_PanelExport_bRefresh_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormMachiningPipelineReport/Response_PanelExport_bRefresh_OnClick.def index b4bca44..636c334 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormMachiningPipelineReport/Response_PanelExport_bRefresh_OnClick.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormMachiningPipelineReport/Response_PanelExport_bRefresh_OnClick.def @@ -19,7 +19,7 @@ DataHolderTable.Data( table ); - dhSearch.Data( MacroPlan.MachiningPipelineSearch() ); + //dhSearch.Data( MacroPlan.MachiningPipelineSearch() ); *] GroupServerCalls: false } -- Gitblit v1.9.3