RAPPORT ;Rapporten [ 02/22/2002 8:24 AM ] ; New %J,Check,Select,Geldig For Set Select=$$SELECT() Quit:Select="-" Set Geldig=$$GELDIG() Quit:Geldig'="-" Quit:Select="-" Set %J=$$%J^vhRtn1() Kill ^HULP(%J) Do FETCH($P(Select,D),$P(Select,D,2),$P(Select,D,3)) Quit:'$D(^HULP(%J)) Do PRINT("",Geldig) Kill ^HULP(%J) Quit ; FETCH(FromKl,ToKl,GloRef) New B,KLNr,Klanten,Count If GloRef["KL)" Set GloRef=$P(GloRef,"KL)")_"NextKl)" Set:$G(GloRef)="" GloRef="^KKL(NextKl)" Set NextKl=FromKl,(Klanten,Count)=0 Set FP=2201 Write @F,@F1,!?2,"Klanten verwerkt :" For Do Quit:NextKl]ToKl!(NextKl="") .If '(Klanten#$S(Klanten<100:10,1:100)) Do ..Set FP=2322 Write @F,Klanten,"/",Count,@F1 .Set KLNr=$$FETCHNR^SELALG(GloRef),Klanten=Klanten+1 .Do FETCHKL^UTILI(KLNr) .Do ..Quit:$P(B(3),D,10) ..If $L($G(Check)) Quit:'$$CHECK^UTILI("Check") ..Set Count=Count+1,^HULP(%J,Count)=KLNr .Set NextKl=$$NEXT^SELALG(GloRef) Quit ; ; Afdrukken ; KlRef : waar klantnummer halen (default ^HULP(%J)) ; Geldig : "" = alle bezoeken, 0 = ongeldige bezoeken, 1 = geldige bezoeken ; Sort : "" = volgens aanbod, A = alfabetisch O = volgens omzet PRINT(KlRef,Geldig,Sort) New %JJ,RAPPORTL,Date If '$D(Sort) Set Sort=$$ASKL^vhINP("RAPPORT","SORT") Quit:Sort="-" Set FP=2201 Write @F,@F1 Set KlRef=$G(KlRef) Set:KlRef="" KlRef="^HULP(%J" Set:'$D(Geldig) Geldig=1 Set Date=$$DATE() If $E(KlRef,$L(KlRef))="(" Set $E(KlRef,$L(KlRef))="" If $L(Sort) Do .Set %JJ=$$%J^vhRtn1() .Kill ^HULP(%JJ) .Do SORT(KlRef,"^HULP(%JJ",Sort) Set KlRef="^HULP(%JJ" Do INIT^PROC("RAPPORTL") Set RAPPORTL(1)=KlRef Set R=RAPPORTL(2),RAPPORTL(2)=$P(R,D,1,$L(R,D)-1),R=$P(R,D,$L(R,D)) For I=1:1:13 Set $P(R,U)="1."_I Set:I=13 $P(R,U,6)="" Set RAPPORTL(2)=RAPPORTL(2)_D_R Set RAPPORTL(8,1)=RAPPORTL(8) Set R=$$UPCASE^vhRtn1(RAPPORTL(8)),R=$TR(R,$$UPTRIMAN^vhRtn1(R),$J("",$L(R))) Set RAPPORTL(8,2)=R,RAPPORTL(8)="" For I=12:-1:0 Do .Set RAPPORTL(8,1)=RAPPORTL(8,1)_$J($$EXTDATE^vhLib.DataTypes($$CALCDATE^vhLib.DataTypes($H,"M","MD",-I),"MC"),3) .Set RAPPORTL(8,2)=RAPPORTL(8,2)_$J($$EXTDATE^vhLib.DataTypes($$CALCDATE^vhLib.DataTypes($H,"M","MD",-I),"J"),3) .Set:I RAPPORTL(8,1)=RAPPORTL(8,1)_"|" .Set:I RAPPORTL(8,2)=RAPPORTL(8,2)_"|" Set RAPPORTL(11)=RAPPORTL(11)_"\aantal "_$S($L(Geldig):$P("on",D,Geldig+1)_"geldige ",1:"")_"bezoeken" Do PRINT^OUTPUT(.RAPPORTL,"PMST","") Kill:$L(Sort) ^HULP(%JJ) Quit ; SELECT() New Select S1 Set Select=$$SELECT^SELALG("KL",.Check,"Overzicht rapporten","",1,1,1) Quit Select ; GELDIG() Quit $$ASKL^vhINP("RAPPORT","GELDIG") ; CB(Ref) New R,KLNr If $L(Ref)>1 Set FL(3,1)=$$BEZOEK(Ref,$G(Date)) Quit "" ; BEZOEK(Ref,Date) New I,R,KLNr,Time,RAPNr,IDate,Count,CDate Xecute "Set KLNr="_Ref Set:'$G(Date) Date=$$DATE() Set:'$D(Geldig) Geldig=1 Set IDate=Date For Set IDate=$O(^KVV3(KLNr,IDate)) Quit:IDate="" Do .Set Time="" .For Set Time=$O(^KVV3(KLNr,IDate,Time)) Quit:Time="" Do ..Set RAPNr="" ..For Set RAPNr=$O(^KVV3(KLNr,IDate,Time,RAPNr)) Quit:RAPNr="" Do ...If $L(Geldig) Set R=$G(^KVV(IDate,RAPNr,0)) Quit:+$P(R,D,10)'=Geldig ...Set CDate=$E(IDate,1,6),Count(CDate)=$G(Count(CDate))+1 Set CDate=$E(Date,1,6) For Set CDate=CDate+1 Quit:CDate>(DJ_DM) Do .Set:CDate#100>12 CDate=CDate+88 Set:'$D(Count(CDate)) Count(CDate)="" Set (R,CDate)="" For I=1:1 Set CDate=$O(Count(CDate)) Quit:CDate="" Set $P(R,D,I)=Count(CDate) Quit R ; SORT(FromRef,ToRef,Sort) New %JJJ,Next,KLNr,KlSort,OmzSort,Count Set %JJJ=$$%J^vhRtn1() Kill ^HULP(%JJJ) If FromRef'["(" Set FromRef=FromRef_"(" Else Set FromRef=FromRef_"," Set FromRef=FromRef_"Next)",Next="" For Set Next=$O(@FromRef) Quit:Next="" Do .Set KLNr=@FromRef,KlSort=^KK1(KLNr),R="^HULP(%JJJ" .Set:Sort="O" OmzSort=999999999-$G(^KKAAP(KLNr,0,0,0,0)),R=R_",OmzSort" .Set R=R_",KlSort)",@R=KLNr Set R=ToRef_")" Kill @R Set ToRef=ToRef_",Count)",Count=0 For Set Next=$O(^HULP(%JJJ,Next)) Quit:Next="" Do .If Sort'="O" Set KLNr=^HULP(%JJJ,Next),Count=Count+1,@ToRef=KLNr Quit .Set KlSort="" .For Set KlSort=$O(^HULP(%JJJ,Next,KlSort)) Quit:KlSort="" Do ..Set KLNr=^HULP(%JJJ,Next,KlSort),Count=Count+1,@ToRef=KLNr Kill ^HULP(%JJJ) Quit ; DATE() Quit $$TRIMN^vhRtn1($$EXTDATE^vhLib.DataTypes($$CALCDATE^vhLib.DataTypes($H,"M",-13,"LD"),"DS")) ;