Index: BL/Flow/Offerte/Product.cls.xml =================================================================== diff -u -r734 -r771 --- BL/Flow/Offerte/Product.cls.xml (.../Product.cls.xml) (revision 734) +++ BL/Flow/Offerte/Product.cls.xml (.../Product.cls.xml) (revision 771) @@ -1,48 +1,51 @@ - + - Use new version : BL.Flow.Offerte.LijnProduct - + 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 +Deze businesslogic is afhankelijk van %blFlowOfferte en deze moet reeds geinstantieerd zijn ! +%Prod.Product,BL.EC.Common,BL.Prod 1 %RegisteredObject -60710,31716.003583 +62124,57832.578746 60207,60266.304448 0 - - + +Voorbereiden van een offertelijn voor import in een order +oLijn:Flow.Offerte.Lijn,NoSa:%String +%Status + + -/// Voorbereiden van een offertelijn voor prijsberekening en controle -Method Simulate(oLijn As Flow.Offerte.LijnAbstract, Taal As %String, NoSa As %String) As %Status -{ + + +Voorbereiden van een offertelijn voor prijsberekening en controle +oLijn:Flow.Offerte.Lijn,Taal:%String,NoSa:%String +%Status + + -/// Invullen van product, prijs en andere gegevens in de lijn of sublijnen -Method DataFill(oLijn As Flow.Offerte.LijnAbstract, Taal As %String, NoSa As %String) As %Status [ ProcedureBlock = 0 ] -{ + + +Invullen van product, prijs en andere gegevens in de lijn of sublijnen +oLijn:Flow.Offerte.Lijn,Taal:%String,NoSa:%String +0 +%Status + + -/// Controle van een lijn op prijs, levertermijn, aantal -/// What : P = Product, V = Verkoopprijs, L = Levertermijn, A = Aantal -Method Controles(oLijn As Flow.Offerte.LijnAbstract, What As %String, Taal As %String, NoSa As %String) As %Status -{ + + +Controle van een lijn op prijs, levertermijn, aantal +What : P = Product, V = Verkoopprijs, L = Levertermijn, A = Aantal +oLijn:Flow.Offerte.Lijn,What:%String,Taal:%String,NoSa:%String +%Status + + -/// Invullend van een lijn als het juist geCreate is -Method Fill(oLijn As Flow.Offerte.LijnAbstract, PRNr As %Integer, Aantal As %Integer) -{ + + +Invullend van een lijn als het juist geCreate is +oLijn:Flow.Offerte.Lijn,PRNr:%Integer,Aantal:%Integer + + -Method GetProducts(oLijn As Flow.Offerte.LijnAbstract, ByRef lbProducts As %List) As %Status -{ + + +%Status + + -Method GetProdWithPakket(PakRef As %String, KLNr As %Integer) [ Private ] -{ + +PakRef:%String,KLNr:%Integer +1 + + -Method GetProdWithIdentNr(IdentNr As %String, KLNr As %Integer) [ Private ] -{ + +IdentNr:%String,KLNr:%Integer,oLijn:Flow.Offerte.Lijn +1 +0,I<7 Set KortTekst=$$$PRGet($$$KortTekst) Set:KortTekst'[("*"_KLNr_"*") PRNr="" ; Kontrole op kundestam + + If ( $data(oLijn) ) && ( $IsObject(oLijn) ) && ( oLijn.Hoofding.Oorsprong="DYN" ) Do + . Set pxCrit=##class(BL.Prod.sub.pxSearchCriteria).Create($$$ProdCritUsageDynalog) + . Set pxCrit.At="I" + . Set pxCrit.SearchTxt=IdentNr + . Set pxCrit.VerifyCustomer=KLNr + . ;Set pxCrit.Pool = $LB("KS") + . Set lbPRNRs = ##class(BL.Prod.Search).SearchIndexAsList(pxCrit) + . If $ListLength(lbPRNRs)>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="" "" Quit $LB($LB(PRNr,1)) -} +]]> + -Method GetProdWithKortTekst(KortTekst As %String, KLNr As %Integer) [ Private ] -{ + +KortTekst:%String,KLNr:%Integer,oLijn:Flow.Offerte.Lijn +1 +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 + + If ( $D(oLijn) ) && ( $IsObject(oLijn) ) && ( oLijn.Hoofding.Oorsprong="DYN" ) Do + . Set pxCrit=##class(BL.Prod.sub.pxSearchCriteria).Create($$$ProdCritUsageDynalog) + . Set pxCrit.At="K" + . Set pxCrit.SearchTxt=KortTekst + . Set pxCrit.VerifyCustomer=KLNr + . Set pxCrit.Pool = $LB("KS") + . Set lbPRNRs = ##class(BL.Prod.Search).SearchIndexAsList(pxCrit) + . If $ListLength(lbPRNRs)>1 Set PRNr="" + . Else Set PRNr=$LG(lbPRNRs,1) + Else Do + . Set KeepChar="" + . Set KortTekst=$ZCvt($ZStrip(KortTekst,"*P",,KeepChar),"U") + . ; 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 + . . Set KT2=$ZCvt($ZStrip($P(^KPR1(NextKT),"\",2),"*P",,KeepChar),"U") + . . Quit:$E(KT2,1,$L(KortTekst))'=KortTekst + . . + . . Set PRNr=PRNr_";"_$P(^KPR1(NextKT),"\") + . Set $E(PRNr)="" ; verwijder eerste ";" + . Set:PRNr[";" PRNr="" ; Meerdere niet toegelaten + Quit:PRNr="" "" Quit $LB($LB(PRNr,1)) -} - - /* */ -]]> - +]]> + - +