BHTREEVIEW ; New %J,%SC,I,sFL,AT,BF,QD,BJ,BPA,BPB,J1,J3,J4,KM1,KM2,VM,BA39,Storage Set %J=$$%J^vhRtn1(),Storage="^HULP("_%J_")" Kill @Storage D ^cT489 ; Bepalen van de default instellingen Set $P(sFL(1),D)=$$INTDATE^vhDTyp(KM1(BJ),"DM4") Set $P(sFL(1),D,2)=$$INTDATE^vhDTyp(BPA,"DM4") Set $P(sFL(1),D,3)=$$CALCDATE^vhDTyp($P(sFL(1),D),"M",-12) Set $P(sFL(1),D,4)=$$CALCDATE^vhDTyp($P(sFL(1),D,2),"M",-12) Set $P(sFL(1),D,5)=$$CALCDATE^vhDTyp($P(sFL(1),D),"M",-24) Set $P(sFL(1),D,6)=$$CALCDATE^vhDTyp($P(sFL(1),D,2),"M",-24) Set $P(sFL(1),D,11)=1 Set $P(sFL(1),D,12)=0 Do EDIT^vhScherm("BHTREEVIEW") Do:%SC . Set Storage=$$VERWERK($$EXTDATE^vhDTyp($P(sFL(1),D),"DM4"),$$EXTDATE^vhDTyp($P(sFL(1),D,2),"DM4"),$$EXTDATE^vhDTyp($P(sFL(1),D,3),"DM4"),$$EXTDATE^vhDTyp($P(sFL(1),D,4),"DM4"),$$EXTDATE^vhDTyp($P(sFL(1),D,5),"DM4"),$$EXTDATE^vhDTyp($P(sFL(1),D,6),"DM4"),$P(sFL(1),D,11),$P(sFL(1),D,12),Storage) . Write !,Storage . Read r . Kill @Storage Quit ; VERWERK(VanMaand1,TotMaand1,VanMaand2,TotMaand2,VanMaand3,TotMaand3,EnkelMetOmzet,MetDetail,Storage) New %J,I,Rekening,Groep1,Groep2,Groep3,Groep4,Groep5,Omschrijving,Debet1,Debet2,Debet3,Credit1,Credit2,Credit3 Set Storage=$G(Storage) If Storage="" Set %J=$$%J^vhRtn1(),Storage="^HULP("_%J_")" Kill @Storage ; Verzamelen van de gegevens Set Rekening=0 For Set Rekening=$O(^KAR(Rekening)) Quit:Rekening="" Do . Set R=^KAR(Rekening,0),Omschrijving=$P(R,D,2) . Set Debet1=$$DEBET(Rekening,VanMaand1,TotMaand1) . Set Credit1=$$CREDIT(Rekening,VanMaand1,TotMaand1) . Set Debet2=$$DEBET(Rekening,VanMaand2,TotMaand2) . Set Credit2=$$CREDIT(Rekening,VanMaand2,TotMaand2) . Set Debet3=$$DEBET(Rekening,VanMaand3,TotMaand3) . Set Credit3=$$CREDIT(Rekening,VanMaand3,TotMaand3) . If EnkelMetOmzet,'Debet1,'Credit1,'Debet2,'Credit2,'Debet3,'Credit3 Quit ; Enkel rekeningen met bedragen en er zijn geen bedragen voor de geselecteerde periodes . Set R=Rekening_D_Omschrijving_D_Debet1_D_Credit1_D_Debet2_D_Credit2_D_Debet3_D_Credit3 . ;Set R=Rekening_D_Omschrijving_D_$LB(Debet1,Credit1)_D_$LB(Debet2,Credit2)_D_$LB(Debet3,Credit3) . If $L($TR(Rekening," ",""))=2 Do . . Set Groep1=Rekening,R=1_D_R . . Set @Storage@("BKH",Groep1)=R ;$$PiecesToList^vhLib(R,D) . If $L($TR(Rekening," ",""))=3 Do . . Set Groep1=$E(Rekening,1,2)_" ",Groep2=Rekening,R=2_D_R . . If $D(^KAR(Groep1)) Set @Storage@("BKH",Groep1,Groep2)=R ;$$PiecesToList^vhLib(R,D) . . Else Set @Storage@("BKH",Groep2)=R ;$$PiecesToList^vhLib(R,D) . If $L($TR(Rekening," ",""))=6 Do . . Set Groep1=$E(Rekening,1,2)_" ",Groep2=$E(Rekening,1,3)_" ",Groep3=Rekening,R=3_D_R . . If $D(^KAR(Groep1)),$D(^KAR(Groep2)) Do . . . Set @Storage@("BKH",Groep1,Groep2,Groep3)=R ;$$PiecesToList^vhLib(R,D) . . . Quit:'MetDetail . . . Do DETAIL(Rekening,VanMaand1,TotMaand1,"@Storage@(""BKH"",Groep1,Groep2,Groep3,""M1"")") . . . Do DETAIL(Rekening,VanMaand2,TotMaand2,"@Storage@(""BKH"",Groep1,Groep2,Groep3,""M2"")") . . . Do DETAIL(Rekening,VanMaand3,TotMaand3,"@Storage@(""BKH"",Groep1,Groep2,Groep3,""M3"")") . . Else If $D(^KAR(Groep1)) Do . . . Set @Storage@("BKH",Groep1,Groep3)=R ;$$PiecesToList^vhLib(R,D) . . . Quit:'MetDetail . . . Do DETAIL(Rekening,VanMaand1,TotMaand1,"@Storage@(""BKH"",Groep1,Groep3,""M1"")") . . . Do DETAIL(Rekening,VanMaand2,TotMaand2,"@Storage@(""BKH"",Groep1,Groep3,""M2"")") . . . Do DETAIL(Rekening,VanMaand3,TotMaand3,"@Storage@(""BKH"",Groep1,Groep3,""M3"")") . . Else Do . . . Set @Storage@("BKH",Groep3)=R ;$$PiecesToList^vhLib(R,D) . . . Quit:'MetDetail . . . Do DETAIL(Rekening,VanMaand1,TotMaand1,"@Storage@(""BKH"",Groep3,""M1"")") . . . Do DETAIL(Rekening,VanMaand2,TotMaand2,"@Storage@(""BKH"",Groep3,""M2"")") . . . Do DETAIL(Rekening,VanMaand3,TotMaand3,"@Storage@(""BKH"",Groep3,""M3"")") Quit Storage ; ; Ophalen van het debet voor een bepaalde periode DEBET(Rekening,VanMaand,TotMaand) New R,Debet,BoekJaar,Maand,Piece Set VanMaand=$$INTDATE^vhDTyp(VanMaand,"DM4"),TotMaand=$$INTDATE^vhDTyp(TotMaand,"DM4") Set Debet=0 For I=0:1 Set Maand=$$CALCDATE^vhDTyp(VanMaand,"M",I) Quit:Maand>TotMaand Do . Set Piece=$P($$EXTDATE^vhDTyp(Maand,"DM4"),".",2) . Set Piece=$S(Piece>6:Piece-5,1:Piece+7) . Set BoekJaar=$$BJ^cAFE1("K",$$EXTDATE^vhDTyp(Maand,"DM4")),R=$G(^KAR(Rekening,BoekJaar)),Debet=Debet+$P(R,D,Piece) Quit Debet ; ; Ophalen van het credit voor een bepaalde periode CREDIT(Rekening,VanMaand,TotMaand) New R,Credit,BoekJaar,Maand,Piece Set VanMaand=$$INTDATE^vhDTyp(VanMaand,"DM4"),TotMaand=$$INTDATE^vhDTyp(TotMaand,"DM4") Set Credit=0 For I=0:1 Set Maand=$$CALCDATE^vhDTyp(VanMaand,"M",I) Quit:Maand>TotMaand Do . Set Piece=$P($$EXTDATE^vhDTyp(Maand,"DM4"),".",2) . Set Piece=$S(Piece>6:Piece-5,1:Piece+7) . Set BoekJaar=$$BJ^cAFE1("K",$$EXTDATE^vhDTyp(Maand,"DM4")),R=$G(^KAR(Rekening,BoekJaar+.02)),Credit=Credit+$P(R,D,Piece) Quit Credit ; ; DETAIL(Rekening,VanMaand,TotMaand,DStorage) New R,Maand,Periode,Historiek,Type,LType,Document,Datum,Debet,Credit,Munt,Ref,User,Count Set Rekening=$TR(Rekening," ","")_" " Set TotMaand=1_$TR(TotMaand,".",""),Count=0 Kill @DStorage ; Verwerking detailhistoriek Set Maand=1_$TR(VanMaand,".","")_".01",Maand=$O(^KAR(Rekening,Maand),-1) For Set Maand=$O(^KAR(Rekening,Maand)) Quit:Maand="" Quit:$E(Maand,1,7)>TotMaand Quit:'(Maand#1) Do . Set Periode=$E(Maand,2,5)_"."_$E(Maand,6,7),Historiek=^KAR(Rekening,Maand) . For Set R=$P(Historiek,D) Quit:R="" Do . . Set Historiek=$P(Historiek,D,2,999),Type=$E(R),(Debet,Credit)=0 . . If Type="A" Set Document=$E(R,2,99) Do:$D(^KAA(Periode,Document)) ; Aankoop . . . Set R=^KAA(Periode,Document),LType=Type_$P(R,D),Datum=$P(R,D,2),Ref=$P(R,D,4)_" "_$P(R,D,5),Munt=$P(R,D,24),User=$P(R,D,33) . . . Set:$P(R,D)="F" Debet=$P($P(R,D,6),"#") Set:$P(R,D)="C" Credit=$P($P(R,D,6),"#") . . . Set R=Datum_D_LType_D_Document_D_Debet_D_Credit_D_Munt_D_Ref_D_User,Count=Count+1,@DStorage@(Count)=R . . If Type="V" Set Document=$E(R,2,99) Do:$D(^KVE(Periode,Document)) ; Verkoop . . . Set R=^KVE(Periode,Document),LType=Type_$P(R,D),Datum=$P(R,D,2),Ref="",Munt=$P(R,D,24),User=$P(R,D,29) . . . Set:$P(R,D)="F" Debet=$P($P(R,D,6),"#") Set:$P(R,D)="C" Credit=$P($P(R,D,6),"#") . . . Set R=Datum_D_LType_D_Document_D_Debet_D_Credit_D_Munt_D_Ref_D_User,Count=Count+1,@DStorage@(Count)=R . . If Type="B" Set Type=$P(R,"#"),$E(Type)="",Document=$P(R,"#",2) Do:$D(^KFI(Periode,Type,Document)) ; Financieel diverse . . . Set R=^KFI(Periode,Type,Document),Datum=$P(R,D,2),LType=$P(R,D,4),Document=$P(R,D,3),Ref=$P(R,D,9),Munt=$P(R,D,24),User=$P(R,D,29) . . . Set:$P(R,D,6)="D" Debet=$P(R,D,5) Set:$P(R,D,6)="C" Credit=$P(R,D,5) . . . Set R=Datum_D_LType_D_Document_D_Debet_D_Credit_D_Munt_D_Ref_D_User,Count=Count+1,@DStorage@(Count)=R ; Verwerking maandhistoriek Set Maand=1_$TR(VanMaand,".","")_" ",Maand=$O(^KAR(Rekening,Maand),-1) For Set Maand=$O(^KAR(Rekening,Maand)) Quit:Maand="" Quit:$E(Maand,1,7)>TotMaand Do . Set Periode=$E(Maand,2,5)_"."_$E(Maand,6,7),Historiek=^KAR(Rekening,Maand) . Set Type=$E(Maand,8) . Do:Type="A" ; Aankoop . . Set Document="" . . For Set Document=$O(^KAA(Periode,Document)) Quit:Document="" Do:'(Document#1) . . . Set (Debet,Credit)=0 . . . Set R=^KAA(Periode,Document),LType=Type_$P(R,D),Datum=$P(R,D,2),Ref=$P(R,D,4)_" "_$P(R,D,5),Munt=$P(R,D,24),User=$P(R,D,33) . . . Set:$P(R,D)="F" Debet=$P($P(R,D,6),"#") Set:$P(R,D)="C" Credit=$P($P(R,D,6),"#") . . . Set R=Datum_D_LType_D_Document_D_Debet_D_Credit_D_Munt_D_Ref_D_User,Count=Count+1,@DStorage@(Count)=R . Do:Type="V" ; Verkoop . . Set Document="" . . For Set Document=$O(^KVE(Periode,Document)) Quit:Document="" Do:'(Document#1) . . . Set (Debet,Credit)=0 . . . Set R=^KVE(Periode,Document),LType=Type_$P(R,D),Datum=$P(R,D,2),Ref="",Munt=$P(R,D,24),User=$P(R,D,29) . . . Set:$P(R,D)="F" Debet=$P($P(R,D,6),"#") Set:$P(R,D)="C" Credit=$P($P(R,D,6),"#") . . . Set R=Datum_D_LType_D_Document_D_Debet_D_Credit_D_Munt_D_Ref_D_User,Count=Count+1,@DStorage@(Count)=R . Do:Type="B" ; Financieel diverse . . Set Type=$E(Maand,9),Documentx="" . . For Set Documentx=$O(^KFI(Periode,Type,Documentx)) Quit:Documentx="" Do:'(Documentx#1) . . . Set (Debet,Credit)=0 . . . Set R=^KFI(Periode,Type,Documentx),Datum=$P(R,D,2),LType=$P(R,D,4),Document=$P(R,D,3),Ref=$P(R,D,9),Munt=$P(R,D,24),User=$P(R,D,29) . . . Set:$P(R,D,6)="D" Debet=$P(R,D,5) Set:$P(R,D,6)="C" Credit=$P(R,D,5) . . . Set R=Datum_D_LType_D_Document_D_Debet_D_Credit_D_Munt_D_Ref_D_User,Count=Count+1,@DStorage@(Count)=R Quit