From e8619d825e5f09daf129b4847bf2bf4e660d40c5 Mon Sep 17 00:00:00 2001 From: yunchai <yunying.chai@capgemini.com> Date: 星期四, 12 十月 2023 09:29:21 +0800 Subject: [PATCH] Merge remote-tracking branch 'refs/remotes/origin/dev' --- _Main/BL/Type_MacroPlan/Method_MappingOperationCostData.qbl | 53 ++++++++++++++++++++++++++++------------------------- 1 files changed, 28 insertions(+), 25 deletions(-) diff --git a/_Main/BL/Type_MacroPlan/Method_MappingOperationCostData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingOperationCostData.qbl index 9a458dd..cdcd7f1 100644 --- a/_Main/BL/Type_MacroPlan/Method_MappingOperationCostData.qbl +++ b/_Main/BL/Type_MacroPlan/Method_MappingOperationCostData.qbl @@ -2,7 +2,8 @@ #parent: #root Method MappingOperationCostData ( GlobalOTDTable globalOTDTable, - Strings businesstypes + Strings businesstypes, + Strings organcodelist ) { Description: 'Get operation cost data from operation mapping' @@ -10,24 +11,21 @@ [* // Administrator Aug-21-2023 (created) // list to deal - listtodeal := construct( structured[MappingOperation] ); + listtodeal := construct( structured[Global_MappingOperation] ); if( isnull( businesstypes ) or businesstypes.Size() = 0 ) { - listtodeal := selectset( this, MappingOperation, item, true ); + listtodeal := selectset( globalOTDTable, Global_MappingOperation, item, true ); } else { - organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businesstypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() ); - listtodeal := selectset( this, - MappingOperation, + listtodeal := selectset( globalOTDTable, Global_MappingOperation, item, ( businesstypes.Find( item.BusinessType() ) <> -1 ) and ( organcodelist.Find( item.OrganCode() ) >= 0 ) ); } // Get the list to deal with max sequence number - listtodealwithmaxsn := construct( structured[MappingOperation] ); + listtodealwithmaxsn := construct( structured[Global_MappingOperation] ); traverse( listtodeal, Elements, item ){ - maxsn := maxselect( this, - MappingOperation, + maxsn := maxselect( globalOTDTable, Global_MappingOperation, moperation, moperation.OrganCode() = item.OrganCode(), moperation.ProductID() = item.ProductID(), @@ -47,26 +45,31 @@ if( count - [Number](count/1000) * 1000 = 0 or count = totalcount ){ info( "Now is dealing with the " + count.AsQUILL() + "OperationCost " + "( " + count.AsQUILL() + "/" + totalcount.AsQUILL() + " ) " + (count/totalcount*100).Round( 1 ).AsQUILL() + "%" ); } - id := item.OrganCode() + "_" + item.ProductID() + "_" + item.ProcessSection(); + id := item.OrganCode() + "_" + item.ProductID() + "_" + item.ProcessSection()+"_" + [String]item.SequenceNumber(); if( guard( item.Line(), "" ).Length() > 0 ) { id := id + "_" + item.Line(); } operation := Operation::FindOperationTypeIndex( id ); - account := Account_MP::FindByName( this, "Operation cost" ); - isfromdb := false; - existoperationcost := OperationCost::FindOperationCostTypeIndex( id ); - if( isnull( existoperationcost ) ){ - connecteditem := select( this, - MappingOperationCost, - moperationcost, - moperationcost.OrgCode() = item.OrganCode(), - moperationcost.ProductID() = item.ProductID() ); - cost := connecteditem.Cost(); - lengthoftime := connecteditem.LengthOfTime(); - start := connecteditem.Start(); - timeunit := connecteditem.TimeUnit(); - OperationCost::Create( id, operation, account, "Volume", start, timeunit, lengthoftime, cost, isfromdb ); - } + if(not isnull(operation)){ + account := Account_MP::FindByName( this, "Operating cost" ); + isfromdb := false; + existoperationcost := OperationCost::FindOperationCostTypeIndex( id ); + if( isnull( existoperationcost ) ){ + connecteditem := select( globalOTDTable, + Global_MappingOperationCost, + moperationcost, + moperationcost.OrgCode() = item.OrganCode(), + moperationcost.ProductID() = item.ProductID() ); + if( not isnull( connecteditem)){ + cost := connecteditem.Cost(); + lengthoftime := connecteditem.LengthOfTime(); + start := connecteditem.Start(); + timeunit := connecteditem.TimeUnit(); + OperationCost::Create( id, operation, account, "Volume", start, timeunit, lengthoftime, cost, isfromdb ); + } + + } } + } *] } -- Gitblit v1.9.3