cTN803 ;IC-kwartaalopgave dotNet; cTN803; [ 04/12/09 12:11:10 ] ; T1 ;De status is verschillend van 'Voorlopig'. Item is niet verwijderbaar. T2 ;Geen BTW-nummer ingevuld.; T3 ;Land van BTW-nummer is gelijk aan land van BTW-nr van vennootschap.; T4 ;Onbekend BTW-nummer.; T5 ;Land van BTW-nummer klant is geen IC-land.; T6 ;Kwartaal is niet uniek.; T7 ;Status 'Geëxporteerd' niet toegelaten.; T8 ;Status 'Definitief' niet toegelaten: ; T9 ;De berekening moet eerst uitgevoerd worden.; T10 ;Pas op, IC-opgave reeds geëxporteerd.; T11 ;IC-opgave; T12 ;BTW-nummer werd reeds ingegeven.; T13 ;Maand en kwartaal mogen niet beide ingevuld zijn.; T14 ;Maand is niet uniek.; T15 ;Er werd reeds een IC-opgave op definitief gezet voor ;deze maand.;dit kwartaal.; ; T1F ;Le statut diffère de 'Provisoir'. Impossible de radier cette relevé IC.; T2F ;Le n° de TVA n'est pas renseigné.; T3F ;Le pays du n° de TVA est égal au pays du n° de TVA de la société.; T4F ;N° de TVA inconnu.; T5F ;Le pays du n° de TVA du client ne fait pas partie de la Communauté Européenne.; T6F ;Le trimestre n'est pas unique.; T7F ;Le statut 'Exporté' n'est pas autorisé.; T8F ;Le statut 'Définitif' n'est pas autorisé: ; T9F ;Il faut d'abord exécuter le calcul.; T10F ;Attention, le relevé IC est déjà exportée.; T11F ;Le relevé IC; T12F ;Le n° de TVA est déjà attribué.; T13F ;Interdiction d'entrer un mois ainsi qu'un trimestre.; T14F ;Mois n'est pas unique.; T15F ;Il y a déjà un relevé IC définitif pour ;ce mois.;ce trimestre.; ; T1E ;Status is different from 'Temporary'. IC Statement cannot be deleted.; T2E ;VAT number is missing.; T3E ;The country of the VAT number is the same as the country of the VAT number company.; T4E ;Unknown VAT number.; T5E ;The country of the VAT number customer is not a IC country.; T6E ;Quarter is not unique.; T7E ;Status 'Exported' not authorized.; T8E ;Status 'Final' not authorized: ; T9E ;Calculation need to be executed beforehand.; T10E ;This IC Statement was already exported.; T11E ;IC Statement; T12E ;VAT number has already been used.; T13E ;Input of both month and quarter is not allowed.; T14E ;Month is not unique; T15E ;Another IC Statement with status 'Definitive' was found for ;this month.;this quarter.; ; YZ Q ; BM(MAAND,KW,SWD) ; bepaal eerste maand ; MAAND : JJJJ.MM ; KW : JJJJ.kw ; SWD : 0 : enkel met maand naar buiten komen ; 1 : met eerste dag van de maand naar buiten N i,R S $ZT="TRAP^cAN000" F i="MAAND","KW" S @i=$G(@i) S R=$S($L(MAAND):MAAND,1:$P(KW,".")_"."_$TR($J($P(KW,".",2)-1*3+1,2)," ",0)) I $G(SWD) S R=$TR(R,".","")_"01" BMZ Q R ; BTEMP(GRIDID,UI1KW) ; Opbouwen ^mtemp99(GRIDID,"COMMOM" met de detaillijnen van een IC-kwartaalaangifte ; Input : GRIDID : volgnr van de grid : indien '' : volgnummer ophalen ; UI1KW : intern nummer IC-kwartaalopgave ; ; Output: 1 : alles OK ; 0\foutboodschap ; S $ZT="ERR^cAFVBF01" N @$$INITVAR^cAFVBA01("GRIDID,UI1KW") ; ; Controle parameters BTEMPA F i="GRIDID","UI1KW" S @i=$g(@i) ; Ophalen GRIDID I '$L(GRIDID) S GRIDID=$$GRIDID^cAFVBF01() ; BTEMPB K ^mtemp99(GRIDID,"COMMON") S OK=GRIDID I '$L(UI1KW) G BTEMPZ ; S REF=$$REF^cAFA10(.Q,"ICKW.DET",101) S UREF=$P(REF,D) ; ; Overzetten detaillijnen naar ^mtemp99 BTEMPC S UI1=UI1KW_" " F S UI1=$O(@UREF) Q:$P(UI1," ")'=UI1KW S NODE0=@UREF@(0),^mtemp99(GRIDID,"COMMON",UI1,0)=NODE0 ; BTEMPZ Q OK ; CHKDEL(UI1,TYPE) ; Testen of aangifte kan verwijderd worden. ; Input : UI1 = UI1 BTW-aangifte of IC-kwartaalopgave of IC-BTW-listing ; TYPE = 0 of leeg of niet bestaand: BTW-aangifte ; 1 : IC-kwartaalopgave ; 2 : IC-BTW-listing ; ; Output: 1 : alles OK ; 0\foutboodschap ; N OK,SOORT S $ZT="^dmERROR" S OK=1 S SOORT=$S($G(TYPE)=1:"ICKW",$G(TYPE)=2:"BL",1:"BA") I $$SIG^cAFA1(SOORT,UI1,103) S OK="0\"_$P($T(@("T1"_QT)),U,2) CHKDELZ Q OK ; CHKE ; Specifieke controles ; ; Input : GRIDID : nr. grid waarin de errors terecht komen ; UI1 : UI1 van de IC-kwartaalopgave ; TAB : B van openstaand object ; FORM : naam van de form ; PAR : gescheiden door "\" ; 1. GridId van de mtemp ; ; Output: 1 : ales ok ; 0\GRIDID ; opvullen error-mtemp99 ; S $ZT="TRAP^cAN000" ; B101 en B102 mogen niet samen ingevuld zijn CHKE10 S RES=1 I $L($P(B(1),D)),$L($P(B(1),D,2)) S RES="0\"_$P($T(@("T13"_QT)),U,2) I '$P(RES,D) D FERR^cAFVBF04(GRIDID,1000,"","",0,$P(RES,D,2)) I '$P(RES,D) D FERR^cAFVBF04(GRIDID,1016,"","",0,$P(RES,D,2)) ; ; B101 moet uniek zijn (indien ingevuld) CHKE11 S RES=$$UNIEKM(UI1,$P(B(1),D)) I '$P(RES,D) D FERR^cAFVBF04(GRIDID,1016,"","",0,$P(RES,D,2)) ; ; B102 moet uniek zijn (indien ingevuld) CHKE12 S RES=$$UNIEKK(UI1,$P(B(1),D,2)) I '$P(RES,D) D FERR^cAFVBF04(GRIDID,1000,"","",0,$P(RES,D,2)) ; ; Voor éénzelfde maand mag er geen maand- en een kwartaalaangifte op definitief gezet worden CHKE13 I $P(B(1),D,3)'=1 G CHKE20 S RES=$$CHKDEF($P(B(1),D),$P(B(1),D,2)) I '$P(RES,D) D FERR^cAFVBF04(GRIDID,1001,"","",0,$P(RES,D,2)) ; ; Manueel verzetten naar status 2 mag niet ; B103 = 2 mag de oude waarde ook maar 2 zijn CHKE20 S RES=1 I $P(B(1),D,3)=2,($P(A(1),D,3)'=2) S RES="0\"_$P($T(@("T7"_QT)),U,2) I '$P(RES,D) D FERR^cAFVBF04(GRIDID,1001,"","",0,$P(RES,D,2)) ; ; Testen bij verzetten status van voorlopig naar definitief CHKE30 I $P(B(1),D,3)=$P(A(1),D,3)!($P(B(1),D,3)'=1)!(+$P(A(1),D,3)) G CHKE90 ; Testen of berekening is uitgevoerd CHKE31 S RES=1 S MTEMPID=$P(PAR,D),UI1KWDET="" CHKE32 S UI1KWDET=$O(^mtemp99(MTEMPID,"COMMON",UI1KWDET)) I '$L(UI1KWDET) G CHKE35 I $P(^(UI1KWDET,0),D,30)'=2 G CHKE90 CHKE35 S RES="0\"_$P($T(@("T8"_QT)),U,2)_$P($T(@("T9"_QT)),U,2) I '$P(RES,D) D FERR^cAFVBF04(GRIDID,1001,"","",0,$P(RES,D,2)) ;S UREFDET=$P($$REF^cAFA10(.Q,"ICKW.DET"),D) ;S UREFDET=$$REPL^cAFA10(UREFDET,"UI1","UI1KW") ;S UI1KW=UI1_" " ;I $P($O(@UREFDET)," ")'=UI1 S RES="0\"_$P($T(@("T8"_QT)),U,2)_$P($T(@("T9"_QT)),U,2) ;I '$P(RES,D) D FERR^cAFVBF04(GRIDID,1001,"","",0,$P(RES,D,2)) ; ; ; Testen of aangifte reeds geëxporteerd werd CHKE90 ; geen waarschuwingen als er fouten gevonden werden S RES="" S OK=1 F S RES=$O(^mtemp99(GRIDID,"COMMON",RES)) Q:RES="" I '$P(^(RES,0),D,2) S OK=0 Q I 'OK G CHKEZ S RES=1 I $P(B(1),D,3)<2,($P(A(1),D,3)=2) S RES="0\"_$P($T(@("T10"_QT)),U,2) I '$P(RES,D) D FERR^cAFVBF04(GRIDID,1001,"","",2,$P(RES,D,2)) ; CHKEZ Q ; CHKDEF(MAAND,KW) ; Testen of er voor éénzelfde maand nog geen aangifte op definitief staat N OK,MAAND1,MAAND2,KWART,UI1,I S $ZT="TRAP^cAN000" S OK=1 I $L(KW) G CHKDEFB ; Testen of er voor de maand nog geen BTW-aangifte van het zelfde kwartaal op def. staat CHKDEFA S KWART=$P(MAAND,".")_$S($P(MAAND,".",2)<4:"01",$P(MAAND,".",2)<7:"02",$P(MAAND,".",2)<10:"03",1:"04") S UI1=$$UI1OP^cAFA1("ICKW",102,"",KWART) I $L(UI1),$$SIG^cAFA1("ICKW",UI1,103) S OK="0\"_$P($T(@("T15"_QT)),U,2)_$P($T(@("T15"_QT)),U,3) G CHKDEFZ ; Testen of de 3 maanden van het kwartaal nog geen def. IC opgave hebben. CHKDEFB S MAAND1=$$BM("",KW) S MAAND2=MAAND1+.01 S MAAND3=MAAND2+.01 F I=1:1:3 S UI1=$$UI1OP^cAFA1("ICKW",101,"",@("MAAND"_I)) I $L(UI1),$$SIG^cAFA1("ICKW",UI1,103) S OK="0\"_$P($T(@("T15"_QT)),U,2)_$P($T(@("T15"_QT)),U,4) CHKDEFZ Q OK ; DELL(ID) ; Verwijderen van een detaillijn in ^mtemp99(GRIDID,"COMMON" ; Input : ID : nummer van de rij die verwijderd mag worden ; OUTPUT: 1: alles OK ; N OK S $ZT="^dmERROR" ; S OK=1 S $P(^mtemp99($P(ID,"||"),"COMMON",$P(ID,"||",2),0),D,30)=2 DELLZ Q OK ; ; HDBTW(SW,M,K) ; Hoofding IC-opgave ; Hoofding: IC-opgave ; M= Maand ; K= Kwartaal ; Indien geen variabelen doorgegeven moet er een instantie opstaan ; S $ZT="^dmERROR" D QT^cAFVBO01 S D="\",U=";" N i,OUT F i="SW","M","K" S @i=$G(@i) I 'SW S M=..B101,K=..B102 I $L(M) S OUT="\\"_$P($T(@("T11"_QT)),";",2)_"\ ;"_M G HDBTWZ I $L(K) S OUT="\\"_$P($T(@("T11"_QT)),";",2)_"\ ;"_K G HDBTWZ S OUT="\\"_$P($T(@("T11"_QT)),";",2)_"\" HDBTWZ Q OUT ; ; LNR(GRIDID) ; Ophalen lijnnr van een nieuwe detaillijn ; Input: GRIDID ; Output: LNR N LNR,I1 S $ZT="^dmERROR" S LNR="" I '$L(GRIDID) G LNRZ S I1="" LNRA S I1=$O(^mtemp99(GRIDID,"COMMON",I1)) I I1="" G LNRB I $P(^(I1,0),D,30) G LNRA I $P(I1," ",2)>LNR S LNR=$P(I1," ",2) G LNRA LNRB S LNR=LNR+1 LNRZ Q LNR ; SAVEL() ; Save van de detaillijn in ^mtemp99(GRIDID,"COMMON" ; Output: 1 : alles OK ; 0\foutboodschap ; S $ZT="^dmERROR" N @$$INITVAR^cAFVBA01("%this") ; TAB-samenstellen + intialiseren SAVEL1 D ..%NormalizeObject() D ..ObjToCacheSQL("O") ; ; Check op geldig BTW-nummer SAVEL2 I $P(TAB(1),D,2)="" S OK="0\"_$P($T(@("T2"_QT)),U,2) S OK=$$BTW^cAFVBI01(Q,$P(TAB(1),D,2)) I 'OK G SAVELZ ; Als controle op BTW een aangepast btw-nummer doorgeeft met dat verderwerken I $L($P(OK,D,2)) S $P(TAB(1),D,2)=$P(OK,D,2) ; Land BTW-nummer <> land BTW-nr. van de vennootschap S LLVEN=$$SIG^cAFA1("Q",Q,214) I $E($P(TAB(1),D,2),1,$L(LLVEN))=LLVEN S OK="0\"_$P($T(@("T3"_QT)),U,2) G SAVELZ ; BTW-nummer moet meer dan enkel maar een 0 bevatten S BTW=$E($P(TAB(1),D,2),3,999) I BTW?1."0" S OK="0\"_$P($T(@("T4"_QT)),U,2) G SAVELZ ; ; Ophalen GRIDID en ROWID SAVEL3 S GRIDID=..GridId S ROWID=..ICKwDetId S UI1H=$P(ROWID," ") ; SAVEL4 ; Er mogen geen 2 detaillijnen zijn metzelfde BTW-nummer S UI1="" SAVEL45 S UI1=$O(^mtemp99(GRIDID,"COMMON",UI1)) I '$L(UI1) G SAVEL5 I UI1=ROWID G SAVEL45 I $$DI^cAN000($P(TAB(1),D,2),"")=$$DI^cAN000($P(^(UI1,0),D,2),""),$P(TAB(1),D,8)=$P(^(0),D,8) S OK="0\"_$P($T(@("T12"_QT)),U,2) G SAVELZ G SAVEL45 SAVEL5 ; Land van BTW-nummer klant moet IC-land zijn S KW=$$SIG^cAFA1("ICKW",UI1H,101) S JAAR=$P(KW,".") S KW=$P(KW,".",2) S MND=KW*3/100 S DATIC=$$DCO^cAFD1($TR(JAAR_MND_"01",".","")) S K=$P(TAB(1),D,2) I '$$IC^cTI0($P(TAB(1),D,2),DATIC) S OK="0\"_$P($T(@("T5"_QT)),U,2) G SAVELZ ; Wegschrijven gegevens in ^mtemp99 SAVEL6 I '$D(^mtemp99(GRIDID,"COMMON",ROWID,0)) S ^mtemp99(GRIDID,"COMMON",ROWID,0)=UI1H F I=2,4,6,7,8 S $P(^mtemp99(GRIDID,"COMMON",ROWID,0),D,I)=$P(TAB(1),D,I) S OK=1 SAVELZ Q OK ; STEMP(GRIDID,UI1KW) ; Saven van ^mtemp99(GRIDID,"COMMON" ; Input : GRIDID : volgnr van de grid ; UI1KW : intern nummer IC-kwartaalopgave ; ; Output: 1 : alles OK ; 0\foutboodschap S $ZT="^dmERROR" N @$$INITVAR^cAFVBA01("GRIDID,UI1KW") ; STEMPA S UI1=UI1KW_" " STEMPB S UI1=$O(^mtemp99(GRIDID,"COMMON",UI1)) I $P(UI1," ")'=UI1KW G STEMPY S INH=^(UI1,0) ; Openen van een nieuwe lijn I $$SIGN^cAFA1("ICKW.DET",UI1,0)="" D G STEMPB . K TAB . S TAB(1)=INH . I $P(INH,D,30)=2 Q . D P^cAN220("ICKW.DET","",UI1,"TAB","") I K="-" X "STOP" ; Verwijderen van een lijn I $P(INH,D,30)=2 D G STEMPB . D X^cAN220("ICKW.DET","",UI1) I K="-" X "STOP" ; Wijzigen van een lijn K TAB S TAB(102)=$P(INH,D,2) ; BTW-nummer S TAB(104)=$P(INH,D,4) ; Lijnnummer S TAB(106)=$P(INH,D,6) ; Waarde in firmamunt S TAB(107)=$P(INH,D,7) ; Opmerking S TAB(108)=$P(INH,D,8) ; Code D B^cAN220("ICKW.DET","",UI1,"TAB","") I K="-" X "STOP" G STEMPB STEMPY S OK=1 STELPZ Q OK ; UNIEKM(UI1KW,MAAND) ; Testen of maand uniek is I '$L(MAAND) S OK=1 G UNIEKMZ S OK=$$UNIQUE^cAFVBA01(.Q,"ICKW",101,MAAND,UI1KW) I 'OK S OK="0\"_$P($T(@("T14"_QT)),U,2) UNIEKMZ Q OK ; UNIEKK(UI1KW,KW) ; Testen of kwartaal uniek is I '$L(KW) S OK=1 G UNIEKKZ S OK=$$UNIQUE^cAFVBA01(.Q,"ICKW",102,KW,UI1KW) I 'OK S OK="0\"_$P($T(@("T6"_QT)),U,2) UNIEKKZ Q OK ; XW ; Executes bij OK via ^DMA(0,"ICKW" ; Indien status van voorlopig naar definitief I '$P(A(1),D,3),$P(B(1),D,3)=1 D . D BLX^cAN000(120,$H) . D BLX^cAN000(124,$$HD^cAFD1($H)),BLX^cAN000(125,$$HT^cAFD1($H)) ; Indien kwartaal gewijzigd is: detaillijnen verwijderd + ; datum + init. berekening uitblanken I $P(A(1),D)'=$P(B(1),D)!($P(A(1),D,2)'=$P(B(1),D,2)) D . ; Datum laatste berekening op "" . D BLX^cAN000(118,"") . ; Init. laatste berekening op "" . D BLX^cAN000(119,"") . D BLX^cAN000(122,""),BLX^cAN000(123,"") ; datum en uur laatste berekening op "" . ; Verwijderen detaillijnen . D LINK^cANP0001(UI1,UQC,USC,"X") ; XWY S OK=2 XWZ Q ; ZZ ; 16.10.08 - 14 u 11 * V9.04