LEVADR ;LEVRINGSADRESSEN KLANTEN [ 03/08/2002 11:26 AM ] ; ; Optie H = Inclusief het hoofdadres ; P = Inclusief POSTBUS ; A = Autoselect indien slechts een leveringsadres ; M = Selecteer leveringsadres voor manuele input ; E = Editeer het geselecteerde leveringsadres ; R = Refresh het scherm ; N = Nieuw adres SELECT(KLNr,Optie,LevAdr,AdresTypes) New R,Count,PostBus,DL,Manueel,AdresType Set KLNr=$G(KLNr),Optie=$G(Optie),AdresTypes=$G(AdresTypes) Do:Optie["R" STORE^vhTERMINA() If KLNr Do .Set Manueel=$G(LevAdr),KlantId=^KK1(KLNr),LevAdr="L",Count=0 .Set R=^KKL(KlantId,0),PostBus=$P(R,D,5)["POSTBUS" .Do:Optie["H" ..If Optie["P",PostBus Quit ..Set R=^KKL(KlantId,0) ..Set $P(R,D)="HOOFD",Count=Count+1,LevAdr(Count)=R .For Set LevAdr=$O(^KKL(KlantId,LevAdr)) Quit:LevAdr="" Do ..Set R=^KKL(KlantId,LevAdr),AdresType=$P(R,D,12) ..If $L(AdresTypes),AdresTypes'[AdresType Quit ..If $L(AdresTypes),AdresType="",AdresTypes'["L" Quit ..If $P(R,D,19) Do ...New KLNr,KlantId ...Set KLNr=$P(R,D,19) ...If '$D(^KK1(KLNr)) Set R="\Klant "_KLNr_" onbekend" Quit ...Set KlantId=^KK1(KLNr),$P(R,D,2,99)=$P(^KKL(KlantId,0),D,2,99) ..Set $P(R,D,12)=AdresType ..Set Count=Count+1,LevAdr(Count)=R .Do:Optie["P" ..If Optie["H",'PostBus Quit ..Set R=^KKL(KlantId,0) ..Set $P(R,D)="POST",Count=Count+1,LevAdr(Count)=R .If 'Count,Optie'["N" Set LevAdr="" .Else If Optie["A",Count=1 Set LevAdr=1 .Else If Optie["A",Count=2,Optie["H"!(Optie["P") Do ..If Optie["H",Optie'["P" Set LevAdr=2 ..Else If Optie["P",Optie'["H" Set LevAdr=1 ..Else Set LevAdr=$S(PostBus:1,1:2) ..Set LevAdr=$P(LevAdr(LevAdr),D) .Else Do ..Do INIT^PROC("LEVADR") ..If Optie["M" Set LEVADR(8)=LEVADR(8)_", M = Manuele ingave" ..If Optie["N" Set LEVADR(8)=LEVADR(8)_", N = Nieuwe ingave" ..If $P(Manueel,D)="M" Set Count=Count+1,LevAdr(Count)=Manueel,LEVADR(6)=Count ..Else Set:$P($G(LevAdr(1)),D)="HOOFD" LEVADR(6)=2 ..Do WL^PROC ..For Do Quit:"\\-\ENTER\"[(D_R_D) Quit:Optie["M"&(R="M") Quit:Optie["N"&(R="N") ...Do SL^PROC ...If R="ENTER",Optie["N",'Count Set R="?" ..If R="ENTER",LEVADR(6),$D(LevAdr(LEVADR(6))) Set LevAdr=$S($P(LevAdr(LEVADR(6)),D)="M":LevAdr(LEVADR(6)),1:$P(LevAdr(LEVADR(6)),D)) ..Else If R="M",LEVADR(6),$D(LevAdr(LEVADR(6))) Set LevAdr=$S($P(LevAdr(LEVADR(6)),D)="M":LevAdr(LEVADR(6)),1:"M"_$P(LevAdr(LEVADR(6)),D)) ..Else If R="N" Set LevAdr=R ..Else Set LevAdr="" .If Optie["E",$E(LevAdr)'="M" Set LevAdr="M"_LevAdr,LevAdr=$$MANUEEL(.LevAdr,KLNr,$E(LevAdr,2,9)) Else Set $P(LevAdr,D)="M" Set:$E(LevAdr)="M" LevAdr=$$MANUEEL(.LevAdr,KLNr,$E(LevAdr,2,9)) Do:Optie["R" REFRESH^vhTERMINA() Quit LevAdr ; HEEFTADR(KLNr) Quit ''$$AANTAL(KLNr) ; AANTAL(KLNr) New KlantId,Aantal Set KlantId=^KK1(KLNr),Aantal=0,LevAdr="L" For Set LevAdr=$O(^KKL(KlantId,LevAdr)) Quit:$E(LevAdr)'="L" Set Aantal=Aantal+1 Quit Aantal ; MANUEEL(LevAdr,KLNr,AdresNr) New zb,%SC,I,R,X,sFL,KlantId,Pieces,LevAdrOpslaan,Partij,PartijID Set LevAdr=$G(LevAdr) If KLNr Do .Set KlantId=^KK1(KLNr) .If AdresNr Set LevAdr=^KKL(KlantId,"L"_$J(AdresNr,3)) .Else Do:"\MHOOFD\HOOFD\POST\"[(D_AdresNr_D) ..For I=10:1:50 Set R=$G(^KKL(0,I)) Set:$P(R,U,16) Pieces($P(R,U,16))="" ..Set LevAdr=^KKL(KlantId,0) ..For I=1,19,24,25 Set $P(LevAdr,D,I)="" ..For I=1:1:$L(LevAdr,D) Set:'$D(Pieces(100+I)) $P(LevAdr,D,I)="" Set ($P(LevAdr,D),$P(LevAdr,D,19))="M",sFL(1)=LevAdr Set R=$S($TR($P(sFL(1),D,3,99),D,"")="":"NIEUW",1:"EDIT")_"^vhScherm(""LEVADR"",,,,,,3)" Do @R Set LevAdr=$S(%SC:sFL(1),1:"") Quit LevAdr ; ; Geeft het default leveringsadres terug ; Het hoofdadres of indien het hoofdadres een postbus is, het eerste leveringsadres $P(,D,2,9) ; Output="H" indien hoofdadres, anders "L" _ $P(leveringsadres,D,2,9) ; Landkode reeds vertaald DEFAULT(KLNr) New KlKey,LevAdr,LevAdrNr Set KlKey=^KK1(KLNr),LevAdr=^KKL(KlKey,0),$P(LevAdr,D)="H" Set LevAdrNr=$O(^KKL(KlKey,"L")) Set:$E(LevAdrNr)="L" LevAdr=^KKL(KlKey,LevAdrNr),$P(LevAdr,D)="L" ; Indien er leveringsadressen zijn neem dan het eerste (hiermee is POSTBUS ook opgelost) Set $P(LevAdr,D,8)=$$LAND^vhRtn1($P(LevAdr,D,8),2,$P(LevAdr,D,9)) Quit $P(LevAdr,D,1,9) ; ; Opzoeken van het nummer v/h leveringsadres GetAdresNr(KLNr,LevAdr) New I,R,KlKey,AdresNr,Check If '$L($TR($P(LevAdr,D,2,9),D,"")),'$L($P(LevAdr,D,15)),'$L($P(LevAdr,D,24)),'$L($P(LevAdr,D,25)) Set AdresNr="" ; Geen Else Do . Set KlKey=^KK1(KLNr),AdresNr="L" . For Set AdresNr=$O(^KKL(KlKey,AdresNr)) Quit:$E(AdresNr)'="L" Do Quit:Check . . Set R=^KKL(KlKey,AdresNr) . . For I=2:1:8 Set Check=$P(R,D,I)=$P(LevAdr,D,I) Quit:'Check . If $E(AdresNr)="L",Check Set AdresNr="a"_$TR(AdresNr,"L ","") . Else Set AdresNr="m" ; Manueel Quit AdresNr ; ; Ophalen verzendadres facturen GetFactuurVerzendenNaar(KLNr) Quit $$GetAdres(KLNr,"F") ; ; Ophalen bezoekadres GetBezoekAdres(KLNr) Quit $$GetAdres(KLNr,"B") ; ; Ophalen van een bezoekadres of DocumentVerzendenNaar GetAdres(KLNr,AdresType) New I,R,AdresRec,KlKey,Adres Set KlKey=^KK1(KLNr),Adres="L",AdresRec="" For Set Adres=$O(^KKL(KlKey,Adres)) Quit:$E(Adres)'="L" Do Quit:$L(AdresRec) . Set R=^KKL(KlKey,Adres) . Quit:$P(R,D,12)'=AdresType . Set AdresRec=R . If $P(R,D,19) Do . . New KLNr,KlKey . . Set KLNr=$P(R,D,19),KlKey=^KK1(KLNr) . . Set R=^KKL(KlKey,0) . . For I=2:1:9,13,14 Set $P(AdresRec,D,I)=$P(R,D,I) . . Set $P(AdresRec,D,19)="" Quit AdresRec ; ; Is een klant opgenomen in het leveradres van een andere klant IsKlantInAdres(KLNr,Type,Detail) New LARec,IsKlantInAdres,KlKey,LAKey Set Type=$G(Type),Detail=$G(Detail) Set (KlKey,IsKlantInAdres)=0 For Set KlKey=$O(^KKL(KlKey)) Quit:KlKey="" Do If 'Detail Quit:IsKlantInAdres . Set LAKey="L" . For Set LAKey=$O(^KKL(KlKey,LAKey)) Quit:$E(LAKey)'="L" Do If 'Detail Quit:IsKlantInAdres . . Set LARec=^KKL(KlKey,LAKey) . . Set:$P(LARec,D,12)="" $P(LARec,D,12)="L" . . If $L(Type) Quit:$P(LARec,D,12)'=Type . . Quit:$P(LARec,D,19)'=KLNr . . Set:'IsKlantInAdres IsKlantInAdres=1 . . If Detail,D_Detail_D'[(D_$P(KlKey," ",2)_D) Set Detail=Detail_D_$P(KlKey," ",2)_";"_$P(LARec,D,12) Quit IsKlantInAdres_$S(Detail:D_$P(Detail,D,2,999),1:"") ;