cTN1113 ; Aankoop : Inschrijven aankoopdocumenten: registraties; cTN1113; ; Compiled December 8, 2011 12:06:24 ; T1 ;De kolom Analytische rekening moet ingevuld zijn.; T2 ;Grootboekrekening;Analytische rekening; ; T1F ;La valeur de la colonne Compte analytique doit être remplie. T2F ;Compte de grand-livre;Compte analytique: T1E ;The column Analytical Account has to be filled in.; T2E ;General Account;Analytical Account; ; YZ Q ; BTEMP(GRIDID,UI1AA,EXTRA,PAR) ; Opbouwen mtemp99 voor aankoop-registraties ; Input: GRIDID: Gridid van mtemp99 met registraties (indien "": nieuw gridid ophalen) ; UI1AA: UI1 van aankoopdagboek ; EXTRA: "" of 0: Extra registraties worden NIET getoond ; 1: Extra registraties worden wel getoond (enkel voor test-doeleinden) ; PAR: Parameters, gescheiden door "\" ; 1. Switch copy ; "": neen ; 1: ja ; Output: GRIDID ; of ; 0\Foutboodschap S $ZT="ERR^cAFVBF01" N @$$INITVAR^cAFVBA01("GRIDID,UI1AA,EXTRA,PAR") ; BTEMP1 F i="GRIDID","UI1AA","PAR" S @i=$G(@i) I '$L(GRIDID) S GRIDID=$$GRIDID^cAFVBF01() K ^mtemp99(GRIDID,"REG") S OK=GRIDID I '$L(UI1AA) 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 UI1AA=$P($$DI^cAN000(UI1AA,"")," ") S I1="" F S I1=$O(@IREF@("M1",$$Q^cAFA10(),"A",UI1AA,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) . I $P(PAR,D) D .. S UI1=$$REGUI1(GRIDID) .. S TREG=REG,REG="" .. F i=7,8,9,17,18,32,49 S $P(REG,D,i)=$P(TREG,D,i) . S ^mtemp99(GRIDID,"REG",UI1,0)=REG,$P(^(2),D)=+BEDR_D_+BEDRVN ; BTEMPZ Q OK ; CHKARA(AR) ; Checkt analytische rekening voor doorgegeven grootboekrekening ; Input: AR: Grootboekrekening ; Output: gescheiden door "\" ; 1. 0= Analytische rekening niet vragen ; 1= Analytische rekening vragen ; 2. Vaste analytische rekening (of "") S $ZT="^dmERROR" N @$$INITVAR^cAFVBA01("AR") ; ; GM - 16.08.07 - Via centrale functie S R=$$ARA^cTN001(Q,$G(AR)) ; ; Check parameters CHKARA1 ;S R=0 I '$L($G(AR)) G CHKARAZ ; ; Default actie voor analytische rekening ophalen CHKARA2 ;S ACT=$$SIG^cAFA1("AR.A",AR,106) I 'ACT G CHKARAZ ;S R=$S(ACT<3:1,1:0) ; Anal. rek vragen bij "Vragen" of "Vragen,niet verplicht" ; CHKARA3 ;I ACT'=3 G CHKARAZ ;S $P(R,D,2)=$$SIG^cAFA1("AR.A",AR,157) ; CHKARAZ Q R ; 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 S OK=$$CHKAR^cTN003(AR) 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 S OK=$$CHKARA^cTN003(ARA,AR) I 'OK S OK=OK_D_4 G CHKREGZ ; CHKREGZ Q OK ; DEFREG(GRIDID,LE,VENT) ; Nieuwe registratie opzetten ; Input: GRIDID: GridId van de registraties ; LE: Leverancier ; VENT: Ventilatiebedrag ; Output: gescheiden door "\" ; 1: UI1 van volgende registratielijn ; 2: Default saldo ; 3: "": enkel saldo gedefaulted ; 1: volledige lijn gedefault, lijn moet opnieuw opgeladen worden N @$$INITVAR^cAFVBA01("GRIDID,LE,VENT") S $ZT="^dmERROR" ; ; Check parameters DEFREG1 S UI1=$$REGUI1(GRIDID),D="\",DEFLN="",SALDO="" I '$G(VENT) G DEFREGZ ; Geen bedrag te ventileren S SALDO=$$SALDO(GRIDID,VENT) I '$L($G(LE)) G DEFREGZ ; Geen leverancier doorgegeven I $D(^mtemp99(GRIDID,"REG")) G DEFREGZ ; Er is al minstens één registratie ; ; Defaults ophalen DEFREG2 S AR=$$SIG^cAFA1("LE.A",LE,221) I '$L(AR) G DEFREGZ ; Grootboekrekening S ARA=$$SIG^cAFA1("AR.A",AR,157) ; Analytische rekening ; ; Default-registratielijn opzetten DEFREG3 S $P(NODE0,D,8)=$G(AR) ; Grootboekrekening S $P(NODE0,D,9)=$G(ARA) ; Analytische rekening S $P(NODE2,D)=SALDO ; Bedrag S ^mtemp99(GRIDID,"REG",UI1,0)=NODE0,^(2)=NODE2,DEFLN=1 ; DEFREGZ Q UI1_D_SALDO_D_DEFLN ; 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("") ; ; GM - 16.08.07 - Via centrale functie S R=$$CHKAR^cTN003("",1) ; ; 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" ; ; GM - 16.08.07 - Via centrale functie S R=$$CHKARA^cTN003("","",1) ; ; Mag geen tekstrekening zijn ;S R="%ALPHAUP(T1.B113) <> %ALPHAUP(1)" ; FWARAZ Q R ; REGUI1(GRIDID) ; Bepaalt volgend registratie ID (in mtemp99) ; Input: GRIDID: GridId van de registraties ; Output: UI1 van volgende registratie N UI1 S $ZT="^dmERROR" ; ; Check parameters REGUI1A S UI1="" I '$L($G(GRIDID)) G REGUI1Z ; ; UI1 bepalen REGUI1B S UI1=$O(^mtemp99(GRIDID,"REG","z"),-1) S UI1=$S($G(UI1):UI1+1,1:1000) ; REGUI1Z Q UI1 ; SALDO(GRIDID,VENT) ; Bepaalt saldo dat nog te ventileren moet worden ; Input: GRIDID: GridId van de registraties ; VENT: Ventilatie bedrag N SALDO,UI1,N0,N2 S $ZT="^dmERROR" ; ; Check parameters SALDO1 S SALDO=0,D="\" I '$L($G(GRIDID)) G SALDOZ ; ; Saldo bepalen SALDO2 S UI1="" F S UI1=$O(^mtemp99(GRIDID,"REG",UI1)) Q:'$L(UI1) D . S N0=$G(^(UI1,0)),N2=$G(^(2)) I $P(N0,D,30)=2 Q . S SALDO=SALDO+$P(N2,D) S SALDO=$G(VENT)-SALDO ; SALDOZ Q SALDO ; 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,BEDR 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) ; SREG2 S $P(^mtemp99(GRIDID,"REG",REGID,0),D,7)="G" ; Type = grootboekrekening I 'SW S $P(^(0),D,8)=..B108GetObjectId() ; Grootboekrekening I 'SW S $P(^(0),D,9)=..B109GetObjectId() ; Analytische rekening S $P(^(0),D,32)="1" ; Registratie moet getoond worden S $P(^(0),D,49)=$$Q^cAFA10() ; Firma ; ; Bedragen I 'SW S $P(^(2),D)=..B301 ; Bedrag munt document 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 ; ZZ ; 29.08.07 - 10 u 22 * V8.09