'Ouvrir' 'Traitements'
$-"1&&((**)0'-2-2244"""-(1(3*.-&-60(2+5*$"$"%'&)).'+,10(2/55&,##$1((**,,)2714-44""$$$1*-**,,..731,6-&&%&%1(&)-,'.65,7342!'$($%(-)--1.(011-34"(%'%*('(()2'*341-54#-"1&&((***5*60-2351"!)*('(3+%+--,274853"/%1%0(0)),,.(17655*"'%1'(($)+,4**2-2244"""-),)2*',-.-47874+#%#%%$*',(-+./1-104,!!$$&()'&%-2.'1-8847!&$1))*-**,,..662/47!-%*(-((**,,,12-2244"""1$1((**,,'*021753!.('##('+&(/.'142-99$-$$&&(('&,*-'13219*##$'#*%/*&-+.6444-44""$$$1*-**,,..4)2747!-$/&('(,-,,..006)47"'%1$&(*)'-.-2027243!$)+&('(***1..002288"+$0%()0*2,3-4202457&*##&'+$(4---'001736$+$0%()0*2,3-40/2874$-$$&&((,-*1..002273!,&-(#(*'*,+''1-7*51!-$'&&(',1(4.1031-45%,(*$/(1,4+/.*1-1*48!"()%,(')--/+(4/2/47!-%**&*$**,1).111493&&$%*)$+*/4)254/1/48!-%,&*)(&%)+-44)6388&$%&&'%$%%-3*0451-51!'%%&,(2*(()**(-*,42"-,)0**-**,,..2-4-44""$$*/($&3-2.'1-6340"!%*&()-*+,5-'525+46'""1&&((**'+-46)8045"!&.*/($&3&-.1031-45'#'#%2)-*(-1-3728847!&$1'.*-,-,,..00884/"'%1%,$$,-,,..008536"'#'$$(-*/-&-50)8.33"'#()/($)+,4**2-2244"""1$1((**,,(+022-4/!(%-%#),*,',.+6-4/55"($")*))%3,&'.2-2244"""1$1((**,,*-0+255*"!%%%'**+),&.,1.1/4+".%&%.(0*3-2,.021761".$'(*(*'*,+(12/1146"$#*(0)&*3,0*)111559")'$$1((***5(60+255*"!%%%'**+),&.,1.1/4+".%&%.(0*3-2,.021761".$'(*(*'*,+(12/1146"$#*(1)%*3,0*)111559")'$&&*-**,,..412+49!,$%%%)',,+-.(02105/"+$0%()0*2,3-4202457(-$0&'&$*,',.+6-4/55"($"#,&,)&,3.2451159!%$-'&($%4-2(5653-40!!$+%1)2*(,--1538555'&(#&$%(*+&1+41-2.89#*(,&1(+)-,-)4044-44""$$$-&0*3,)-4011157$$#%&((*)0-/.30,185,"*$+%,*(*,-'(10,2768"$'$&#&-+4-1.245184+".()%%)%)%,5'.2-2244""&&&/(')--2**042621""$$&&$)*3,)-4011157$$#%&((*)0-/.30,185,"*$+%,*(*,-'(10,2768"$'$&#&-,/--.(023,6+!#$+&2$%))-)-)0)7244$-$$&&*1(2,3.)1*2155!'""#%(&*,-.-/0+2.56!*$,&+)2,*,*-'6-2.47(&$"'&(+(-*/--06243*(,%"&+(,&%---)152)74"""1&&((**'+-46)8531".%%&+)-)4,&.-1-5369!!'(*#(*%*,+(13*1-40&(#+*.(-*+-1.-5*2621""$$&&*1(2,3.)1*2155!'""#%(&*,-.-/0+2.56!*$,&+)2,*,*-'6-2.47(&$"'&(+(-+2-10,6859"+$0*))))%-).5704-44""$$(((/*'-1-4442248%,%*(-&%+-,0--0+1-5*"($%%1%+(),1.+1-219.$-$$&&((,1)2-46)6342%"$#(1+2)-,0*'3*6*41"#%1&%%.*&,,..6(2+49!,$%%%)',,+-.(02105/"+$0%()0*2,3-4202457(-$0&'&$*,',.+6-3,51".('%*(3*.()--15154-'""1&&((***5*/0/2751!,(($1((**,,((0/276.'#%*(-((**,,,1004-44""$$*%(3*%-2.-111722#!$&&$).)/,3.2161*4,"+%*$&(*)'&1.2078642'"$#(1*/)),&.,3*8)55"+$0*))))%-).5702248&(#*&#($)3-3*-002445(&%1&,),)1-&,31/2+40!(%,&.(3)4*,.,173.74"""1&&((**(/-403265+!+#&$+(,)(-4.60+1,4/!/$+&2)&)2,4.31*4242!'#0'&*-**,,..2-4-44""$$*1(,*3*1+)1+1,56&%)+&('(,-,,..004-21""$$&&'+).-1.(1-1+72'($(%#(0&&
###
'Importer du journal de TVA' 'Traitements'
    
    document ::=	'comptabilite.Journal_De_TVA'
    info{'Veuillez utiliser l''état standard "TVA états préparatoires" pour importer les valeurs dans votre déclaration.'}
    
    SI etat.EstVerrouille ALORS
    	info {'L''import n''est pas possible sur un état verrouillé.'}
    	SORTIR FAUX
    FINSI
    
    SI document.dateDebut = ?	ALORS
    	info {'L''état Journal de TVA n''est pas initialisé.
    Vous ne pouvez donc pas importer les montants.'}
    SORTIR FAUX
    FINSI
    
    document.etatPreparationTVA {}
    
    SI NON document.parametrageCerfas ALORS	
    	document.parametrageCerfas := VRAI	
    	document.parametrageCerfas_MODIF {}
    FINSI
    
    SI NON ouiNon {'Les montants seront repris du dernier calcul du journal de TVA
    Période du ' + document.dateDebut + ' au ' + document.dateFin + '
    
    	Taux normal : ' + document.tauxNormal2 + '
    	Taux réduit : ' + document.tauxReduit + '
    	Taux normal DOM : ' + document.tauxNormalDOM + '
    	Taux réduit DOM : ' + document.tauxReduitDOM + '
    
    Voulez vous continuer ?'}
    	ALORS	SORTIR FAUX
    FINSI    
    ----------------    
    B02 := document.exportationsHorsCE
    B03 := document.autresOperationsNonImposables
    B04 := document.livraisonsIntracom
    B05 := document.baseNormal
    B06 := document.baseReduit
    B06B := document.baseReduit7
    B07 := document.baseDOMNormal
    B08 := document.baseDOMReduit
    _23 := document.tvaDeductibleImmos
    _20 := document.tvaDeductibleBiensServices    
    
    INTER_CA12_page2 {}    
    ----------------    
    info {'Les montants ont été importés.'}
    
    SORTIR VRAI
###
'Importer depuis TVA Etats préparatoires' 'Traitements'
    importerEtatsPrep{}
###
'Imprimer' 'Traitements'
""$$&&((,-*1..002273!,&-**)&)-,&-1072*90'#$"%'($,),1-11-2845!-#$&()')&,'((5*5-51!-%$%&&)*-,+-1015,48$-$$&&((,1&'.3353152$'"&%#(/)--..6112246!'&0##('+&)/.*132*88$-$$&&(('+-2.'012187"&"1&&((***5('0+3535!$"'$()+*/-1-00(1144"(%'(2++*'+(*/071641%%"1&&((**&&./071-5*&&"1&&((***1,1002244'&$"%')+).('++07368/"'%(&1%%,-,,..007642!'%#&%%2++,'+*5/2653"*(($1((**,,*/048433"'#((&('*'-1,.02175.!.$"'&(+),)3.(704-44""$$$1*-**,,..731,6-(#$"'&(+''-1'61-1-47""$'(%(-*+-1.-5.4-44""$$$-$2,/,5,43/2651!*$(%&&,++,'+*363848$-$$&&((((,/.'1-1,84$&$$&1%())-*)+442189&#$/.),1&/-/.*1-1*48!"())#)2&1(+**421847%&))%+$.&%-1-117114*",$&*)$$2-42.,0-*5,6"&(+$-++*'-1*+0,215*"(%1&#(1)')*)3067221""$$&&*-,-,,..00735*()&.&%()(0(/.*4+8141"#%1&%'+,-*1..00222-%,%0%1(&)--3',662758"-',$1*-**,,..662/47!-%****-**,,..2-4-44""$$'#)2(1(/.*4+8141"#%1&%%.,-,,..004)84"&%1)-((++,'+*4/2758"-))$1((**,,,5474.54#'%'&&%3**++.'343)31$-$$&&((,1(2.,0-2/56!)%#%2(*'*,+(12/1146"$)(%%%3*(',,1002244$)($&')2))-'.11,2474"#&1$/))*(,*)+165+46'""1&&((***5*40,215*"(%1&#(1*(,*'.036)46'""1&&((***5*.041-9-""##&'+$%/,(-+0(6621""$$&&*-,-,,..004)66!,$#&*)3)3+&+(1+1/53!')")+%,%',+)*5*7221""$$&&*1(*,(-1021756""%*&(()&0)3)2422+5*!!%%%%$3%0,+)*5*7221""$$&&*1(*,(-1021+48"*%')$%3*(',,1002244$)&*&+('*(--,33,1-46!-$0*)%3*(',,1002244$)($&*)-%1,,++07368/"'%(&1%%,-,,..00884/"'%1%,$$,-,,..004-21""$$&&'+).-1.(1-1+72'($(%#(0&&
###
'Importer depuis état TVS Fiches d'aide au calcul' 'Traitements'

	SORTIR importTVS{}
	
###
'Verrouiller' 'Traitements'
    
    NbrERR	:=	0
    CONTROLECA12{}

    SI NbrERR > 0 ALORS
    	info{'Vous ne pouvez pas verrouiller la TVA CA12 car vous avez des erreurs dans la saisie. 
    Veuillez consulter le compte rendu pour connaître les erreurs.'}
    	SORTIR FAUX
    FIN SI
    
	SI NON TesterMentionExpresseTvaMotifOnVerrou{} ALORS
		SORTIR FAUX
	FIN SI

    verrouiller{}
    Verrouiller3310TIC_FP{}
    
    SORTIR VRAI
###
'Déverrouiller' 'Traitements'
    deverrouiller{}
    Verrouiller3310TIC_FP{}
###
'Proposer les écritures de TVA' 'Traitements'
    
    |
    	jnl<Objet> 
    |
    
    SI exerciceComptable.EstVerrouille[periode.fin] ALORS
    	info{'Cette période est verrouillée, il vous est impossible d''effectuer ce traitement'}
    	SORTIR FAUX
    FIN SI
    
    jnl	::=	'Journal'
    
    SI generation=? ALORS generation :='cerfa' FINSI
    SI NON dialogue{100,400,'choixJournal', 'generation', 'Choix du journal'} ALORS SORTIR FAUX FIN SI
    
    SI choixJournal = ? ALORS SORTIR FAUX FIN SI
    
    POUR TOUT journal TEL QUE ''+journal = choixJournal FAIRE
    	jnl	:=	journal
    FIN FAIRE
    
    SI jnl.clos ALORS
    	info{'Le journal que vous avez choisi est clos. Vous ne pouvez pas ajouter les écritures de TVA dans ce journal'}
    	SORTIR FAUX
    FIN SI
    
    exerciceComptable.gestionTVA	:=	NOM
    exerciceComptable.faireAjoutAutoTVA	:=	VRAI
    jnl.OUVRIR{}
    
    SORTIR VRAI
###
'Comptes substitués' 'Traitements'
    voirComptesSubstitues{}
###
'Archiver' 'Traitements'
    archiver{}
###
'----' 'Traitements'

###
'EDITVA' 'Traitements'
    
    | 
    	titulaireTrouve<Booléen>
    	tmpIBAN<Chaine> tmpBIC<Chaine> tmpEtranger<Booléen> tmpTitulaire<Chaine>
    	tmpCleIban<Chaine> tmpEtab<Chaine> tmpGuichet<Chaine> tmpCompte<Chaine> tmpCle<Chaine>
    	tmpBanque<Objet>
    |

    tmpBanque ::= 'Role'
    
    typeInterchange	:=	'EDITVA'
    -------------------------------------------------
    
    SI aujourdhui {} < 08.02.2024 	ET NON shift {}	ALORS
    	info {'La transmission de ces imprimés au format EDITVA sera possible à compter du 08/02/2024 (mise en application du nouveau format au CSI de Strasbourg)'}
    	SORTIR FAUX
    FINSI
	
	------------------------------------------------ajouté pour 2025 car controle ajouté après livraison des tva et EDI pour controler en cas de verrou avant envoi edi
    NbrERR	:=	0
    CONTROLECA12{}
    SI NbrERR > 0 ALORS
    	info{'Vous ne pouvez pas envoyer la TVA CA12 car vous avez des erreurs dans la saisie. 
    Veuillez consulter le compte rendu pour connaître les erreurs.'}
    	SORTIR FAUX
    FIN SI
    --------------------------------------------------------------------------------------------------------------

    
    SI dateDebut >= 31.12.2024	ET aujourdhui {} >= 06.02.2024	ALORS
		info {'Vous devez transmettre un état TVA 2025 pour votre déclaration.'}
		SORTIR FAUX
	FIN SI
    
    envoiCA12	:=	VRAI
    envoi3517DDR	:=	(DDR_AG > 0)
    SI NON dialogue{80, 100, 'envoiCA12', 'envoi3517DDR', 'Envoi EDITVA'} ALORS
    	info{'L''envoi EDITVA a été annulé.'}
    	SORTIR FAUX
    SINON
    	SI envoiCA12 ET envoi3517DDR ALORS
    		SI NON ouiNon{'Confirmez-vous l''envoi de la CA12 ET de la demande de remboursement (3517DDR) ?'} ALORS SORTIR FAUX FIN SI
    	SINON
    		SI envoiCA12 ALORS
    			SI NON ouiNon{'Confirmez-vous l''envoi de la CA12 uniquement ?'} ALORS SORTIR FAUX FIN SI
    		SINON
    			SI envoi3517DDR ALORS
    				SI NON ouiNon{'Confirmez-vous l''envoi de la demande de remboursement (3517DDR) uniquement ?'} ALORS SORTIR FAUX FIN SI
    			SINON
    				info{'Vous n''avez rien sélectionné pour l''envoi.'}
    				SORTIR FAUX
    			FIN SI
    		FIN SI
    	FIN SI
    FIN SI
    
    SI envoiCA12 ALORS
    	SI minuscule{CA12_2neant} = 'x'	ALORS	
    		SI NON ouiNon {'Vous avez coché la case Déclaration Néant sur l''imprimé 3517SCA12. 
    	Cela signifie qu''aucune donnée de cet imprimé à part l''identification (et les commentaires) ne sera transmise à la DGI. 
    Confirmez vous la génération du fichier EDITVA ?
    ' }
    		ALORS SORTIR FAUX	FINSI
    	FINSI    	    	
    FIN SI
    
    SI envoi3517DDR ALORS
      	SI DDR_AG <> ? ALORS
	      	POUR TOUT element<Role> DE dossier.lstNouveauxContacts FAIRE
	    		SI element.type = 'Banque' ET element.estBanqueTLR1 ALORS
	    			tmpBanque := element
	    			tmpIBAN := element.IBAN
		    		tmpIBAN	:=	substituerCaracteres{tmpIBAN, ' ', ''}
	    			tmpBIC := element.CodeBIC
	    			tmpEtranger := element.abIBANEtranger
	    			SI element.TitulaireCompte <> ? ALORS
	                    tmpTitulaire          :=          element.TitulaireCompte
	                FIN SI
	    		FIN SI
	    	FIN FAIRE

	        SI (tmpIBAN = ? OU taille{tmpIBAN} < 1) OU (tmpBIC = ? OU taille{tmpBIC} < 1) ALORS
				info{'Vous avez demandé le remboursement de ' + DDR_AG + ' euros sur la page 6 de votre CA12A.
La demande de remboursement implique l''obligation de renseigner l''IBAN et le code BIC depuis le contact "Banque" du Dossier Permanent, catégorie "Général".
Veuillez compléter correctement ces deux champs sur l''échelle des temps correspondante sur le premier compte de télérèglement EDITVA.'}
				SORTIR FAUX
			SINON
				SI tmpEtranger ALORS
					SI aujourdhui{} < 01.12.2017 ALORS
						info{'L''envoi en EDI des données bancaires étrangères sera accessible à compter du 01/12/2017.
Veuillez sélectionner un autre compte bancaire.'}
						SORTIR FAUX
					SINON
						SI controleIBANetranger {tmpIBAN} = FAUX	ALORS
		    				info{'Les renseignements concernant le compte 1 ne sont pas valides.
Veuillez contrôler la Clé IBAN ainsi que l''IBAN  pour ce contact Banque, depuis le Dossier Permanent, en vous positionnant sur l''échelle des temps correspondant à la période de votre déclaration.'}
		    				SORTIR FAUX
		    			FINSI   
		    		FIN SI
				SINON
					tmpCleIban := chaine{tmpIBAN, 1, 4}
					tmpEtab := chaine{tmpIBAN, 5, 9}
					tmpGuichet := chaine{tmpIBAN, 10, 14}
					tmpCompte := chaine{tmpIBAN, 15, 25}
					tmpCle := chaine{tmpIBAN, 26, 27}
					SI NON controleIBAN2{tmpEtab, tmpGuichet, tmpCompte, tmpCle, tmpCleIban} ALORS
	    				info{'Les renseignements concernant le compte 1 ne sont pas valides.
Veuillez contrôler la Clé IBAN ainsi que l''IBAN  pour ce contact Banque, depuis le Dossier Permanent, en vous positionnant sur l''échelle des temps correspondant à la période de votre déclaration.'}
	    				SORTIR FAUX
	    			FINSI   
	    		FIN SI

				-- contrôle du code BIC
	    		SI taille{tmpBIC} > 0 ALORS
	    			SI NON controleCodeBIC{tmpBIC} ALORS
	    				info{'Le code BIC renseigné pour le compte 1 n''est pas correct (il doit contenir 8 ou 11 caractères sans espace et en majuscule).'}
	    				SORTIR FAUX
	    			FIN SI
	    		FIN SI

	    		info {'Vous avez demandé le remboursement de ' + DDR_AG + ' euros sur la page 6 de votre CA12A.
Les coordonnées bancaires transmises sont celles du premier compte de télérèglement EDITVA : 
	    '  + tmpIBAN + '-' + tmpBIC}
	    
	    ----------------------------------------------------------
	    		-- Recherche du TitulaireCompte
	    		SI  taille{titulaireCpteRbmt}  < 3 ALORS
		    		titulaireTrouve := FAUX
		    		SI taille{tmpTitulaire} > 0 ALORS
		                titulaireCpteRbmt          :=          tmpTitulaire
		    			titulaireTrouve := VRAI
		    		FIN SI
		    
		    		SI NON titulaireTrouve ALORS
		    			titulaireCpteRbmt  := '?'
		    		FINSI
		    ----------------------------------------------------------
		    		titulaireCpteRbmt := saisir { 'Merci de nous indiquer le titulaire du compte ' + tmpIBAN + '-' + tmpBIC+'
pour la demande de remboursement.' , titulaireCpteRbmt }
		    		SI titulaireCpteRbmt = '' ALORS
		    			SORTIR FAUX
		    		FINSI
		    
		    		TANT QUE taille{titulaireCpteRbmt}  < 3 FAIRE
		    			titulaireCpteRbmt := saisir { 'Merci de nous indiquer le titulaire du compte ' + tmpIBAN + '-' + tmpBIC+'
pour la demande de remboursement.' , titulaireCpteRbmt }
		    			SI titulaireCpteRbmt = '' ALORS
		    				SORTIR FAUX
		    			FINSI
		    		FIN FAIRE

		    		-- remplissage du titulaire de la Banque
		    		SI taille{tmpTitulaire} < 1 ALORS
		    			info{'Le nom du titulaire que vous avez renseigné est reporté directement dans le contact banque pour la prochaine déclaration.'}
		    			tmpBanque.TitulaireCompte := titulaireCpteRbmt
		    			commit{tmpBanque}
		    		FIN SI
		    	FINSI
		    FIN SI
    	FIN SI
    FIN SI
    
    -------------------------
    SI aujourdhui{} < 06.02.2025 ALORS
    	anneeTVA := '2024'
    SINON
    	anneeTVA := '2025'
    FINSI
    anneeTVA_SEQ := '2024'
    GUM := 'D00B'
    -------------------------
	
    liasse_tva := 'CA12'
    SI NON envoiCA12 ALORS
    	liasse_tva := '3517DDR'
    	paiementTLR := FAUX
    FIN SI
    liasse_agr := ''	-- pour distinguer CA12A de CA12 dans DOC sans incidence sur nom fichier
    
    tva_debutPeriode	:=	dateDebutDate	--dateDebut	
    tva_finPeriode		:=	dateFinDate	--dateFin		
    
    remplirTypeClotureExo{}
    -------------------------------------------------
    SI envoiCA12 ALORS
    	montantTvaDu 		:= _56
    	montantTvaCredit 	:= _49
    SINON
    	montantTvaDu 		:= 0
    	montantTvaCredit 	:= 0
    FIN SI
    SI envoi3517DDR ALORS
    	montantRbmtDemande 	:= DDR_AD
    SINON
    	montantRbmtDemande 	:= 0
    FIN SI
    -------------------------------------------------    

	VerifCoalaHttpSiServiceEdiEnHttps{typeInterchange}

    SORTIR EDITVA2{}

###
'Exporter au format EDITVA' 'Traitements'
    
    | 
    	okNeant <Booléen> titulaireTrouve<Booléen>
    	tmpIBAN<Chaine> tmpBIC<Chaine> tmpEtranger<Booléen> tmpTitulaire<Chaine>
    	tmpCleIban<Chaine> tmpEtab<Chaine> tmpGuichet<Chaine> tmpCompte<Chaine> tmpCle<Chaine>
    	tmpBanque<Objet>
    |

    tmpBanque ::= 'Role'
    
    typeInterchange	:=	'ExportEDITVA'
    
    SI aujourdhui {} < 08.02.2024 	ET NON shift {}	ALORS
    	info {'La transmission de ces imprimés au format EDITVA sera possible à compter du 08/02/2024 (mise en application du nouveau format au CSI de Strasbourg)'}
    	SORTIR FAUX
    FINSI
	
	------------------------------------------------ajouté pour 2025 car controle ajouté après livraison des tva et EDI pour controler en cas de verrou avant envoi edi
    NbrERR	:=	0
    CONTROLECA12{}
    SI NbrERR > 0 ALORS
    	info{'Vous ne pouvez pas envoyer la TVA CA12 car vous avez des erreurs dans la saisie. 
    Veuillez consulter le compte rendu pour connaître les erreurs.'}
    	SORTIR FAUX
    FIN SI
    --------------------------------------------------------------------------------------------------------------

    SI dateDebut >= 31.12.2024	ET aujourdhui {} >= 06.02.2024	ALORS
		info {'Vous devez transmettre un état TVA 2025 pour votre déclaration.'}
		SORTIR FAUX
	FIN SI
    
    envoiCA12	:=	VRAI
    envoi3517DDR	:=	(DDR_AG > 0)
    SI NON dialogue{80, 100, 'envoiCA12', 'envoi3517DDR', 'Envoi EDITVA'} ALORS
    	info{'L''envoi EDITVA a été annulé.'}
    	SORTIR FAUX
    SINON
    	SI envoiCA12 ET envoi3517DDR ALORS
    		SI NON ouiNon{'Confirmez-vous l''envoi de la CA12 ET de la demande de remboursement (3517DDR) ?'} ALORS SORTIR FAUX FIN SI
    	SINON
    		SI envoiCA12 ALORS
    			SI NON ouiNon{'Confirmez-vous l''envoi de la CA12 uniquement ?'} ALORS SORTIR FAUX FIN SI
    		SINON
    			SI envoi3517DDR ALORS
    				SI NON ouiNon{'Confirmez-vous l''envoi de la demande de remboursement (3517DDR) uniquement ?'} ALORS SORTIR FAUX FIN SI
    			SINON
    				info{'Vous n''avez rien sélectionné pour l''envoi.'}
    				SORTIR FAUX
    			FIN SI
    		FIN SI
    	FIN SI
    FIN SI
        
    SI envoiCA12 ALORS
    	SI minuscule{CA12_2neant} = 'x'	ALORS	
    		okNeant := ouiNon {'Vous avez coché la case Déclaration Néant sur l''imprimé 3517SCA12. 
    Cela signifie qu''aucune donnée de cet imprimé à part l''identification (et les commentaires) ne sera transmise à la DGI. 
    Confirmez vous la génération du fichier EDITVA ?' }
    		SI NON okNeant ALORS SORTIR FAUX	FINSI
    	FINSI
    	
    FIN SI
    
    SI envoi3517DDR ALORS
      	SI DDR_AG <> ? ALORS
	      	POUR TOUT element<Role> DE dossier.lstNouveauxContacts FAIRE
	    		SI element.type = 'Banque' ET element.estBanqueTLR1 ALORS
	    			tmpBanque := element
	    			tmpIBAN := element.IBAN
		    		tmpIBAN	:=	substituerCaracteres{tmpIBAN, ' ', ''}
	    			tmpBIC := element.CodeBIC
	    			tmpEtranger := element.abIBANEtranger
	    			SI element.TitulaireCompte <> ? ALORS
	                    tmpTitulaire          :=          element.TitulaireCompte
	                FIN SI
	    		FIN SI
	    	FIN FAIRE

	        SI (tmpIBAN = ? OU taille{tmpIBAN} < 1) OU (tmpBIC = ? OU taille{tmpBIC} < 1) ALORS
				info{'Vous avez demandé le remboursement de ' + DDR_AG + ' euros sur la page 6 de votre CA12A.
La demande de remboursement implique l''obligation de renseigner l''IBAN et le code BIC depuis le contact "Banque" du Dossier Permanent, catégorie "Général".
Veuillez compléter correctement ces deux champs sur l''échelle des temps correspondante sur le premier compte de télérèglement EDITVA.'}
				SORTIR FAUX
			SINON
				SI tmpEtranger ALORS
					SI aujourdhui{} < 01.12.2017 ALORS
						info{'L''envoi en EDI des données bancaires étrangères sera accessible à compter du 01/12/2017.
Veuillez sélectionner un autre compte bancaire.'}
						SORTIR FAUX
					SINON
						SI controleIBANetranger {tmpIBAN} = FAUX	ALORS
		    				info{'Les renseignements concernant le compte 1 ne sont pas valides.
Veuillez contrôler la Clé IBAN ainsi que l''IBAN  pour ce contact Banque, depuis le Dossier Permanent, en vous positionnant sur l''échelle des temps correspondant à la période de votre déclaration.'}
		    				SORTIR FAUX
		    			FINSI   
		    		FIN SI
				SINON
					tmpCleIban := chaine{tmpIBAN, 1, 4}
					tmpEtab := chaine{tmpIBAN, 5, 9}
					tmpGuichet := chaine{tmpIBAN, 10, 14}
					tmpCompte := chaine{tmpIBAN, 15, 25}
					tmpCle := chaine{tmpIBAN, 26, 27}
					SI NON controleIBAN2{tmpEtab, tmpGuichet, tmpCompte, tmpCle, tmpCleIban} ALORS
	    				info{'Les renseignements concernant le compte 1 ne sont pas valides.
Veuillez contrôler la Clé IBAN ainsi que l''IBAN  pour ce contact Banque, depuis le Dossier Permanent, en vous positionnant sur l''échelle des temps correspondant à la période de votre déclaration.'}
	    				SORTIR FAUX
	    			FINSI   
	    		FIN SI

				-- contrôle du code BIC
	    		SI taille{tmpBIC} > 0 ALORS
	    			SI NON controleCodeBIC{tmpBIC} ALORS
	    				info{'Le code BIC renseigné pour le compte 1 n''est pas correct (il doit contenir 8 ou 11 caractères sans espace et en majuscule).'}
	    				SORTIR FAUX
	    			FIN SI
	    		FIN SI

	    		info {'Vous avez demandé le remboursement de ' + DDR_AG + ' euros sur la page 6 de votre CA12A.
Les coordonnées bancaires transmises sont celles du premier compte de télérèglement EDITVA : 
	    '  + tmpIBAN + '-' + tmpBIC}
	    
	    ----------------------------------------------------------
	    		-- Recherche du TitulaireCompte
	    		SI  taille{titulaireCpteRbmt}  < 3 ALORS
		    		titulaireTrouve := FAUX
		    		SI taille{tmpTitulaire} > 0 ALORS
		                titulaireCpteRbmt          :=          tmpTitulaire
		    			titulaireTrouve := VRAI
		    		FIN SI
		    
		    		SI NON titulaireTrouve ALORS
		    			titulaireCpteRbmt  := '?'
		    		FINSI
		    ----------------------------------------------------------
		    		titulaireCpteRbmt := saisir { 'Merci de nous indiquer le titulaire du compte ' + tmpIBAN + '-' + tmpBIC+'
pour la demande de remboursement.' , titulaireCpteRbmt }
		    		SI titulaireCpteRbmt = '' ALORS
		    			SORTIR FAUX
		    		FINSI
		    
		    		TANT QUE taille{titulaireCpteRbmt}  < 3 FAIRE
		    			titulaireCpteRbmt := saisir { 'Merci de nous indiquer le titulaire du compte ' + tmpIBAN + '-' + tmpBIC+'
pour la demande de remboursement.' , titulaireCpteRbmt }
		    			SI titulaireCpteRbmt = '' ALORS
		    				SORTIR FAUX
		    			FINSI
		    		FIN FAIRE

		    		-- remplissage du titulaire de la Banque
		    		SI taille{tmpTitulaire} < 1 ALORS
		    			info{'Le nom du titulaire que vous avez renseigné est reporté directement dans le contact banque pour la prochaine déclaration.'}
		    			tmpBanque.TitulaireCompte := titulaireCpteRbmt
    					commit{tmpBanque}
		    		FIN SI
		    	FINSI
		    FIN SI
    	FIN SI
    FIN SI
    
    tva_debutPeriode := dateDebutDate	--dateDebut	
    tva_finPeriode := dateFinDate	--dateFin
    -------------------------
    SI aujourdhui{} < 06.02.2025 ALORS
    	anneeTVA := '2024'
    SINON
    	anneeTVA := '2025'
    FINSI
    anneeTVA_SEQ := '2024'
    GUM := 'D00B'
    -------------------------
    liasse_tva := 'CA12'
    SI NON envoiCA12 ALORS
    	liasse_tva := '3517DDR'
    	paiementTLR := FAUX
    FIN SI    
    
    ExportFormatEDI {}
    
    SORTIR VRAI
###
'EDITVA_DDR' 'EDI'

    -------------------------
    SI aujourdhui{} < 06.02.2025 ALORS
    	anneeTVA := '2024'
    SINON
    	anneeTVA := '2025'
    FINSI
    anneeTVA_SEQ := '2024'
    GUM := 'D00B'
    -------------------------
    liasse_tva := '3517DDR'
    liasse_agr := ''	-- pour distinguer CA12A de CA12 dans DOC sans incidence sur nom fichier
    
    SI Euro <> ?	ALORS	tva_monnaieSouscription := 'EE'	FINSI
    SI Franc <> ?	ALORS	tva_monnaieSouscription := 'EF'	FINSI
    SI CptaFranc <> ?	ALORS	tva_monnaieSouscription := 'FF'	FINSI
    
    tva_fichierNom := dossier.CodeDossier  + '_'+liasse_tva
    
    libellePoster := fichierNom
    fichierTraite := fichierNom
    
	tva_fichierNom += '.ped'
    
    tiroir := 'xxxxxxxx'
    tiroir := chaine { tiroir, 1 , 8 , '00000000' }
    tiroir := chaine { tiroir, 2 , 1 , '' + mois {N_1+1}}
    tiroir := chaine { tiroir, 4 , 3 , '' + chaine { '' + annee {N_1+1} , 3 , 4  } }
    tiroir := chaine { tiroir, 6 , 5 , '' + mois { N}}
    tiroir := chaine { tiroir, 8 , 7 , '' +  chaine { '' + annee {N} , 3 , 4  } }
    
    tva_fichierCompta :=  dossier.repertoire + '/compta/doc/' + tiroir + '/editva/' + tva_fichierNom 						-- exemplaire stocké dans la compta
    tva_fichierTransmis :=  racine {} + '/bal/editva/' + tva_fichierNom				-- exemplaire à transmettre
    
    ouvrirEdi {tva_fichierCompta}
    
	SI NON pasDGI ALORS
		envoiOGA	:=	FAUX
		ExportTVA_entete {}		
		EDITVA_detailDDR {}
		ExportTVA_fin {}
	FIN SI
    
    SORTIR VRAI
###
'EDITVA_detail' 'EDI'

    |
    	i<Entier>compteur<Entier>compteur3<Entier>
    |
    
    -- ATTENTION ! Ajout d'une condition sur la donnée LA pour l'envoi forcé à 0 si GC=KD
    
    -- T-IDENTIF 2020
    donneeNADcomplet { 'T-IDENTIF' , 'AA' , '00' ,  chaine{tva_siret, 1, 9}, tva_nom, 'NS' , 'NS', '' , '' , tva_adresse1 , tva_adresse2, tva_adresse3, tva_ville, tva_codepostal, '', '' , '' } 	
    SI tva_dateCess <> ? ET cess  ALORS donneeDTM102 { 'T-IDENTIF' , 'BB' , '00' , tva_dateCess , '' } FINSI	
    SI estSocieteMere = VRAI   ALORS donneeCCI { 'T-IDENTIF' , 'BC' , '00' , 'X' , 'TBX' } FINSI	
    SI tva_debutPeriode <> ?   ALORS donneeDTM102 { 'T-IDENTIF' , 'CA' , '00' , tva_debutPeriode , '' } FINSI	
    SI tva_finPeriode <> ?   ALORS donneeDTM102 { 'T-IDENTIF' , 'CB' , '00' , tva_finPeriode , '' } FINSI	
    SI TLR1_IBAN  <> ? ET paiementTLR = VRAI ET TLR1 = VRAI  ALORS donneeFIIIBAN2 { 'T-IDENTIF' , 'GA' , '00' , TLR1_IBAN, TLR1_IBANetranger, TLR1_codeBIC , '' } FINSI	
    SI TLR2_IBAN  <> ? ET paiementTLR = VRAI ET TLR2 = VRAI  ALORS donneeFIIIBAN2 { 'T-IDENTIF' , 'GB' , '00' , TLR2_IBAN, TLR2_IBANetranger, TLR2_codeBIC , '' } FINSI	
    SI TLR3_IBAN  <> ? ET paiementTLR = VRAI ET TLR3 = VRAI  ALORS donneeFIIIBAN2 { 'T-IDENTIF' , 'GC' , '00' , TLR3_IBAN, TLR3_IBANetranger, TLR3_codeBIC , '' } FINSI	
    SI TLR1_montant <> ? ET paiementTLR = VRAI ET TLR1 = VRAI  ALORS donneeMOA2 { 'T-IDENTIF' , 'HA' , '00' , TLR1_montant , '' } FINSI	
    SI TLR2_montant <> ? ET paiementTLR = VRAI ET TLR2 = VRAI  ALORS donneeMOA2 { 'T-IDENTIF' , 'HB' , '00' , TLR2_montant , '' } FINSI	
    SI TLR3_montant <> ? ET paiementTLR = VRAI ET TLR3 = VRAI  ALORS donneeMOA2 { 'T-IDENTIF' , 'HC' , '00' , TLR3_montant , '' } FINSI	
    SI TLR1_reference <> ? ET paiementTLR = VRAI ET TLR1 = VRAI  ALORS donneeRFF { 'T-IDENTIF' , 'KA' , '00' , TLR1_reference , '' } FINSI	
    SI TLR2_reference <> ? ET paiementTLR = VRAI ET TLR2 = VRAI  ALORS donneeRFF { 'T-IDENTIF' , 'KB' , '00' , TLR2_reference , '' } FINSI	
    SI TLR3_reference <> ? ET paiementTLR = VRAI ET TLR3 = VRAI  ALORS donneeRFF { 'T-IDENTIF' , 'KC' , '00' , TLR3_reference , '' } FINSI	
    SI tva_refObligationFiscale <> ?   ALORS donneeRFF { 'T-IDENTIF' , 'KD' , '00' , tva_refObligationFiscale , '' } FINSI	
    SI tva_dateRedressement <> ?   ALORS donneeDTM102 { 'T-IDENTIF' , 'KE' , '00' , tva_dateRedressement , '' } FINSI	
    SI tva_echeance3514 <> ?   ALORS donneeDTM610 { 'T-IDENTIF' , 'KF' , '00' , tva_echeance3514 , '' } FINSI	
    
    -- 3517SCA12
    SI minuscule{CA12_2neant} = 'x'	ALORS 
    	donneeCCI { '3517SCA12' , 'SD' , '00' , CA12_2neant , 'TBX' } 
    SINON   	
		SI Comm1 <> ?  OU Comm2 <> ? OU Comm3 <> ? OU Comm4 <> ? OU Comm5 <> ?  ALORS
			donneeFTXcinq { '3517SCA12' , 'CA' , '00' , Comm1, Comm2 , Comm3 , Comm4 , Comm5 , '' }
		FIN SI

		SI mentionExpresseTvaMotif ALORS
			SI avecTVA_AcompteCP_AA ALORS donneeCCI { '3517SCA12' , 'AU' , '00' , 'X' , 'TBX' } FINSI
			SI avecTVA_TIC_AB ALORS donneeCCI { '3517SCA12' , 'BE' , '00' , 'X' , 'TBX' } FINSI
			SI avecTVA_Autres_AC ALORS donneeCCI { '3517SCA12' , 'BK' , '00' , 'X' , 'TBX' } FINSI
			donneeCCI { '3517SCA12' , 'VK' , '00' , 'X' , 'TBX' }
		FINSI	

		SI minuscule{CA12_AA} = 'x'	ALORS donneeCCI { '3517SCA12' , 'AA' , '00' , CA12_AA , 'TBX' } FINSI
		SI minuscule{CA12_AB} = 'x'	ALORS donneeCCI { '3517SCA12' , 'AB' , '00' , CA12_AB , 'TBX' }	FINSI
		SI minuscule{CA12_AC} = 'x'	ALORS donneeCCI { '3517SCA12' , 'AC' , '00' , CA12_AC , 'TBX' }	FINSI
		
		SI _4F <> ?   ALORS donneeMOA { '3517SCA12' , 'DA' , '00' , _4F , '' } FINSI
		SI _4L <> ?   ALORS donneeMOA { '3517SCA12' , 'DB' , '00' , _4L , '' } FINSI
		SI 3517S_CG <> ?   ALORS donneeMOA { '3517SCA12' , 'CG' , '00' , 3517S_CG , '' } FINSI
		donneeMOA { '3517SCA12' , 'EA' , '00' , B01 , 'FORCE' } 
		SI B02<> ?   ALORS donneeMOA { '3517SCA12' , 'EB' , '00' , B02 , '' } FINSI
		SI B03<> ?   ALORS donneeMOA { '3517SCA12' , 'EC' , '00' , B03 , '' } FINSI
		SI B04<> ?   ALORS donneeMOA { '3517SCA12' , 'ED' , '00' , B04 , '' } FINSI
		SI 3317S_EE <> ?   ALORS donneeMOA { '3517SCA12' , 'EE' , '00' , 3317S_EE , '' } FINSI
		SI B06<> ?   ALORS donneeMOA { '3517SCA12' , 'EF' , '00' , B06 , '' } FINSI
		SI B10<> ?   ALORS donneeMOA { '3517SCA12' , 'EG' , '00' , B10 , '' } FINSI
		SI BAC <> ?   ALORS donneeMOA { '3517SCA12' , 'EH' , '00' , BAC , '' } FINSI
		SI 3517S_EK<> ?   ALORS donneeMOA { '3517SCA12' , 'EK' , '00' , 3517S_EK , '' } FINSI
		SI B09<> ?   ALORS donneeMOA { '3517SCA12' , 'EJ' , '00' , B09 , '' } FINSI
		SI B11<> ?   ALORS donneeMOA { '3517SCA12' , 'EL' , '00' , B11 , '' } FINSI
		SI B12<> ?   ALORS donneeMOA { '3517SCA12' , 'EM' , '00' , B12 , '' } FINSI
		SI B13<> ?   ALORS donneeMOA { '3517SCA12' , 'EN' , '00' , B13 , '' } FINSI
		SI 3517S_ER<> ?   ALORS donneeMOA { '3517SCA12' , 'ER' , '00' , 3517S_ER , '' } FINSI
		SI B07 <> ?   ALORS donneeMOA { '3517SCA12' , 'EU' , '00' , B07 , '' } FINSI
		SI B08 <> ?   ALORS donneeMOA { '3517SCA12' , 'EV' , '00' , B08 , '' } FINSI
		SI B05A <> ?  ALORS donneeMOA { '3517SCA12' , 'EW' , '00' , B05A , '' } FINSI
		SI B04D <> ?   ALORS donneeMOA { '3517SCA12' , 'EX' , '00' , B04D , '' } FINSI
		SI BAA <> ?   ALORS donneeMOA { '3517SCA12' , 'EY' , '00' , BAA , '' } FINSI
		SI _AC <> ?   ALORS donneeMOA { '3517SCA12' , 'EZ' , '00' , _AC , '' } FINSI
		SI 3517S_AV<> ?   ALORS donneeMOA { '3517SCA12' , 'AV' , '00' , 3517S_AV , '' } FINSI
		SI 3517S_AW<> ?   ALORS donneeMOA { '3517SCA12' , 'AW' , '00' , 3517S_AW , '' } FINSI
		SI B08B <> ?   ALORS donneeMOA { '3517SCA12' , 'FC' , '00' , B08B , '' } FINSI
		SI _B08B <> ?   ALORS donneeMOA { '3517SCA12' , 'FD' , '00' , _B08B , '' } FINSI
		SI _06 <> ?   ALORS donneeMOA { '3517SCA12' , 'FF' , '00' , _06 , '' } FINSI
		SI _10 <> ?   ALORS donneeMOA { '3517SCA12' , 'FG' , '00' , _10 , '' } FINSI
		SI _09 <> ?   ALORS donneeMOA { '3517SCA12' , 'FJ' , '00' , _09 , '' } FINSI
		SI 3517S_FK<> ?   ALORS donneeMOA { '3517SCA12' , 'FK' , '00' , 3517S_FK , '' } FINSI
		SI _11 <> ?   ALORS donneeMOA { '3517SCA12' , 'FL' , '00' , _11 , '' } FINSI
		SI _12 <> ?   ALORS donneeMOA { '3517SCA12' , 'FM' , '00' , _12 , '' } FINSI
		SI _13 <> ?   ALORS donneeMOA { '3517SCA12' , 'FN' , '00' , _13 , '' } FINSI
		SI _16 <> ?   ALORS donneeMOA { '3517SCA12' , 'FR' , '00' , _16 , '' } FINSI
		SI _07 <> ?   ALORS donneeMOA { '3517SCA12' , 'FU' , '00' , _07 , '' } FINSI
		SI _08 <> ?   ALORS donneeMOA { '3517SCA12' , 'FV' , '00' , _08 , '' } FINSI
		SI _05A <> ?  ALORS donneeMOA { '3517SCA12' , 'FW' , '00' , _05A , '' } FINSI
		SI _AA <> ?   ALORS donneeMOA { '3517SCA12' , 'FY' , '00' , _AA , '' } FINSI
		SI _17 <> ?   ALORS donneeMOA { '3517SCA12' , 'GA' , '00' , _17 , '' } FINSI
		SI _18 <> ?   ALORS donneeMOA { '3517SCA12' , 'GB' , '00' , _18 , '' } FINSI
		SI _19 <> ?   ALORS donneeMOA { '3517SCA12' , 'GC' , '00' , _19 , '' } FINSI
		SI B06C <> ?  ALORS donneeMOA { '3517SCA12' , 'GF' , '00' , B06C , '' } FINSI
		SI 3517S_GG<> ?   ALORS donneeMOA { '3517SCA12' , 'GG' , '00' , 3517S_GG , '' } FINSI
		SI _06C <> ?  ALORS donneeMOA { '3517SCA12' , 'GH' , '00' , _06C , '' } FINSI
		SI _20 <> ?   ALORS donneeMOA { '3517SCA12' , 'HA' , '00' , _20 , '' } FINSI
		SI _21 <> ?   ALORS donneeMOA { '3517SCA12' , 'HB' , '00' , _21 , '' } FINSI
		SI _22 <> ?   ALORS donneeMOA { '3517SCA12' , 'HC' , '00' , _22 , '' } FINSI
		SI _23 <> ?   ALORS donneeMOA { '3517SCA12' , 'JA' , '00' , _23 , '' } FINSI
		SI Pourc <> ?   ALORS donneePCD { '3517SCA12' , 'JB' , '00' , Pourc , '' } FINSI
		SI _24 <> ?   ALORS donneeMOA { '3517SCA12' , 'KA' , '00' , _24 , '' } FINSI
		SI _25 <> ?   ALORS donneeMOA { '3517SCA12' , 'KB' , '00' , _25 , '' } FINSI
		SI 3517S_KC<> ?   ALORS donneeMOA { '3517SCA12' , 'KC' , '00' , 3517S_KC , '' } FINSI
		SI _26 <> ?   ALORS donneeMOA { '3517SCA12' , 'KD' , '00' , _26 , '' } FINSI
		SI 3517S_KN<> ?   ALORS donneeMOA { '3517SCA12' , 'KN' , '00' , 3517S_KN , '' } FINSI
	    -- envoi forcé à 0 de LA si GC=KD
	    SI _19 <> ? ET _19 = _26 ALORS
	    	donneeMOA { '3517SCA12' , 'LA' , '00' , _28 , 'FORCE' }
	    SINON
	    	SI _28 <> ?   ALORS donneeMOA { '3517SCA12' , 'LA' , '00' , _28 , '' } FINSI	
	    FIN SI

		SI _29 <> ?   ALORS donneeMOA { '3517SCA12' , 'LB' , '00' , _29 , '' } FINSI
		SI _30 <> ?   ALORS donneeMOA { '3517SCA12' , 'MA' , '00' , _30 , '' } FINSI
		SI ac11 <> ?   ALORS donneeMOA { '3517SCA12' , 'MD' , '00' , ac11 , '' } FINSI
		SI ac21 <> ?   ALORS donneeMOA { '3517SCA12' , 'ME' , '00' , ac21 , '' } FINSI
		SI ac12 <> ?   ALORS donneeMOA { '3517SCA12' , 'MF' , '00' , ac12 , '' } FINSI
		SI ac22 <> ?   ALORS donneeMOA { '3517SCA12' , 'MG' , '00' , ac22 , '' } FINSI
		SI actot1 <> ?   ALORS donneeMOA { '3517SCA12' , 'MM' , '00' , actot1 , '' } FINSI
		SI actot2 <> ?   ALORS donneeMOA { '3517SCA12' , 'MN' , '00' , actot2 , '' } FINSI
		SI _33 <> ?   ALORS donneeMOA { '3517SCA12' , 'NA' , '00' , _33 , '' } FINSI
		SI _34 <> ?   ALORS donneeMOA { '3517SCA12' , 'NB' , '00' , _34 , '' } FINSI

	    SI (_33 = ? OU _33 = 0) ET (_34 = ? OU _34 = 0) ALORS
	    	donneeMOA { '3517SCA12' , 'NA' , '00' , _33 , 'FORCE' } 
	    FIN SI

		SI _35 <> ?   ALORS donneeMOA { '3517SCA12' , 'NC' , '00' , _35 , '' } FINSI
		SI 3517S_NS <> ?   ALORS donneeQTYentier { '3517SCA12' , 'NS' , '00' , 3517S_NS , '' } FINSI
		SI 3517S_UF <> ?   ALORS donneeQTYentier { '3517SCA12' , 'UF' , '00' , 3517S_UF , '' } FINSI
		SI 3517S_NQ <> ?   ALORS donneeQTYentier { '3517SCA12' , 'NQ' , '00' , 3517S_NQ , '' } FINSI
		SI _36 <> ?   ALORS donneeMOA { '3517SCA12' , 'QA' , '00' , _36 , '' } FINSI
		SI _44 <> ?   ALORS donneeMOA { '3517SCA12' , 'QH' , '00' , _44 , '' } FINSI

		SI 3517S_TL <> ?   ALORS donneeMOA { '3517SCA12' , 'TL' , '00' , 3517S_TL , '' } FINSI
		SI 3517S_UL <> ?   ALORS donneeMOA { '3517SCA12' , 'UL' , '00' , 3517S_UL , '' } FINSI
			
		i := 1
		TANT QUE i <= 4 FAIRE
			SI etat!{'3517S_BU'+i}chaine <> '?' ALORS donneeCCI { '3517SCA12' , 'BU' , ''+i ,  etat!{'3517S_BU'+i}chaine , 'PE1' } FINSI
			SI etat!{'3517S_BV'+i}entier <> ? ALORS donneeQTYentier { '3517SCA12' , 'BV' , ''+i ,  etat!{'3517S_BV'+i}entier , '' } FINSI	
			SI etat!{'3517S_BL'+i}monnaie <> ?   ALORS donneeMOA { '3517SCA12' , 'BL' , ''+i , etat!{'3517S_BL'+i}monnaie , '' } FINSI	
			SI etat!{'3517S_BM'+i}monnaie <> ?   ALORS donneeMOA { '3517SCA12' , 'BM' , ''+i , etat!{'3517S_BM'+i}monnaie , '' } FINSI
			SI etat!{'3517S_BN'+i}monnaie <> ?   ALORS donneeMOA { '3517SCA12' , 'BN' , ''+i , etat!{'3517S_BN'+i}monnaie , '' } FINSI
			SI etat!{'3517S_BP'+i}monnaie <> ?   ALORS donneeMOA { '3517SCA12' , 'BP' , ''+i , etat!{'3517S_BP'+i}monnaie , '' } FINSI
			SI etat!{'3517S_BQ'+i}monnaie <> ?   ALORS donneeMOA { '3517SCA12' , 'BQ' , ''+i , etat!{'3517S_BQ'+i}monnaie , '' } FINSI
			SI etat!{'3517S_BR'+i}monnaie <> ?   ALORS donneeMOA { '3517SCA12' , 'BR' , ''+i , etat!{'3517S_BR'+i}monnaie , '' } FINSI
			i += 1
		FIN FAIRE  
			
		SI 3517S_BS <> ?   ALORS donneeMOA { '3517SCA12' , 'BS' , '00' , 3517S_BS , '' } FINSI
		SI 3517S_BT <> ?   ALORS donneeMOA { '3517SCA12' , 'BT' , '00' , 3517S_BT , '' } FINSI
		
		SI 3517S_CJ <> ?   ALORS donneeMOA { '3517SCA12' , 'CJ' , '00' , 3517S_CJ , '' } FINSI
		SI 3517S_NR <> ?   ALORS donneeMOA { '3517SCA12' , 'NR' , '00' , 3517S_NR , '' } FINSI

		SI 3517S_XF <> ?   ALORS donneeMOA { '3517SCA12' , 'XF' , '00' , 3517S_XF , '' } FINSI
		SI 3517S_BG <> ?   ALORS donneeMOA { '3517SCA12' , 'BG' , '00' , 3517S_BG , '' } FINSI

		SI 3517S_XK <> ?   ALORS donneeMOA { '3517SCA12' , 'XK' , '00' , 3517S_XK , '' } FINSI
		SI 3517S_CL <> ?   ALORS donneeMOA { '3517SCA12' , 'CL' , '00' , 3517S_CL , '' } FINSI
		SI 3517S_DD <> ?   ALORS donneeMOA { '3517SCA12' , 'DD' , '00' , 3517S_DD , '' } FINSI

		SI 3517S_XH <> ?   ALORS donneeMOA { '3517SCA12' , 'XH' , '00' , 3517S_XH , '' } FINSI
		SI 3517S_TE <> ?   ALORS donneeMOA { '3517SCA12' , 'TE' , '00' , 3517S_TE , '' } FINSI
		SI 3517S_TF <> ?   ALORS donneeMOA { '3517SCA12' , 'TF' , '00' , 3517S_TF , '' } FINSI
		SI 3517S_HG <> ?   ALORS donneeMOA { '3517SCA12' , 'HG' , '00' , 3517S_HG , '' } FINSI

		-- Si les données XH/MOA et XG/MOA sont renseignées et que JG/MOA est vide alors on envoie 0, le zéro dans le fichier est suivi de :::: 62
		SI NON 3517S_JG = ? ALORS
			donneeMOA { '3517SCA12' , 'JG' , '00' , 3517S_JG , 'FORCE' }
		SINON
			SI (NON 3517S_XH = ?) OU (NON 3517S_XG = ?) ALORS
				donneeMOA { '3517SCA12' , 'JG' , '00' , 0.0 , 'FORCE' }
			FINSI
		FINSI

		SI 3517S_NT <> ?   ALORS donneeMOA { '3517SCA12' , 'NT' , '00' , 3517S_NT , '' } FINSI
		SI 3517S_TG <> ?   ALORS donneeMOA { '3517SCA12' , 'TG' , '00' , 3517S_TG , '' } FINSI
		SI 3517S_UG <> ?   ALORS donneeMOA { '3517SCA12' , 'UG' , '00' , 3517S_UG , '' } FINSI
		SI 3517S_XG <> ?   ALORS donneeMOA { '3517SCA12' , 'XG' , '00' , 3517S_XG , '' } FINSI

		SI 3517S_GL <> ?   ALORS donneeMOA { '3517SCA12' , 'GL' , '00' , 3517S_GL , '' } FINSI
		SI 3517S_HL <> ?   ALORS donneeMOA { '3517SCA12' , 'HL' , '00' , 3517S_HL , '' } FINSI
		SI 3517S_JL <> ?   ALORS donneeMOA { '3517SCA12' , 'JL' , '00' , 3517S_JL , '' } FINSI

		SI 3517S_LH <> ?   ALORS donneeMOA { '3517SCA12' , 'LH' , '00' , 3517S_LH , '' } FINSI
		
		SI 3517S_JG + 3517S_XG - _33 > 0 ALORS -- Pour que la correction passe au moment de l'envoi EDI si la liasse est verrouillée
			3517S_BH := 3517S_JG + 3517S_XG - _33
		SINON
			3517S_BH := 0
		FINSI
		SI 3517S_BH <> ?   ALORS donneeMOA { '3517SCA12' , 'BH' , '00' , 3517S_BH , '' } FINSI
		SI 3517S_LG <> ?   ALORS donneeMOA { '3517SCA12' , 'LG' , '00' , 3517S_LG , '' } FINSI
		SI 3517S_BJ <> ?   ALORS donneeMOA { '3517SCA12' , 'BJ' , '00' , 3517S_BJ , '' } FINSI

		SI _37 <> ?   ALORS donneeMOA { '3517SCA12' , 'QS' , '00' , _37 , '' } FINSI
		SI _49 <> ?   ALORS donneeMOA { '3517SCA12' , 'RA' , '00' , _49 , '' } FINSI
		SI _50 <> ?   ALORS donneeMOA { '3517SCA12' , 'RB' , '00' , _50 , '' } FINSI
		SI _51 <> ?   ALORS donneeMOA { '3517SCA12' , 'RC' , '00' , _51 , '' } FINSI
		SI prochAc <> ?   ALORS donneeMOA { '3517SCA12' , 'RE' , '00' , prochAc , '' } FINSI
		
		SI 3517S_NX <> ?   ALORS donneeMOA { '3517SCA12' , 'NX' , '00' , 3517S_NX , '' } FINSI
		SI 3517S_LL <> ?   ALORS donneeMOA { '3517SCA12' , 'LL' , '00' , 3517S_LL , '' } FINSI
		
		SI _42 <> ?   ALORS donneeMOA { '3517SCA12' , 'RF' , '00' , _42 , '' } FINSI
		SI _43 <> ?   ALORS donneeMOA { '3517SCA12' , 'RG' , '00' , _43 , '' } FINSI
		SI _4K <> ?   ALORS donneeMOA { '3517SCA12' , 'RN' , '00' , _4K , '' } FINSI
		SI _54 <> ?   ALORS donneeMOA { '3517SCA12' , 'SA' , '00' , _54 , '' } FINSI
		SI _55 <> ?   ALORS donneeMOA { '3517SCA12' , 'SB' , '00' , _55 , '' } FINSI
		SI _56 <> ?   ALORS donneeMOA { '3517SCA12' , 'SC' , '00' , _56 , '' } FINSI
		SI CA12_2neant <> ?  ALORS donneeCCI { '3517SCA12' , 'SD' , '00' , 'X' , 'TBX' } FINSI

		i := 1
		TANT QUE i <= 14 FAIRE

			SI i <= 9 ALORS
				SI etat!{'3517S_SE'+i}monnaie <> ?   ALORS donneeMOA { '3517SCA12' , 'SE' , ''+i , etat!{'3517S_SE'+i}monnaie , '' } FINSI
				SI etat!{'3517S_SF'+i}chaine <> ?   ALORS donneeCCI { '3517SCA12' , 'SF' , ''+i ,  etat!{'3517S_SF'+i}chaine , 'TDT' } FINSI
			FIN SI

			SI i <= 10 ALORS
				SI etat!{'3517S_AB'+i}monnaie <> ?   ALORS donneeMOA { '3517SCA12' , 'AB' , ''+i , etat!{'3517S_AB'+i}monnaie , '' } FINSI
				SI etat!{'3517S_AC'+i}chaine <> ?   ALORS donneeCCI { '3517SCA12' , 'AC' , ''+i ,  chaine{etat!{'3517S_AC'+i}chaine,1,2} , 'COM' } FINSI
				SI etat!{'3517S_AD'+i}reel <> ?   ALORS donneeQTY { '3517SCA12' , 'AD' , ''+i ,  etat!{'3517S_AD'+i}reel , '' } FINSI
			FIN SI

			i += 1
		FIN FAIRE

		i := 4
		compteur := 10
		compteur3 := 11
		TANT QUE i <= 114 FAIRE

			SI ca12_ext1 ALORS
				SI etat!{'3310A_PH'+i}monnaie <> ?   ALORS donneeMOA { '3517SCA12' , 'SE' , ''+compteur , etat!{'3310A_PH'+i}monnaie , '' } FINSI
				SI etat!{'3310A_PJ'+i}chaine <> ?   ALORS donneeCCI { '3517SCA12' , 'SF' , ''+compteur ,  etat!{'3310A_PJ'+i}chaine , 'TDT' } FINSI
			FINSI

			SI ca12_ext2 ET i <= 65 ALORS
				SI etat!{'3310A_QB'+i}monnaie <> ?   ALORS donneeMOA { '3517SCA12' , 'AB' , ''+compteur3 , etat!{'3310A_QB'+i}monnaie , '' } FINSI
				SI etat!{'3310A_QC'+i}chaine <> ?   ALORS donneeCCI { '3517SCA12' , 'AC' , ''+compteur3 ,  chaine{etat!{'3310A_QC'+i}chaine,1,2} , 'COM' } FINSI
				SI etat!{'3310A_QD'+i}reel <> ?   ALORS donneeQTY { '3517SCA12' , 'AD' , ''+compteur3 ,  etat!{'3310A_QD'+i}reel , '' } FINSI
			FINSI

			i += 1
			compteur += 1
			compteur3 += 1
		FIN FAIRE

		SI 3517S_SR <> ?   ALORS donneeMOA { '3517SCA12' , 'SR' , '00' , 3517S_SR , '' } FINSI
		SI 3517S_ST <> ?   ALORS donneeMOA { '3517SCA12' , 'ST' , '00' , 3517S_ST , '' } FINSI
		SI 3517S_SQ <> ?   ALORS donneeMOA { '3517SCA12' , 'SQ' , '00' , 3517S_SQ , '' } FINSI
		SI 3517S_SS <> ?   ALORS donneeMOA { '3517SCA12' , 'SS' , '00' , 3517S_SS , '' } FINSI

		SI 3517S_SW <> ?   ALORS donneeQTY { '3517SCA12' , 'SW' , '00' , 3517S_SW , '' } FINSI
		SI 3517S_XA <> ?   ALORS donneeQTY { '3517SCA12' , 'XA' , '00' , 3517S_XA , '' } FINSI
		SI 3517S_XB <> ?   ALORS donneeQTY { '3517SCA12' , 'XB' , '00' , 3517S_XB , '' } FINSI

		SI 3517S_SV <> ?   ALORS donneeMOA { '3517SCA12' , 'SV' , '00' , 3517S_SV , '' } FINSI
		SI 3517S_SX <> ?   ALORS donneeMOA { '3517SCA12' , 'SX' , '00' , 3517S_SX , '' } FINSI
		SI 3517S_RD <> ?   ALORS donneeMOA { '3517SCA12' , 'RD' , '00' , 3517S_RD , '' } FINSI

		SI 3517S_SH <> ?   ALORS donneeMOA { '3517SCA12' , 'SH' , '00' , 3517S_SH , '' } FINSI
		SI 3517S_AE <> ?   ALORS donneeMOA { '3517SCA12' , 'AE' , '00' , 3517S_AE , '' } FINSI

		SI 3517S_SN <> ?   ALORS donneeQTY { '3517SCA12' , 'SN' , '00' , 3517S_SN , '' } FINSI
		SI 3517S_SP <> ?   ALORS donneeQTY { '3517SCA12' , 'SP' , '00' , 3517S_SP , '' } FINSI
		SI cocheJui <> ?   ALORS donneeCCI { '3517SCA12' , 'TB' , '00' , 'X' , 'TBX' } FINSI
		SI cocheDec <> ?   ALORS donneeCCI { '3517SCA12' , 'TD' , '00' , 'X' , 'TBX' } FINSI
		SI anJui <> ?   ALORS donneeDTM602E { '3517SCA12' , 'UB' , '00' , anJui , '' } FINSI
		SI anDec <> ?   ALORS donneeDTM602E { '3517SCA12' , 'UD' , '00' , anDec , '' } FINSI
		donneeMOA { '3517SCA12' , 'VA' , '00' , _57 , 'FORCE' } 
		SI _46 <> ?   ALORS donneeMOA { '3517SCA12' , 'VC' , '00' , _46 , '' } FINSI
		SI _4B <> ?   ALORS donneeMOA { '3517SCA12' , 'VE' , '00' , _4B , '' } FINSI
		SI _4C <> ?   ALORS donneeMOA { '3517SCA12' , 'VF' , '00' , _4C , '' } FINSI
		SI PaiImp <> ?   ALORS donneeCCI { '3517SCA12' , 'VL' , '00' , 'X' , 'TBX' } FINSI
		SI B04B <> ?   ALORS donneeMOA { '3517SCA12' , 'VM' , '00' , B04B , '' } FINSI
		SI BAB <> ?   ALORS donneeMOA { '3517SCA12' , 'VN' , '00' , BAB , '' } FINSI
		SI _AB <> ?   ALORS donneeMOA { '3517SCA12' , 'VP' , '00' , _AB , '' } FINSI
		SI _AD <> ?   ALORS donneeMOA { '3517SCA12' , 'VS' , '00' , _AD , '' } FINSI
		SI _AE <> ?   ALORS donneeMOA { '3517SCA12' , 'VT' , '00' , _AE , '' } FINSI
		SI _61 <> ?   ALORS donneeMOA { '3517SCA12' , 'VW' , '00' , _61 , '' } FINSI
		SI _62 <> ?   ALORS donneeMOA { '3517SCA12' , 'VX' , '00' , _62 , '' } FINSI
		SI _63 <> ?   ALORS donneeMOA { '3517SCA12' , 'VY' , '00' , _63 , '' } FINSI
		SI _64 <> ?   ALORS donneeMOA { '3517SCA12' , 'VZ' , '00' , _64 , '' } FINSI
		SI _60A <> ?   ALORS donneeMOA { '3517SCA12' , 'WB' , '00' , _60A , '' } FINSI
		SI _60B <> ?   ALORS donneeMOA { '3517SCA12' , 'WC' , '00' , _60B , '' } FINSI
		SI _65 <> ?   ALORS donneeMOA { '3517SCA12' , 'WD' , '00' , _65 , '' } FINSI
		SI _66 <> ?   ALORS donneeMOA { '3517SCA12' , 'WE' , '00' , _66 , '' } FINSI
		SI _67 <> ?   ALORS donneeMOA { '3517SCA12' , 'WF' , '00' , _67 , '' } FINSI
		SI _68 <> ?   ALORS donneeMOA { '3517SCA12' , 'WG' , '00' , _68 , '' } FINSI
		SI _69 <> ?   ALORS donneeMOA { '3517SCA12' , 'WH' , '00' , _69 , '' } FINSI
		SI _70 <> ?   ALORS donneeMOA { '3517SCA12' , 'WJ' , '00' , _70 , '' } FINSI
		SI _71 <> ?   ALORS donneeMOA { '3517SCA12' , 'WK' , '00' , _71 , '' } FINSI
		SI _72 <> ?   ALORS donneeMOA { '3517SCA12' , 'WL' , '00' , _72 , '' } FINSI
		SI _73 <> ?   ALORS donneeMOA { '3517SCA12' , 'WM' , '00' , _73 , '' } FINSI
		SI _74 <> ?   ALORS donneeMOA { '3517SCA12' , 'WN' , '00' , _74 , '' } FINSI
		SI _75 <> ?   ALORS donneeMOA { '3517SCA12' , 'WP' , '00' , _75 , '' } FINSI
		SI _76 <> ?   ALORS donneeMOA { '3517SCA12' , 'AL' , '00' , _76 , '' } FINSI
		SI _77 <> ?   ALORS donneeMOA { '3517SCA12' , 'AM' , '00' , _77 , '' } FINSI
		SI _78 <> ?   ALORS donneeMOA { '3517SCA12' , 'AN' , '00' , _78 , '' } FINSI
		SI 3517S_AP <> ?   ALORS donneeMOA { '3517SCA12' , 'AP' , '00' , 3517S_AP , '' } FINSI
		SI 3517S_AQ <> ?   ALORS donneeMOA { '3517SCA12' , 'AQ' , '00' , 3517S_AQ , '' } FINSI
		SI 3517S_AR <> ?   ALORS donneeMOA { '3517SCA12' , 'AR' , '00' , 3517S_AR , '' } FINSI
		SI 3517S_AT <> ?   ALORS donneeMOA { '3517SCA12' , 'AT' , '00' , 3517S_AT , '' } FINSI
		SI 3517S_AA <> ?   ALORS donneeMOA { '3517SCA12' , 'AA' , '00' , 3517S_AA , '' } FINSI
		SI 3517S_AF <> ?   ALORS donneeMOA { '3517SCA12' , 'AF' , '00' , 3517S_AF , '' } FINSI
		SI 3517S_SU <> ?   ALORS donneeMOA { '3517SCA12' , 'SU' , '00' , 3517S_SU , '' } FINSI
		SI _79 <> ?   ALORS donneeMOA { '3517SCA12' , 'WT' , '00' , _79 , '' } FINSI
		SI _80 <> ?   ALORS donneeMOA { '3517SCA12' , 'WU' , '00' , _80 , '' } FINSI
		SI 3517S_ZZ <> ?   ALORS donneeMOA { '3517SCA12' , 'ZZ' , '00' , 3517S_ZZ , '' } FINSI
		SI _69BI <> ?   ALORS donneeMOA { '3517SCA12' , 'WZ' , '00' , _69BI , '' } FINSI
		SI 3317S_YA <> ?   ALORS donneeMOA { '3517SCA12' , 'YA' , '00' , 3317S_YA , '' } FINSI
		SI 3317S_YB <> ?   ALORS donneeMOA { '3517SCA12' , 'YB' , '00' , 3317S_YB , '' } FINSI
		SI 3517S_YC <> ?   ALORS donneeMOA { '3517SCA12' , 'YC' , '00' , 3517S_YC , '' } FINSI
		SI _70BI <> ?   ALORS donneeMOA { '3517SCA12' , 'ZA' , '00' , _70BI , '' } FINSI
		SI _47 <> ?   ALORS donneeMOA { '3517SCA12' , 'ZB' , '00' , _47 , '' } FINSI
		SI 3317S_ZG <> ?   ALORS donneeMOA { '3517SCA12' , 'ZG' , '00' , 3317S_ZG , '' } FINSI
		SI 3317S_ZH <> ?   ALORS donneeMOA { '3517SCA12' , 'ZH' , '00' , 3317S_ZH , '' } FINSI
		SI 3317S_ZJ <> ?   ALORS donneeQTY { '3517SCA12' , 'ZJ' , '00' , 3317S_ZJ , '' } FINSI
		SI 3317S_ZL <> ?   ALORS donneeMOA { '3517SCA12' , 'ZL' , '00' , 3317S_ZL , '' } FINSI
		SI 3317S_ZM <> ?   ALORS donneeMOA { '3517SCA12' , 'ZM' , '00' , 3317S_ZM , '' } FINSI
		SI 3317S_ZN <> ?   ALORS donneeMOA { '3517SCA12' , 'AS' , '00' , 3317S_ZN , '' } FINSI
		SI 3317S_ZP <> ?   ALORS donneeMOA { '3517SCA12' , 'ZP' , '00' , 3317S_ZP , '' } FINSI
		SI 3517S_ZR <> ?   ALORS donneeMOA { '3517SCA12' , 'ZR' , '00' , 3517S_ZR , '' } FINSI
		SI 3517S_ZS <> ?   ALORS donneeMOA { '3517SCA12' , 'ZS' , '00' , 3517S_ZS , '' } FINSI
		
		-- Taxe à l'essieu
		SI 3317S_AZ <> ?   ALORS donneeQTYentier { '3517SCA12' , 'AZ' , '00' , 3317S_AZ , '' } FINSI
		SI 3317S_BA <> ?   ALORS donneeQTYentier { '3517SCA12' , 'BA' , '00' , 3317S_BA , '' } FINSI
		SI 3317S_BB <> ?   ALORS donneeQTYentier { '3517SCA12' , 'BB' , '00' , 3317S_BB , '' } FINSI
		SI 3317S_CB <> ?   ALORS donneeQTYentier { '3517SCA12' , 'CB' , '00' , 3317S_CB , '' } FINSI
		SI 3317S_NN <> ?   ALORS donneeQTYentier { '3517SCA12' , 'NN' , '00' , 3317S_NN , '' } FINSI
		
		SI 3317S_BC <> ?   ALORS donneeQTYentier { '3517SCA12' , 'BC' , '00' , 3317S_BC , '' } FINSI
		SI 3317S_CC <> ?   ALORS donneeQTYentier { '3517SCA12' , 'CC' , '00' , 3317S_CC , '' } FINSI
		SI 3317S_JC <> ?   ALORS donneeQTYentier { '3517SCA12' , 'JC' , '00' , 3317S_JC , '' } FINSI
		SI 3317S_LC <> ?   ALORS donneeQTYentier { '3517SCA12' , 'LC' , '00' , 3317S_LC , '' } FINSI
		SI 3317S_NP <> ?   ALORS donneeQTYentier { '3517SCA12' , 'NP' , '00' , 3317S_NP , '' } FINSI
		
		SI 3317S_AG <> ?   ALORS donneeMOA { '3517SCA12' , 'AG' , '00' , 3317S_AG , '' } FINSI
		SI 3317S_AH <> ?   ALORS donneeMOA { '3517SCA12' , 'AH' , '00' , 3317S_AH , '' } FINSI
		SI 3317S_AJ <> ?   ALORS donneeMOA { '3517SCA12' , 'AJ' , '00' , 3317S_AJ , '' } FINSI
		SI 3317S_AK <> ?   ALORS donneeMOA { '3517SCA12' , 'AK' , '00' , 3317S_AK , '' } FINSI
		SI 3317S_AY <> ?   ALORS donneeMOA { '3517SCA12' , 'AY' , '00' , 3317S_AY , '' } FINSI
		
		SI 3317S_AX <> ?   ALORS donneeMOA { '3517SCA12' , 'AX' , '00' , 3317S_AX , '' } FINSI
		
		-- Taxe sur les produits phytopharmaceutiques
		SI 3517S_CE <> ?   ALORS donneeMOA { '3517SCA12' , 'CE' , '00' , 3517S_CE , '' } FINSI
		SI 3517S_HE <> ?   ALORS donneeMOA { '3517SCA12' , 'HE' , '00' , 3517S_HE , '' } FINSI
		SI 3517S_JE <> ?   ALORS donneeMOA { '3517SCA12' , 'JE' , '00' , 3517S_JE , '' } FINSI
		
		-- Taxe sur les émissions de CO2
		SI 3517S_BF <> ?   ALORS donneeQTYentier { '3517SCA12' , 'BF' , '00' , 3517S_BF , '' } FINSI
		SI 3517S_CF <> ?   ALORS donneeQTYentier { '3517SCA12' , 'CF' , '00' , 3517S_CF , '' } FINSI
		SI 3517S_HF <> ?   ALORS donneeQTYentier { '3517SCA12' , 'HF' , '00' , 3517S_HF , '' } FINSI
		SI 3517S_JF <> ?   ALORS donneeQTYentier { '3517SCA12' , 'JF' , '00' , 3517S_JF , '' } FINSI
		SI 3517S_LF <> ?   ALORS donneeQTYentier { '3517SCA12' , 'LF' , '00' , 3517S_LF , '' } FINSI

		SI 3517S_BF > 0 OU 3517S_CF > 0 OU 3517S_HF > 0 ALORS
			donneeMOA { '3517SCA12' , 'BD' , '00' , 3517S_BD , 'FORCE' }
			donneeMOA { '3517SCA12' , 'XC' , '00' , 3517S_XC , 'FORCE' }	
		FINSI
		
		SI 3517S_UE <> ?   ALORS donneeMOA { '3517SCA12' , 'UE' , '00' , 3517S_UE , '' } FINSI
		SI 3517S_XE <> ?   ALORS donneeMOA { '3517SCA12' , 'XE' , '00' , 3517S_XE , '' } FINSI

		EDITVA_detail_3310TIC_FP{}
	FINSI

###
'EDITVA_detailDDR' 'EDI'
    
    -- T-IDENTIF 2015
    donneeNADcomplet { 'T-IDENTIF' , 'AA' , '00' ,  chaine{tva_siret, 1, 9}, tva_nom, 'NS' , 'NS', '' , '' , tva_adresse1 , tva_adresse2, tva_adresse3, tva_ville, tva_codepostal, '', '' , '' } 	
    SI tva_dateCess <> ? ET cess  ALORS donneeDTM102 { 'T-IDENTIF' , 'BB' , '00' , tva_dateCess , '' } FINSI	
    SI estSocieteMere = VRAI   ALORS donneeCCI { 'T-IDENTIF' , 'BC' , '00' , 'X' , 'TBX' } FINSI	
    SI tva_debutPeriode <> ?   ALORS donneeDTM102 { 'T-IDENTIF' , 'CA' , '00' , tva_debutPeriode , '' } FINSI	
    SI tva_finPeriode <> ?   ALORS donneeDTM102 { 'T-IDENTIF' , 'CB' , '00' , tva_finPeriode , '' } FINSI	
    SI tva_refObligationFiscale <> ?   ALORS donneeRFF { 'T-IDENTIF' , 'KD' , '00' , tva_refObligationFiscale , '' } FINSI	
    SI tva_dateRedressement <> ?   ALORS donneeDTM102 { 'T-IDENTIF' , 'KE' , '00' , tva_dateRedressement , '' } FINSI	
    SI tva_echeance3514 <> ?   ALORS donneeDTM610 { 'T-IDENTIF' , 'KF' , '00' , tva_echeance3514 , '' } FINSI	
    
    --3517DDR 2015
    SI DDR_AA <> ?   ALORS donneeMOA { '3517DDR' , 'AA' , '00' , DDR_AA , '' } FINSI	
    SI DDR_AB <> ?   ALORS donneeMOA { '3517DDR' , 'AB' , '00' , DDR_AB , '' } FINSI	
    SI DDR_AC <> ?   ALORS donneeMOA { '3517DDR' , 'AC' , '00' , DDR_AC , '' } FINSI	
    SI DDR_AD <> ?   ALORS donneeMOA { '3517DDR' , 'AD' , '00' , DDR_AD , '' } FINSI	
    SI DDR_AE <> ?   ALORS donneeMOA { '3517DDR' , 'AE' , '00' , DDR_AE , '' } FINSI	
    SI DDR_AFNOM <> ?   ALORS donneeNADsignature { '3517DDR' , 'AF' , '00' , DDR_AFLIEU, DDR_AFNOM, DDR_AFQUALITE , '' } FINSI	
    SI DDR_AG <> ?   ALORS donneeMOA { '3517DDR' , 'AG' , '00' , DDR_AG , '' } FINSI	
    SI DDR_AH <> ?   ALORS donneeCCI { '3517DDR' , 'AH' , '00' , 'X' , 'TBX' } FINSI	
    SI DDR_AJ <> ?   ALORS donneeCCI { '3517DDR' , 'AJ' , '00' , 'X' , 'TBX' } FINSI	
    SI DDR_AG <> ?   ALORS donneeFIIIBANtitulaire { '3517DDR' , 'AK' , '00' , TLR1_etab , TLR1_guichet , TLR1_compte , TLR1_cle, titulaireCpteRbmt, TLR1_cleIBAN, TLR1_IBAN, TLR1_codeBIC , '' } FINSI	
    SI commentaireDDR <> ?   ALORS donneeFTX { '3517DDR' , 'AL' , '00' , commentaireDDR , '' } FINSI	
    SI DDR_BA <> ?   ALORS donneeDTM102 { '3517DDR' , 'BA' , '00' , DDR_BA , '' } FINSI	
    SI DDR_BB <> ?   ALORS donneeCCI { '3517DDR' , 'BB' , '00' , 'X' , 'TBX' } FINSI
###
'EDITVA2' 'EDI'
    
    tva_debutPeriode	:=	dateDebutDate	--CA12Du
    tva_finPeriode		:=	dateFinDate	--CA12Au
    
    remplirTypeClotureExo{}
    
    SI Euro <> ?	ALORS	tva_monnaieSouscription := 'EE'	FINSI
    SI Franc <> ?	ALORS	tva_monnaieSouscription := 'EF'	FINSI
    SI CptaFranc <> ?	ALORS	tva_monnaieSouscription := 'FF'	FINSI    
    
    ExportTVA_initialisation {}
    
    SI controlesOK = VRAI	ALORS
    	SI envoiCA12 ET (NON pasDGI OU envoiOGA) ALORS
    		ExportTVA_entete {}		
    		EDITVA_detail {}
			
    		ExportTVA_fin {}
    	FIN SI

    	-- 3517DDR
    	SI envoi3517DDR ALORS
    		EDITVA_DDR{}
    	FIN SI
    FINSI
        
    SORTIR VRAI
###
'ExportFormatEDI' 'EDI'
    
    liasse_tva := 'CA12'
    tva_debutPeriode := dateDebutDate	--CA12Du
    tva_finPeriode := dateFinDate	--CA12Au
    
    remplirTypeClotureExo{}
    
    -------------------------------------------------
    SI envoiCA12 ALORS
    	montantTvaDu 		:= _56
    	montantTvaCredit 	:= _49
    SINON
    	montantTvaDu 		:= 0
    	montantTvaCredit 	:= 0
    FIN SI
    SI envoi3517DDR ALORS
    	montantRbmtDemande 	:= DDR_AD
    SINON
    	montantRbmtDemande 	:= 0
    FIN SI
    
    SI Euro <> ?	ALORS	tva_monnaieSouscription := 'EE'	FINSI
    SI Franc <> ?	ALORS	tva_monnaieSouscription := 'EF'	FINSI
    SI CptaFranc <> ?	ALORS	tva_monnaieSouscription := 'FF'	FINSI    
    
    ExportTVA_initialisation {}
    
    SI controlesOK = VRAI	ALORS
    	SI envoiCA12 ET (NON pasDGI OU envoiOGA) ALORS
    		SI NON ouiNon {'Un montant est renseigné sur la ligne 27, cette zone est à renseigner uniquement pour les déclarations à compter du 1er septembre 2019, sous peine de rejet.
Souhaitez-vous générer le fichier?
    ' }
    		ALORS SORTIR FAUX	FINSI
    	
			ExportTVA_entete{}
			EDITVA_detail{}
			ExportTVA_fin{}
    	FIN SI
    
    	-- 3517DDR
    	SI envoi3517DDR ALORS
    		EDITVA_DDR{}
    	FIN SI
    FINSI
###
'remonterTypeClotureExo' 'EDI'
    SORTIR typeClotureExo
###
'remplirTypeClotureExo' 'EDI'
    
    SI ('' + tva_finPeriode) # '31/12/' 
    ALORS	
    	typeClotureExo := '12'	-- année civile
    SINON	
    	typeClotureExo := '12E'	-- exercice
    FINSI
###
'tva_debutPeriode_MODIF' 'EDI'
    
    remplirTypeClotureExo{}
    affichage{VRAI}
    
    SORTIR VRAI
###
'tva_finPeriode_MODIF' 'EDI'
    
    remplirTypeClotureExo{}
    affichage{VRAI}
    
    SORTIR VRAI
###
'typeClotureExo_MODIF' 'EDI'
    
    SI NON ouiNon{'Etes-vous sûr de vouloir modifier le type de déclaration CA12 ?'} ALORS 
    	SI (sysInfo{'noyau'} = 'C')	ALORS
    		SI typeClotureExo = '12' ALORS
    			typeClotureExo	:=	'12E'
    		SINON
    			typeClotureExo	:=	'12'
    		FIN SI
    		affichage{VRAI}
    	SINON
    		SORTIR FAUX 
    	FIN SI
    FIN SI
    
    SORTIR VRAI
###
'SELECTION' 'Evénements'
    
    InitMentionExpresseTvaMotif{}    
    InitialiserExtensions3310TIC_FP{}
    MasquerAttributs3310TIC_FP{}
    majComptesDeSubstitution{}
    majGrise {}
    Télétransmissions := VRAI	-- Rend le tiroir (caché par défaut au niveau EtatComptable) visible
    EDITVA := VRAI
    EDILIASSE := FAUX
    EDITDFC := FAUX
    
    preLiasseCode	:=	FAUX
###
'MENU_Importer de Sage Révision Experts' 'Evénements'
    
    SI NON ouiNon{'Les imports de Sage Révision Experts écraseront l''ensemble des valeurs déjà importées ou saisies dans votre liasse, souhaitez-vous continuer?'} ALORS
    	SORTIR FAUX
    FIN SI
    importOpenRevision{}
    CA12_page_2{}
    CA12_page_3{}
    CA12_page_5{}
    
    SORTIR VRAI
###
'MENU_Importer depuis TVA Etats préparatoires' 'Evénements'
    
    SI NON ouiNon{'Vous allez importer les valeurs depuis l''état TVA Etats préparatoires.
    Souhaitez-vous continuer ?'} ALORS
    	SORTIR FAUX
    FIN SI
    
    importerEtatsPrep{}
    
    affichage{}
    
    SORTIR VRAI
###
'MENU_        Annuler l'import des valeurs depuis l'état TVA Etats préparatoires' 'Evénements'
    
    SI NON ouiNon{'Vous allez annuler l''import des valeurs depuis l''état TVA Etats préparatoires.
    Les données seront remises à ?. Souhaitez-vous continuer ?'} ALORS
    	SORTIR FAUX
    FIN SI
    
    B02 := ?
    B03 := ?
    B04 := ?
    B05 := ?
    B06 := ?
    B06B := ?
    B07 := ?
    B08 := ?
    B11 := ?
    _11 := ?
    B12 := ?
    _12 := ?
    _20 := ?
    _23 := ?
    B10 := ?
    _10 := ?
    
    B05A := ?
    B06C := ?
    
    INTER_CA12_page2 {}    
    
    affichage{}
    
    SORTIR VRAI
###
'MENU_Importer depuis état TVS Fiches d'aide au calcul' 'Evénements'
    
    SI NON ouiNon{'Vous allez importer les valeurs depuis l''état TVS Fiches d''aide au calcul.
    Souhaitez-vous continuer ?'} ALORS
    	SORTIR FAUX
    FIN SI
    
    importTVS{}
    
    affichage{}
    
    SORTIR VRAI
###
'MENU_        Annuler l'import depuis état TVS Fiches d'aide au calcul' 'Evénements'

    SI etat.EstVerrouille ALORS
    	info {'L''annulation de l''import n''est pas possible sur un état verrouillé.'}
    	SORTIR FAUX
    FINSI    

    
    SI NON ouiNon{'Vous allez annuler l''import des valeurs depuis l''état TVS_Fiches d''aide au calcul.
Les données seront remises à ?. Souhaitez-vous continuer ?'} ALORS
    	SORTIR FAUX
    FIN SI
    
	3517S_XC 	:=	?
    3517S_BD	:=	?
	
    INTER_CA12_page4{}
    
    affichage{}
    
    SORTIR VRAI
###
'CA12_page_1' 'Fonctions'
    CALCUL_CA12_page1{}
    INTER_CA12_page1{}
###
'CA12_page_2' 'Fonctions'
    INTER_CA12_page2{}
###
'CA12_page_3' 'Fonctions'
    INTER_CA12_page3{}
###
'CA12_ext1' 'Fonctions'
    INTER_CA12_page3{}
###
'CA12_ext2' 'Fonctions'
    INTER_CA12_page3{}
###
'CA12_ext3' 'Fonctions'
    INTER_CA12_page3{}
    INTER_CA12_page4{}
###
'CA12__ext2' 'Fonctions'
    INTER_CA12_page3{}
    INTER_CA12_page4{}
###
'CA12_page_4' 'Fonctions'
    INTER_CA12_page3{}
    INTER_CA12_page4{}
###
'CA12_page_5' 'Fonctions'
    INTER_CA12_page3{}
    INTER_CA12_page5{}
###
'CA12_page_6' 'Fonctions'
    INTER_CA12_page6{}
    INTER_CA12_page3{}
###
'CALCUL_CA12_page1' 'Fonctions'
    
    --------FIXATION DE LA MONNAIE--------------------------
    SI exerciceComptable.monnaieDefaut = 'F' ALORS
    	CptaFranc	:=	'X'
    	Euro		:=	?
    	Franc		:=	?
    	PaiemEuro 	:=	?
    	PaiemFranc	:= 	_56
    FINSI
    
    SI exerciceComptable.monnaieDefaut = 'E' ALORS
    	CptaFranc	:=	?
    	PaiemEuro 	:=	_56
    	PaiemFranc	:= 	?
    FINSI
    -------------------------------------------------------------------------------
###
'-----' 'Toutes fonctions'

###
'------' 'Toutes fonctions'

###
'ajoutAutoTVA' 'Toutes fonctions'
    
    |
    	libelleEcritureTva <Chaine>
    	edit<Objet>    
    |
    
    edit	::=	'EditeurDeJournaux'
    edit	:=	exerciceComptable.argEditJournaux
    
    libelleEcritureTva := 'OD de TVA CA12 ' + chaine {'' +dateFin, 4, 10}
    
    SI generation = 'cerfa'	ALORS
    	SI _05 > 0	ALORS	edit.ajouterLigneTVA {dateFin, '44571100', '', libelleEcritureTva , _05, 0.00}	FINSI	-- Ligne 05
    	SI _05A > 0	ALORS	edit.ajouterLigneTVA {dateFin,'44571'+indiceTaux{20.00}, '', libelleEcritureTva , _05A, 0.00}	FINSI	-- Ligne 05A
    	SI _06 > 0	ALORS	edit.ajouterLigneTVA {dateFin, '445712', '', libelleEcritureTva , _06, 0.00}	FINSI	-- Ligne 06
    	SI _B06B > 0	ALORS edit.ajouterLigneTVA {dateFin, '44571'+indiceTaux7{}, '', libelleEcritureTva , _B06B,0.00}	FINSI	--CA12
    	SI _06C > 0	ALORS	edit.ajouterLigneTVA {dateFin,'44571'+indiceTaux{10.00}, '', libelleEcritureTva , _06C, 0.00}	FINSI	-- Ligne 06C
    	SI _07 > 0	ALORS	edit.ajouterLigneTVA {dateFin, '', '', libelleEcritureTva , _07, 0.00}		FINSI	-- Ligne 07
    	SI _08 > 0	ALORS	edit.ajouterLigneTVA {dateFin, '', '', libelleEcritureTva , _08, 0.00}		FINSI	-- Ligne 08
    	SI _09 > 0	ALORS	edit.ajouterLigneTVA {dateFin, '445780', '', libelleEcritureTva , _09, 0.00}	FINSI	-- Ligne 09
    	SI _10 > 0	ALORS	edit.ajouterLigneTVA {dateFin, '', '', libelleEcritureTva , _10, 0.00}		FINSI	-- Ligne 10
    	SI _AA > 0	ALORS	edit.ajouterLigneTVA {dateFin, '', '', libelleEcritureTva , _AA, 0.00}		FINSI	-- Ligne AA
    	SI _11 > 0	ALORS	edit.ajouterLigneTVA {dateFin, '', '', libelleEcritureTva , _11, 0.00}		FINSI	-- Ligne 11
    	SI _12 > 0	ALORS	edit.ajouterLigneTVA {dateFin, '', '', libelleEcritureTva , _12, 0.00}		FINSI	-- Ligne 12
    	SI _13 > 0	ALORS	edit.ajouterLigneTVA {dateFin, '', '', libelleEcritureTva , _13, 0.00}		FINSI	-- Ligne 13
    	SI _17 > 0	ALORS	edit.ajouterLigneTVA {dateFin, '', '', libelleEcritureTva , _17, 0.00}		FINSI	-- Ligne 17
    	SI _18 > 0	ALORS	edit.ajouterLigneTVA {dateFin, '445840', '', libelleEcritureTva , _18, 0.00}	FINSI	-- Ligne 18
    	SI _22 > 0	ALORS	edit.ajouterLigneTVA {dateFin, '445660', '', libelleEcritureTva , 0.00, _22}	FINSI	-- Ligne 22
    	SI _23 > 0	ALORS	edit.ajouterLigneTVA {dateFin, '445620', '', libelleEcritureTva , 0.00, _23}	FINSI	-- Ligne 23
    	SI _24 > 0	ALORS	edit.ajouterLigneTVA {dateFin, '445670', '', libelleEcritureTva , 0.00, _24}	FINSI	-- Ligne 24
    	SI _25 > 0	ALORS	edit.ajouterLigneTVA {dateFin, '', '', libelleEcritureTva , 0.00, _25}		FINSI	-- Ligne 25
    	SI _30 > 0	ALORS	edit.ajouterLigneTVA {dateFin, '445810', '', libelleEcritureTva , 0.00, _30}	FINSI	-- Ligne 30
    	SI _49 > 0	ALORS	edit.ajouterLigneTVA {dateFin, '445670', '', libelleEcritureTva , _49, 0.00}	FINSI	-- Ligne 49
    	SI _54 > 0	ALORS	edit.ajouterLigneTVA {dateFin, '445510', '', libelleEcritureTva , 0.00, _54}	FINSI	-- Ligne 54
    	SI _55 > 0	ALORS	edit.ajouterLigneTVA {dateFin, '445580', '', libelleEcritureTva , 0.00, _55}	FINSI	-- Ligne 55
    	SI exerciceComptable.avecTVA ET exerciceComptable.autoLiquidation ALORS
    		edit.ajouterLigneTVA {dateFin, exerciceComptable.tvaAutoLiqDebit, '', 'Autoliquidation de TVA', 0.00, 0.00}		
    		edit.ajouterLigneTVA {dateFin, exerciceComptable.tvaAutoLiqCredit, '', 'Autoliquidation de TVA', 0.00, 0.00}		
    	FIN SI
    	edit.affecterObjetEtatTVA{etat}
    SINON
    	calculSoldeComptaTva {'445711'}
    	calculSoldeComptaTva {'445712'}
    	calculSoldeComptaTva {'445713'}
    	calculSoldeComptaTva {'445714'}
    	calculSoldeComptaTva {'445715'}
    	calculSoldeComptaTva {'445716'}
    	calculSoldeComptaTva {'445717'}
    	calculSoldeComptaTva {'445718'}
    	calculSoldeComptaTva {'445719'}
    	calculSoldeComptaTva {'445780'}
    	calculSoldeComptaTva {'445200'}
    	calculSoldeComptaTva {'445840'}
    	calculSoldeComptaTva {'445660'}
    	calculSoldeComptaTva {'445620'}
    	calculSoldeComptaTva {'445670'}
    	SI exerciceComptable.avecTVA ET exerciceComptable.autoLiquidation ALORS
    		edit.ajouterLigneTVA {dateFin, exerciceComptable.tvaAutoLiqDebit, '', 'Autoliquidation de TVA', 0.00, 0.00}		
    		edit.ajouterLigneTVA {dateFin, exerciceComptable.tvaAutoLiqCredit, '', 'Autoliquidation de TVA', 0.00, 0.00}		
    	FIN SI
    	SI _49 > 0	ALORS	edit.ajouterLigneTVA {dateFin, '445670', '', libelleEcritureTva , _49, 0.00}	FINSI	-- Ligne 49
    	SI _54 > 0	ALORS	edit.ajouterLigneTVA {dateFin, '445510', '', libelleEcritureTva , 0.00, _54}	FINSI	-- Ligne 54
    	calculSoldeComptaTva {'445580'}	
    FINSI
###
'calculSoldeComptaTva' 'Toutes fonctions'
{cpte <Chaine>}
    
    | 
    	libelleEcritureTva <Chaine>
    	edit<Objet>
    |
    
    edit	::=	'EditeurDeJournaux'
    edit	:=	exerciceComptable.argEditJournaux    
    
    libelleEcritureTva := 'OD de TVA CA12 ' + chaine {'' +dateFin, 4, 10}
    
    SI soldeDebit{cpte}[dateFin] > 0	ALORS	edit.ajouterLigneTVA {dateFin, cpte, '', libelleEcritureTva , 0.00, soldeDebit{cpte}[dateFin]}	FINSI
    SI soldeCredit{cpte}[dateFin] > 0	ALORS	edit.ajouterLigneTVA {dateFin, cpte, '', libelleEcritureTva , soldeCredit{cpte}[dateFin], 0.00}	FINSI
###
'CONTROLECA12' 'Toutes fonctions'
    
    |
    	nbCoches<Entier> nbMontants<Entier> anneeFin<Entier> anneeDebut<Entier> i<Entier>
    |
    
    SI (B09 > 0 ET (_09 = 0 OU _09 = ?)) OU ((B09 = 0 OU B09 = ?) ET _09 > 0) 
    OU (B10 > 0 ET (_10 = 0 OU _10 = ?)) OU ((B10 = 0 OU B10 = ?) ET _10 > 0)
    OU (BAA > 0 ET (_AA = 0 OU _AA = ?)) OU ((BAA = 0 OU BAA = ?) ET _AA > 0)
    OU (BAB > 0 ET (_AB = 0 OU _AB = ?)) OU ((BAB = 0 OU BAB = ?) ET _AB > 0)
    OU (BAC > 0 ET (_AC = 0 OU _AC = ?)) OU ((BAC = 0 OU BAC = ?) ET _AC > 0)
    OU (B11 > 0 ET (_11 = 0 OU _11 = ?)) OU ((B11 = 0 OU B11 = ?) ET _11 > 0)
    OU (B12 > 0 ET (_12 = 0 OU _12 = ?)) OU ((B12 = 0 OU B12 = ?) ET _12 > 0)
    OU (B13 > 0 ET (_13 = 0 OU _13 = ?)) OU ((B13 = 0 OU B13 = ?) ET _13 > 0)
    OU (3517S_SN > 0 ET (_63 = 0 OU _63 = ?)) OU ((3517S_SN = 0 OU 3517S_SN = ?) ET _63 > 0)
    OU (3517S_ZZ > 0 ET (_67 = 0 OU _67 = ?)) OU ((3517S_ZZ = 0 OU 3517S_ZZ = ?) ET _67 > 0)
    OU (3517S_YC > 0 ET (_68 = 0 OU _68 = ?)) OU ((3517S_YC = 0 OU 3517S_YC = ?) ET _68 > 0)
    OU (3317S_ZM > 0 ET (_71 = 0 OU _71 = ?)) OU ((3317S_ZM = 0 OU 3317S_ZM = ?) ET _71 > 0)
    OU (3317S_YA > 0 ET (_72 = 0 OU _72 = ?)) OU ((3317S_YA = 0 OU 3317S_YA = ?) ET _72 > 0)
    OU (3317S_YB > 0 ET (_73 = 0 OU _73 = ?)) OU ((3317S_YB = 0 OU 3317S_YB = ?) ET _73 > 0)
    OU (3317S_ZP > 0 ET (_79 = 0 OU _79 = ?)) OU ((3317S_ZP = 0 OU 3317S_ZP = ?) ET _79 > 0)
    OU (3317S_ZP > 0 ET (_80 = 0 OU _80 = ?)) OU ((3317S_ZP = 0 OU 3317S_ZP = ?) ET _80 > 0)

    ALORS
    	ERR	:=	'ERR1 : Vous avez rempli une base HT sans remplir la Taxe Due ou inversement' 
    	MSG{}
    FIN SI

    SI (3517S_NS > 0 ET (3517S_XF = 0 OU 3517S_XF = ?)) OU ((3517S_NS = 0 OU 3517S_NS = ?) ET 3517S_XF > 0)
    OU (3517S_UF > 0 ET (3517S_BG = 0 OU 3517S_BG = ?)) OU ((3517S_UF = 0 OU 3517S_UF = ?) ET 3517S_BG > 0)
    ALORS
    	ERR	:=	'ERR1 : Vous avez rempli un nombre de passagers sans remplir la Taxe Due ou inversement' 
    	MSG{}
    FINSI

	SI (3517S_SW > 0 ET (3517S_SV = 0 OU 3517S_SV = ?)) OU ((3517S_SW = 0 OU 3517S_SW = ?) ET 3517S_SV > 0)
	OU (3517S_XA > 0 ET (3517S_SX = 0 OU 3517S_SX = ?)) OU ((3517S_XA = 0 OU 3517S_XA = ?) ET 3517S_SX > 0)
	OU (3517S_XB > 0 ET (3517S_RD = 0 OU 3517S_RD = ?)) OU ((3517S_XB = 0 OU 3517S_XB = ?) ET 3517S_RD > 0) 
	OU (3517S_UE > 0 ET (3517S_XE = 0 OU 3517S_XE = ?)) OU ((3517S_UE = 0 OU 3517S_UE = ?) ET 3517S_XE > 0)
	OU (3317S_AZ > 0 ET (3317S_AG = 0 OU 3317S_AG = ?)) OU ((3317S_AZ = 0 OU 3317S_AZ = ?) ET 3317S_AG > 0)
	OU (3317S_AH > 0 ET (3317S_BA = 0 OU 3317S_BA = ?)) OU ((3317S_AH = 0 OU 3317S_AH = ?) ET 3317S_BA > 0)
	OU (3317S_AJ > 0 ET (3317S_BB = 0 OU 3317S_BB = ?)) OU ((3317S_AJ = 0 OU 3317S_AJ = ?) ET 3317S_BB > 0)
	OU (3317S_AK > 0 ET (3317S_CB = 0 OU 3317S_CB = ?)) OU ((3317S_AK = 0 OU 3317S_AK = ?) ET 3317S_CB > 0)
	OU (3317S_ZJ > 0 ET (_44 = 0 OU _44 = ?)) OU ((3317S_ZJ = 0 OU 3317S_ZJ = ?) ET _44 > 0)
	ALORS
		ERR	:=	'ERR1 : Vous avez rempli une base HT sans remplir la Taxe Due ou inversement' 
		MSG{}
	FIN SI
    
    SI _10 < entier{B10*2.1%} OU _10 > entier{B10*20.6%} ALORS
    	ERR	:=	'ERR2 : Le montant Taxe Due ligne 10 est incohérent par rapport à la base HT' 
    	MSG{}
    FIN SI
    
    SI _21 > 0 ET entier{_21} <> entier{(B02 + B03 + B04 + B04B + B04D + B05 + B05A + B06 + B06B + 3317S_EE + B06C + B07 + B08 + B09 + B10 + 3517S_ER + 3517S_EK + 3517S_AV)*0.20%} ALORS
    	ERR	:=	'ERR5 : Le montant saisi à la ligne 21 doit correspondre à la somme des bases HT des lignes 2 à 10 multipliée par 0.20%.
    Le montant attendu dans cette zone est : ' +  entier{(B02 + B03 + B04 + B04B + B04D + B05 + B05A + B06 + B06B + 3317S_EE + B06C + B07 + B08 + B09 + B10 + 3517S_ER + 3517S_EK + 3517S_AV)*0.20%}
    	MSG{}
    FIN SI
    
    SI Pourc < 0 OU Pourc > 100 ALORS
    	ERR	:=	'ERR6 : Le pourcentage saisi ligne 25A n''est pas correct' 
    	MSG{}
    FIN SI

    SI _50 > _49 ALORS
    	ERR	:=	'ERR8 : Le montant du remboursement demandé ne peut pas être supérieur au crédit de TVA diminué,
    le cas échéant, du crédit imputé sur le ou les acomptes.' 
    	MSG{}
    FIN SI
    
    nbCoches	:=	0
       
    SI cocheJui <> ? ALORS
    	nbCoches	+=	1
    FIN SI
        
    SI cocheDec <> ? ALORS
    	nbCoches	+=	1
    FIN SI
    
    nbMontants	:=	0
    
    SI ac11 > 0 OU ac21 > 0 ALORS
    	nbMontants	+=	1
    FIN SI
    
    SI ac12 > 0 OU ac22 > 0 ALORS
    	nbMontants	+=	1
    FIN SI
    
    SI ac13 > 0 OU ac23 > 0 ALORS
    	nbMontants	+=	1
    FIN SI
    
    SI ac14 > 0 OU ac24 > 0 ALORS
    	nbMontants	+=	1
    FIN SI
    
    SI nbCoches <> nbMontants ALORS
    	ERR	:=	'ERR9 : La description des acomptes ligne 30 est incohérente avec les cases correspondantes au cadre "V-Récapitulation"' 
    	MSG{}
    FIN SI
    
    SI (cocheJui <> ? ET taille{anJui} < 1)
    OU (cocheDec <> ? ET taille{anDec} < 1)
    ALORS
    	ERR	:=	'ERR10 : Absence de l''année au titre de laquelle cet acompte a été imputé.' 
    	MSG{}
    FIN SI
        
    SI taille{cocheJui} > 0 ET anJui <> ? ALORS
    	anneeDebut	:=	annee{dateDebutDate}
    	anneeFin	:=	annee{dateFinDate}
    
    	SI  anJui < anneeDebut OU anJui > anneeFin ALORS
    		ERR	:=	'ERR11 : L''année saisie pour les acomptes déduits doit se rapporter à la période d''imposition.' 
    		MSG{}
    	FINSI
    FINSI    
    
    SI taille{cocheDec} > 0 ET anDec <> ? ALORS
    	anneeDebut	:=	annee{dateDebutDate}
    	anneeFin	:=	annee{dateFinDate}
    
    	SI  anDec < anneeDebut OU anDec > anneeFin ALORS
    		ERR	:=	'ERR11 : L''année saisie pour les acomptes déduits doit se rapporter à la période d''imposition.' 
    		MSG{}
    	FINSI
    FINSI
    
    SI CA12_2neant = ? ET 
    ((_16 = ? OU _16 = 0) ET (_26 = ? OU _26 = 0) ET (_33 = ? OU _33 = 0) ET (_34 = ? OU _34 = 0) ET (_35 = ? OU _35 = 0)
     ET (_55 = ? OU _55 = 0) ET (_56 = ? OU _56 = 0) ET (DDR_AG = ? OU DDR_AG = 0)  
    ET (B01 = ? OU B01 = 0) ET (B02 = ? OU B02 = 0) ET (B03 = ? OU B03 = 0) ET  (B04 = ? OU B04 = 0) ET (B04B = ? OU B04B = 0) ET (B04D = ? OU B04D = 0)
    ET (3517S_ER = ? OU 3517S_ER = 0)) ALORS
    	ERR	:=	'ERR12 : Vous n''avez pas de montant dans votre déclaration, vous devez cocher la case Néant.' 
    	MSG{}
    FIN SI
    
    SI taille{DDR_AFNOM} < 1 ET DDR_AD <> ? ET DDR_AD <> 0 ET minuscule{CA12_2neant} <> 'x' ALORS
    	ERR	:=	'ERR13 : Vous n''avez pas rempli le soussigné' 
    	MSG{}
    FIN SI
    
    SI (taille{DDR_AFNOM} > 0 OU taille{DDR_AFQUALITE} > 0) ET taille{DDR_AFLIEU} < 1 ET DDR_AD <> ? ET DDR_AD <> 0 ET minuscule{CA12_2neant} <> 'x' ALORS
    	ERR	:=	'ERR14 : Vous n''avez pas rempli le lieu pour la demande de remboursement' 
    	MSG{}
    FIN SI
    
    SI DDR_AD > 0 ET DDR_AH = ? ET DDR_AJ = ? ALORS
    	ERR	:=	'ERR15 : Vous n''avez pas renseigné le mode de prise en compte du remboursement demandé.' 
    	MSG{}
    FIN SI
    
    SI DDR_AD > DDR_AC  ALORS
    	ERR	:=	'ERR16 : Vous ne pouvez pas demander un remboursement supérieur au maximum remboursable.' 
    	MSG{}
    FIN SI
    
    SI minuscule{CA12_2neant} = 'x' ET 
    (_16 > 0 OU _26 > 0 OU _33 > 0 OU _34 > 0 OU _35 > 0 OU _55 > 0 OU _56 > 0 OU DDR_AG > 0
    OU B01 > 0 OU B02 > 0 OU B03 > 0 OU B04 > 0 OU B04B > 0 OU B04D > 0 OU 3517S_ER > 0) ALORS
    	ERR	:=	'ERR17 : Vous avez coché la case Néant, vous ne devez pas déclarer de montant.' 
    	MSG{}
    FIN SI
    
    SI DDR_AA > 0 ET entier{DDR_AE} <> (entier{DDR_AC} - entier{DDR_AD}) ALORS
    	ERR	:=	'ERR18 : Le crédit reportable doit être au maximum remboursable moins le remboursement demandé'
    	MSG{}
    FIN SI
    
    SI (DDR_BB <> ? ET DDR_AA < 0) OU (DDR_BB =? ET DDR_AA > 0 ET DDR_AA < 150) ALORS
    	ERR	:=	'ERR19 : Le crédit remboursable ne peut être inférieur aux seuils prévus à l''article 242-0 C de l''annexe II au CGI, sauf événements particuliers'
    	MSG{}
    FIN SI
    
    SI DDR_BB <> ? ET DDR_BA = ? ALORS
    	ERR	:=	'ERR20 : Vous devez renseigner la date correspondant à l''événement coché (DDR_BB)'
    	MSG{}
    FIN SI

    SI DDR_BB = ? ET DDR_BA <> ? ALORS
    	ERR	:=	'ERR20bis : Vous devez cocher l''événement (DDR_BB) correspondant à la date (DDR_BA)'
    	MSG{}
    FIN SI

    SI DDR_BB = ? ET _50 < 150 ET _50 <> 0 ET _50 <> ? ET (_34 = ? OU _34 = 0) ALORS
    	ERR	:=	'ERR20ter : Attention ! Un remboursement inférieur à 150 euros est impossible, sauf s’il s’agit d’une déclaration de clôture suite à cession, cessation de l’activité, décès ou entrée dans un groupe.'
    	MSG{}
    FIN SI

    SI DDR_AD < 0 OU DDR_AD > 9999999 ALORS
    	ERR	:=	'ERR21 : 3517DDR. Remboursement demandé : vous devez saisir un entier positif de 7 chiffres maximum. Merci de corriger.'
    	MSG{}
    FIN SI

    SI _56 > 999999 ALORS
    	ERR	:=	'ERR22 : Le total à payer (lignes 54 + 55) ne peut comporter que six chiffres au maximum.'
    	MSG{}
    FIN SI

    SI (3317S_ZN > 0 OU _76 > 0 OU _77 > 0 OU _78 > 0) ET ((3317S_ZN = 0 OU 3317S_ZN = ?) OU (_76 = 0 OU _76 = ?) OU (_77 = 0 OU _77 = ?) OU (_78 = 0 OU _78 = ?)) ALORS
    	ERR	:=	'ERR23 : Vous devez saisir la base imposable et l''ensemble des taxes dues (lignes 76, 77 et 78).'
    	MSG{}
    FIN SI

    SI (3317S_ZP > 0 OU _79 > 0 OU _80 > 0) ET ((3317S_ZP = 0 OU 3317S_ZP = ?) OU (_79 = 0 OU _79 = ?) OU (_80 = 0 OU _80 = ?)) ALORS
    	ERR	:=	'ERR24 : Vous devez saisir la base imposable et l''ensemble des taxes dues (lignes 79 et 80).'
    	MSG{}
    FIN SI

    i := 1
    TANT QUE i <= 9 FAIRE
    	SI (taille{etat!{'3517S_SF'+i}chaine} > 0 ET (etat!{'3517S_SE'+i}monnaie = 0 OU etat!{'3517S_SE'+i}monnaie = ?))
		OU (etat!{'3517S_SE'+i}monnaie > 0 ET (taille{etat!{'3517S_SF'+i}chaine} = 0 OU etat!{'3517S_SF'+i}chaine = ?))
		ALORS
		    ERR	:=	'ERR25c : Vous devez saisir le numéro de département et les droits pour celui-ci (lignes 84).'
	    	MSG{}
	    	i := 9
		FIN SI
		i += 1
	FIN FAIRE 
	
	i := 1
	TANT QUE i <= 10 FAIRE			
	   SI (( etat!{'3517S_AC'+i}chaine <> '' OU etat!{'3517S_AD'+i}reel > 0 OU etat!{'3517S_AB'+i}monnaie > 0 ) ET ( etat!{'3517S_AC'+i}chaine = ''  OU etat!{'3517S_AC'+i}chaine = ? OU etat!{'3517S_AD'+i}reel = ?  OU etat!{'3517S_AD'+i}reel = 0  OU etat!{'3517S_AB'+i}monnaie = ? OU etat!{'3517S_AB'+i}monnaie = 0)) ALORS
    	ERR :=	'ERR26:  Vous devez saisir la contribution, le nombre d''hectolitres ainsi que le numéro de commune. (ca12 page 5 + extension 3). '
    	MSG{}
    	i := 10
	   FINSI
	   i	+=	1
	FIN FAIRE

    SI Extensions ET (ca12_ext1 OU ca12_ext2) ALORS

	    i := 4
	    TANT QUE i <= 114 FAIRE
	    	SI (taille{etat!{'3310A_PJ'+i}chaine} > 0 ET (etat!{'3310A_PH'+i}monnaie = 0 OU etat!{'3310A_PH'+i}monnaie = ?))
	    	OU (etat!{'3310A_PH'+i}monnaie > 0 ET (taille{etat!{'3310A_PJ'+i}chaine} = 0 OU etat!{'3310A_PJ'+i}chaine = ?))
	    	ALORS
	    		ERR	:=	'ERR25a : Un numéro de département est renseigné sans taxe due associée ou inversement (extension 2).'
	    		MSG{}
	    		i := 114
	    	FIN SI
	    	i += 1
	    FIN FAIRE

	   	i := 4
    	TANT QUE i <= 65 FAIRE
			SI (( etat!{'3310A_QC'+i}chaine <> '' OU etat!{'3310A_QD'+i}reel > 0 OU etat!{'3310A_QB'+i}monnaie > 0 ) 
					ET ( etat!{'3310A_QC'+i}chaine = ''  
							OU etat!{'3310A_QC'+i}chaine = ? 
							OU etat!{'3310A_QD'+i}reel = ? 
							OU etat!{'3310A_QD'+i}reel = 0 
							OU etat!{'3310A_QB'+i}monnaie = ? 
							OU etat!{'3310A_QB'+i}monnaie = 0)) ALORS
 		   	ERR :=	'ERR26:  Vous devez saisir la contribution, le nombre d''hectolitres ainsi que le numéro de commune. (extension 3). '
 		   	MSG{}
 		   	i := 65
	   		FINSI
	   		i	+=	1
	   	FIN FAIRE
	FINSI

	SI 3517S_GG > _18 ALORS
    	ERR	:=	'ERR27 : Le montant ligne 18A est supérieur au montant ligne 18' 
    	MSG{}
    FIN SI

	SI 3517S_KC > _25 ALORS
    	ERR	:=	'ERR28 : Le montant ligne 25B est supérieur au montant ligne 25' 
    	MSG{}
    FIN SI

	SI 3517S_KN > _26 ALORS
    	ERR	:=	'ERR29 : Le montant ligne 26A est supérieur au montant ligne 26' 
    	MSG{}
    FIN SI
	
	SI (3317S_AZ > 0 ET (3317S_AG = 0 OU 3317S_AG = ?)) OU ((3317S_AZ = 0 OU 3317S_AZ = ?) ET 3317S_AG > 0)
	OU (3317S_AH > 0 ET (3317S_BA = 0 OU 3317S_BA = ?)) OU ((3317S_AH = 0 OU 3317S_AH = ?) ET 3317S_BA > 0)
	OU (3317S_AJ > 0 ET (3317S_BB = 0 OU 3317S_BB = ?)) OU ((3317S_AJ = 0 OU 3317S_AJ = ?) ET 3317S_BB > 0)
	OU (3317S_AK > 0 ET (3317S_CB = 0 OU 3317S_CB = ?)) OU ((3317S_AK = 0 OU 3317S_AK = ?) ET 3317S_CB > 0)
	OU (3317S_AY > 0 ET (3317S_NN = 0 OU 3317S_NN = ?)) OU ((3317S_AY = 0 OU 3317S_AY = ?) ET 3317S_NN > 0)
	ALORS
		ERR	:=	'ERR30 : Vous avez rempli une base HT sans remplir le nombre de véhicules ou inversement (ligne 70A).' 
		MSG{}
	FIN SI
	
	SI 3317S_BC > 3317S_AZ OU 3317S_CC > 3317S_BA OU 3317S_JC > 3317S_BB OU 3317S_LC > 3317S_CB OU 3317S_NP > 3317S_NN ALORS
		ERR	:=	'ERR31 : Le nombre de véhicules rail-route ne peut être supérieur au nombre de véhicules (ligne 70A).' 
		MSG{}
	FIN SI	
	
	SI ((3517S_XC = ?) OU (3517S_BD = ?)) ET (3517S_BF > 0 OU 3517S_CF > 0 OU 3517S_HF > 0) ALORS
		ERR	:=	'ERR32 : Vous avez renseigné une des variables BF, CF ou HF alors les données XC et BD doivent obligatoirement être saisies (supérieures ou égales à 0), ligne 70B et 70C.' 
    	MSG{}
	FIN SI
	
	SI ((3517S_XC <> ?) OU (3517S_BD <> ?)) ET ((3517S_BF = 0 OU 3517S_BF = ?) ET (3517S_CF = 0 OU 3517S_CF = ?) ET (3517S_HF = 0 OU 3517S_HF = ?)) ALORS
		ERR	:=	'ERR33 : Vous avez renseigné une des variables XC ou BD alors au moins une des trois données BF, CF ou HF doit obligatoirement être saisie (supérieure à 0), ligne 70B et 70C.' 
    	MSG{}
	FIN SI

	SI (3517S_TE > 3517S_XK OU 3517S_TF > 3517S_CL OU 3517S_HG > 3517S_DD) ALORS
		ERR	:=	'ERR34 : Le crédit de TIC imputé sur la TVA ne peut pas être supérieur au crédit de TIC constaté.' 
    	MSG{}
	FIN SI

	SI (3517S_XH > 0 OU 3517S_JG > 0) ET 3517S_LH > 0 ALORS
		ERR	:=	'ERR35 : Vous ne pouvez pas avoir à la fois un crédit de TIC (constaté et/ou imputé) et un reliquat de TIC à payer.' 
    	MSG{}
	FIN SI

	SI (3517S_XH <= _33) ALORS
		SI (3517S_TE <> 3517S_XK) OU (3517S_TF <> 3517S_CL) OU (3517S_HG <> 3517S_DD) ALORS
			ERR	:=	'ERR36 : Si le total du crédit de TIC constaté est inférieur ou égal au montant de la TVA due (Ligne 33), vous devez imputer la totalité de ce crédit sur la TVA.' 
			MSG{}	
		FINSI
    FIN SI

    SI 3517S_XH > _33 ALORS
    	SI 3517S_XG <> 3517S_XH - 3517S_JG ALORS
    		ERR :=	'ERR37 :Si le total du crédit de TIC constaté est supérieur au montant de la TVA due (ligne 33), le reliquat de crédit de TIC à rembourser (Y4) doit être égal au total du crédit de TIC constaté - le crédit de TIC imputé sur la TVA (X4).'
    		MSG{}
    	FINSI
    FINSI
	
	SI 3517S_BU1 <> ? ET 3517S_BU1 <> '4' ALORS
		SI dateFin = 31.12.2024 ALORS
			ERR := 'ERR39. Ligne 44A : Le solde de la période doit être 4 si la fin de la période est le 31.12.2024.'
			MSG{}
		FINSI
	FINSI
	
	SI (3517S_BU2 <> ? ET 3517S_BU2 <> '4')
	OU (3517S_BU3 <> ? ET 3517S_BU3 <> '4')
	OU (3517S_BU4 <> ? ET 3517S_BU4 <> '4') ALORS
		SI dateFin = 31.12.2024 ALORS
			ERR := 'ERR40. CA12_ext1 : Le solde de la période doit être 4 si la fin de la période est le 31.12.2024.'
			MSG{}
		FINSI
	FINSI	
	
	NbrERR += Controler3310TIC_FP{}

    SORTIR VRAI

###
'controler' 'Toutes fonctions'

    | mm <Entier> |
    
    ok	:=	VRAI
    
    mm	:=	mois {periode.fin}
    ------------------------------------------
    SI dossier.RegimeTVA <> 'Réel Simplifié' ALORS
    info {'Le régime de TVA choisi dans le dossier
    permanent n''est pas le régime simplifié.' }
    	ok	:=	FAUX
    FINSI
    ------------------------------------------
    
    SI mois{periode.fin} <> mois{finExercice{0}}  ET mois{periode.fin} <> 12  ALORS 
    info {'La déclaration CA12 ne peut être produite 
    qu''en fin d''exercice ou au 31 décembre.' } 
    ok := FAUX 
    FINSI 
    
    ------------------------------------------
    SI dossier.PeriodTVA	= ?  ALORS
    	info {'La périodicité de TVA est obligatoire,
    veuillez la renseigner dans le dossier
    permanent avant de compléter le formulaire.'}
    	ok	:=	FAUX
    FINSI
    
    SORTIR ok
###
'envoi3517DDR_MODIF' 'Toutes fonctions'
    
    SI envoi3517DDR ET DDR_AG <= 0 ALORS
    	info{'Vous n''avez pas demandé de remboursement sur la page 6.'}
    	SI sysInfo{'noyau'} = 'C' ALORS
    		envoi3517DDR :=	FAUX
    		affichage{VRAI}
    		SORTIR FAUX
    	SINON
    		SORTIR FAUX
    	FIN SI
    FIN SI
    
    SORTIR VRAI
###
'importerEtatsPrep' 'Toutes fonctions'
    
    document ::=	'comptabilite.TVA_Etats_preparatoires'
    
    SI etat.EstVerrouille ALORS
    	info {'L''import n''est pas possible sur un état verrouillé.'}
    	SORTIR FAUX
    FINSI
    
    SI document.dateDebut = ?	ALORS
    	info {'L''état TVA Etats preparatoires n''est pas initialisé.
    Vous ne pouvez donc pas importer les montants.'}
    SORTIR FAUX
    FINSI
    
    SI NON document.parametrageCerfas ALORS	
    	document.parametrageCerfas := VRAI	
    	document.parametrageCerfas_MODIF {}
    FINSI
    
    SI NON ouiNon {'Les montants seront repris depuis la dernière préparation de déclaration deTVA réalisée pour la période :
           Du ' + document.dateDebut + ' au ' + document.dateFin + '
    
    	Taux normal : ' + document.tauxNormal2 + '
    	Taux réduit : ' + document.tauxReduit2 + '
    	Taux réduit : ' + document.tauxReduit3 + '
    	Taux normal DOM : ' + document.tauxNormalDOM + '
    	Taux réduit DOM : ' + document.tauxReduitDOM + '

    
    Souhaitez-vous continuer ?'}
    	ALORS	SORTIR FAUX
    FINSI
    
    B02 := document.HT04
    B03 := document.HT05
    B04 := document.HT06
    B06 := document.HT0155 + document.HT0255
    B07 := document.HT0185
    B08 := document.HT0121 + document.HT0221
    B11 := document.HT02B
    _11 := document.TVA02B
    B12 := document.HT02A
    _12 := document.TVA02A
    _20 := document.TVA20
    _23 := document.TVA19
    B10 := document.HT01autre + document.HT02autre + document.HT01196 + document.HT017 + document.HT027
    _10 := document.TVA01autre + document.TVA02autre + document.TVA01196 + document.TVA017 + document.TVA027
    
    B05A := document.HT0120 + document.HT0220C
    B06C := document.HT0110 + document.HT0210
    
    info {'Les montants ont été importés.'}
    
    INTER_CA12_page2 {}
        
    SORTIR VRAI
###
'imprimer' 'Toutes fonctions'
    
    SI CompteRendu ALORS
    	etat.etat	:=	'COMPTE RENDU '+ NOM
    SINON
    	etat.etat	:=	NOM
    FIN SI
    
    SI CompteRendu OU NbrERR > 0 ALORS
    	impression { 'listingNew.ps' }
    	impression { 'texte.ps' }
    	impression { 'compta/liasse' }
    	OLDPAGE	:=	''
    	NbrERR		:=	0
    	CONTROLECA12{}
    	impression { 'fin_lst' }
    FINSI
    
    impression {'compta/24/liasse.ps'}
    
    SI NON ImpressionPartielle ALORS
    	impressionDirecte {'compta/24/TVA/ca12_1.fnd'}
		impression {'compta/24/TVA/ca12_1_c.fnd'}	
    	impression {'compta/24/TVA/ca12_1.var'}

		impressionDirecte {'compta/24/TVA/ca12_2.fnd'}
		impression {'compta/24/TVA/ca12_2_c.fnd'}
		impression {'compta/24/TVA/ca12_2.var'}

    	impressionDirecte {'compta/24/TVA/ca12_3.fnd'}
   		impression {'compta/24/TVA/ca12_3_c.fnd'}    	
    	impression {'compta/24/TVA/ca12_3.var'}
    	--page 3 bis
    	impressionDirecte {'compta/24/TVA/ca12_4.fnd'}
    	impression {'compta/24/TVA/ca12_4_c.fnd'}
    	impression {'compta/24/TVA/ca12_4.var'}

		impressionDirecte {'compta/24/TVA/ca12_5.fnd'}
		impression {'compta/24/TVA/ca12_5_c.fnd'}
		impression {'compta/24/TVA/ca12_5.var'}

		SI Extensions ALORS
			SI ca12_ext1	ALORS
    			impressionDirecte {'compta/24/TVA/ca12_3_ext3.fnd'}
    			impression {'compta/24/TVA/ca12_3_ext3.var'}	
	    	FINSI
	    	SI ca12_ext2	ALORS	
	    		impressionDirecte {'compta/24/TVA/ca3310a_4_ext1.fnd'}
	    		impression {'compta/24/TVA/ca3310a_4_ext1.var'}	
	    	FINSI
	    	SI ca12_ext3	ALORS
    			impressionDirecte {'compta/24/TVA/ca3310a_4_ext2.fnd'}
    			impression {'compta/24/TVA/ca3310a_4_ext2.var'}	
	    	FINSI
	    FIN SI    	

    	impressionDirecte {'compta/24/TVA/ca12_6.fnd'}
    	impression {'compta/24/TVA/ca12_6_c.fnd'}    	
    	impression {'compta/24/TVA/ca12_6.var'}

		Imprimer3310TIC_FP{}
    SINON
    	SI I_CA12_1 ALORS
    		impressionDirecte {'compta/24/TVA/ca12_1.fnd'}
    		impression {'compta/24/TVA/ca12_1_c.fnd'}    		
    		impression {'compta/24/TVA/ca12_1.var'}
    	FINSI

    	SI I_CA12_2 ALORS	
			impressionDirecte {'compta/24/TVA/ca12_2.fnd'}
			impression {'compta/24/TVA/ca12_2_c.fnd'}
			impression {'compta/24/TVA/ca12_2.var'}
    	FINSI
    	SI I_CA12_3 ALORS
    		impressionDirecte {'compta/24/TVA/ca12_3.fnd'}
    		impression {'compta/24/TVA/ca12_3_c.fnd'}
    		impression {'compta/24/TVA/ca12_3.var'}
    	FIN SI
    	SI I_CA12_4 ALORS
	    	impressionDirecte {'compta/24/TVA/ca12_4.fnd'}
	    	impression {'compta/24/TVA/ca12_4_c.fnd'}
	    	impression {'compta/24/TVA/ca12_4.var'}

			impressionDirecte {'compta/24/TVA/ca12_5.fnd'}
			impression {'compta/24/TVA/ca12_5_c.fnd'}
			impression {'compta/24/TVA/ca12_5.var'}

    		SI Extensions ALORS
				SI ca12_ext1	ALORS
					impressionDirecte {'compta/24/TVA/ca12_3_ext3.fnd'}
					impression {'compta/24/TVA/ca12_3_ext3.var'}	
				FINSI
		    	SI ca12_ext2	ALORS	
		    		impressionDirecte {'compta/24/TVA/ca3310a_4_ext1.fnd'}
		    		impression {'compta/24/TVA/ca3310a_4_ext1.var'}	
		    	FINSI
		    	SI ca12_ext3	ALORS	
    				impressionDirecte {'compta/24/TVA/ca3310a_4_ext2.fnd'}
    				impression {'compta/24/TVA/ca3310a_4_ext2.var'}	
		    	FINSI				
		    FIN SI
    	FINSI
    	SI I_CA12_6 ALORS
    		impressionDirecte {'compta/24/TVA/ca12_6.fnd'}
    		impression {'compta/24/TVA/ca12_6_c.fnd'}    		
    		impression {'compta/24/TVA/ca12_6.var'}
    	FINSI

		SI I_ImprPartiel_3310TIC_FP ALORS
			Imprimer3310TIC_FP{}
		FINSI
    FINSI
###
'INITIALISER' 'Toutes fonctions'
    
    numero	:=	75
    categorie	:=	'Etats TVA 2024...'
    
    preLiasseCode	:=	FAUX

###
'initTVA_CA12' 'Toutes fonctions'

    | mm <Entier>|
    
    -- Trois fonctions distinctes pour l'initialisation des CA3 - CA12 - CA12AGR du fait des divergences qui apparaissent progressivement
    
    init{}
    
    etat.etat := 'Déclaration TVA CA12'    
    
    controlerDates {}    
    
    POUR TOUT compte FAIRE
    	SI compte.txTVA <> ? ALORS
    		compte.txTVA := monnaie {'' + compte.txTVA}
    	FINSI
    FIN FAIRE
    
    ----------------------CA12 OU CA12E---------------------------------------------------------------------------------
    -- On ne peut ouvrir une CA12 que sur le mois de décembre ou le dernier mois de l'exercice
    SI mois{periode.fin} = 12	ALORS
    	CA12Du:= debutExercice{0}
    	CA12Au:= date {31,12,annee{periode.fin}}
    SINON
    	CA12Du:= debutExercice{0}
    	CA12Au:= finExercice{0}
    FINSI
    
    dateDebut := CA12Du
    dateFin := CA12Au
    
    -- Gestion des cessations d'activité en cours d'exercice ----
    SI dossier.dateCessationActivite <> ? ET dossier.dateCessationActivite >= dateDebut	ET dossier.dateCessationActivite < dateFin	ALORS
    	dateFin := dossier.dateCessationActivite
    FINSI
    
    SI mois {CA12Au } = 12 ALORS
    	CA12X	:=	''
    	CA12EX	:=	'XXXXXXXX'
    SINON
    	CA12X	:=	'XXXXXXX'
    	CA12EX	:=	''
    FINSI
    
    dateDebutChaine_C := date {'JJMMAAAA' , dateDebut}
    dateFinChaine_C 	:= date {'JJMMAAAA' , dateFin}
    SI dateDebutChaine = ? ALORS
    	dateDebutChaine := dateDebutChaine_C
    FIN SI
    SI dateFinChaine = ? ALORS
    	dateFinChaine 	:= dateFinChaine_C
    FIN SI
    
    dateDebutDate_C := dateDebut
    dateFinDate_C 	:= dateFin
    SI dateDebutDate = ? ALORS
    	dateDebutDate := dateDebutDate_C
    FIN SI
    SI dateFinDate = ? ALORS
    	dateFinDate	:= dateFinDate_C
    FIN SI
    
    ---------------------------------------------
    SI CA12X	 = '' 
    	ALORS	OPT	:=	'0'
    	SINON	OPT	:=	'1'
    FINSI
    ---------------------------------------------
    SI dossier.NumeroRCM =  ? 
    	ALORS	CM	:=	'0'
    	SINON	CM	:=	'1'
    FINSI

    CA12Du3	:=	chaine{6 , '0'}
    		CA12Du3	:=	chaine{CA12Du3,2 ,1 ,'' + jour {CA12Du}}
    		CA12Du3	:=	chaine{CA12Du3,4 ,3 ,'' + mois {CA12Du}}
    		CA12Du3	:=	chaine{CA12Du3,6 ,5 ,chaine {'' + annee{CA12Du},3 ,4}}
    
    CA12Au3	:=	chaine{6 , '0'}
    		CA12Au3	:=	chaine{CA12Au3,2 ,1 ,'' + jour {CA12Au}}
    		CA12Au3	:=	chaine{CA12Au3,4 ,3 ,'' + mois {CA12Au}}
    		CA12Au3	:=	chaine{CA12Au3,6 ,5 ,chaine {'' + annee{CA12Au},3 ,4}}
    
    -------------------------INITIALISATION CA3 - CA12---------------------------------------
    
    NomDossier	:=	dossier.RaisonSociale
    
    AdrDoss1		:=	dossier.Adresse1	-- + '  ' +  dossier.Adresse2 + '  ' + dossier.Adresse3
    AdrDoss1bis		:=	dossier.Adresse2 + '  ' + dossier.Adresse3
    AdrDoss2		:=	dossier.CodePostal + '    ' + dossier.Ville
    
    TEL := dossier.Telephone	
    
    NumTVAIntra	:=	dossier.NumTVAIntra + chaine {dossier.Siret , 10 , 14}	-- corrigé TGO 24/07/2002
    SI dossier.SiretTva <> ? ALORS NumTVAIntra := dossier.NumTVAIntra + chaine {dossier.SiretTva , 10 , 14} FINSI	-- cas particulier de déclaration faite sous un siret différent du DP	

    NumTVAIntra1 := chaine{NumTVAIntra, 1, 2}
    NumTVAIntra2 := chaine{NumTVAIntra, 3, 4}
    NumTVAIntra3 := chaine{NumTVAIntra, 5, 14}

    siretDossier1 := chaine{dossier.Siret, 1, 9}
    siretDossier2 := chaine{dossier.Siret, 10, 14}
    
    CodAct		:=	dossier.Ape
    
    SI Lieu	= ? 	ALORS	Lieu 	:=	dossier.Ville 	FINSI 
    SI DateCA = ? 	ALORS	DateCA 	:=	aujourdhui {}	FINSI
    
    AdrServ1		:=	dossier.AdrRec1		
    AdrServ2		:=	dossier.AdrRec2			
    AdrServ3		:=	dossier.AdrRec3			
    AdrServ4		:=	dossier.CPRec + ' ' + dossier.VilleRec	
    
    mm	:=	mois {periode.fin}
    
    ------------CALCUL JOUR ET MOIS LIMITE----------------------
    
    JourLimite	:=	dossier.JourLimite
    SI JourLimite	=	?  ALORS
    info{'Vous devez renseigner le jour limite de dépôt
    depuis le Dossier permanent, contact "SIE", onglet "SIE".'}
    FINSI
    MoisLimite	:=	nomMois{mm + 1}
    
    MoisLimiteCerfa_C := MoisLimite
    
    ------------AU MOIS--------------
    
    SI dossier.PeriodTVA = 'Mensuel' ALORS
    PeriodeCA	:=	nomMois { mm } +  '       ' + annee {periode.fin }
    FINSI
    
    ----------AU TRIMESTRE EN REEL--------
    
    SI dossier.PeriodTVA = 'Trimestriel'  ET mm = 3  ALORS
    PeriodeCA := '1er TRIMESTRE' + '  ' + annee {periode.fin }
    FINSI
    
    SI dossier.PeriodTVA = 'Trimestriel'  ET mm = 6  ALORS
    PeriodeCA := '2ème TRIMESTRE' + '  ' + annee {periode.fin }
    FINSI
    
    SI dossier.PeriodTVA = 'Trimestriel' ET mm = 9  ALORS
    PeriodeCA := '3ème TRIMESTRE' + '  ' + annee {periode.fin }
    FINSI
    
    SI dossier.PeriodTVA = 'Trimestriel' ET mm = 12  ALORS
    PeriodeCA := '4ème TRIMESTRE' + '  ' + annee {periode.fin }
    FINSI
    -----------CODIFICATION SELON DGI--------------------
    
    ----------------------------TVA REEL NORMAL ET MINIREEL-----------------------------
    
    SI TVARN ALORS
    	SI dossier.RegimeTVA = 'Réel Normal' ALORS
    		CodeRegime := 1
    		SI dossier.PeriodTVA = 'Mensuel' ALORS	Regime	:=	'EM'	FINSI
    		SI dossier.PeriodTVA =  'Trimestriel' ALORS	Regime	:=	'ET'	FINSI
    		SI dossier.PeriodTVA =  'Saisonnier' ALORS	Regime	:=	'ES'	FINSI
    		SI dossier.PeriodTVA = 'Acomptes Provisionnel' ALORS					-- Correction libellé TGO 02/01/2001
    			CodeRegime	:=	2
    			Regime		:=	'AM'
    		FINSI
    	FINSI
    
    	SI dossier.RegimeTVA = 'Mini-Réel' ALORS
    		CodeRegime := 7
    		SI dossier.PeriodTVA = 'Mensuel' ALORS	Regime	:=	'RM'	FINSI
    		SI dossier.PeriodTVA =  'Trimestriel' ALORS	Regime	:=	'RT'	FINSI
    		SI dossier.PeriodTVA =  'Saisonnier' ALORS	Regime	:=	'RS'	FINSI
    	FINSI    
    FINSI   
    
    ----------------------------TVA REEL SIMPLIFIE-----------------------------
    SI TVARS ALORS
    	SI dossier.PeriodTVA	= ?  ALORS
    		info {'La périodicité de TVA est obligatoire,
    veuillez la renseigner dans le dossier
    permanent avant de compléter le formulaire.'}
    	FINSI
    
    	CodeRegime := 3
    	SI dossier.PeriodTVA =  'Saisonnier' 
    		ALORS	Regime	:=	'SS'
    		SINON 	Regime	:=	'ST'
    	FINSI
    FINSI
    
    ----------------CALCUL AUTOMATIQUE DE LA PERIODE-------------    
    
    -----------------TVA REEL---------------------
    SI TVARN ALORS
    
    	Periode := chaine {5 , '0' }
    	Periode := chaine { Periode, 3 , 3 , ' ' }
    	Periode := chaine { Periode, 2 , 1 , '' + mois {periode.fin}}
    	Periode := chaine { Periode, 5 , 4 , chaine {'' + annee{periode.fin}, 3 , 4}}
    	SI dossier.PeriodTVA =  'Trimestriel'  ALORS
    		mm	:=	mois {periode.fin}
    		SI mm = 03 ALORS Periode := chaine { Periode, 1 , 2 , '31'} FINSI
    		SI mm = 06 ALORS Periode := chaine { Periode, 1 , 2 , '32'} FINSI
    		SI mm = 09 ALORS Periode := chaine { Periode, 1 , 2 , '33'} FINSI
    		SI mm = 12 ALORS Periode := chaine { Periode, 1 , 2 , '34'} FINSI
    	FINSI
    FINSI
    
    -----------------TVA SIMPLIFIE---------------------
    SI TVARS ALORS
    
    	Periode	:=	chaine {5 , '0' }
    	mm	:=	mois {periode.fin}
    	Periode := chaine { Periode, 3 , 3 , ' ' }
    	Periode := chaine { Periode, 2 , 1 , '' + mois {periode.moisCourant}}
    	Periode := chaine { Periode, 5 , 4 , chaine {'' + annee{periode.moisCourant}, 3 , 4}}
    	SI TVARS ALORS
    		SI mm = 12 ALORS Periode := chaine { Periode, 1 , 2 , '99'} FINSI
    		SI mm <> 12 ALORS Periode := chaine { Periode, 1 , 2 , '98'} FINSI
    	FINSI    
    FINSI
    
    ------------------------------------------
    --Report du crédit de TVA
    _24_C	:=	chercherDerniereTVA{}
    ------------------------------------------
    
    SI dossier.NuméroFrp = ?	ALORS
    	dossier.NuméroFrp := dossier.NumRecette + dossier.Ndoss + dossier.CleRecette 
    FINSI
    
    numFrp := dossier.NuméroFrp
    
    libelleDossier := 'Dossier : ' + dossier.Ndoss
    
    EDITVA_moisFin := '' + mm
    EDITVA_regime := Regime	
    
    SORTIR VRAI
###
'INTER_CA12_page1' 'Toutes fonctions'
    
    SI dateDebutDate = ? ALORS
    	dateDebutDate := dateDebutDate_C
    FIN SI
    SI dateFinDate = ? ALORS
    	dateFinDate 	:= dateFinDate_C
    FIN SI
    
    SI dateDebutDate < exerciceComptable.dateDebut OU dateDebutDate > exerciceComptable.dateFin
    OU dateFinDate < exerciceComptable.dateDebut OU dateFinDate > exerciceComptable.dateFin ALORS
    	info{'La période de déclaration doit être comprise dans l''exercice.'}
    	dateDebutDate	:=	dateDebutDate_C
    	dateFinDate		:=	dateFinDate_C
    FIN SI
    
    SI ''+dateFinDate # '31/12'	ALORS	
    	CA12X :=  ''
    	CA12EX := 'XXXXXXXXX'
    SINON
    	CA12X :=  'XXXXXXXXX'
    	CA12EX := ''
    FINSI
###
'INTER_CA12_page2' 'Toutes fonctions'
    
    |
    	_21calcule <Monnaie> 
    |
    
    -- SUPPRESSION DECIMALES BASES --
    -- Pour éviter des erreurs d'arrondis avec des décimales masquées à l'affichage mais existant dans la variable --
    -- entier{monnaie}   0,15 > 0     0,50 > 1    0,75 > 1
    
    B01 :=  arrondiMonnaieSupZero{VRAI, B01}
    B02 :=  arrondiMonnaieSupZero{VRAI, B02}
    B03 :=  arrondiMonnaieSupZero{VRAI, B03}
    B04 :=  arrondiMonnaieSupZero{VRAI, B04}
    B04B :=  arrondiMonnaieSupZero{VRAI, B04B}
    B04D :=  arrondiMonnaieSupZero{VRAI, B04D}
    3517S_ER :=  arrondiMonnaieSupZero{VRAI, 3517S_ER}
    
    B05 :=  arrondiMonnaieSupZero{VRAI, B05}
    B05A :=  arrondiMonnaieSupZero{VRAI, B05A}
    3517S_EK :=  arrondiMonnaieSupZero{VRAI, 3517S_EK}
    B06 :=  arrondiMonnaieSupZero{VRAI, B06}
    B06B :=  arrondiMonnaieSupZero{VRAI, B06B}
    B06C :=  arrondiMonnaieSupZero{VRAI, B06C}
    B07 :=  arrondiMonnaieSupZero{VRAI, B07}
    B08 :=  arrondiMonnaieSupZero{VRAI, B08}
    B09 :=  arrondiMonnaieSupZero{VRAI, B09}
    3517S_AV :=  arrondiMonnaieSupZero{VRAI, 3517S_AV}
    B10 :=  arrondiMonnaieSupZero{VRAI, B10}
    BAA :=  arrondiMonnaieSupZero{VRAI, BAA}
    BAB :=  arrondiMonnaieSupZero{VRAI, BAB}
    B11 :=  arrondiMonnaieSupZero{VRAI, B11}
    B12 :=  arrondiMonnaieSupZero{VRAI, B12}
    B13 :=  arrondiMonnaieSupZero{VRAI, B13}
    B06B :=  arrondiMonnaieSupZero{VRAI, B06B}
    B08B :=  arrondiMonnaieSupZero{VRAI, B08B}
    3317S_EE :=  arrondiMonnaieSupZero{VRAI, 3317S_EE}
    
    L6B_BHT :=  arrondiMonnaieSupZero{VRAI, L6B_BHT}
    L8B_BHT :=  arrondiMonnaieSupZero{VRAI, L8B_BHT}
    BAC :=  arrondiMonnaieSupZero{VRAI, BAC}

    -- arrondis nécessaires en EDITVA
    _05 :=  arrondiMonnaieSupZero{FAUX, B05*0.196}
	SI exerciceComptable.automatismesBNC ET exerciceComptable.autoBNC_CA12 ALORS 
		_05A :=  arrondiMonnaieSupZero{FAUX, _05A}
		_07 :=  arrondiMonnaieSupZero{FAUX, _07}
	SINON
		_05A :=  arrondiMonnaieSupZero{FAUX, B05A*0.2}
		_07 :=  arrondiMonnaieSupZero{FAUX, B07*0.085}
	FINSI
	3517S_FK := arrondiMonnaieSupZero{FAUX, 3517S_EK*0.2}
    _06 :=  arrondiMonnaieSupZero{FAUX, B06*0.055}
    _B06B :=  arrondiMonnaieSupZero{FAUX, B06B*0.07}
    _06C :=  arrondiMonnaieSupZero{FAUX, B06C*0.1}
    _08 :=  arrondiMonnaieSupZero{FAUX, B08*0.021}
    _09 :=  arrondiMonnaieSupZero{VRAI, _09}
    3517S_AW :=  arrondiMonnaieSupZero{FAUX, 3517S_AV*0.13}
    _10 :=  arrondiMonnaieSupZero{VRAI, _10}
    _AA :=  arrondiMonnaieSupZero{VRAI, _AA}
    _AB :=  arrondiMonnaieSupZero{VRAI, _AB}
    _AC :=  arrondiMonnaieSupZero{VRAI, _AC}
    _11 :=  arrondiMonnaieSupZero{VRAI, _11}
    _12	:=  arrondiMonnaieSupZero{VRAI, _12}
    _13	:=  arrondiMonnaieSupZero{VRAI, _13}

    Pourc := arrondiMonnaieSupZero{VRAI, Pourc}
        
    _16 := _05 + _05A + _06 + _06C + L6B_TXD + _07 + _08 + L8B_TXD + _09 + _10 + _AA + _AB + _AC + _11 + _12 + _13 + _B06B + _B08B + 3517S_FK + 3517S_AW
    _17 :=  arrondiMonnaieSupZero{VRAI, _17}
    _18 :=  arrondiMonnaieSupZero{VRAI, _18}
    _AD :=  arrondiMonnaieSupZero{VRAI, _AD}
    _19 := _16 + _17 + _18 + _AD
    _21calcule :=  arrondiMonnaieSupZero{FAUX, (B02 + B03 + B04 + B04B + B04D + B05 + B05A + B06 + B06B + 3317S_EE + B06C + B07 + B08 + B09 + B10 + 3517S_ER + 3517S_EK + 3517S_AV) * 0.2 / 100}
    _21  :=  arrondiMonnaieSupZero{VRAI, _21}
    
    SI _21 <> ? ET _21 <> _21calcule ALORS
    	info {'Le montant saisi à la ligne 21 doit correspondre à la somme des bases HT des lignes 2 à 10 multipliée par 0.20%.
    Le montant attendu dans cette zone est : ' + _21calcule}
    	_21	:=	?
    FINSI	
    
    _20 :=  arrondiMonnaieSupZero{VRAI, _20}   
    _22	:=	_20 + _21
    
    SI _24 = ? ALORS
    	_24	:=	_24_C
    FINSI
    
    _23 :=  arrondiMonnaieSupZero{VRAI, _23}
    _24 :=  arrondiMonnaieSupZero{VRAI, _24}
    _25 :=  arrondiMonnaieSupZero{VRAI, _25}
    _AE :=  arrondiMonnaieSupZero{VRAI, _AE}
    _26	:=	_22 + _23 + _24 + _25 + _AE

    INTER_CA12_page3{}
###
'INTER_CA12_page3' 'Toutes fonctions'

    |
    	i<Entier>
    |
            
    ac11 :=  arrondiMonnaieSupZero{VRAI, ac11}
    ac12 :=  arrondiMonnaieSupZero{VRAI, ac12}
    ac21 :=  arrondiMonnaieSupZero{VRAI, ac21}
    ac22 :=  arrondiMonnaieSupZero{VRAI, ac22}

    
    actot1	:=	ac11 + ac12
    actot2	:=	ac21 + ac22

	_36 := arrondiSup {((3517S_ZR * (5 / 100)) - 0.4999999)}
    _36 :=  arrondiMonnaieSupZero{FAUX, _36}	

	_39 := arrondiSup {((3317S_ZE * (0.20 / 100)) - 0.4999999)}
    _39 :=  arrondiMonnaieSupZero{FAUX, _39}	

	_40 := arrondiSup {((3317S_ZF * (3.25 / 100)) - 0.4999999)}
    _40 :=  arrondiMonnaieSupZero{FAUX, _40}	
	
	3517S_NX := arrondiSup {((3517S_TL * (1.8025 / 100)) - 0.4999999)}
    3517S_NX :=  arrondiMonnaieSupZero{FAUX, 3517S_NX}
	
	3517S_LL := arrondiSup {((3517S_UL * (15 / 100)) - 0.4999999)}
    3517S_LL :=  arrondiMonnaieSupZero{FAUX, 3517S_LL}

	_42 := arrondiSup {((3317S_ZG * (5.15 / 100)) - 0.4999999)}
    _42 :=  arrondiMonnaieSupZero{FAUX, _42}	

	_43 := arrondiSup {((3317S_ZH * (15 / 100)) - 0.4999999)}
    _43 :=  arrondiMonnaieSupZero{FAUX, _43}	

    3517S_SQ := arrondiSup {((3517S_SR * (5.15 / 100)) - 0.4999999)}
    3517S_SQ :=  arrondiMonnaieSupZero{FAUX, 3517S_SQ}

    3517S_SS := arrondiSup {((3517S_ST * (15 / 100)) - 0.4999999)}
    3517S_SS :=  arrondiMonnaieSupZero{FAUX, 3517S_SS}

    _44 := 3317S_ZJ * 14.89
    _44 :=  arrondiMonnaieSupZero{FAUX, _44}

	_46 := arrondiSup {((3317S_ZL * (0.75 / 100)) - 0.4999999)}
    _46 :=  arrondiMonnaieSupZero{FAUX, _46}	

	_47 := arrondiSup {((3517S_ZS * (1 / 100)) - 0.4999999)}
    _47 :=  arrondiMonnaieSupZero{FAUX, _47}	

	_64 := 3517S_SP * 125
    _64 :=  arrondiMonnaieSupZero{FAUX, _64}

    _67 := 3517S_ZZ * 11%
	_67 :=  arrondiMonnaieSupZero{FAUX, _67}

	_68 := 3517S_YC * 6%    	   
	_68 :=  arrondiMonnaieSupZero{FAUX, _68}	

	_69 := arrondiSup {((_69BI * (0.5 / 100)) - 0.4999999)}
    _69 :=  arrondiMonnaieSupZero{FAUX, _69}

	_70 := arrondiSup {((_70BI * (0.5 / 100)) - 0.4999999)}
    _70 :=  arrondiMonnaieSupZero{FAUX, _70}	

    _71 := 3317S_ZM * 20.2% 
	_71 :=  arrondiMonnaieSupZero{FAUX, _71}

	_72 := 3317S_YA * 6.9%
	_72 :=  arrondiMonnaieSupZero{FAUX, _72}

	_73 := 3317S_YB * 12%
	_73 :=  arrondiMonnaieSupZero{FAUX, _73}

	_76 := 3317S_ZN * 33.7%
    _76 :=  arrondiMonnaieSupZero{FAUX, _76}	

	_77 := 3317S_ZN * 10.6%
    _77 :=  arrondiMonnaieSupZero{FAUX, _77}	

	_78 := 3317S_ZN * 10.6%
    _78 :=  arrondiMonnaieSupZero{FAUX, _78}	

    _79 := 3317S_ZP * 1.8%
    _79 :=  arrondiMonnaieSupZero{FAUX, _79}

    _80 := 3317S_ZP * 0.2%
    _80 :=  arrondiMonnaieSupZero{FAUX, _80}

	3517S_AP := 3517S_AT * 27.9%
    3517S_AP :=  arrondiMonnaieSupZero{FAUX, 3517S_AP}	

	3517S_AQ := 3517S_AT * 6.6%
    3517S_AQ :=  arrondiMonnaieSupZero{FAUX, 3517S_AQ}	

	3517S_AR := 3517S_AT * 6.6%
    3517S_AR :=  arrondiMonnaieSupZero{FAUX, 3517S_AR}


    3517S_SX := 3517S_XA * 0.54
    3517S_SX :=  arrondiMonnaieSupZero{FAUX, 3517S_SX}


    _28 :=  arrondiMonnaieSupZero{VRAI, _28}	
    _29 :=  arrondiMonnaieSupZero{VRAI, _29}	
    _30 :=  arrondiMonnaieSupZero{VRAI, _30}	
    _31 :=  arrondiMonnaieSupZero{VRAI, _31}	
    _32 :=  arrondiMonnaieSupZero{VRAI, _32}	
    _33 :=  arrondiMonnaieSupZero{VRAI, _33}	
    _34 :=  arrondiMonnaieSupZero{VRAI, _34}	
    _35 :=  arrondiMonnaieSupZero{VRAI, _35}	
    _37 :=  arrondiMonnaieSupZero{VRAI, _37}	
    _38 :=  arrondiMonnaieSupZero{VRAI, _38}	
    _44 :=  arrondiMonnaieSupZero{VRAI, _44}
   	
	3517S_BS_C := 0	
	3517S_BT_C := 0	
	SI 3517S_BU1 <> '?' ALORS					 	 
		3517S_BR1_C := 3517S_BN1 - 3517S_BP1 - 3517S_BQ1
		
		SI 3517S_BU1 = '1' OU 3517S_BU1 = '2' OU 3517S_BU1 = '3' ALORS
			3517S_BS_C += 3517S_BR1_C
		SINON
			SI 3517S_BU1 = '4' ALORS
				3517S_BT_C += 3517S_BR1_C
			FINSI
		FINSI
				
		SI 3517S_BR1 = ? OU 3517S_BR1 = 0 ALORS 
			3517S_BR1 := 3517S_BR1_C				
		FINSI
	FINSI
	
	SI 3517S_BU2 <> '?' ALORS					 	 
		3517S_BR2_C := 3517S_BN2 - 3517S_BP2 - 3517S_BQ2
		
		SI 3517S_BU2 = '1' OU 3517S_BU2 = '2' OU 3517S_BU2 = '3' ALORS
			3517S_BS_C += 3517S_BR2_C
		SINON
			SI 3517S_BU2 = '4' ALORS
				3517S_BT_C += 3517S_BR2_C
			FINSI
		FINSI
				
		SI 3517S_BR2 = ? OU 3517S_BR2 = 0 ALORS 
			3517S_BR2 := 3517S_BR2_C				
		FINSI
	FINSI
	
	SI 3517S_BU3 <> '?' ALORS					 	 
		3517S_BR3_C := 3517S_BN3 - 3517S_BP3 - 3517S_BQ3
		
		SI 3517S_BU3 = '1' OU 3517S_BU3 = '2' OU 3517S_BU3 = '3' ALORS
			3517S_BS_C += 3517S_BR3_C
		SINON
			SI 3517S_BU3 = '4' ALORS
				3517S_BT_C += 3517S_BR3_C
			FINSI
		FINSI
				
		SI 3517S_BR3 = ? OU 3517S_BR3 = 0 ALORS 
			3517S_BR3 := 3517S_BR3_C				
		FINSI
	FINSI
	
	SI 3517S_BU4 <> '?' ALORS					 	 
		3517S_BR4_C := 3517S_BN4 - 3517S_BP4 - 3517S_BQ4
		
		SI 3517S_BU4 = '1' OU 3517S_BU4 = '2' OU 3517S_BU4 = '3' ALORS
			3517S_BS_C += 3517S_BR4_C
		SINON
			SI 3517S_BU4 = '4' ALORS
				3517S_BT_C += 3517S_BR4_C
			FINSI
		FINSI
				
		SI 3517S_BR4 = ? OU 3517S_BR4 = 0 ALORS 
			3517S_BR4 := 3517S_BR4_C				
		FINSI
	FINSI
	
	SI 3517S_BS = ? OU 3517S_BS = 0 ALORS 3517S_BS := 3517S_BS_C FINSI
	SI 3517S_BT = ? OU 3517S_BT = 0 ALORS 3517S_BT := 3517S_BT_C FINSI	
		
    3517S_CJ := 3517S_BS + 3517S_BT

   	3517S_NR :=  arrondiMonnaieSupZero{VRAI, 3517S_NR}
    3517S_XF :=  arrondiMonnaieSupZero{VRAI, 3517S_XF}
    3517S_BG :=  arrondiMonnaieSupZero{VRAI, 3517S_BG}	
    _49 :=  arrondiMonnaieSupZero{VRAI, _49}	
    _50 :=  arrondiMonnaieSupZero{VRAI, _50}	
    _51 :=  arrondiMonnaieSupZero{VRAI, _51}	
    _54 :=  arrondiMonnaieSupZero{VRAI, _54}	
    _55 :=  arrondiMonnaieSupZero{VRAI, _55}	
    _56 :=  arrondiMonnaieSupZero{VRAI, _56}	
    _57 :=  arrondiMonnaieSupZero{VRAI, _57}	
    _4F :=  arrondiMonnaieSupZero{VRAI, _4F}	
    _4K :=  arrondiMonnaieSupZero{VRAI, _4K}	
    _4L :=  arrondiMonnaieSupZero{VRAI, _4L}
    3517S_CG :=  arrondiMonnaieSupZero{VRAI, 3517S_CG}		
    _4T :=  arrondiMonnaieSupZero{VRAI, _4T}	
    _60A :=  arrondiMonnaieSupZero{VRAI, _60A}	
    _60B :=  arrondiMonnaieSupZero{VRAI, _60B}
    _61 :=  arrondiMonnaieSupZero{VRAI, _61}	
    _62 :=  arrondiMonnaieSupZero{VRAI, _62}	
    _63 :=  arrondiMonnaieSupZero{VRAI, _63}	
    _65 :=  arrondiMonnaieSupZero{VRAI, _65}
    _66 :=  arrondiMonnaieSupZero{VRAI, _66}
    _67 :=  arrondiMonnaieSupZero{VRAI, _67}
    _68 :=  arrondiMonnaieSupZero{VRAI, _68}	
    _69BI :=  arrondiMonnaieSupZero{VRAI, _69BI}
    _70BI :=  arrondiMonnaieSupZero{VRAI, _70BI}	
    _71 :=  arrondiMonnaieSupZero{VRAI, _71}
    _72 :=  arrondiMonnaieSupZero{VRAI, _72}
    _73 :=  arrondiMonnaieSupZero{VRAI, _73}
    _74 :=  arrondiMonnaieSupZero{VRAI, _74}
    _75 :=  arrondiMonnaieSupZero{VRAI, _75}
    _76 :=  arrondiMonnaieSupZero{VRAI, _76}
    _77 :=  arrondiMonnaieSupZero{VRAI, _77}
    _78 :=  arrondiMonnaieSupZero{VRAI, _78}
    _79 :=  arrondiMonnaieSupZero{VRAI, _79}
    _80 :=  arrondiMonnaieSupZero{VRAI, _80}
    3517S_AP :=  arrondiMonnaieSupZero{VRAI, 3517S_AP}
    3517S_AQ :=  arrondiMonnaieSupZero{VRAI, 3517S_AQ}
    3517S_AR :=  arrondiMonnaieSupZero{VRAI, 3517S_AR}
    3517S_AT :=  arrondiMonnaieSupZero{VRAI, 3517S_AT}

    -- calcul des totaux des extensions
    3517S_SH := 0
    3517S_AE := 0
    i := 1
    TANT QUE i <= 114 FAIRE
		etat!{'3310A_PH'+i}monnaie :=  arrondiMonnaieSupZero{VRAI, etat!{'3310A_PH'+i}monnaie}
    	3517S_SH += etat!{'3310A_PH'+i}monnaie

    	SI i <= 65 ET i >= 4 ALORS
			etat!{'3310A_QB'+i}monnaie :=  arrondiMonnaieSupZero{VRAI, etat!{'3310A_QB'+i}monnaie}
	    	3517S_AE += etat!{'3310A_QB'+i}monnaie
	    FINSI

    	SI i <= 9 ALORS
    		etat!{'3517S_SE'+i}monnaie :=  arrondiMonnaieSupZero{VRAI, etat!{'3517S_SE'+i}monnaie}
    		3517S_SH += etat!{'3517S_SE'+i}monnaie
    	FIN SI

    	SI i <= 10 ALORS
    		etat!{'3517S_AB'+i}monnaie :=  arrondiMonnaieSupZero{VRAI, etat!{'3517S_AB'+i}monnaie}
    		3517S_AE += etat!{'3517S_AB'+i}monnaie
    	FIN SI

    	i += 1

    FIN FAIRE    

    3517S_SH :=  arrondiMonnaieSupZero{VRAI, 3517S_SH}
    3517S_AE :=  arrondiMonnaieSupZero{VRAI, 3517S_AE}

    3517S_SV :=  arrondiMonnaieSupZero{VRAI, 3517S_SV}
    3517S_RD :=  arrondiMonnaieSupZero{VRAI, 3517S_RD}
    prochAc :=	 arrondiMonnaieSupZero{VRAI, prochAc}
    
    3517S_SU :=  arrondiMonnaieSupZero{VRAI, 3517S_SU}
    3517S_AA :=  arrondiMonnaieSupZero{VRAI, 3517S_AA}

    3517S_AF := 3517S_SU + 3517S_AA

    _30	:=	actot1 + actot2
    
    SI _19 > _26	
    	ALORS	_28 := _19 - _26
    		_29 := ?
    	SINON	_28 := ?	
    		_29 := _26 - _19
    FINSI
    
    SI (_28 + _32 - _29 - _30 - _31) >=  0	
    	ALORS 	_33 := _28 + _32 - _29 - _30 - _31
    	SINON	_33 := ?
    FINSI
    
    
    SI (_30 + _31 - _28 - _32) >=  0
    	ALORS	_34 := _30 + _31 - _28 - _32
    	SINON	_34 := ?
    FINSI
    
    SI _34 > 0 	
    	ALORS	_35 := _29 + _34	
    	SINON	_35 := _29 + _30 + _31 - _32	
    FINSI
    	
    SI NON (_33 =?) ALORS
    	_34 := ?
    	_35 := ?
    FINSI
    
    _49 := _35
    
    _50 := DDR_AD
    
	_55	:=	_36 + _37 + _38 + _39 + _40 + _42 + _43 + 3517S_SQ + 3517S_SS
			+ _44 + 3517S_CJ + 3517S_NR + 45_TAX + _46 +_47 + _4F
			+ _4K + _4L + _4T + _60A + _60B + _61 + _62 + _63 + _64 + _65
			+ _66 + _67 + _68 + _69 + _70 + _71 + _72 + _73 + _74 + _75 + _76
			+ _77 + _78 + _79 + _80 + 3517S_SH + 3517S_AE
			+ 3517S_SV + 3517S_SX + 3517S_RD
			+ 3517S_AP + 3517S_AQ + 3517S_AR + 3517S_AF
			+ 3317S_AX
			+ 3517S_XE + 3517S_XC + 3517S_BD + 3517S_JE
			+ 3517S_XF + 3517S_BG + 3517S_CG
			+ 3517S_NX + 3517S_LL

	_54	:=	_33 -3517S_LG
	_56	:=	_54 + _55 + 3517S_BJ

    SI _16 -( _11 + _12 + _22) > 0
    	ALORS	_57 := _16 -( _11 + _12 + _22)
    	SINON	_57 := ?
    FINSI    
    
    _51 := _49 - _50 - prochAc
    
    SI anJui < 1990 	OU anJui > 2024		ALORS	anJui := ?	FINSI
    SI anDec < 1990	OU anDec > 2024	ALORS	anDec := ?	FINSI
    
    SI anJui <> ?	ALORS	cocheJui := 'X'	SINON	cocheJui := ?	FINSI
    SI anDec <> ?	ALORS	cocheDec := 'X'	SINON	cocheDec := ?	FINSI
    
    
    SI 4C_LIB <> ? ALORS
    	4C_NUM	:=	'4224'
    SINON
    	4C_NUM	:=	''
    FIN SI

    3517S_ZZ :=  arrondiMonnaieSupZero{VRAI, 3517S_ZZ}
    3517S_ZR :=  arrondiMonnaieSupZero{VRAI, 3517S_ZR}
    3317S_ZE :=  arrondiMonnaieSupZero{VRAI, 3317S_ZE}
    3317S_ZF :=  arrondiMonnaieSupZero{VRAI, 3317S_ZF}
    3317S_ZG :=  arrondiMonnaieSupZero{VRAI, 3317S_ZG}
    3317S_ZH :=  arrondiMonnaieSupZero{VRAI, 3317S_ZH}
    3317S_ZL :=  arrondiMonnaieSupZero{VRAI, 3317S_ZL}
    3517S_ZS :=  arrondiMonnaieSupZero{VRAI, 3517S_ZS}

    INTER_CA12_page6{}
###
'INTER_CA12_page4' 'Toutes fonctions'

	3517S_ZZ :=  arrondiMonnaieSupZero{VRAI, 3517S_ZZ}
	3517S_YC :=  arrondiMonnaieSupZero{VRAI, 3517S_YC}
	3317S_ZM :=  arrondiMonnaieSupZero{VRAI, 3317S_ZM}
    3317S_YA :=  arrondiMonnaieSupZero{VRAI, 3317S_YA}
	3317S_YB :=  arrondiMonnaieSupZero{VRAI, 3317S_YB}
	3317S_ZN :=  arrondiMonnaieSupZero{VRAI, 3317S_ZN}
	3317S_ZP :=  arrondiMonnaieSupZero{VRAI, 3317S_ZP}
	3517S_SU :=  arrondiMonnaieSupZero{VRAI, 3517S_SU}
	
	3317S_AG :=  arrondiMonnaieSupZero{VRAI, 3317S_AG}
	3317S_AH :=  arrondiMonnaieSupZero{VRAI, 3317S_AH}
	3317S_AJ :=  arrondiMonnaieSupZero{VRAI, 3317S_AJ}
	3317S_AK :=  arrondiMonnaieSupZero{VRAI, 3317S_AK}
	3317S_AY :=  arrondiMonnaieSupZero{VRAI, 3317S_AY}
	3317S_AX :=  3317S_AG + 3317S_AH + 3317S_AJ + 3317S_AK + 3317S_AY	
	
	3517S_JE := 3517S_CE * 0.9% + 3517S_HE * 0.1%

###
'INTER_CA12_page5' 'Toutes fonctions'
	|i<Entier>|

	i := 1
	TANT QUE i <= 10 FAIRE
	-- Pour le problème en cas d'import de la Révision
		SI (etat!{'3517S_AC'+i}chaine # '1 ') OU
			(etat!{'3517S_AC'+i}chaine # '2 ') OU
			(etat!{'3517S_AC'+i}chaine # '3 ') OU
			(etat!{'3517S_AC'+i}chaine # '4 ') OU
			(etat!{'3517S_AC'+i}chaine # '5 ') OU
			(etat!{'3517S_AC'+i}chaine # '6 ') OU
			(etat!{'3517S_AC'+i}chaine # '7 ') OU
			(etat!{'3517S_AC'+i}chaine # '8 ') OU
			(etat!{'3517S_AC'+i}chaine # '9 ') ALORS

			etat!{'3517S_AC'+i}chaine := '0'+ etat!{'3517S_AC'+i}chaine
		FINSI

		etat!{'3517S_AC'+i}chaine := chaine{etat!{'3517S_AC'+i}chaine,1,25}
		
		i += 1
	FIN FAIRE

	i := 11
	TANT QUE i <= 72 FAIRE
	-- Pour le problème en cas d'import de la Révision
		SI (etat!{'3310A_QC'+i}chaine # '1 ') OU
			(etat!{'3310A_QC'+i}chaine # '2 ') OU
			(etat!{'3310A_QC'+i}chaine # '3 ') OU
			(etat!{'3310A_QC'+i}chaine # '4 ') OU
			(etat!{'3310A_QC'+i}chaine # '5 ') OU
			(etat!{'3310A_QC'+i}chaine # '6 ') OU
			(etat!{'3310A_QC'+i}chaine # '7 ') OU
			(etat!{'3310A_QC'+i}chaine # '8 ') OU
			(etat!{'3310A_QC'+i}chaine # '9 ') ALORS

			etat!{'3310A_QC'+i}chaine := '0'+ etat!{'3310A_QC'+i}chaine
		FINSI

		etat!{'3310A_QC'+i}chaine := chaine{etat!{'3310A_QC'+i}chaine,1,25}
		
		i += 1
	FIN FAIRE


	3517S_AA :=  arrondiMonnaieSupZero{VRAI, 3517S_AA}
	3517S_SU :=  arrondiMonnaieSupZero{VRAI, 3517S_SU}
	
	3517S_AF := 3517S_SU + 3517S_AA
	
	3517S_UE :=  arrondiMonnaieSupZero{VRAI, 3517S_UE}

	3517S_XK :=  arrondiMonnaieSupZero{VRAI, 3517S_XK}
	3517S_CL :=  arrondiMonnaieSupZero{VRAI, 3517S_CL}
	3517S_DD :=  arrondiMonnaieSupZero{VRAI, 3517S_DD}
	3517S_XH :=  3517S_XK + 3517S_CL + 3517S_DD

	3517S_TE :=  arrondiMonnaieSupZero{VRAI, 3517S_TE}
	3517S_TF :=  arrondiMonnaieSupZero{VRAI, 3517S_TF}
	3517S_HG :=  arrondiMonnaieSupZero{VRAI, 3517S_HG}

	SI 3517S_TE + 3517S_TF + 3517S_HG > _33 ALORS
		info{'Le total du crédit de TIC imputé sur la TVA (X4) ne peut pas dépasser le montant de la TVA due (ligne 33).'}
		3517S_TE := ?
		3517S_TF := ?
		3517S_HG := ?
		3517S_JG := ?
	FINSI

	3517S_JG :=  3517S_TE + 3517S_TF + 3517S_HG --X4

	3517S_LG := 3517S_JG

	SI (3517S_XK - 3517S_TE > 0) ALORS
		3517S_NT := 3517S_XK - 3517S_TE
	SINON
		3517S_NT := 0
	FINSI

	SI (3517S_CL - 3517S_TF > 0) ALORS
		3517S_TG := 3517S_CL - 3517S_TF
	SINON
		3517S_TG := 0
	FINSI

	SI (3517S_DD - 3517S_HG > 0) ALORS
		3517S_UG := 3517S_DD - 3517S_HG
	SINON
		3517S_UG := 0
	FINSI

	3517S_XG :=  3517S_NT + 3517S_TG + 3517S_UG --Y4
	
	SI 3517S_JG + 3517S_XG - _33 > 0 ALORS
		3517S_BH := 3517S_JG + 3517S_XG - _33
	SINON
		3517S_BH := 0
	FINSI

	3517S_GL :=  arrondiMonnaieSupZero{VRAI, 3517S_GL}
	3517S_HL :=  arrondiMonnaieSupZero{VRAI, 3517S_HL}
	3517S_JL :=  arrondiMonnaieSupZero{VRAI, 3517S_JL}
	3517S_LH :=  3517S_GL + 3517S_HL + 3517S_JL --Z4
	3517S_BJ := 3517S_LH



	_54	:=	_33 - 3517S_LG

###
'INTER_CA12_page6' 'Toutes fonctions'
    
    |
    	CRDentier<Entier>
    |
    
    DDR_AA :=  arrondiMonnaieSupZero{VRAI, DDR_AA}	
    DDR_AB :=  arrondiMonnaieSupZero{VRAI, DDR_AB}	
    DDR_AC :=  arrondiMonnaieSupZero{VRAI, DDR_AC}	
    DDR_AD :=  arrondiMonnaieSupZero{VRAI, DDR_AD}	
    DDR_AE :=  arrondiMonnaieSupZero{VRAI, DDR_AE}	
    DDR_AG :=  arrondiMonnaieSupZero{VRAI, DDR_AG}	
    
    CRDentier	:=	?
    
    -- MODIF scr le 19/02/15 : Maestro 319781
    SI DDR_BB <> ? ALORS
    	DDR_AA	:=	_29
    SINON
    	SI _29 >= 150			-- seuil à 150 euros	
    		ALORS	DDR_AA := _29
    		SINON	DDR_AA := ?
    	FINSI
    FIN SI
    
    SI _33 <> ?  	ALORS DDR_AA := ?		FINSI	
    
    DDR_AB := _34
    
    DDR_AC := DDR_AA + DDR_AB
    

 	DDR_AE_C := DDR_AC - DDR_AD

 	3517S_LG := 3517S_JG
	
	SI 3517S_JG + 3517S_XG - _33 > 0 ALORS
		3517S_BH := 3517S_JG + 3517S_XG - _33
	SINON
		3517S_BH := 0
	FINSI
	
	_54	:=	_33 - 3517S_LG
    
    SI DDR_AE = ? ALORS
    	DDR_AE	:=	DDR_AE_C
    FIN SI
    
    SI DDR_AD <> ? ALORS
    	CRDentier :=  arrondiMonnaieSupZero{FAUX, DDR_AD}
    FINSI
    
    SI CRDentier  = ?	
    	ALORS	DDR_AG := ?
    	SINON	DDR_AG := CRDentier
    FINSI
    
    SI DDR_AH <> ?  ET DDR_AJ <>  ?	ALORS
    	info {'Vous ne pouvez pas demander le remboursement par crédit au compte et par imputation.'}
    	imputEch := ?
    FINSI
###
'OUVERTURE' 'Toutes fonctions'
    IMP:=	FAUX
    
    impression { 'entete.ps' }
    impression {'compta/24/liasse.ps'}
###
'PAGE_CA12_page_1' 'Toutes fonctions'
    CALCUL_CA12_page1 {}
    impressionDirecte {'compta/24/TVA/ca12_1.fnd'}
   	impression {'compta/24/TVA/ca12_1_c.fnd'}  
    impression {'compta/24/TVA/3517_1_c.fnd'}
    impression {'fin_page'}
###
'PAGE_CA12_page_2' 'Toutes fonctions'
    impressionDirecte {'compta/24/TVA/ca12_2.fnd'}
    impression {'compta/24/TVA/ca12_2_c.fnd'}
    impression {'fin_page'}
###
'PAGE_CA12_page_3' 'Toutes fonctions'
    impressionDirecte {'compta/24/TVA/ca12_3.fnd'}
    impression {'compta/24/TVA/ca12_3_c.fnd'}
    impression {'fin_page'}
###
'PAGE_CA12_ext1' 'Toutes fonctions'
    impressionDirecte {'compta/24/TVA/ca12_3_ext3.fnd'}
    impression {'fin_page'}
###
'PAGE_CA12_ext2' 'Toutes fonctions'
    impressionDirecte {'compta/24/TVA/ca3310a_4_ext1.fnd'}
    impression {'fin_page'}
###
'PAGE_CA12_ext3' 'Toutes fonctions'
    impressionDirecte {'compta/24/TVA/ca3310a_4_ext2.fnd'}
    impression {'fin_page'}
###
'PAGE_CA12__ext2' 'Toutes fonctions'
    impressionDirecte {'compta/24/TVA/ca3310a_4_ext2s.fnd'}
    impression {'fin_page'}
###
'PAGE_CA12_page_4' 'Toutes fonctions'
    impressionDirecte {'compta/24/TVA/ca12_4.fnd'}
    impression {'compta/24/TVA/ca12_4_c.fnd'}
    impression {'fin_page'}
###
'PAGE_CA12_page_5' 'Toutes fonctions'
    impressionDirecte {'compta/24/TVA/ca12_5.fnd'}
    impression {'compta/24/TVA/ca12_5_c.fnd'}
    impression {'fin_page'}
###
'PAGE_CA12_page_6' 'Toutes fonctions'
    INTER_CA12_page6 {}
    impressionDirecte {'compta/24/TVA/ca12_6.fnd'}
    impression {'compta/24/TVA/ca12_6_c.fnd'}
    impression {'fin_page'}
###
'recalcul' 'Toutes fonctions'

    -- Fonction pour traitement de lot EDI
    CA12_page_1 {}
    CA12_page_2 {}
    CA12_page_3 {}
    CA12_page_6 {}
###
'Menu_Importer TVA dossier BNC' 'Automatismes BNC'

	SI NON (exerciceComptable.automatismesBNC ET exerciceComptable.autoBNC_CA12) ALORS
    	info{'Ce traitement est accessible uniquement pour les exercices avec automatismes dossier BNC.'}
    	SORTIR FAUX
    FIN SI

    SI NON ouiNon{'Vous allez importer les valeurs de TVA spécifiques dossier BNC.
Souhaitez-vous continuer ?'} ALORS
    	SORTIR FAUX
    FIN SI
    
	ImporterTVACabinet{}
    affichage{}
    
    SORTIR VRAI
###
'ImporterTVACabinet' 'Automatismes BNC'

    SI etat.EstVerrouille ALORS
    	info {'L''import n''est pas possible sur un état verrouillé.'}
    	SORTIR FAUX
    FINSI

    journal ::= ?
    compte ::= ?

	B03 := ?
	B05A := ?
	B07 := ?
	B10 := ?
	_05A := ?
	_07 := ?
	_10 := ?
	_23 := ?
	_20 := ?

	POUR TOUT journal 
	TEL QUE (journal.type = 'O' OU journal.type = 'T') ET journal.numero <> 'tv' ET journal.numero <> 'TV'
	FAIRE
		POUR TOUTE ligne
		TELLE QUE (ligne.compte # '7' OU ligne.compte # '445' ) ET dateDebut <= ligne.date ET ligne.date<= dateFin ET ligne.piece <> 'ANO' 			
		FAIRE

			-- Opérations imposables et non imposables
			SI ligne.compte #'7069' OU ligne.compte #'768' OU ligne.compte #'7589' OU ligne.compte #'7019' OU ligne.compte #'7089' OU ligne.compte #'7751' OU ligne.compte #'7759' ALORS
				B03 += ligne.credit - ligne.debit
			FINSI

		--------------------------------
			-- Opérations réalisées HT
			SI ligne.compte #'7062' OU ligne.compte #'7582' OU ligne.compte #'7012' OU ligne.compte #'7082' ALORS
				B05A += ligne.credit - ligne.debit
			FINSI

			SI ligne.compte #'7061' OU ligne.compte #'7581' OU ligne.compte #'7011' OU ligne.compte #'7081' ALORS
				B07 += ligne.credit - ligne.debit
			FINSI

			SI ligne.compte #'7068' OU ligne.compte #'7588' ALORS
				B10 += ligne.credit - ligne.debit
			FINSI

			-- Opérations réalisées TVA
			SI ligne.compte #'445712' ALORS
				_05A += ligne.credit - ligne.debit
			FINSI

			SI ligne.compte #'445711' ALORS
				_07 += ligne.credit - ligne.debit
			FINSI

			SI ligne.compte #'445710' ALORS
				_10 += ligne.credit - ligne.debit
			FINSI

			-- Autres Opérations
			SI ligne.compte #'7752' OU ligne.compte #'7753' ALORS
				B11 += ligne.credit - ligne.debit
			FINSI			

			SI ligne.compte #'445718' OU ligne.compte #'445719' ALORS
				_11 += ligne.credit - ligne.debit
			FINSI			

		---------------------------------
			-- TVA déductible
			SI ligne.compte #'44562' ALORS
				_23 += ligne.debit - ligne.credit
			FINSI

			SI ligne.compte #'44566' ALORS
				_20 += ligne.debit - ligne.credit
			FINSI

		FINFAIRE
    FIN FAIRE

	SI abs{_05A - (B05A * 0.20)} > 0.01 ALORS
		message{'Attention, il existe un écart de TVA. Le montant de la TVA ligne 08 issu de la comptabilité (' + _05A + ') est différent du HT*20% attendu (' + (B05A * 0.20) + ').'}  
	FINSI
	SI abs{_07 - (B07 * 0.085)} > 0.01 ALORS
		message{'Attention, il existe un écart de TVA. Le montant de la TVA ligne 10 issu de la comptabilité (' + _07 + ') est différent du HT*8.5% attendu (' + (B07 * 0.085) + ').'}  
	FINSI

	exerciceComptable ::=periode.fin
	INTER_CA12_page2 {}   
	SORTIR VRAI
###
'importTVS' 'Automatismes BNC'

	|
		monEtat<Objet> esp<Objet>
	|

    SI etat.EstVerrouille ALORS
    	info {'L''import n''est pas possible sur un état verrouillé.'}
    	SORTIR FAUX
    FINSI	

	esp ::= 'EspaceImmos'
	esp := dossier.espaceImmos
	monEtat ::= 'FichesAideCalculTaxeEmissionCO2EtPolluants_2025'


    POUR TOUT element<EtatEspaceImmos> DE esp.etats FAIRE
    	SI classe{element} = 'FichesAideCalculTaxeEmissionCO2EtPolluants_2025' ALORS
    		monEtat := element
    	FIN SI
    FIN FAIRE

   	SI monEtat <> ? ALORS
    	3517S_XC 	:=	monEtat.2855_Ligne5 - monEtat.2855_Ligne1_2 - monEtat.2855_Ligne2_2 
    				+ monEtat.2855_Ligne10 - monEtat.2855_Ligne7_2 - monEtat.2855_Ligne8_2
    	3517S_BD	:=	monEtat.2855_Ligne1_2 + monEtat.2855_Ligne2_2 + monEtat.2855_Ligne7_2 + monEtat.2855_Ligne8_2
    FINSI

    editeur.majAttributs
    affichage{VRAI}
    
    SORTIR VRAI
	
###
'3517S_BU1_BULLE' 'InfoBulles'
	SORTIR GetInfoBulle3517S_BU_Ou_3517AGR_WF{}
###
'3517S_BU2_BULLE' 'InfoBulles'
	SORTIR GetInfoBulle3517S_BU_Ou_3517AGR_WF{}
###
'3517S_BU3_BULLE' 'InfoBulles'
	SORTIR GetInfoBulle3517S_BU_Ou_3517AGR_WF{}
###
'3517S_BU4_BULLE' 'InfoBulles'
	SORTIR GetInfoBulle3517S_BU_Ou_3517AGR_WF{}
###
'B06B_BULLE' 'InfoBulles'
	SORTIR GetExpressionImportEtatTvaPreparatoire{}
###
'B05A_BULLE' 'InfoBulles'
	SORTIR GetExpressionImportEtatTvaPreparatoire{}
###
'B06C_BULLE' 'InfoBulles'
	SORTIR GetExpressionImportEtatTvaPreparatoire{}
###
