cTN1321 ;Boekingsreeksen: dotNET-beheer; cTN1321 ; T1 ;De kolom Analytische rekening moet ingevuld zijn.; T2 ;Grootboekrekening;Analytische rekening; T3 ;Lijnnummer bestaat reeds;Lijnnummer moet groter zijn dan 0.; T4 ;Boekingsreeks; ; T1F ;La valeur de la colonne Compte analytique doit être remplie. T2F ;Compte de grand-livre;Compte analytique: T3F ;Lijnnummer bestaat reeds;Lijnnummer moet groter zijn dan 0.; T4F ;Boekingsreeks; T1E ;The column Analytical Account has to be filled in.; T2E ;General Account;Analytical Account; T3E ;Lijnnummer bestaat reeds;Lijnnummer moet groter zijn dan 0.; T4E ;Boekingsreeks; ; YZ Q ; VENT(BR,GRIDID) ; Te ventileren ; Input: BR: Boekingsreeks ; ; ; GRIDID: GridId van ventilaties van boekingsreeks ; ; Output: Te ventileren bedrag S $ZT="^dmERROR" N @$$INITVAR^cAFVBA01("BR,GRIDID") ; ; Controle parameters VENT1 F i="BR","GRIDID" S @i=$G(@i) ; ; Via record VENT2 S VENT=0 G:$L(GRIDID) VENT3 I '$L(BR) G VENTZ S GLOB="^DBH(""EA"",""BR.DET"",UI1)" ; Global vast in programma (voor snelheid bij berekend veld) VENT21 S UI1=BR_" " VENT23 S UI1=$O(@GLOB) I '$L(UI1)!($P(UI1," ")'=BR) G VENTZ S N=^(UI1,0) I $P(N,D,30) G VENT23 ; Verwijderd S VENT=VENT-$P(N,D,15)+$P(N,D,16) VENT29 G VENT23 ; ; Via mtemp99 VENT3 S GLOB="^mtemp99(GRIDID,""BR.DET"",UI1)" VENT31 S UI1="" VENT33 S UI1=$O(@GLOB) I '$L(UI1) G VENTZ S N=^(UI1,0),N1=$G(^(1)) I $P(N,D,30) G VENT33 ; Verwijderd S VENT=VENT-$P(N1,D) VENT39 G VENT33 ; VENTZ Q VENT ; BTEMP(GRIDID,UI1BR,PAR) ; Opbouwen mtemp99 voor boekingsreeksen ; Input: GRIDID: Gridid van mtemp99 met detaillijnen (indien "": nieuw gridid ophalen) ; UI1BR: UI1 van aankoopdagboek ; PAR: Parameters, gescheiden door "\" ; 1. Switch copy ; "": neen ; 1: ja ; Output: GRIDID ; of ; 0\Foutboodschap S $ZT="ERR^cAFVBF01" N @$$INITVAR^cAFVBA01("GRIDID,UI1BR,PAR") ; BTEMP1 F i="GRIDID","UI1BR","PAR" S @i=$G(@i) I '$L(GRIDID) S GRIDID=$$GRIDID^cAFVBF01() K ^mtemp99(GRIDID,"BR.DET") S OK=GRIDID I '$L(UI1BR) G BTEMPZ ; BTEMP2 S REF=$$REF^cAFA10(.Q,"BR.DET"),IREF=$P(REF,D,3),UREF=$P(REF,D) I '$L(REF) G BTEMPZ ; BTEMP3 S UI1BR=$P($$DI^cAN000(UI1BR,"")," ") S I1="" F S I1=$O(@IREF@(101,UI1BR,I1)) Q:'$L(I1) D . S UI1=$P(^(I1),D),BR=@UREF@(0) I $P(BR,D,30) Q . S BEDRVN=$P(BR,D,15) I 'BEDRVN S BEDRVN=-$P(BR,D,16) . I $P(PAR,D) S $P(BR,D,1,2)=D,UI1=" "_$P(UI1," ",2) ; Copy . S ^mtemp99(GRIDID,"BR.DET",UI1,0)=BR,$P(^(1),D,1,2)=+BEDRVN_D_$S($P(PAR,D):"",1:UI1) ; BTEMPZ Q OK ; ; mtemp99detaillijn opslaan SBR(BRDETID,BRID) ; Input: BRDETID: Lijn id (= GRIDID || UI1) ; BRID: UI1 van boekingsreeks N OK,i,GRIDID S $ZT="^dmERROR" ; SBR1 D QT^cAFVBO01 S D="\",U=";",OK=1 I '$L($G(BRDETID)) G SBRZ S GRIDID=$P(BRDETID,"||"),BRDETID=$P(BRDETID,"||",2) ; ; Lijnnumer SBR2 S LN=..B103,SWLN=0 I $L(LN,".")>1 S LN=$P(LN,".")+1,SWLN=1 ; SBR3 S N0=$G(^mtemp99(GRIDID,"BR.DET",BRDETID,0)),N1=$G(^(1)) S $P(N0,D,8)=..B108GetObjectId() ; Grootboekrekening S $P(N0,D)=BRID ; UI1 nogmaals herhalen S $P(N0,D,2)=BRDETID S $P(N0,D,3)=LN S $P(N0,D,9)=..B109GetObjectId() ; Analytische rekening S $P(N0,D,19)=..B119 ; Omschrijving S $P(N0,D,34)=..B134 ; Referte S $P(N1,D,1)=..B201 ; Bedrag S $P(N0,D,49)=$$Q^cAFA10() ; Firma S ^mtemp99(GRIDID,"BR.DET",BRDETID,0)=N0,^(1)=N1 ; ; Hernummeren? SBR4 I 'SWLN G SBRZ SBR41 D VOLG(GRIDID,.VOLG,1_D_BRDETID) ;S VNR=LN-.0001,NNR=LN SBR43 S VNR=LN-1 SBR45 S VNR=VNR+1 I '$D(VOLG(VNR)) G SBRZ S $P(^mtemp99(GRIDID,"BR.DET",VOLG(VNR),0),D,3)=VNR+1 SBR49 G SBR45 ; SBRZ Q OK ; VOLG(BR,TAB,PAR) ; Detaillijnen boekingsreeks in juiste volgorde zetten ; Input: BR: Boekingsreeks ; TAB: Tabel, doorgeven als referentie ; ; ; PAR: Parameters, gescheiden door "\" ; 1. Switch parameter "BR" ; "",0: UI1 boekingsreeks ; 1: GRIDID van mtemp99 ; 2. Indien ingevuld: deze UI1 overslaan ; ; Output: TAB: Tabel met als index "Volgnummer" en als inhoud "UI1" ; S $ZT="^dmERROR" N @$$INITVAR^cAFVBA01("BR,TAB,PAR") ; ; Controle parameters VOLG1 F i="BR","PAR" S @i=$G(@i) S SKIPUI1=$P(PAR,D,2) ; ; Via record VOLG2 K TAB G:'$L(BR) VOLGZ I $P(PAR,D) G VOLG3 S UREF=$P($$REF^cAFA10(Q,"BR.DET"),D) I '$L(UREF) G VOLGZ VOLG21 S UI1=BR_" " VOLG23 S UI1=$O(@UREF) I $P(UI1," ")'=BR G VOLGZ S N=^(UI1,0) I $P(N,D,30) G VOLG23 ; Verwijderd I UI1=SKIPUI1 G VOLG23 ; Overslaan S LN=$P(N,D,3) VOLG25 I $D(TAB(LN)) S LN=LN+.001 G VOLG25 S TAB(LN)=UI1 VOLG29 G VOLG23 ; ; Via mtemp99 VOLG3 S UREF="^mtemp99(BR,""BR.DET"",UI1)" VOLG31 S UI1="" VOLG33 S UI1=$O(@UREF) I '$L(UI1) G VOLGZ S N=^(UI1,0) I $P(N,D,30) G VOLG33 ; Verwijderd I UI1=SKIPUI1 G VOLG33 ; Overslaan S LN=$P(N,D,3) VOLG35 I $D(TAB(LN)) S LN=LN+.001 G VOLG35 S TAB(LN)=UI1 VOLG39 G VOLG33 ; VOLGZ Q ; DELDET(DETIDS) ; Verwijderen van geselecteerde detaillijnen N UI1,DETID,GRIDID S $ZT="^dmERROR" ; DELDET1 F I=1:1:$L(DETIDS,D) D . S DETID=$P(DETIDS,D,I) I '$L(DETID) Q . S GRIDID=$P(DETID,"||") . S UI1=$P(DETID,"||",2) I '$L(UI1) Q . I '$D(^mtemp99(GRIDID,"BR.DET",UI1,0)) Q . S $P(^mtemp99(GRIDID,"BR.DET",UI1,0),D,30)=2 ; DELDETZ Q ; VKOL() ; Bepaalt of er kolommen moeten worden verwijderd uit de grid ; Output: parameter van de kolommen die moeten verwijderd worden, ; gescheiden door "\" N R S $ZT="^dmERROR" ; S R="" ;"4\5" ; VKOLZ Q R ; CHKBR(AR,ARA,BEDR) ; Checks bij opslaan detaillijnen in mtemp99 ; Input: AR: Grootboekrekening ; ARA: Analytische rekening ; BEDR: Bedrag in munt document ; Output: 1: Alles OK ; 0\Foutbooschap\Parameter waar fout op slaat ; S $ZT="^dmERROR" N @$$INITVAR^cAFVBA01("AR,ARA,BEDR") ; ; Check grootboekrekening CHKBR1 F i="AR","ARA","BEDR" S @i=$G(@i) S OK=$$CTRLREK^cTN003("",AR,"AR.A",$P($T(@("T2"_QT)),U,2)) I 'OK S OK=OK_D_2 G CHKBRZ ; ; Check analytische rekening CHKBR2 S ACT=$$SIG^cAFA1("AR.A",AR,106) I ACT=2,'$L(ARA) S OK=0_D_$P($T(@("T1"_QT)),U,2)_D_4 I $L(ARA) S OK=$$CTRLREK^cTN003("",ARA,"ARA.A",$P($T(@("T2"_QT)),U,3)) I 'OK S OK=OK_D_4 G CHKBRZ ; CHKBRZ Q OK ; CHKLN(DUI1,LN) ; Check lijnnummer ; Input: DUI1: UI1 detaillijn ; LN: Lijnnummer ; Output: 1: Alles OK ; 0\Foutbooschap ; S $ZT="^dmERROR" N @$$INITVAR^cAFVBA01("DUI1,LN") ; ; Check parameters CHKLN1 F i="DUI1","LN" S @i=$G(@i) ; ; Lijnnummer > 0 CHKLN2 I LN'>0 S OK=0_D_$P($T(@("T3"_QT)),U,3) G CHKLNZ ; ; Check of lijn(nummer) reeds bestaat CHKLN3 D VOLG($P(DUI1,"||"),.VOLG,1_D_$P(DUI1,"||",2)) S OK=1 I $D(VOLG(LN)) S OK=0_D_$P($T(@("T3"_QT)),U,2) ; CHKLNZ Q OK ; DEFBR(GRIDID,VUI1) ; Defaults nieuwe detaillijn ; Input: GRIDID: GridId ; VUI1: UI1 van de volgende lijn (bij insert) ; Output: gescheiden door "\" ; 1: UI1 van volgende detaillijn ; 2: Lijnnummer volgende detaillijn ; 3: Bedrag N @$$INITVAR^cAFVBA01("GRIDID,VUI1") S $ZT="^dmERROR" ; ; Check parameters DEFBR1 S UI1=$$BRUI1($G(GRIDID)) ; ; Volgend lijnnummer DEFBR2 I $L($G(VUI1)) G DEFBR3 S VNR=$$VLNR($G(GRIDID)) G DEFBR4 ; ; Tussengevoegd lijnnummer DEFBR3 S VNR=$P($G(^mtemp99(GRIDID,"BR.DET",$P(VUI1,"||",2),0)),D,3) I '$L(VNR) S VUI1="" G DEFBR2 S VNR=VNR-.5 ; ; Bedrag DEFBR4 S BEDR=$$VENT("",$G(GRIDID)) ; DEFBRZ Q UI1_D_VNR_D_$G(BEDR) ; VLNR(GRIDID) N DUI1,VNR,N S $ZT="TRAP^cAN000" ; ; Variabelen opzetten VLNR1 S DUI1="",VNR=0,D="\" I '$L($G(GRIDID)) G VLNR4 ; ; Hoogste lijnnummer bepalen VLNR2 S DUI1=$O(^mtemp99(GRIDID,"BR.DET",DUI1)) I '$L(DUI1) G VLNR4 S N=$G(^(DUI1,0)) I $P(N,D,30) G VLNR2 I $P(N,D,3)>VNR S VNR=$P(N,D,3) VLNR3 G VLNR2 ; ; Volgend lijnnummer bepalen VLNR4 S VNR=VNR+1 ; VLNRZ Q VNR ; BRUI1(GRIDID,BRID) ; Bepaalt volgend detaillijn ID (in mtemp99 of DBH) ; Input: GRIDID: GridId van de detaillijnen ; BRID: ID van de boekingsreeks ; Output: UI1 van volgende detaillijnen N UI1,REF,LUI1 S $ZT="^dmERROR" ; ; MTEMP99 BRUI1A S UI1="" I '$L($G(GRIDID)) G BRUI1G ; ; UI1 bepalen BRUI1B S LUI1=$O(^mtemp99(GRIDID,"BR.DET",""),-1) S UI1=$P(LUI1," ",2) S UI1=$P(LUI1," ")_" "_$S($G(UI1):UI1+1,1:1000) G BRUI1Z ; ; DBH BRUI1G S UI1="" I '$L($G(BRID)) G BRUI1Z S REF=$$REF^cAFA10(.Q,"BR.DET") I '$L(REF) G BRUI1Z S REF=$$REPL^cAFA10($P(REF,D),"UI1",""""_BRID_" z""") ; Vorige UI1 ophalen S UI1=$O(@(REF),-1) ; Nakijken of de gevonden UI1 wel van het zelfde BRID is I $P(UI1," ")'=BRID S UI1="" G BRUI1H ; UI1 gelijk zetten aan de 2piece S UI1=$P(UI1," ",2) BRUI1H ; UI1 ophogen of defaulten S UI1=$S($G(UI1):UI1+1,1:1000) ; BRUI1Z Q UI1 ; SAVE(GRIDID) ; Boekingsreeksen verwerken in de boekhouding ; Output: 0\Foutboodschap\ ; 1\ N I3,NODE0,NODE1,TAB,OK,UI1 S $ZT="^dmERROR" ; ; B101 invullen indien nog niet ingevuld I ..B101="" S ..B101=$$NR(..Q) ; ; Gewone save uitvoeren S OK=$$SAVE^cAFVBA03("") I 'OK X "STOP" ; ; Mtemp99 nakijken K NODE0,NODE1,TAB S I3="" F S I3=$O(^mtemp99(GRIDID,"BR.DET",I3)) Q:I3="" D . ; Nodes ophalen uit mtemp . S NODE0=^(I3,0),NODE1=$G(^(1)) K TAB . ; Nakijken wat er moet gebeuren, nieuw, verwijderen, wijzigen . I $P(NODE1,D,2)="" D Q .. I +$P(NODE0,D,30)'=0 Q .. ; Nieuw record ----------------------------------------------------- .. ; UI1 samenstellen .. S UI1=..BrId_" "_$$BRUI1("",..BrId) .. S $P(TAB(1),D)=$P(NODE0,D),$P(TAB(1),D,8)=$P(NODE0,D,8),$P(TAB(1),D,9)=$P(NODE0,D,9),$P(TAB(1),D,19)=$P(NODE0,D,19),$P(TAB(1),D,34)=$P(NODE0,D,34) .. S $P(TAB(1),D,3)=$P(NODE0,D,3),$P(TAB(1),D,2)=$P(UI1," ",2),$P(TAB(1),D)=$P(UI1," ") .. ; Credit bedrag .. I $P(NODE1,D)<0 S $P(TAB(1),D,16)=$P(NODE1,D)*-1 .. ; Debet bedrag .. I $P(NODE1,D)>0 S $P(TAB(1),D,15)=$P(NODE1,D) .. D P^cAN220("BR.DET","",UI1,"TAB","") I $L(K) X "STOP" . I +$P(NODE0,D,30)=0 D Q .. ; Wijzigen --------------------------------------------------------- .. S UI1=$P(NODE1,D,2) .. S TAB(101)=$P(NODE0,D),TAB(108)=$P(NODE0,D,8),TAB(109)=$P(NODE0,D,9),TAB(119)=$P(NODE0,D,19),TAB(134)=$P(NODE0,D,34) .. S TAB(103)=$P(NODE0,D,3) .. ; Credit bedrag .. S (TAB(115),TAB(116))="" .. I $P(NODE1,D)<0 S TAB(116)=$P(NODE1,D)*-1 .. ; Debet bedrag .. I $P(NODE1,D)>0 S TAB(115)=$P(NODE1,D) .. D B^cAN220("BR.DET","",UI1,"TAB") I $L(K) X "STOP" . ; Verwijderen ------------------------------------------------------- . S UI1=$P(NODE1,D,2) . D V^cAN220("BR.DET","",UI1) I $L(K) X "STOP" ; ; SAVEY ; SAVEZ Q OK ; NR(Q) ; Nieuw nummer voor boekingsreeks ; Input: Q: Vennootschap ; Output: NR: Nieuw boekingsreeksnummer N oQ,DIN,NR,I1,I2,GLOB S $ZT="^dmERROR" ; ; Q(49) bepalen NR1 D Q1^cAFA10("BR") ; ; Variabelen opzetten NR2 S D="\",NR="",DIN=$P($$REF^cAFA10(.Q,"BR"),D,5) I '$L(DIN) G NRY S I1=$TR($P($P(DIN,","),"(",2),"""","") ; Subscript 1 S I2=$TR($P($P(DIN,",",2),")"),"""","") ; Subscript 2 S GLOB=$P(DIN,"(") ; Bestand ; ; Nieuw nummer ophalen (per Q(49)) NR3 S NR=$$NR^cAFA10(I1,I2,$G(Q(49)),"",1,GLOB) ; NRY D Q2^cAFA10 ; NRZ Q NR ; HDBR(SW,NAAM,NR) ; Hoofding voor de boekingsreeks N HD,TIT S $ZT="^dmERROR" D QT^cAFVBO01 S D="\",U=";" ; HDBR1 F i="SW","NAAM","NR" S @i=$G(@i) ; HDBR2 I 'SW S NAAM=..B102,NR=..B101 S TIT=$P($T(@("T4"_QT)),U,2) S HD="\\"_TIT_"\"_" ;"_NAAM_" "_NR ; HDBRZ Q HD ; ; ZZ ; 29.08.07 - 10 u 22 * V8.09