Add support for typelien used by Code général des impôts

This commit is contained in:
Emmanuel 2024-12-04 23:37:50 +01:00
parent a50e1361e7
commit 79ddfbbfd6

View file

@ -635,7 +635,13 @@ async function registerLegiArticleModifiers(
)
if (
(articleLien.typelien === "ABROGATION" && articleLien.cible) ||
(articleLien.typelien === "ABROGE" && !articleLien.cible)
(articleLien.typelien === "ABROGE" && !articleLien.cible) ||
(articleLien.typelien === "CONCORDANCE" && !articleLien.cible) ||
(articleLien.typelien === "CONCORDE" && articleLien.cible) ||
(articleLien.typelien === "DISJOINT" && !articleLien.cible) ||
(articleLien.typelien === "DISJONCTION" && articleLien.cible) ||
(articleLien.typelien === "PERIME" && !articleLien.cible) ||
(articleLien.typelien === "TRANSFERE" && !articleLien.cible)
) {
await addArticleModificateurId(
context,
@ -647,81 +653,27 @@ async function registerLegiArticleModifiers(
)
} else if (
articleLien.typelien === "CITATION" ||
(articleLien.typelien === "SPEC_APPLI" && articleLien.cible) ||
(articleLien.typelien === "HISTO" && articleLien.cible) ||
(articleLien.typelien === "PEREMPTION" && articleLien.cible) ||
(articleLien.typelien === "PILOTE_SUIVEUR" && !articleLien.cible) ||
(articleLien.typelien === "TXT_ASSOCIE" && !articleLien.cible) ||
(articleLien.typelien === "SPEC_APPLI" && articleLien.cible) ||
articleLien.typelien === "TXT_ASSOCIE" ||
articleLien.typelien === "TXT_SOURCE"
) {
// Ignore link.
} else if (
(articleLien.typelien === "CODIFICATION" && articleLien.cible) ||
(articleLien.typelien === "CREATION" && articleLien.cible) ||
(articleLien.typelien === "CREE" && !articleLien.cible) ||
(articleLien.typelien === "MODIFICATION" && articleLien.cible) ||
(articleLien.typelien === "MODIFIE" && !articleLien.cible)
) {
await addArticleModificateurId(
context,
articleLien.article_id,
"CREATE",
articleId,
articleDateDebut,
articleDateFin,
)
} else if (
(articleLien.typelien === "CONCORDANCE" && articleLien.cible) ||
(articleLien.typelien === "CONCORDE" && !articleLien.cible)
) {
// L'article est créé par le déplacement d'un article existant dans une loi.
await addArticleModificateurId(
context,
articleLien.article_id,
"CREATE",
articleId,
articleDateDebut,
articleDateFin,
)
} else if (
(articleLien.typelien === "CONCORDANCE" && !articleLien.cible) ||
(articleLien.typelien === "CONCORDE" && articleLien.cible)
) {
// L'article est déplacé ailleurs.
await addArticleModificateurId(
context,
articleLien.article_id,
"DELETE",
articleId,
articleDateDebut,
articleDateFin,
)
} else if (articleLien.typelien === "CREATION" && !articleLien.cible) {
// It seems to be an error.
// Ignore link.
} else if (
(articleLien.typelien === "CONCORDE" && !articleLien.cible) ||
(articleLien.typelien === "CREE" && !articleLien.cible) ||
(articleLien.typelien === "DEPLACE" && !articleLien.cible) ||
(articleLien.typelien === "DEPLACEMENT" && articleLien.cible)
(articleLien.typelien === "DEPLACEMENT" && articleLien.cible) ||
(articleLien.typelien === "DISJOINT" && articleLien.cible) ||
(articleLien.typelien === "MODIFICATION" && articleLien.cible) ||
(articleLien.typelien === "MODIFIE" && !articleLien.cible) ||
(articleLien.typelien === "TRANSFERT" && articleLien.cible)
) {
// L'article est créé par le déplacement d'un article existant.
await addArticleModificateurId(
context,
articleLien.article_id,
"CREATE",
articleId,
articleDateDebut,
articleDateFin,
)
} else if (articleLien.typelien === "TRANSFERE" && !articleLien.cible) {
// L'article est transféré ailleurs.
await addArticleModificateurId(
context,
articleLien.article_id,
"DELETE",
articleId,
articleDateDebut,
articleDateFin,
)
} else if (articleLien.typelien === "TRANSFERT" && articleLien.cible) {
// L'article provient d'un transfert.
await addArticleModificateurId(
context,
articleLien.article_id,
@ -730,6 +682,12 @@ async function registerLegiArticleModifiers(
articleDateDebut,
articleDateFin,
)
} else if (
(articleLien.typelien === "CREATION" && !articleLien.cible) ||
(articleLien.typelien === "MODIFICATION" && !articleLien.cible)
) {
// It seems to be errors.
// Ignore link.
} else {
throw new Error(
`Unexpected article_lien to article ${lienArticle["@id"]}: typelien=${articleLien.typelien}, cible=${articleLien.cible}`,
@ -763,17 +721,24 @@ async function registerLegiArticleModifiers(
)
} else if (
texteVersionLien.typelien === "CITATION" ||
(texteVersionLien.typelien === "HISTO" && texteVersionLien.cible) ||
(texteVersionLien.typelien === "PEREMPTION" && texteVersionLien.cible) ||
(texteVersionLien.typelien === "SPEC_APPLI" && texteVersionLien.cible) ||
(texteVersionLien.typelien === "TXT_ASSOCIE" && texteVersionLien.cible) ||
(texteVersionLien.typelien === "TXT_SOURCE" && !texteVersionLien.cible)
) {
// Ignore link.
} else if (
(texteVersionLien.typelien === "CODIFICATION" &&
texteVersionLien.cible) ||
(texteVersionLien.typelien === "CONCORDANCE" && texteVersionLien.cible) ||
(texteVersionLien.typelien === "CREATION" && texteVersionLien.cible) ||
(texteVersionLien.typelien === "MODIFICATION" &&
texteVersionLien.cible) ||
(texteVersionLien.typelien === "RECTIFICATION" && texteVersionLien.cible)
(texteVersionLien.typelien === "MODIFIE" && !texteVersionLien.cible) ||
(texteVersionLien.typelien === "RECTIFICATION" &&
texteVersionLien.cible) ||
(texteVersionLien.typelien === "TRANSFERT" && texteVersionLien.cible)
) {
await addTexteModificateurId(
context,
@ -783,32 +748,6 @@ async function registerLegiArticleModifiers(
articleDateDebut,
articleDateFin,
)
} else if (
texteVersionLien.typelien === "CONCORDANCE" &&
texteVersionLien.cible
) {
// L'article est créé par le déplacement d'un article existant dans une loi.
await addTexteModificateurId(
context,
texteVersionLien.texte_version_id,
"CREATE",
articleId,
articleDateDebut,
articleDateFin,
)
} else if (
texteVersionLien.typelien === "TRANSFERT" &&
texteVersionLien.cible
) {
// L'article provient d'un transfert.
await addTexteModificateurId(
context,
texteVersionLien.texte_version_id,
"CREATE",
articleId,
articleDateDebut,
articleDateFin,
)
} else {
throw new Error(
`Unexpected texte_version_lien to article ${lienArticle["@id"]}: typelien=${texteVersionLien.typelien}, cible=${texteVersionLien.cible}`,
@ -837,7 +776,19 @@ async function registerLegiArticleModifiers(
(articleLien["@typelien"] === "ABROGE" &&
articleLien["@sens"] === "cible") ||
(articleLien["@typelien"] === "ANNULATION" &&
articleLien["@sens"] === "source")
articleLien["@sens"] === "source") ||
(articleLien["@typelien"] === "CONCORDANCE" &&
articleLien["@sens"] === "cible") ||
(articleLien["@typelien"] === "CONCORDE" &&
articleLien["@sens"] === "source") ||
(articleLien["@typelien"] === "DISJOINT" &&
articleLien["@sens"] === "cible") ||
(articleLien["@typelien"] === "DISJONCTION" &&
articleLien["@sens"] === "source") ||
(articleLien["@typelien"] === "PERIME" &&
articleLien["@sens"] === "cible") ||
(articleLien["@typelien"] === "TRANSFERE" &&
articleLien["@sens"] === "cible")
) {
await addTexteModificateurId(
context,
@ -850,63 +801,47 @@ async function registerLegiArticleModifiers(
} else if (
articleLien["@typelien"] === "CITATION" ||
(articleLien["@typelien"] === "HISTO" &&
articleLien["@sens"] ===
"source") /* Au moins sur un exemple, le lien est vide à part ces 2 champs */ ||
articleLien["@sens"] === "source") ||
(articleLien["@typelien"] === "PEREMPTION" &&
articleLien["@sens"] === "source") ||
(articleLien["@typelien"] === "PILOTE_SUIVEUR" &&
articleLien["@sens"] === "cible") ||
(articleLien["@typelien"] === "SPEC_APPLI" &&
articleLien["@sens"] === "source") ||
(articleLien["@typelien"] === "TXT_ASSOCIE" &&
articleLien["@sens"] === "cible") ||
articleLien["@typelien"] === "TXT_ASSOCIE" ||
articleLien["@typelien"] === "TXT_SOURCE"
) {
// Ignore link.
} else if (
(articleLien["@typelien"] === "CODIFICATION" &&
articleLien["@sens"] === "source") ||
(articleLien["@typelien"] === "CONCORDANCE" &&
articleLien["@sens"] === "source") ||
(articleLien["@typelien"] === "CONCORDE" &&
articleLien["@sens"] === "cible") ||
(articleLien["@typelien"] === "CREATION" &&
articleLien["@sens"] === "source") ||
(articleLien["@typelien"] === "CREE" &&
articleLien["@sens"] === "cible") ||
(articleLien["@typelien"] === "DEPLACE" &&
articleLien["@sens"] === "cible") ||
(articleLien["@typelien"] === "DEPLACEMENT" &&
articleLien["@sens"] === "source") ||
(articleLien["@typelien"] === "DISJOINT" &&
articleLien["@sens"] === "source") ||
(articleLien["@typelien"] === "MODIFICATION" &&
articleLien["@sens"] === "source") ||
(articleLien["@typelien"] === "MODIFIE" &&
articleLien["@sens"] === "cible")
) {
await addTexteModificateurId(
context,
articleLien["@cidtexte"],
"CREATE",
articleId,
articleDateDebut,
articleDateFin,
)
} else if (
(articleLien["@typelien"] === "CONCORDANCE" &&
articleLien["@sens"] === "source") ||
(articleLien["@typelien"] === "CONCORDE" &&
articleLien["@sens"] === "cible")
) {
// L'article est créé par le déplacement d'un article existant dans une loi.
await addTexteModificateurId(
context,
articleLien["@cidtexte"],
"CREATE",
articleId,
articleDateDebut,
articleDateFin,
)
} else if (
(articleLien["@typelien"] === "CONCORDANCE" &&
articleLien["@sens"] === "cible") ||
(articleLien["@typelien"] === "CONCORDE" &&
(articleLien["@typelien"] === "RECTIFICATION" &&
articleLien["@sens"] === "source") ||
(articleLien["@typelien"] === "TRANSFERT" &&
articleLien["@sens"] === "source")
) {
// L'article est déplacé aiileurs.
await addTexteModificateurId(
context,
articleLien["@cidtexte"],
"DELETE",
"CREATE",
articleId,
articleDateDebut,
articleDateFin,
@ -917,59 +852,6 @@ async function registerLegiArticleModifiers(
) {
// It seems to be an error.
// Ignore link.
} else if (
(articleLien["@typelien"] === "DEPLACE" &&
articleLien["@sens"] === "cible") ||
(articleLien["@typelien"] === "DEPLACEMENT" &&
articleLien["@sens"] === "source")
) {
// L'article est créé par le déplacement d'un article existant.
await addTexteModificateurId(
context,
articleLien["@cidtexte"],
"CREATE",
articleId,
articleDateDebut,
articleDateFin,
)
} else if (
articleLien["@typelien"] === "RECTIFICATION" &&
articleLien["@sens"] === "source"
) {
await addTexteModificateurId(
context,
articleLien["@cidtexte"],
"CREATE",
articleId,
articleDateDebut,
articleDateFin,
)
} else if (
articleLien["@typelien"] === "TRANSFERE" &&
articleLien["@sens"] === "cible"
) {
// L'article est transféré ailleurs.
await addTexteModificateurId(
context,
articleLien["@cidtexte"],
"DELETE",
articleId,
articleDateDebut,
articleDateFin,
)
} else if (
articleLien["@typelien"] === "TRANSFERT" &&
articleLien["@sens"] === "source"
) {
// L'article provient d'un transfert.
await addTexteModificateurId(
context,
articleLien["@cidtexte"],
"CREATE",
articleId,
articleDateDebut,
articleDateFin,
)
} else {
throw new Error(
`Unexpected LIEN in article ${articleId}: @typelien=${articleLien["@typelien"]}, @sens=${articleLien["@sens"]}`,
@ -1026,7 +908,8 @@ async function registerLegiSectionTaModifiers(
)
if (
(articleLien.typelien === "ABROGATION" && articleLien.cible) ||
(articleLien.typelien === "ABROGE" && !articleLien.cible)
(articleLien.typelien === "ABROGE" && !articleLien.cible) ||
(articleLien.typelien === "TRANSFERE" && !articleLien.cible)
) {
await addArticleModificateurId(
context,
@ -1036,10 +919,15 @@ async function registerLegiSectionTaModifiers(
sectionTaDateDebut,
sectionTaDateFin,
)
} else if (articleLien.typelien === "CITATION" && !articleLien.cible) {
} else if (
(articleLien.typelien === "CITATION" && !articleLien.cible) ||
(articleLien.typelien === "PEREMPTION" && articleLien.cible)
) {
// Ignore link.
} else if (
(articleLien.typelien === "CREATION" && articleLien.cible) ||
(articleLien.typelien === "CREE" && !articleLien.cible) ||
(articleLien.typelien === "DEPLACE" && !articleLien.cible) ||
(articleLien.typelien === "MODIFICATION" && articleLien.cible) ||
(articleLien.typelien === "MODIFIE" && !articleLien.cible)
) {
@ -1051,16 +939,6 @@ async function registerLegiSectionTaModifiers(
sectionTaDateDebut,
sectionTaDateFin,
)
} else if (articleLien.typelien === "DEPLACE" && !articleLien.cible) {
// L'article est créé par le déplacement d'un article existant.
await addArticleModificateurId(
context,
articleLien.article_id,
"CREATE",
sectionTaId,
sectionTaDateDebut,
sectionTaDateFin,
)
} else {
throw new Error(
`Unexpected article_lien to Section Texte Article ${lienSectionTa["@id"]}: typelien=${articleLien.typelien}, cible=${articleLien.cible}`,