cTN1313 ; Financieel : Inschrijven financiële uittreksels: registraties; cTN1313; ; T1 ;De kolom Analytische rekening moet ingevuld zijn.; T2 ;Grootboekrekening;Analytische rekening; T3 ;Document; ; T1F ;La valeur de la colonne Compte analytique doit être remplie. T2F ;Compte de grand-livre;Compte analytique: T3F ;Document; T1E ;The column Analytical Account has to be filled in.; T2E ;General Account;Analytical Account; T3E ;Document; ; YZ Q ; BTEMP(GRIDID,UI1FI,EXTRA) ; Opbouwen mtemp99 voor financiële registraties ; Input: GRIDID: Gridid van mtemp99 met registraties (indien "": nieuw gridid ophalen) ; UI1FI: UI1 van financieel dagboek ; EXTRA: "" of 0: Extra registraties worden NIET getoond ; 1: Extra registraties worden wel getoond (enkel voor test-doeleinden) ; Output: GRIDID ; of ; 0\Foutboodschap S $ZT="ERR^cAFVBF01" N @$$INITVAR^cAFVBA01("GRIDID,UI1FI,EXTRA") ; BTEMP1 F i="GRIDID","UI1FI" S @i=$G(@i) I '$L(GRIDID) S GRIDID=$$GRIDID^cAFVBF01() K ^mtemp99(GRIDID,"REG") S OK=GRIDID I '$L(UI1FI) G BTEMPZ ; BTEMP2 S REF=$$REF^cAFA10(.Q,"REG"),IREF=$P(REF,D,3),UREF=$P(REF,D) I '$L(REF) G BTEMPZ ; BTEMP3 S UI1FI=$P($$DI^cAN000(UI1FI,"")," ") S I1="" F S I1=$O(@IREF@("M1",$$Q^cAFA10(),"F",UI1FI,I1)) Q:'$L(I1) D . S UI1=$P(^(I1),D),REG=@UREF@(0) I '$P(REG,D,32),('$G(EXTRA)) Q . S BEDR=$P(REG,D,17) I 'BEDR S BEDR=-$P(REG,D,18) . S BEDRVN=$P(REG,D,15) I 'BEDRVN S BEDRVN=-$P(REG,D,16) . S ^mtemp99(GRIDID,"REG",UI1,0)=REG,$P(^(2),D)=+BEDR_D_+BEDRVN_D_$P(REG,D,22) . I $P(REG,D,7)'="G" S $P(^mtemp99(GRIDID,"REG",UI1,0),D,8)="" ; BTEMPZ Q OK ; ; CHKREG(AR,ARA,BEDR) ; Checks bij opslaan registratie 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 CHKREG1 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 CHKREGZ ; ; Check analytische rekening CHKREG2 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 CHKREGZ ; CHKREGZ Q OK ; DELREG(REGIDS) ; Verwijderen van geselecteerde registraties N UI1,REGID,GRIDID S $ZT="^dmERROR" ; DELREG1 F I=1:1:$L(REGIDS,D) D . S REGID=$P(REGIDS,D,I) I '$L(REGID) Q . S GRIDID=$P(REGID,"||") . S UI1=$P(REGID,"||",2) I '$L(UI1) Q . I '$D(^mtemp99(GRIDID,"REG",UI1,0)) Q . S $P(^mtemp99(GRIDID,"REG",UI1,0),D,30)=2 ; DELREGZ Q ; FWAR() ; Fixed where-statement voor grootboekrekening S $ZT="^dmERROR" N @$$INITVAR^cAFVBA01("") ; ; Mag geen tekst,financieel of wisselrekening zijn S BREK=$$SIGN^cAFA1("Q",$$Q^cAFA10(),3) S R="%ALPHAUP(T1.B113) NOT IN (1,6,7)" ; Er mag niet rechtstreeks geboekt worden op klanten of leveranciersrekening S BUI1S="" I $L($P(BREK,D)) S BUI1S=$P(BREK,D) I $L($P(BREK,D,2)) S BUI1S=$S($L(BUI1S):BUI1S_","_$P(BREK,D,2),1:$P(BREK,D,2)) I $L(BUI1S) S R=R_" AND T1.ID NOT IN ("_BUI1S_")" S R="("_R_")" ; FWARZ Q R ; FWARA() ; Fixed where-statement voor analytische rekening N R S $ZT="^dmERROR" ; ; Mag geen tekstrekening zijn S R="%ALPHAUP(T1.B113) <> %ALPHAUP(1)" ; FWARAZ Q R ; LOCK(UI1,LOCK) ; Lock ; Input: UI1: UI1 document (DB) ; LOCK: 1=Lock ; "" of 0=Unlock ; N @$$INIT^cTN009("UI1,LOCK") ; LOCK1 S R=0 I '$L(UI1) G LOCKZ ; LOCK2 I $G(LOCK) S R=$$PLUS^cANLOCK(UREFDB,0,$P($T(@("T3"_QT)),U,2),0,"",1) I '$G(LOCK) L -@UREFDB S R=1 ; LOCKZ Q R ; MULTIS(DOCIDS,LIJNID,MNT,MPAR) ; Opslaan van multiselectie van documenten ; Input: DOCIDS: UI1 van documenten (DB), gescheiden door "#" ; LIJNID: UI1 (GRID||LIJN) van de eerste lijn ; MNT: Document munt ; MPAR: Pariteit (1 EUR=) N @$$INIT^cTN009("DOCIDS,LIJNID,MNT,MPAR") S $ZT="^dmERROR" ; MULTIS1 F i="DOCIDS","LIJNID","MNT","MPAR" S @i=$G(@i) ; ; Check parameters MULTIS2 S GRIDID=$P(LIJNID,"||"),REGUI1=$P(LIJNID,"||",2),ADDUI1S="" I '$L(GRIDID)!'$L(REGUI1)!'$L(DOCIDS) G MULTISZ I '$L(UREFDB) G MULTISZ G MULTIS31 ; ; Aanmaken extra lijnen MULTIS3 S REGUI1=$$REGUI1^cTN1113(GRIDID) I '$L(REGUI1) G MULTISZ MULTIS31 S UI1=$P(DOCIDS,"#"),DOCIDS=$P(DOCIDS,"#",2,$L(DOCIDS,"#")) I '$L(UI1) G MULTISZ S N=@UREFDB@(0) S SRT="K" I ($P(UI1," ")="A")!($P(UI1," ")="LV") S SRT="L" S $P(^mtemp99(GRIDID,"REG",REGUI1,0),D,7)=SRT ; Soort rekening ;S $P(^(0),D,8)=..B108GetObjectId() ; Grootboekrekening ;S $P(^(0),D,9)=..B109GetObjectId() ; Analytische rekening S $P(^(0),D,13)=$P(N,D,9) ; Klant S $P(^(0),D,14)=$P(N,D,10) ; Leverancier S $P(^(0),D,22)=UI1 ; Afgeboekt document S $P(^(0),D,34)=$P(N,D,3) ; Referte S $P(^(2),D)=$P(N,D,21)-$P(N,D,20) ; Bedrag munt document S $P(^(2),D,3)=UI1 ; Afgeboekt document S $P(^(2),D,4)=$P(N,D,20) ; Bedrag KK munt document D SREG(GRIDID_"||"_REGUI1,MNT,MPAR,1) I REGUI1'=$P(LIJNID,"||",2) S ADDUI1S=ADDUI1S_$S($L(ADDUI1S):",",1:"")_"'"_GRIDID_"||"_REGUI1_"'" ; MULTIS39 G MULTIS3 ; MULTISZ Q ADDUI1S ; SREG(REGID,MNT,MPAR,SW) ; Opslaan van registratielijn ; Input: REGID: Lijn id (= GRIDID || UI1) ; MNT: Document munt ; MPAR: Pariteit (1 EUR=) ; SW: 0 of "": opgeroepen via lijnregistratie in dotNET ; 1: opgeroepen via Caché N OK,i,GRIDID S $ZT="^dmERROR" ; SREG1 D QT^cAFVBO01 S D="\",U=";",OK=1,SW=$G(SW) I '$L($G(REGID)) G SREGZ S GRIDID=$P(REGID,"||"),REGID=$P(REGID,"||",2) ; ; Via object SREG2 I SW G SREG3 S $P(^mtemp99(GRIDID,"REG",REGID,0),D,7)=..B107GetObjectId() ; Soort rekening S $P(^(0),D,8)=..B108GetObjectId() ; Grootboekrekening S $P(^(0),D,9)=..B109GetObjectId() ; Analytische rekening S $P(^(0),D,13)=..B113GetObjectId() ; Klant S $P(^(0),D,14)=..B114GetObjectId() ; Leverancier S $P(^(0),D,22)=..B122GetObjectId() ; Afgeboekt document S $P(^(0),D,19)=..B119 ; Omschrijving S $P(^(0),D,34)=..B134 ; Referte S $P(^(2),D)=..B301 ; Bedrag munt document S $P(^(2),D,3)=..B122GetObjectId() ; Afgeboekt document S $P(^(2),D,4)=..B304 ; Bedrag KK munt document ; ; Vaste gegevens SREG3 S $P(^mtemp99(GRIDID,"REG",REGID,0),D,32)="1" ; Registratie moet getoond worden S $P(^(0),D,49)=$$Q^cAFA10() ; Firma S $P(^(0),D,21)=$P($P(^(0),D,22)," ") ; Type afgeboekt document ; ; Bedragen SREG4 S BEDR=$P(^(2),D) S $P(^(2),D,2)=$$OMREK^cTN1112(BEDR,$G(MNT),$G(MPAR)) ; Bedrag munt BH S $P(^(0),D,17)=$S(BEDR'<0:BEDR,1:0) ; Debet munt document S $P(^(0),D,18)=$S(BEDR<0:-BEDR,1:0) ; Credit munt document ; SREGZ Q OK ; 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 ; ZDOC(TYPE,BEDR,KC) ; Zoek document ; Input: TYPE: K: Klant ; L: Leverancier ; BEDR: Bedrag ; KC: UI1 Klant/Leverancier (KL.A of LE.A) ; Output: 0: Geen overeenkomstige documenten gevonden ; 1\UI1 DB: Eén overeenkomstig document gevonden ; 2\UI1...#UI12#...: Som van meerdere documenten = doorgegeven bedrag ; 3: Meerdere documenten gevonden (via grid) S $ZT="^dmERROR" N @$$INIT^cTN009("TYPE,BEDR,KC") ; ZDOC1 F i="TYPE","BEDR","KC" S @i=$G(@i) I '$L(TYPE)!'BEDR G ZDOCY I '$L(IREFDB)!'$L(UREFDB) G ZDOCY ; ZDOC3 S IREF=$E(IREFDB,1,$L(IREFDB)-1)_",""M"_(2+(TYPE="L"))_""","""_$$Q^cAFA10_""",KC)" S HULP="^HULP(boot,$J+.01)" K @HULP S (R,KC1)=0,ODOC="" I $L(KC) S KC1=1,FNR="" G ZDOC41 ; ; Openstaand document zoeken met doorgegeven openstaand bedrag ZDOC4 S KC=$O(@IREF) I '$L(KC) G ZDOC5 S FNR="" ZDOC41 S FNR=$O(@IREF@("1",FNR)) I '$L(FNR) G:KC1 ZDOC5 G ZDOC4 S DOC="" ZDOC42 S DOC=$O(@IREF@("1",FNR,DOC)) I '$L(DOC) G ZDOC41 S UI1=$P(^(DOC),D) S N=@UREFDB@(0) S OBEDR=$P(N,D,21)-$P(N,D,20) I OBEDR'=+BEDR G ZDOC47 I $L(ODOC) S ODOC="",R=3 G ZDOCY S ODOC=UI1,R=1 ZDOC47 I 'KC1!$L(ODOC) G ZDOC49 S VDAT=$P(N,D,8) S VDAT=$$DC^cAFD1(VDAT) S @HULP@(VDAT_" ",UI1)=OBEDR ZDOC49 G ZDOC42 ; ; Documenten zoeken die samen = doorgegeven bedrag ; (enkel indien klant/leverancier is doorgegeven ZDOC5 I $L(ODOC) G ZDOCY I 'KC1 G ZDOCY I '$D(@HULP) G ZDOCY S (VDAT,SOM)="" ZDOC51 S VDAT=$O(@HULP@(VDAT)) I '$L(VDAT) G ZDOCY S UI1="" ZDOC52 S UI1=$O(@HULP@(VDAT,UI1)) I '$L(UI1) G ZDOC51 S OBEDR=$P(^(UI1),D) S SOM=SOM+OBEDR I BEDR<0 I SOM>0 S ODOC="" G ZDOCY I BEDR'<0 I SOM<0 S ODOC="" G ZDOCY S ODOC=ODOC_$S($L(ODOC):"#",1:"")_UI1 I +SOM=+BEDR S R=2 G ZDOCY ZDOC59 G ZDOC52 ; ; Opkuis + output ZDOCY I $G(HULP) K @HULP S R=+$G(R) I $L($G(ODOC)) S R=R_D_ODOC ; ZDOCZ Q R ; ZZ ; 29.08.07 - 10 u 22 * V8.09