Index: KLPUTZ.mac.rou =================================================================== diff -u -r1273 -r1944 --- KLPUTZ.mac.rou (.../KLPUTZ.mac.rou) (revision 1273) +++ KLPUTZ.mac.rou (.../KLPUTZ.mac.rou) (revision 1944) @@ -143,37 +143,42 @@ Set GrOrde=$P(Rec,D,19),WildCardInput=$P(Rec,D,20),WildCard=$P(Rec,D,21),CallBack=$P(Rec,D,22) If PRNr,'$D(^KPR(PRNr)) Set PRNr=0 If 'PRNr Set PRNr=$$FINDPROD(%J,SortKey,Next) - Set OldPRNr=PRNr - Do FETCHPR() - If Mode="N" Set ModOpen=0 Do NIEUW^vhScherm("KLPUTZD") - If $E(Mode)="E" Do - . If '$L(Field) Do EDIT^vhScherm("KLPUTZD","","","","",$L($G(Move))) Quit - . If Field="A" Do FIELD^vhScherm("KLPUTZD",$S(MinVerp:"MINVERP",1:"MINAANT")) - . If Field="L" Do FIELD^vhScherm("KLPUTZD","MINLEVT") - . If Field="G" Do FIELD^vhScherm("KLPUTZD","GELDVAN") - . If Field="T" Do FIELD^vhScherm("KLPUTZD","GELDTOT") - . If Field="O" Do FIELD^vhScherm("KLPUTZD","OPMERK") - If %SC Do - . Set IsChanged=1,Rebuild=0,User=$G(QU) - . Set (WildCard,CallBack)="" - . If Niveau="P" Do - . . Set:$P(Rec,D,10)'=PRNr $P(Rec,D,5)=PRNr - . . Set WildCardInput="" - . Else If WildCardInput?1"�".E Do ; PatternMatch op korttekst rechtstreeks ingegeven - . . Set WildCard=$E(WildCardInput,2,999) - . Else If WildCardInput?1"@".E Do ; Callback via (KLNr,PRNr) met een boolean als resultaat - . . Set CallBack=$E(WildCardInput,2,999) - . . If CallBack'["`" Set CallBack="F`"_CallBack_"^KLPUTZCallBacks" - . Else If $L(WildCardInput) Do ; PatternMatch op korttekst via WildCardToPattern conversie - . . Set WildCard=$$UPCASE^vhRtn1($$WildCardToPattern^vhLib(WildCardInput,1)) - . Set $P(Rec,D,7,22)=Korting1_D_Korting2_D_Opmerk_D_PRNr_D_MinAant_D_MinWeek_D_GeldVan_D_GeldTot_D_+$H_";"_User_"\\\"_MinVerp_D_GrOrde_D_WildCardInput_D_WildCard_D_CallBack - . If Niveau'=OldNiv!(PRNr'=OldPRNr) Do MLEVEL - . Set ^HULP(%J,"WL",KLPUTZ(6))=Rec,SortKey=$P(Rec,D),Next=$P(Rec,D,6) - . Set R=^HULP(%J,"KEY",SortKey,Next) - . Set $P(R,D,7,99)=$P(Rec,D,7,99) If Niveau="P" Set $P(R,D,5)=PRNr - . Set ^HULP(%J,"KEY",SortKey,Next)=R - . Do DDUBBELS Set Next=$$RLEVEL^KLPUTZ2(SortKey,Next) - . If Rebuild Do BUILDSL(SortKey,Next),ADD^vhScherm(KLPUTZ(3),24) + If PRNr Do + . Set OldPRNr=PRNr + . Do FETCHPR() + . If Mode="N" Set ModOpen=0 Do NIEUW^vhScherm("KLPUTZD") + . If $E(Mode)="E" Do + . . If '$L(Field) Do EDIT^vhScherm("KLPUTZD","","","","",$L($G(Move))) Quit + . . If Field="A" Do FIELD^vhScherm("KLPUTZD",$S(MinVerp:"MINVERP",1:"MINAANT")) + . . If Field="L" Do FIELD^vhScherm("KLPUTZD","MINLEVT") + . . If Field="G" Do FIELD^vhScherm("KLPUTZD","GELDVAN") + . . If Field="T" Do FIELD^vhScherm("KLPUTZD","GELDTOT") + . . If Field="O" Do FIELD^vhScherm("KLPUTZD","OPMERK") + . If %SC Do + . . Set IsChanged=1,Rebuild=0,User=$G(QU) + . . Set (WildCard,CallBack)="" + . . If Niveau="P" Do + . . . Set:$P(Rec,D,10)'=PRNr $P(Rec,D,5)=PRNr + . . . Set WildCardInput="" + . . Else If WildCardInput?1"�".E Do ; PatternMatch op korttekst rechtstreeks ingegeven + . . . Set WildCard=$E(WildCardInput,2,999) + . . Else If WildCardInput?1"@".E Do ; Callback via (KLNr,PRNr) met een boolean als resultaat + . . . Set CallBack=$E(WildCardInput,2,999) + . . . If CallBack'["`" Set CallBack="F`"_CallBack_"^KLPUTZCallBacks" + . . Else If $L(WildCardInput) Do ; PatternMatch op korttekst via WildCardToPattern conversie + . . . Set WildCard=$$UPCASE^vhRtn1($$WildCardToPattern^vhLib(WildCardInput,1)) + . . Set $P(Rec,D,7,22)=Korting1_D_Korting2_D_Opmerk_D_PRNr_D_MinAant_D_MinWeek_D_GeldVan_D_GeldTot_D_+$H_";"_User_"\\\"_MinVerp_D_GrOrde_D_WildCardInput_D_WildCard_D_CallBack + . . If Niveau'=OldNiv!(PRNr'=OldPRNr) Do MLEVEL + . . Set ^HULP(%J,"WL",KLPUTZ(6))=Rec,SortKey=$P(Rec,D),Next=$P(Rec,D,6) + . . Set R=^HULP(%J,"KEY",SortKey,Next) + . . Set $P(R,D,7,99)=$P(Rec,D,7,99) If Niveau="P" Set $P(R,D,5)=PRNr + . . Set ^HULP(%J,"KEY",SortKey,Next)=R + . . Do DDUBBELS Set Next=$$RLEVEL^KLPUTZ2(SortKey,Next) + . . If Rebuild Do BUILDSL(SortKey,Next),ADD^vhScherm(KLPUTZ(3),24) + Else Do + . Do WARN^vhTXTPOP("Geen producten binnen deze classificatie,~gelieve deze lijn te verwijderen","") + . Do ADD^vhScherm(KLPUTZ(3),24) + . Set Input="V" If Mode="E",$L($G(Move)),"()"[Move Quit If $L(Field) Do EL^PROC Set KLPUTZ(4)=$P(^LD("D","KLPUTZ"),"`",10) Set:'KLPUTZ(4) KLPUTZ(4)=24-KLPUTZ(3)+1 @@ -185,7 +190,6 @@ Do EL^PROC Quit ; - ; ; Verwijder een lijn LDELETE New R,SortKey @@ -245,7 +249,7 @@ New R,HoofdGr,Groep,SubGroep,PRNr Set R=^HULP(%J,"KEY",SortKey,Next),HoofdGr=$P(R,D,2),Groep=$P(R,D,3),SubGroep=$P(R,D,4) Set:0[Groep Groep=$O(^KPH(HoofdGr,"")) Set:0[SubGroep SubGroep=$O(^KPH(HoofdGr,Groep,"")) - Set PRNr=^($O(^KPH(HoofdGr,Groep,SubGroep," ",""))) + Set PRNr="" Set:$L($O(^KPH(HoofdGr,Groep,SubGroep," ",""))) PRNr=^($O(^KPH(HoofdGr,Groep,SubGroep," ",""))) Quit PRNr ; ; Wijzigen van niveau