BLPUTZ ;BLUM Prijsuitzonderingen;DMS ES [ 01/09/2003 8:19 AM ] If '$D(Q) Do INIT^vhTERMINA ; N Set NoSa="N" Goto DO S Set NoSa="S" Goto DO ; DO Do VERWERK("",NoSa) Quit ; Plaatsen van de AUTO pinning voor de E24 producten afhankelijk van de IC>=4 PinE24Scan(Ask) Set PRNr=0 For Set PRNr=$O(^KPR(PRNr)) Quit:PRNr="" Do . Set IDNr=$P(^KPR(PRNr,2),D,25) . Set KortT=$P(^KPR(PRNr,0),D,1) . Quit:'$D(^KPR(PRNr,"J5005")) . Quit:KortT["*DO*" . Quit:KortT["*KP*" . ;use 0 write PRNr," " . Set BLID=0_$TR($E(IDNr,2,99),".","") . Set BLRec=$G(^BLProd("D",BLID)) . Set IC=$P(BLRec,D,2) . Quit:IC="" . Set Kunde=$S(IC>=4:271250,1:212250) . If $D(^BLProd("RP",271250,BLID)) Set Kunde=271250 . ; Pinning controleren . Set Pin="" . If $G(Ask) Do . . If Kunde=212250,$P($G(^PRPUTZ("N",PRNr,4682,0)),D)=271250 Do ; Remove PIN . . . Write !,KortT," ",IC," gepinned naar 271250 -> verwijderen V[]: " . . . Read K . . . Set:$$UPTRIMAN^vhRtn1(K)="V" Pin="V" ; . . Else If Kunde=271250,'$D(^PRPUTZ("N",PRNr)) Do ; Place pin . . . Write !,KortT," ",IC," niet gepinned aan 271250 -> pinnen P[]: " . . . Read K . . . Set:$$UPTRIMAN^vhRtn1(K)="P" Pin="P" ; verwijder . Else Do . . If Kunde=271250,'$D(^PRPUTZ("N",PRNr)) Set Pin="P" ; Reeds gepinned . Quit:Pin="" . Do DelPin(PRNr) ; steeds verwijderen zowel bij P als V . If Pin="P" Do SetPinE24(PRNr) Quit PinE24(PRNr,DelFirst) New K,IsScan If '$G(PRNr) Do . Write @F11,@F1,@FMTI," Pinnen product aan kunde 271250 - ",QN," ",@FMTi . Set FP=2101 Write @F,"Scan of enkel product",!,"[] = enkel, SCAN[] = scanning",! . Read K . Set IsScan=$$UPTRIMAN^vhRtn1(K)="SCAN" If IsScan Do PinE24Scan(1) Quit If '$G(PRNr) Do . Set PRNr=$$SELECT^PRODUKT6("L",5005) Quit:PRNr'?4.7N Quit:'$D(^KPR(PRNr,"J5005")) ; Geen blumproduct If $G(DelFirst) Do . Do DelPin(PRNr) Else If $D(^PRPUTZ("N",PRNr)) Do . Set KLNr=$O(^PRPUTZ("N",PRNr,"")) . Quit:'KLNr . Set BLKLNr=$P(^PRPUTZ("N",PRNr,KLNr,0),D) . Set FP=2201 Write @F,@F1,!,"!!! REEDS gepinned aan klant ",KLNr," ",BLKLNr,!,"kan nieuwe pinning niet uitvoeren !!! (druk op enter OF type REMOVE)" . Read K . If K="REMOVE" Do DelPin(KLNr) If $D(^PRPUTZ("N",PRNr)) Do Quit ;er bestaat reeds een pinning . Set FP=2201 Write @F,@F1,!,"Pinning NIET uitgevoerd (druk op enter)" . Read K Do SetPinE24(PRNr) Set FP=2201 Write @F,@F1,!,"Pinning uitgevoerd (druk op enter)" Read K Quit SetPinE24(PRNr) Set ^PRPUTZ("N",PRNr,4682,0)="271250\E24" Set ^PRPUTZ("IN",4682,PRNr)="E24" Quit DelPin(PRNr,KLNr) Set KLNr=$G(KLNr) Do:KLNr Quit:KLNr For Set KLNr=$O(^PRPUTZ("N",PRNr,KLNr)) Quit:KLNr="" Do . Kill ^PRPUTZ("N",PRNr,KLNr,0) . Kill ^PRPUTZ("IN",KLNr,PRNr) Quit ; Verwijder alle automatisch geplaatste pinnings PIN = gemarkeerde met "AUTO" RemovePinE24 Set PRNr="" For Set PRNr=$O(^PRPUTZ("IN",4682,PRNr)) Quit:PRNr="" Do . If ^PRPUTZ("IN",4682,PRNr)="E24" Do .. Kill ^PRPUTZ("N",PRNr,4682,0) .. Kill ^PRPUTZ("IN",4682,PRNr) Quit ;Verwijder alle pinning als de Externe specificatie niet meer bestaat RemoveNonExistPin Set (PRNr,KLNr)="" For Set PRNr=$O(^PRPUTZ("N",PRNr)) Quit:PRNr="" Do . For Set KLNr=$O(^PRPUTZ("N",PRNr,KLNr)) Quit:KLNr="" Do .. Set BLKLNr=$P(^PRPUTZ("N",PRNr,KLNr,0),D) .. If '$D(^KPR(PRNr)) Do Quit ; product bestaat niet meer ... Kill ^PRPUTZ("N",PRNr,KLNr,0) ... Kill ^PRPUTZ("IN",KLNr,PRNr) .. Quit:BLKLNr="044260" ; BKK directklant .. Quit:BLKLNr="452250" ; Meubar directklant .. Set IDNr=$P(^KPR(PRNr,2),D,25) .. Set KortT=$P(^KPR(PRNr,0),D,1) .. Quit:'$D(^KPR(PRNr,"J5005")) ; Geen BLUM product .. Quit:KortT["*DO*" ; Geen direct producten .. Set BLID=0_$TR($E(IDNr,2,99),".","") .. If '$D(^BLProd("RP",BLKLNr,BLID)) Do ; Externe specificatie bestaat niet ... Write "Verwijderd ",KortT," ",KLNr,! ... Kill ^PRPUTZ("N",PRNr,KLNr,0) ... Kill ^PRPUTZ("IN",KLNr,PRNr) Quit ; Plaatsen van de pinning voor product in de externe specificatie PinES Set PRNr=0 For Set PRNr=$O(^KPR(PRNr)) Quit:PRNr="" Do . Set IDNr=$P(^KPR(PRNr,2),D,25) . Set KortT=$P(^KPR(PRNr,0),D,1) . Quit:'$D(^KPR(PRNr,"J5005")) . Quit:KortT["*KP*" . Set KLNr=$P(KortT,"*",2) . Quit:(KLNr'?4.5N)&&(KLNr'="DO") . Quit:'$D(^KK1(KLNr)) ; Klantnr bestaat niet . Quit:$D(^PRPUTZ("N",PRNr,KLNr)) ; Reeds gepinned . ; Opzoeken BLUM klantnr . If KLNr="DO" Set BLKLNr="044260" . Else Do .. Set BLKLNr="" .. For Set BLKLNr=$O(^BLBeri("K",BLKLNr)) Quit:BLKLNr="" Quit:$P(^BLBeri("K",BLKLNr),D,3)=KLNr . Quit:BLKLNr="" . Set BLID=0_$TR($E(IDNr,2,99),".","") . Set BLRec=$G(^BLProd("D",BLID)) . Write:'$D(^BLProd("RP",BLKLNr,BLID)) "GEEN EXTERNE ",KortT," ",KLNr," ",BLKLNr,! . Quit:'$D(^BLProd("RP",BLKLNr,BLID)) ; Er bestaat geen externe specificatie . Write "PIN ",KortT," ",KLNr," ",BLKLNr,! . Set ^PRPUTZ("N",PRNr,KLNr,0)=BLKLNr_D_"ES" . Set ^PRPUTZ("IN",KLNr,PRNr)="ES" Quit VERWERK(BLKLNr,NoSa) New Kode,sS,VHKLNr,SaNo,IsNetto,Munt,%J Do .New BLKLNr .Set (VHKLNr,BLKLNr)="*",(IsNetto,Munt)="" Do DISPLAY^vhScherm("BLPUTZ") If $G(NoSa)="" Set NoSa="N" If NoSa'="N",NoSa'="S" Quit Set NoSa=$P("RP\RPS",D,NoSa="S"+1) Set SaNo=$S(NoSa["S":"RP",1:"RPS") Set %J=$$%J^vhRtn1() Kill ^HULP(%J) Set Input=$G(Input),BLKLNr=$G(BLKLNr) If $L(BLKLNr),$D(^BLBeri("K",BLKLNr)) Set Extern=1 If '$G(Extern) Set BLKLNr=$$SELECT^BLKLANT() Quit:'$L(BLKLNr) Quit:'$D(^BLBeri("K",BLKLNr)) If $$LOCK(BLKLNr) Do INIT,COMMAND,SAVE:Input="-",CLEAN Kill ^HULP(%J) Quit ; INIT Kill ^HULP(%J) Lock +^BLProd("RP",BLKLNr):1 Else Do LDISP^vhLock("^BLProd(BLKLNr)","BLUM prijsuitzondering") Quit Lock +^BLProd("RPS",BLKLNr):1 Else Do LDISP^vhLock("^BLProd(BLKLNr)","BLUM prijsuitzondering") Quit Do INIT^PROC("BLPUTZ") Do ADD^vhScherm(1,24) Set VHKLNr=$P($G(^BLBeri("K",BLKLNr)),D,3) Set IsNetto=$P(^BLProd("R",BLKLNr),D,2) Set Munt=$P(^BLProd("R",BLKLNr),D,3) Set MuntPar=$P(^BLProd("R",BLKLNr),D,4) Set (BLID)="" Set NoSaOld=NoSa For NoSa=NoSa,SaNo Do .Set Cnt=0 .For Set BLID=$O(^BLProd(NoSa,BLKLNr,BLID)) Quit:BLID="" Do ..Set Cnt=Cnt+1 ..Set ^HULP(%J,NoSa,$S($D(^BLProd("D",BLID)):$P(^(BLID),D),1:"~"_BLID))=$$FETCH() .Do RL^PROC1 Set NoSa=NoSaOld Set BLPUTZ(9)=$O(^HULP(%J,NoSa,""),-1) Do BUILDIND Set Input="" Set sS("MOD")=0 Set Input="" Quit FETCH(OldVal) New Rec Set PRNr=$$GETVH^BLPROD(BLID,BLKLNr) Set Rec=BLKLNr_D_BLID_D_PRNr_D_$S('PRNr:0,$D(^PRPUTZ("N",PRNr,+VHKLNr)):1,1:0)_"`"_$S($G(OldVal)="":$$PRIJS^Blum.RaadplegenProduct(BLID,,BLKLNr),1:OldVal) Quit Rec BUILDIND New LijnNr,BLID Kill ^HULP(%J,"I") For LijnNr=1:1:$O(^HULP(%J,SaNo,""),-1) Do .Set BLID=$P(^HULP(%J,SaNo,LijnNr),D,2) .Set ^HULP(%J,"I",BLID)=LijnNr Quit COMMAND For Do If $L(Input)=1,"-."[Input Quit .Do REFRESH .Do SL^PROC .Set Input=R .If Input="HELP" Do HELP .If Input="PRINT" Do PRINT .If Input="-"!(Input=".") Set Input=$$SAVE^vhINP(1,sS("MOD")) .If Input="S" Do NOSA .If Input="ENTER" Do LWIJZIG() .If Input="N" Do LNIEUW .If Input="V" Do LDELETE .If Input="X" Do LDELALL .If Input="C" Do LCOPY .If Input="A" Do LCOPYALL .If Input="K" Do KLANT .If Input="Z" Do LPIN Quit KLANT If $G(Extern) W *7 Quit Set Input=$$SAVE^vhINP(1,sS("MOD"),1) Do SAVE:Input="-",CLEAN For Set BLKLNr=$$SELECT^BLKLANT() Quit:'BLKLNr Quit:$$LOCK(BLKLNr) Quit:'BLKLNr Do INIT Quit PRINT Set Input=$$SAVE^vhINP(1,sS("MOD"),1) Do SAVE:Input="-",CLEAN Do PRINT^BLPUTZ2(BLKLNr,"V","","") Do INIT Quit DELOBJ(BLKLNr,NoSa) Kill ^BLProd(NoSa,BLKLNr) Quit SAVE Quit:'sS("MOD") For Key="RP","RPS" Do .Do DELOBJ(BLKLNr,Key) .Set LijnNr="" .For Set LijnNr=$O(^HULP(%J,Key,LijnNr)) Quit:LijnNr="" Do ..Set Index=$P(^HULP(%J,Key,LijnNr),"`") ..Set Data=$P(^HULP(%J,Key,LijnNr),"`",2) ..Set ^BLProd(Key,$P(Index,D,1),$P(Index,D,2))=Data Quit CLEAN Kill ^HULP(%J) Lock -^BLProd(NoSa,BLKLNr) Lock -^BLProd(SaNo,BLKLNr) Quit LNIEUW New Index,Data,LijnNr,BLID,VHPRNr,KundenStamm Set Index="",Data="" Set BLID=$$SELECT^BLPROD("","","",1) Quit:$L(BLID)'=8 Set LijnNr="" ; Nakijken of Identnr reeds gebruikt For Set LijnNr=$O(^HULP(%J,NoSa,LijnNr)) Quit:LijnNr="" Quit:BLID=$P(^HULP(%J,NoSa,LijnNr),D,2) If LijnNr Do TXTL^vhINP("BLPUTZ","DUBBEL") Quit Set VHPRNr=$$GETVH^BLPROD(BLID) Set KundenStamm=$$GeefKuSta^PRODUKT5(VHPRNr) If $L(KundenStamm),(D_KundenStamm_D)'[(D_BLKLNr_D) Do Quit . New Warn . Set FP=2201 . Write @F,@F1 . Set Warn="Het product "_$P(^KPR(VHPRNr,2),D,25)_" - "_$P(^KPR(VHPRNr,0),D)_"~is gepind aan BLUM klant "_$P(KundenStamm,D)_" "_$P(^BLBeri("K",$P(KundenStamm,D)),D),KundenStamm=$P(KundenStamm,D,2,9) . For Quit:KundenStamm="" Set Warn=Warn_"~"_$J("",26)_$P(KundenStamm,D)_" "_$P(^BLBeri("K",$P(KundenStamm,D)),D),KundenStamm=$P(KundenStamm,D,2,9) . Do WARN^vhTXTPOP(Warn,"") Set $P(Index,D,2)=BLID Set $P(Index,D,3)=$$GETVH^BLPROD($P(Index,D,2),BLKLNr) Set $P(Index,D,1)=BLKLNr Do NIEUW^vhScherm("BLPUTZDTL") Quit:'%SC Do NIEUWV^PROC3(Index_"`"_Data) Set sS("MOD")=1 Quit ; LWIJZIG(Field) New Index,Data Quit:'$D(^HULP(%J,NoSa,BLPUTZ(6))) Set Index=$P(^HULP(%J,NoSa,BLPUTZ(6)),"`") Set Data=$P(^HULP(%J,NoSa,BLPUTZ(6)),"`",2) Do EDIT^vhScherm("BLPUTZDTL") Quit:'%SC Set ^HULP(%J,NoSa,BLPUTZ(6))=Index_"`"_Data Do EL^PROC Set sS("MOD")=1 Quit ; ; Verwijder een lijn LDELETE New R,SortKey Quit:'$D(^HULP(%J,NoSa,BLPUTZ(6))) Do DELETE^PROC3 Set sS("MOD")=1 Quit ; ; Verwijder alle uitzonderingen van een klant LDELALL New Key Do DL^PROC Set Key=$$ASKL^vhINP("BLPUTZ","LDELALL") If Key'="V" Do EL^PROC Quit Kill ^HULP(%J,NoSa) Do WL^PROC Set sS("MOD")=1 Quit LCOPY New LijnNr,IdentNr Quit:'$D(^HULP(%J,NoSa,BLPUTZ(6))) Set BLID=$P(^HULP(%J,NoSa,BLPUTZ(6)),D,2) Set LijnNr=$G(^HULP(%J,"I",BLID)) Set:'LijnNr LijnNr=$O(^HULP(%J,SaNo,""),-1)+1 Set ^HULP(%J,SaNo,LijnNr)=^HULP(%J,NoSa,BLPUTZ(6)) Set ^HULP(%J,"I",BLID)=LijnNr Set sS("MOD")=1 Do EL^PROC Quit LCOPYALL New Key Do DL^PROC Set Key=$$ASKL^vhINP("BLPUTZ","LCOPYALL") If Key'="V" Do EL^PROC Quit Kill ^HULP(%J,SaNo) Merge ^HULP(%J,SaNo)=^HULP(%J,NoSa) Do BUILDIND Do WL^PROC Set sS("MOD")=1 Quit LPIN New PRNr,Lijn,BLID,KortT,Inp Set Lijn=BLPUTZ(6) Quit:'Lijn Quit:'$D(^HULP(%J,NoSa,Lijn)) Set PRNr=$P(^HULP(%J,NoSa,Lijn),D,3) Set BLID=$P(^HULP(%J,NoSa,Lijn),D,2) Set KortT="" Set:PRNr KortT=$P($G(^KPR(PRNr,0)),D,1) Set:KortT="" KortT=$P($G(^BLProd("D",BLID)),D,1) Set PRNr=$$SELECT^PRODUKT6("","",$E(KortT,1,11)) Quit:PRNr'?4.7N If $TR($E($P(^KPR(PRNr,2),D,25),3,99),".","")'=$E(BLID,2,99) Do Quit .Set Inp=$$^vhTXTPOP("BLPUTZ","PINDIFF","",$E(BLID)_"."_$E(BLID,2,4)_"."_$E(BLID,5,7)_"."_$E(BLID,8),$P($G(^BLProd("D",BLID)),D,1),$P(^KPR(PRNr,2),D,25),$P(^KPR(PRNr,0),D,1)) Set Inp=$$^vhTXTPOP("BLPUTZ","PINASK","",$P(^KPR(PRNr,2),D,25),$P(^KPR(PRNr,0),D,1)) Quit:Inp'="P" Set ^PRPUTZ("N",PRNr,+VHKLNr,0)=BLKLNr Set ^PRPUTZ("IN",+VHKLNr,PRNr)="" Set BLID=$P(^HULP(%J,NoSa,Lijn),D,2) Set ^HULP(%J,NoSa,Lijn)=$$FETCH($P(^HULP(%J,NoSa,Lijn),"`",2)) Do EL^PROC Quit CALC(BNPFld,CurFld,Val) New BNP,Type,Kort,Bruto,Netto,P24Net,P24Kort,P24Brut Set BNP=$$GET^vhScherm(BNPFld) Set Type=$E("TBKNI",CurFld-BNPFld+1) Set Bruto=$$GET^vhScherm(BNPFld+1) Set Kort=$$GET^vhScherm(BNPFld+2) Set Netto=$$GET^vhScherm(BNPFld+3) Set IsBPrijs=$$GET^vhScherm(BNPFld+4) If Type="I",IsBPrijs=Val Quit If Type="T",BNP=Val Quit If Type="K" Set (X,Val)=+$J($S(Val>1:Val/100,1:Val),0,4) Set BLId=$P(sFL("I"),D,2) Quit:'$L(BLId) Set P24Brut=$P(sFL("B"),D,10+IsBPrijs) If Type="T",BNP="P" Do ; Indien oude P24 dan prijszetting volgens P24 .Set Kort=$P(sFL("B"),D,16) .Set Kort=$P($$GeefRabatOberGrenze^Blum.RaadplegenProduct(Kort,"",BLKLNr),D,2) .Set Bruto=P24Brut .Set Netto=$J(Bruto*(1-Kort)+.004,0,2) Set:Type="T" BNP=Val ; BNP bevat de nieuwe waarde ; Aanpassing bij BNP=Netto If BNP="N" Do .If Type="K",P24Brut Do ; Korting ingegeven, herrekenen Netto ..Set Netto=$J(P24Brut*(1-Val)/MuntPar+.004,0,2) .If Type="N" Do ..Set Netto=$J(Val+.004,0,2) .Set Bruto=Netto,Kort="" ; Aanpassing bij BNP=Bruto If BNP="B" Do ; Bruto .If Type="B" Set Bruto=Val,Netto=$J(Val*(1-Kort)+.004,0,2) .If Type="K" Set Kort=Val,Netto=$J(Bruto*(1-Val)+.004,0,2) .If Type="N",Bruto Set Kort=$J(1-(Val/Bruto),0,4),Netto=$J(Bruto*(1-Kort)+.004,0,2) .If Type="T" Set Bruto=P24Brut,Kort=0 Set:'Netto Netto=Bruto Set:Bruto Kort=$J(1-(Netto/Bruto),0,4),Netto=$J(Bruto*(1-Kort)+.004,0,2) .If Type="I",P24Brut Set Bruto=P24Brut,Netto=$J(Bruto*(1-Kort)+.004,0,2) ; Aanpassing bij BNP=P24 If BNP="P" Set (Kort,Netto,Bruto)="" ;Wegschrijven van de velden Do PUT^vhScherm(BNPFld+1,Bruto) Do PUT^vhScherm(BNPFld+2,Kort) Do PUT^vhScherm(BNPFld+3,Netto) Set X=$S(Type="K":Kort,Type="B":Bruto,Type="N":Netto,1:Val) Do:"BKN"'[Type PUT^vhScherm(CurFld,X) Do REPAINT^vhScherm(BNPFld+5) Set sEr=-1 Set %SC=1 Quit CALCKORT() ; Ophalen van de Korting tov. de P24 waarde New P24Brut,BNP,IsBPrijs,P24Net,P24Kort Set BNP=$P(sFL("D"),D,5) Set IsBPrijs=$P(sFL("D"),D,9) Set P24Brut=$P(sFL("P"),D,10) Set P24Kort="" If BNP'="P" Do .Set P24Net=$P(sFL("D"),D,4)*MuntPar .Set:P24Brut P24Kort=$J(1-(P24Net/P24Brut),0,4) .Set T1=$J(P24Kort+.0004,0,3) .Set T2=$J(P24Brut*(1-T1)+.004,0,2) .Set:+T2=P24Net P24Kort=T1 Else Do .Set P24Kort=$P(sFL("B"),D,16) .Set P24Kort=$P($$GeefRabatOberGrenze^Blum.RaadplegenProduct(P24Kort,"",BLKLNr),D,2) Quit P24Kort BPRIJS(P24Fld,CurFld,Paint) Set IsBPrijs=$P(sFL("D"),D,9) If 'IsBPrijs Do .Do PUTATTR^vhScherm(P24Fld,"","B") .Do REMATTR^vhScherm(P24Fld+2,"","B") If IsBPrijs Do .Do PUTATTR^vhScherm(P24Fld+2,"","B") .Do REMATTR^vhScherm(P24Fld,"","B") Do:Paint REPAINT^vhScherm(P24Fld_";"_(P24Fld+2)) Quit VERSCHIL(BLID,Data,Format) New LijnNr Set LijnNr=$G(^HULP(%J,"I",BLID)) Quit:'LijnNr "*New*" Set Rec=$P(^HULP(%J,SaNo,LijnNr),"`",2) Quit:$P(Data,D,5)'=$P(Rec,D,5) "*BNP*" Quit:+$P(Data,D,4)'=+$P(Rec,D,4) "*Net*" Quit:+$P(Data,D,1)'=+$P(Rec,D,1) "*Brut*" Quit:+$P(Data,D,3)'=+$P(Rec,D,3) "*Kort*" Quit:+$P(Data,D,9)'=+$P(Rec,D,9) "*BPrijs*" Quit "" ; REFRESH If sRT<(BLPUTZ(3)-1) Do DISPLAY^vhScherm("BLPUTZ","","","H") Kill DL(2) If sRT'