PRODUKT7 ; Ref = Local(KKey)="DKVG" (Push DB, korting, vork, grootteorde of een combinatie) ; Local(KKey,"DB")=Waarde ("" is ook een waarde indien '$D de waarde uit ^KLAS) ; Local(KKey,"KO")= "" "" ; Local(KKey,"VO")= "" "" ; Local(KKey,"GO")= "" "" ; Ref = ^HULP(%J,KKey)="DKVG" (Push DB, korting, vork, grootteorde of een combinatie) ; ^HULP(%J,"J",KKey,"DB")=Waarde ("" is ook een waarde indien '$D de waarde uit ^KLAS) ; ^HULP(%J,"J",KKey,"KO")= "" "" ; ^HULP(%J,"J",KKey,"VO")= "" "" ; ^HULP(%J,"J",KKey,"GO")= "" "" ; Indien KKey="A" dan worden alle subgroepen voor de gewenste rubriek gepushed ; Forced = D (DB) ; = K (Korting) ; = V (Vork) ; = G (Grootteorde) ; = combinatie van bovenstaande 4 mogelijkheden ; = 1 (Alles - DKVG) PUSHDEFAULT(Ref,NoSa,Forced) New R,PRNr,ModGrOrde,ModKort,ModDB,ModVork,KKey,NewDB,NewKort,NewVork,NewGrOrde,Rubriek,Rubrieken,ProdLev New OldDB,OldKort,OldVork,OldGrOrde,ForceGrOrde,ForceKort,ForceDB,ForceVork,Param4,Param5,Rec,Recalc Set Forced=$G(Forced) If Forced Set Forced=$G(@Ref@("A"),"DKVG") Set ForceDB=Forced["D",ForceKort=Forced["K",ForceVork=Forced["V",ForceGrOrde=Forced["G" If $D(@Ref@("A")) Do ; Opzetten van alle KKeys . Set:@Ref@("A")="" @Ref@("A")="DKVG" . If ForceDB,@Ref@("A")'["D" Set @Ref@("A")=@Ref@("A")_"D" . If ForceKort,@Ref@("A")'["K" Set @Ref@("A")=@Ref@("A")_"K" . If ForceVork,@Ref@("A")'["V" Set @Ref@("A")=@Ref@("A")_"V" . If ForceGrOrde,@Ref@("A")'["G" Set @Ref@("A")=@Ref@("A")_"G" . Set KKey="" . For Set KKey=$O(^KLAS("K",KKey)) Quit:'KKey Do .. Set R=^KLAS("K",KKey) .. Quit:'$P(R,D,9) ; KKey is geen subgroep .. Set @Ref@(KKey)=@Ref@("A"),Rubriek="" .. For Set Rubriek=$O(@Ref@("A",Rubriek)) Quit:Rubriek="" Do ... Quit:$D(@Ref@(KKey,Rubriek)) ... Set @Ref@(KKey,Rubriek)=@Ref@("A",Rubriek) . Kill @Ref@("A") If $D(NoSa),NoSa'="N",NoSa'="S" Kill NoSa If '$D(NoSa),Forced="" Set NoSa=$$^vhTXTPOP("PRODUKT7","PUSHDEFAULTNOSA") If NoSa'="N",NoSa'="S" Else Do ; Ophalen van de default waarden, eventueel invullen in ^KLAS . Lock +^KLAS . Set KKey="" . For Set KKey=$O(@Ref@(KKey)) Quit:KKey="" Do .. Set Rubrieken=$G(@Ref@(KKey)) .. Do:Rubrieken["D" ... If '$D(@Ref@(KKey,"DB")) Set @Ref@(KKey,"DB")=$$FF^DD("oPKKWinst") ... Else Do SF^DD("oPKKWinst",@Ref@(KKey,"DB")) ; DB% invullen in ^KLAS .. Do:Rubrieken["K" ... If '$D(@Ref@(KKey,"KO")) Set @Ref@(KKey,"KO")=$$FF^DD("oPKKKort") ... Else Do SF^DD("oPKKKort",@Ref@(KKey,"KO")) ; Korting% invullen in ^KLAS .. Do:Rubrieken["V" ... If '$D(@Ref@(KKey,"VO")) Set @Ref@(KKey,"VO")=$$FF^DD("oPKKVork") ... Else Do SF^DD("oPKKVork",@Ref@(KKey,"VO")) ; Vork% invullen in ^KLAS .. Do:Rubrieken["G" ... If '$D(@Ref@(KKey,"GO")) Set @Ref@(KKey,"GO")=$$FF^DD("oPKKGOS") ... Else Do SF^DD("oPKKGOS",@Ref@(KKey,"GO")) ; Grootteorde invullen in ^KLAS . Lock -^KLAS If NoSa="N" Do ; Invullen van de huidige defaults . Set:Forced="" NoSa=$$^vhTXTPOP("PRODUKT7","PUSHDEFAULTBEV") . Quit:NoSa'="N" . Lock +^KPR . Set PRNr=0 . For Set PRNr=$O(^KPR(PRNr)) Quit:'PRNr Do .. Set KKey=$$KKEY^KLASS(PRNr) .. Quit:'KKey Quit:'$D(@Ref@(KKey)) .. Set KortTxt=$P(^KPR(PRNr,0),D),SubGr=$$DISPL^KLASS(KKey) .. Set ProdLev="J" .. For Set ProdLev=$O(^KPR(PRNr,ProdLev)) Quit:$E(ProdLev)'="J" Do ... Set Rec=^KPR(PRNr,ProdLev),Recalc=0 ... ; ... ; Huidige DB ... ; ... Do:$D(@Ref@(KKey,"DB")) .... Set NewDB=@Ref@(KKey,"DB")*100,OldDB=$P(Rec,D,24),ModDB=1 .... Do:'ForceDB ..... Set ModDB=$G(@Ref@(KKey,"DB","MOD")) ..... Quit:ModDB ..... If $P(OldDB,"#",2) Set ModDB="" ; Product individueel ingesteld ..... Else If OldDB="" Set ModDB=0 ; Product nog niet ingesteld ..... Else Do ...... Set Param4=$TR($J($P(OldDB,"#"),2),".",",")_"%",Param5=$TR($J(NewDB,2),".",",")_"%" ...... Set ModDB=$$^vhTXTPOP("PRODUKT7","PUSHDEFAULTELEMENT","",KortTxt,SubGr,"huidige DB%",Param4,Param5) ..... Set @Ref@(KKey,"DB","MOD")=ModDB .... If $L(ModDB),'$P(OldDB,"#",2),+NewDB'=+OldDB Do ..... Set $P(Rec,D,24)=$S(NewDB:NewDB,1:""),Recalc=1 ..... Do PUTLOG^PRODUKT(PRNr,"J124",OldDB,NewDB) ... ; ... ; Huidige korting % ... ; ... Do:$D(@Ref@(KKey,"KO")) .... Set NewKort=@Ref@(KKey,"KO")*100,OldKort=$P(Rec,D,9),ModKort=1 .... Do:'ForceKort ..... Set ModKort=$G(@Ref@(KKey,"KO","MOD")) ..... Quit:ModKort ..... If $P(OldKort,"#",2) Set ModKort="" ; Product individueel ingesteld ..... Else If OldKort="" Set ModKort=0 ; Product nog niet ingesteld ..... Else Do ...... Set Param4=$TR($J($P(OldKort,"#"),2),".",",")_"%",Param5=$TR($J(NewKort,2),".",",")_"%" ...... Set ModKort=$$^vhTXTPOP("PRODUKT7","PUSHDEFAULTELEMENT","",KortTxt,SubGr,"huidige korting%",Param4,Param5) ..... Set @Ref@(KKey,"KO","MOD")=ModKort .... If $L(ModKort),'$P(OldKort,"#",2),+NewKort'=+OldKort Do ..... Set $P(Rec,D,9)=$S(NewKort:NewKort,1:""),Recalc=1 ..... Do PUTLOG^PRODUKT(PRNr,"J109",OldKort,NewKort) ... ; ... ; Huidige vork % ... ; ... Do:$D(@Ref@(KKey,"VO")) .... Set NewVork=@Ref@(KKey,"VO")*100,OldVork=$P(Rec,D,27),ModVork=1 .... Do:'ForceVork ..... Set ModVork=$G(@Ref@(KKey,"VO","MOD")) ..... Quit:ModVork ..... If $P(OldVork,"#",2) Set ModVork="" ; Product individueel ingesteld ..... Else If OldVork="" Set ModVork=0 ; Product nog niet ingesteld ..... Else Do ...... Set Param4=$TR($J($P(OldVork,"#"),2),".",",")_"%",Param5=$TR($J(NewVork,2),".",",")_"%" ...... Set ModVork=$$^vhTXTPOP("PRODUKT7","PUSHDEFAULTELEMENT","",KortTxt,SubGr,"huidige vork%",Param4,Param5) ..... Set @Ref@(KKey,"VO","MOD")=ModVork .... If $L(ModVork),'$P(OldVork,"#",2),+NewVork'=+OldVork Do ..... Set $P(Rec,D,27)=$S(NewVork:NewVork,1:""),Recalc=1 ..... Do PUTLOG^PRODUKT(PRNr,"J127",OldVork,NewVork) ... Do:Recalc RECALC^PRODUKT2(PRNr,Rec) .. ; .. ; Huidige grootteorde .. ; .. Do:$D(@Ref@(KKey,"GO")) ... Set NewGrOrde=@Ref@(KKey,"GO"),OldGrOrde=$P(^KPR(PRNr,1),D,10),ModGrOrde=1 ... Do:'ForceGrOrde .... Set ModGrOrde=$G(@Ref@(KKey,"GO","MOD")) .... Quit:ModGrOrde .... If $P(OldGrOrde,"#",2) Set ModGrOrde="" ; Product individueel ingesteld .... Else If OldGrOrde="" Set ModGrOrde=0 ; Product nog niet ingesteld .... Else Do ..... Set Param4=$P(OldGrOrde,"#"),Param5=NewGrOrde ..... Set ModGrOrde=$$^vhTXTPOP("PRODUKT7","PUSHDEFAULTELEMENT","",KortTxt,SubGr,"huidige grootteorde",Param4,Param5) .... Set @Ref@(KKey,"GO","MOD")=ModGrOrde ... If $L(ModGrOrde),'$P(OldGrOrde,"#",2),NewGrOrde'=OldGrOrde Do .... Set $P(^KPR(PRNr,1),D,10)=NewGrOrde .... Do PUTLOG^PRODUKT(PRNr,214,OldGrOrde,NewGrOrde) . Lock -^KPR If NoSa="S" Do ; Invullen van de schaduw defaults . Lock +^KPR . Set PRNr=0 . For Set PRNr=$O(^KPR(PRNr)) Quit:'PRNr Do .. Set KKey=$$KKEY^KLASS(PRNr) .. Quit:'KKey Quit:'$D(@Ref@(KKey)) .. Set KortTxt=$P(^KPR(PRNr,0),D),SubGr=$$DISPL^KLASS(KKey) .. ; .. ; Schaduw DB .. ; .. Do:$D(@Ref@(KKey,"DB")) ... Set NewDB=@Ref@(KKey,"DB")*100,OldDB=$P(^KPR(PRNr,2),D,6),ModDB=1 ... Do:'ForceDB .... Set ModDB=$G(@Ref@(KKey,"DB","MOD")) .... Quit:ModDB .... If $P(OldDB,"#",2) Set ModDB="" ; Product individueel ingesteld .... Else If OldDB="" Set ModDB=0 ; Product nog niet ingesteld .... Else Do ..... Set Param4=$TR($J($P(OldDB,"#"),2),".",",")_"%",Param5=$TR($J(NewDB,2),".",",")_"%" ..... Set ModDB=$$^vhTXTPOP("PRODUKT7","PUSHDEFAULTELEMENT","",KortTxt,SubGr,"schaduw DB%",Param4,Param5) .... Set @Ref@(KKey,"DB","MOD")=ModDB ... If $L(ModDB),'$P(OldDB,"#",2),+NewDB'=+OldDB Do .... Set $P(^KPR(PRNr,2),D,6)=$S(NewDB:NewDB,1:"") .... Do PUTLOG^PRODUKT(PRNr,306,OldDB,NewDB) .. ; .. ; Schaduw korting % .. ; .. Do:$D(@Ref@(KKey,"KO")) ... Set NewKort=@Ref@(KKey,"KO")*100,OldKort=$P(^KPR(PRNr,2),D,4),ModKort=1 ... Do:'ForceKort .... Set ModKort=$G(@Ref@(KKey,"KO","MOD")) .... Quit:ModKort .... If $P(OldKort,"#",2) Set ModKort="" ; Product individueel ingesteld .... Else If OldKort="" Set ModKort=0 ; Product nog niet ingesteld .... Else Do ..... Set Param4=$TR($J($P(OldKort,"#"),2),".",",")_"%",Param5=$TR($J(NewKort,2),".",",")_"%" ..... Set ModKort=$$^vhTXTPOP("PRODUKT7","PUSHDEFAULTELEMENT","",KortTxt,SubGr,"schaduw korting%",Param4,Param5) .... Set @Ref@(KKey,"KO","MOD")=ModKort ... If $L(ModKort),'$P(OldKort,"#",2),+NewKort'=+OldKort Do .... Set $P(^KPR(PRNr,2),D,4)=$S(NewKort:NewKort,1:"") .... Do PUTLOG^PRODUKT(PRNr,304,OldKort,NewKort) .. ; .. ; Schaduw vork % .. ; .. Do:$D(@Ref@(KKey,"VO")) ... Set NewVork=@Ref@(KKey,"VO")*100,OldVork=$P(^KPR(PRNr,2),D,5),ModVork=1 ... Do:'ForceVork .... Set ModVork=$G(@Ref@(KKey,"VO","MOD")) .... Quit:ModVork .... If $P(OldVork,"#",2) Set ModVork="" ; Product individueel ingesteld .... Else If OldVork="" Set ModVork=0 ; Product nog niet ingesteld .... Else Do ..... Set Param4=$TR($J($P(OldVork,"#"),2),".",",")_"%",Param5=$TR($J(NewVork,2),".",",")_"%" ..... Set ModVork=$$^vhTXTPOP("PRODUKT7","PUSHDEFAULTELEMENT","",KortTxt,SubGr,"schaduw vork%",Param4,Param5) .... Set @Ref@(KKey,"VO","MOD")=ModVork ... If $L(ModVork),'$P(OldVork,"#",2),+NewVork'=+OldVork Do .... Set $P(^KPR(PRNr,2),D,5)=$S(NewVork:NewVork,1:"") .... Do PUTLOG^PRODUKT(PRNr,305,OldVork,NewVork) .. ; .. ; Schaduw grootteorde .. ; .. Do:$D(@Ref@(KKey,"GO")) ... Set NewGrOrde=@Ref@(KKey,"GO"),OldGrOrde=$P(^KPR(PRNr,1),D,14),ModGrOrde=1 ... Do:'ForceGrOrde .... Set ModGrOrde=$G(@Ref@(KKey,"GO","MOD")) .... Quit:ModGrOrde .... If $P(OldGrOrde,"#",2) Set ModGrOrde="" ; Product individueel ingesteld .... Else If OldGrOrde="" Set ModGrOrde=0 ; Product nog niet ingesteld .... Else Do ..... Set Param4=$P(OldGrOrde,"#"),Param5=NewGrOrde ..... Set ModGrOrde=$$^vhTXTPOP("PRODUKT7","PUSHDEFAULTELEMENT","",KortTxt,SubGr,"schaduw grootteorde",Param4,Param5) .... Set @Ref@(KKey,"GO","MOD")=ModGrOrde ... If $L(ModGrOrde),'$P(OldGrOrde,"#",2),NewGrOrde'=OldGrOrde Do .... Set $P(^KPR(PRNr,1),D,14)=NewGrOrde .... Do PUTLOG^PRODUKT(PRNr,214,OldGrOrde,NewGrOrde) . Lock -^KPR Quit