| | |
| | | TextBody: |
| | | [* |
| | | // Akari Oct-30-2024 (created) |
| | | offlinePlanRow := select( offlinePlanTable,NewOfflinePlanRow,row,row.ProductID() = this.ProductInStockingPoint_MP().ProductID() ); |
| | | offlinePlanRow := select( offlinePlanTable,NewOfflinePlanRow,row,row.ProductID() = this.ProductInStockingPoint_MP().ProductID() and row.StockingPointID() = this.ProductInStockingPoint_MP().StockingPointID() ); |
| | | |
| | | offlinePlanCells := selectset( offlinePlanRow, NewOfflinePlanCell,cell,true ); |
| | | offlinePlanCellIndexTree := NamedValueTree::Create(); |
| | | for( i := 0; i< offlinePlanCells.Size(); i++ ){ |
| | | offlinePlanCell := offlinePlanCells.Element( i ); |
| | | offlinePlanCellHandle := offlinePlanCellIndexTree.GetHandle( offlinePlanCell.NewOfflinePlanColumn().StartDate().AsQUILL() ); |
| | | offlinePlanCellIndexTree.Root().AddChild( offlinePlanCellHandle,i ); |
| | | } |
| | | |
| | | |
| | | if( not this.IsEnable() ){ |
| | | this.IsEnable( true ); |
| | | |
| | | pispips := selectset( this,ProductInStockingPoint_MP.ProductInStockingPointInPeriod.astype( ProductInStockingPointInPeriodPlanningLeaf ),period,period.Period_MP().StartDate() <= this.LockDate() ); |
| | | traverse( pispips,Elements,element ){ |
| | | element.IsLock( true ); |
| | | offlinePlanCellHandle := offlinePlanCellIndexTree.GetHandle( element.Period_MP().StartDate().AsQUILL() ); |
| | | offlinePlanCellIndex := guard( offlinePlanCellIndexTree.Root().Child( offlinePlanCellHandle),null( NamedValue )); |
| | | offlinePlanCellQuantity := 0.0; |
| | | if( not isnull( offlinePlanCellIndex )){ |
| | | offlinePlanCell := offlinePlanCells.Element( offlinePlanCellIndex.GetValueAsNumber() ); |
| | | offlinePlanCellQuantity := offlinePlanCell.Quantity(); |
| | | } |
| | | if( element.NewSupply( relsize ) = 1 ){ |
| | | traverse( element,NewSupply,newSupply ){ |
| | | |
| | | newSupply.Update( offlinePlanCellQuantity ); |
| | | } |
| | | }else if( element.NewSupply( relsize ) > 1 ){ |
| | | |
| | | newSupplys := selectset( element,NewSupply,newSupply,true ); |
| | | for( i := 1; i < newSupplys.Size(); i++ ){ |
| | | newSupply := newSupplys.Element( i ); |
| | | newSupply.Update( 0.0 ); |
| | | } |
| | | newSupplys.Element( 0 ).Update( offlinePlanCellQuantity ) |
| | | }else if( element.NewSupply( relsize ) = 0 ){ |
| | | unit := element.StockingPointInPeriod().StockingPoint_MP().Unit(); |
| | | operaction := select( unit,Operation,op,true ); |
| | | // PeriodTaskOperation::Create( ) |
| | | if( offlinePlanCellQuantity <> 0 ){ |
| | | info( "new supply is null" ); |
| | | unit := element.StockingPointInPeriod().StockingPoint_MP().Unit(); |
| | | operaction := select( unit,Operation,op,true ); |
| | | if( not isnull( operaction )){ |
| | | info( "operaction is null" ); |
| | | // unitPeriod := element.Period_MP().UnitPeriod() |
| | | // PeriodTaskOperation::Create( operaction,unitPeriod,quantity,false ); |
| | | }else{ |
| | | |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | ProductInStockingPointInPeriod::LockUnlockPlanning( pispips, true, true ); |
| | | } |
| | | *] |
| | | } |