'GetTermErreurAjoutEtat' 'AjoutEtatsComptablesCat'
	SORTIR 'Erreur_AjoutEtat'
###
'GetTermAjouterAjoutEtat' 'AjoutEtatsComptablesCat'
	SORTIR '+:=_AjoutEtat'
###
'GetTermSinonAjoutEtat' 'AjoutEtatsComptablesCat'
	SORTIR 'SINON_AjoutEtat'
###
'CATEGORIES.old' 'AjoutEtatsComptablesCat'
    --Création : 18/09/2003 18:05:48 DME-DOMINIQUE; Modification : 13/02/2004 15:41:03 TGO-TGO; 
    
    -------------------------------------------------------------------------------------------------------------------------------------
    ----------		N'EST PLUS UTILISE  -->  DANS ETATCOMPTABLE DESORMAIS
    -------------------------------------------------------------------------------------------------------------------------------------
    
    SORTIR
    '1Etats standard...
0Etats de gestion...
0Etats financiers...
0Liasses fiscales 2004...
0Liasse SCI 2004...
0Liasse SCM 2004...
0Etats TVA 2004...
0Etats d''import
0Etats externes...
0Etats révision...
0Liasses fiscales 2003...
0Liasses fiscales 2002...
0Liasses fiscales 2001...
0Liasses fiscales 2000...
0Liasses fiscales 1999...
0Liasses fiscales 1998...
0Liasses fiscales 1997...
0Liasses fiscales 1996...
0Liasses fiscales 1995...
0Liasses fiscales 1994...
0Etats TVA 2003...
0Etats TVA 2002...
0Etats TVA 2001...
0Liasse SCM 2003...
0Liasse SCM 2002...
0Liasse SCI 2003...
0Liasse SCI 2002...
0Liasse SCI 2001...
0Liasse SCI'
###
'RechIfMillLiasseFiscaleExists' 'AjoutEtatsComptablesCat'
{oneNameEtatFiscalDP<Chaine>}

    | 
    	lst<Objet>unRep<Booléen>
    |

    classe ::= 'EtatComptable'
    lst := classe.toutesSousClasses

    unRep := FAUX

    POUR TOUT element <EtatComptable>DE lst 
    FAIRE     
    	SI substituerCaracteres{''+element, '_', ' '} = substituerCaracteres{oneNameEtatFiscalDP, '_', ' '} ALORS
    		-- Si etat livre sur le parc ('rendu visible aux clients')
			SI element.categorie <> 'Tests' ALORS
				unRep := VRAI
			FINSI
		FINSI
    FIN FAIRE

    SORTIR unRep

###
'testeAddNameEtatFiscalOnString' 'AjoutEtatsComptablesCat'
{oneStringPrincip<Chaine>oneNameEtat<Chaine>}

	|
		unRep<Chaine>unCR<Chaine>unAACh<Chaine>unNameEtat<Chaine>
	|

    unCR := '
'

	unRep := oneStringPrincip

	-- Chercher d'abord le millesime de l'année courante
	unAACh := chaine{''+annee{aujourdhui{}}, 3, 4} 
	unNameEtat := substituerChaine{oneNameEtat, 'YY' , unAACh} 
	SI NON RechIfMillLiasseFiscaleExists{unNameEtat} ALORS

		-- Rechercher le millesime de l'année precédente
		unAACh := chaine{''+(annee{aujourdhui{}}-1), 3, 4} 
		unNameEtat := substituerChaine{oneNameEtat, 'YY' , unAACh} 
		SI NON RechIfMillLiasseFiscaleExists{unNameEtat} ALORS
			unNameEtat := ''
		FINSI
	FINSI

	-- Si on trouve l'etat, avec un millesime correct
	SI taille{unNameEtat} > 1 ALORS
		SI taille{oneStringPrincip} > 1 ALORS
			unRep += unCR
		FINSI
		unRep += unNameEtat
	FINSI

	SORTIR unRep

###
'nomCategorieFiscauxDossierPermanent' 'AjoutEtatsComptablesCat'

	SORTIR 'Etats fiscaux fonction du DP'

###
'RenvEtatsFiscauxDossierPermanent' 'AjoutEtatsComptablesCat'

	|
		unRep<Chaine>unCR<Chaine>
	|
	
	dossier ::= codeDossierAjEt
    compta ::= ''
    exerciceComptable ::= dateFinExerciceAjEt

    unCR := '
'
	unRep := ''

	SI dossier.StatutFiscal = 'BA' ET dossier.RegimeFiscal = 'RN' ALORS	
		unRep := testeAddNameEtatFiscalOnString{unRep, 'BA_YY_RN'}
	FINSI
	SI dossier.StatutFiscal = 'BA' ET dossier.RegimeFiscal = 'RS' ALORS
		unRep := testeAddNameEtatFiscalOnString{unRep, 'BA_YY_RS'}
	FINSI
	SI dossier.StatutFiscal = 'BIC' ET dossier.RegimeFiscal = 'RN' ALORS
		unRep := testeAddNameEtatFiscalOnString{unRep, 'Liasse_YY_IR_RN'}
	FINSI
	SI dossier.StatutFiscal = 'BIC' ET dossier.RegimeFiscal = 'RS' ALORS
		unRep := testeAddNameEtatFiscalOnString{unRep, 'Liasse_YY_IR_RS'}
	FINSI
	SI dossier.StatutFiscal = 'BNC' ALORS
		unRep := testeAddNameEtatFiscalOnString{unRep, 'BNC_YY'}
	FINSI
	SI dossier.StatutFiscal = 'IS' ET dossier.RegimeFiscal = 'RN' ALORS
		unRep := testeAddNameEtatFiscalOnString{unRep, 'Liasse_YY_IS RN'}
		unRep := testeAddNameEtatFiscalOnString{unRep, 'Liasse YY_2571 IS AC'}
		unRep := testeAddNameEtatFiscalOnString{unRep, 'Liasse_YY_2572 IS'}
	FINSI
	SI dossier.StatutFiscal = 'IS' ET dossier.RegimeFiscal = 'RS' ALORS
		unRep := testeAddNameEtatFiscalOnString{unRep, 'Liasse_YY_IS RS'}
		unRep := testeAddNameEtatFiscalOnString{unRep, 'Liasse YY_2571 IS AC'}
		unRep := testeAddNameEtatFiscalOnString{unRep, 'Liasse_YY_2572 IS'}
	FINSI
	SI dossier.StatutFiscal = 'RF' ET dossier.RegimeFiscal = 'RN' ALORS
		unRep := testeAddNameEtatFiscalOnString{unRep, 'Liasse_YY_2072C'}
		unRep := testeAddNameEtatFiscalOnString{unRep, 'Liasse_YY_2072E'}
	FINSI
	SI dossier.StatutFiscal = 'RF' ET dossier.RegimeFiscal = 'RS' ALORS
		unRep := testeAddNameEtatFiscalOnString{unRep, 'Liasse_YY_2072S'}
		unRep := testeAddNameEtatFiscalOnString{unRep, 'Liasse_YY_2072E'}
	FINSI
 
	SI dossier.RegimeTVA # 'Réel Normal*' ALORS
		unRep := testeAddNameEtatFiscalOnString{unRep, 'TVA_YY_CA3'}
	FINSI
 	SI dossier.RegimeTVA # 'Réel Simplifié*' ALORS
		unRep := testeAddNameEtatFiscalOnString{unRep, 'TVA_YY_CA12'}
	FINSI
 	SI dossier.RegimeTVA # 'Réel Simpl. Agric.*' ALORS
		unRep := testeAddNameEtatFiscalOnString{unRep, 'TVA_YY_3517_AGR'}
	FINSI

	SI dossier.obligations1330_CVAE_Declaration ALORS
		unRep := testeAddNameEtatFiscalOnString{unRep, 'Liasse_YY_1330_CVAE'}
	FINSI
	SI dossier.obligations1329CVAE_Paiement ALORS
		unRep := testeAddNameEtatFiscalOnString{unRep, 'Liasse_YY_1329_CVAE_AC'}
		unRep := testeAddNameEtatFiscalOnString{unRep, 'Liasse_YY_1329_CVAE_DEF'}
	FINSI

	SORTIR unRep

