1 PRGACNTs,Prod.Product,BL.Derde.KlantSpecifiek 1 %RegisteredObject 0 Boolean CheckVersieNrPRBS : indien 1 dan worden producten enkel weerhouden als het VersieNr van PRBS ingevuld is; indien 0 dan sowieso weerhouden. 1 75 %String %String %Boolean %String list %String 1 Oproepen via s sc=##class(BL.PR.GA.impl.TandemBoxRecalc...).RecalcSomething(1000,1) w sc,! 1 KLNr:%String,Stap:%String %Status KLNr:%String,Stap:%String,FilterMethodName:%String="" 1 %Status Herberekenen van de Bouwstenen voor TBX-producten. Deze routine kan in drie stappen verlopen / Check Only : CountProducts 1 Check Only : Recalc products without changes 1 Recalc products and update BS 1 Check Only : Recalc manuele PRBS-producten without changes 1 Recalc manuele PRBS-producten and update BS De lijst van manuele PRBS-producten wordt één voor één afgelopen, zodat je bij ieder product Y/N kunt kiezen 1 Herrekenen van de producten arProd als .local doorgeven 1 1 1 arProd als .local doorgeven 1 Verzamelen van de producten arProd als .local doorgeven 1 1 { // KlantNr kan een lijst van klantnummers zijn, i.e. een ";"-separated string // Added by WimV on 22/06/2011 Set itKLNrIterator=##class(TECH.PiecesIterator).%New(..KlantNr,";") While itKLNrIterator.HasNext() { Set KLNr=itKLNrIterator.Next() Do:(KLNr?4.5N) ..GetProductsForKlant(.arProd, KLNr) } } ElseIf ..KlantNr="*" { // Products to exclude from recalculation ;For iKLNr=$$$KlantKeller Do ..GetProductsForKlant(.arProdExclude,iKLNr) // Loop through ^KPR Do ..GetProductsViaKPR(.arProd,.arProdExclude) } Else { Write !,!," !!! Value for KLNr is invalid. No recalc performed !!!",! Quit ; Exit Rtn } Set AlleenManuelePRBS=((..Stap=4)||(..Stap=5)) If $$$Not(AlleenManuelePRBS) { // Aantal producten te herberekenen? Set CntProd=..CountProductsInArray(.arProd) Write "Aantal : "_CntProd_" product(en) te herrekenen",! If CntProd<100 { Write ! Write $$$ArrayTT("arProd",.arProd) } Else { Write "The array ""arProd"" will not be displayed (too many items)." } } If ..ManuelePRBSProducten.Count() { Write ! Write "Manuele PRBS-producten : "_$$$LCVT($$ObjectListToLB^vhLib(..ManuelePRBSProducten)) } Write ! Quit ]]> Ophalen van alle producten voor de gegeven klant arProd als .local doorgeven 1 Alle producten aflopen, dus NIET klant-afhankelijk ! Om producten te skippen (bvb. van een bepaalde klant), die PRNr(s) doorgeven via arProdExclude. arProd en arProdExclude als .local doorgeven 1 KlantPrijs via ProcedureBlock=0 1 KLNr:%String,PRNr:%String 1 0 %String Toevoegen van het product aan de array arProd(). arProd als .local doorgeven 1 Toevoegen van het Manuele PRBS-product aan de array arProd(). arProd als .local doorgeven 1 Toevoegen van alle Manuele PRBS-producten aan de array arProd(). arProd als .local doorgeven 1 1 %Boolean Te overschrijven in de afgeleide klasse, of een gelijkaardige method onder een specifieke naam maken (+toewijzen in de constructor) 1 1 %Boolean