Businesslogic voor het verwerken van een product offertelijn Deze businesslogic is afhankelijk van %blFlowOfferte en deze moet reeds geinstantieerd zijn ! Prod.Product,BL.EC.Common,BL.Prod 1 LijnAbstract 0 Invullen van de basisgegevens van de lijn. Enkel oproepen bij de Create() van het Lijn-object. Deze method wordt in de polymorfe klasse overschreven PRNr:%Integer,Aantal:%Integer Voorbereiden van een offertelijn voor import in een order NoSa:%String %Status Voorbereiden van een offertelijn voor prijsberekening en controle deze is voor Taal:%String,NoSa:%String %Status Invullen van product, prijs en andere gegevens in de lijn of sublijnen Taal:%String,NoSa:%String 0 %Status Controle van een lijn op prijs, levertermijn, aantal What : P = Product, V = Verkoopprijs, L = Levertermijn, A = Aantal What:%String,Taal:%String,NoSa:%String %Status %Status s ar=##class(BL.Flow.Offerte.LijnProduct).%New().GetProdWithPakket("B 800 450 GRI DM LINE",11211) PakRef:%String,KLNr:%Integer %ArrayOfObjects IdentNr:%String,KLNr:%Integer 1 %ArrayOfObjects 1 Do . . ; // opbouw mail naar PM --> voorlopig geen mail sturen .. . . ;Set BodyIsStream = 1 . . ;Set BodyIsHTML = 1 . . ;Set Body = ##class(%GlobalCharacterStream).%New() . . ;Do Body.WriteLn("Volgende producten hebben het zelfde IdentNr "_(IdentNr) ) . . ;Do Body.WriteLn("") . . ;For Counter = 1 : 1 : $LL(lbPRNRs) Do . . ;. Set PRNr=$LG(lbPRNRs,Counter) . . ;. Set arTable(Counter)="KortTekst "_$$$TAB_$$$PRGet($$$KortTekst)_$$$TAB_"InternNr"_$$$TAB_PRNr . . ;Do Body.Write($$ArrayToHTMLTable^vhLib(.arTable)) . . ;Do SendMiniMail^vhLib("system@vanhoecke.be",$LB("ICT_ProductMGR"),"Meerdere producten met zelfde IdentNr",Body,BodyIsStream,BodyIsHTML) . . Set PRNr="" ; geen koppeling indien meerdere identnrs gevonden worden . Else Set PRNr=$LG(lbPRNRs,1) Else Do . Set IdentNr=$$TRIMN^vhRtn1(IdentNr) . If $L(IdentNr)=8,$D(^KPR2(IdentNr_" ")) Set PRNr=$P(^KPR2(IdentNr_" "),"\") ; exact match . If $L(IdentNr)=8 Set $E(IdentNr)="" . If PRNr="",$L(IdentNr)=7 Do . . For I=0,9,8,1:1:7 Do Quit:PRNr'="" . . . Set PRNr=$P($G(^KPR2(I_IdentNr_" ")),"\") . . . If PRNr,I>0,I<7 Set KortTekst=$$$PRGet($$$KortTekst) Set:KortTekst'[("*"_KLNr_"*") PRNr="" ; Kontrole op kundestam Quit:PRNr="" "" Do ##class(pxProductSplit).AddProduct(.arProducts,PRNr,1) Quit $G(arProducts) ]]> KortTekst:%String,KLNr:%Integer 1 %ArrayOfObjects 1 Set PRNr="" . Else Set PRNr=$LG(lbPRNRs,1) Else Do . Set KortTekst=$$UPTRIMAN^vhRtn1(KortTekst) . ; De index KPR1 is speciaal opgebouwd het 3de en 12de karakter zijn er speciaal tussengevoegd voor de sortering . Set NextKT=$E(KortTekst,1,3) . For Set NextKT=$O(^KPR1(NextKT)) Quit:$E(NextKT,1,3)'=$E(KortTekst,1,3) Do ; Looping met de eerste drie karakters . . Quit:$E(NextKT,5,1+$S($L(KortTekst)>11:11,1:$L(KortTekst)))'=$E(KortTekst,4,$S($L(KortTekst)>11:11,1:$L(KortTekst))) . . Quit:($L(KortTekst)>11)&&($E(KortTekst,12,$L(KortTekst))'=$E(NextKT,14,2+$L(KortTekst))) ; Deel 12 tot einde is verschillende . . Set PRNr=PRNr_";"_$P(^KPR1(NextKT),"\") . Set $E(PRNr)="" ; verwijder eerste ";" . Set:PRNr[";" PRNr="" ; Meerdere niet toegelaten Quit:PRNr="" "" Do ##class(pxProductSplit).AddProduct(.arProducts,PRNr,1) Quit $G(arProducts) ]]> Beschikbaarheid van het product in arbeidsdagen of weken (zonder transport) vb $LB(3,"A") = 3 arbeidsdagen vb $LB(1,"W") = 1 week %List