| | |
| | | Description: '生成计划库存存档数据' |
| | | TextBody: |
| | | [* |
| | | //interfaceDataset.InventoryPlanArchiveVersion( relflush ); |
| | | interfaceDataset.InventoryPlanArchiveVersion( relflush ); |
| | | info( '-------------------------Start---------------------'); |
| | | machineproductparent := MachiningPipelineReport::GetDefaultProductParent(); |
| | | engineproductparent := EnginePipelineReport::GetDefaultProductParent(); |
| | | allunit := AssemblyOnlinePlanVersion::GetDefaultAllUnit(); |
| | | name := InventoryPlanArchiveVersion::GetDefaultName(); |
| | | search := interfaceDataset.InventoryPlanArchiveVersionSearch( relnew, Product := allunit, TimeUnit := Translations::MP_GlobalParameters_Day(), Unit := allunit, StartDate := Date::MinDate(), EndDate := Date::MaxDate() ); |
| | |
| | | inventoryindex := inventoryindex + 1; |
| | | } |
| | | } |
| | | traverse ( macroPlan, Product_MP.ProductInStockingPoint_MP, pispmp, not pispmp.IsSystem() and pispmp.IsLeaf() ) { |
| | | unit := ifexpr( pispmp.StockingPointID().Regex( "大连" ) or pispmp.StockingPointID().Regex( "DL" ), FinancialProductionReport::GetDefaultDLUnit(), FinancialProductionReport::GetDefaultCCUnit() ); |
| | | inventoryrow := table.GetRowByUnit( pispmp.Product_MP(), unit ); |
| | | traverse ( pispmp, ProductInStockingPointInPeriodPlanning.astype( ProductInStockingPointInPeriodPlanningLeaf ), pispippl, not pispippl.IsPeriodFrozen() ) { |
| | | startdate := pispippl.Start().Date(); |
| | | daycolumn := table.GetColumnByTimeUnit( Translations::MP_GlobalParameters_Day(), startdate ); |
| | | weekcolumn := table.GetColumnByTimeUnit( Translations::MP_GlobalParameters_Week(), startdate ); |
| | | monthcolumn := table.GetColumnByTimeUnit( Translations::MP_GlobalParameters_Month(), startdate ); |
| | | actinventoryKey := pispmp.ProductID() + startdate.AsQUILL(); |
| | | actinventoryhandle := actinventorytree.GetHandle( actinventoryKey ); |
| | | actinventoryindex := guard( actinventorytree.Root().Child( actinventoryhandle ),null( NamedValue )); |
| | | |
| | | actinventoryqty := 0.0; |
| | | if( not isnull( actinventoryindex )){ |
| | | actinventoryqty := inventoryqrys.Element( actinventoryindex.GetValueAsNumber() ); |
| | | traverse( macroPlan, Product_MP, product, exists( product.GetAllParent(), Elements, e, e.ID() = machineproductparent or e.ID() = engineproductparent ) ){ |
| | | traverse ( product, ProductInStockingPoint_MP, pispmp, not pispmp.IsSystem() and pispmp.IsLeaf() ) { |
| | | unit := ifexpr( pispmp.StockingPointID().Regex( "大连" ) or pispmp.StockingPointID().Regex( "DL" ), FinancialProductionReport::GetDefaultDLUnit(), FinancialProductionReport::GetDefaultCCUnit() ); |
| | | inventoryrow := table.GetRowByUnit( pispmp.Product_MP(), unit ); |
| | | traverse ( pispmp, ProductInStockingPointInPeriodPlanning.astype( ProductInStockingPointInPeriodPlanningLeaf ), pispippl, not pispippl.IsPeriodFrozen() ) { |
| | | startdate := pispippl.Start().Date(); |
| | | daycolumn := table.GetColumnByTimeUnit( Translations::MP_GlobalParameters_Day(), startdate ); |
| | | weekcolumn := table.GetColumnByTimeUnit( Translations::MP_GlobalParameters_Week(), startdate ); |
| | | monthcolumn := table.GetColumnByTimeUnit( Translations::MP_GlobalParameters_Month(), startdate ); |
| | | actinventoryKey := pispmp.ProductID() + startdate.AsQUILL(); |
| | | actinventoryhandle := actinventorytree.GetHandle( actinventoryKey ); |
| | | actinventoryindex := guard( actinventorytree.Root().Child( actinventoryhandle ),null( NamedValue )); |
| | | |
| | | actinventoryqty := 0.0; |
| | | if( not isnull( actinventoryindex )){ |
| | | actinventoryqty := inventoryqrys.Element( actinventoryindex.GetValueAsNumber() ); |
| | | } |
| | | inventoryrow.SetQuantity( daycolumn, pispippl.InventoryLevelEnd(), actinventoryqty ); |
| | | inventoryrow.SetQuantity( weekcolumn, pispippl.InventoryLevelEnd(), actinventoryqty ); |
| | | inventoryrow.SetQuantity( monthcolumn, pispippl.InventoryLevelEnd(), actinventoryqty ); |
| | | |
| | | } |
| | | inventoryrow.SetQuantity( daycolumn, pispippl.InventoryLevelEnd(), actinventoryqty ); |
| | | inventoryrow.SetQuantity( weekcolumn, pispippl.InventoryLevelEnd(), actinventoryqty ); |
| | | inventoryrow.SetQuantity( monthcolumn, pispippl.InventoryLevelEnd(), actinventoryqty ); |
| | | |
| | | } |
| | | } |
| | | |