| | |
| | | TextBody: |
| | | [* |
| | | // renhao Aug-14-2023 (created) |
| | | listtodeal := selectset( globalOTDTable, |
| | | Global_MappingActualProductInStockingPointInPeriod, |
| | | actual, |
| | | ( actual.ActualInventoryLevelEnd() > 0 ) and |
| | | ( organcodelist.Find( actual.StockingPointID().SubString( 0, 3 ) ) >= 0 ) ); |
| | | listtodeal := construct( Global_MappingActualProductInStockingPointInPeriods, constcontent ); |
| | | if ( businessTypes.Size() > 0 ) { |
| | | targetGlobal_ProductCategory := selectset( globalOTDTable, Global_ProductCategory, tempGPC, |
| | | exists( businessTypes, Elements, tempBTN, tempBTN = tempGPC.BusinessTypeName() ) ); |
| | | listtodeal := selectset( targetGlobal_ProductCategory, |
| | | Elements.Global_MappingProduct_MP.Global_MAPISPIPCategory.Global_MappingActualProductInStockingPointInPeriod, |
| | | tempGMPIL, |
| | | ( tempGMPIL.ActualInventoryLevelEnd() > 0 ) and |
| | | ( organcodelist.Find( tempGMPIL.StockingPointID().SubString( 0, 3 ) ) >= 0 ) ); |
| | | } else { |
| | | listtodeal := selectset( globalOTDTable, |
| | | Global_MappingActualProductInStockingPointInPeriod, |
| | | actual, |
| | | ( actual.ActualInventoryLevelEnd() > 0 ) and |
| | | ( organcodelist.Find( actual.StockingPointID().SubString( 0, 3 ) ) >= 0 ) ); |
| | | } |
| | | totalcount := listtodeal.Size(); |
| | | info( "ActualPISPIP has " + totalcount.AsQUILL() + " rows in total" ); |
| | | |
| | |
| | | if( count - [Number](count/1000) * 1000 = 0 or count = totalcount ){ |
| | | info( "Now is dealing with the " + count.AsQUILL() + "ActualPISPIP " + "( " + count.AsQUILL() + "/" + totalcount.AsQUILL() + " ) " + (count/totalcount*100).Round( 1 ).AsQUILL() + "%" ); |
| | | } |
| | | product := select( globalOTDTable,Global_MappingProduct_MP,product,product.ID() = actual.ProductID() and product.KeyProduct() = nuclear,true); |
| | | if( not isnull( product)){ |
| | | //product := select( globalOTDTable,Global_MappingProduct_MP,product,product.ID() = actual.ProductID() and product.KeyProduct() = nuclear,true); |
| | | //if( guard( actual.Global_MAPISPIPCategory().KeyProduct() = nuclear, false ) ){ |
| | | if( not nuclear or (nuclear and actual.Global_MAPISPIPCategory().Critical() = nuclear) ){ |
| | | if( not isnull(businessTypes)){ |
| | | |
| | | for( i :=0 ;i < businessTypes.Size();i++ ){ |
| | | businessType := businessTypes.Element( i ); |
| | | if( product.BusinessType() = businessType and not product.IsCommon()){ |
| | | |
| | | //businessType := businessTypes.Element( i ); |
| | | if( /*product.BusinessType() = businessType and not product.IsCommon()*/ not actual.Global_MAPISPIPCategory().IsCommon() ){ |
| | | ActualProductInStockingPointInPeriod::CreateOrUpdate( this, |
| | | actual.ProductID(), |
| | | actual.StockingPointID(), |
| | |
| | | actual.ActualInventoryLevelEnd(), |
| | | actual.ManufacturedDate()); |
| | | } |
| | | } |
| | | |
| | | |
| | | }else{ |
| | | ActualProductInStockingPointInPeriod::CreateOrUpdate( this, |