###
'testerAjoutEtatTVA01' 'AjoutEtatsComptablesCat'
{rep<Chaine>}

	|
		trouveString<Chaine> 
	|

	dossier ::= codeDossierAjEt
    compta ::= ''
    exerciceComptable ::= dateFinExerciceAjEt

	trouveString := GetTermSinonAjoutEtat{}
	
	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI (rep # 'Bilan_et_Resultat_ANC2022_06' ET exerciceComptable.dateFin < 01.01.2024) ALORS
			info{'Vous ne pouvez pas utiliser l''état "Bilan et résultat ANC2022-06" sur une période antérieure au 01/01/2025.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI

	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI (rep = 'Bilan_et_Resultat_ANC2022_06_2Lignes' ET exerciceComptable.dateDebut >= 01.01.2026) ALORS
			info{'Vous ne pouvez pas utiliser l''état "Bilan et résultat ANC2022-06 2 Lignes" sur une période ultérieure au 31/12/2025.
Vous devez utiliser l''état "Bilan et résultat ANC2022-06" qui correspond à la nouvelle présentation du règlement ANC 2022-06.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI

	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI (rep # 'Bilan_et_Resultat_Simplifie_ANC2022_06' ET exerciceComptable.dateFin < 01.01.2024) ALORS
			info{'Vous ne pouvez pas utiliser l''état "Bilan et résultat simplifié ANC2022-06" sur une période antérieure au 01/01/2025.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI

	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI (rep = 'Bilan_et_Resultat_Simplifie_ANC2022_06_2Lignes' ET exerciceComptable.dateDebut >= 01.01.2026) ALORS
			info{'Vous ne pouvez pas utiliser l''état "Bilan et résultat simplifié ANC2022-06 2 Lignes" sur une période ultérieure au 31/12/2025.
Vous devez utiliser l''état "Bilan et résultat simplifié ANC2022-06" qui correspond à la nouvelle présentation du règlement ANC 2022-06.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI

	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI (rep # 'Bilan_et_Resultat_BNC_ANC2022_06' ET exerciceComptable.dateFin < 01.01.2025) ALORS
			info{'Vous ne pouvez pas utiliser l''état "Bilan et résultat BNC ANC2022-06" sur une période antérieure au 01/01/2025.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI

	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI (rep # 'Bilan_et_Resultat_Association_ANC2022_06' ET exerciceComptable.dateFin < 01.01.2025) ALORS
			info{'Vous ne pouvez pas utiliser l''état "Bilan et résultat Association ANC2022-06" sur une période antérieure au 01/01/2025.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI
	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI (rep # 'Bilan_et_Resultat_Association_Medico_Social_ANC2022_06' ET exerciceComptable.dateFin < 01.01.2025) ALORS
			info{'Vous ne pouvez pas utiliser l''état "Bilan et résultat Association médico-social ANC2022-06" sur une période antérieure au 01/01/2025.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI
	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI (rep # 'Bilan_et_Compte_de_fonctionnement_Ecole_Privee_ANC2022_06' ET exerciceComptable.dateFin < 01.01.2025) ALORS
			info{'Vous ne pouvez pas utiliser l''état "Bilan et compte de fonctionnement écolde privée ANC2022-06" sur une période antérieure au 01/01/2025.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI

	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI (rep # 'Liasse_25_2777_U') ET date{31, entier{chaine{editeur.dateSelectionnee, 1, 2}}, entier{chaine{editeur.dateSelectionnee, 4, 5}}} <= date{31, 12, 2024} ALORS
			info{'Vous ne pouvez pas utiliser le millésime 2025 sur une période antérieure au 01/01/2025.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI
	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI (rep # 'TVA_25_CA12' OU rep # 'TVA_25_3517_AGR') ET date{31, entier{chaine{editeur.dateSelectionnee, 1, 2}}, entier{chaine{editeur.dateSelectionnee, 4, 5}}} < date{31, 12, 2024} ALORS
			info{'Vous ne pouvez pas utiliser le millésime 2025 sur une période antérieure au 31/12/2024.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI

	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI (rep # 'TVA_25_CA3' OU rep # 'TVA_25_3525bis' OU rep # 'TVA_25_3514' ) ET date{31, entier{chaine{editeur.dateSelectionnee, 1, 2}}, entier{chaine{editeur.dateSelectionnee, 4, 5}}} <= date{31, 12, 2024} ALORS
			info{'Vous ne pouvez pas utiliser le millésime 2025 sur une période antérieure au 01/01/2025.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI

	-- Si exercice se termine au mois de novembre 2024, je ne peux pas ajouter la liasse 2025
	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI (rep # 'TVA_25_3517_AGR' OU rep # 'TVA_25_CA12') ET exerciceComptable.dateFin <= 30.11.2024 ALORS
			info{'Vous ne pouvez pas utiliser le millésime 2025 sur une période antérieure au 31/12/2024.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI
	-- Si exercice se termine le 31/12/2024, et que date de cessation est avant le 31/12/2024 ==> le millésime 2025 ne peut pas être ajouté, il faut ajouter le millésime 2024
	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI (rep # 'TVA_25_3517_AGR' OU rep # 'TVA_25_CA12') ET (exerciceComptable.dateFin = 31.12.2024 ET dossier.dateCessationActivite <> ? ET dossier.dateCessationActivite < 31.12.2024) ALORS
			info{'Vous ne pouvez pas utiliser le millésime 2025 sur une période antérieure au 31/12/2024. (Date de fin d''exercice ou date de cessation d''activité antérieure au 31/12/2024).'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI

	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI (rep # 'TVA_24_CA12' OU rep # 'TVA_24_3517_AGR') ET date{31, entier{chaine{editeur.dateSelectionnee, 1, 2}}, entier{chaine{editeur.dateSelectionnee, 4, 5}}} < date{31, 12, 2023} ALORS
			info{'Vous ne pouvez pas utiliser le millésime 2024 sur une période antérieure au 31/12/2023.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI
	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI (rep # 'TVA_24_CA3' OU rep # 'TVA_24_3525bis' OU rep # 'TVA_24_3514' ) ET date{31, entier{chaine{editeur.dateSelectionnee, 1, 2}}, entier{chaine{editeur.dateSelectionnee, 4, 5}}} <= date{31, 12, 2023} ALORS
			info{'Vous ne pouvez pas utiliser le millésime 2024 sur une période antérieure au 01/01/2024.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI

	-- Si exercice se termine au mois de novembre 2023, je ne peux pas ajouter la liasse 2024
	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI (rep # 'TVA_24_3517_AGR' OU rep # 'TVA_24_CA12') ET exerciceComptable.dateFin <= 30.11.2023 ALORS
			info{'Vous ne pouvez pas utiliser le millésime 2024 sur une période antérieure au 31/12/2023.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI
	-- Si exercice se termine le 31/12/2023, et que date de cessation est avant le 31/12/2023 ==> le millésime 2024 ne peut pas être ajouté, il faut ajouter le millésime 2023
	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI (rep # 'TVA_24_3517_AGR' OU rep # 'TVA_24_CA12') ET (exerciceComptable.dateFin = 31.12.2023 ET dossier.dateCessationActivite <> ? ET dossier.dateCessationActivite < 31.12.2023) ALORS
			info{'Vous ne pouvez pas utiliser le millésime 2024 sur une période antérieure au 31/12/2023. (Date de fin d''exercice ou date de cessation d''activité antérieure au 31/12/2023).'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI

	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI (rep # 'TVA_23_CA12' OU rep # 'TVA_23_3517_AGR' OU rep # 'TVA_23_CA3' OU rep # 'TVA_23_3525bis' OU rep # 'TVA_23_3514' ) ET date{31, entier{chaine{editeur.dateSelectionnee, 1, 2}}, entier{chaine{editeur.dateSelectionnee, 4, 5}}} <= date{31,12,2022} ALORS
			info{'Vous ne pouvez pas utiliser le millésime 2023 sur une période antérieure au 01/01/2023.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI
	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI (rep # 'TVA_23_CA12' OU rep # 'TVA_23_3517_AGR' OU rep # 'TVA_23_CA3' OU rep # 'TVA_23_3525bis' OU rep # 'TVA_23_3514' ) ET date{31, entier{chaine{editeur.dateSelectionnee, 1, 2}}, entier{chaine{editeur.dateSelectionnee, 4, 5}}} > date{31,01,2024} ALORS
			info{'Vous ne pouvez pas utiliser le millésime 2023 sur une période supérieure au 31/01/2024.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI
	
	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI (rep # 'TVA_22_CA12' OU rep # 'TVA_22_3517_AGR' OU rep # 'TVA_22_CA3' OU rep # 'TVA_22_3525bis' OU rep # 'TVA_22_3514' ) ET date{31, entier{chaine{editeur.dateSelectionnee, 1, 2}}, entier{chaine{editeur.dateSelectionnee, 4, 5}}} <= date{31,12,2021} ALORS
			info{'Vous ne pouvez pas utiliser le millésime 2022 sur une période antérieure au 01/01/2022.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI
	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI (rep # 'TVA_21_CA12' OU rep # 'TVA_21_3517_AGR' OU rep # 'TVA_21_CA3' OU rep # 'TVA_21_3525bis' OU rep # 'TVA_21_3514' ) ET date{31, entier{chaine{editeur.dateSelectionnee, 1, 2}}, entier{chaine{editeur.dateSelectionnee, 4, 5}}} <= date{31,12,2020} ALORS
			info{'Vous ne pouvez pas utiliser le millésime 2021 sur une période antérieure au 01/01/2021.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI
	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI (rep # 'TVA_20_CA12' OU rep # 'TVA_20_3517_AGR' OU rep # 'TVA_20_CA3' OU rep # 'TVA_20_3525bis' OU rep # 'TVA_20_3514' ) ET date{31, entier{chaine{editeur.dateSelectionnee, 1, 2}}, entier{chaine{editeur.dateSelectionnee, 4, 5}}} <= date{31,12,2019} ALORS
			info{'Vous ne pouvez pas utiliser le millésime 2020 sur une période antérieure au 01/01/2020.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI
	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI (rep # 'TVA_19_CA12' OU rep # 'TVA_19_3517_AGR' OU rep # 'TVA_19_CA3' OU rep # 'TVA_19_3525bis' OU rep # 'TVA_19_3514' ) ET date{31, entier{chaine{editeur.dateSelectionnee, 1, 2}}, entier{chaine{editeur.dateSelectionnee, 4, 5}}} <= date{31,12,2018} ALORS
			info{'Vous ne pouvez pas utiliser le millésime 2019 sur une période antérieure au 01/01/2019.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FIN SI

	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		-- YLV ; 03/01/2017; Ajout du contôle pour des liasses 2017.
		SI (rep # 'TVA_17_CA12' OU rep # 'TVA_17_3517_AGR' OU rep # 'TVA_17_CA3' OU rep # 'TVA_17_3525bis' OU rep # 'TVA_17_3514' ) ET date{31, entier{chaine{editeur.dateSelectionnee, 1, 2}}, entier{chaine{editeur.dateSelectionnee, 4, 5}}} <= date{31,12,2016} ALORS
			info{'Vous ne pouvez pas utiliser le millésime 2017 sur une période antérieure au 01/01/2017.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FIN SI

	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI (rep # 'TVA_16_CA12' OU rep # 'TVA_16_3517_AGR' OU rep # 'TVA_16_CA3' OU rep # 'TVA_16_3525bis' OU rep # 'TVA_16_3514' ) ET date{31, entier{chaine{editeur.dateSelectionnee, 1, 2}}, entier{chaine{editeur.dateSelectionnee, 4, 5}}} <= date{31,12,2015} ALORS
			info{'Vous ne pouvez pas utiliser le millésime 2016 sur une période antérieure au 01/01/2016.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI

	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI (rep # 'TVA_15_CA12' OU rep # 'TVA_15_3517_AGR' OU rep # 'TVA_15_CA3' OU rep # 'TVA_15_3525bis' OU rep # 'TVA_15_3514' ) ET date{31, entier{chaine{editeur.dateSelectionnee, 1, 2}}, entier{chaine{editeur.dateSelectionnee, 4, 5}}} <= date{31,12,2014} ALORS
			info{'Vous ne pouvez pas utiliser le millésime 2015 sur une période antérieure au 01/01/2015.'}
			trouveString := GetTermErreurAjoutEtat{}
		SINON
			SI (rep # 'TVA_14_CA12' OU rep # 'TVA_14_3517_AGR' OU rep # 'TVA_14_CA3' OU rep # 'TVA_14_3525bis') ET date{31, entier{chaine{editeur.dateSelectionnee, 1, 2}}, entier{chaine{editeur.dateSelectionnee, 4, 5}}} >= date{01,01,2015} ALORS
				info{'Vous ne pouvez pas utiliser le millésime 2014 sur une période postérieure au 31/12/2014.'}
				trouveString := GetTermErreurAjoutEtat{}
			SINON
				SI rep # 'TVA_14_3514*' ET NON (chaine{editeur.dateSelectionnee, 1, 2} = '04' OU chaine{editeur.dateSelectionnee, 1, 2} = '07' OU chaine{editeur.dateSelectionnee, 1, 2} = '09' OU chaine{editeur.dateSelectionnee, 1, 2} = '12') ALORS
					info{'Vous ne pouvez pas ajouter de TVA 3514 sur le mois sélectionné. 
La 3514 ne se fait que sur les mois d''Avril, de Juillet, de Septembre et de Décembre'}
					trouveString := GetTermErreurAjoutEtat{}
				SINON
					SI rep # 'TVA_*_3514*' ET NON rep # 'TVA_14_3514*' ET NON (chaine{editeur.dateSelectionnee, 1, 2} = '07' OU chaine{editeur.dateSelectionnee, 1, 2} = '12') ALORS
						info{'Vous ne pouvez pas ajouter de TVA 3514 sur le mois sélectionné. 
La 3514 ne se fait que sur les mois de Juillet et de Décembre'}
    					trouveString := GetTermErreurAjoutEtat{}
					FINSI
				FINSI
			FINSI
		FINSI
	FINSI

	SORTIR trouveString

###
'testerAjoutEtatsAutres00' 'AjoutEtatsComptablesCat'
{rep<Chaine>}

	|
		trouveString<Chaine>
	|

	dossier ::= codeDossierAjEt
    compta ::= ''
    exerciceComptable ::= dateFinExerciceAjEt

	trouveString := GetTermSinonAjoutEtat{}
	SI exerciceComptable.dateDebut >= 01.01.2025 ALORS
		SI (rep # 'Bilan_Association_Medico*') ALORS
			SI NON ouiNon{'Nous vous conseillons d''ajouter l''état "Bilan et résultat Association Medico Social ANC2022-06" qui correspond à la nouvelle présentation du règlement ANC 2022-06. Souhaitez vous continuer ?'} ALORS
				trouveString := GetTermErreurAjoutEtat{}
			FIN SI
		SINON
			SI (rep # 'Bilan_Association' OU rep # 'Bilan_Association_Compare') ALORS
				SI NON ouiNon{'Nous vous conseillons d''ajouter l''état "Bilan et résultat Association  ANC2022-06" qui correspond à la nouvelle présentation du règlement ANC 2022-06. Souhaitez vous continuer ?'} ALORS
					trouveString := GetTermErreurAjoutEtat{}
				FIN SI
			FIN SI
		FIN SI
	SINON
		SI (rep # 'Bilan_Association_Medico*') ALORS
			SI NON ouiNon{'Nous vous conseillons d''ajouter l''état "Bilan et résultat Association Medico Social" qui correspond à la nouvelle présentation du règlement ANC 2019-04. Souhaitez vous continuer ?'} ALORS
				trouveString := GetTermErreurAjoutEtat{}
			FIN SI
		SINON
			SI (rep # 'Bilan_Association' OU rep # 'Bilan_Association_Compare') ALORS
				SI NON ouiNon{'Nous vous conseillons d''ajouter l''état "Bilan et résultat Association" qui correspond à la nouvelle présentation du règlement ANC 2018-06. Souhaitez vous continuer ?'} ALORS
					trouveString := GetTermErreurAjoutEtat{}
				FIN SI
			FIN SI
		FIN SI
	FINSI
	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI (NON exerciceComptable.automatismesBNC) ET (rep # 'Reintegrations_Charges_Mixtes') ALORS
			info{'L''état "Réintégrations des charges mixtes" ne peut être ajouté. Veuillez cocher "Paramétrage BNC" dans les attributs de la comptabilité.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI
	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI rep = 'Bilan_et_Resultat' ET exerciceComptable.dateDebut >= 01.01.2025 ALORS
			SI NON ouiNon{'Nous vous conseillons d''ajouter l''état "Bilan et résultat ANC2022-06" qui correspond à la nouvelle présentation du règlement ANC 2022-06. Souhaitez vous continuer ?'} ALORS
				trouveString := GetTermErreurAjoutEtat{}
			FIN SI
		FINSI
	FINSI

	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI rep = 'Bilan_et_Resultat_Simplifie' ET exerciceComptable.dateDebut >= 01.01.2025 ALORS
			SI NON ouiNon{'Nous vous conseillons d''ajouter l''état "Bilan et résultat simplifié ANC2022-06" qui correspond à la nouvelle présentation du règlement ANC 2022-06. Souhaitez vous continuer ?'} ALORS
				trouveString := GetTermErreurAjoutEtat{}
			FIN SI
		FINSI
	FINSI
	
	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI rep = 'Bilan_et_Resultat_Compare' ET exerciceComptable.dateDebut >= 01.01.2025 ALORS
			SI NON ouiNon{'Nous vous conseillons d''ajouter l''état "Bilan et résultat comparé ANC2022-06" qui correspond à la nouvelle présentation du règlement ANC 2022-06. Souhaitez vous continuer ?'} ALORS
				trouveString := GetTermErreurAjoutEtat{}
			FIN SI
		FINSI
	FINSI
	
	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI rep = 'Bilan_BA' ET exerciceComptable.dateDebut >= 01.01.2025 ALORS
			SI NON ouiNon{'Nous vous conseillons d''ajouter l''état "Bilan BA ANC2022-06" qui correspond à la nouvelle présentation du règlement ANC 2022-06. Souhaitez vous continuer ?'} ALORS
				trouveString := GetTermErreurAjoutEtat{}
			FIN SI
		FINSI
	FINSI

	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI rep = 'Bilan_et_Resultat_ANC2022_06_2Lignes' ALORS
			SI NON ouiNon{'Nous vous conseillons d''ajouter l''état "Bilan et résultat ANC2022-06" qui correspond à la nouvelle présentation du règlement ANC 2022-06. Souhaitez vous continuer ?'} ALORS
				trouveString := GetTermErreurAjoutEtat{}
			FIN SI
		FINSI
	FINSI

	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI rep = 'Bilan_et_Resultat_Simplifie_ANC2022_06_2Lignes' ALORS
			SI NON ouiNon{'Nous vous conseillons d''ajouter l''état "Bilan et résultat simplifié ANC2022-06" qui correspond à la nouvelle présentation du règlement ANC 2022-06. Souhaitez vous continuer ?'} ALORS
				trouveString := GetTermErreurAjoutEtat{}
			FIN SI
		FINSI
	FINSI

	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI rep = 'Bilan_et_Resultat_ANC2022_06_2Lignes' ALORS
			SI NON ouiNon{'Nous vous conseillons d''ajouter l''état "Bilan et résultat ANC2022-06" qui correspond à la nouvelle présentation du règlement ANC 2022-06. Souhaitez vous continuer ?'} ALORS
				trouveString := GetTermErreurAjoutEtat{}
			FIN SI
		FINSI
	FINSI

	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI rep = 'Bilan_et_Resultat_Simplifie_ANC2022_06_2Lignes' ALORS
			SI NON ouiNon{'Nous vous conseillons d''ajouter l''état "Bilan et résultat simplifié ANC2022-06" qui correspond à la nouvelle présentation du règlement ANC 2022-06. Souhaitez vous continuer ?'} ALORS
				trouveString := GetTermErreurAjoutEtat{}
			FIN SI
		FINSI
	FINSI

	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI rep = 'Bilan_et_Resultat_BNC' ET exerciceComptable.dateDebut >= 01.01.2025 ALORS
			SI NON ouiNon{'Nous vous conseillons d''ajouter l''état "Bilan et résultat BNC ANC2022-06" qui correspond à la nouvelle présentation du règlement ANC 2022-06. Souhaitez vous continuer ?'} ALORS
				trouveString := GetTermErreurAjoutEtat{}
			FIN SI
		FINSI
	FINSI

	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI rep = 'Bilan_et_Resultat_Association' ET exerciceComptable.dateDebut >= 01.01.2025 ALORS
			SI NON ouiNon{'Nous vous conseillons d''ajouter l''état "Bilan et résultat Association ANC2022-06" qui correspond à la nouvelle présentation du règlement ANC 2022-06. Souhaitez vous continuer ?'} ALORS
				trouveString := GetTermErreurAjoutEtat{}
			FIN SI
		FINSI
	FINSI

	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI rep = 'Bilan_et_Resultat_Association_Medico_Social' ET exerciceComptable.dateDebut >= 01.01.2025 ALORS
			SI NON ouiNon{'Nous vous conseillons d''ajouter l''état "Bilan et résultat Association médico-social ANC2022-06" qui correspond à la nouvelle présentation du règlement ANC 2022-06. Souhaitez vous continuer ?'} ALORS
				trouveString := GetTermErreurAjoutEtat{}
			FIN SI
		FINSI
	FINSI

	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI rep = 'Bilan_et_Compte_de_fonctionnement_Ecole_Privee' ET exerciceComptable.dateDebut >= 01.01.2025 ALORS
			SI NON ouiNon{'Nous vous conseillons d''ajouter l''état "Bilan et compte de fonctionnement école privée ANC2022-06" qui correspond à la nouvelle présentation du règlement ANC 2022-06. Souhaitez vous continuer ?'} ALORS
				trouveString := GetTermErreurAjoutEtat{}
			FIN SI
		FINSI
	FINSI
	
	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI rep = 'Resultat_SIG' ET exerciceComptable.dateDebut >= 01.01.2025 ALORS
			SI NON ouiNon{'Nous vous conseillons d''ajouter l''état "Résultat SIG ANC2022-06" qui correspond à la nouvelle présentation du règlement ANC 2022-06. Souhaitez vous continuer ?'} ALORS
				trouveString := GetTermErreurAjoutEtat{}
			FIN SI
		FINSI
	FINSI
	
	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI rep = 'Soldes_interm_gestion' ET exerciceComptable.dateDebut >= 01.01.2025 ALORS
			SI NON ouiNon{'Nous vous conseillons d''ajouter l''état "Soldes interm gestion ANC2022-06" qui correspond à la nouvelle présentation du règlement ANC 2022-06. Souhaitez vous continuer ?'} ALORS
				trouveString := GetTermErreurAjoutEtat{}
			FIN SI
		FINSI
	FINSI
	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI (rep = 'Soldes_interm_gestion_ANC2022_06' ET exerciceComptable.dateFin < 01.01.2025) ALORS
			info{'Vous ne pouvez pas utiliser l''état "Soldes_interm_gestion_ANC2022_06" sur une période antérieure au 01/01/2025.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI
	
	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI rep = 'SIG_4_Periodes' ET exerciceComptable.dateDebut >= 01.01.2025 ALORS
			SI NON ouiNon{'Nous vous conseillons d''ajouter l''état "SIG_4_Periodes ANC2022-06" qui correspond à la nouvelle présentation du règlement ANC 2022-06. Souhaitez vous continuer ?'} ALORS
				trouveString := GetTermErreurAjoutEtat{}
			FIN SI
		FINSI
	FINSI

	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI (rep = 'SIG_4_Periodes_ANC2022_06' ET exerciceComptable.dateFin < 01.01.2025) ALORS
			info{'Vous ne pouvez pas utiliser l''état "SIG 4 Periodes ANC2022-06" sur une période antérieure au 01/01/2025.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI

	SORTIR trouveString

###
'testerAjoutEtatsAutres02' 'AjoutEtatsComptablesCat'
{rep<Chaine>}

	|
		trouveString<Chaine>
	|

		trouveString := GetTermSinonAjoutEtat{}

		SI (rep # 'Liasse_*_1329_AC*'  OU rep # 'Liasse_*_1329_CVAE_AC*'  ) ET NON (chaine{editeur.dateSelectionnee, 1, 2} = '06' OU chaine{editeur.dateSelectionnee, 1, 2} = '09') ALORS
			info{'Vous ne pouvez pas ajouter de Liasse 1329AC sur le mois sélectionné. 
La 1329AC ne se fait que sur les mois de Juin et de Septembre'}
			trouveString := GetTermErreurAjoutEtat{}
		SINON
			SI (rep # 'Liasse_*_2571*' ET NON (chaine{editeur.dateSelectionnee, 1, 2} = '03' OU chaine{editeur.dateSelectionnee, 1, 2} = '06' OU chaine{editeur.dateSelectionnee, 1, 2} = '09' OU chaine{editeur.dateSelectionnee, 1, 2} = '12')) ALORS
				info{'Vous ne pouvez pas ajouter de Liasse 2571 sur le mois sélectionné. 
La 2571 ne se fait que sur les mois de Mars, de Juin, de Septembre et de Décembre'}
				trouveString := GetTermErreurAjoutEtat{}
			SINON
				SI rep = 'Autres_Annexes_et_Crédits_Impôts_14' ALORS
					trouveString := GetTermAjouterAjoutEtat{}
				SINON
					trouveString := GetTermSinonAjoutEtat{}
				FINSI
			FINSI
		FINSI

	SORTIR trouveString

###
'testerAjoutEtatsAutres03' 'AjoutEtatsComptablesCat'
{rep<Chaine>}

	|
		trouveString<Chaine>IsReport2571_2572<Booléen>
	|

	dossier ::= codeDossierAjEt
    compta ::= ''
    exerciceComptable ::= dateFinExerciceAjEt

    IsReport2571_2572 := FAUX
	trouveString := GetTermSinonAjoutEtat{}

	SI (rep ='Journal_De_TVA') ALORS
		info{'Nous vous recommandons d''utiliser l''état standard "TVA états préparatoires."'}
		trouveString := GetTermAjouterAjoutEtat{}
	FINSI
	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI (rep # 'Liasse_*_2573*') ET NON (rep # 'Liasse_25_2573*') ET (exerciceComptable.dateFin > 30.12.2024 ET (dossier.dateCessationActivite > 30.12.2024 OU dossier.dateCessationActivite = ?) ) ALORS
			info{'Votre date de clôture (ou date de cessation d''activité) est postérieure au 30/12/2024.
Veuillez compléter le formulaire 2573 millésime 2025.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI
	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI (rep # 'Liasse_*_2573*') ET NON (rep # 'Liasse_24_2573*') ET 
				(exerciceComptable.dateFin < 30.12.2024 ET exerciceComptable.dateFin > 30.12.2023 ET (dossier.dateCessationActivite > 30.12.2023 OU dossier.dateCessationActivite = ?) ) ALORS
			info{'Votre date de clôture (ou date de cessation d''activité) est postérieure au 30/12/2023.
Veuillez compléter le formulaire 2573 millésime 2024.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI
	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI (rep # 'Liasse_*_2573*') ET NON (rep # 'Liasse_23_2573*') ET 
				(exerciceComptable.dateFin < 30.12.2023 ET exerciceComptable.dateFin > 30.12.2022 ET 
						((dossier.dateCessationActivite < 30.12.2023 ET dossier.dateCessationActivite > 30.12.2022) OU dossier.dateCessationActivite = ?)) ALORS
			info{'Votre date de clôture (ou date de cessation d''activité) est postérieure au 30/12/2022.
Veuillez compléter le formulaire 2573 millésime 2023.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI
	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI rep # 'Liasse_14_2572*' ET exerciceComptable.dateFin < 31.12.2013 ALORS
			info{'Votre date de clôture (ou date de cessation d''activité) est antérieure au 31/12/2013.
Veuillez compléter le formulaire 2572 millésime 2012.'}
				trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI
	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI rep # 'Liasse_14_2572*' ET (exerciceComptable.dateFin > 30.12.2014 ET (dossier.dateCessationActivite > 30.12.2014 OU dossier.dateCessationActivite = ?)) ALORS
			info{'Votre date de clôture (ou date de cessation d''activité) est postérieure au 30/12/2014.
Veuillez compléter le formulaire 2572 millésime 2015.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI
	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI rep # 'Liasse_14_2571*' ET (exerciceComptable.dateFin > 31.12.2014 ET (dossier.dateCessationActivite > 31.12.2014 OU dossier.dateCessationActivite = ?)) ALORS
			info{'Votre date de clôture (ou date de cessation d''activité) est postérieure au 31/12/2014.
Veuillez compléter le formulaire 2571 millésime 2015.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI

	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		-- Si pas d'erreur sur 2572 et 2571
		SI (rep # 'Liasse_14_2572*' OU rep # 'Liasse_14_2571*')  ALORS
			trouveString := GetTermAjouterAjoutEtat{}
		FINSI
	FINSI

	SORTIR trouveString

###
'testerAjoutEtatsAutres04' 'AjoutEtatsComptablesCat'
{rep<Chaine>}

	|
		trouveString<Chaine>
	|

	dossier ::= codeDossierAjEt
    compta ::= ''
    exerciceComptable ::= dateFinExerciceAjEt

	trouveString := GetTermSinonAjoutEtat{}

	SI (rep # 'Liasse_15_2572*' OU rep # 'Liasse_15_2571*')  ALORS
		SI rep # 'Liasse_15_2572*' ALORS
			SI exerciceComptable.dateFin < 31.12.2014 ALORS
				info{'Votre date de clôture (ou date de cessation d''activité) est antérieure au 31/12/2014.
Veuillez compléter le formulaire 2572 millésime 2014.'}
				trouveString := GetTermErreurAjoutEtat{}
			SINON
				SI exerciceComptable.dateFin > 30.12.2015 ET (dossier.dateCessationActivite > 30.12.2015 OU dossier.dateCessationActivite = ?) ALORS
					info{'Votre date de clôture (ou date de cessation d''activité) est postérieure au 30/12/2015.
Veuillez compléter le formulaire 2572 millésime 2016.'}
					trouveString := GetTermErreurAjoutEtat{}
				SINON
					trouveString := GetTermAjouterAjoutEtat{}
				FIN SI
			FINSI
		SINON
			SI exerciceComptable.dateFin > 31.12.2015 ET (dossier.dateCessationActivite > 31.12.2015 OU dossier.dateCessationActivite = ?) ALORS
				info{'Votre date de clôture (ou date de cessation d''activité) est postérieure au 31/12/2015.
Veuillez compléter le formulaire 2571 millésime 2016.'}
				trouveString := GetTermErreurAjoutEtat{}
			SINON
				trouveString := GetTermAjouterAjoutEtat{}
			FIN SI
		FIN SI
	SINON
		trouveString := GetTermSinonAjoutEtat{}
	FINSI

	SORTIR trouveString

###
'testerAjoutEtatsAutres05' 'AjoutEtatsComptablesCat'
{rep<Chaine>}

	|
		trouveString<Chaine>
	|


	dossier ::= codeDossierAjEt
    compta ::= ''
    exerciceComptable ::= dateFinExerciceAjEt

	trouveString := GetTermSinonAjoutEtat{}

	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI rep # 'Liasse_16_2571*' ET date{31, entier{chaine{editeur.dateSelectionnee, 1, 2}}, entier{chaine{editeur.dateSelectionnee, 4, 5}}} <= date{31,12,2015} ALORS
			info{'Vous ne pouvez pas utiliser le millésime 2016 sur une période antérieure au 01/01/2016.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI
	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI rep # 'Liasse_17_2571*' ET date{31, entier{chaine{editeur.dateSelectionnee, 1, 2}}, entier{chaine{editeur.dateSelectionnee, 4, 5}}} <= date{31,12,2016} ALORS
			info{'Vous ne pouvez pas utiliser le millésime 2017 sur une période antérieure au 01/01/2017.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI
	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI rep # 'Liasse_19_2571*' ET date{31, entier{chaine{editeur.dateSelectionnee, 1, 2}}, entier{chaine{editeur.dateSelectionnee, 4, 5}}} <= date{31,12,2018} ALORS
			info{'Vous ne pouvez pas utiliser le millésime 2019 sur une période antérieure au 01/01/2019.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI
	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI rep # 'Liasse_22_2571*' ET date{31, entier{chaine{editeur.dateSelectionnee, 1, 2}}, entier{chaine{editeur.dateSelectionnee, 4, 5}}} <= date{31,12,2021} ALORS
			info{'Vous ne pouvez pas utiliser le millésime 2022 sur une période antérieure au 01/01/2022.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI
	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI rep # 'Liasse_21_2571*' ET date{31, entier{chaine{editeur.dateSelectionnee, 1, 2}}, entier{chaine{editeur.dateSelectionnee, 4, 5}}} <= date{31,12,2020} ALORS
			info{'Vous ne pouvez pas utiliser le millésime 2020 sur une période antérieure au 01/01/2021.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI
	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI rep # 'Liasse_20_2571*' ET date{31, entier{chaine{editeur.dateSelectionnee, 1, 2}}, entier{chaine{editeur.dateSelectionnee, 4, 5}}} <= date{31,12,2019} ALORS
			info{'Vous ne pouvez pas utiliser le millésime 2020 sur une période antérieure au 01/01/2020.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI

	SORTIR trouveString

###
'testerAjoutEtatsAutres06' 'AjoutEtatsComptablesCat'
{rep<Chaine>}

	|
		trouveString<Chaine>
	|


	dossier ::= codeDossierAjEt
    compta ::= ''
    exerciceComptable ::= dateFinExerciceAjEt

	trouveString := GetTermSinonAjoutEtat{}

	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI (rep # 'Liasse_25_2572*') ET (exerciceComptable.dateFin < 31.12.2024 OU (dossier.dateCessationActivite <> ? ET dossier.dateCessationActivite < 31.12.2024)) ALORS
			info{'Votre date de clôture (ou date de cessation d''activité) est antérieure au 31/12/2024.
Veuillez compléter le formulaire 2572 millésime 2024.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI
	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI (rep # 'Liasse_24_2572*') ET (exerciceComptable.dateFin < 31.12.2023 OU (dossier.dateCessationActivite <> ? ET dossier.dateCessationActivite < 31.12.2023)) ALORS
			info{'Votre date de clôture (ou date de cessation d''activité) est antérieure au 31/12/2023.
Veuillez compléter le formulaire 2572 millésime 2023.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI
	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI (rep # 'Liasse_23_2572*')
				ET exerciceComptable.dateFin > 30.12.2023 
				ET (NON (dossier.dateCessationActivite <> ? ET dossier.dateCessationActivite < 31.12.2023)) ALORS
			info{'Votre date de clôture est postérieure au 30/12/2023.
Veuillez compléter le formulaire 2572 millésime 2024.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI
	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI (rep # 'Liasse_19_2572*') ET exerciceComptable.dateFin < 31.12.2018 ALORS
			info{'Votre date de clôture est antérieure au 31/12/2018.
Veuillez compléter le formulaire 2572 millésime 2018.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI
	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI (rep # 'Liasse_20_2572*') ET exerciceComptable.dateFin < 31.12.2019 ALORS
			info{'Votre date de clôture est antérieure au 31/12/2019.
Veuillez compléter le formulaire 2572 millésime 2019.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI
	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI (rep # 'Liasse_21_2572*') ET exerciceComptable.dateFin < 31.12.2020 ALORS
			info{'Votre date de clôture est antérieure au 31/12/2020.
Veuillez compléter le formulaire 2572 millésime 2020.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI
	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI (rep # 'Liasse_22_2572*') ET exerciceComptable.dateFin < 31.12.2021 ALORS
			info{'Votre date de clôture est antérieure au 31/12/2021.
Veuillez compléter le formulaire 2572 millésime 2021.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI
	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI (rep # 'Liasse_23_2572*') ET exerciceComptable.dateFin < 31.12.2022 ALORS
			info{'Votre date de clôture est antérieure au 31/12/2022.
Veuillez compléter le formulaire 2572 millésime 2022.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI
	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI (rep # 'Liasse_24_2572*') ET exerciceComptable.dateFin < 31.12.2023 ALORS
			info{'Votre date de clôture est antérieure au 31/12/2023.
Veuillez compléter le formulaire 2572 millésime 2023.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI

	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI rep # 'Liasse_23_2571*' ET date{31, entier{chaine{editeur.dateSelectionnee, 1, 2}}, entier{chaine{editeur.dateSelectionnee, 4, 5}}} <= date{31,12,2022} ALORS
			info{'Vous ne pouvez pas utiliser le millésime 2023 sur une période antérieure au 01/01/2023.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI
	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI rep # 'Liasse_24_2571*' ET date{31, entier{chaine{editeur.dateSelectionnee, 1, 2}}, entier{chaine{editeur.dateSelectionnee, 4, 5}}} <= date{31,12,2023} ALORS
			info{'Vous ne pouvez pas utiliser le millésime 2024 sur une période antérieure au 01/01/2024.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI
	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		SI rep # 'Liasse_25_2571*' ET date{31, entier{chaine{editeur.dateSelectionnee, 1, 2}}, entier{chaine{editeur.dateSelectionnee, 4, 5}}} <= date{31,12,2024} ALORS
			info{'Vous ne pouvez pas utiliser le millésime 2025 sur une période antérieure au 01/01/2025.'}
			trouveString := GetTermErreurAjoutEtat{}
		FINSI
	FINSI

	SI trouveString = GetTermSinonAjoutEtat{} ALORS
		trouveString := GetTermAjouterAjoutEtat{}
	FINSI

	SORTIR trouveString

###
'testerAjoutEtatsComptables' 'AjoutEtatsComptablesCat'
{rep<Chaine>}

	|
		trouverString<Chaine>
	|

	trouverString := testerAjoutEtatsAutres00{rep}

	SI trouverString = GetTermSinonAjoutEtat{} ALORS
		trouverString := testerAjoutEtatTVA01{rep}
	FINSI

	SI trouverString = GetTermSinonAjoutEtat{} ALORS
		trouverString := testerAjoutEtatsAutres02{rep}
	FINSI

	SI trouverString = GetTermSinonAjoutEtat{} ALORS
		trouverString := testerAjoutEtatsAutres03{rep}
	FINSI

	SI trouverString = GetTermSinonAjoutEtat{} ALORS
		trouverString := testerAjoutEtatsAutres04{rep}
	FINSI

	SI trouverString = GetTermSinonAjoutEtat{} ALORS
		trouverString := testerAjoutEtatsAutres05{rep}
	FINSI

	SI trouverString = GetTermSinonAjoutEtat{} ALORS
		trouverString := testerAjoutEtatsAutres06{rep}
	FINSI

	TrouverString := trouverString

	SORTIR trouverString

###
'AppelChoixArbre' 'AjoutEtatsComptablesCat'

	|
		lst<Objet> cats<Objet> of<Objet> rs<Objet> b<Entier> CR<Chaine>rs2<Objet>
		n<Objet> dico<Objet> nds<Objet> i<Entier> aAjouter<Objet> corresp<Objet>
		etatComp<Objet> categs <Chaine> ficIni<Chaine> etatsFiscauxDP<Chaine>nomEtatFiscalDP<Chaine>
		tmpAnnee<Entier> anneeCourante<Entier> n2<Objet> trouve<Booléen> lstAncienMil<Objet> nd<Objet> maColl<Objet> chope<Booléen>
		flCateg<Objet> str<Chaine> libelleEtat<Chaine> nbMaColl<Entier>objLibrairieCompta<Objet>
		addEtatLoc<Booléen>
	|

	objLibrairieCompta ::= 'LibrairieCompta'
	objLibrairieCompta := creer{'LibrairieCompta'}
	etatComp ::= 'EtatComptable'
	etatComp := creer{'EtatComptable'}

    CR := '
'

	dossier ::= codeDossierAjEt
    compta ::= ''
    exerciceComptable ::= dateFinExerciceAjEt

    lstAncienMil := creerListe{}
    
    nds := creerListe{}
    corresp := creerDictionnaire{}
    dico := creerDictionnaire{}
    cats := creerListe{}
    of := creerListe{}
    classe ::= 'EtatComptable'
    lst := classe.toutesSousClasses
    
    /*
categs := CATEGORIES_LOCALES{}
categs  += etatComp.CATEGORIES{}
*/
    -- Modif de l'ajout des catégories locales pour CGAPAC
    flCateg := flotEcriture{}
    flCateg += exerciceComptable.CATEGORIES_LOCALES{}
    str := etatComp.CATEGORIES{}
    flCateg + str
    categs := contenuFlot{flCateg}
    flCateg	:=	?
    
    -- MODIF SCR 04/07/05 - Mise en place des états TP
    ficIni := racine{'os'}+'\gescap.ini' 
    SI infoFichier{ficIni} = 'absent' ALORS
    	-- L'utilisateur n'a pas les droits pour avoir les états TP
    SINON
    categs += '0ValeurAjoutéeTP...
'
    FINSI
    -----------------------------------------------------------------------------
    
    SI exerciceComptable.saisieQuantite ET ((droitPartenaire{'CDER', 'Agricole'}> 0 ) OU (droits{'Agricole'} > 0) ) ALORS
    categs += '0Etats de Stocks et Productions...
'
    FINSI
    
    SI  ((droits{'AgricolePlus'} > 0) OU enDev{'AgricolePlus'}) ET NON droitPartenaire{'CDER', 'Agricole'}> 0	 ALORS
    categs += '0Pack Agricole Plus...
'
    FINSI
    
    SI exerciceComptable.avecEffets ALORS
    categs += '0Etats d''Encaissements...
0Etats de Décaissements...
0Etats d''Encaissements / Décaissements...
0Etats de Relance clients...
'
    FINSI
    
    categs	+=	'0Anciens millésimes...
'
    site ::= ''
    SI (site.codePays = 'MA' OU site.codeDevise = 'XAF' OU site.codeDevise = 'XOF')ALORS
    	categs += '
0Etats spécifiques MA...'
    FINSI
	
	SI site.codeDevise = 'XPF' ALORS
    	categs += '
0Etats spécifiques Polynésie...'
    FINSI


    rs := flotLecture{categs}
    --rs := flotLecture{CATEGORIES{}}
    
    TANT QUE NON lectureFinie{rs} FAIRE
    	SI  lire{rs, 1}='1' ALORS b := 1 SINON b := 0 FINSI
    	ajouterElement{of,b}
    	ajouterElement{cats, lire{rs, CR}}
    FIN FAIRE

	etatsFiscauxDP := RenvEtatsFiscauxDossierPermanent{}
	SI taille{etatsFiscauxDP} > 0 ALORS
    	n := creerNoeud{nomCategorieFiscauxDossierPermanent{}, creer{'Impressions_Annuelles'}, VRAI}
    	ajouterElement{nds, n}

    	rs2 := flotLecture{etatsFiscauxDP}
    	TANT QUE NON lectureFinie{rs2} FAIRE
    		nomEtatFiscalDP := lire{rs2, CR}

		    POUR TOUT element <EtatComptable>DE lst 
		    FAIRE     
		    	SI substituerCaracteres{''+element, '_', ' '} = substituerCaracteres{nomEtatFiscalDP, '_', ' '} ALORS
					creerNoeud{substituerCaracteres{''+element, '_', ' '}, element, n} 
				FINSI
		    FIN FAIRE
    	FIN FAIRE
    FINSI

    i := 1
    TANT QUE i <= nbElements{cats} FAIRE
    	-- ECCOMPTA-3405 ; YLV ; 27/06/2017 ; Tous les noeuds sont fermés.
    	n := creerNoeud{chaine{elementDIndice{cats, i}}, creer{'Impressions_Annuelles'}, FAUX}
    	ajouterElement{nds, n}
    	cleValeur{dico, chaine{elementDIndice{cats, i}},n}
    i += 1
    FIN FAIRE
    
    POUR TOUT element <EtatComptable>DE lst 
    TRI numero	-- MODIF SCR pour les anciens millésimes
    TRI categorie
    FAIRE   
    	libelleEtat := ''+element
    	SI (substituerCaracteres{''+element, '_', ' '} # 'Revision' ET droits{'Revision'} = 0)
    	OU (element.categorie = 'Etats d''import' ET (''+element) = 'ImportGenerique' ET droits{'GE'} = 0)
    	OU ((''+element) = 'Bilan_Notaire' ET droits{'GE'} = 0)
    	ALORS
			-- on n'affiche pas l'état Revision dans la liste
    	SINON
	    	-- AJOUT SCR pour traiter les anciens millésimes
	    	trouve	:=	FAUX
	    	SI element.categorie # 'Etats TVA *' OU element.categorie # 'Liasses fiscales *' 
	    	OU element.categorie # 'Liasse SCI*' OU element.categorie # 'Liasse SCM *' 
	    	OU element.categorie # 'Etats MSA*' OU element.categorie # 'Annexes *'
	    	ALORS
	    		anneeCourante	:=	annee{aujourdhui{}}
	    		tmpAnnee	:=	entier{chaine{element.categorie, taille{element.categorie}-6, taille{element.categorie}-3}}

				SI element.categorie # 'Etats MSA*' ALORS
		    		tmpAnnee    :=  2000+entier{chaine{libelleEtat, taille{libelleEtat}-1, taille{libelleEtat}}}
	    		FINSI    

	    		SI (anneeCourante - tmpAnnee) > 1 ALORS
	    			trouve	:=	VRAI
	    			n := cleValeur{dico, 'Anciens millésimes...'}
	    			element!{'EstCoche'}booleen := FAUX 
	    			--cleValeur{corresp, ''+element, element}
	    			SI n <> ? ALORS 
	    				SI element.categorie # 'Etats MSA*' ALORS
		    				SI indiceElement{lstAncienMil, element.categorie+' Anciens millésimes'} < 1 ALORS	
		    					ajouterElement{lstAncienMil, element.categorie+' Anciens millésimes'}
		    					n2 := creerNoeud{element.categorie+' Anciens millésimes', element, n}	    					
		    				SINON
		    					n	::=	'Noeud'
		    					nd	::=	'Noeud'
		    					maColl	:=	n.fils
		    					i	:=	1
		    					chope	:=	FAUX
		    					nbMaColl := nbElements{maColl}
		    					TANT QUE i <= nbMaColl ET NON chope FAIRE
		    						nd	:=	elementDIndice{maColl, i}
		    						SI nd.nom = element.categorie+' Anciens millésimes' ALORS
		    							n2	:=	nd
		    							chope	:=	VRAI
		    						FIN SI
		    						i+=1
		    					FIN FAIRE
			    			FIN SI		
			    		SINON
		    				SI indiceElement{lstAncienMil, element.categorie} < 1 ALORS
		    					ajouterElement{lstAncienMil, element.categorie} 
		    					n2 := creerNoeud{element.categorie, element, n}
		    					
		    				SINON
		    					n	::=	'Noeud'
		    					nd	::=	'Noeud'
		    					maColl	:=	n.fils
		    					i	:=	1
		    					chope	:=	FAUX
		    					nbMaColl := nbElements{maColl}
		    					TANT QUE i <= nbMaColl ET NON chope FAIRE
		    						nd	:=	elementDIndice{maColl, i}
		    						SI nd.nom = element.categorie ALORS
		    							n2	:=	nd
		    							chope	:=	VRAI
		    						FIN SI
		    						i+=1
		    					FIN FAIRE
		    				FIN SI		
		    			FIN SI	

	    				SI n2 <> ? ALORS
	    					creerNoeud{substituerCaracteres{''+element, '_', ' '}, element, n2} 
	    				FIN SI
	    			FINSI
	    		FIN SI
	    	FIN SI
	    	SI NON trouve ALORS
				SI element.categorie <> ? ET element.numero > 0 /* ET ''+element <> 'Annexes' */ ALORS	--MODIF SCR 01/06/06 : ne plus proposer l'Annexes
					SI ((''+element # 'Attestation_OGA_' OU ''+element # 'Compte_Rendu_Mission_OGA_') ET droits{'Oga'} <> 1)
					OU (''+element # 'Liasse_*_2036_Bis') ALORS
					SINON
						addEtatLoc := VRAI
						SI NON objLibrairieCompta.TesterAjoutEtatComptableAnalytique{codeDossierAjEt, dateFinExerciceAjEt, element.categorie, ''+element} ALORS
							addEtatLoc := FAUX
						FINSI

					SI addEtatLoc ALORS
						--SI ''+element#'InteretsCompteCourant'  OU ''+element # 'Fiche_JA'	ALORS
						SI  ''+element # 'Fiche_JA'	ALORS
							trouve := VRAI
							SI    ((droitPartenaire{'CDER', 'Agricole'}> 0 ) OU (droits{'Agricole'} > 0))  ALORS
								n := cleValeur{dico, element.categorie}
								element!{'EstCoche'}booleen := FAUX
								cleValeur{corresp, ''+element, element}
								SI n <> ? ALORS creerNoeud{substituerCaracteres{''+element, '_', ' '}, element, n} FINSI
							FINSI
						SINON
							n := cleValeur{dico, element.categorie}
							element!{'EstCoche'}booleen := FAUX
						--cleValeur{corresp, substituerCaracteres{''+element, '_', ' '}, element}
							cleValeur{corresp, ''+element, element}
							SI n <> ? ALORS creerNoeud{substituerCaracteres{''+element, '_', ' '}, element, n} FINSI
						FINSI
					FIN SI
				FIN SI
			FIN SI
		FIN SI
		FIN SI
	FIN FAIRE

	trouve	:=	FAUX

	--Suppression des catégories vides
	i := 1
	n ::= 'Noeud'
	TANT QUE i <= nbElements{nds} FAIRE
		n := elementDIndice{nds, i}
		-- Ajout deuxieme condition pour la cloture
		SI nbElements{n.fils}=0 OU (n.nom = 'Anciens millésimes...' ET exerciceComptable.EstCloture[exerciceComptable.dateFin]) ALORS
			supprimerElement{nds, i}
		SINON
			i += 1
		FINSI
	FIN FAIRE
	aAjouter := choixArbre{'Cochez les éléments désirés                                                                 ', nds}

	SORTIR aAjouter

###
