diff --git a/l10n_fr_account_vat_return/__manifest__.py b/l10n_fr_account_vat_return/__manifest__.py index ef9d189dc..16420689c 100644 --- a/l10n_fr_account_vat_return/__manifest__.py +++ b/l10n_fr_account_vat_return/__manifest__.py @@ -4,14 +4,15 @@ { "name": "France VAT Return", - "version": "14.0.4.0.0", + "version": "14.0.5.0.0", "category": "Accounting", "license": "AGPL-3", - "summary": "VAT return for France: CA3, CA12, 3519", + "summary": "VAT return for France: CA3, 3310-A, 3519", "author": "Akretion,Odoo Community Association (OCA)", "maintainers": ["alexis-via"], "website": "https://github.com/OCA/l10n-france", "depends": ["l10n_fr", "l10n_fr_oca", "intrastat_base", "onchange_helper"], + "external_dependencies": {"python": ["pypdf>=3.1.0"]}, "data": [ "security/ir.model.access.csv", "security/ir_rule.xml", diff --git a/l10n_fr_account_vat_return/data/l10n.fr.account.vat.box.csv b/l10n_fr_account_vat_return/data/l10n.fr.account.vat.box.csv index e64248907..2e9947fc6 100644 --- a/l10n_fr_account_vat_return/data/l10n.fr.account.vat.box.csv +++ b/l10n_fr_account_vat_return/data/l10n.fr.account.vat.box.csv @@ -1,279 +1,279 @@ -id,form_code,sequence,display_type,code,edi_code,edi_type,nref_code,active,box_type,push_sequence,push_box_id/id,push_rate,due_vat_rate,due_vat_base_box_id/id,accounting_method,account_code,negative_switch_box_id/id,name,full_label,print_page,print_x,print_y -ca3_ls,3310CA3,5,,REP,LS,CCI_TBX,912158,True,,,,,,,,,,Mention de qualité de représentant d’un assujetti unique,"Mention de qualité de représentant d’un assujetti unique, article 256 C du CGI",1,560,473 -ca3_kf,3310CA3,10,,NEANT,KF,CCI_TBX,100117,True,,,,,,,,,,Mention déclaration néante,Mention déclaration néante,1,560,411 -ca3_hj,3310CA3,20,,GRP,HJ,CCI_TBX,902353,True,,,,,,,,,,Mention membre d'un groupe,Mention membre d'un groupe,1,560,436 -ca3_bb,3310CA3,30,,IMPUT,BB,CCI_TBX,100123,True,,,,,,,,,,Paiement par imputation,Paiement par imputation (joindre l'imprimé 3516),1,200,309 -ca3_section_operations_realisees,3310CA3,95,section,A,,,,True,,,,,,,,,,MONTANT DES OPÉRATIONS RÉALISÉES,MONTANT DES OPÉRATIONS RÉALISÉES,,, -ca3_sub_section_operations_imposables,3310CA3,100,sub_section,,,,,True,,,,,,,,,,OPÉRATIONS TAXÉES (H.T.),OPÉRATIONS TAXÉES (H.T.),,, -ca3_ce,3310CA3,195,,B5,CE,MOA,100118,True,,,,,,,,,,Régularisations,Opérations taxées - Régularisation,2,292,590 -ca3_ca,3310CA3,110,,A1,CA,MOA,100071,True,taxed_op_france,,,,,,,,l10n_fr_account_vat_return.ca3_ce,"Ventes, prestations de services","Opérations taxées - Ventes, prestations de services",2,292,776 -ca3_cb,3310CA3,120,,A2,CB,MOA,100072,True,,,,,,,,,l10n_fr_account_vat_return.ca3_ce,Autres opérations imposables,Opérations taxées - Autres opérations imposables,2,292,759 -ca3_kh,3310CA3,130,,A3,KH,MOA,900774,True,taxed_op_autoliq_intracom_service,,,,,,,,l10n_fr_account_vat_return.ca3_ce,Achats de prestations de services réalisés auprès d’un assujetti non établi en France (art 283-2 du CGI),Opérations taxées - Achats de prestations de services réalisés auprès d’un assujetti non établi en France (art 283-2 du code général des impôts),2,292,736 -ca3_dk,3310CA3,140,,A4,DK,MOA,911589,True,,,,,,,,,l10n_fr_account_vat_return.ca3_ce,Importations (autres que produits pétroliers),Opérations taxées - Importations (autres que produits pétroliers),2,292,714 -ca3_kv,3310CA3,150,,A5,KV,MOA,911590,True,,,,,,,,,l10n_fr_account_vat_return.ca3_ce,Sorties de régime fiscal suspensif (autres que les produits pétroliers),Opérations taxées - Sorties de régime fiscal suspensif (autres que les produits pétroliers),2,292,696 -ca3_ch,3310CA3,160,,B1,CH,MOA,910758,True,,,,,,,,,l10n_fr_account_vat_return.ca3_ce,Mises à la consommation de produits pétroliers,Opérations taxées - Mises à la consommation de produits pétroliers,2,292,675 -ca3_cc,3310CA3,170,,B2,CC,MOA,100073,True,taxed_op_autoliq_intracom_product,,,,,,,,l10n_fr_account_vat_return.ca3_ce,Acquisitions intra-communautaires,Opérations taxées - Acquisitions intra-communautaires,2,292,657 -ca3_cf,3310CA3,180,,B3,CF,MOA,100121,True,,,,,,,,,l10n_fr_account_vat_return.ca3_ce,"Achats d'électricité, de gaz naturel, de chaleur ou de froid imposables en France","Opérations taxées - Achats d'électricité, de gaz naturel, de chaleur ou de froid imposables en France, base hors taxe",2,292,639 -ca3_cg,3310CA3,190,,B4,CG,MOA,100505,True,taxed_op_autoliq_extracom,,,,,,,,l10n_fr_account_vat_return.ca3_ce,Achats de biens ou de prestations de services réalisés auprès d'un assujetti non établi en France (art 283-1 du CGI),"Opérations taxées - Achats de biens ou de prestations de services réalisés auprès d'un assujetti non établi en France, art 283-1 du CGI",2,292,613 -ca3_sub_section_operations_non_imposables,3310CA3,200,sub_section,,,,,True,,,,,,,,,,OPÉRATIONS NON TAXÉES,OPÉRATIONS NON TAXÉES,,, -ca3_de,3310CA3,290,,F8,DE,MOA,100119,True,,,,,,,,,,Régularisations,Opérations non taxées - Régularisations,2,572,509 -ca3_da,3310CA3,210,,E1,DA,MOA,100075,True,untaxed_op_extracom,,,,,,,,l10n_fr_account_vat_return.ca3_de,Exportations hors UE,Opérations non taxées - Exportations hors UE,2,572,776 -ca3_db,3310CA3,220,,E2,DB,MOA,100076,True,untaxed_op_france_exo,,,,,,,,l10n_fr_account_vat_return.ca3_de,Autres opérations non imposables,Opérations non taxées - Autres opérations non imposables,2,572,759 -ca3_dh,3310CA3,230,,E3,DH,MOA,908462,True,untaxed_op_intracom_b2c,,,,,,,,l10n_fr_account_vat_return.ca3_de,Ventes à distance taxables dans un autre État membre au profit de personnes non assujetties - Ventes B to C,Opérations non taxées - Ventes à distance taxables dans un autre État membre au profit de personnes non assujetties - Ventes B to C,2,572,736 -ca3_kw,3310CA3,240,,E4,KW,MOA,911591,True,,,,,,,,,l10n_fr_account_vat_return.ca3_de,Importations (autres que les produits pétroliers),Opérations non taxées - Importations (autres que les produits pétroliers),2,572,714 -ca3_kx,3310CA3,245,,E5,KX,MOA,911592,True,,,,,,,,,l10n_fr_account_vat_return.ca3_de,Sorties de régime fiscal suspensif (autres que les produits pétroliers),Opérations non taxées - Sorties de régime fiscal suspensif (autres que les produits pétroliers),2,572,696 -ca3_ky,3310CA3,250,,E6,KY,MOA,911593,True,,,,,,,,,l10n_fr_account_vat_return.ca3_de,Importations placées sous régime fiscal suspensif (autres que les produits pétroliers),Opérations non taxées - Importations placées sous régime fiscal suspensif (autres que les produits pétroliers),2,572,675 -ca3_kz,3310CA3,255,,F1,KZ,MOA,911594,True,,,,,,,,,l10n_fr_account_vat_return.ca3_de,Acquisitions intra-communautaires,Opérations non taxées - Acquisitions intra-communautaires,2,572,657 -ca3_dc,3310CA3,260,,F2,DC,MOA,100077,True,untaxed_op_intracom_b2b,,,,,,,,l10n_fr_account_vat_return.ca3_de,Livraisons intra-communautaires à destination d'une personne assujettie - Ventes B to B,Opérations non taxées - Livraisons intra-communautaires à destination d'une personne assujettie - Ventes B to B,2,572,639 -ca3_df,3310CA3,265,,F3,DF,MOA,100122,True,,,,,,,,,l10n_fr_account_vat_return.ca3_de,"Livraisons d'electricité, de gaz naturel, de chaleur ou de froid non imposables en France","Opérations non taxées - Livraisons d'electricité, de gaz naturel, de chaleur ou de froid non imposables en France",2,572,613 -ca3_dj,3310CA3,270,,F4,DJ,MOA,910759,True,,,,,,,,,l10n_fr_account_vat_return.ca3_de,Mises à la consommation de produits pétroliers,Opérations non taxées - Mises à la consommation de produits pétroliers,2,572,590 -ca3_la,3310CA3,275,,F5,LA,MOA,911595,True,,,,,,,,,l10n_fr_account_vat_return.ca3_de,Importations de produits pétroliers placées sous régime fiscal suspensif,Opérations non taxées - Importations de produits pétroliers placées sous régime fiscal suspensif,2,572,569 -ca3_dd,3310CA3,280,,F6,DD,MOA,100104,True,,,,,,,,,l10n_fr_account_vat_return.ca3_de,Achats en franchise,Opérations non taxées - Achats en franchise,2,572,553 -ca3_dg,3310CA3,285,,F7,DG,MOA,100506,True,,,,,,,,,l10n_fr_account_vat_return.ca3_de,Vente de biens ou de prestations de services réalisées par un assujetti non établi en France (art 283-1 du CGI),"Opérations non taxées - Vente de biens ou de prestations de services réalisées par un assujetti non établi en France, art 283-1 du CGI",2,572,530 -ca3_lr,3310CA3,295,,F9,LR,MOA,912152,True,,,,,,,,,l10n_fr_account_vat_return.ca3_de,Opérations internes réalisées entre membres d’un assujetti unique,Opérations internes réalisées entre membres d’un assujetti unique,2,572,491 -ca3_section_tva_a_payer,3310CA3,300,section,B,,,,True,,,,,,,,,,DÉCOMPTE DE LA TVA À PAYER,DÉCOMPTE DE LA TVA À PAYER,,, -ca3_sub_section_tva_brute,3310CA3,310,sub_section,,,,,True,,,,,,,,,,TVA BRUTE,TVA BRUTE,,, -ca3_hg,3310CA3,700,,23,HG,MOA,,True,deductible_vat_total,,,,,,,,,Total de la TVA déductible (lignes 19 à 2C),Total de la TVA déductible,3,569,636 -ca3_hc,3310CA3,630,,21,HC,MOA,100092,True,,40,l10n_fr_account_vat_return.ca3_hg,,,,credit,,,Autre TVA à déduire,"Autre TVA à déduire, omissions ou compléments de déductions",3,572,712 -ca3_gh,3310CA3,530,,16,GH,MOA,,True,due_vat_total,,,,,,,,,Total de la TVA brute due (lignes 08 à 5B),Total général de la TVA brute due,3,572,817 -ca3_fp,3310CA3,320,,08-base,FP,MOA,904065,True,due_vat_base,,,,,,,,,France métropolitaine - Taux normal 20 % : base HT,Opérations imposables au taux normal de 20% en France métropolitaine : base HT,2,498,414 -ca3_gp,3310CA3,325,,08-taxe,GP,MOA,,True,due_vat,40,l10n_fr_account_vat_return.ca3_gh,,2000,l10n_fr_account_vat_return.ca3_fp,debit,,l10n_fr_account_vat_return.ca3_hc,France métropolitaine - Taux normal 20 % : taxe due,Opérations imposables au taux normal de 20% en France métropolitaine : taxe due,2,572,414 -ca3_fb,3310CA3,330,,09-base,FB,MOA,100078,True,due_vat_base,,,,,,,,,"France métropolitaine - Taux réduit 5,5 % : base HT","Opérations imposables au taux réduit de 5,5 % en France métropolitaine : base HT",2,498,400 -ca3_gb,3310CA3,335,,09-taxe,GB,MOA,,True,due_vat,40,l10n_fr_account_vat_return.ca3_gh,,550,l10n_fr_account_vat_return.ca3_fb,debit,,l10n_fr_account_vat_return.ca3_hc,"France métropolitaine - Taux réduit 5,5 % : taxe due","Opérations imposables au taux réduit de 5,5 % en France métropolitaine : taxe due",2,572,400 -ca3_fr,3310CA3,340,,9B-base,FR,MOA,904069,True,due_vat_base,,,,,,,,,France métropolitaine - Taux réduit 10 % : base HT,Opérations imposables au taux réduit de 10% en France métropolitaine : base HT,2,498,386 -ca3_gr,3310CA3,345,,9B-taxe,GR,MOA,,True,due_vat,40,l10n_fr_account_vat_return.ca3_gh,,1000,l10n_fr_account_vat_return.ca3_fr,debit,,l10n_fr_account_vat_return.ca3_hc,France métropolitaine - Taux réduit 10 % : taxe due,Opérations imposables au taux réduit de 10% en France métropolitaine : taxe due,2,572,386 -ca3_fm,3310CA3,350,,10-base,FM,MOA,100113,True,due_vat_base,,,,,,,,,"DOM - Taux normal 8,5 % : base HT",Opérations réalisées dans les DOM imposables au taux normal : base HT,2,498,354 -ca3_gm,3310CA3,355,,10-taxe,GM,MOA,,True,due_vat,40,l10n_fr_account_vat_return.ca3_gh,,850,l10n_fr_account_vat_return.ca3_fm,debit,,l10n_fr_account_vat_return.ca3_hc,"DOM - Taux normal 8,5 % : taxe due",Opérations réalisées dans les DOM imposables au taux normal : taxe due,2,572,354 -ca3_fn,3310CA3,360,,11-base,FN,MOA,100115,True,due_vat_base,,,,,,,,,"DOM - Taux réduit 2,1 % : base HT",Opérations réalisées dans les DOM au taux réduit : base HT,2,498,340 -ca3_gn,3310CA3,361,,11-taxe,GN,MOA,,True,due_vat,40,l10n_fr_account_vat_return.ca3_gh,,,l10n_fr_account_vat_return.ca3_fn,debit,,l10n_fr_account_vat_return.ca3_hc,"DOM - Taux réduit 2,1 % : taxe due",Opérations réalisées dans les DOM imposables au taux réduit : taxe due,2,572,340 -ca3_bq,3310CA3,364,,T1-base,BQ,MOA,100042,True,due_vat_base,,,,,,,,,"DOM - Taux 1,75 % : base HT","Opérations réalisées dans les DOM et imposables au taux de 1,75 % : base HT",2,498,309 -ca3_cq,3310CA3,365,,T1-taxe,CQ,MOA,,True,due_vat,40,l10n_fr_account_vat_return.ca3_gh,,,l10n_fr_account_vat_return.ca3_bq,debit,,l10n_fr_account_vat_return.ca3_hc,"DOM - Taux 1,75 % : taxe due","Opérations réalisées dans les DOM et imposables au taux de 1,75 % : taxe due",2,572,309 -ca3_bp,3310CA3,366,,T2-base,BP,MOA,100040,True,due_vat_base,,,,,,,,,"DOM - Taux 1,05 % : base HT","Opérations réalisées dans les DOM et imposables au taux de 1,05 % : base HT",2,498,295 -ca3_cp,3310CA3,367,,T2-taxe,CP,MOA,,True,due_vat,40,l10n_fr_account_vat_return.ca3_gh,,,l10n_fr_account_vat_return.ca3_bp,debit,,l10n_fr_account_vat_return.ca3_hc,"DOM - Taux 1,05 % : taxe due","Opérations réalisées dans les DOM et imposables au taux de 1,05 % : taxe due",2,572,295 -ca3_bs,3310CA3,368,,T3-base,BS,MOA,904063,True,due_vat_base,,,,,,,,,Corse - Taux 10 % : base HT,Opérations réalisées en Corse et imposables au taux de 10 % : base HT,2,498,281 -ca3_cs,3310CA3,369,,T3-taxe,CS,MOA,,True,due_vat,40,l10n_fr_account_vat_return.ca3_gh,,,l10n_fr_account_vat_return.ca3_bs,debit,,l10n_fr_account_vat_return.ca3_hc,Corse - Taux 10 % : taxe due,Opérations réalisées en Corse et imposables au taux de 10 % : taxe due,2,572,281 -ca3_bf,3310CA3,370,,T4-base,BF,MOA,100011,True,due_vat_base,,,,,,,,,"Corse - Taux 2,1 % : base HT","Opérations réalisées en Corse et imposables au taux de 2,1 % : base HT",2,498,267 -ca3_mc,3310CA3,371,,T4-taxe,MC,MOA,,True,due_vat,40,l10n_fr_account_vat_return.ca3_gh,,,l10n_fr_account_vat_return.ca3_bf,debit,,l10n_fr_account_vat_return.ca3_hc,"Corse - Taux 2,1 % : taxe due","Opérations réalisées en Corse et imposables au taux de 2,1 % : taxe due",2,572,267 -ca3_be,3310CA3,372,,T5-base,BE,MOA,100009,True,due_vat_base,,,,,,,,,"Corse - Taux 0,9 % : base HT","Opérations réalisées en Corse et imposables au taux de 0,9 % : base HT",2,498,252 -ca3_ma,3310CA3,373,,T5-taxe,MA,MOA,,True,due_vat,40,l10n_fr_account_vat_return.ca3_gh,,,l10n_fr_account_vat_return.ca3_be,debit,,l10n_fr_account_vat_return.ca3_hc,"Corse - Taux 0,9 % : taxe due","Opérations réalisées en Corse et imposables au taux de 0,9 % : taxe due",2,572,252 -ca3_mf,3310CA3,374,,T6-base,MF,MOA,100003,True,due_vat_base,,,,,,,,,"France continentale - Taux 2,1 % : base HT","Opérations réalisées en France continentale au taux de 2,1 % : base HT",2,498,238 -ca3_me,3310CA3,375,,T6-taxe,ME,MOA,,True,due_vat,40,l10n_fr_account_vat_return.ca3_gh,,210,l10n_fr_account_vat_return.ca3_mf,debit,,l10n_fr_account_vat_return.ca3_hc,"France continentale - Taux 2,1 % : taxe due","Opérations réalisées en France continentale au taux de 2,1 % : taxe due",2,572,238 -ca3_mg,3310CA3,376,,T7-base,MG,MOA,100001,True,due_vat_base,,,,,,,,,Retenue de TVA sur droits d'auteur : base HT,Retenue de TVA sur droits d'auteur : base HT,2,498,224 -ca3_md,3310CA3,377,,T7-taxe,MD,MOA,,True,due_vat,40,l10n_fr_account_vat_return.ca3_gh,,,l10n_fr_account_vat_return.ca3_mg,debit,,l10n_fr_account_vat_return.ca3_hc,Retenue de TVA sur droits d'auteur : taxe due,Retenue de TVA sur droits d'auteur : taxe due,2,572,224 -ca3_fc,3310CA3,378,,13-base,FC,MOA,100080,True,due_vat_base,,,,,,,,,Anciens taux : base HT,Opérations imposables aux anciens taux : base HT,2,498,210 -ca3_gc,3310CA3,379,,13-taxe,GC,MOA,,True,due_vat,40,l10n_fr_account_vat_return.ca3_gh,,,l10n_fr_account_vat_return.ca3_fc,debit,,l10n_fr_account_vat_return.ca3_hc,Anciens taux : taxe due,Opérations imposables aux anciens taux : taxe due,2,572,210 -ca3_fd,3310CA3,380,,14-base,FD,MOA,100082,False,,,,,,,,,,Autres taux (décompte effectué sur annexe N° 3310-A) : base HT,Opérations imposables à un taux particulier (décompte effectué sur annexe N° 3310-A) : base HT,2,498,283 -ca3_gd,3310CA3,385,,14-taxe,GD,MOA,,False,,,,,,,,,,Autres taux (décompte effectué sur annexe N° 3310-A) : taxe due,Opérations imposables à un taux particulier (décompte effectué sur annexe N° 3310-A) : taxe due,2,572,283 -ca3_gs,3310CA3,390,,P1-base,GS,MOA,910572,True,due_vat_base,,,,,,,,,France métropolitaine - Taux normal 20 % sur les produits pétroliers : base HT,Opérations imposables au taux normal 20 % sur les produits pétroliers : base HT,2,498,179 -ca3_gt,3310CA3,395,,P1-taxe,GT,MOA,,True,due_vat,40,l10n_fr_account_vat_return.ca3_gh,,,l10n_fr_account_vat_return.ca3_gs,debit,,l10n_fr_account_vat_return.ca3_hc,France métropolitaine - Taux normal 20 % sur les produits pétroliers : taxe due,Opérations imposables au taux normal 20 % sur les produits pétroliers : taxe due,2,572,179 -ca3_gu,3310CA3,400,,P2-base,GU,MOA,910574,True,due_vat_base,,,,,,,,,France métropolitaine - Taux réduit 13 % sur les produits pétroliers : base HT,Opérations imposables au taux réduit 13 % sur les produits pétroliers : base HT,2,498,165 -ca3_gv,3310CA3,405,,P2-taxe,GV,MOA,,True,due_vat,40,l10n_fr_account_vat_return.ca3_gh,,1300,l10n_fr_account_vat_return.ca3_gu,debit,,l10n_fr_account_vat_return.ca3_hc,France métropolitaine - Taux réduit 13 % sur les produits pétroliers : taxe due,Opérations imposables au taux réduit 13 % sur les produits pétroliers : taxe due,2,572,165 -ca3_lb,3310CA3,410,,I1-base,LB,MOA,911596,True,due_vat_base,,,,,,,,,Importations - Taux normal 20 % : base HT,Importations - Taux normal 20 % : base HT,2,498,133 -ca3_lc,3310CA3,415,,I1-taxe,LC,MOA,,True,due_vat,40,l10n_fr_account_vat_return.ca3_gh,,,l10n_fr_account_vat_return.ca3_lb,debit,,l10n_fr_account_vat_return.ca3_hc,Importations - Taux normal 20 % : taxe due,Importations - Taux normal 20 % : taxe due,2,572,133 -ca3_ld,3310CA3,420,,I2-base,LD,MOA,911598,True,due_vat_base,,,,,,,,,Importations - Taux réduit 10 % : base HT,Importations - Taux réduit 10 % : base HT,2,498,119 -ca3_le,3310CA3,425,,I2-taxe,LE,MOA,,True,due_vat,40,l10n_fr_account_vat_return.ca3_gh,,,l10n_fr_account_vat_return.ca3_ld,debit,,l10n_fr_account_vat_return.ca3_hc,Importations - Taux réduit 10 % : taxe due,Importations - Taux réduit 10 % : taxe due,2,572,119 -ca3_lf,3310CA3,430,,I3-base,LF,MOA,911600,True,due_vat_base,,,,,,,,,"Importations - Taux réduit 8,5 % : base HT","Importations - Taux réduit 8,5 % : base HT",2,498,106 -ca3_lg,3310CA3,435,,I3-taxe,LG,MOA,,True,due_vat,40,l10n_fr_account_vat_return.ca3_gh,,,l10n_fr_account_vat_return.ca3_lf,debit,,l10n_fr_account_vat_return.ca3_hc,"Importations - Taux réduit 8,5 % : taxe due","Importations - Taux réduit 8,5 % : taxe due",2,572,106 -ca3_lh,3310CA3,440,,I4-base,LH,MOA,911602,True,due_vat_base,,,,,,,,,"Importations - Taux réduit 5,5 % : base HT","Importations - Taux réduit 5,5 % : base HT",2,498,91 -ca3_lj,3310CA3,445,,I4-taxe,LJ,MOA,,True,due_vat,40,l10n_fr_account_vat_return.ca3_gh,,,l10n_fr_account_vat_return.ca3_lh,debit,,l10n_fr_account_vat_return.ca3_hc,"Importations - Taux réduit 5,5 % : taxe due","Importations - Taux réduit 5,5 % : taxe due",2,572,91 -ca3_lk,3310CA3,450,,I5-base,LK,MOA,911604,True,due_vat_base,,,,,,,,,"Importations - Taux réduit 2,1 % : base HT","Importations - Taux réduit 2,1 % : base HT",2,498,77 -ca3_ll,3310CA3,455,,I5-taxe,LL,MOA,,True,due_vat,40,l10n_fr_account_vat_return.ca3_gh,,,l10n_fr_account_vat_return.ca3_lk,debit,,l10n_fr_account_vat_return.ca3_hc,"Importations - Taux réduit 2,1 % : taxe due","Importations - Taux réduit 2,1 % : taxe due",2,572,77 -ca3_lm,3310CA3,460,,I6-base,LM,MOA,911606,True,due_vat_base,,,,,,,,,"Importations - Taux réduit 1,05 % : base HT","Importations - Taux réduit 1,05 % : base HT",2,498,63 -ca3_ln,3310CA3,465,,I6-taxe,LN,MOA,,True,due_vat,40,l10n_fr_account_vat_return.ca3_gh,,,l10n_fr_account_vat_return.ca3_lm,debit,,l10n_fr_account_vat_return.ca3_hc,"Importations - Taux réduit 1,05 % : taxe due","Importations - Taux réduit 1,05 % : taxe due",2,572,63 -ca3_gg,3310CA3,500,,15,GG,MOA,100087,True,,40,l10n_fr_account_vat_return.ca3_gh,,,,,,,TVA antérieurement déduite à reverser,"TVA antérieurement déduite à reverser, taxe due",2,572,40 -ca3_ga,3310CA3,505,,15-dont-pp,GA,MOA,910761,True,,,,,,,,,,TVA antérieurement déduite à reverser : dont TVA sur les produits pétroliers,"TVA antérieurement déduite à reverser, taxe due : dont TVA sur les produits pétroliers",2,326,50 -ca3_lq,3310CA3,510,,15-dont-pi,LQ,MOA,911609,True,,,,,,,,,,TVA antérieurement déduite à reverser : dont TVA sur les produits importés hors produits pétroliers,"TVA antérieurement déduite à reverser, taxe due : dont TVA sur les produits importés hors produits pétroliers",2,387,35 -ca3_ks,3310CA3,520,,5B,KS,MOA,905877,True,,40,l10n_fr_account_vat_return.ca3_gh,,,,,,,"Sommes à ajouter, y compris acompte congés","Sommes à ajouter, y compris acompte congés",2,572,19 -ca3_gj,3310CA3,540,,17,GJ,MOA,100089,True,due_vat_intracom_product,,,,,,,,,Dont TVA sur acquisitions intra-communautaires,TVA brute sur acquisitions intra-communautaires,3,572,798 -ca3_gk,3310CA3,560,,18,GK,MOA,100105,True,due_vat_monaco,,,,,,,,,Dont TVA sur opérations à destination de Monaco,TVA brute due sur opérations à destination de Monaco.,3,572,782 -ca3_sub_section_tva_deductible,3310CA3,600,sub_section,,,,,True,,,,,,,,,,TVA DÉDUCTIBLE,TVA DÉDUCTIBLE,,, -ca3_ha,3310CA3,610,,19,HA,MOA,100090,True,deductible_vat_asset,40,l10n_fr_account_vat_return.ca3_hg,,,,credit,,l10n_fr_account_vat_return.ca3_gg,Biens constituant des immobilisations,TVA déductible sur biens constituant des immobilisations,3,572,745 -ca3_hb,3310CA3,620,,20,HB,MOA,100091,True,deductible_vat_other,40,l10n_fr_account_vat_return.ca3_hg,,,,credit,,l10n_fr_account_vat_return.ca3_gg,Autres biens et services,TVA déductible sur autres biens et services (déduction sur facture),3,572,726 -ca3_hk,3310CA3,640,,21-dont-pp,HK,MOA,910762,True,,,,,,,,,,Dont régularisation de TVA sur les produits pétroliers,"Autres TVA à déduire, dont régularisation de TVA sur les produits pétroliers",3,220,702 -ca3_lp,3310CA3,650,,21-dont-import,LP,MOA,911608,True,,,,,,,,,,Dont régularisation de TVA sur les produits importés (hors produits pétroliers),"Autres TVA à déduire, dont régularisation de TVA sur les produits importés (hors produits pétroliers)",3,293,694 -ca3_hh,3310CA3,660,,21-dont-col-ded,HH,MOA,100120,True,,,,,,,,,,Dont régularisations sur de la TVA collectée sur autres produits ou PS ou déductible,"Autre TVA à déduire, dont régularisation sur de la TVA collectée sur autres produits ou PS ou déductible",3,350,685 -ca3_hd,3310CA3,680,,22,HD,MOA,100093,True,credit_deferment,40,l10n_fr_account_vat_return.ca3_hg,,,,credit,44567,,Report du crédit apparaissant ligne 27 de la précédente déclaration,Report du crédit apparaissant sur la précédente déclaration,3,572,674 -ca3_ku,3310CA3,670,,2C,KU,MOA,905882,True,,40,l10n_fr_account_vat_return.ca3_hg,,,,,,,"Sommes à imputer, y compris acompte congés","Sommes à imputer, y compris acompte congés",3,572,656 -ca3_he,3310CA3,690,,22A,HE,PCD,100094,True,,,,,,,,,,Coefficient de taxation unique applicable pour la période s'il est différent de 100 %,Pourcentage de déduction applicable pour la période s'il est différent de 100 %,3,291,622 -,,,,,,,,,,,,,,,,,,,,,, -ca3_hf,3310CA3,710,,24,HF,MOA,909864,True,,,,,,,,,,Dont TVA déductible sur importations (hors produits pétroliers),Dont TVA déductible sur importations (hors produits pétroliers),3,572,614 -ca3_hl,3310CA3,720,,2E,HL,MOA,910763,True,,,,,,,,,,Dont TVA déductible sur les produits pétroliers,Dont TVA déductible sur les produits pétroliers,3,572,596 -ca3_section_credit,3310CA3,800,section,,,,,True,,,,,,,,,,CRÉDIT,CRÉDIT,,, -ca3_jc,3310CA3,890,,27,JC,MOA,100098,True,end_total_credit,,,,,,debit,44567,,Crédit à reporter (lignes 25 - 26 - AA),Crédit à reporter sur déclaration suivante,3,288,251 -ca3_ja,3310CA3,810,,25,JA,MOA,100096,True,no_push_total_credit,100,l10n_fr_account_vat_return.ca3_jc,,,,,,,Crédit de TVA (lignes 23 - 16),Crédit de TVA,3,288,548 -ca3_jb,3310CA3,820,,26,JB,MOA,100097,True,vat_reimbursement,100,l10n_fr_account_vat_return.ca3_jc,-100,,,debit,44583,,Remboursement de crédit demandé sur formulaire n°3519,Remboursement de crédit demandé sur formulaire n°3519,3,288,300 -ca3_kj,3310CA3,830,,AA,KJ,MOA,902351,True,,100,l10n_fr_account_vat_return.ca3_jc,-100,,,,,,Crédit de TVA transféré à la société tête de groupe,Crédit de TVA transféré à la société tête de groupe,3,288,277 -,,,,,,,,,,,,,,,,,,,,,, -ca3_section_taxe_a_payer,3310CA3,900,section,,,,,True,,,,,,,,,,TAXE À PAYER,TAXE À PAYER,,, -ca3_ke,3310CA3,990,,32,KE,MOA,100103,True,end_total_debit,,,,,,,,,Total à payer (lignes 28 + 29 - AB),Total à payer,3,572,173 -ca3_nd,3310CA3,915,,28,ND,MOA,912255,True,,110,l10n_fr_account_vat_return.ca3_ke,,,,,,,TVA nette due (ligne TD - ligne X5),TVA nette due (ligne TD - ligne X5),3,572,277 -ca3_ka,3310CA3,910,,TD,KA,MOA,100099,True,no_push_total_debit,100,l10n_fr_account_vat_return.ca3_nd,,,,credit,44551,,TVA nette due (lignes 16 - 23),TVA nette due,3,572,548 -ca3_kb,3310CA3,920,,29,KB,MOA,100100,True,,110,l10n_fr_account_vat_return.ca3_ke,,,,credit,4470,,Report du montant de taxes assimilées calculées sur annexe 3310A,Report du montant de taxes assimilées calculées sur annexe 3310A,3,572,251 -ca3_kl,3310CA3,930,,AB,KL,MOA,902352,True,,110,l10n_fr_account_vat_return.ca3_ke,-100,,,,,,Total à payer acquitté par la société tête de groupe (lignes 28 + 29),Total à payer acquitté par la société tête de groupe,3,572,199 -,,,,,,,,,,,,,,,,,,,,,, -a_section_tva,3310A,2000,section,,,,,False,,,,,,,,,,RETENUE DE TVA SUR DROITS D’AUTEUR ET TVA DUE À UN TAUX PARTICULIER,,,, -a_bn,3310A,2280,,,BN,MOA,,False,,,,,,,,,,Total lignes 35 à 46 : base HT (à reporter ligne 14 de la CA3),Total TVA sur droits d'auteurs et TVA due à taux particuliers : base HT (à reporter ligne 14 de la CA3),,, -a_cn,3310A,2290,,,CN,MOA,,False,,,,,,,,,,Total lignes 35 à 46 : taxe due (à reporter ligne 14 de la CA3),Total TVA sur droits d'auteurs et TVA due à taux particuliers : taxe due (à reporter ligne 14 de la CA3),,, -a_ba,3310A,2010,,35-base,BA,MOA,,False,due_vat_base,,,,,,,,,Retenue de TVA sur droits d'auteur : base HT,Retenue de TVA sur droits d'auteur : base HT,,, -a_ca,3310A,2020,,35-taxe,CA,MOA,,False,due_vat,,,,,l10n_fr_account_vat_return.a_ba,debit,,,Retenue de TVA sur droits d'auteur : taxe due,Retenue de TVA sur droits d'auteur : taxe due,,, -a_sub_section_tva_metropole,3310A,2030,sub_section,,,,,False,,,,,,,,,,OPÉRATIONS IMPOSABLES en France continentale à un taux particulier,OPÉRATIONS IMPOSABLES en France continentale à un taux particulier,,, -a_bb,3310A,2040,,36-base,BB,MOA,,False,due_vat_base,,,,,,,,,"France continentale, taux 2,10% : base HT","Opérations imposables en France continentale à un taux particulier taux 2,10% : base HT",,, -a_cb,3310A,2050,,36-taxe,CB,MOA,,False,due_vat,,,,,l10n_fr_account_vat_return.a_bb,debit,,,"France continentale, taux 2,10% : taxe due","Opérations imposables en France continentale à un taux particulier taux 2,10% : taxe due",,, -a_bc,3310A,2060,,37-base,BC,MOA,,False,due_vat_base,,,,,,,,,"France continentale, ancien taux : base HT","Opérations imposables en France continentale à un taux particulier, ancien taux : base HT",,, -a_cc,3310A,2070,,37-taxe,CC,MOA,,False,due_vat,,,,,l10n_fr_account_vat_return.a_bc,debit,,,"France continentale, anciens taux : taxe due",Opérations imposables en France continentale à un taux particulier anciens taux : taxe due,,, -a_ae,3310A,2080,,38-base,AE,MOA,,False,due_vat_base,,,,,,,,,"France continentale, nouveau taux : base HT",Ligne utilisable pour un nouveau taux en métropole (base hors taxe) (ligne à blanc),,, -a_af,3310A,2090,,38-taxe,AF,MOA,,False,due_vat,,,,,l10n_fr_account_vat_return.a_ae,debit,,,"France continentale, nouveau taux : taxe due",Ligne utilisable pour un nouveau taux en métropole (taxe due) (ligne à blanc),,, -a_sub_section_tva_corse,3310A,2100,sub_section,,,,,False,,,,,,,,,,OPÉRATIONS IMPOSABLES en Corse à un taux particulier,OPÉRATIONS IMPOSABLES en Corse à un taux particulier,,, -a_be,3310A,2110,,39-base,BE,MOA,,False,due_vat_base,,,,,,,,,"Corse, taux 0,90% : base HT","Opérations imposables en Corse à un taux particulier taux 0,90% : base HT",,, -a_ce,3310A,2120,,39-taxe,CE,MOA,,False,due_vat,,,,,l10n_fr_account_vat_return.a_be,debit,,,"Corse, taux 0,90% : taxe due","Opérations imposables en Corse à un taux particulier taux 0,90% : taxe due",,, -a_bf,3310A,2130,,40-base,BF,MOA,,False,due_vat_base,,,,,,,,,"Corse, taux 2,10% : base HT","Opérations imposables en Corse à un taux particulier taux 2,10% : base HT",,, -a_cf,3310A,2140,,40-taxe,CF,MOA,,False,due_vat,,,,,l10n_fr_account_vat_return.a_bf,debit,,,"Corse, taux 2,10 % : taxe due","Opérations imposables en Corse à un taux particulier taux 2,10 % : taxe due",,, -a_bs,3310A,2150,,41-base,BS,MOA,,False,due_vat_base,,,,,,,,,"Corse, taux 10% : base HT",Opérations imposables en Corse à un taux particulier taux 10% : base HT,,, -a_cs,3310A,2160,,41-taxe,CS,MOA,,False,due_vat,,,,,l10n_fr_account_vat_return.a_bs,debit,,,"Corse, taux 10% : taxe due",Opérations imposables en Corse à un taux particulier taux 10% : taxe due,,, -a_bm,3310A,2190,,43-base,BM,MOA,,False,due_vat_base,,,,,,,,,"Corse, anciens taux : base HT","Opérations imposables en Corse à un taux particulier, anciens taux : base HT",,, -a_cm,3310A,2200,,43-taxe,CM,MOA,,False,due_vat,,,,,l10n_fr_account_vat_return.a_bm,debit,,,"Corse, anciens taux : taxe due",Opérations imposables en Corse à un taux particulier anciens taux : taxe due,,, -a_sub_section_tva_dom,3310A,2210,sub_section,,,,,False,,,,,,,,,,OPÉRATIONS IMPOSABLES dans les DOM à un taux particulier,OPÉRATIONS IMPOSABLES dans les DOM à un taux particulier,,, -a_bp,3310A,2220,,44-base,BP,MOA,,False,due_vat_base,,,,,,,,,"DOM, taux 1,05% : base HT","Opérations imposables dans les DOM à un taux particulier, taux 1,05% : base HT",,, -a_cp,3310A,2230,,44-taxe,CP,MOA,,False,due_vat,,,,,l10n_fr_account_vat_return.a_bp,debit,,,"DOM, taux 1,05% : taxe due","Opérations imposables dans les DOM à un taux particulier, taux 1,05% : taxe due",,, -a_bq,3310A,2240,,45-base,BQ,MOA,,False,due_vat_base,,,,,,,,,"DOM, taux 1,75% : base HT","Opérations imposables dans les DOM à un taux particulier, taux 1,75% : base HT",,, -a_cq,3310A,2250,,45-taxe,CQ,MOA,,False,due_vat,,,,,l10n_fr_account_vat_return.a_bq,debit,,,"DOM, taux 1,75% : taxe due","Opérations imposables dans les DOM à un taux particulier, taux 1,75% : taxe due",,, -a_br,3310A,2260,,46-base,BR,MOA,,False,due_vat_base,,,,,,,,,"DOM, ancien taux : base HT",Opérations imposables dans les DOM à un ancien taux : base HT,,, -a_cr,3310A,2270,,46-taxe,CR,MOA,,False,due_vat,,,,,l10n_fr_account_vat_return.a_br,debit,,,"DOM, ancien taux : taxe due",Opérations imposables dans les DOM à un ancien taux : taxe due,,, -a_section_other_taxes,3310A,2300,section,,,,,True,,,,,,,,,,DÉCOMPTE DES TAXES ASSIMILÉES,DÉCOMPTE DES TAXES ASSIMILÉES,,, -a_hb,3310A,4000,,,HB,MOA,,True,,30,l10n_fr_account_vat_return.ca3_kb,,,,,,,Total lignes 47 à 133 (à reporter ligne 29 de la CA3),Total lignes 47 à 133 (à reporter ligne 29 de la CA3),,, -a_fa,3310A,2310,,47-taxe,FA,MOA,,True,,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Taxe sur certaines dépenses de publicité : taxe due,"Taxe sur certaines dépenses de publicité (CGI, art. 302 bis MA) au taux de 1%",,, -a_nd,3310A,2320,,47-base,ND,MOA,,True,manual,10,l10n_fr_account_vat_return.a_fa,1,,,,,,Taxe sur certaines dépenses de publicité : base,"Base imposable sur la taxe sur certaines dépenses de publicité (CGI, art. 302 bis MA) au taux de 1%",,, -a_fb,3310A,2330,,48-taxe,FB,MOA,,True,,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Taxe sur les retransmissions sportives : taxe due,"Taxe sur les retransmissions sportives (CGI, art. 302 bis ZE) au taux de 5 %",,, -a_ne,3310A,2340,,48-base,NE,MOA,,True,manual,10,l10n_fr_account_vat_return.a_fb,5,,,,,,Taxe sur la taxe sur les retransmissions sportives : base,"Base imposable sur la taxe sur la taxe sur les retransmissions sportives (CGI, art. 302 bis ZE) au taux de 5 %",,, -a_jf,3310A,2350,,49,JF,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Taxe sur les excédents de provision des entreprises d'assurances de dommages,"Taxe sur les excédents de provision des entreprises d'assurances de dommages (CGI, art. 235 ter X)",,, -a_he,3310A,2360,,50,HE,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Taxe sur le chiffre d'affaires des exploitants agricoles,"Taxe sur le chiffre d'affaires des exploitants agricoles (CGI, art. 302 bis MB) (cumul de la partie variable et de la partie forfaitaire)",,, -a_fj,3310A,2370,,55-taxe,FJ,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Taxe sur les concessionnaires d'autoroute : taxe due,"Taxe due par les concessionnaires d'autoroute (CGI, art 302 bis ZB) (7,32 € pour 1000 km)",,, -a_nf,3310A,2380,,55-base,NF,QTY,,True,manual,,,,,,,,,Taxe sur les concessionnaires d'autoroute : nombre de kms,"Base imposable de la taxe due par les concessionnaires d'autoroutes (CGI, art 302 bis ZB) : nombre de kms",,, -a_jb,3310A,2390,,56,JB,MOA,,False,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,6358,,"Contribution à l'audiovisuel public (CGI, art 1605 et suiv.)","Contribution à l'audiovisuel public (CGI, art 1605 et suiv.)",,, -a_jc,3310A,2400,,57,JC,MOA,,False,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,6358,,Contribution à l'audiovisuel public due par les loueurs d'appareils ,"Contribution à l'audiovisuel public due par les loueurs d'appareils (CGI, art 1605 et suiv.)",,, -a_kj,3310A,2410,,59-taxe,KJ,MOA,,True,,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,"Taxe sur la diffusion en vidéo physique et en ligne de contenus audiovisuels à titre onéreux, taux 5,15 % : taxe due","Taxe sur la diffusion en vidéo physique et en ligne de contenus audiovisuels à titre onéreux au taux de 5,15 %",,, -a_mk,3310A,2420,,59-base,MK,MOA,,True,manual,10,l10n_fr_account_vat_return.a_kj,5.15,,,,,,"Taxe sur la diffusion en vidéo physique et en ligne de contenus audiovisuels à titre onéreux, taux 5,15 % : base","Base imposable sur la taxe sur la diffusion en vidéo physique et en ligne de contenus audiovisuels à titre onéreux (CGI, art 1609 sexdecies B) au taux de 5,15 %",,, -a_kl,3310A,2430,,60-taxe,KL,MOA,,True,,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,"Taxe sur la diffusion en vidéo physique et en ligne de contenus audiovisuels à titre onéreux, taux 15 % : taxe due",Taxe sur la diffusion en vidéo physique et en ligne de contenus audiovisuels à titre onéreux au taux de 15 %,,, -a_ml,3310A,2440,,60-base,ML,MOA,,True,manual,10,l10n_fr_account_vat_return.a_kl,15,,,,,,"Taxe sur la diffusion en vidéo physique et en ligne de contenus audiovisuels à titre onéreux, taux 15 % : base","Base imposable sur la taxe sur la diffusion en vidéo physique et en ligne de contenus audiovisuels à titre onéreux (CGI, art 1609 sexdecies B) au taux de 15 %",,, -a_pp,3310A,2450,,60A-taxe,PP,MOA,,True,,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,"Taxe sur la diffusion en vidéo physique et en ligne de contenus audiovisuels à titre gratuit, taux 5,15 % : taxe due","Taxe sur la diffusion en vidéo physique et en ligne de contenus audiovisuels à titre gratuit (CGI, art 1609 sexdecies B) au taux de 5,15 %",,, -a_pq,3310A,2460,,60A-base,PQ,MOA,,True,manual,10,l10n_fr_account_vat_return.a_pp,5.15,,,,,,"Taxe sur la diffusion en vidéo physique et en ligne de contenus audiovisuels à titre gratuit, taux 5,15 % : base","Base imposable sur la taxe sur la diffusion en vidéo physique et en ligne de contenus audiovisuels à titre gratuit (CGI, art 1609 sexdecies B) au taux de 5,15 %",,, -a_pr,3310A,2470,,60B-taxe,PR,MOA,,True,,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,"Taxe sur la diffusion en vidéo physique et en ligne de contenus audiovisuels à titre gratuit, taux 15 % : taxe due","Taxe sur la diffusion en vidéo physique et en ligne de contenus audiovisuels à titre gratuit (CGI, art 1609 sexdecies B) au taux de 15 %",,, -a_ps,3310A,2480,,60B-base,PS,MOA,,True,manual,10,l10n_fr_account_vat_return.a_pr,15,,,,,,"Taxe sur la diffusion en vidéo physique et en ligne de contenus audiovisuels à titre gratuit, taux 15 % : base","Base imposable sur la taxe sur la diffusion en vidéo physique et en ligne de contenus audiovisuels à titre gratuit (CGI, art 1609 sexdecies B) au taux de 15 %",,, -a_ty,3310A,2482,,61,TY,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Taxe due par les employeurs de main-d’œuvre étrangère (uniquement pour les cessations d’activité ayant lieu en 2023),Taxe due par les employeurs de main-d’œuvre étrangère (L. 436-10 du CESEDA) (uniquement pour les cessations d’activité ayant lieu en 2023),,, -a_ug,3310A,2488,,62,UG,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Total de la contribution sur la rente infra-marginale de la production d’électricité (lignes a à q),Total de la contribution sur la rente infra-marginale de la production d’électricité (lignes a à q),,, -a_ft,3310A,2490,,64-taxe,FT,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Taxe sur les actes des huissiers de justice : taxe due,Taxe sur les actes des huissiers de justice,,, -a_mm,3310A,2500,,64-base,MM,MOA,,True,manual,,,,,,,,,Taxe sur les actes des huissiers de justice : base,"Base imposable sur la taxe sur les actes des huissiers de justice (CGI, art 302 bis Y)",,, -a_kg,3310A,2510,,65-taxe,KG,MOA,,True,,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Taxe sur les services fournis par les opérateurs de communication électronique : taxe due,"Taxe sur les services fournis par les opérateurs de communication électronique (CGI, art 302 bis KH) au taux de 1,3 %",,, -a_nh,3310A,2520,,65-base,NH,MOA,,True,manual,10,l10n_fr_account_vat_return.a_kg,1.3,,,,,,Taxe sur les services fournis par les opérateurs de communication électronique : base,"Base imposable sur la taxe sur les services fournis par les opérateurs de communication électronique (CGI, art 302 bis KH)",,, -a_fv,3310A,2530,,66-taxe-old,FV,MOA,,False,manual,,,,,,debit,,,Taxe sur les embarquements/débarquements de passagers en Corse : taxe due,"Taxe sur les embarquements ou débarquements de passagers en Corse (CGI, art 1599 vicies)",,, -a_mn,3310A,2540,,66-base-old,MN,MOA,,False,manual,,,,,,,,,Taxe sur les embarquements/débarquements de passagers en Corse : base,"Base imposable sur la taxe sur les embarquements ou débarquements de passagers en Corse (CGI, art 1599 vicies)",,, -a_ub,3310A,2522,,66-taxe,UB,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Taxe sur le transport aérien de passagers - Majoration en Corse : taxe,"Taxe sur le transport aérien de passagers - Majoration en Corse (CIBS, art. L422-13 et L422-29) : taxe",,, -a_tz,3310A,2523,,66-base,TZ,QTY,,True,,,,,,,,,,Taxe sur le transport aérien de passagers - Majoration en Corse : base,"Taxe sur le transport aérien de passagers - Majoration en Corse (CIBS, art. L422-13 et L422-29) : base",,, -a_uc,3310A,2524,,67-taxe,UC,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Taxe sur le transport maritime de passagers dans certains territoires côtiers - Embarquement ou débarquement en Corse : taxe,"Taxe sur le transport maritime de passagers dans certains territoires côtiers - Embarquement ou débarquement en Corse (CIBS, art. L423-57 et suivants) : taxe",,, -a_ua,3310A,2525,,67-base,UA,QTY,,True,,,,,,,,,,Taxe sur le transport maritime de passagers dans certains territoires côtiers - Embarquement ou débarquement en Corse : base,"Taxe sur le transport maritime de passagers dans certains territoires côtiers - Embarquement ou débarquement en Corse (CIBS, art. L423-57 et suivants) : base",,, -a_hi,3310A,2550,,68-taxe,HI,MOA,,True,,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,"Taxe pour le dév. de la formation prof. dans la réparation automobile/cycle/motocycle, taux 0,75 % : taxe due","Taxe pour le développement de la formation professionnelle dans les métiers de la réparation de l'automobile, du cycle et du motocycle au taux de 0,75 %",,, -a_mp,3310A,2560,,68-base,MP,MOA,,True,manual,10,l10n_fr_account_vat_return.a_hi,0.75,,,,,,"Taxe pour le dév. de la formation prof. dans la réparation automobile/cycle/motocycle, taux 0,75 % : base","Base imposable sur la taxe pour le développement de la formation professionnelle dans les métiers de la réparation de l'automobile, du cycle et du motocycle (CGI, art 1609 sexvicies) au taux de 0,75%",,, -a_jg,3310A,2570,,69,JG,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Taxe sur les ordres annulés dans le cadre d'opérations à haute fréquence,"Taxe sur les ordres annulés dans le cadre d'opérations à haute fréquence (CGI, art. 235 ter ZD bis)",,, -a_ud,3310A,2575,,70,UD,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Taxe spéciale due en cas de non-respect de l’engagement de conserver pendant 5 ans les parts de fonds commun de placement à risques ou de fonds professionnels de capital investissement,Taxe spéciale due en cas de non-respect de l’engagement de conserver pendant 5 ans les parts de fonds commun de placement à risques ou de fonds professionnels de capital investissement (art. 209-0-A du CGI),,, -a_kt,3310A,2580,,76,KT,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Contribution due par les gestionnaires des réseaux publics d'électricité,"Contribution due par les gestionnaires des réseaux publics d'électricité (CGCT, art L 2224-31 I bis)",,, -a_jj,3310A,2590,,78,JJ,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Taxe sur le résultat des entreprises ferroviaires,"Taxe sur le résultat des entreprises ferroviaires (CGI, art. 235 ter ZF)",,, -a_jk,3310A,2600,,79,JK,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Contribution de solidarité territoriale,"Contribution de solidarité territoriale (CGI, art. 302 bis ZC)",,, -a_jl,3310A,2610,,80,JL,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Imposition forfaitaire sur les pylônes,"Imposition forfaitaire sur les pylônes (CGI, art. 1519 A)",,, -a_ue,3310A,2616,,81-nom-dpm,UE,NAD,,True,manual,,,,,,,,,Nom du parc éolien en domain public maritime,Nom du parc éolien en domain public maritime,,, -a_uf,3310A,2618,,81-dpm,UF,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Taxe sur les éoliennes maritimes sur le domaine public maritime,"Taxe sur les éoliennes maritimes sur le domaine public maritime (CGI, art. 1519 B)",,, -a_jm,3310A,2620,,81,JM,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Taxe sur les éoliennes maritimes,"Taxe sur les éoliennes maritimes (CGI, art. 1519 B)",,, -a_jp,3310A,2650,,83-taxe,JP,MOA,,True,,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Taxe pour le fonds de soutien aux collectivités territoriales ayant contracté des produits structurés : taxe,"Taxe pour le financement du fonds de soutien aux collectivités territoriales ayant contracté des produits structurés (CGI, art. 235 ter ZE bis)",,, -a_np,3310A,2660,,83-base,NP,MOA,,True,manual,10,l10n_fr_account_vat_return.a_jp,0.0642,,,,,,Taxe pour le fonds de soutien aux collectivités territoriales ayant contracté des produits structurés : base,"Base imposable sur la taxe pour le financement du fonds de soutien aux collectivités territoriales ayant contracté des produits structurés au taux de 0,0642%",,, -a_jq,3310A,2670,,84A,JQ,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Redevance sanitaire d'abattage,"Redevance sanitaire d'abattage (CGI, art. 302 bis N à 302 bis R)",,, -a_jr,3310A,2680,,84B,JR,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Redevance sanitaire de découpage,"Redevance sanitaire de découpage (CGI, art. 302 bis S à 302 bis W)",,, -a_kx,3310A,2690,,85,KX,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Redevance sanitaire pour le contrôle de certaines substances et de leurs résidus,"Redevance sanitaire pour le contrôle de certaines substances et de leurs résidus (CGI, art. 302 bis WC)",,, -a_ky,3310A,2700,,86,KY,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Redevance sanitaire de 1ère mise sur le marché des produits de la pêche ou de l'aquaculture,"Redevance sanitaire de première mise sur le marché des produits de la pêche ou de l'aquaculture (CGI, art. 302 bis WA)",,, -a_kz,3310A,2710,,87-taxe,KZ,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Redevance sanitaire de transformation des produits de la pêche ou de l'aquaculture : taxe,"Redevance sanitaire de transformation des produits de la pêche ou de l'aquaculture (CGI, art. 302 bis WB)",,, -a_pe,3310A,2720,,87-base,PE,MOA,,True,manual,,,,,,,,,Redevance sanitaire de transformation des produits de la pêche ou de l'aquaculture : nombre de tonnes,"Base imposable sur la redevance sanitaire de transformation des produits de la pêche ou de l'aquaculture (CGI, art. 302 bis WB) : nombre de tonnes",,, -a_la,3310A,2730,,88-taxe,LA,MOA,,True,,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Redevance pour agrément des établissements du secteur de l'alimentation animale : taxe,"Redevance pour agrément des établissements du secteur de l'alimentation animale (CGI, art. 302 bis WD à WG)",,, -a_pf,3310A,2740,,88-base,PF,MOA,,True,manual,10,l10n_fr_account_vat_return.a_la,12500,,,,,,Redevance pour agrément des établissements du secteur de l'alimentation animale : nombre d'établissements,"Base imposable sur la redevance pour agrément des établissements du secteur de l'alimentation animale (CGI, art. 302 bis WD à WG) : nombre d'établissements",,, -a_lc,3310A,2750,,89,LC,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Redevance phytosanitaire à la circulation intracommunautaire,Redevance phytosanitaire à la circulation intracommunautaire (PPE) (L 251-17-1 du code rural et de la pêche maritime),,, -a_ld,3310A,2760,,90,LD,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Redevance phytosanitaire à l'exportation,Redevance phytosanitaire à l'exportation (L 251-17-1 du code rural et de la pêche maritime),,, -a_sz,3310A,2766,,90A,SZ,MOA,,True,,,,,,,debit,,,Total de la taxe sur les produits phytopharmaceutiques : taxe,"Total de la taxe sur les produits phytopharmaceutiques (a*0,9 % + b*0,1%) : taxe",,, -a_sx,3310A,2762,,90A-a,SX,MOA,,True,manual,10,l10n_fr_account_vat_return.a_sz,0.9,,,,,,"Taxe sur les produits phytopharmaceutiques au taux de 0,9 % : base","Taxe sur les produits phytopharmaceutiques (Code rural et de la pêche maritime, art. L 253-8-2) au taux de 0,9 % : base",,, -a_sy,3310A,2764,,90A-b,SY,MOA,,True,manual,10,l10n_fr_account_vat_return.a_sz,0.1,,,,,,"Taxe sur les produits phytopharmaceutiques au taux de 0,1 % : base","Taxe sur les produits phytopharmaceutiques (Code rural et de la pêche maritime, art. L 253-8-2) au taux de 0,1 % : base",,, -a_le,3310A,2770,,91-taxe,LE,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,"Taxe forfaitaire sur les ventes de métaux précieux, taux 11% : taxe","Taxe forfaitaire sur les métaux précieux (CGI, art.150 VM) sur les ventes de métaux précieux",,, -a_md,3310A,2780,,91-base,MD,MOA,,True,manual,,,,,,,,,"Taxe forfaitaire sur les ventes de métaux précieux, taux 11% : base","Base imposable sur la taxe forfaitaire sur les métaux précieux (CGI, art.150 VM) sur les ventes de métaux précieux",,, -a_lf,3310A,2790,,92-taxe,LF,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,"Taxe forfaitaire sur les ventes de bijoux, d'objets d'arts, de collection ou d'antiquité, taux 6% : taxe","Taxe forfaitaire sur les métaux précieux (CGI, art.150 VM) sur les ventes de bijoux, d'objets d'arts, de collection ou d'antiquité",,, -a_me,3310A,2800,,92-base,ME,MOA,,True,manual,,,,,,,,,"Taxe forfaitaire sur les ventes de bijoux, d'objets d'arts, de collection ou d'antiquité, taux 6% : base","Base imposable sur la taxe forfaitaire sur les métaux précieux (CGI, art.150 VM) sur les ventes de bijoux, d'objets d'arts, de collection ou d'antiquité",,, -a_lg,3310A,2810,,93-taxe,LG,MOA,,True,,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,"CRDS sur les ventes de métaux précieux, taux 0,5% : taxe","CRDS (CGI, art. 1600-0 I) sur les ventes de métaux précieux au taux de 0,5 %",,, -a_mf,3310A,2820,,93-base,MF,MOA,,True,manual,10,l10n_fr_account_vat_return.a_lg,0.5,,,,,,"CRDS sur les ventes de métaux précieux, taux 0,5% : base","Base imposable sur la CRDS (CGI, art. 1600-0 I) sur les ventes de métaux précieux",,, -a_lh,3310A,2830,,94-taxe,LH,MOA,,True,,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,"CRDS sur les ventes de bijoux, d'objets d'arts, de collection ou d'antiquité, taux 0,5% : taxe","Contribution pour le remboursement de la dette sociale (CRDS) (CGI, art. 1600-0 I) - sur les ventes de bijoux, d'objets d'arts, de collection ou d'antiquité au taux de 0,5 %",,, -a_mg,3310A,2840,,94-base,MG,MOA,,True,manual,10,l10n_fr_account_vat_return.a_lh,0.5,,,,,,"CRDS sur les ventes de bijoux, d'objets d'arts, de collection ou d'antiquité, taux 0,5% : base","Base imposable sur la contribution pour le remboursement de la dette sociale (CRDS) (CGI, art. 1600-0 I) - sur les ventes de bijoux, d'objets d'arts, de collection ou d'antiquité",,, -a_lj,3310A,2850,,95,LJ,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Contribution forfaitaire pour le fonds des accidents du travail agricole,"Contribution forfaitaire pour alimentation du fonds commun des accidents du travail agricole (CGI, art. 1622)",,, -a_lk,3310A,2860,,96-taxe,LK,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Prélèvements sur les paris hippiques au profit de l'Etat : taxe,"Prélèvements sur les paris hippiques - au profit de l'Etat (CGI, art. 302 bis ZG)",,, -a_mq,3310A,2870,,96-base,MQ,MOA,,True,manual,,,,,,,,,Prélèvements sur les paris hippiques au profit de l'Etat : base,"Base imposable sur le prélèvement sur les paris hippiques au profit de l'Etat (CGI, art. 302 bis ZG) ",,, -a_ll,3310A,2880,,97-taxe,LL,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Prélèvements sur les paris hippiques au profit de la sécurité sociale : taxe,"Prélèvements sur les paris hippiques - au profit des organismes de sécurité sociale (CSS, art. L137-20)",,, -a_mz,3310A,2890,,97-base,MZ,MOA,,True,manual,,,,,,,,,Prélèvements sur les paris hippiques au profit de la sécurité sociale : base,"Base imposable sur le prélèvement sur les paris hippiques au profit des organismes de sécurité sociale (CSS, art. L137-20)",,, -a_lm,3310A,2900,,98-taxe,LM,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Prélèvements sur les paris hippiques engagés depuis l'étranger des courses françaises et regroupés en France : taxe,"Prélèvements sur les paris hippiques - engagés depuis l'étranger des courses françaises et regroupés en France (CGI, art.302 bis ZO)",,, -a_na,3310A,2910,,98-base,NA,MOA,,True,manual,,,,,,,,,Prélèvements sur les paris hippiques engagés depuis l'étranger des courses françaises et regroupés en France : base,"Base imposable sur le prélèvement sur les paris hippiques engagés depuis l'étranger des courses françaises et regroupés en France (CGI, art.302 bis ZO)",,, -a_ln,3310A,2920,,99,LN,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Redevance due par les opérateurs agréés de paris hippiques en lignes : enjeux relatifs aux courses de trot,"Redevance due par les opérateurs agréés de paris hippiques en lignes - Enjeux relatifs aux courses de trot (CGI, art. 1609 tertricies)",,, -a_lp,3310A,2930,,100,LP,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Redevance due par les opérateurs agréés de paris hippiques en lignes : enjeux relatifs aux courses de galop,"Redevance due par les opérateurs agréés de paris hippiques en lignes - Enjeux relatifs aux courses de galop (CGI, art. 1609 tertricies)",,, -a_qz,3310A,2940,,101A-taxe,QZ,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,"Prélèvements sur les paris sportifs en ligne au profit de l'Etat, taux 33,7% : taxe","Prélèvements sur les paris sportifs en ligne au profit de l'Etat au taux de 33,7 % (CGI, art. 302 bis ZH)",,, -a_ra,3310A,2950,,102A-taxe,RA,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,"Prélèvements sur les paris sportifs en ligne au profit de la sécurité sociale, taux 10,6% : taxe","Prélèvements sur les paris sportifs en ligne au profit des organismes de sécurité sociale au taux de 10,6 % (CSS, art. L137-21)",,, -a_rb,3310A,2960,,103A-taxe,RB,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,"Prélèvements sur les paris sportifs en ligne au profit de l'ANS, taux 10,6% : taxe","Prélèvements sur les paris sportifs en ligne au profit de l'agence nationale du sport (ANS) au taux de 10,6 % (CGI, art. 1609 tricies)",,, -a_rf,3310A,2970,,101A-103A-base,RF,MOA,,True,manual,,,,,,,,,Prélèvements sur les paris sportifs en ligne : base,Base imposable sur les prélèvements sur les paris sportifs en ligne,,, -a_rc,3310A,2980,,101B-taxe,RC,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,"Prélèvements sur les paris sportifs commercialisés en réseau physique au profit de l'Etat, taux 27,9% : taxe","Prélèvements sur les paris sportifs commercialisés en réseau physique de distribution au profit de l'Etat au taux de 27,9 % (CGI, art. 302 bis ZH)",,, -a_rd,3310A,2990,,102B-taxe,RD,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,"Prélèvements sur les paris sportifs commercialisés en réseau physique au profit de la sécurité sociale, taux 6,6% : taxe","Prélèvements sur les paris sportifs commercialisés en réseau physique de distribution au profit des organismes de sécurité sociale au taux de 6,6 % (CSS, art. L137-21)",,, -a_re,3310A,3000,,103B-taxe,RE,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,"Prélèvements sur les paris sportifs commercialisés en réseau physique au profit de l'ANS, taux 6,6% : taxe","Prélèvements sur les paris sportifs commercialisés en réseau physique de distribution au profit de l'agence nationale du sport (ANS) au taux de 6,6 % (CGI, art. 1609 tricies)",,, -a_rg,3310A,3010,,101B-103B-base,RG,MOA,,True,manual,,,,,,,,,Prélèvements sur les paris sportifs commercialisés en réseau physique : base,Base imposable sur les prélèvements sur les paris sportifs commercialisés en réseau physique de distribution,,, -a_lt,3310A,3020,,104-taxe,LT,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Prélèvements sur les jeux de cercles au profit de l'Etat : taxe,"Prélèvements sur les jeux de cercles - au profit de l'Etat (CGI, art. 302 bis ZI)",,, -a_lu,3310A,3030,,105-taxe,LU,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Prélèvements sur les jeux de cercles au profit de la sécurité sociale : taxe,"Prélèvements sur les jeux de cercles - au profit des organismes de sécurité sociale (CSS, art. L137-22)",,, -a_ms,3310A,3040,,104-105-base,MS,MOA,,True,manual,,,,,,,,,Prélèvements sur les jeux de cercles en ligne : base,Base imposable sur les prélèvements sur les jeux de cercles en ligne,,, -a_rh,3310A,3050,,107A-taxe,RH,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,"Prélèvement au profit de l'ANS sur les jeux commercialisés par la FdJ, taux 5,1% : taxe","Prélèvement au profit de l'agence nationale du sport (ANS) sur les jeux commercialisés par la Française des jeux au taux de 5,1 % (CGI, art. 1609 novovicies)",,, -a_rj,3310A,3060,,107A-base,RJ,MOA,,True,manual,,,,,,,,,"Prélèvement au profit de l'ANS sur les jeux commercialisés par la FdJ, taux 5,1% : base","Base imposable sur le prélèvement au profit de l'agence nationale du sport (ANS) sur les jeux commercialisés par la Française des jeux au taux de 5,1 % (CGI, art. 1609 novovicies)",,, -a_pb,3310A,3070,,111-taxe,PB,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,CSG sur une fraction du produit des jeux des machines à sous : taxe,"Contribution sociale généralisée (CSS, art. L136-7-1) sur une fraction du produit des jeux des machines à sous",,, -a_nv,3310A,3080,,111-base,NV,MOA,,True,manual,,,,,,,,,CSG sur une fraction du produit des jeux des machines à sous : base,"Base imposable sur la contribution sociale généralisée (CSS, art. L136-7-1) sur une fraction égale à 68% du produit des jeux des machines à sous",,, -a_pc,3310A,3090,,112-taxe,PC,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,CSG sur le montant des gains des machines à sous d'un montant supérieur ou égal à 1 500 € réglés aux joueurs par le caissier sous forme de bons de paiement manuels : taxe,"Contribution sociale généralisée (CSS, art. L136-7-1) sur le montant des gains des machines à sous d'un montant supérieur ou égal à 1 500 € réglés aux joueurs par le caissier sous forme de bons de paiement manuels",,, -a_nw,3310A,3100,,112-base,NW,MOA,,True,manual,,,,,,,,,CSG sur le montant des gains des machines à sous d'un montant supérieur ou égal à 1 500 € réglés aux joueurs par le caissier sous forme de bons de paiement manuels : base,"Base imposable sur la contribution sociale généralisée (CSS, art. L136-7-1) sur le montant des gains des machines à sous d'un montant supérieur ou égal à 1 500 € réglés aux joueurs par le caissier sous forme de bons de paiement manuels",,, -a_pd,3310A,3110,,113-taxe,PD,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,CRDS portant sur le montant du produit total des jeux : taxe,"Contribution pour le remboursement de la dette sociale portant sur le montant du produit total des jeux (CGCT, art. L. 2333-57, articles 18-III et 19 de l'ordonnance n°96-50 du 24 janvier 1996)",,, -a_nx,3310A,3120,,113-base,NX,MOA,,True,manual,,,,,,,,,CRDS portant sur le montant du produit total des jeux : base,"Base imposable sur la contribution pour le remboursement de la dette sociale portant sur le montant du produit total des jeux (CGCT, art. L. 2333-57, articles 18-III et 19 de l'ordonnance n°96-50 du 24 janvier 1996)",,, -a_ma,3310A,3130,,115-taxe,MA,MOA,,True,,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Taxe annuelle pour frais de contrôle due par les concessionnaires d'autoroutes : taxe,"Taxe annuelle pour frais de contrôle due par les concessionnaires d'autoroutes (CGI, art. 1609 septtricies 302 bis ZB bis) au taux de 0,363 ‰",,, -a_mc,3310A,3140,,115-base,MC,MOA,,True,manual,10,l10n_fr_account_vat_return.a_ma,0.0363,,,,,,Taxe annuelle pour frais de contrôle due par les concessionnaires d'autoroutes : base,"Base imposable sur la taxe annuelle pour frais de contrôle due par les concessionnaires d'autoroutes (CGI, art. 1609 septtricies 302 bis ZB bis)",,, -a_rs,3310A,3300,,116,RS,MOA,,True,,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Total de la taxe annuelle à l'essieu,"Total de la taxe annuelle à l'essieu due (CGI, art. 1010) (1a + 1b + 2a + 2b + 3)",,, -a_rt,3310A,3150,,116-1a-nb,RT,QTY,,True,manual,,,,,,,,,Véhicules à moteur isolés - PTAC inférieur à 27t - Nombre de véhicules,Véhicules à moteur isolés - PTAC inférieur à 27t - Nombre de véhicules,,, -a_ry,3310A,3160,,116-1a-nb-rr,RY,QTY,,True,manual,,,,,,,,,Véhicules à moteur isolés - PTAC inférieur à 27t - Dont nombre de véhicules rail-route,Véhicules à moteur isolés - PTAC inférieur à 27t - Dont nombre de véhicules rail-route,,, -a_sd,3310A,3170,,116-1a-taxe,SD,MOA,,True,manual,10,l10n_fr_account_vat_return.a_rs,,,,,,,Véhicules à moteur isolés - PTAC inférieur à 27t - Montant de la taxe,Véhicules à moteur isolés - PTAC inférieur à 27t - Montant de la taxe,,, -a_ru,3310A,3180,,116-1b-nb,RU,QTY,,True,manual,,,,,,,,,Véhicules à moteur isolés - PTAC supérieur ou égal à 27t - Nombre de véhicules,Véhicules à moteur isolés - PTAC supérieur ou égal à 27t - Nombre de véhicules,,, -a_rz,3310A,3190,,116-1b-nb-rr,RZ,QTY,,True,manual,,,,,,,,,Véhicules à moteur isolés - PTAC supérieur ou égal à 27t - Dont nombre de véhicules rail-route,Véhicules à moteur isolés - PTAC supérieur ou égal à 27t - Dont nombre de véhicules rail-route,,, -a_se,3310A,3200,,116-1b-taxe,SE,MOA,,True,manual,10,l10n_fr_account_vat_return.a_rs,,,,,,,Véhicules à moteur isolés - PTAC supérieur ou égal à 27t - Montant de la taxe,Véhicules à moteur isolés - PTAC supérieur ou égal à 27t - Montant de la taxe,,, -a_rv,3310A,3210,,116-2a-nb,RV,QTY,,True,manual,,,,,,,,,Ensemble articulés constitués d'un tracteur et d'une ou plusieurs semi-remorques - PTRA inférieur à 39t - Nombre de véhicules,Ensemble articulés constitués d'un tracteur et d'une ou plusieurs semi-remorques - PTRA inférieur à 39t - Nombre de véhicules,,, -a_sa,3310A,3220,,116-2a-nb-rr,SA,QTY,,True,manual,,,,,,,,,Ensemble articulés constitués d'un tracteur et d'une ou plusieurs semi-remorques - PTRA inférieur à 39t - Dont nombre de véhicules rail-route,Ensemble articulés constitués d'un tracteur et d'une ou plusieurs semi-remorques - PTRA inférieur à 39t - Dont nombre de véhicules rail-route,,, -a_sf,3310A,3230,,116-2a-taxe,SF,MOA,,True,manual,10,l10n_fr_account_vat_return.a_rs,,,,,,,Ensemble articulés constitués d'un tracteur et d'une ou plusieurs semi-remorques - PTRA inférieur à 39t - Montant de la taxe,Ensemble articulés constitués d'un tracteur et d'une ou plusieurs semi-remorques - PTRA inférieur à 39t - Montant de la taxe,,, -a_rw,3310A,3240,,116-2b-nb,RW,QTY,,True,manual,,,,,,,,,Ensemble articulés constitués d'un tracteur et d'une ou plusieurs semi-remorques - PTRA supérieur ou égal à 39t - Nombre de véhicules,Ensemble articulés constitués d'un tracteur et d'une ou plusieurs semi-remorques - PTRA supérieur ou égal à 39t - Nombre de véhicules,,, -a_sb,3310A,3250,,116-2b-nb-rr,SB,QTY,,True,manual,,,,,,,,,Ensemble articulés constitués d'un tracteur et d'une ou plusieurs semi-remorques - PTRA supérieur ou égal à 39t - Dont nombre de véhicules rail-route,Ensemble articulés constitués d'un tracteur et d'une ou plusieurs semi-remorques - PTRA supérieur ou égal à 39t - Dont nombre de véhicules rail-route,,, -a_sg,3310A,3260,,116-2b-taxe,SG,MOA,,True,manual,10,l10n_fr_account_vat_return.a_rs,,,,,,,Ensemble articulés constitués d'un tracteur et d'une ou plusieurs semi-remorques - PTRA supérieur ou égal à 39t - Montant de la taxe,Ensemble articulés constitués d'un tracteur et d'une ou plusieurs semi-remorques - PTRA supérieur ou égal à 39t - Montant de la taxe,,, -a_rx,3310A,3270,,116-3-nb,RX,QTY,,True,manual,,,,,,,,,Remorques de la catégorie O4 - Nombre de véhicules,Remorques de la catégorie O4 - Nombre de véhicules,,, -a_sc,3310A,3280,,116-3-nb-rr,SC,QTY,,True,manual,,,,,,,,,Remorques de la catégorie O4 - Dont nombre de véhicules rail-route,Remorques de la catégorie O4 - Dont nombre de véhicules rail-route,,, -a_sh,3310A,3290,,116-3-taxe,SH,MOA,,True,manual,10,l10n_fr_account_vat_return.a_rs,,,,,,,Remorques de la catégorie O4 - Montant de la taxe,Remorques de la catégorie O4 - Montant de la taxe,,, -a_tf,3310A,3310,,117-nb-nouv,TF,QTY,,True,manual,,,,,,,,,Nombre de véhicules relevant du nouveau dispositif d’immatriculation (depuis le 1er mars 2020),Nombre de véhicules relevant du nouveau dispositif d’immatriculation (depuis le 1er mars 2020),,, -a_tg,3310A,3320,,117-nb-nonouv,TG,QTY,,True,manual,,,,,,,,,"Nombre de véhicules ne relevant pas du nouveau dispositif d’immatriculation : (réception européenne, dont la première mise en circulation est intervenue à compter du 1er juin 2004 et non utilisés par le redevable avant le 1er janvier 2006)","Nombre de véhicules ne relevant pas du nouveau dispositif d’immatriculation : (réception européenne, dont la première mise en circulation est intervenue à compter du 1er juin 2004 et non utilisés par le redevable avant le 1er janvier 2006)",,, -a_th,3310A,3330,,117-nb-autres,TH,QTY,,True,manual,,,,,,,,,Nombre d'autres véhicules soumis à la taxe,Nombre d'autres véhicules soumis à la taxe,,, -a_tj,3310A,3340,,117-nb-elec,TJ,QTY,,True,manual,,,,,,,,,"Nombre de véhicules exonérés dont la source d'énergie est exclusivement l'électricité, l'hydrogène ou une combinaison des deux","Nombre de véhicules exonérés dont la source d'énergie est exclusivement l'électricité, l'hydrogène ou une combinaison des deux",,, -a_tk,3310A,3350,,117-nb-autres-exo,TK,QTY,,True,manual,,,,,,,,,Nombre des autres véhicules exonérés,Nombre des autres véhicules exonérés,,, -a_sl,3310A,3360,,117,SL,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,63514,,Taxe sur les émissions de CO2 due au titre de 2022,"Taxe sur les émissions de CO2 due au titre de 2022 (CGI, art. 1010)",,, -a_sm,3310A,3370,,118,SM,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,63514,,Taxe sur les émissions de polluants atmosphériques due au titre de 2022,"Taxe sur les émissions de polluants atmosphériques due au titre de 2022 (CGI, art. 1010)",,, -a_tx,3310A,3375,,nb-vehicule-exo,TX,QTY,,True,manual,,,,,,,,,Nombre de véhicules exonérés,Nombre de véhicules exonérés,,, -a_nc,3310A,3380,,119-taxe,NC,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Prélèvement progressif sur les clubs de jeux : taxe,Prélèvement progressif sur les clubs de jeux (V de l'article 34 de la loi n° 2017-257 du 28 février 2017 relative au statut de Paris et à l'aménagement métropolitain),,, -a_pg,3310A,3390,,119-base,PG,MOA,,True,manual,,,,,,,,,Prélèvement progressif sur les clubs de jeux : base,Base imposable sur les prélèvement progressif sur les clubs de jeux (V de l'article 34 de la loi n° 2017-257 du 28 février 2017 relative au statut de Paris et à l'aménagement métropolitain),,, -a_sj,3310A,3400,,120,SJ,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,"Sommes constatées par les clubs de jeux au titre des ""orphelins""","Sommes constatées par les clubs de jeux au titre des ""orphelins"" (arrêté du 23 février 2021 relatif aux modalités de déclaration et d'encaissement des sommes qualifiées d'orphelins versées par les clubs de jeux)",,, -a_pk,3310A,3430,,121,PK,MOA,,True,,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Montant total de la taxe sur l'exploration d'hydrocarbures,Montant total de la taxe sur l'exploration d'hydrocarbures,,, -a_ph,3310A,3410,,121-taxe,PH,MOA,,True,manual,10,l10n_fr_account_vat_return.a_pk,,,,,,,Taxe sur l'exploration d'hydrocarbures : taxe,"Droits pour le département ou la collectivité territoriale pour la taxe sur l'exploration d'hydrocarbures (CGI, art 1590)",,, -a_pj,3310A,3420,,121-dpt,PJ,FTX,,True,manual,,,,,,,,,Département bénéficiaire de la taxe sur l'exploration d'hydrocarbures,"Département bénéficiaire de la taxe sur l'exploration d'hydrocarbures (CGI, art 1590)",,, -a_pu,3310A,3440,,124-taxe,PU,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Contribution sur les boissons non alcooliques contenant des sucres ajoutés : taxe,"Contribution sur les boissons non alcooliques contenant des sucres ajoutés (CGI, art. 1613 ter)",,, -a_pw,3310A,3450,,124-base,PW,MOA,,True,manual,,,,,,,,,Contribution sur les boissons non alcooliques contenant des sucres ajoutés : base en hectolitres,Nombre d'hectolitres relatif à la contribution sur les boissons non alcooliques contenant des sucres ajoutés,,, -a_px,3310A,3460,,125-taxe,PX,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Contribution sur les boissons non alcooliques : taxe,"Contribution sur les boissons non alcooliques (CGI, art. 1613 quater II 1°)",,, -a_py,3310A,3470,,125-base,PY,MOA,,True,manual,,,,,,,,,Contribution sur les boissons non alcooliques : base en hectolitres,Nombre d'hectolitres relatif à la contribution sur les boissons non alcooliques,,, -a_qa,3310A,3480,,126-base,QA,MOA,,True,manual,,,,,,,,,Contribution sur les boissons non alcooliques contenant des édulcorants de synthèse : base en hectolitres,Nombre d'hectolitres relatif à la contribution sur les boissons non alcooliques contenant des édulcorants de synthèse,,, -a_pz,3310A,3490,,126-taxe,PZ,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Contribution sur les boissons non alcooliques contenant des édulcorants de synthèse : taxe,"Contribution sur les boissons non alcooliques contenant des édulcorants de synthèse (CGI, art. 1613 quater II 2°)",,, -a_qe,3310A,3500,,128,QE,MOA,,True,,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Montant total de la contribution sur les eaux minérales naturelles,Montant total de la contribution sur les eaux minérales naturelles,,, -a_qb,3310A,3510,,127-taxe,QB,MOA,,True,manual,10,l10n_fr_account_vat_return.a_qe,,,,,,,Contribution sur les eaux minérales naturelles : taxe,"Contribution sur les eaux minérales naturelles (CGI, art. 1582)",,, -a_qc,3310A,3520,,127-commune,QC,FTX,,True,manual,,,,,,,,,N° INSEE de la commune bénéficiaire de la contribution sur les eaux minérales naturelles,Numéro de la commune bénéficiaire de la contribution sur les eaux minérales naturelles,,, -a_qd,3310A,3530,,127-base,QD,MOA,,True,manual,,,,,,,,,Contribution sur les eaux minérales naturelles : base en hectolitres,Nombre d'hectolitres relatif à la contribution sur les eaux minérales naturelles,,, -a_td,3310A,3540,,129-base,TD,MOA,,True,manual,,,,,,,,,Taxe sur les exploitants de plateformes de mise en relation par voie électronique en vue de fournir certaines prestations de transport : base,"Taxe sur les exploitants de plateformes de mise en relation par voie électronique en vue de fournir certaines prestations de transport (CGI, article 300 bis) : base",,, -a_te,3310A,3550,,129-taxe,TE,MOA,,True,manual,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Taxe sur les exploitants de plateformes de mise en relation par voie électronique en vue de fournir certaines prestations de transport : taxe,"Taxe sur les exploitants de plateformes de mise en relation par voie électronique en vue de fournir certaines prestations de transport (CGI, article 300 bis) : taxe",,, +id,form_code,sequence,display_type,code,edi_code,edi_type,nref_code,active,meaning_id,manual,push_sequence,push_box_id/id,push_rate,due_vat_rate,due_vat_base_box_id/id,accounting_method,account_code,negative,name,full_label,print_page,print_x,print_y +ca3_ls,3310CA3,5,,REP,LS,CCI_TBX,912158,True,,False,,,,,,,,,Mention de qualité de représentant d’un assujetti unique,"Mention de qualité de représentant d’un assujetti unique, article 256 C du CGI",1,560,473 +ca3_kf,3310CA3,10,,NEANT,KF,CCI_TBX,100117,True,,False,,,,,,,,,Mention déclaration néante,Mention déclaration néante,1,560,411 +ca3_hj,3310CA3,20,,GRP,HJ,CCI_TBX,902353,True,,False,,,,,,,,,Mention membre d'un groupe,Mention membre d'un groupe,1,560,436 +ca3_bb,3310CA3,30,,IMPUT,BB,CCI_TBX,100123,True,,False,,,,,,,,,Paiement par imputation,Paiement par imputation (joindre l'imprimé 3516),1,200,309 +ca3_section_operations_realisees,3310CA3,95,section,A,,,,True,,False,,,,,,,,,MONTANT DES OPÉRATIONS RÉALISÉES,MONTANT DES OPÉRATIONS RÉALISÉES,,, +ca3_sub_section_operations_imposables,3310CA3,100,sub_section,,,,,True,,False,,,,,,,,,OPÉRATIONS TAXÉES (H.T.),OPÉRATIONS TAXÉES (H.T.),,, +ca3_ca,3310CA3,110,,A1,CA,MOA,100071,True,taxed_op_regular_france,False,,,,,,,,,"Ventes, prestations de services","Opérations taxées - Ventes, prestations de services",2,292,776 +ca3_cb,3310CA3,120,,A2,CB,MOA,100072,True,taxed_op_regular_other,False,,,,,,,,,Autres opérations imposables,Opérations taxées - Autres opérations imposables,2,292,759 +ca3_kh,3310CA3,130,,A3,KH,MOA,900774,True,taxed_op_regular_intracom_service_autoliq,False,,,,,,,,,Achats de prestations de services réalisés auprès d’un assujetti non établi en France (art 283-2 du CGI),Opérations taxées - Achats de prestations de services réalisés auprès d’un assujetti non établi en France (art 283-2 du code général des impôts),2,292,736 +ca3_dk,3310CA3,140,,A4,DK,MOA,911589,True,taxed_op_extracom_product_autoliq,False,,,,,,,,,Importations (autres que produits pétroliers),Opérations taxées - Importations (autres que produits pétroliers),2,292,714 +ca3_kv,3310CA3,150,,A5,KV,MOA,911590,True,taxed_op_extracom_product_end_suspensive,False,,,,,,,,,Sorties de régime fiscal suspensif (autres que les produits pétroliers),Opérations taxées - Sorties de régime fiscal suspensif (autres que les produits pétroliers),2,292,696 +ca3_ch,3310CA3,160,,B1,CH,MOA,910758,True,taxed_op_oil,False,,,,,,,,,Mises à la consommation de produits pétroliers,Opérations taxées - Mises à la consommation de produits pétroliers,2,292,675 +ca3_cc,3310CA3,170,,B2,CC,MOA,100073,True,taxed_op_regular_intracom_product_autoliq,False,,,,,,,,,Acquisitions intra-communautaires,Opérations taxées - Acquisitions intra-communautaires,2,292,657 +ca3_cf,3310CA3,180,,B3,CF,MOA,100121,True,taxed_op_regular_electricity,False,,,,,,,,,"Achats d'électricité, de gaz naturel, de chaleur ou de froid imposables en France","Opérations taxées - Achats d'électricité, de gaz naturel, de chaleur ou de froid imposables en France, base hors taxe",2,292,639 +ca3_cg,3310CA3,190,,B4,CG,MOA,100505,True,taxed_op_regular_extracom_service_autoliq,False,,,,,,,,,Achats de biens ou de prestations de services réalisés auprès d'un assujetti non établi en France (art 283-1 du CGI),"Opérations taxées - Achats de biens ou de prestations de services réalisés auprès d'un assujetti non établi en France, art 283-1 du CGI",2,292,613 +ca3_ce,3310CA3,195,,B5,CE,MOA,100118,True,negative_taxed_op,False,,,,,,,,True,Régularisations,Opérations taxées - Régularisation,2,292,590 +ca3_sub_section_operations_non_imposables,3310CA3,200,sub_section,,,,,True,,False,,,,,,,,,OPÉRATIONS NON TAXÉES,OPÉRATIONS NON TAXÉES,,, +ca3_da,3310CA3,210,,E1,DA,MOA,100075,True,untaxed_op_extracom,False,,,,,,,,,Exportations hors UE,Opérations non taxées - Exportations hors UE,2,572,776 +ca3_db,3310CA3,220,,E2,DB,MOA,100076,True,untaxed_op_france_exo,False,,,,,,,,,Autres opérations non imposables,Opérations non taxées - Autres opérations non imposables,2,572,759 +ca3_dh,3310CA3,230,,E3,DH,MOA,908462,True,untaxed_op_intracom_b2c,False,,,,,,,,,Ventes à distance taxables dans un autre État membre au profit de personnes non assujetties - Ventes B to C,Opérations non taxées - Ventes à distance taxables dans un autre État membre au profit de personnes non assujetties - Ventes B to C,2,572,736 +ca3_kw,3310CA3,240,,E4,KW,MOA,911591,True,,False,,,,,,,,,Importations (autres que les produits pétroliers),Opérations non taxées - Importations (autres que les produits pétroliers),2,572,714 +ca3_kx,3310CA3,245,,E5,KX,MOA,911592,True,,False,,,,,,,,,Sorties de régime fiscal suspensif (autres que les produits pétroliers),Opérations non taxées - Sorties de régime fiscal suspensif (autres que les produits pétroliers),2,572,696 +ca3_ky,3310CA3,250,,E6,KY,MOA,911593,True,,False,,,,,,,,,Importations placées sous régime fiscal suspensif (autres que les produits pétroliers),Opérations non taxées - Importations placées sous régime fiscal suspensif (autres que les produits pétroliers),2,572,675 +ca3_kz,3310CA3,255,,F1,KZ,MOA,911594,True,,False,,,,,,,,,Acquisitions intra-communautaires,Opérations non taxées - Acquisitions intra-communautaires,2,572,657 +ca3_dc,3310CA3,260,,F2,DC,MOA,100077,True,untaxed_op_intracom_b2b,False,,,,,,,,,Livraisons intra-communautaires à destination d'une personne assujettie - Ventes B to B,Opérations non taxées - Livraisons intra-communautaires à destination d'une personne assujettie - Ventes B to B,2,572,639 +ca3_df,3310CA3,265,,F3,DF,MOA,100122,True,,False,,,,,,,,,"Livraisons d'electricité, de gaz naturel, de chaleur ou de froid non imposables en France","Opérations non taxées - Livraisons d'electricité, de gaz naturel, de chaleur ou de froid non imposables en France",2,572,613 +ca3_dj,3310CA3,270,,F4,DJ,MOA,910759,True,,False,,,,,,,,,Mises à la consommation de produits pétroliers,Opérations non taxées - Mises à la consommation de produits pétroliers,2,572,590 +ca3_la,3310CA3,275,,F5,LA,MOA,911595,True,,False,,,,,,,,,Importations de produits pétroliers placées sous régime fiscal suspensif,Opérations non taxées - Importations de produits pétroliers placées sous régime fiscal suspensif,2,572,569 +ca3_dd,3310CA3,280,,F6,DD,MOA,100104,True,,False,,,,,,,,,Achats en franchise,Opérations non taxées - Achats en franchise,2,572,553 +ca3_dg,3310CA3,285,,F7,DG,MOA,100506,True,,False,,,,,,,,,Vente de biens ou de prestations de services réalisées par un assujetti non établi en France (art 283-1 du CGI),"Opérations non taxées - Vente de biens ou de prestations de services réalisées par un assujetti non établi en France, art 283-1 du CGI",2,572,530 +ca3_de,3310CA3,290,,F8,DE,MOA,100119,True,negative_untaxed_op,False,,,,,,,,True,Régularisations,Opérations non taxées - Régularisations,2,572,509 +ca3_lr,3310CA3,295,,F9,LR,MOA,912152,True,,False,,,,,,,,,Opérations internes réalisées entre membres d’un assujetti unique,Opérations internes réalisées entre membres d’un assujetti unique,2,572,491 +ca3_section_tva_a_payer,3310CA3,300,section,B,,,,True,,False,,,,,,,,,DÉCOMPTE DE LA TVA À PAYER,DÉCOMPTE DE LA TVA À PAYER,,, +ca3_sub_section_tva_brute,3310CA3,310,sub_section,,,,,True,,False,,,,,,,,,TVA BRUTE,TVA BRUTE,,, +ca3_gh,3310CA3,530,,16,GH,MOA,,True,due_vat_total,False,,,,,,,,,Total de la TVA brute due (lignes 08 à 5B),Total général de la TVA brute due,3,572,817 +ca3_fp,3310CA3,320,,08-base,FP,MOA,904065,True,,False,,,,,,,,,France métropolitaine - Taux normal 20 % : base HT,Opérations imposables au taux normal de 20% en France métropolitaine : base HT,2,498,414 +ca3_gp,3310CA3,325,,08-taxe,GP,MOA,,True,due_vat_regular_2000,False,40,l10n_fr_account_vat_return.ca3_gh,,2000,l10n_fr_account_vat_return.ca3_fp,debit,,,France métropolitaine - Taux normal 20 % : taxe due,Opérations imposables au taux normal de 20% en France métropolitaine : taxe due,2,572,414 +ca3_fb,3310CA3,330,,09-base,FB,MOA,100078,True,,False,,,,,,,,,"France métropolitaine - Taux réduit 5,5 % : base HT","Opérations imposables au taux réduit de 5,5 % en France métropolitaine : base HT",2,498,400 +ca3_gb,3310CA3,335,,09-taxe,GB,MOA,,True,due_vat_regular_550,False,40,l10n_fr_account_vat_return.ca3_gh,,550,l10n_fr_account_vat_return.ca3_fb,debit,,,"France métropolitaine - Taux réduit 5,5 % : taxe due","Opérations imposables au taux réduit de 5,5 % en France métropolitaine : taxe due",2,572,400 +ca3_fr,3310CA3,340,,9B-base,FR,MOA,904069,True,,False,,,,,,,,,France métropolitaine - Taux réduit 10 % : base HT,Opérations imposables au taux réduit de 10% en France métropolitaine : base HT,2,498,386 +ca3_gr,3310CA3,345,,9B-taxe,GR,MOA,,True,due_vat_regular_1000,False,40,l10n_fr_account_vat_return.ca3_gh,,1000,l10n_fr_account_vat_return.ca3_fr,debit,,,France métropolitaine - Taux réduit 10 % : taxe due,Opérations imposables au taux réduit de 10% en France métropolitaine : taxe due,2,572,386 +ca3_fm,3310CA3,350,,10-base,FM,MOA,100113,True,,False,,,,,,,,,"DOM - Taux normal 8,5 % : base HT",Opérations réalisées dans les DOM imposables au taux normal : base HT,2,498,354 +ca3_gm,3310CA3,355,,10-taxe,GM,MOA,,True,due_vat_regular_dom_850,False,40,l10n_fr_account_vat_return.ca3_gh,,850,l10n_fr_account_vat_return.ca3_fm,debit,,,"DOM - Taux normal 8,5 % : taxe due",Opérations réalisées dans les DOM imposables au taux normal : taxe due,2,572,354 +ca3_fn,3310CA3,360,,11-base,FN,MOA,100115,True,,False,,,,,,,,,"DOM - Taux réduit 2,1 % : base HT",Opérations réalisées dans les DOM au taux réduit : base HT,2,498,340 +ca3_gn,3310CA3,361,,11-taxe,GN,MOA,,True,due_vat_regular_dom_210,False,40,l10n_fr_account_vat_return.ca3_gh,,,l10n_fr_account_vat_return.ca3_fn,debit,,,"DOM - Taux réduit 2,1 % : taxe due",Opérations réalisées dans les DOM imposables au taux réduit : taxe due,2,572,340 +ca3_bq,3310CA3,364,,T1-base,BQ,MOA,100042,True,,False,,,,,,,,,"DOM - Taux 1,75 % : base HT","Opérations réalisées dans les DOM et imposables au taux de 1,75 % : base HT",2,498,309 +ca3_cq,3310CA3,365,,T1-taxe,CQ,MOA,,True,due_vat_regular_dom_175,False,40,l10n_fr_account_vat_return.ca3_gh,,,l10n_fr_account_vat_return.ca3_bq,debit,,,"DOM - Taux 1,75 % : taxe due","Opérations réalisées dans les DOM et imposables au taux de 1,75 % : taxe due",2,572,309 +ca3_bp,3310CA3,366,,T2-base,BP,MOA,100040,True,,False,,,,,,,,,"DOM - Taux 1,05 % : base HT","Opérations réalisées dans les DOM et imposables au taux de 1,05 % : base HT",2,498,295 +ca3_cp,3310CA3,367,,T2-taxe,CP,MOA,,True,due_vat_regular_dom_105,False,40,l10n_fr_account_vat_return.ca3_gh,,,l10n_fr_account_vat_return.ca3_bp,debit,,,"DOM - Taux 1,05 % : taxe due","Opérations réalisées dans les DOM et imposables au taux de 1,05 % : taxe due",2,572,295 +ca3_bs,3310CA3,368,,T3-base,BS,MOA,904063,True,,False,,,,,,,,,Corse - Taux 10 % : base HT,Opérations réalisées en Corse et imposables au taux de 10 % : base HT,2,498,281 +ca3_cs,3310CA3,369,,T3-taxe,CS,MOA,,True,due_vat_regular_corsica_1000,False,40,l10n_fr_account_vat_return.ca3_gh,,,l10n_fr_account_vat_return.ca3_bs,debit,,,Corse - Taux 10 % : taxe due,Opérations réalisées en Corse et imposables au taux de 10 % : taxe due,2,572,281 +ca3_bf,3310CA3,370,,T4-base,BF,MOA,100011,True,,False,,,,,,,,,"Corse - Taux 2,1 % : base HT","Opérations réalisées en Corse et imposables au taux de 2,1 % : base HT",2,498,267 +ca3_mc,3310CA3,371,,T4-taxe,MC,MOA,,True,due_vat_regular_corsica_210,False,40,l10n_fr_account_vat_return.ca3_gh,,,l10n_fr_account_vat_return.ca3_bf,debit,,,"Corse - Taux 2,1 % : taxe due","Opérations réalisées en Corse et imposables au taux de 2,1 % : taxe due",2,572,267 +ca3_be,3310CA3,372,,T5-base,BE,MOA,100009,True,,False,,,,,,,,,"Corse - Taux 0,9 % : base HT","Opérations réalisées en Corse et imposables au taux de 0,9 % : base HT",2,498,252 +ca3_ma,3310CA3,373,,T5-taxe,MA,MOA,,True,due_vat_regular_corsica_90,False,40,l10n_fr_account_vat_return.ca3_gh,,,l10n_fr_account_vat_return.ca3_be,debit,,,"Corse - Taux 0,9 % : taxe due","Opérations réalisées en Corse et imposables au taux de 0,9 % : taxe due",2,572,252 +ca3_mf,3310CA3,374,,T6-base,MF,MOA,100003,True,,False,,,,,,,,,"France continentale - Taux 2,1 % : base HT","Opérations réalisées en France continentale au taux de 2,1 % : base HT",2,498,238 +ca3_me,3310CA3,375,,T6-taxe,ME,MOA,,True,due_vat_regular_210,False,40,l10n_fr_account_vat_return.ca3_gh,,210,l10n_fr_account_vat_return.ca3_mf,debit,,,"France continentale - Taux 2,1 % : taxe due","Opérations réalisées en France continentale au taux de 2,1 % : taxe due",2,572,238 +ca3_mg,3310CA3,376,,T7-base,MG,MOA,100001,True,,False,,,,,,,,,Retenue de TVA sur droits d'auteur : base HT,Retenue de TVA sur droits d'auteur : base HT,2,498,224 +ca3_md,3310CA3,377,,T7-taxe,MD,MOA,,True,due_vat_royalty,False,40,l10n_fr_account_vat_return.ca3_gh,,,l10n_fr_account_vat_return.ca3_mg,debit,,,Retenue de TVA sur droits d'auteur : taxe due,Retenue de TVA sur droits d'auteur : taxe due,2,572,224 +ca3_fc,3310CA3,378,,13-base,FC,MOA,100080,True,,False,,,,,,,,,Anciens taux : base HT,Opérations imposables aux anciens taux : base HT,2,498,210 +ca3_gc,3310CA3,379,,13-taxe,GC,MOA,,True,due_vat_old_rates,False,40,l10n_fr_account_vat_return.ca3_gh,,,l10n_fr_account_vat_return.ca3_fc,debit,,,Anciens taux : taxe due,Opérations imposables aux anciens taux : taxe due,2,572,210 +ca3_fd,3310CA3,380,,14-base,FD,MOA,100082,False,,False,,,,,,,,,Autres taux (décompte effectué sur annexe N° 3310-A) : base HT,Opérations imposables à un taux particulier (décompte effectué sur annexe N° 3310-A) : base HT,2,498,283 +ca3_gd,3310CA3,385,,14-taxe,GD,MOA,,False,,False,,,,,,,,,Autres taux (décompte effectué sur annexe N° 3310-A) : taxe due,Opérations imposables à un taux particulier (décompte effectué sur annexe N° 3310-A) : taxe due,2,572,283 +ca3_gs,3310CA3,390,,P1-base,GS,MOA,910572,True,,False,,,,,,,,,France métropolitaine - Taux normal 20 % sur les produits pétroliers : base HT,Opérations imposables au taux normal 20 % sur les produits pétroliers : base HT,2,498,179 +ca3_gt,3310CA3,395,,P1-taxe,GT,MOA,,True,due_vat_oil_2000,False,40,l10n_fr_account_vat_return.ca3_gh,,,l10n_fr_account_vat_return.ca3_gs,debit,,,France métropolitaine - Taux normal 20 % sur les produits pétroliers : taxe due,Opérations imposables au taux normal 20 % sur les produits pétroliers : taxe due,2,572,179 +ca3_gu,3310CA3,400,,P2-base,GU,MOA,910574,True,,False,,,,,,,,,France métropolitaine - Taux réduit 13 % sur les produits pétroliers : base HT,Opérations imposables au taux réduit 13 % sur les produits pétroliers : base HT,2,498,165 +ca3_gv,3310CA3,405,,P2-taxe,GV,MOA,,True,due_vat_oil_1300,False,40,l10n_fr_account_vat_return.ca3_gh,,1300,l10n_fr_account_vat_return.ca3_gu,debit,,,France métropolitaine - Taux réduit 13 % sur les produits pétroliers : taxe due,Opérations imposables au taux réduit 13 % sur les produits pétroliers : taxe due,2,572,165 +ca3_lb,3310CA3,410,,I1-base,LB,MOA,911596,True,,False,,,,,,,,,Importations - Taux normal 20 % : base HT,Importations - Taux normal 20 % : base HT,2,498,133 +ca3_lc,3310CA3,415,,I1-taxe,LC,MOA,,True,due_vat_extracom_product_2000,False,40,l10n_fr_account_vat_return.ca3_gh,,2000,l10n_fr_account_vat_return.ca3_lb,debit,,,Importations - Taux normal 20 % : taxe due,Importations - Taux normal 20 % : taxe due,2,572,133 +ca3_ld,3310CA3,420,,I2-base,LD,MOA,911598,True,,False,,,,,,,,,Importations - Taux réduit 10 % : base HT,Importations - Taux réduit 10 % : base HT,2,498,119 +ca3_le,3310CA3,425,,I2-taxe,LE,MOA,,True,due_vat_extracom_product_1000,False,40,l10n_fr_account_vat_return.ca3_gh,,1000,l10n_fr_account_vat_return.ca3_ld,debit,,,Importations - Taux réduit 10 % : taxe due,Importations - Taux réduit 10 % : taxe due,2,572,119 +ca3_lf,3310CA3,430,,I3-base,LF,MOA,911600,True,,False,,,,,,,,,"Importations - Taux réduit 8,5 % : base HT","Importations - Taux réduit 8,5 % : base HT",2,498,106 +ca3_lg,3310CA3,435,,I3-taxe,LG,MOA,,True,due_vat_extracom_product_dom_850,False,40,l10n_fr_account_vat_return.ca3_gh,,850,l10n_fr_account_vat_return.ca3_lf,debit,,,"Importations - Taux réduit 8,5 % : taxe due","Importations - Taux réduit 8,5 % : taxe due",2,572,106 +ca3_lh,3310CA3,440,,I4-base,LH,MOA,911602,True,,False,,,,,,,,,"Importations - Taux réduit 5,5 % : base HT","Importations - Taux réduit 5,5 % : base HT",2,498,91 +ca3_lj,3310CA3,445,,I4-taxe,LJ,MOA,,True,due_vat_extracom_product_550,False,40,l10n_fr_account_vat_return.ca3_gh,,550,l10n_fr_account_vat_return.ca3_lh,debit,,,"Importations - Taux réduit 5,5 % : taxe due","Importations - Taux réduit 5,5 % : taxe due",2,572,91 +ca3_lk,3310CA3,450,,I5-base,LK,MOA,911604,True,,False,,,,,,,,,"Importations - Taux réduit 2,1 % : base HT","Importations - Taux réduit 2,1 % : base HT",2,498,77 +ca3_ll,3310CA3,455,,I5-taxe,LL,MOA,,True,due_vat_extracom_product_210,False,40,l10n_fr_account_vat_return.ca3_gh,,210,l10n_fr_account_vat_return.ca3_lk,debit,,,"Importations - Taux réduit 2,1 % : taxe due","Importations - Taux réduit 2,1 % : taxe due",2,572,77 +ca3_lm,3310CA3,460,,I6-base,LM,MOA,911606,True,,False,,,,,,,,,"Importations - Taux réduit 1,05 % : base HT","Importations - Taux réduit 1,05 % : base HT",2,498,63 +ca3_ln,3310CA3,465,,I6-taxe,LN,MOA,,True,due_vat_extracom_product_dom_105,False,40,l10n_fr_account_vat_return.ca3_gh,,105,l10n_fr_account_vat_return.ca3_lm,debit,,,"Importations - Taux réduit 1,05 % : taxe due","Importations - Taux réduit 1,05 % : taxe due",2,572,63 +ca3_gg,3310CA3,500,,15,GG,MOA,100087,True,negative_deductible_vat,False,40,l10n_fr_account_vat_return.ca3_gh,,,,,,True,TVA antérieurement déduite à reverser,"TVA antérieurement déduite à reverser, taxe due",2,572,40 +ca3_ga,3310CA3,505,,15-dont-pp,GA,MOA,910761,True,,False,,,,,,,,True,TVA antérieurement déduite à reverser : dont TVA sur les produits pétroliers,"TVA antérieurement déduite à reverser, taxe due : dont TVA sur les produits pétroliers",2,326,50 +ca3_lq,3310CA3,510,,15-dont-pi,LQ,MOA,911609,True,,False,,,,,,,,True,TVA antérieurement déduite à reverser : dont TVA sur les produits importés hors produits pétroliers,"TVA antérieurement déduite à reverser, taxe due : dont TVA sur les produits importés hors produits pétroliers",2,387,35 +ca3_ks,3310CA3,520,,5B,KS,MOA,905877,True,,False,40,l10n_fr_account_vat_return.ca3_gh,,,,,,,"Sommes à ajouter, y compris acompte congés","Sommes à ajouter, y compris acompte congés",2,572,19 +ca3_gj,3310CA3,540,,17,GJ,MOA,100089,True,due_vat_intracom_product,False,,,,,,,,,Dont TVA sur acquisitions intra-communautaires,TVA brute sur acquisitions intra-communautaires,3,572,798 +ca3_gk,3310CA3,560,,18,GK,MOA,100105,True,due_vat_monaco,False,,,,,,,,,Dont TVA sur opérations à destination de Monaco,TVA brute due sur opérations à destination de Monaco.,3,572,782 +ca3_sub_section_tva_deductible,3310CA3,600,sub_section,,,,,True,,False,,,,,,,,,TVA DÉDUCTIBLE,TVA DÉDUCTIBLE,,, +ca3_hg,3310CA3,700,,23,HG,MOA,,True,deductible_vat_total,False,,,,,,,,,Total de la TVA déductible (lignes 19 à 2C),Total de la TVA déductible,3,569,636 +ca3_ha,3310CA3,610,,19,HA,MOA,100090,True,deductible_vat_asset,False,40,l10n_fr_account_vat_return.ca3_hg,,,,credit,,,Biens constituant des immobilisations,TVA déductible sur biens constituant des immobilisations,3,572,745 +ca3_hb,3310CA3,620,,20,HB,MOA,100091,True,deductible_vat_other,False,40,l10n_fr_account_vat_return.ca3_hg,,,,credit,,,Autres biens et services,TVA déductible sur autres biens et services (déduction sur facture),3,572,726 +ca3_hc,3310CA3,630,,21,HC,MOA,100092,True,negative_due_vat,False,40,l10n_fr_account_vat_return.ca3_hg,,,,credit,,True,Autre TVA à déduire,"Autre TVA à déduire, omissions ou compléments de déductions",3,572,712 +ca3_hk,3310CA3,640,,21-dont-pp,HK,MOA,910762,True,negative_due_vat_oil,False,,,,,,,,True,Dont régularisation de TVA sur les produits pétroliers,"Autres TVA à déduire, dont régularisation de TVA sur les produits pétroliers",3,220,702 +ca3_lp,3310CA3,650,,21-dont-import,LP,MOA,911608,True,negative_due_vat_extracom_product,False,,,,,,,,True,Dont régularisation de TVA sur les produits importés (hors produits pétroliers),"Autres TVA à déduire, dont régularisation de TVA sur les produits importés (hors produits pétroliers)",3,293,694 +ca3_hh,3310CA3,660,,21-dont-col-ded,HH,MOA,100120,True,negative_due_vat_regular,False,,,,,,,,True,Dont régularisations sur de la TVA collectée sur autres produits ou PS ou déductible,"Autre TVA à déduire, dont régularisation sur de la TVA collectée sur autres produits ou PS ou déductible",3,350,685 +ca3_hd,3310CA3,680,,22,HD,MOA,100093,True,credit_deferment,False,40,l10n_fr_account_vat_return.ca3_hg,,,,credit,44567,,Report du crédit apparaissant ligne 27 de la précédente déclaration,Report du crédit apparaissant sur la précédente déclaration,3,572,674 +ca3_ku,3310CA3,670,,2C,KU,MOA,905882,True,,False,40,l10n_fr_account_vat_return.ca3_hg,,,,,,,"Sommes à imputer, y compris acompte congés","Sommes à imputer, y compris acompte congés",3,572,656 +ca3_he,3310CA3,690,,22A,HE,PCD,100094,True,,False,,,,,,,,,Coefficient de taxation unique applicable pour la période s'il est différent de 100 %,Pourcentage de déduction applicable pour la période s'il est différent de 100 %,3,291,622 +ca3_hf,3310CA3,710,,24,HF,MOA,909864,True,,False,,,,,,,,,Dont TVA déductible sur importations (hors produits pétroliers),Dont TVA déductible sur importations (hors produits pétroliers),3,572,614 +ca3_hl,3310CA3,720,,2E,HL,MOA,910763,True,,False,,,,,,,,,Dont TVA déductible sur les produits pétroliers,Dont TVA déductible sur les produits pétroliers,3,572,596 +,,,,,,,,,,,,,,,,,,,,,,, +ca3_section_credit,3310CA3,800,section,,,,,True,,False,,,,,,,,,CRÉDIT,CRÉDIT,,, +ca3_jc,3310CA3,890,,27,JC,MOA,100098,True,end_total_credit,False,,,,,,debit,44567,,Crédit à reporter (lignes 25 - 26 - AA),Crédit à reporter sur déclaration suivante,3,288,251 +ca3_ja,3310CA3,810,,25,JA,MOA,100096,True,no_push_total_credit,False,100,l10n_fr_account_vat_return.ca3_jc,,,,,,,Crédit de TVA (lignes 23 - 16),Crédit de TVA,3,288,548 +ca3_jb,3310CA3,820,,26,JB,MOA,100097,True,vat_reimbursement,False,100,l10n_fr_account_vat_return.ca3_jc,-100,,,debit,44583,,Remboursement de crédit demandé sur formulaire n°3519,Remboursement de crédit demandé sur formulaire n°3519,3,288,300 +ca3_kj,3310CA3,830,,AA,KJ,MOA,902351,True,,False,100,l10n_fr_account_vat_return.ca3_jc,-100,,,,,,Crédit de TVA transféré à la société tête de groupe,Crédit de TVA transféré à la société tête de groupe,3,288,277 +,,,,,,,,,,,,,,,,,,,,,,, +ca3_section_taxe_a_payer,3310CA3,900,section,,,,,True,,False,,,,,,,,,TAXE À PAYER,TAXE À PAYER,,, +ca3_ke,3310CA3,990,,32,KE,MOA,100103,True,end_total_debit,False,,,,,,,,,Total à payer (lignes 28 + 29 - AB),Total à payer,3,572,173 +ca3_nd,3310CA3,915,,28,ND,MOA,912255,True,,False,110,l10n_fr_account_vat_return.ca3_ke,,,,,,,TVA nette due (ligne TD - ligne X5),TVA nette due (ligne TD - ligne X5),3,572,277 +ca3_ka,3310CA3,910,,TD,KA,MOA,100099,True,no_push_total_debit,False,100,l10n_fr_account_vat_return.ca3_nd,,,,credit,44551,,TVA nette due (lignes 16 - 23),TVA nette due,3,572,548 +ca3_kb,3310CA3,920,,29,KB,MOA,100100,True,,False,110,l10n_fr_account_vat_return.ca3_ke,,,,credit,4470,,Report du montant de taxes assimilées calculées sur annexe 3310A,Report du montant de taxes assimilées calculées sur annexe 3310A,3,572,251 +ca3_kl,3310CA3,930,,AB,KL,MOA,902352,True,,False,110,l10n_fr_account_vat_return.ca3_ke,-100,,,,,,Total à payer acquitté par la société tête de groupe (lignes 28 + 29),Total à payer acquitté par la société tête de groupe,3,572,199 +,,,,,,,,,,,,,,,,,,,,,,, +a_section_tva,3310A,2000,section,,,,,False,,False,,,,,,,,,RETENUE DE TVA SUR DROITS D’AUTEUR ET TVA DUE À UN TAUX PARTICULIER,,,, +a_bn,3310A,2280,,,BN,MOA,,False,,False,,,,,,,,,Total lignes 35 à 46 : base HT (à reporter ligne 14 de la CA3),Total TVA sur droits d'auteurs et TVA due à taux particuliers : base HT (à reporter ligne 14 de la CA3),,, +a_cn,3310A,2290,,,CN,MOA,,False,,False,,,,,,,,,Total lignes 35 à 46 : taxe due (à reporter ligne 14 de la CA3),Total TVA sur droits d'auteurs et TVA due à taux particuliers : taxe due (à reporter ligne 14 de la CA3),,, +a_ba,3310A,2010,,35-base,BA,MOA,,False,,False,,,,,,,,,Retenue de TVA sur droits d'auteur : base HT,Retenue de TVA sur droits d'auteur : base HT,,, +a_ca,3310A,2020,,35-taxe,CA,MOA,,False,,False,,,,,l10n_fr_account_vat_return.a_ba,debit,,,Retenue de TVA sur droits d'auteur : taxe due,Retenue de TVA sur droits d'auteur : taxe due,,, +a_sub_section_tva_metropole,3310A,2030,sub_section,,,,,False,,False,,,,,,,,,OPÉRATIONS IMPOSABLES en France continentale à un taux particulier,OPÉRATIONS IMPOSABLES en France continentale à un taux particulier,,, +a_bb,3310A,2040,,36-base,BB,MOA,,False,,False,,,,,,,,,"France continentale, taux 2,10% : base HT","Opérations imposables en France continentale à un taux particulier taux 2,10% : base HT",,, +a_cb,3310A,2050,,36-taxe,CB,MOA,,False,,False,,,,,l10n_fr_account_vat_return.a_bb,debit,,,"France continentale, taux 2,10% : taxe due","Opérations imposables en France continentale à un taux particulier taux 2,10% : taxe due",,, +a_bc,3310A,2060,,37-base,BC,MOA,,False,,False,,,,,,,,,"France continentale, ancien taux : base HT","Opérations imposables en France continentale à un taux particulier, ancien taux : base HT",,, +a_cc,3310A,2070,,37-taxe,CC,MOA,,False,,False,,,,,l10n_fr_account_vat_return.a_bc,debit,,,"France continentale, anciens taux : taxe due",Opérations imposables en France continentale à un taux particulier anciens taux : taxe due,,, +a_ae,3310A,2080,,38-base,AE,MOA,,False,,False,,,,,,,,,"France continentale, nouveau taux : base HT",Ligne utilisable pour un nouveau taux en métropole (base hors taxe) (ligne à blanc),,, +a_af,3310A,2090,,38-taxe,AF,MOA,,False,,False,,,,,l10n_fr_account_vat_return.a_ae,debit,,,"France continentale, nouveau taux : taxe due",Ligne utilisable pour un nouveau taux en métropole (taxe due) (ligne à blanc),,, +a_sub_section_tva_corse,3310A,2100,sub_section,,,,,False,,False,,,,,,,,,OPÉRATIONS IMPOSABLES en Corse à un taux particulier,OPÉRATIONS IMPOSABLES en Corse à un taux particulier,,, +a_be,3310A,2110,,39-base,BE,MOA,,False,,False,,,,,,,,,"Corse, taux 0,90% : base HT","Opérations imposables en Corse à un taux particulier taux 0,90% : base HT",,, +a_ce,3310A,2120,,39-taxe,CE,MOA,,False,,False,,,,,l10n_fr_account_vat_return.a_be,debit,,,"Corse, taux 0,90% : taxe due","Opérations imposables en Corse à un taux particulier taux 0,90% : taxe due",,, +a_bf,3310A,2130,,40-base,BF,MOA,,False,,False,,,,,,,,,"Corse, taux 2,10% : base HT","Opérations imposables en Corse à un taux particulier taux 2,10% : base HT",,, +a_cf,3310A,2140,,40-taxe,CF,MOA,,False,,False,,,,,l10n_fr_account_vat_return.a_bf,debit,,,"Corse, taux 2,10 % : taxe due","Opérations imposables en Corse à un taux particulier taux 2,10 % : taxe due",,, +a_bs,3310A,2150,,41-base,BS,MOA,,False,,False,,,,,,,,,"Corse, taux 10% : base HT",Opérations imposables en Corse à un taux particulier taux 10% : base HT,,, +a_cs,3310A,2160,,41-taxe,CS,MOA,,False,,False,,,,,l10n_fr_account_vat_return.a_bs,debit,,,"Corse, taux 10% : taxe due",Opérations imposables en Corse à un taux particulier taux 10% : taxe due,,, +a_bm,3310A,2190,,43-base,BM,MOA,,False,,False,,,,,,,,,"Corse, anciens taux : base HT","Opérations imposables en Corse à un taux particulier, anciens taux : base HT",,, +a_cm,3310A,2200,,43-taxe,CM,MOA,,False,,False,,,,,l10n_fr_account_vat_return.a_bm,debit,,,"Corse, anciens taux : taxe due",Opérations imposables en Corse à un taux particulier anciens taux : taxe due,,, +a_sub_section_tva_dom,3310A,2210,sub_section,,,,,False,,False,,,,,,,,,OPÉRATIONS IMPOSABLES dans les DOM à un taux particulier,OPÉRATIONS IMPOSABLES dans les DOM à un taux particulier,,, +a_bp,3310A,2220,,44-base,BP,MOA,,False,,False,,,,,,,,,"DOM, taux 1,05% : base HT","Opérations imposables dans les DOM à un taux particulier, taux 1,05% : base HT",,, +a_cp,3310A,2230,,44-taxe,CP,MOA,,False,,False,,,,,l10n_fr_account_vat_return.a_bp,debit,,,"DOM, taux 1,05% : taxe due","Opérations imposables dans les DOM à un taux particulier, taux 1,05% : taxe due",,, +a_bq,3310A,2240,,45-base,BQ,MOA,,False,,False,,,,,,,,,"DOM, taux 1,75% : base HT","Opérations imposables dans les DOM à un taux particulier, taux 1,75% : base HT",,, +a_cq,3310A,2250,,45-taxe,CQ,MOA,,False,,False,,,,,l10n_fr_account_vat_return.a_bq,debit,,,"DOM, taux 1,75% : taxe due","Opérations imposables dans les DOM à un taux particulier, taux 1,75% : taxe due",,, +a_br,3310A,2260,,46-base,BR,MOA,,False,,False,,,,,,,,,"DOM, ancien taux : base HT",Opérations imposables dans les DOM à un ancien taux : base HT,,, +a_cr,3310A,2270,,46-taxe,CR,MOA,,False,,False,,,,,l10n_fr_account_vat_return.a_br,debit,,,"DOM, ancien taux : taxe due",Opérations imposables dans les DOM à un ancien taux : taxe due,,, +a_section_other_taxes,3310A,2300,section,,,,,True,,False,,,,,,,,,DÉCOMPTE DES TAXES ASSIMILÉES,DÉCOMPTE DES TAXES ASSIMILÉES,,, +a_hb,3310A,4000,,,HB,MOA,,True,,False,30,l10n_fr_account_vat_return.ca3_kb,,,,,,,Total lignes 47 à 133 (à reporter ligne 29 de la CA3),Total lignes 47 à 133 (à reporter ligne 29 de la CA3),,, +a_fa,3310A,2310,,47-taxe,FA,MOA,,True,,False,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Taxe sur certaines dépenses de publicité : taxe due,"Taxe sur certaines dépenses de publicité (CGI, art. 302 bis MA) au taux de 1%",,, +a_nd,3310A,2320,,47-base,ND,MOA,,True,,True,10,l10n_fr_account_vat_return.a_fa,1,,,,,,Taxe sur certaines dépenses de publicité : base,"Base imposable sur la taxe sur certaines dépenses de publicité (CGI, art. 302 bis MA) au taux de 1%",,, +a_fb,3310A,2330,,48-taxe,FB,MOA,,True,,False,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Taxe sur les retransmissions sportives : taxe due,"Taxe sur les retransmissions sportives (CGI, art. 302 bis ZE) au taux de 5 %",,, +a_ne,3310A,2340,,48-base,NE,MOA,,True,,True,10,l10n_fr_account_vat_return.a_fb,5,,,,,,Taxe sur la taxe sur les retransmissions sportives : base,"Base imposable sur la taxe sur la taxe sur les retransmissions sportives (CGI, art. 302 bis ZE) au taux de 5 %",,, +a_jf,3310A,2350,,49,JF,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Taxe sur les excédents de provision des entreprises d'assurances de dommages,"Taxe sur les excédents de provision des entreprises d'assurances de dommages (CGI, art. 235 ter X)",,, +a_he,3310A,2360,,50,HE,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Taxe sur le chiffre d'affaires des exploitants agricoles,"Taxe sur le chiffre d'affaires des exploitants agricoles (CGI, art. 302 bis MB) (cumul de la partie variable et de la partie forfaitaire)",,, +a_fj,3310A,2370,,55-taxe,FJ,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Taxe sur les concessionnaires d'autoroute : taxe due,"Taxe due par les concessionnaires d'autoroute (CGI, art 302 bis ZB) (7,32 € pour 1000 km)",,, +a_nf,3310A,2380,,55-base,NF,QTY,,True,,True,,,,,,,,,Taxe sur les concessionnaires d'autoroute : nombre de kms,"Base imposable de la taxe due par les concessionnaires d'autoroutes (CGI, art 302 bis ZB) : nombre de kms",,, +a_jb,3310A,2390,,56,JB,MOA,,False,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,6358,,"Contribution à l'audiovisuel public (CGI, art 1605 et suiv.)","Contribution à l'audiovisuel public (CGI, art 1605 et suiv.)",,, +a_jc,3310A,2400,,57,JC,MOA,,False,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,6358,,Contribution à l'audiovisuel public due par les loueurs d'appareils ,"Contribution à l'audiovisuel public due par les loueurs d'appareils (CGI, art 1605 et suiv.)",,, +a_kj,3310A,2410,,59-taxe,KJ,MOA,,True,,False,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,"Taxe sur la diffusion en vidéo physique et en ligne de contenus audiovisuels à titre onéreux, taux 5,15 % : taxe due","Taxe sur la diffusion en vidéo physique et en ligne de contenus audiovisuels à titre onéreux au taux de 5,15 %",,, +a_mk,3310A,2420,,59-base,MK,MOA,,True,,True,10,l10n_fr_account_vat_return.a_kj,5.15,,,,,,"Taxe sur la diffusion en vidéo physique et en ligne de contenus audiovisuels à titre onéreux, taux 5,15 % : base","Base imposable sur la taxe sur la diffusion en vidéo physique et en ligne de contenus audiovisuels à titre onéreux (CGI, art 1609 sexdecies B) au taux de 5,15 %",,, +a_kl,3310A,2430,,60-taxe,KL,MOA,,True,,False,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,"Taxe sur la diffusion en vidéo physique et en ligne de contenus audiovisuels à titre onéreux, taux 15 % : taxe due",Taxe sur la diffusion en vidéo physique et en ligne de contenus audiovisuels à titre onéreux au taux de 15 %,,, +a_ml,3310A,2440,,60-base,ML,MOA,,True,,True,10,l10n_fr_account_vat_return.a_kl,15,,,,,,"Taxe sur la diffusion en vidéo physique et en ligne de contenus audiovisuels à titre onéreux, taux 15 % : base","Base imposable sur la taxe sur la diffusion en vidéo physique et en ligne de contenus audiovisuels à titre onéreux (CGI, art 1609 sexdecies B) au taux de 15 %",,, +a_pp,3310A,2450,,60A-taxe,PP,MOA,,True,,False,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,"Taxe sur la diffusion en vidéo physique et en ligne de contenus audiovisuels à titre gratuit, taux 5,15 % : taxe due","Taxe sur la diffusion en vidéo physique et en ligne de contenus audiovisuels à titre gratuit (CGI, art 1609 sexdecies B) au taux de 5,15 %",,, +a_pq,3310A,2460,,60A-base,PQ,MOA,,True,,True,10,l10n_fr_account_vat_return.a_pp,5.15,,,,,,"Taxe sur la diffusion en vidéo physique et en ligne de contenus audiovisuels à titre gratuit, taux 5,15 % : base","Base imposable sur la taxe sur la diffusion en vidéo physique et en ligne de contenus audiovisuels à titre gratuit (CGI, art 1609 sexdecies B) au taux de 5,15 %",,, +a_pr,3310A,2470,,60B-taxe,PR,MOA,,True,,False,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,"Taxe sur la diffusion en vidéo physique et en ligne de contenus audiovisuels à titre gratuit, taux 15 % : taxe due","Taxe sur la diffusion en vidéo physique et en ligne de contenus audiovisuels à titre gratuit (CGI, art 1609 sexdecies B) au taux de 15 %",,, +a_ps,3310A,2480,,60B-base,PS,MOA,,True,,True,10,l10n_fr_account_vat_return.a_pr,15,,,,,,"Taxe sur la diffusion en vidéo physique et en ligne de contenus audiovisuels à titre gratuit, taux 15 % : base","Base imposable sur la taxe sur la diffusion en vidéo physique et en ligne de contenus audiovisuels à titre gratuit (CGI, art 1609 sexdecies B) au taux de 15 %",,, +a_ty,3310A,2482,,61,TY,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Taxe due par les employeurs de main-d’œuvre étrangère (uniquement pour les cessations d’activité ayant lieu en 2023),Taxe due par les employeurs de main-d’œuvre étrangère (L. 436-10 du CESEDA) (uniquement pour les cessations d’activité ayant lieu en 2023),,, +a_ug,3310A,2488,,62,UG,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Total de la contribution sur la rente infra-marginale de la production d’électricité (lignes a à q),Total de la contribution sur la rente infra-marginale de la production d’électricité (lignes a à q),,, +a_ft,3310A,2490,,64-taxe,FT,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Taxe sur les actes des huissiers de justice : taxe due,Taxe sur les actes des huissiers de justice,,, +a_mm,3310A,2500,,64-base,MM,MOA,,True,,True,,,,,,,,,Taxe sur les actes des huissiers de justice : base,"Base imposable sur la taxe sur les actes des huissiers de justice (CGI, art 302 bis Y)",,, +a_kg,3310A,2510,,65-taxe,KG,MOA,,True,,False,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Taxe sur les services fournis par les opérateurs de communication électronique : taxe due,"Taxe sur les services fournis par les opérateurs de communication électronique (CGI, art 302 bis KH) au taux de 1,3 %",,, +a_nh,3310A,2520,,65-base,NH,MOA,,True,,True,10,l10n_fr_account_vat_return.a_kg,1.3,,,,,,Taxe sur les services fournis par les opérateurs de communication électronique : base,"Base imposable sur la taxe sur les services fournis par les opérateurs de communication électronique (CGI, art 302 bis KH)",,, +a_fv,3310A,2530,,66-taxe-old,FV,MOA,,False,,True,,,,,,debit,,,Taxe sur les embarquements/débarquements de passagers en Corse : taxe due,"Taxe sur les embarquements ou débarquements de passagers en Corse (CGI, art 1599 vicies)",,, +a_mn,3310A,2540,,66-base-old,MN,MOA,,False,,True,,,,,,,,,Taxe sur les embarquements/débarquements de passagers en Corse : base,"Base imposable sur la taxe sur les embarquements ou débarquements de passagers en Corse (CGI, art 1599 vicies)",,, +a_ub,3310A,2522,,66-taxe,UB,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Taxe sur le transport aérien de passagers - Majoration en Corse : taxe,"Taxe sur le transport aérien de passagers - Majoration en Corse (CIBS, art. L422-13 et L422-29) : taxe",,, +a_tz,3310A,2523,,66-base,TZ,QTY,,True,,False,,,,,,,,,Taxe sur le transport aérien de passagers - Majoration en Corse : base,"Taxe sur le transport aérien de passagers - Majoration en Corse (CIBS, art. L422-13 et L422-29) : base",,, +a_uc,3310A,2524,,67-taxe,UC,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Taxe sur le transport maritime de passagers dans certains territoires côtiers - Embarquement ou débarquement en Corse : taxe,"Taxe sur le transport maritime de passagers dans certains territoires côtiers - Embarquement ou débarquement en Corse (CIBS, art. L423-57 et suivants) : taxe",,, +a_ua,3310A,2525,,67-base,UA,QTY,,True,,False,,,,,,,,,Taxe sur le transport maritime de passagers dans certains territoires côtiers - Embarquement ou débarquement en Corse : base,"Taxe sur le transport maritime de passagers dans certains territoires côtiers - Embarquement ou débarquement en Corse (CIBS, art. L423-57 et suivants) : base",,, +a_hi,3310A,2550,,68-taxe,HI,MOA,,True,,False,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,"Taxe pour le dév. de la formation prof. dans la réparation automobile/cycle/motocycle, taux 0,75 % : taxe due","Taxe pour le développement de la formation professionnelle dans les métiers de la réparation de l'automobile, du cycle et du motocycle au taux de 0,75 %",,, +a_mp,3310A,2560,,68-base,MP,MOA,,True,,True,10,l10n_fr_account_vat_return.a_hi,0.75,,,,,,"Taxe pour le dév. de la formation prof. dans la réparation automobile/cycle/motocycle, taux 0,75 % : base","Base imposable sur la taxe pour le développement de la formation professionnelle dans les métiers de la réparation de l'automobile, du cycle et du motocycle (CGI, art 1609 sexvicies) au taux de 0,75%",,, +a_jg,3310A,2570,,69,JG,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Taxe sur les ordres annulés dans le cadre d'opérations à haute fréquence,"Taxe sur les ordres annulés dans le cadre d'opérations à haute fréquence (CGI, art. 235 ter ZD bis)",,, +a_ud,3310A,2575,,70,UD,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Taxe spéciale due en cas de non-respect de l’engagement de conserver pendant 5 ans les parts de fonds commun de placement à risques ou de fonds professionnels de capital investissement,Taxe spéciale due en cas de non-respect de l’engagement de conserver pendant 5 ans les parts de fonds commun de placement à risques ou de fonds professionnels de capital investissement (art. 209-0-A du CGI),,, +a_kt,3310A,2580,,76,KT,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Contribution due par les gestionnaires des réseaux publics d'électricité,"Contribution due par les gestionnaires des réseaux publics d'électricité (CGCT, art L 2224-31 I bis)",,, +a_jj,3310A,2590,,78,JJ,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Taxe sur le résultat des entreprises ferroviaires,"Taxe sur le résultat des entreprises ferroviaires (CGI, art. 235 ter ZF)",,, +a_jk,3310A,2600,,79,JK,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Contribution de solidarité territoriale,"Contribution de solidarité territoriale (CGI, art. 302 bis ZC)",,, +a_jl,3310A,2610,,80,JL,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Imposition forfaitaire sur les pylônes,"Imposition forfaitaire sur les pylônes (CGI, art. 1519 A)",,, +a_ue,3310A,2616,,81-nom-dpm,UE,NAD,,True,,True,,,,,,,,,Nom du parc éolien en domain public maritime,Nom du parc éolien en domain public maritime,,, +a_uf,3310A,2618,,81-dpm,UF,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Taxe sur les éoliennes maritimes sur le domaine public maritime,"Taxe sur les éoliennes maritimes sur le domaine public maritime (CGI, art. 1519 B)",,, +a_jm,3310A,2620,,81,JM,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Taxe sur les éoliennes maritimes,"Taxe sur les éoliennes maritimes (CGI, art. 1519 B)",,, +a_jp,3310A,2650,,83-taxe,JP,MOA,,True,,False,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Taxe pour le fonds de soutien aux collectivités territoriales ayant contracté des produits structurés : taxe,"Taxe pour le financement du fonds de soutien aux collectivités territoriales ayant contracté des produits structurés (CGI, art. 235 ter ZE bis)",,, +a_np,3310A,2660,,83-base,NP,MOA,,True,,True,10,l10n_fr_account_vat_return.a_jp,0.0642,,,,,,Taxe pour le fonds de soutien aux collectivités territoriales ayant contracté des produits structurés : base,"Base imposable sur la taxe pour le financement du fonds de soutien aux collectivités territoriales ayant contracté des produits structurés au taux de 0,0642%",,, +a_jq,3310A,2670,,84A,JQ,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Redevance sanitaire d'abattage,"Redevance sanitaire d'abattage (CGI, art. 302 bis N à 302 bis R)",,, +a_jr,3310A,2680,,84B,JR,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Redevance sanitaire de découpage,"Redevance sanitaire de découpage (CGI, art. 302 bis S à 302 bis W)",,, +a_kx,3310A,2690,,85,KX,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Redevance sanitaire pour le contrôle de certaines substances et de leurs résidus,"Redevance sanitaire pour le contrôle de certaines substances et de leurs résidus (CGI, art. 302 bis WC)",,, +a_ky,3310A,2700,,86,KY,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Redevance sanitaire de 1ère mise sur le marché des produits de la pêche ou de l'aquaculture,"Redevance sanitaire de première mise sur le marché des produits de la pêche ou de l'aquaculture (CGI, art. 302 bis WA)",,, +a_kz,3310A,2710,,87-taxe,KZ,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Redevance sanitaire de transformation des produits de la pêche ou de l'aquaculture : taxe,"Redevance sanitaire de transformation des produits de la pêche ou de l'aquaculture (CGI, art. 302 bis WB)",,, +a_pe,3310A,2720,,87-base,PE,MOA,,True,,True,,,,,,,,,Redevance sanitaire de transformation des produits de la pêche ou de l'aquaculture : nombre de tonnes,"Base imposable sur la redevance sanitaire de transformation des produits de la pêche ou de l'aquaculture (CGI, art. 302 bis WB) : nombre de tonnes",,, +a_la,3310A,2730,,88-taxe,LA,MOA,,True,,False,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Redevance pour agrément des établissements du secteur de l'alimentation animale : taxe,"Redevance pour agrément des établissements du secteur de l'alimentation animale (CGI, art. 302 bis WD à WG)",,, +a_pf,3310A,2740,,88-base,PF,MOA,,True,,True,10,l10n_fr_account_vat_return.a_la,12500,,,,,,Redevance pour agrément des établissements du secteur de l'alimentation animale : nombre d'établissements,"Base imposable sur la redevance pour agrément des établissements du secteur de l'alimentation animale (CGI, art. 302 bis WD à WG) : nombre d'établissements",,, +a_lc,3310A,2750,,89,LC,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Redevance phytosanitaire à la circulation intracommunautaire,Redevance phytosanitaire à la circulation intracommunautaire (PPE) (L 251-17-1 du code rural et de la pêche maritime),,, +a_ld,3310A,2760,,90,LD,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Redevance phytosanitaire à l'exportation,Redevance phytosanitaire à l'exportation (L 251-17-1 du code rural et de la pêche maritime),,, +a_sz,3310A,2766,,90A,SZ,MOA,,True,,False,,,,,,debit,,,Total de la taxe sur les produits phytopharmaceutiques : taxe,"Total de la taxe sur les produits phytopharmaceutiques (a*0,9 % + b*0,1%) : taxe",,, +a_sx,3310A,2762,,90A-a,SX,MOA,,True,,True,10,l10n_fr_account_vat_return.a_sz,0.9,,,,,,"Taxe sur les produits phytopharmaceutiques au taux de 0,9 % : base","Taxe sur les produits phytopharmaceutiques (Code rural et de la pêche maritime, art. L 253-8-2) au taux de 0,9 % : base",,, +a_sy,3310A,2764,,90A-b,SY,MOA,,True,,True,10,l10n_fr_account_vat_return.a_sz,0.1,,,,,,"Taxe sur les produits phytopharmaceutiques au taux de 0,1 % : base","Taxe sur les produits phytopharmaceutiques (Code rural et de la pêche maritime, art. L 253-8-2) au taux de 0,1 % : base",,, +a_le,3310A,2770,,91-taxe,LE,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,"Taxe forfaitaire sur les ventes de métaux précieux, taux 11% : taxe","Taxe forfaitaire sur les métaux précieux (CGI, art.150 VM) sur les ventes de métaux précieux",,, +a_md,3310A,2780,,91-base,MD,MOA,,True,,True,,,,,,,,,"Taxe forfaitaire sur les ventes de métaux précieux, taux 11% : base","Base imposable sur la taxe forfaitaire sur les métaux précieux (CGI, art.150 VM) sur les ventes de métaux précieux",,, +a_lf,3310A,2790,,92-taxe,LF,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,"Taxe forfaitaire sur les ventes de bijoux, d'objets d'arts, de collection ou d'antiquité, taux 6% : taxe","Taxe forfaitaire sur les métaux précieux (CGI, art.150 VM) sur les ventes de bijoux, d'objets d'arts, de collection ou d'antiquité",,, +a_me,3310A,2800,,92-base,ME,MOA,,True,,True,,,,,,,,,"Taxe forfaitaire sur les ventes de bijoux, d'objets d'arts, de collection ou d'antiquité, taux 6% : base","Base imposable sur la taxe forfaitaire sur les métaux précieux (CGI, art.150 VM) sur les ventes de bijoux, d'objets d'arts, de collection ou d'antiquité",,, +a_lg,3310A,2810,,93-taxe,LG,MOA,,True,,False,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,"CRDS sur les ventes de métaux précieux, taux 0,5% : taxe","CRDS (CGI, art. 1600-0 I) sur les ventes de métaux précieux au taux de 0,5 %",,, +a_mf,3310A,2820,,93-base,MF,MOA,,True,,True,10,l10n_fr_account_vat_return.a_lg,0.5,,,,,,"CRDS sur les ventes de métaux précieux, taux 0,5% : base","Base imposable sur la CRDS (CGI, art. 1600-0 I) sur les ventes de métaux précieux",,, +a_lh,3310A,2830,,94-taxe,LH,MOA,,True,,False,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,"CRDS sur les ventes de bijoux, d'objets d'arts, de collection ou d'antiquité, taux 0,5% : taxe","Contribution pour le remboursement de la dette sociale (CRDS) (CGI, art. 1600-0 I) - sur les ventes de bijoux, d'objets d'arts, de collection ou d'antiquité au taux de 0,5 %",,, +a_mg,3310A,2840,,94-base,MG,MOA,,True,,True,10,l10n_fr_account_vat_return.a_lh,0.5,,,,,,"CRDS sur les ventes de bijoux, d'objets d'arts, de collection ou d'antiquité, taux 0,5% : base","Base imposable sur la contribution pour le remboursement de la dette sociale (CRDS) (CGI, art. 1600-0 I) - sur les ventes de bijoux, d'objets d'arts, de collection ou d'antiquité",,, +a_lj,3310A,2850,,95,LJ,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Contribution forfaitaire pour le fonds des accidents du travail agricole,"Contribution forfaitaire pour alimentation du fonds commun des accidents du travail agricole (CGI, art. 1622)",,, +a_lk,3310A,2860,,96-taxe,LK,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Prélèvements sur les paris hippiques au profit de l'Etat : taxe,"Prélèvements sur les paris hippiques - au profit de l'Etat (CGI, art. 302 bis ZG)",,, +a_mq,3310A,2870,,96-base,MQ,MOA,,True,,True,,,,,,,,,Prélèvements sur les paris hippiques au profit de l'Etat : base,"Base imposable sur le prélèvement sur les paris hippiques au profit de l'Etat (CGI, art. 302 bis ZG) ",,, +a_ll,3310A,2880,,97-taxe,LL,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Prélèvements sur les paris hippiques au profit de la sécurité sociale : taxe,"Prélèvements sur les paris hippiques - au profit des organismes de sécurité sociale (CSS, art. L137-20)",,, +a_mz,3310A,2890,,97-base,MZ,MOA,,True,,True,,,,,,,,,Prélèvements sur les paris hippiques au profit de la sécurité sociale : base,"Base imposable sur le prélèvement sur les paris hippiques au profit des organismes de sécurité sociale (CSS, art. L137-20)",,, +a_lm,3310A,2900,,98-taxe,LM,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Prélèvements sur les paris hippiques engagés depuis l'étranger des courses françaises et regroupés en France : taxe,"Prélèvements sur les paris hippiques - engagés depuis l'étranger des courses françaises et regroupés en France (CGI, art.302 bis ZO)",,, +a_na,3310A,2910,,98-base,NA,MOA,,True,,True,,,,,,,,,Prélèvements sur les paris hippiques engagés depuis l'étranger des courses françaises et regroupés en France : base,"Base imposable sur le prélèvement sur les paris hippiques engagés depuis l'étranger des courses françaises et regroupés en France (CGI, art.302 bis ZO)",,, +a_ln,3310A,2920,,99,LN,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Redevance due par les opérateurs agréés de paris hippiques en lignes : enjeux relatifs aux courses de trot,"Redevance due par les opérateurs agréés de paris hippiques en lignes - Enjeux relatifs aux courses de trot (CGI, art. 1609 tertricies)",,, +a_lp,3310A,2930,,100,LP,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Redevance due par les opérateurs agréés de paris hippiques en lignes : enjeux relatifs aux courses de galop,"Redevance due par les opérateurs agréés de paris hippiques en lignes - Enjeux relatifs aux courses de galop (CGI, art. 1609 tertricies)",,, +a_qz,3310A,2940,,101A-taxe,QZ,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,"Prélèvements sur les paris sportifs en ligne au profit de l'Etat, taux 33,7% : taxe","Prélèvements sur les paris sportifs en ligne au profit de l'Etat au taux de 33,7 % (CGI, art. 302 bis ZH)",,, +a_ra,3310A,2950,,102A-taxe,RA,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,"Prélèvements sur les paris sportifs en ligne au profit de la sécurité sociale, taux 10,6% : taxe","Prélèvements sur les paris sportifs en ligne au profit des organismes de sécurité sociale au taux de 10,6 % (CSS, art. L137-21)",,, +a_rb,3310A,2960,,103A-taxe,RB,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,"Prélèvements sur les paris sportifs en ligne au profit de l'ANS, taux 10,6% : taxe","Prélèvements sur les paris sportifs en ligne au profit de l'agence nationale du sport (ANS) au taux de 10,6 % (CGI, art. 1609 tricies)",,, +a_rf,3310A,2970,,101A-103A-base,RF,MOA,,True,,True,,,,,,,,,Prélèvements sur les paris sportifs en ligne : base,Base imposable sur les prélèvements sur les paris sportifs en ligne,,, +a_rc,3310A,2980,,101B-taxe,RC,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,"Prélèvements sur les paris sportifs commercialisés en réseau physique au profit de l'Etat, taux 27,9% : taxe","Prélèvements sur les paris sportifs commercialisés en réseau physique de distribution au profit de l'Etat au taux de 27,9 % (CGI, art. 302 bis ZH)",,, +a_rd,3310A,2990,,102B-taxe,RD,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,"Prélèvements sur les paris sportifs commercialisés en réseau physique au profit de la sécurité sociale, taux 6,6% : taxe","Prélèvements sur les paris sportifs commercialisés en réseau physique de distribution au profit des organismes de sécurité sociale au taux de 6,6 % (CSS, art. L137-21)",,, +a_re,3310A,3000,,103B-taxe,RE,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,"Prélèvements sur les paris sportifs commercialisés en réseau physique au profit de l'ANS, taux 6,6% : taxe","Prélèvements sur les paris sportifs commercialisés en réseau physique de distribution au profit de l'agence nationale du sport (ANS) au taux de 6,6 % (CGI, art. 1609 tricies)",,, +a_rg,3310A,3010,,101B-103B-base,RG,MOA,,True,,True,,,,,,,,,Prélèvements sur les paris sportifs commercialisés en réseau physique : base,Base imposable sur les prélèvements sur les paris sportifs commercialisés en réseau physique de distribution,,, +a_lt,3310A,3020,,104-taxe,LT,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Prélèvements sur les jeux de cercles au profit de l'Etat : taxe,"Prélèvements sur les jeux de cercles - au profit de l'Etat (CGI, art. 302 bis ZI)",,, +a_lu,3310A,3030,,105-taxe,LU,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Prélèvements sur les jeux de cercles au profit de la sécurité sociale : taxe,"Prélèvements sur les jeux de cercles - au profit des organismes de sécurité sociale (CSS, art. L137-22)",,, +a_ms,3310A,3040,,104-105-base,MS,MOA,,True,,True,,,,,,,,,Prélèvements sur les jeux de cercles en ligne : base,Base imposable sur les prélèvements sur les jeux de cercles en ligne,,, +a_rh,3310A,3050,,107A-taxe,RH,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,"Prélèvement au profit de l'ANS sur les jeux commercialisés par la FdJ, taux 5,1% : taxe","Prélèvement au profit de l'agence nationale du sport (ANS) sur les jeux commercialisés par la Française des jeux au taux de 5,1 % (CGI, art. 1609 novovicies)",,, +a_rj,3310A,3060,,107A-base,RJ,MOA,,True,,True,,,,,,,,,"Prélèvement au profit de l'ANS sur les jeux commercialisés par la FdJ, taux 5,1% : base","Base imposable sur le prélèvement au profit de l'agence nationale du sport (ANS) sur les jeux commercialisés par la Française des jeux au taux de 5,1 % (CGI, art. 1609 novovicies)",,, +a_pb,3310A,3070,,111-taxe,PB,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,CSG sur une fraction du produit des jeux des machines à sous : taxe,"Contribution sociale généralisée (CSS, art. L136-7-1) sur une fraction du produit des jeux des machines à sous",,, +a_nv,3310A,3080,,111-base,NV,MOA,,True,,True,,,,,,,,,CSG sur une fraction du produit des jeux des machines à sous : base,"Base imposable sur la contribution sociale généralisée (CSS, art. L136-7-1) sur une fraction égale à 68% du produit des jeux des machines à sous",,, +a_pc,3310A,3090,,112-taxe,PC,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,CSG sur le montant des gains des machines à sous d'un montant supérieur ou égal à 1 500 € réglés aux joueurs par le caissier sous forme de bons de paiement manuels : taxe,"Contribution sociale généralisée (CSS, art. L136-7-1) sur le montant des gains des machines à sous d'un montant supérieur ou égal à 1 500 € réglés aux joueurs par le caissier sous forme de bons de paiement manuels",,, +a_nw,3310A,3100,,112-base,NW,MOA,,True,,True,,,,,,,,,CSG sur le montant des gains des machines à sous d'un montant supérieur ou égal à 1 500 € réglés aux joueurs par le caissier sous forme de bons de paiement manuels : base,"Base imposable sur la contribution sociale généralisée (CSS, art. L136-7-1) sur le montant des gains des machines à sous d'un montant supérieur ou égal à 1 500 € réglés aux joueurs par le caissier sous forme de bons de paiement manuels",,, +a_pd,3310A,3110,,113-taxe,PD,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,CRDS portant sur le montant du produit total des jeux : taxe,"Contribution pour le remboursement de la dette sociale portant sur le montant du produit total des jeux (CGCT, art. L. 2333-57, articles 18-III et 19 de l'ordonnance n°96-50 du 24 janvier 1996)",,, +a_nx,3310A,3120,,113-base,NX,MOA,,True,,True,,,,,,,,,CRDS portant sur le montant du produit total des jeux : base,"Base imposable sur la contribution pour le remboursement de la dette sociale portant sur le montant du produit total des jeux (CGCT, art. L. 2333-57, articles 18-III et 19 de l'ordonnance n°96-50 du 24 janvier 1996)",,, +a_ma,3310A,3130,,115-taxe,MA,MOA,,True,,False,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Taxe annuelle pour frais de contrôle due par les concessionnaires d'autoroutes : taxe,"Taxe annuelle pour frais de contrôle due par les concessionnaires d'autoroutes (CGI, art. 1609 septtricies 302 bis ZB bis) au taux de 0,363 ‰",,, +a_mc,3310A,3140,,115-base,MC,MOA,,True,,True,10,l10n_fr_account_vat_return.a_ma,0.0363,,,,,,Taxe annuelle pour frais de contrôle due par les concessionnaires d'autoroutes : base,"Base imposable sur la taxe annuelle pour frais de contrôle due par les concessionnaires d'autoroutes (CGI, art. 1609 septtricies 302 bis ZB bis)",,, +a_rs,3310A,3300,,116,RS,MOA,,True,,False,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Total de la taxe annuelle à l'essieu,"Total de la taxe annuelle à l'essieu due (CGI, art. 1010) (1a + 1b + 2a + 2b + 3)",,, +a_rt,3310A,3150,,116-1a-nb,RT,QTY,,True,,True,,,,,,,,,Véhicules à moteur isolés - PTAC inférieur à 27t - Nombre de véhicules,Véhicules à moteur isolés - PTAC inférieur à 27t - Nombre de véhicules,,, +a_ry,3310A,3160,,116-1a-nb-rr,RY,QTY,,True,,True,,,,,,,,,Véhicules à moteur isolés - PTAC inférieur à 27t - Dont nombre de véhicules rail-route,Véhicules à moteur isolés - PTAC inférieur à 27t - Dont nombre de véhicules rail-route,,, +a_sd,3310A,3170,,116-1a-taxe,SD,MOA,,True,,True,10,l10n_fr_account_vat_return.a_rs,,,,,,,Véhicules à moteur isolés - PTAC inférieur à 27t - Montant de la taxe,Véhicules à moteur isolés - PTAC inférieur à 27t - Montant de la taxe,,, +a_ru,3310A,3180,,116-1b-nb,RU,QTY,,True,,True,,,,,,,,,Véhicules à moteur isolés - PTAC supérieur ou égal à 27t - Nombre de véhicules,Véhicules à moteur isolés - PTAC supérieur ou égal à 27t - Nombre de véhicules,,, +a_rz,3310A,3190,,116-1b-nb-rr,RZ,QTY,,True,,True,,,,,,,,,Véhicules à moteur isolés - PTAC supérieur ou égal à 27t - Dont nombre de véhicules rail-route,Véhicules à moteur isolés - PTAC supérieur ou égal à 27t - Dont nombre de véhicules rail-route,,, +a_se,3310A,3200,,116-1b-taxe,SE,MOA,,True,,True,10,l10n_fr_account_vat_return.a_rs,,,,,,,Véhicules à moteur isolés - PTAC supérieur ou égal à 27t - Montant de la taxe,Véhicules à moteur isolés - PTAC supérieur ou égal à 27t - Montant de la taxe,,, +a_rv,3310A,3210,,116-2a-nb,RV,QTY,,True,,True,,,,,,,,,Ensemble articulés constitués d'un tracteur et d'une ou plusieurs semi-remorques - PTRA inférieur à 39t - Nombre de véhicules,Ensemble articulés constitués d'un tracteur et d'une ou plusieurs semi-remorques - PTRA inférieur à 39t - Nombre de véhicules,,, +a_sa,3310A,3220,,116-2a-nb-rr,SA,QTY,,True,,True,,,,,,,,,Ensemble articulés constitués d'un tracteur et d'une ou plusieurs semi-remorques - PTRA inférieur à 39t - Dont nombre de véhicules rail-route,Ensemble articulés constitués d'un tracteur et d'une ou plusieurs semi-remorques - PTRA inférieur à 39t - Dont nombre de véhicules rail-route,,, +a_sf,3310A,3230,,116-2a-taxe,SF,MOA,,True,,True,10,l10n_fr_account_vat_return.a_rs,,,,,,,Ensemble articulés constitués d'un tracteur et d'une ou plusieurs semi-remorques - PTRA inférieur à 39t - Montant de la taxe,Ensemble articulés constitués d'un tracteur et d'une ou plusieurs semi-remorques - PTRA inférieur à 39t - Montant de la taxe,,, +a_rw,3310A,3240,,116-2b-nb,RW,QTY,,True,,True,,,,,,,,,Ensemble articulés constitués d'un tracteur et d'une ou plusieurs semi-remorques - PTRA supérieur ou égal à 39t - Nombre de véhicules,Ensemble articulés constitués d'un tracteur et d'une ou plusieurs semi-remorques - PTRA supérieur ou égal à 39t - Nombre de véhicules,,, +a_sb,3310A,3250,,116-2b-nb-rr,SB,QTY,,True,,True,,,,,,,,,Ensemble articulés constitués d'un tracteur et d'une ou plusieurs semi-remorques - PTRA supérieur ou égal à 39t - Dont nombre de véhicules rail-route,Ensemble articulés constitués d'un tracteur et d'une ou plusieurs semi-remorques - PTRA supérieur ou égal à 39t - Dont nombre de véhicules rail-route,,, +a_sg,3310A,3260,,116-2b-taxe,SG,MOA,,True,,True,10,l10n_fr_account_vat_return.a_rs,,,,,,,Ensemble articulés constitués d'un tracteur et d'une ou plusieurs semi-remorques - PTRA supérieur ou égal à 39t - Montant de la taxe,Ensemble articulés constitués d'un tracteur et d'une ou plusieurs semi-remorques - PTRA supérieur ou égal à 39t - Montant de la taxe,,, +a_rx,3310A,3270,,116-3-nb,RX,QTY,,True,,True,,,,,,,,,Remorques de la catégorie O4 - Nombre de véhicules,Remorques de la catégorie O4 - Nombre de véhicules,,, +a_sc,3310A,3280,,116-3-nb-rr,SC,QTY,,True,,True,,,,,,,,,Remorques de la catégorie O4 - Dont nombre de véhicules rail-route,Remorques de la catégorie O4 - Dont nombre de véhicules rail-route,,, +a_sh,3310A,3290,,116-3-taxe,SH,MOA,,True,,True,10,l10n_fr_account_vat_return.a_rs,,,,,,,Remorques de la catégorie O4 - Montant de la taxe,Remorques de la catégorie O4 - Montant de la taxe,,, +a_tf,3310A,3310,,117-nb-nouv,TF,QTY,,True,,True,,,,,,,,,Nombre de véhicules relevant du nouveau dispositif d’immatriculation (depuis le 1er mars 2020),Nombre de véhicules relevant du nouveau dispositif d’immatriculation (depuis le 1er mars 2020),,, +a_tg,3310A,3320,,117-nb-nonouv,TG,QTY,,True,,True,,,,,,,,,"Nombre de véhicules ne relevant pas du nouveau dispositif d’immatriculation : (réception européenne, dont la première mise en circulation est intervenue à compter du 1er juin 2004 et non utilisés par le redevable avant le 1er janvier 2006)","Nombre de véhicules ne relevant pas du nouveau dispositif d’immatriculation : (réception européenne, dont la première mise en circulation est intervenue à compter du 1er juin 2004 et non utilisés par le redevable avant le 1er janvier 2006)",,, +a_th,3310A,3330,,117-nb-autres,TH,QTY,,True,,True,,,,,,,,,Nombre d'autres véhicules soumis à la taxe,Nombre d'autres véhicules soumis à la taxe,,, +a_tj,3310A,3340,,117-nb-elec,TJ,QTY,,True,,True,,,,,,,,,"Nombre de véhicules exonérés dont la source d'énergie est exclusivement l'électricité, l'hydrogène ou une combinaison des deux","Nombre de véhicules exonérés dont la source d'énergie est exclusivement l'électricité, l'hydrogène ou une combinaison des deux",,, +a_tk,3310A,3350,,117-nb-autres-exo,TK,QTY,,True,,True,,,,,,,,,Nombre des autres véhicules exonérés,Nombre des autres véhicules exonérés,,, +a_sl,3310A,3360,,117,SL,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,63514,,Taxe sur les émissions de CO2 due au titre de 2022,"Taxe sur les émissions de CO2 due au titre de 2022 (CGI, art. 1010)",,, +a_sm,3310A,3370,,118,SM,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,63514,,Taxe sur les émissions de polluants atmosphériques due au titre de 2022,"Taxe sur les émissions de polluants atmosphériques due au titre de 2022 (CGI, art. 1010)",,, +a_tx,3310A,3375,,nb-vehicule-exo,TX,QTY,,True,,True,,,,,,,,,Nombre de véhicules exonérés,Nombre de véhicules exonérés,,, +a_nc,3310A,3380,,119-taxe,NC,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Prélèvement progressif sur les clubs de jeux : taxe,Prélèvement progressif sur les clubs de jeux (V de l'article 34 de la loi n° 2017-257 du 28 février 2017 relative au statut de Paris et à l'aménagement métropolitain),,, +a_pg,3310A,3390,,119-base,PG,MOA,,True,,True,,,,,,,,,Prélèvement progressif sur les clubs de jeux : base,Base imposable sur les prélèvement progressif sur les clubs de jeux (V de l'article 34 de la loi n° 2017-257 du 28 février 2017 relative au statut de Paris et à l'aménagement métropolitain),,, +a_sj,3310A,3400,,120,SJ,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,"Sommes constatées par les clubs de jeux au titre des ""orphelins""","Sommes constatées par les clubs de jeux au titre des ""orphelins"" (arrêté du 23 février 2021 relatif aux modalités de déclaration et d'encaissement des sommes qualifiées d'orphelins versées par les clubs de jeux)",,, +a_pk,3310A,3430,,121,PK,MOA,,True,,False,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Montant total de la taxe sur l'exploration d'hydrocarbures,Montant total de la taxe sur l'exploration d'hydrocarbures,,, +a_ph,3310A,3410,,121-taxe,PH,MOA,,True,,True,10,l10n_fr_account_vat_return.a_pk,,,,,,,Taxe sur l'exploration d'hydrocarbures : taxe,"Droits pour le département ou la collectivité territoriale pour la taxe sur l'exploration d'hydrocarbures (CGI, art 1590)",,, +a_pj,3310A,3420,,121-dpt,PJ,FTX,,True,,True,,,,,,,,,Département bénéficiaire de la taxe sur l'exploration d'hydrocarbures,"Département bénéficiaire de la taxe sur l'exploration d'hydrocarbures (CGI, art 1590)",,, +a_pu,3310A,3440,,124-taxe,PU,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Contribution sur les boissons non alcooliques contenant des sucres ajoutés : taxe,"Contribution sur les boissons non alcooliques contenant des sucres ajoutés (CGI, art. 1613 ter)",,, +a_pw,3310A,3450,,124-base,PW,MOA,,True,,True,,,,,,,,,Contribution sur les boissons non alcooliques contenant des sucres ajoutés : base en hectolitres,Nombre d'hectolitres relatif à la contribution sur les boissons non alcooliques contenant des sucres ajoutés,,, +a_px,3310A,3460,,125-taxe,PX,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Contribution sur les boissons non alcooliques : taxe,"Contribution sur les boissons non alcooliques (CGI, art. 1613 quater II 1°)",,, +a_py,3310A,3470,,125-base,PY,MOA,,True,,True,,,,,,,,,Contribution sur les boissons non alcooliques : base en hectolitres,Nombre d'hectolitres relatif à la contribution sur les boissons non alcooliques,,, +a_qa,3310A,3480,,126-base,QA,MOA,,True,,True,,,,,,,,,Contribution sur les boissons non alcooliques contenant des édulcorants de synthèse : base en hectolitres,Nombre d'hectolitres relatif à la contribution sur les boissons non alcooliques contenant des édulcorants de synthèse,,, +a_pz,3310A,3490,,126-taxe,PZ,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Contribution sur les boissons non alcooliques contenant des édulcorants de synthèse : taxe,"Contribution sur les boissons non alcooliques contenant des édulcorants de synthèse (CGI, art. 1613 quater II 2°)",,, +a_qe,3310A,3500,,128,QE,MOA,,True,,False,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Montant total de la contribution sur les eaux minérales naturelles,Montant total de la contribution sur les eaux minérales naturelles,,, +a_qb,3310A,3510,,127-taxe,QB,MOA,,True,,True,10,l10n_fr_account_vat_return.a_qe,,,,,,,Contribution sur les eaux minérales naturelles : taxe,"Contribution sur les eaux minérales naturelles (CGI, art. 1582)",,, +a_qc,3310A,3520,,127-commune,QC,FTX,,True,,True,,,,,,,,,N° INSEE de la commune bénéficiaire de la contribution sur les eaux minérales naturelles,Numéro de la commune bénéficiaire de la contribution sur les eaux minérales naturelles,,, +a_qd,3310A,3530,,127-base,QD,MOA,,True,,True,,,,,,,,,Contribution sur les eaux minérales naturelles : base en hectolitres,Nombre d'hectolitres relatif à la contribution sur les eaux minérales naturelles,,, +a_td,3310A,3540,,129-base,TD,MOA,,True,,True,,,,,,,,,Taxe sur les exploitants de plateformes de mise en relation par voie électronique en vue de fournir certaines prestations de transport : base,"Taxe sur les exploitants de plateformes de mise en relation par voie électronique en vue de fournir certaines prestations de transport (CGI, article 300 bis) : base",,, +a_te,3310A,3550,,129-taxe,TE,MOA,,True,,True,20,l10n_fr_account_vat_return.a_hb,,,,debit,,,Taxe sur les exploitants de plateformes de mise en relation par voie électronique en vue de fournir certaines prestations de transport : taxe,"Taxe sur les exploitants de plateformes de mise en relation par voie électronique en vue de fournir certaines prestations de transport (CGI, article 300 bis) : taxe",,, diff --git a/l10n_fr_account_vat_return/i18n/fr.po b/l10n_fr_account_vat_return/i18n/fr.po index 4a114c845..600c63084 100644 --- a/l10n_fr_account_vat_return/i18n/fr.po +++ b/l10n_fr_account_vat_return/i18n/fr.po @@ -6,26 +6,56 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 14.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-09-29 20:11+0000\n" -"PO-Revision-Date: 2023-05-31 21:09+0000\n" -"Last-Translator: Claude R Perrin \n" +"POT-Creation-Date: 2023-09-09 07:29+0000\n" +"PO-Revision-Date: 2023-09-09 07:30+0000\n" +"Last-Translator: Alexis de Lattre \n" "Language-Team: \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.17\n" +"Plural-Forms: \n" + +#. module: l10n_fr_account_vat_return +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#, python-format +msgid "%(invoice)s (%(partner)s) is unpaid, Unpaid VAT amount %(amount)s" +msgstr "%(invoice)s (%(partner)s) est impayée, Montant de TVA impayée %(amount)s" + +#. module: l10n_fr_account_vat_return +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#, python-format +msgid "" +"%(invoice)s (%(partner)s) was unpaid on %(date)s, Unpaid VAT amount " +"%(amount)s" +msgstr "" +"%(invoice)s (%(partner)s) était impayée au %(date)s, Montant de TVA impayée " +"%(amount)s" + +#. module: l10n_fr_account_vat_return +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#, python-format +msgid "" +"%(invoice)s of customer %(partner)s from Monaco, VAT amount %(vat_amount)s" +msgstr "" +"%(invoice)s du client %(partner)s de Monaco, Montant de TVA %(vat_amount)s" + +#. module: l10n_fr_account_vat_return +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#, python-format +msgid "%(start_note)s, Rate %(rate).2f%% → Base %(base_amount)s" +msgstr "%(start_note)s, Taux %(rate).2f%% → Base %(base_amount)s" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "" -"%d%% of the invoice/refund was unpaid on %s, VAT amount %s => Unpaid VAT " -"amount %s" +"%(unpaid_ratio)d%% of %(invoice)s (%(partner)s) was unpaid on %(date)s, VAT " +"amount %(total_vat_amount)s → Unpaid VAT amount %(unpaid_vat_amount)s" msgstr "" -"%d%% de la facture/avoir était impayé au %s, Montant TVA %s => Montant de " -"TVA impayé %s" +"%(unpaid_ratio)d%% de %(invoice)s (%(partner)s) était impayé au %(date)s, " +"Montant de TVA %(total_vat_amount)s → Montant de TVA impayée " +"%(unpaid_vat_amount)s" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 @@ -52,22 +82,6 @@ msgstr "" "Une déclaration de TVA avec la même date de début existe déjà dans cette " "société !" -#. module: l10n_fr_account_vat_return -#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 -#, python-format -msgid "A regular sale " -msgstr "Une vente normale " - -#. module: l10n_fr_account_vat_return -#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 -#, python-format -msgid "" -"A single box with type '%s' should exists, but there are %d box(es) of that " -"type. This should never happen." -msgstr "" -"Il devrait y avoir une unique case de formulaire de type '%s', mais il y a " -"%d case(s) de ce type. Cela ne devrait jamais arriver." - #. module: l10n_fr_account_vat_return #: model:ir.model,name:l10n_fr_account_vat_return.model_account_account #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_box__account_id @@ -80,52 +94,62 @@ msgstr "Compte" #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "" -"Account '%s' is an account for autoliquidation, so it's reconcile option " -"must be enabled." +"Account '%(account)s' is used as due VAT account on several auto-liquidation " +"taxes for different rates (%(rate1).2f%% and %(rate2).2f%%)." msgstr "" +"Le compte \"%(account)s\" est utilisé comme compte de TVA due sur plusieurs " +"taxes d'auto-liquidation pour différents taux (%(rate1).2f%% et " +"%(rate2).2f%%)." #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format -msgid "Account '%s' is present in the mapping of several fiscal positions." +msgid "" +"Account '%(account)s' is used for several kinds of deductible VAT taxes " +"(%(type1)s and %(type2)s)." msgstr "" -"Le compte '%s' est présent dans la table de correspondance de plusieurs " -"positions fiscales." +"Le compte \"%(account)s\" est utilisé pour plusieurs types de taxes de TVA " +"déductibles (%(type1)s et %(type2)s)." #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "" -"Account '%s' is used as due VAT account on several auto-liquidation taxes " -"for different rates (%.2f%% and %.2f%%)." +"Account '%(account)s' is used on several sale VAT taxes for different rates " +"(%(rate1).2f%% and %(rate2).2f%%)." msgstr "" -"Le compte '%s' est utilisé comme compte de TVA due sur plusieurs taxes " -"d'autoliquidation pour des taux différents (%.2f%% and %.2f%%)." +"Le compte \"%(account)s\" est utilisé pour plusieurs taxes de TVA à la vente " +"pour des taux différents (%(rate1).2f%% et %(rate2).2f%%)." #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "" -"Account '%s' is used for several kinds of deductible VAT taxes (%s and %s)." +"Account '%s' is an account for autoliquidation, so it's reconcile option " +"must be enabled." msgstr "" -"Le compte '%s' est utilisé sur plusieurs types de taxes de TVA déductible " -"(%s et %s)." +"Le compte \"%s\" est un compte d'autoliquidation ; ce doit être un compte " +"lettrable." #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format -msgid "" -"Account '%s' is used on several sale VAT taxes for different rates (%.2f%% " -"and %.2f%%)." +msgid "Account '%s' is present in the mapping of several fiscal positions." msgstr "" -"Le compte '%s' est utilisé sur plusieurs taxes de TVA à la vente pour " -"différents taux (%.2f%% et %.2f%%)." +"Le compte '%s' est présent dans la table de correspondance de plusieurs " +"positions fiscales." #. module: l10n_fr_account_vat_return #: model:ir.model,name:l10n_fr_account_vat_return.model_account_chart_template msgid "Account Chart Template" msgstr "Modèle de plan comptable" +#. module: l10n_fr_account_vat_return +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#, python-format +msgid "Account is missing on manual line '%s'." +msgstr "Le compte est manquant sur la ligne manuelle '%s'." + #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_box__accounting_method #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return_line__box_accounting_method @@ -136,7 +160,7 @@ msgstr "Méthode de comptabilisation" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__message_needaction msgid "Action Needed" -msgstr "Nécessite une action" +msgstr "Action requise" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_box__active @@ -151,17 +175,34 @@ msgstr "Activités" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__activity_exception_decoration msgid "Activity Exception Decoration" -msgstr "Décoration de l’activité en exception" +msgstr "Style d'affichage de l'activité-alerte" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__activity_state msgid "Activity State" -msgstr "État de l’activité" +msgstr "État de l'activité" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__activity_type_icon msgid "Activity Type Icon" -msgstr "Icône de type d'activité" +msgstr "Îcone du type d'activité" + +#. module: l10n_fr_account_vat_return +#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_return_line_log__compute_type__adjustment +msgid "Adjustment" +msgstr "Ajustement" + +#. module: l10n_fr_account_vat_return +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#, python-format +msgid "" +"Adjustment to have sum of taxed operations boxes %(taxed_op_boxes)s = sum of " +"due VAT base boxes %(due_vat_boxes)s. Otherwise, DGFiP would reject the VAT " +"return." +msgstr "" +"Ajustement pour que la somme des cases des opérations taxées " +"%(taxed_op_boxes)s soit égale à la somme des cases des bases de TVA due %(due_vat_boxes)s. " +"Dans le cas contraire, la DGFiP rejetterait la déclaration de TVA." #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return_line_log__amount @@ -223,6 +264,21 @@ msgstr "Lignes automatiques" msgid "Back to Manual Lines" msgstr "Retour aux lignes manuelles" +#. module: l10n_fr_account_vat_return +#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_return_line_log__compute_type__base_from_balance +msgid "Base from Ending Balance" +msgstr "Base depuis solde" + +#. module: l10n_fr_account_vat_return +#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_return_line_log__compute_type__base_from_balance_ratio +msgid "Base from Ending Balance x Ratio" +msgstr "Base depuis solde x ratio" + +#. module: l10n_fr_account_vat_return +#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_return_line_log__compute_type__base_from_unpaid_vat_on_payment +msgid "Base from Unpaid VAT on Payment" +msgstr "Base depuis TVA sur les encaissements impayée" + #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/res_company.py:0 #, python-format @@ -254,65 +310,68 @@ msgstr "Case" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 #, python-format -msgid "Box '%s' doesn't have a push box, so it's push rate should be 0." +msgid "" +"Box '%(box)s' has a push box '%(push_box)s' that is configured as manual." msgstr "" -"La case '%s' n'a pas de case poussée, donc son taux de poussée devrait être " -"à 0." +"La case '%(box)s' est poussée sur la case '%(push_box)s' qui est configurée " +"comme manuelle." #. module: l10n_fr_account_vat_return -#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "" -"Box '%s' doesn't have an accounting method, so it should not have any " -"accounting parameter." +"Box '%(box)s' is configured with Manual Account Code '%(account_code)s', but " +"there are no accounts that start with this code in company '%(company)s'. " +"You may want to setup a specific account on that box." msgstr "" -"La case '%s' n'a pas de méthode comptable, donc elle ne devrait avoir aucun " -"paramètre comptable." +"La case '%(box)s' est configurée avec le code de compte manuel " +"'%(account_code)s', mais aucun compte ne commence par ce code dans la " +"société '%(company)s'. Vous devriez configurer un compte spécifique pour " +"cette case." #. module: l10n_fr_account_vat_return -#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 #, python-format -msgid "" -"Box '%s' has a negative value (%s) but it doesn't have a negative switch box." +msgid "Box '%s' doesn't have a push box, so it's push rate should be 0." msgstr "" -"La case '%s' a une valeur négative (%s) mais elle n’a pas de boîte de " -"commutation négative." +"La case '%s' n'est poussée sur aucune case, donc son taux de poussée devrait " +"être à 0." #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 #, python-format -msgid "" -"Box '%s' has a push box '%s' that is configured as manual or not pushed " -"total." +msgid "Box '%s' doesn't have a push box, so it's push sequence should be 0." msgstr "" -"La case '%s' a une case poussée '%s' qui est configurée en manuel ou en " -"total non poussé." +"La case '%s' n'est poussée sur aucune case, donc sa séquence de poussée doit " +"être égale à 0." #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 #, python-format -msgid "Box '%s' has a push box but is missing a push sequence." -msgstr "La case '%s' a une case poussée mais n'a pas de séquence de poussée." +msgid "" +"Box '%s' doesn't have an accounting method, so it should not have any " +"accounting parameter." +msgstr "" +"La case '%s' n'a pas de méthode comptable, donc elle ne devrait avoir aucun " +"paramètre comptable." #. module: l10n_fr_account_vat_return -#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 #, python-format -msgid "" -"Box '%s' is configured with Manual Account Code '%s', but there are no " -"accounts that start with this code in company '%s'. You may want to setup a " -"specific account on that box." +msgid "Box '%s' has a push box but is missing a push sequence." msgstr "" -"La case '%s' est configurée avec le compte comptable manuel '%s', mais il " -"n'y a aucun compte qui commence par ce code dans la société '%s'. Vous " -"devriez configurer un compte comptable spécifique pour cette case." +"La case '%s' est poussée sur une case mais il lui manque une séquence de " +"poussée." #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 #, python-format msgid "" -"Box '%s' should not have an accounting method considering it's box type." +"Box '%s' should not have an accounting method considering it's an untaxed " +"operation." msgstr "" -"La case '%s' ne devrait pas avoir de méthode comptable au vu de son type." +"La case \"%s\" ne devrait pas avoir de méthode comptable étant donné qu'il " +"s'agit d'une opération non taxée." #. module: l10n_fr_account_vat_return #: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_return_line_log__compute_type__box @@ -332,7 +391,7 @@ msgstr "Fichier CA3" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__ca3_attachment_name msgid "CA3 Filename" -msgstr "Nom de fichier CA3" +msgstr "Nom du fichier CA3" #. module: l10n_fr_account_vat_return #: model_terms:ir.ui.view,arch_db:l10n_fr_account_vat_return.l10n_fr_account_vat_return_reimbursement_form @@ -352,7 +411,12 @@ msgstr "" #. module: l10n_fr_account_vat_return #: model:ir.model,name:l10n_fr_account_vat_return.model_l10n_fr_vat_exigibility_update msgid "Change Company VAT Exigibility" -msgstr "Modification du régime de TVA de la société" +msgstr "Changement du régime de TVA de la société" + +#. module: l10n_fr_account_vat_return +#: model_terms:ir.ui.view,arch_db:l10n_fr_account_vat_return.res_config_settings_view_form +msgid "Change VAT Exigibility" +msgstr "Changer le régime de TVA" #. module: l10n_fr_account_vat_return #: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__edi_type__ftx @@ -366,14 +430,18 @@ msgid "Code" msgstr "Code" #. module: l10n_fr_account_vat_return -#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 -#: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__comment_dgfip #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return_reimbursement__reimbursement_comment_dgfip #: model_terms:ir.ui.view,arch_db:l10n_fr_account_vat_return.l10n_fr_account_vat_return_form -#, python-format msgid "Comment for DGFIP" msgstr "Commentaire pour la DGFIP" +#. module: l10n_fr_account_vat_return +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__comment_dgfip +#, python-format +msgid "Comment for DGFiP" +msgstr "Commentaire pour la DGFiP" + #. module: l10n_fr_account_vat_return #: model:ir.model,name:l10n_fr_account_vat_return.model_res_company msgid "Companies" @@ -397,12 +465,12 @@ msgstr "Compte bancaire de la société" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__company_currency_id msgid "Company Currency" -msgstr "Devise société" +msgstr "Devise de la société" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__company_partner_id msgid "Company Partner" -msgstr "Contact de la société" +msgstr "Partenaire de la société" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,help:l10n_fr_account_vat_return.field_res_company__fr_vat_bank_account_id @@ -416,12 +484,12 @@ msgstr "" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return_line__log_ids msgid "Computation Details" -msgstr "Détails de calcul" +msgstr "Détail du calcul" #. module: l10n_fr_account_vat_return #: model_terms:ir.ui.view,arch_db:l10n_fr_account_vat_return.l10n_fr_account_vat_return_line_form msgid "Computation and Accounting Details" -msgstr "Détails de calcul et de comptabilisation" +msgstr "Détails du calcul et de comptabilisation" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return_line_log__compute_type @@ -432,12 +500,7 @@ msgstr "Type de calcul" #: model:ir.model,name:l10n_fr_account_vat_return.model_l10n_fr_account_vat_return_line_log msgid "Compute log of VAT Return Line for France (CA3 line)" msgstr "" -"Détails du calcul de la ligne de déclaration de TVA française (ligne de CA3)" - -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_return_line_log__compute_type__computed_base -msgid "Computed Base" -msgstr "Base de calcul" +"Détail du calcul de la ligne de déclaration de TVA française (ligne de CA3)" #. module: l10n_fr_account_vat_return #: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_return_line_log__compute_type__computed_vat_amount @@ -447,7 +510,7 @@ msgstr "Montant de TVA calculé" #. module: l10n_fr_account_vat_return #: model:ir.model,name:l10n_fr_account_vat_return.model_res_config_settings msgid "Config Settings" -msgstr "Page de configuration" +msgstr "Configuration" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_box__create_uid @@ -486,16 +549,11 @@ msgstr "La date de création n'est pas renseignée." msgid "Credit" msgstr "Crédit" -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__credit_deferment -msgid "Credit Deferment" -msgstr "Report de crédit" - #. module: l10n_fr_account_vat_return #: model:ir.actions.act_window,name:l10n_fr_account_vat_return.l10n_fr_account_vat_return_reimbursement_action #: model_terms:ir.ui.view,arch_db:l10n_fr_account_vat_return.l10n_fr_account_vat_return_form msgid "Credit VAT Reimbursement" -msgstr "Remboursement de crédit" +msgstr "Remboursement de crédit de TVA" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 @@ -507,7 +565,7 @@ msgstr "Retrait de la demande de remboursement de crédit de TVA." #: code:addons/l10n_fr_account_vat_return/wizards/l10n_fr_account_vat_return_reimbursement.py:0 #, python-format msgid "Credit VAT reimbursement of %d € submitted." -msgstr "Soumission d'une demande de remboursement de crédit de TVA de %d €." +msgstr "Envoi d'une demande de remboursement de crédit de TVA de %d €." #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return_reimbursement__company_currency_id @@ -524,22 +582,13 @@ msgstr "Régime de TVA actuel" msgid "Debit" msgstr "Débit" -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__deductible_vat_asset -msgid "Deductible VAT Amount Asset" -msgstr "Montant de TVA déductible sur immobilisation" - -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__deductible_vat_other -msgid "Deductible VAT Amount Other" -msgstr "Autre montant de TVA déductible" - #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_account__display_name #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_chart_template__display_name #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_fiscal_position__display_name #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_fiscal_position_template__display_name #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_move__display_name +#: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_move_line__display_name #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_partial_reconcile__display_name #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_tax__display_name #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_box__display_name @@ -564,40 +613,31 @@ msgstr "Type d'affichage" #: model_terms:ir.ui.view,arch_db:l10n_fr_account_vat_return.l10n_fr_account_vat_return_form msgid "" "Do you confirm that you have validated the VAT return on impots.gouv.fr?" -msgstr "" -"Est-ce que vous confirmez avoir bien validé le formulaire de TVA sur impots." -"gouv.fr ?" +msgstr "Avez-vous bien validé le formulaire de TVA sur impots.gouv.fr ?" #. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__due_vat -msgid "Due VAT Amount" -msgstr "Montant de TVA due" +#: model_terms:ir.ui.view,arch_db:l10n_fr_account_vat_return.l10n_fr_account_vat_return_form +msgid "Do you confirm the removal of the credit VAT reimbursement?" +msgstr "" +"Confirmez-vous la suppression de la demande de remboursement du crédit TVA ?" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_box__due_vat_base_box_id -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__due_vat_base msgid "Due VAT Base" msgstr "Base de TVA due" -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__due_vat_intracom_product -msgid "Due VAT Intracom Products" -msgstr "TVA due intracom - Produits" - -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__due_vat_monaco -msgid "Due VAT Monaco" -msgstr "TVA due Monaco" - #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 #, python-format msgid "" -"Due VAT box '%s' has print Y %d whereas Base Due VAT box '%s' has print Y " -"%d. They should be on the same line." +"Due VAT box '%(due_vat_box)s' has print Y %(due_vat_box_print_y)s whereas " +"Base Due VAT box '%(due_vat_base_box)s' has print Y " +"%(due_vat_base_box_print_y)s. They should be on the same line." msgstr "" -"La case de TVA due '%s' a la coordonnée Y %d alors que la case de base de " -"TVA '%s' a la coordonnée Y %d. Elles devraient être sur la même ligne." +"La case de TVA due '%(due_vat_box)s' a une coordonnée d'impression Y " +"%(due_vat_box_print_y)s tandis que la case de la base de TVA due " +"'%(due_vat_base_box)s' a une coordonnée d'impression Y " +"%(due_vat_base_box_print_y)s. Ils devraient être sur la même ligne." #. module: l10n_fr_account_vat_return #: model_terms:ir.ui.view,arch_db:l10n_fr_account_vat_return.l10n_fr_account_vat_box_form @@ -620,7 +660,7 @@ msgstr "Type EDI" #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "EDI type not supported for box '%s'." -msgstr "Le type EDI n'est pas supportée pour la case '%s'." +msgstr "Le type EDI de la case '%s' n'est pas supporté." #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__end_date @@ -628,19 +668,24 @@ msgid "End Date" msgstr "Date de fin" #. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__end_total_debit -msgid "End Total Credit" -msgstr "Total crédit final" +#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_return_line_log__compute_type__balance +msgid "Ending Balance" +msgstr "Solde" #. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__end_total_credit -msgid "End Total Debit" -msgstr "Total débit final" +#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_return_line_log__compute_type__balance_ratio +msgid "Ending Balance x Ratio" +msgstr "Solde x ratio" #. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_return_line_log__compute_type__balance -msgid "Ending Balance" -msgstr "Solde" +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#, python-format +msgid "" +"Error in the generation of box '%s': it has an accounting method, so it " +"cannot have any adjustment line." +msgstr "" +"Erreur dans la génération de la case \"%s\" : elle a une méthode comptable, " +"elle ne peut donc pas avoir de ligne d'ajustement." #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 @@ -700,12 +745,12 @@ msgstr "Abonnés (Canaux)" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__message_partner_ids msgid "Followers (Partners)" -msgstr "Abonnés (Contacts)" +msgstr "Abonnés (partenaires)" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,help:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__activity_type_icon msgid "Font awesome icon e.g. fa-tasks" -msgstr "Icône \"Font awesome\", par exemple \"fa-tasks\"" +msgstr "Îcone font-awesome, par exemple fa-task" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_box__form_code @@ -760,6 +805,7 @@ msgstr "Code comptable générique" #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_fiscal_position__id #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_fiscal_position_template__id #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_move__id +#: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_move_line__id #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_partial_reconcile__id #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_tax__id #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_box__id @@ -776,24 +822,23 @@ msgstr "ID" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__activity_exception_icon msgid "Icon" -msgstr "Icône" +msgstr "Îcone" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,help:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__activity_exception_icon msgid "Icon to indicate an exception activity." -msgstr "" +msgstr "Îcone pour indiquer une activité-alerte" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,help:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__message_needaction #: model:ir.model.fields,help:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__message_unread msgid "If checked, new messages require your attention." -msgstr "" +msgstr "Si activé, de nouveaux messages nécessitent votre attention." #. module: l10n_fr_account_vat_return #: model:ir.model.fields,help:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__message_has_error -#: model:ir.model.fields,help:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__message_has_sms_error msgid "If checked, some messages have a delivery error." -msgstr "" +msgstr "Si activé, des messages ont une erreur d'envoi." #. module: l10n_fr_account_vat_return #: model:ir.model.fields,help:l10n_fr_account_vat_return.field_l10n_fr_account_vat_box__account_id @@ -806,15 +851,6 @@ msgstr "" "comptable générique. Si renseigné, Odoo ignorera le code comptable générique " "et l'utilisera comme compte comptable." -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields,help:l10n_fr_account_vat_return.field_l10n_fr_account_vat_box__negative_switch_box_id -msgid "" -"If the amount of this box is negative, its lines will be transfered to " -"another box with a sign inversion." -msgstr "" -"Si le montant de cette case est négatif, ses lignes seront transférées à une " -"autre case avec une inversion du signe." - #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/wizards/l10n_fr_vat_exigibility_update.py:0 #, python-format @@ -822,7 +858,7 @@ msgid "" "If you don't want to change the VAT Exigibility of company '%s', click on " "the Cancel button." msgstr "" -"Si vous ne souhaitez pas modifier le régime de TVA de la société '%s', " +"Si vous ne souhaitez pas changer le régime de TVA de la société '%s', " "cliquez sur le bouton Annuler." #. module: l10n_fr_account_vat_return @@ -830,22 +866,10 @@ msgstr "" msgid "Integer Value" msgstr "Entier" -#. module: l10n_fr_account_vat_return -#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 -#, python-format -msgid "Invoice/refund is unpaid, Unpaid VAT amount %s" -msgstr "La facture/avoir est impayée, Montant de TVA impayé %s" - -#. module: l10n_fr_account_vat_return -#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 -#, python-format -msgid "Invoice/refund was unpaid on %s, Unpaid VAT amount %s" -msgstr "La facture/avoir était impayée au %s, Montant de TVA impayé %s" - #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__message_is_follower msgid "Is Follower" -msgstr "" +msgstr "Est abonné" #. module: l10n_fr_account_vat_return #: model:ir.model,name:l10n_fr_account_vat_return.model_account_move @@ -853,16 +877,25 @@ msgstr "" msgid "Journal Entry" msgstr "Pièce comptable" +#. module: l10n_fr_account_vat_return +#: model:ir.model,name:l10n_fr_account_vat_return.model_account_move_line +msgid "Journal Item" +msgstr "Écriture comptable" + #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "" -"Journal entry '%s' uses an intracom autoliquidation due VAT account but is " -"not a supplier invoice/refund. This scenario is not supported." +"Journal entry '%(move)s' is dated before (or on) %(end_date)s and has an " +"unreconciled line with an %(autoliq_type)s autoliquidation due VAT account, " +"but it is not a supplier invoice/refund. That line with the intracom " +"autoliquidation due VAT account should be reconciled." msgstr "" -"La pièce comptable '%s' utilise un compte pour la taxe d'autoliquidation " -"intracom mais elle n'est pas de type facture/avoir fournisseur. Ce scénario " -"n'est pas supporté." +"La pièce comptable \"%(move)s\" est datée d'avant le (ou du jour) " +"%(end_date)s et comporte une ligne non lettrée avec un compte de TVA due à " +"l'autoliquidation %(autoliq_type)s, mais il ne s'agit pas d'une facture/" +"avoir fournisseur. Cette ligne avec le compte de TVA due à l'autoliquidation " +"intracom doit être lettrée." #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_res_company__fr_vat_journal_id @@ -890,6 +923,7 @@ msgstr "Libellé" #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_fiscal_position____last_update #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_fiscal_position_template____last_update #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_move____last_update +#: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_move_line____last_update #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_partial_reconcile____last_update #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_tax____last_update #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_box____last_update @@ -911,7 +945,7 @@ msgstr "Dernière modification le" #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return_reimbursement__write_uid #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_vat_exigibility_update__write_uid msgid "Last Updated by" -msgstr "Dernière modification par" +msgstr "Dernière mise à jour par" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_box__write_date @@ -921,7 +955,7 @@ msgstr "Dernière modification par" #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return_reimbursement__write_date #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_vat_exigibility_update__write_date msgid "Last Updated on" -msgstr "Dernière modification le" +msgstr "Dernière mise à jour le" #. module: l10n_fr_account_vat_return #: model_terms:ir.ui.view,arch_db:l10n_fr_account_vat_return.l10n_fr_account_vat_return_form @@ -931,11 +965,13 @@ msgstr "Lignes" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__message_main_attachment_id msgid "Main Attachment" -msgstr "" +msgstr "Pièce jointe principale" #. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__manual +#: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_box__manual +#: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return_line__box_manual #: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_return_line_log__compute_type__manual +#: model_terms:ir.ui.view,arch_db:l10n_fr_account_vat_return.l10n_fr_account_vat_box_search msgid "Manual" msgstr "Manuel" @@ -950,22 +986,29 @@ msgstr "Lignes manuelles" msgid "Mark as sent" msgstr "Marquer comme envoyé" +#. module: l10n_fr_account_vat_return +#: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_box__meaning_id +#: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return_line__box_meaning_id +msgid "Meaningful ID" +msgstr "ID significatif" + #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__message_has_error msgid "Message Delivery error" -msgstr "" +msgstr "Erreur d'envoi du message" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__message_ids msgid "Messages" -msgstr "" +msgstr "Messages" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 #, python-format msgid "Missing Due VAT Base on box '%s' which is a Due VAT box." msgstr "" -"Base de TVA due manquante sur la case '%s' qui est une case de TVA due." +"Base de TVA due manquante au niveau de la case '%s' qui est une case de TVA " +"due." #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 @@ -979,12 +1022,6 @@ msgstr "Table de correspondance des comptes vide sur la position fiscale '%s'." msgid "Missing print caracteristics on box '%s'." msgstr "Paramètres d'impression manquants pour la case '%s'." -#. module: l10n_fr_account_vat_return -#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 -#, python-format -msgid "Monaco customer '%s', VAT amount %s" -msgstr "Client monégasque '%s', Montant de TVA %s" - #. module: l10n_fr_account_vat_return #: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__edi_type__moa msgid "Monetary (MOA)" @@ -999,7 +1036,7 @@ msgstr "Mensuel" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__my_activity_date_deadline msgid "My Activity Deadline" -msgstr "" +msgstr "Date butoir de l'activité" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_box__nref_code @@ -1009,7 +1046,7 @@ msgstr "Code N-REF" #. module: l10n_fr_account_vat_return #: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__edi_type__nad msgid "Name and address (NAD)" -msgstr "" +msgstr "Nom et adresse (NAD)" #. module: l10n_fr_account_vat_return #: model_terms:ir.ui.view,arch_db:l10n_fr_account_vat_return.l10n_fr_account_vat_box_search @@ -1017,14 +1054,10 @@ msgid "Name or Code" msgstr "Nom ou Code" #. module: l10n_fr_account_vat_return -#: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return_line__negative_switch -msgid "Negative Switch" -msgstr "Basculement négatif" - -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_box__negative_switch_box_id -msgid "Negative Switch Box" -msgstr "Case de basculement si négatif" +#: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_box__negative +#: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return_line__box_negative +msgid "Negative" +msgstr "Négatif" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_vat_exigibility_update__new_fr_vat_exigibility @@ -1034,83 +1067,73 @@ msgstr "Nouveau régime de TVA" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__activity_date_deadline msgid "Next Activity Deadline" -msgstr "" +msgstr "Date butoir de l'activité suivante" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__activity_summary msgid "Next Activity Summary" -msgstr "" +msgstr "Résumé de l'activité suivante" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__activity_type_id msgid "Next Activity Type" -msgstr "" - -#. module: l10n_fr_account_vat_return -#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 -#, python-format -msgid "No Due VAT box found for VAT rate %.2f%%." -msgstr "Aucune case de TVA due trouvée pour le taux de TVA %.2f%%." +msgstr "Type de l'activité suivante" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "" "No account mapping on fiscal position %s. If this fiscal position is not only used for " -"purchase but also for sale, you must configure an account mapping on revenue " -"accounts." +"position data-oe-id=%(fiscal_position_id)d>%(fiscal_position)s. If this " +"fiscal position is not only used for purchase but also for sale, you must " +"configure an account mapping on revenue accounts." msgstr "" +"Table de correspondance des comptes vide sur la position fiscale <a " +"href=# data-oe-model=account.fiscal.position data-oe-" +"id=%(fiscal_position_id)d>%(fiscal_position)s . Si cette position " +"fiscale n'est pas seulement utilisée pour l'achat mais aussi pour la vente, " +"vous devez configurer une table de correspondance des comptes sur les " +"comptes de produits." #. module: l10n_fr_account_vat_return #: model_terms:ir.ui.view,arch_db:l10n_fr_account_vat_return.l10n_fr_account_vat_box_search msgid "No sections" msgstr "Aucune section" -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__no_push_total_credit -msgid "Not Pushed Total Credit" -msgstr "Total crédit non poussé" - -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__no_push_total_debit -msgid "Not Pushed Total Debit" -msgstr "Total débit non poussé" - #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return_line_log__note msgid "Note" -msgstr "" +msgstr "Note" #. module: l10n_fr_account_vat_return #: model_terms:ir.ui.view,arch_db:l10n_fr_account_vat_return.l10n_fr_account_vat_return_line_log_form msgid "Notes" -msgstr "" +msgstr "Notes" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__message_needaction_counter msgid "Number of Actions" -msgstr "" +msgstr "Nombre d'actions" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__message_has_error_counter msgid "Number of errors" -msgstr "" +msgstr "Nombre d'erreurs" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,help:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__message_needaction_counter msgid "Number of messages which requires an action" -msgstr "" +msgstr "Nombre de messages nécessitant une action" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,help:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__message_has_error_counter msgid "Number of messages with delivery error" -msgstr "" +msgstr "Nombre de messages en échec d'envoi" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,help:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__message_unread_counter msgid "Number of unread messages" -msgstr "" +msgstr "Nombre de messages non lus" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 @@ -1122,10 +1145,20 @@ msgstr "" "Sur la case '%s', le code comptable n'est pas renseigné. Vous pouvez " "spécifier un compte sur cette case." +#. module: l10n_fr_account_vat_return +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#, python-format +msgid "" +"On the autoliquidation tax '%(tax)s', the distribution for invoices should " +"have only one line -100% of tax, and not %(count)s." +msgstr "" +"Sur la taxe d'autoliquidation \"%(tax)s\", la répartition des factures ne " +"devrait comporter qu'une seule ligne -100% de la taxe, et non %(count)s." + #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_box__print_page msgid "Page" -msgstr "" +msgstr "Page" #. module: l10n_fr_account_vat_return #: model:ir.model,name:l10n_fr_account_vat_return.model_account_partial_reconcile @@ -1150,7 +1183,7 @@ msgstr "Période" #. module: l10n_fr_account_vat_return #: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_return_line_log__compute_type__period_balance msgid "Period Balance" -msgstr "Balance sur la période" +msgstr "Variation sur la période" #. module: l10n_fr_account_vat_return #: model_terms:ir.ui.view,arch_db:l10n_fr_account_vat_return.l10n_fr_account_vat_return_form @@ -1178,15 +1211,6 @@ msgstr "Position X pour l'impression" msgid "Print Position Y" msgstr "Position Y pour l'impression" -#. module: l10n_fr_account_vat_return -#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 -#, python-format -msgid "" -"Problem in the configuration of the due VAT boxes. This should never happen." -msgstr "" -"Problème dans la configuration des cases de TVA due. Cela ne devrait jamais " -"arriver." - #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_box__push_box_id #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return_line__box_push_box_id @@ -1226,13 +1250,17 @@ msgid "Reimbursement Amount" msgstr "Montant de remboursement" #. module: l10n_fr_account_vat_return -#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 -#: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__reimbursement_comment_dgfip #: model_terms:ir.ui.view,arch_db:l10n_fr_account_vat_return.l10n_fr_account_vat_return_form -#, python-format msgid "Reimbursement Comment for DGFIP" msgstr "Commentaire remboursement pour la DGFIP" +#. module: l10n_fr_account_vat_return +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__reimbursement_comment_dgfip +#, python-format +msgid "Reimbursement Comment for DGFiP" +msgstr "Commentaire remboursement pour la DGFiP" + #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__reimbursement_min_amount #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return_reimbursement__min_amount @@ -1258,18 +1286,13 @@ msgstr "Rapport" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__activity_user_id msgid "Responsible User" -msgstr "" +msgstr "Utilisateur responsable" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__line_ids msgid "Return Lines" msgstr "Lignes de déclaration" -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__message_has_sms_error -msgid "SMS Delivery error" -msgstr "" - #. module: l10n_fr_account_vat_return #: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__print_page__2 msgid "Second Page" @@ -1278,7 +1301,7 @@ msgstr "Deuxième page" #. module: l10n_fr_account_vat_return #: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__display_type__section msgid "Section" -msgstr "" +msgstr "Section" #. module: l10n_fr_account_vat_return #: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_return__state__sent @@ -1307,11 +1330,6 @@ msgstr "Depuis une date particulière" msgid "Source Invoice" msgstr "Facture d'origine" -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return_line_log__origin_move_partner_id -msgid "Source Invoice Partner" -msgstr "" - #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__start_date msgid "Start Date" @@ -1332,6 +1350,10 @@ msgid "" "Today: Activity date is today\n" "Planned: Future activities." msgstr "" +"Statut basé sur les activités\n" +"En retard : La date d'échéance est déjà dépassée\n" +"Aujourd'hui : La date de l'activité est aujourd'hui\n" +"Planifié : Activités futures." #. module: l10n_fr_account_vat_return #: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__display_type__sub_section @@ -1347,11 +1369,13 @@ msgstr "Taxe" #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "" -"Tax '%s' has an account for invoice (%s) which is different from the account " -"for refund (%s). This scenario not supported." +"Tax '%(tax)s' has an account for invoice (%(invoice_account)s) which is " +"different from the account for refund (%(refund_account)s). This scenario " +"not supported." msgstr "" -"La taxe '%s' a un compte pour les factures (%s) différent du compte pour les " -"avoirs (%s). Ce scénario n'est pas supporté." +"La taxe '%(tax)s' a un compte pour les factures (%(invoice_account)s) qui " +"est différent du compte pour les avoirs (%(refund_account)s). Ce scénario " +"n'est pas supporté." #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 @@ -1373,26 +1397,6 @@ msgstr "" "La taxe '%s' ne devrait avoir qu'une seule ligne de distribution pour les " "factures configurée avec un compte comptable et avec '100%% de la taxe'." -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__taxed_op_autoliq_extracom -msgid "Taxed Operations - Extracom Autoliquidation" -msgstr "Opérations taxées - Autoliquidation extracom" - -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__taxed_op_france -msgid "Taxed Operations - France" -msgstr "Opérations taxées - France" - -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__taxed_op_autoliq_intracom_product -msgid "Taxed Operations - Intracom Autoliquidation Products" -msgstr "Opérations taxées - Autoliquidation intracom de biens" - -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__taxed_op_autoliq_intracom_service -msgid "Taxed Operations - Intracom Autoliquidation Services" -msgstr "Opérations taxées - Autoliquidation intracom de services" - #. module: l10n_fr_account_vat_return #: model:ir.model,name:l10n_fr_account_vat_return.model_account_fiscal_position_template msgid "Template for Fiscal Position" @@ -1403,16 +1407,6 @@ msgstr "Modèle de position fiscale" msgid "Text" msgstr "Texte" -#. module: l10n_fr_account_vat_return -#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 -#, python-format -msgid "" -"The Due VAT box '%s' has '%s' configured as Due VAT Base box, but it has a " -"different type." -msgstr "" -"La case de TVA due '%s' a pour case de base de TVA due '%s' mais elle a un " -"type différent." - #. module: l10n_fr_account_vat_return #: model:ir.model.constraint,message:l10n_fr_account_vat_return.constraint_l10n_fr_account_vat_box_due_vat_rate_positive msgid "The Due VAT rate must be positive." @@ -1443,34 +1437,27 @@ msgstr "La pièce comptable de cette déclaration de TVA a été supprimée." #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "" -"The balance of account '%s' is %s. In France, it should be a integer amount." +"The balance of account '%(account)s' is %(balance)s. In France, it should be " +"a integer amount." msgstr "" -"Le solde du compte '%s' est de %s. En France, ce devrait être un nombre " -"entier." +"Le solde du compte '%(account)s' est %(balance)s. En France, il devrait " +"s'agir d'un montant entier." #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format -msgid "The balance of account '%s' is %s. It should always be positive." -msgstr "Le solde du compte '%s' est %s. Ce devrait être un montant positif." - -#. module: l10n_fr_account_vat_return -#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 -#, python-format -msgid "The box '%s' has a negative switch box but it's EDI Type is not 'MOA'." +msgid "" +"The balance of account '%(account)s' is %(balance)s. It should always be " +"positive." msgstr "" -"La case '%s' a une case de basculement si négatif mais son type EDI n'est " -"pas 'MOA'." +"Le solde du compte \"%(account)s\" est %(balance)s. Il doit toujours être " +"positif." #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 #, python-format -msgid "" -"The box '%s' is the negative switch box of '%s' but it's EDI Type is not " -"'MOA'." -msgstr "" -"La case '%s' est la case de basculement si négatif de la case '%s' mais son " -"type EDI n'est pas 'MOA'." +msgid "The box '%s' is a negative box but its EDI Type is not 'MOA'." +msgstr "La case '%s' est une case négative mais son type EDI n'est pas 'MOA'." #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 @@ -1518,20 +1505,11 @@ msgstr "La date de l'évênement doit être dans le passé." #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "" -"The field '%s' is too long: it has %d caracters whereas the maximum is %d " -"caracters." +"The field '%(field_label)s' is too long: it has %(count_char)d caracters " +"whereas the maximum is %(max_char)d caracters." msgstr "" -"Le champ '%s' est trop long : il compte %d caractères alors que le maximum " -"est de %d caractères." - -#. module: l10n_fr_account_vat_return -#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 -#, python-format -msgid "" -"The field 'Due VAT Base' is set for box '%s' which is not a Due VAT box." -msgstr "" -"La case '%s' a une valeur pour le champ 'Base de TVA due' alors que ce n'est " -"pas une case de TVA due." +"Le champ '%(field_label)s' est trop long : il contient %(count_char)d " +"caractères alors que le maximum est %(max_char)d caractères." #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 @@ -1557,20 +1535,21 @@ msgstr "" #: code:addons/l10n_fr_account_vat_return/wizards/l10n_fr_account_vat_return_reimbursement.py:0 #, python-format msgid "" -"The reimbursement amount (%d €) cannot be superior to the amount of the VAT " -"credit (%d €)." +"The reimbursement amount (%(amount)d €) cannot be superior to the amount of " +"the VAT credit (%(vat_credit_amount)d €)." msgstr "" -"Le montant du remboursement (%d €) ne peut pas être supérieur au montant du " -"crédit de TVA (%d €)." +"Le montant du remboursement (%(amount)d €) ne peut être supérieur au montant " +"du crédit de TVA (%(vat_credit_amount)d €)." #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/wizards/l10n_fr_account_vat_return_reimbursement.py:0 #, python-format msgid "" -"The reimbursement amount (%d €) cannot be under the minimum amount (%d €)." +"The reimbursement amount (%(amount)d €) cannot be under the minimum amount " +"(%(min_amount)d €)." msgstr "" -"Le montant du remboursement (%d €) ne peut pas être inférieur au montant " -"minimum (%d €)." +"Le montant du remboursement (%(amount)d €) ne peut être inférieur au montant " +"minimum (%(min_amount)d €)." #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 @@ -1593,24 +1572,36 @@ msgstr "La date de début (%s) doit être le premier jour d'un mois." #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format -msgid "The value of line '%s' (%d) is negative." -msgstr "La valeur de la ligne '%s' (%d) est négative." +msgid "The value of line '%(box)s' (%(value)d) is negative." +msgstr "La valeur de la ligne \"%(box)s\" (%(value)d) est négative." #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format -msgid "The value of line '%s' (%d) is over 100." -msgstr "La valeur de la ligne '%s' (%d) est supérieure à 100." +msgid "The value of line '%(box)s' (%(value)d) is over 100." +msgstr "La valeur de la ligne \"%(box)s\" (%(value)d) est supérieure à 100." + +#. module: l10n_fr_account_vat_return +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#, python-format +msgid "" +"There are %(account_count)s accounts whose code start with " +"%(account_prefix)s in company '%(company)s' : %(account_list)s. Odoo expects " +"to have only one." +msgstr "" +"Il y a %(account_count)s comptes dont le code commence par " +"%(account_prefix)s dans la société '%(company)s' : %(account_list)s. Odoo " +"s'attend à ce qu'il n'y en ait qu'un seul." #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "" -"There are %d accounts %s %s in the chart of account of company '%s'. This " -"scenario is not supported." +"There are %(count)d accounts %(account_code)s %(account_name)s in the chart " +"of account of company '%(company)s'. This scenario is not supported." msgstr "" -"Il y a %d comptes %s %s dans le plan comptable de la société '%s'. Ce " -"scénario n'est pas supporté." +"Il y a %(count)d comptes %(account_code)s %(account_name)s dans le plan " +"comptable de la société '%(company)s'. Ce scénario n'est pas supporté." #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 @@ -1625,6 +1616,19 @@ msgstr "" "différente de l'implémentation native qui est basée sur un paramètre de " "configuration de la taxe." +#. module: l10n_fr_account_vat_return +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#, python-format +msgid "" +"There is a difference of %(diff)s € between taxed operation boxes " +"%(taxed_op_boxes)s and due VAT base boxes %(due_vat_boxes)s. The difference " +"should be null or just a few euros. This should never happen." +msgstr "" +"Il y a une différence de %(diff)s € entre les cases des opérations taxées " +"%(taxed_op_boxes)s et les cases des bases de TVA due %(due_vat_boxes)s. La " +"différence devrait être nulle ou n'être que de quelques euros. Cela ne " +"devrait jamais se produire." + #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format @@ -1634,6 +1638,10 @@ msgid "" "system for autoliquidation which was used by Odoo up to version 12.0 " "included." msgstr "" +"Il y a un problème sur la facture/avoir fournisseur intracommnautaire '%s' : " +"vérifiez que les lignes de la facture ont une seule taxe d'autoliquidation, " +"et non pas l'ancien système de double taxe d'autoliquidation qui était " +"utilisé par Odoo jusqu'à la version 12.0 incluse." #. module: l10n_fr_account_vat_return #: model:ir.model.constraint,message:l10n_fr_account_vat_return.constraint_l10n_fr_account_vat_box_unique_page_x_y @@ -1643,17 +1651,22 @@ msgstr "Il y a déjà une case à cette position !" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format -msgid "There is no account %s %s in the chart of account of company '%s'." +msgid "" +"There is no account %(account_code)s %(account_name)s in the chart of " +"account of company '%(company)s'." msgstr "" -"Il n'y a pas de compte %s %s dans le plan comptable de la société '%s'." +"Il n'y a pas de compte %(account_code)s %(account_name)s dans le plan " +"comptable de la société '%(company)s'." #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "" -"There is/are %d draft journal entry/entries dated before %s. You should post " -"this/these journal entry/entries or delete it/them." +"There is/are %(count)d draft journal entry/entries dated before %(date)s. " +"You should post it/them or delete it/them." msgstr "" +"Il y a %(count)d pièces comptables en brouillon datées d'avant %(date)s. " +"Vous devez la/les comptabiliser ou la/les supprimer." #. module: l10n_fr_account_vat_return #: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__print_page__3 @@ -1697,29 +1710,21 @@ msgstr "Ce champ est utilisé par le module de déclaration de TVA française" msgid "This line already exists!" msgstr "Cette ligne existe déjà !" +#. module: l10n_fr_account_vat_return +#: model:ir.model.constraint,message:l10n_fr_account_vat_return.constraint_l10n_fr_account_vat_box_meaning_id_unique +msgid "This meaningful ID already exists." +msgstr "Cet identifiant significatif existe déjà." + #. module: l10n_fr_account_vat_return #: model:ir.model.constraint,message:l10n_fr_account_vat_return.constraint_l10n_fr_account_vat_box_sequence_unique msgid "This sequence already exists." msgstr "Cette séquence existe déjà." -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__deductible_vat_total -msgid "Total Deductible VAT" -msgstr "Total de TVA déductible" - -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__due_vat_total -msgid "Total Due VAT" -msgstr "Total de TVA due" - #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_fiscal_position__fr_vat_type #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_fiscal_position_template__fr_vat_type -#: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_box__box_type -#: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return_line__box_box_type -#: model_terms:ir.ui.view,arch_db:l10n_fr_account_vat_return.l10n_fr_account_vat_box_search msgid "Type" -msgstr "" +msgstr "Type" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 @@ -1733,54 +1738,33 @@ msgstr "" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,help:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__activity_exception_decoration msgid "Type of the exception activity on record." -msgstr "" +msgstr "Type de l'activité-alerte sur l'enregistrement." #. module: l10n_fr_account_vat_return #: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_return_line_log__compute_type__unpaid_vat_on_payment msgid "Unpaid VAT on Payment" -msgstr "TVA sur encaissement non payé" +msgstr "TVA sur encaissement impayée" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__message_unread msgid "Unread Messages" -msgstr "" +msgstr "Messages non lus" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__message_unread_counter msgid "Unread Messages Counter" -msgstr "" - -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__untaxed_op_extracom -msgid "Untaxed Operations - Extracom" -msgstr "Opérations non taxées - Extracom" - -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__untaxed_op_france_exo -msgid "Untaxed Operations - France Exonerated" -msgstr "Opérations non taxées - France exonéré" - -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__untaxed_op_intracom_b2b -msgid "Untaxed Operations - Intracom B2B" -msgstr "Opérations non taxées - Intracom B2B" - -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__untaxed_op_intracom_b2c -msgid "Untaxed Operations - Intracom B2C" -msgstr "Opérations non taxées - Intracom B2C" +msgstr "Compteur de messages non lus" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_vat_exigibility_update__update_type #: model_terms:ir.ui.view,arch_db:l10n_fr_account_vat_return.l10n_fr_vat_exigibility_update_form -#: model_terms:ir.ui.view,arch_db:l10n_fr_account_vat_return.res_config_settings_view_form msgid "Update" msgstr "Mettre à jour" #. module: l10n_fr_account_vat_return #: model:ir.actions.act_window,name:l10n_fr_account_vat_return.l10n_fr_vat_exigibility_update_action msgid "Update Company VAT Exigibility" -msgstr "Mise à jour du régime de TVA de la société" +msgstr "Changement du régime de TVA de la société" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_res_company__fr_vat_update_lock_dates @@ -1794,30 +1778,6 @@ msgstr "" msgid "Update Since" msgstr "Mise à jour depuis" -#. module: l10n_fr_account_vat_return -#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 -#, python-format -msgid "VAT Amount %s, Rate %.2f%%, Base %s" -msgstr "Montant de TVA %s, Taux %.2f%%, Base %s" - -#. module: l10n_fr_account_vat_return -#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 -#, python-format -msgid "" -"VAT Amount %s, Rate %.2f%%, Base %s, Product Ratio %.2f%%, Product Base %s" -msgstr "" -"Montant de TVA %s, Taux %.2f%%, Base %s, Ratio produit %.2f%%, Base produit " -"%s" - -#. module: l10n_fr_account_vat_return -#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 -#, python-format -msgid "" -"VAT Amount %s, Rate %.2f%%, Base %s, Service Ratio %.2f%%, Service Base %s" -msgstr "" -"Montant de TVA %s, Taux %.2f%%, Base %s, Ratio service %.2f%%, Base service " -"%s" - #. module: l10n_fr_account_vat_return #: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_return_line_log__compute_type__rate msgid "VAT Amount / VAT Rate" @@ -1847,11 +1807,6 @@ msgstr "Périodicité de la TVA" msgid "VAT Rate x100" msgstr "Taux de TVA x100" -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__vat_reimbursement -msgid "VAT Reimbursement" -msgstr "Remboursement de TVA" - #. module: l10n_fr_account_vat_return #: model:ir.actions.act_window,name:l10n_fr_account_vat_return.l10n_fr_account_vat_return_action #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return_line__parent_id @@ -1874,14 +1829,29 @@ msgstr "Ligne de déclaration de TVA française (Ligne de CA3)" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format -msgid "VAT amount %s, Product Ratio %.2f%%, VAT Product Amount %s" -msgstr "Montant de TVA %s, Ratio biens %.2f%%, Montant de TVA sur les biens %s" +msgid "" +"VAT amount %(total_vat_amount)s, Product ratio %(ratio).2f%% → Product VAT " +"amount %(vat_amount)s" +msgstr "" +"Montant de TVA %(total_vat_amount)s, Ratio biens %(ratio).2f%% → " +"Montant de TVA sur les biens %(vat_amount)s" + +#. module: l10n_fr_account_vat_return +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#, python-format +msgid "" +"VAT amount %(total_vat_amount)s, Service ratio %(ratio).2f%% → Service VAT " +"amount %(vat_amount)s" +msgstr "" +"Montant de TVA %(total_vat_amount)s, Ratio prestations de service %(ratio).2f%% → " +"Montant de TVA sur prestations de service %(vat_amount)s" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format -msgid "VAT amount %s, Rate %.2f%%, Base %s" -msgstr "Montant de TVA %s, Taux %.2f%%, Base %s" +msgid "VAT amount %(vat_amount)s, Rate %(rate).2f%% → Base %(base_amount)s" +msgstr "" +"Montant de TVA %(vat_amount)s, Taux %(rate).2f%% → Base %(base_amount)s" #. module: l10n_fr_account_vat_return #: model_terms:ir.ui.view,arch_db:l10n_fr_account_vat_return.view_invoice_tree @@ -1919,12 +1889,12 @@ msgstr "Valeur avant arrondi" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__website_message_ids msgid "Website Messages" -msgstr "" +msgstr "Messages du site Web" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,help:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__website_message_ids msgid "Website communication history" -msgstr "" +msgstr "Historique des échanges sur le site Web" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 @@ -1945,68 +1915,3 @@ msgstr "Mauvaise valeur pour le nouveau régime de TVA." #: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__res_company__fr_vat_periodicity__12 msgid "Yearly" msgstr "Annuelle" - -#, python-format -#~ msgid "" -#~ "Account '%s' is a due VAT auto-liquidation account. So it should be empty " -#~ "at the start of the VAT period, but the balance on the last day of the " -#~ "previous period is %s." -#~ msgstr "" -#~ "Le compte '%s' est un compte de liquidation automatique de la TVA due. Il " -#~ "devrait donc être vide au début de la période de TVA, mais le solde du " -#~ "dernier jour de la période précédente est %s." - -#, python-format -#~ msgid "Bad configuration on regular purchase tax '%s'." -#~ msgstr "Mauvaise configuration pour la taxe d'achat normale '%s'." - -#~ msgid "Generate Selenium File" -#~ msgstr "Générer le fichier Selenium" - -#, python-format -#~ msgid "Missing NREF code on box '%s'." -#~ msgstr "Code NREF manquant sur la case '%s'." - -#, python-format -#~ msgid "Missing SIRET on company '%s'." -#~ msgstr "SIRET manquant sur la société '%s'." - -#, python-format -#~ msgid "" -#~ "Only MOA fields can be exported to Selenium for the moment. It is not the " -#~ "case of box '%s'." -#~ msgstr "" -#~ "Seuls les champs MOA peuvent être exportés vers Selenium pour le moment. " -#~ "Ce n'est pas le cas pour la case '%s'." - -#~ msgid "Selenium Attachment" -#~ msgstr "Pièce jointe Selenium" - -#~ msgid "Selenium File" -#~ msgstr "Fichier Selenium" - -#~ msgid "Selenium Filename" -#~ msgstr "Nom de fichier Selenium" - -#, python-format -#~ msgid "Selenium IDE File" -#~ msgstr "Fichier Selenium IDE" - -#, python-format -#~ msgid "Selenium cannot work when there are 3310-A lines." -#~ msgstr "Selenium ne fonctionne pas quand il y a des lignes 3310-A." - -#, python-format -#~ msgid "Selenium export only support monthly CA3 returns for the moment." -#~ msgstr "" -#~ "L'export Selenium ne fonctionne que pour les déclarations mensuelles pour " -#~ "le moment." - -#, python-format -#~ msgid "" -#~ "There is/are %d unposted journal entry/entries dated before %s. You " -#~ "should post this/these journal entry/entries or delete it/them." -#~ msgstr "" -#~ "Il y a %d pièce(s) comptable(s) non comptabilisée(s) datée(s) d'avant le " -#~ "%s. Vous devriez comptabiliser cette/ces pièce(s) comptable(s) ou la/les " -#~ "supprimer." diff --git a/l10n_fr_account_vat_return/i18n/l10n_fr_account_vat_return.pot b/l10n_fr_account_vat_return/i18n/l10n_fr_account_vat_return.pot index 6b3407433..3d0977625 100644 --- a/l10n_fr_account_vat_return/i18n/l10n_fr_account_vat_return.pot +++ b/l10n_fr_account_vat_return/i18n/l10n_fr_account_vat_return.pot @@ -6,6 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 14.0\n" "Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-09 07:28+0000\n" +"PO-Revision-Date: 2023-09-09 07:28+0000\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -15,14 +17,47 @@ msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#, python-format +msgid "%(invoice)s (%(partner)s) is unpaid, Unpaid VAT amount %(amount)s" +msgstr "" + +#. module: l10n_fr_account_vat_return +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "" -"%d%% of the invoice/refund was unpaid on %s, VAT amount %s => Unpaid VAT " -"amount %s" +"%(invoice)s (%(partner)s) was unpaid on %(date)s, Unpaid VAT amount " +"%(amount)s" msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#, python-format +msgid "" +"%(invoice)s of customer %(partner)s from Monaco, VAT amount %(vat_amount)s" +msgstr "" + +#. module: l10n_fr_account_vat_return +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#, python-format +msgid "%(start_note)s, Rate %(rate).2f%% → Base %(base_amount)s" +msgstr "" + +#. module: l10n_fr_account_vat_return +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#, python-format +msgid "" +"%(unpaid_ratio)d%% of %(invoice)s (%(partner)s) was unpaid on %(date)s, VAT " +"amount %(total_vat_amount)s → Unpaid VAT amount %(unpaid_vat_amount)s" +msgstr "" + +#. module: l10n_fr_account_vat_return +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "%s (add)" msgstr "" @@ -44,20 +79,6 @@ msgstr "" msgid "A VAT return with the same start date already exists in this company!" msgstr "" -#. module: l10n_fr_account_vat_return -#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 -#, python-format -msgid "A regular sale " -msgstr "" - -#. module: l10n_fr_account_vat_return -#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 -#, python-format -msgid "" -"A single box with type '%s' should exists, but there are %d box(es) of that " -"type. This should never happen." -msgstr "" - #. module: l10n_fr_account_vat_return #: model:ir.model,name:l10n_fr_account_vat_return.model_account_account #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_box__account_id @@ -68,39 +89,45 @@ msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "" -"Account '%s' is an account for autoliquidation, so it's reconcile option " -"must be enabled." +"Account '%(account)s' is used as due VAT account on several auto-liquidation" +" taxes for different rates (%(rate1).2f%% and %(rate2).2f%%)." msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format -msgid "Account '%s' is present in the mapping of several fiscal positions." +msgid "" +"Account '%(account)s' is used for several kinds of deductible VAT taxes " +"(%(type1)s and %(type2)s)." msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "" -"Account '%s' is used as due VAT account on several auto-liquidation taxes " -"for different rates (%.2f%% and %.2f%%)." +"Account '%(account)s' is used on several sale VAT taxes for different rates " +"(%(rate1).2f%% and %(rate2).2f%%)." msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "" -"Account '%s' is used for several kinds of deductible VAT taxes (%s and %s)." +"Account '%s' is an account for autoliquidation, so it's reconcile option " +"must be enabled." msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format -msgid "" -"Account '%s' is used on several sale VAT taxes for different rates (%.2f%% " -"and %.2f%%)." +msgid "Account '%s' is present in the mapping of several fiscal positions." msgstr "" #. module: l10n_fr_account_vat_return @@ -108,6 +135,13 @@ msgstr "" msgid "Account Chart Template" msgstr "" +#. module: l10n_fr_account_vat_return +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#, python-format +msgid "Account is missing on manual line '%s'." +msgstr "" + #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_box__accounting_method #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return_line__box_accounting_method @@ -145,6 +179,21 @@ msgstr "" msgid "Activity Type Icon" msgstr "" +#. module: l10n_fr_account_vat_return +#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_return_line_log__compute_type__adjustment +msgid "Adjustment" +msgstr "" + +#. module: l10n_fr_account_vat_return +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#, python-format +msgid "" +"Adjustment to have sum of taxed operations boxes %(taxed_op_boxes)s = sum of" +" due VAT base boxes %(due_vat_boxes)s. Otherwise, DGFiP would reject the VAT" +" return." +msgstr "" + #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return_line_log__amount msgid "Amount" @@ -186,6 +235,7 @@ msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "" "Auto-liquidation tax '%s' is not present in the tax mapping of any fiscal " @@ -203,14 +253,31 @@ msgstr "" msgid "Back to Manual Lines" msgstr "" +#. module: l10n_fr_account_vat_return +#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_return_line_log__compute_type__base_from_balance +msgid "Base from Ending Balance" +msgstr "" + +#. module: l10n_fr_account_vat_return +#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_return_line_log__compute_type__base_from_balance_ratio +msgid "Base from Ending Balance x Ratio" +msgstr "" + +#. module: l10n_fr_account_vat_return +#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_return_line_log__compute_type__base_from_unpaid_vat_on_payment +msgid "Base from Unpaid VAT on Payment" +msgstr "" + #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/res_company.py:0 +#: code:addons/l10n_fr_account_vat_return/models/res_company.py:0 #, python-format msgid "Based on invoice" msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/res_company.py:0 +#: code:addons/l10n_fr_account_vat_return/models/res_company.py:0 #, python-format msgid "Based on payment" msgstr "" @@ -222,6 +289,7 @@ msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/res_company.py:0 +#: code:addons/l10n_fr_account_vat_return/models/res_company.py:0 #, python-format msgid "Both (automatic)" msgstr "" @@ -235,53 +303,57 @@ msgstr "" #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 #, python-format -msgid "Box '%s' doesn't have a push box, so it's push rate should be 0." +msgid "" +"Box '%(box)s' has a push box '%(push_box)s' that is configured as manual." msgstr "" #. module: l10n_fr_account_vat_return -#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "" -"Box '%s' doesn't have an accounting method, so it should not have any " -"accounting parameter." +"Box '%(box)s' is configured with Manual Account Code '%(account_code)s', but" +" there are no accounts that start with this code in company '%(company)s'. " +"You may want to setup a specific account on that box." msgstr "" #. module: l10n_fr_account_vat_return -#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 #, python-format -msgid "" -"Box '%s' has a negative value (%s) but it doesn't have a negative switch " -"box." +msgid "Box '%s' doesn't have a push box, so it's push rate should be 0." msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 #, python-format -msgid "" -"Box '%s' has a push box '%s' that is configured as manual or not pushed " -"total." +msgid "Box '%s' doesn't have a push box, so it's push sequence should be 0." msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 #, python-format -msgid "Box '%s' has a push box but is missing a push sequence." +msgid "" +"Box '%s' doesn't have an accounting method, so it should not have any " +"accounting parameter." msgstr "" #. module: l10n_fr_account_vat_return -#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 #, python-format -msgid "" -"Box '%s' is configured with Manual Account Code '%s', but there are no " -"accounts that start with this code in company '%s'. You may want to setup a " -"specific account on that box." +msgid "Box '%s' has a push box but is missing a push sequence." msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 #, python-format msgid "" -"Box '%s' should not have an accounting method considering it's box type." +"Box '%s' should not have an accounting method considering it's an untaxed " +"operation." msgstr "" #. module: l10n_fr_account_vat_return @@ -312,6 +384,7 @@ msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "" "Cannot delete VAT return '%s' because it is not in 'Manual Lines' state." @@ -322,6 +395,11 @@ msgstr "" msgid "Change Company VAT Exigibility" msgstr "" +#. module: l10n_fr_account_vat_return +#: model_terms:ir.ui.view,arch_db:l10n_fr_account_vat_return.res_config_settings_view_form +msgid "Change VAT Exigibility" +msgstr "" + #. module: l10n_fr_account_vat_return #: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__edi_type__ftx msgid "Char (FTX)" @@ -334,14 +412,19 @@ msgid "Code" msgstr "" #. module: l10n_fr_account_vat_return -#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 -#: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__comment_dgfip #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return_reimbursement__reimbursement_comment_dgfip #: model_terms:ir.ui.view,arch_db:l10n_fr_account_vat_return.l10n_fr_account_vat_return_form -#, python-format msgid "Comment for DGFIP" msgstr "" +#. module: l10n_fr_account_vat_return +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__comment_dgfip +#, python-format +msgid "Comment for DGFiP" +msgstr "" + #. module: l10n_fr_account_vat_return #: model:ir.model,name:l10n_fr_account_vat_return.model_res_company msgid "Companies" @@ -399,11 +482,6 @@ msgstr "" msgid "Compute log of VAT Return Line for France (CA3 line)" msgstr "" -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_return_line_log__compute_type__computed_base -msgid "Computed Base" -msgstr "" - #. module: l10n_fr_account_vat_return #: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_return_line_log__compute_type__computed_vat_amount msgid "Computed VAT Amount" @@ -442,6 +520,7 @@ msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/wizards/l10n_fr_account_vat_return_reimbursement.py:0 +#: code:addons/l10n_fr_account_vat_return/wizards/l10n_fr_account_vat_return_reimbursement.py:0 #, python-format msgid "Creation Date is not set." msgstr "" @@ -451,11 +530,6 @@ msgstr "" msgid "Credit" msgstr "" -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__credit_deferment -msgid "Credit Deferment" -msgstr "" - #. module: l10n_fr_account_vat_return #: model:ir.actions.act_window,name:l10n_fr_account_vat_return.l10n_fr_account_vat_return_reimbursement_action #: model_terms:ir.ui.view,arch_db:l10n_fr_account_vat_return.l10n_fr_account_vat_return_form @@ -464,12 +538,14 @@ msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "Credit VAT Reimbursement removed." msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/wizards/l10n_fr_account_vat_return_reimbursement.py:0 +#: code:addons/l10n_fr_account_vat_return/wizards/l10n_fr_account_vat_return_reimbursement.py:0 #, python-format msgid "Credit VAT reimbursement of %d € submitted." msgstr "" @@ -489,22 +565,13 @@ msgstr "" msgid "Debit" msgstr "" -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__deductible_vat_asset -msgid "Deductible VAT Amount Asset" -msgstr "" - -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__deductible_vat_other -msgid "Deductible VAT Amount Other" -msgstr "" - #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_account__display_name #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_chart_template__display_name #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_fiscal_position__display_name #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_fiscal_position_template__display_name #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_move__display_name +#: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_move_line__display_name #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_partial_reconcile__display_name #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_tax__display_name #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_box__display_name @@ -532,32 +599,23 @@ msgid "" msgstr "" #. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__due_vat -msgid "Due VAT Amount" +#: model_terms:ir.ui.view,arch_db:l10n_fr_account_vat_return.l10n_fr_account_vat_return_form +msgid "Do you confirm the removal of the credit VAT reimbursement?" msgstr "" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_box__due_vat_base_box_id -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__due_vat_base msgid "Due VAT Base" msgstr "" -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__due_vat_intracom_product -msgid "Due VAT Intracom Products" -msgstr "" - -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__due_vat_monaco -msgid "Due VAT Monaco" -msgstr "" - #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 #, python-format msgid "" -"Due VAT box '%s' has print Y %d whereas Base Due VAT box '%s' has print Y " -"%d. They should be on the same line." +"Due VAT box '%(due_vat_box)s' has print Y %(due_vat_box_print_y)s whereas " +"Base Due VAT box '%(due_vat_base_box)s' has print Y " +"%(due_vat_base_box_print_y)s. They should be on the same line." msgstr "" #. module: l10n_fr_account_vat_return @@ -579,6 +637,7 @@ msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "EDI type not supported for box '%s'." msgstr "" @@ -589,22 +648,27 @@ msgid "End Date" msgstr "" #. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__end_total_debit -msgid "End Total Credit" +#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_return_line_log__compute_type__balance +msgid "Ending Balance" msgstr "" #. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__end_total_credit -msgid "End Total Debit" +#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_return_line_log__compute_type__balance_ratio +msgid "Ending Balance x Ratio" msgstr "" #. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_return_line_log__compute_type__balance -msgid "Ending Balance" +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#, python-format +msgid "" +"Error in the generation of box '%s': it has an accounting method, so it " +"cannot have any adjustment line." msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "" "Error in the generation of the computation and accounting details of box " @@ -619,6 +683,7 @@ msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/wizards/l10n_fr_account_vat_return_reimbursement.py:0 +#: code:addons/l10n_fr_account_vat_return/wizards/l10n_fr_account_vat_return_reimbursement.py:0 #, python-format msgid "Event Date is not set." msgstr "" @@ -718,6 +783,7 @@ msgstr "" #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_fiscal_position__id #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_fiscal_position_template__id #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_move__id +#: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_move_line__id #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_partial_reconcile__id #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_tax__id #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_box__id @@ -749,7 +815,6 @@ msgstr "" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,help:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__message_has_error -#: model:ir.model.fields,help:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__message_has_sms_error msgid "If checked, some messages have a delivery error." msgstr "" @@ -761,15 +826,9 @@ msgid "" " account." msgstr "" -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields,help:l10n_fr_account_vat_return.field_l10n_fr_account_vat_box__negative_switch_box_id -msgid "" -"If the amount of this box is negative, its lines will be transfered to " -"another box with a sign inversion." -msgstr "" - #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/wizards/l10n_fr_vat_exigibility_update.py:0 +#: code:addons/l10n_fr_account_vat_return/wizards/l10n_fr_vat_exigibility_update.py:0 #, python-format msgid "" "If you don't want to change the VAT Exigibility of company '%s', click on " @@ -781,18 +840,6 @@ msgstr "" msgid "Integer Value" msgstr "" -#. module: l10n_fr_account_vat_return -#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 -#, python-format -msgid "Invoice/refund is unpaid, Unpaid VAT amount %s" -msgstr "" - -#. module: l10n_fr_account_vat_return -#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 -#, python-format -msgid "Invoice/refund was unpaid on %s, Unpaid VAT amount %s" -msgstr "" - #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__message_is_follower msgid "Is Follower" @@ -804,12 +851,20 @@ msgstr "" msgid "Journal Entry" msgstr "" +#. module: l10n_fr_account_vat_return +#: model:ir.model,name:l10n_fr_account_vat_return.model_account_move_line +msgid "Journal Item" +msgstr "" + #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "" -"Journal entry '%s' uses an intracom autoliquidation due VAT account but is " -"not a supplier invoice/refund. This scenario is not supported." +"Journal entry '%(move)s' is dated before (or on) %(end_date)s and has an " +"unreconciled line with an %(autoliq_type)s autoliquidation due VAT account, " +"but it is not a supplier invoice/refund. That line with the intracom " +"autoliquidation due VAT account should be reconciled." msgstr "" #. module: l10n_fr_account_vat_return @@ -820,6 +875,7 @@ msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "Journal for VAT Journal Entry is not set on company '%s'." msgstr "" @@ -836,6 +892,7 @@ msgstr "" #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_fiscal_position____last_update #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_fiscal_position_template____last_update #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_move____last_update +#: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_move_line____last_update #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_partial_reconcile____last_update #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_tax____last_update #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_box____last_update @@ -880,8 +937,10 @@ msgid "Main Attachment" msgstr "" #. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__manual +#: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_box__manual +#: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return_line__box_manual #: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_return_line_log__compute_type__manual +#: model_terms:ir.ui.view,arch_db:l10n_fr_account_vat_return.l10n_fr_account_vat_box_search msgid "Manual" msgstr "" @@ -896,6 +955,12 @@ msgstr "" msgid "Mark as sent" msgstr "" +#. module: l10n_fr_account_vat_return +#: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_box__meaning_id +#: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return_line__box_meaning_id +msgid "Meaningful ID" +msgstr "" + #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__message_has_error msgid "Message Delivery error" @@ -908,28 +973,25 @@ msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 #, python-format msgid "Missing Due VAT Base on box '%s' which is a Due VAT box." msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "Missing account mapping on fiscal position '%s'." msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 #, python-format msgid "Missing print caracteristics on box '%s'." msgstr "" -#. module: l10n_fr_account_vat_return -#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 -#, python-format -msgid "Monaco customer '%s', VAT amount %s" -msgstr "" - #. module: l10n_fr_account_vat_return #: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__edi_type__moa msgid "Monetary (MOA)" @@ -962,13 +1024,9 @@ msgid "Name or Code" msgstr "" #. module: l10n_fr_account_vat_return -#: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return_line__negative_switch -msgid "Negative Switch" -msgstr "" - -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_box__negative_switch_box_id -msgid "Negative Switch Box" +#: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_box__negative +#: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return_line__box_negative +msgid "Negative" msgstr "" #. module: l10n_fr_account_vat_return @@ -993,16 +1051,12 @@ msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 -#, python-format -msgid "No Due VAT box found for VAT rate %.2f%%." -msgstr "" - -#. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "" "No account mapping on fiscal position %s. If this fiscal position " +"model=account.fiscal.position data-oe-" +"id=%(fiscal_position_id)d>%(fiscal_position)s. If this fiscal position " "is not only used for purchase but also for sale, you must configure an " "account mapping on revenue accounts." msgstr "" @@ -1012,16 +1066,6 @@ msgstr "" msgid "No sections" msgstr "" -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__no_push_total_credit -msgid "Not Pushed Total Credit" -msgstr "" - -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__no_push_total_debit -msgid "Not Pushed Total Debit" -msgstr "" - #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return_line_log__note msgid "Note" @@ -1059,12 +1103,22 @@ msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "" "On box '%s', the Account Code is not set. You may want to setup a specific " "account on that box." msgstr "" +#. module: l10n_fr_account_vat_return +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#, python-format +msgid "" +"On the autoliquidation tax '%(tax)s', the distribution for invoices should " +"have only one line -100% of tax, and not %(count)s." +msgstr "" + #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_box__print_page msgid "Page" @@ -1121,13 +1175,6 @@ msgstr "" msgid "Print Position Y" msgstr "" -#. module: l10n_fr_account_vat_return -#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 -#, python-format -msgid "" -"Problem in the configuration of the due VAT boxes. This should never happen." -msgstr "" - #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_box__push_box_id #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return_line__box_push_box_id @@ -1167,11 +1214,16 @@ msgid "Reimbursement Amount" msgstr "" #. module: l10n_fr_account_vat_return +#: model_terms:ir.ui.view,arch_db:l10n_fr_account_vat_return.l10n_fr_account_vat_return_form +msgid "Reimbursement Comment for DGFIP" +msgstr "" + +#. module: l10n_fr_account_vat_return +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__reimbursement_comment_dgfip -#: model_terms:ir.ui.view,arch_db:l10n_fr_account_vat_return.l10n_fr_account_vat_return_form #, python-format -msgid "Reimbursement Comment for DGFIP" +msgid "Reimbursement Comment for DGFiP" msgstr "" #. module: l10n_fr_account_vat_return @@ -1206,11 +1258,6 @@ msgstr "" msgid "Return Lines" msgstr "" -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__message_has_sms_error -msgid "SMS Delivery error" -msgstr "" - #. module: l10n_fr_account_vat_return #: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__print_page__2 msgid "Second Page" @@ -1248,11 +1295,6 @@ msgstr "" msgid "Source Invoice" msgstr "" -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return_line_log__origin_move_partner_id -msgid "Source Invoice Partner" -msgstr "" - #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return__start_date msgid "Start Date" @@ -1286,14 +1328,17 @@ msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "" -"Tax '%s' has an account for invoice (%s) which is different from the account" -" for refund (%s). This scenario not supported." +"Tax '%(tax)s' has an account for invoice (%(invoice_account)s) which is " +"different from the account for refund (%(refund_account)s). This scenario " +"not supported." msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "" "Tax '%s' should have only one distribution line for credit notes configured " @@ -1302,32 +1347,13 @@ msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "" "Tax '%s' should have only one distribution line for invoices configured with" " an account and with '100%% of tax'." msgstr "" -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__taxed_op_autoliq_extracom -msgid "Taxed Operations - Extracom Autoliquidation" -msgstr "" - -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__taxed_op_france -msgid "Taxed Operations - France" -msgstr "" - -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__taxed_op_autoliq_intracom_product -msgid "Taxed Operations - Intracom Autoliquidation Products" -msgstr "" - -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__taxed_op_autoliq_intracom_service -msgid "Taxed Operations - Intracom Autoliquidation Services" -msgstr "" - #. module: l10n_fr_account_vat_return #: model:ir.model,name:l10n_fr_account_vat_return.model_account_fiscal_position_template msgid "Template for Fiscal Position" @@ -1338,14 +1364,6 @@ msgstr "" msgid "Text" msgstr "" -#. module: l10n_fr_account_vat_return -#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 -#, python-format -msgid "" -"The Due VAT box '%s' has '%s' configured as Due VAT Base box, but it has a " -"different type." -msgstr "" - #. module: l10n_fr_account_vat_return #: model:ir.model.constraint,message:l10n_fr_account_vat_return.constraint_l10n_fr_account_vat_box_due_vat_rate_positive msgid "The Due VAT rate must be positive." @@ -1358,6 +1376,7 @@ msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "" "The Journal Entry of this VAT return has been cancelled. You should set it " @@ -1366,96 +1385,97 @@ msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "The Journal Entry of this VAT return has been deleted." msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "" -"The balance of account '%s' is %s. In France, it should be a integer amount." +"The balance of account '%(account)s' is %(balance)s. In France, it should be" +" a integer amount." msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format -msgid "The balance of account '%s' is %s. It should always be positive." +msgid "" +"The balance of account '%(account)s' is %(balance)s. It should always be " +"positive." msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 -#, python-format -msgid "The box '%s' has a negative switch box but it's EDI Type is not 'MOA'." -msgstr "" - -#. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 #, python-format -msgid "" -"The box '%s' is the negative switch box of '%s' but it's EDI Type is not " -"'MOA'." +msgid "The box '%s' is a negative box but its EDI Type is not 'MOA'." msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 #, python-format msgid "The box '%s' must have a code." msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 #, python-format msgid "The box '%s' must have an EDI code." msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 #, python-format msgid "The box '%s' must have an EDI type." msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/wizards/l10n_fr_account_vat_return_reimbursement.py:0 +#: code:addons/l10n_fr_account_vat_return/wizards/l10n_fr_account_vat_return_reimbursement.py:0 #, python-format msgid "The creation date must be in the past." msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/wizards/l10n_fr_vat_exigibility_update.py:0 +#: code:addons/l10n_fr_account_vat_return/wizards/l10n_fr_vat_exigibility_update.py:0 #, python-format msgid "The date cannot be in the future." msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "The declaration %s doesn't contain any line." msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/wizards/l10n_fr_account_vat_return_reimbursement.py:0 +#: code:addons/l10n_fr_account_vat_return/wizards/l10n_fr_account_vat_return_reimbursement.py:0 #, python-format msgid "The event date must be in the past." msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "" -"The field '%s' is too long: it has %d caracters whereas the maximum is %d " -"caracters." -msgstr "" - -#. module: l10n_fr_account_vat_return -#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 -#, python-format -msgid "" -"The field 'Due VAT Base' is set for box '%s' which is not a Due VAT box." +"The field '%(field_label)s' is too long: it has %(count_char)d caracters " +"whereas the maximum is %(max_char)d caracters." msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "" "The journal entry '%s' generated by the VAT return cannot be deleted because" @@ -1471,59 +1491,79 @@ msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/wizards/l10n_fr_account_vat_return_reimbursement.py:0 +#: code:addons/l10n_fr_account_vat_return/wizards/l10n_fr_account_vat_return_reimbursement.py:0 #, python-format msgid "" -"The reimbursement amount (%d €) cannot be superior to the amount of the VAT " -"credit (%d €)." +"The reimbursement amount (%(amount)d €) cannot be superior to the amount of " +"the VAT credit (%(vat_credit_amount)d €)." msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/wizards/l10n_fr_account_vat_return_reimbursement.py:0 +#: code:addons/l10n_fr_account_vat_return/wizards/l10n_fr_account_vat_return_reimbursement.py:0 #, python-format msgid "" -"The reimbursement amount (%d €) cannot be under the minimum amount (%d €)." +"The reimbursement amount (%(amount)d €) cannot be under the minimum amount " +"(%(min_amount)d €)." msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 #, python-format msgid "The section or sub-section '%s' is not properly configured." msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "The start date (%s) must be the first day of a quarter." msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "The start date (%s) must be the first day of the month." msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format -msgid "The value of line '%s' (%d) is negative." +msgid "The value of line '%(box)s' (%(value)d) is negative." msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format -msgid "The value of line '%s' (%d) is over 100." +msgid "The value of line '%(box)s' (%(value)d) is over 100." msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#, python-format +msgid "" +"There are %(account_count)s accounts whose code start with " +"%(account_prefix)s in company '%(company)s' : %(account_list)s. Odoo expects" +" to have only one." +msgstr "" + +#. module: l10n_fr_account_vat_return +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "" -"There are %d accounts %s %s in the chart of account of company '%s'. This " -"scenario is not supported." +"There are %(count)d accounts %(account_code)s %(account_name)s in the chart " +"of account of company '%(company)s'. This scenario is not supported." msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "" "There are still On Payment taxes in company '%s'. To handle on payment VAT, " @@ -1533,6 +1573,17 @@ msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#, python-format +msgid "" +"There is a difference of %(diff)s € between taxed operation boxes " +"%(taxed_op_boxes)s and due VAT base boxes %(due_vat_boxes)s. The difference " +"should be null or just a few euros. This should never happen." +msgstr "" + +#. module: l10n_fr_account_vat_return +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "" "There is a problem on the intracom vendor bill/refund '%s': check that the " @@ -1548,16 +1599,20 @@ msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format -msgid "There is no account %s %s in the chart of account of company '%s'." +msgid "" +"There is no account %(account_code)s %(account_name)s in the chart of " +"account of company '%(company)s'." msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "" -"There is/are %d draft journal entry/entries dated before %s. You should post" -" this/these journal entry/entries or delete it/them." +"There is/are %(count)d draft journal entry/entries dated before %(date)s. " +"You should post it/them or delete it/them." msgstr "" #. module: l10n_fr_account_vat_return @@ -1601,31 +1656,24 @@ msgid "This line already exists!" msgstr "" #. module: l10n_fr_account_vat_return -#: model:ir.model.constraint,message:l10n_fr_account_vat_return.constraint_l10n_fr_account_vat_box_sequence_unique -msgid "This sequence already exists." -msgstr "" - -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__deductible_vat_total -msgid "Total Deductible VAT" +#: model:ir.model.constraint,message:l10n_fr_account_vat_return.constraint_l10n_fr_account_vat_box_meaning_id_unique +msgid "This meaningful ID already exists." msgstr "" #. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__due_vat_total -msgid "Total Due VAT" +#: model:ir.model.constraint,message:l10n_fr_account_vat_return.constraint_l10n_fr_account_vat_box_sequence_unique +msgid "This sequence already exists." msgstr "" #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_fiscal_position__fr_vat_type #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_account_fiscal_position_template__fr_vat_type -#: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_box__box_type -#: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return_line__box_box_type -#: model_terms:ir.ui.view,arch_db:l10n_fr_account_vat_return.l10n_fr_account_vat_box_search msgid "Type" msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format msgid "" "Type not set on fiscal position '%s'. It must be set on all fiscal " @@ -1652,30 +1700,9 @@ msgstr "" msgid "Unread Messages Counter" msgstr "" -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__untaxed_op_extracom -msgid "Untaxed Operations - Extracom" -msgstr "" - -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__untaxed_op_france_exo -msgid "Untaxed Operations - France Exonerated" -msgstr "" - -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__untaxed_op_intracom_b2b -msgid "Untaxed Operations - Intracom B2B" -msgstr "" - -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__untaxed_op_intracom_b2c -msgid "Untaxed Operations - Intracom B2C" -msgstr "" - #. module: l10n_fr_account_vat_return #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_vat_exigibility_update__update_type #: model_terms:ir.ui.view,arch_db:l10n_fr_account_vat_return.l10n_fr_vat_exigibility_update_form -#: model_terms:ir.ui.view,arch_db:l10n_fr_account_vat_return.res_config_settings_view_form msgid "Update" msgstr "" @@ -1695,26 +1722,6 @@ msgstr "" msgid "Update Since" msgstr "" -#. module: l10n_fr_account_vat_return -#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 -#, python-format -msgid "VAT Amount %s, Rate %.2f%%, Base %s" -msgstr "" - -#. module: l10n_fr_account_vat_return -#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 -#, python-format -msgid "" -"VAT Amount %s, Rate %.2f%%, Base %s, Product Ratio %.2f%%, Product Base %s" -msgstr "" - -#. module: l10n_fr_account_vat_return -#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 -#, python-format -msgid "" -"VAT Amount %s, Rate %.2f%%, Base %s, Service Ratio %.2f%%, Service Base %s" -msgstr "" - #. module: l10n_fr_account_vat_return #: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_return_line_log__compute_type__rate msgid "VAT Amount / VAT Rate" @@ -1744,11 +1751,6 @@ msgstr "" msgid "VAT Rate x100" msgstr "" -#. module: l10n_fr_account_vat_return -#: model:ir.model.fields.selection,name:l10n_fr_account_vat_return.selection__l10n_fr_account_vat_box__box_type__vat_reimbursement -msgid "VAT Reimbursement" -msgstr "" - #. module: l10n_fr_account_vat_return #: model:ir.actions.act_window,name:l10n_fr_account_vat_return.l10n_fr_account_vat_return_action #: model:ir.model.fields,field_description:l10n_fr_account_vat_return.field_l10n_fr_account_vat_return_line__parent_id @@ -1770,14 +1772,27 @@ msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#, python-format +msgid "" +"VAT amount %(total_vat_amount)s, Product ratio %(ratio).2f%% → Product VAT " +"amount %(vat_amount)s" +msgstr "" + +#. module: l10n_fr_account_vat_return +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format -msgid "VAT amount %s, Product Ratio %.2f%%, VAT Product Amount %s" +msgid "" +"VAT amount %(total_vat_amount)s, Service ratio %(ratio).2f%% → Service VAT " +"amount %(vat_amount)s" msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py:0 #, python-format -msgid "VAT amount %s, Rate %.2f%%, Base %s" +msgid "VAT amount %(vat_amount)s, Rate %(rate).2f%% → Base %(base_amount)s" msgstr "" #. module: l10n_fr_account_vat_return @@ -1825,12 +1840,14 @@ msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 +#: code:addons/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py:0 #, python-format msgid "Wrong accounting method on Due VAT box '%s': it should be 'Debit'." msgstr "" #. module: l10n_fr_account_vat_return #: code:addons/l10n_fr_account_vat_return/wizards/l10n_fr_vat_exigibility_update.py:0 +#: code:addons/l10n_fr_account_vat_return/wizards/l10n_fr_vat_exigibility_update.py:0 #, python-format msgid "Wrong value for the new VAT exigibility." msgstr "" diff --git a/l10n_fr_account_vat_return/migrations/14.0.5.0.0/pre-migrate.py b/l10n_fr_account_vat_return/migrations/14.0.5.0.0/pre-migrate.py new file mode 100644 index 000000000..bb4b3d65f --- /dev/null +++ b/l10n_fr_account_vat_return/migrations/14.0.5.0.0/pre-migrate.py @@ -0,0 +1,38 @@ +# Copyright 2023 Akretion France (http://www.akretion.com/) +# @author: Alexis de Lattre +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + + +from openupgradelib import openupgrade + + +@openupgrade.migrate() +def migrate(env, version): + if not version: + return + openupgrade.logged_query( + env.cr, + "UPDATE l10n_fr_account_vat_return_line_log " + "SET compute_type='base_from_balance_ratio' " + "WHERE compute_type ='computed_base'", + ) + openupgrade.logged_query( + env.cr, + "UPDATE l10n_fr_account_vat_return_line_log " + "SET compute_type='base_from_balance' " + "FROM l10n_fr_account_vat_return_line " + "WHERE l10n_fr_account_vat_return_line.id=" + "l10n_fr_account_vat_return_line_log.parent_id " + "AND l10n_fr_account_vat_return_line_log.compute_type='balance' " + "AND l10n_fr_account_vat_return_line.box_box_type ilike 'taxed_op_%'", + ) + openupgrade.logged_query( + env.cr, + "UPDATE l10n_fr_account_vat_return_line_log " + "SET compute_type='base_from_unpaid_vat_on_payment' " + "FROM l10n_fr_account_vat_return_line " + "WHERE l10n_fr_account_vat_return_line.id=" + "l10n_fr_account_vat_return_line_log.parent_id " + "AND l10n_fr_account_vat_return_line_log.compute_type='unpaid_vat_on_payment' " + "AND l10n_fr_account_vat_return_line.box_box_type ilike 'taxed_op_%'", + ) diff --git a/l10n_fr_account_vat_return/models/__init__.py b/l10n_fr_account_vat_return/models/__init__.py index 5ab60bc21..8855c4db1 100644 --- a/l10n_fr_account_vat_return/models/__init__.py +++ b/l10n_fr_account_vat_return/models/__init__.py @@ -5,4 +5,5 @@ from . import l10n_fr_account_vat_box from . import l10n_fr_account_vat_return from . import account_move +from . import account_move_line from . import account_partial_reconcile diff --git a/l10n_fr_account_vat_return/models/account_move.py b/l10n_fr_account_vat_return/models/account_move.py index 3dc6f94b1..63bfed66e 100644 --- a/l10n_fr_account_vat_return/models/account_move.py +++ b/l10n_fr_account_vat_return/models/account_move.py @@ -29,8 +29,8 @@ def _fr_vat_exigibility_auto_compute_vat_on_payment(self): product_total = 0.0 service_total = 0.0 for line in self.invoice_line_ids: - if not line.display_type and line.product_id: - if line.product_id.type == "service": + if not line.display_type: + if line._fr_is_product_or_service() == "service": service_total += line.price_subtotal else: product_total += line.price_subtotal diff --git a/l10n_fr_account_vat_return/models/account_move_line.py b/l10n_fr_account_vat_return/models/account_move_line.py new file mode 100644 index 000000000..c744b94f1 --- /dev/null +++ b/l10n_fr_account_vat_return/models/account_move_line.py @@ -0,0 +1,57 @@ +# Copyright 2023 Akretion France (http://www.akretion.com/) +# @author: Alexis de Lattre +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import api, models + + +class AccountMoveLine(models.Model): + _inherit = "account.move.line" + + @api.model + def _fr_product_account_prefixes(self): + return ( + "21", + # expenses + "601", + "602", + "605", + "606", + "607", + "6091", + "6092", + "6095", + "6096", + "6097", + "6181", + "6183", + "6232", + "6234", + "6236", + # revenue + "701", + "702", + "703", + "707", + "7085", + "7091", + "7092", + "7093", + "7097", + ) + + def _fr_is_product_or_service(self): + self.ensure_one() + assert not self.display_type + res = "service" + if self.product_id: + if ( + self.product_id.type in ("product", "consu") + or self.product_id.is_accessory_cost + ): + res = "product" + else: + product_account_prefixes = self._fr_product_account_prefixes() + if self.account_id.code.startswith(product_account_prefixes): + res = "product" + return res diff --git a/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py b/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py index 7852dee0d..09eaab388 100644 --- a/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py +++ b/l10n_fr_account_vat_return/models/l10n_fr_account_vat_box.py @@ -3,7 +3,7 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). from odoo import _, api, fields, models -from odoo.exceptions import UserError, ValidationError +from odoo.exceptions import ValidationError from odoo.tools import float_is_zero PUSH_RATE_PRECISION = 4 @@ -14,73 +14,31 @@ class L10nFrAccountVatBox(models.Model): _description = "France VAT Return (CA3) box" _order = "sequence, id" - sequence = fields.Integer(default=10) + sequence = fields.Integer(default=10, readonly=True) active = fields.Boolean(default=True) display_type = fields.Selection( [ ("section", "Section"), ("sub_section", "Sub-Section"), ], - string="Display Type", + readonly=True, ) - code = fields.Char() + code = fields.Char(readonly=True) name = fields.Char(string="Label", required=True) - full_label = fields.Char(string="Full Label") - box_type = fields.Selection( - [ - ("taxed_op_france", "Taxed Operations - France"), - ( - "taxed_op_autoliq_extracom", - "Taxed Operations - Extracom Autoliquidation", - ), - ( - "taxed_op_autoliq_intracom_service", - "Taxed Operations - Intracom Autoliquidation Services", - ), - ( - "taxed_op_autoliq_intracom_product", - "Taxed Operations - Intracom Autoliquidation Products", - ), - ("untaxed_op_intracom_b2b", "Untaxed Operations - Intracom B2B"), - ("untaxed_op_intracom_b2c", "Untaxed Operations - Intracom B2C"), - ("untaxed_op_extracom", "Untaxed Operations - Extracom"), - ("untaxed_op_france_exo", "Untaxed Operations - France Exonerated"), - ("due_vat", "Due VAT Amount"), - ("due_vat_base", "Due VAT Base"), - ("due_vat_intracom_product", "Due VAT Intracom Products"), - ("due_vat_monaco", "Due VAT Monaco"), - ("due_vat_total", "Total Due VAT"), - ("no_push_total_credit", "Not Pushed Total Credit"), - ("no_push_total_debit", "Not Pushed Total Debit"), - ("end_total_debit", "End Total Credit"), - ("end_total_credit", "End Total Debit"), - ("credit_deferment", "Credit Deferment"), - ("deductible_vat_asset", "Deductible VAT Amount Asset"), - ("deductible_vat_other", "Deductible VAT Amount Other"), - ("deductible_vat_total", "Total Deductible VAT"), - ("vat_reimbursement", "VAT Reimbursement"), - ("manual", "Manual"), # boxes that accountant can select at first step - ], - string="Type", - ) - negative_switch_box_id = fields.Many2one( - "l10n.fr.account.vat.box", - string="Negative Switch Box", - help="If the amount of this box is negative, its lines will be transfered " - "to another box with a sign inversion.", - ) + full_label = fields.Char(readonly=True) + meaning_id = fields.Char(string="Meaningful ID", readonly=True) + manual = fields.Boolean(readonly=True) + negative = fields.Boolean(readonly=True) accounting_method = fields.Selection( [ ("debit", "Debit"), ("credit", "Credit"), ], - string="Accounting Method", + readonly=True, ) - due_vat_rate = fields.Integer(string="VAT Rate x100") + due_vat_rate = fields.Integer(string="VAT Rate x100", readonly=True) due_vat_base_box_id = fields.Many2one( - "l10n.fr.account.vat.box", - string="Due VAT Base", - domain=[("box_type", "=", "due_vat_base")], + "l10n.fr.account.vat.box", string="Due VAT Base", readonly=True ) form_code = fields.Selection( [ @@ -89,8 +47,9 @@ class L10nFrAccountVatBox(models.Model): ], string="Form", required=True, + readonly=True, ) - edi_code = fields.Char(string="EDI Code") + edi_code = fields.Char(string="EDI Code", readonly=True) # edi_code can't be required because of sections edi_type = fields.Selection( [ @@ -102,8 +61,9 @@ class L10nFrAccountVatBox(models.Model): ("NAD", "Name and address (NAD)"), ], string="EDI Type", + readonly=True, ) - nref_code = fields.Char(string="N-REF Code") + nref_code = fields.Char(string="N-REF Code", readonly=True) print_page = fields.Selection( [ ("1", "First Page"), @@ -111,13 +71,13 @@ class L10nFrAccountVatBox(models.Model): ("3", "Third Page"), ], string="Page", + readonly=True, ) - print_x = fields.Integer("Print Position X") - print_y = fields.Integer("Print Position Y") + print_x = fields.Integer(string="Print Position X", readonly=True) + print_y = fields.Integer(string="Print Position Y", readonly=True) account_code = fields.Char(string="Generic Account Code") account_id = fields.Many2one( "account.account", - string="Account", company_dependent=True, domain="[('deprecated', '=', False), ('company_id', '=', current_company_id)]", help="If not set, Odoo will use the first account that starts with the " @@ -130,18 +90,14 @@ class L10nFrAccountVatBox(models.Model): company_dependent=True, domain="[('company_id', 'in', (False, current_company_id))]", ) - push_sequence = fields.Integer() + push_sequence = fields.Integer(readonly=True) # 10: appendix lines # 20: totals cols appendix # 30 : Appendix to CA3 # 40 : CA3 total TVA due + total TVA deduc # 100 : CA3 end : total à payer + crédit à reporter - push_box_id = fields.Many2one( - "l10n.fr.account.vat.box", - string="Push Box", - domain=[("box_type", "=", "manual")], - ) - push_rate = fields.Float(digits=(16, PUSH_RATE_PRECISION), string="Push Rate") + push_box_id = fields.Many2one("l10n.fr.account.vat.box", readonly=True) + push_rate = fields.Float(digits=(16, PUSH_RATE_PRECISION), readonly=True) _sql_constraints = [ ("sequence_unique", "unique(sequence)", "This sequence already exists."), @@ -156,6 +112,11 @@ class L10nFrAccountVatBox(models.Model): "This EDI code already exists for this form.", ), ("nref_code_unique", "unique(nref_code)", "This N-REF code already exists."), + ( + "meaning_id_unique", + "unique(meaning_id)", + "This meaningful ID already exists.", + ), ( "due_vat_rate_positive", "CHECK(due_vat_rate >= 0)", @@ -177,7 +138,6 @@ class L10nFrAccountVatBox(models.Model): def display_type_change(self): if self.display_type: self.code = False - self.box_type = False self.accounting_method = False self.due_vat_rate = False self.due_vat_base_box_id = False @@ -195,7 +155,8 @@ def display_type_change(self): "edi_type", "display_type", "due_vat_base_box_id", - "box_type", + "meaning_id", + "manual", "accounting_method", "account_code", "account_id", @@ -203,24 +164,24 @@ def display_type_change(self): "push_box_id", "push_rate", "push_sequence", - "negative_switch_box_id", + "negative", ) def _check_box(self): # noqa: C901 for box in self: if box.display_type: if ( - box.box_type - or box.accounting_method - or not float_is_zero(self.due_vat_rate, precision_digits=2) - or self.due_vat_base_box_id - or self.edi_code - or self.edi_type - or self.nref_code + box.accounting_method + or not float_is_zero(box.due_vat_rate, precision_digits=2) + or box.due_vat_base_box_id + or box.manual + or box.edi_code + or box.edi_type + or box.nref_code or box.print_page or box.print_x or box.print_y or box.push_box_id - or box.negative_switch_box_id + or box.negative ): raise ValidationError( _("The section or sub-section '%s' is not properly configured.") @@ -235,38 +196,28 @@ def _check_box(self): # noqa: C901 raise ValidationError( _("The box '%s' must have an EDI type.") % box.display_name ) - if box.negative_switch_box_id and box.edi_type != "MOA": + if box.negative and box.edi_type != "MOA": raise ValidationError( _( - "The box '%s' has a negative switch box but it's EDI Type " + "The box '%s' is a negative box but its EDI Type " "is not 'MOA'." ) % box.display_name ) - if ( - box.negative_switch_box_id - and box.negative_switch_box_id.edi_type != "MOA" - ): - raise ValidationError( - _( - "The box '%s' is the negative switch box of '%s' but it's " - "EDI Type is not 'MOA'." - ) - % (box.negative_switch_box_id.display_name, box.display_name) - ) if not box.code and box.form_code == "3310CA3": # on 3310-A, total boxes don't have a code raise ValidationError( _("The box '%s' must have a code.") % box.display_name ) print_data = [box.print_page, box.print_x, box.print_y] - any(print_data) if box.form_code == "3310CA3" and not all(print_data): raise ValidationError( _("Missing print caracteristics on box '%s'.") % box.display_name ) - if box.box_type == "due_vat": + if box.meaning_id and box.meaning_id.startswith( + ("due_vat_regular", "due_vat_extracom_product") + ): if not box.due_vat_base_box_id: raise ValidationError( _( @@ -274,14 +225,6 @@ def _check_box(self): # noqa: C901 ) % box.display_name ) - elif box.due_vat_base_box_id.box_type != "due_vat_base": - raise ValidationError( - _( - "The Due VAT box '%s' has '%s' configured as " - "Due VAT Base box, but it has a different type." - ) - % (box.display_name, box.due_vat_base_box_id.display_name) - ) if box.accounting_method != "debit": raise ValidationError( _( @@ -293,34 +236,26 @@ def _check_box(self): # noqa: C901 if box.print_y != box.due_vat_base_box_id.print_y: raise ValidationError( _( - "Due VAT box '%s' has print Y %d whereas " - "Base Due VAT box '%s' has print Y %d. " - "They should be on the same line." - ) - % ( - box.display_name, - box.print_y, - box.due_vat_base_box_id.display_name, - box.due_vat_base_box_id.print_y, + "Due VAT box '%(due_vat_box)s' has print Y " + "%(due_vat_box_print_y)s whereas " + "Base Due VAT box '%(due_vat_base_box)s' has print Y " + "%(due_vat_base_box_print_y)s. " + "They should be on the same line.", + due_vat_box=box.display_name, + due_vat_box_print_y=box.print_y, + due_vat_base_box=box.due_vat_base_box_id.display_name, + due_vat_base_box_print_y=box.due_vat_base_box_id.print_y, ) ) - elif box.due_vat_base_box_id: - raise ValidationError( - _( - "The field 'Due VAT Base' is set for box '%s' " - "which is not a Due VAT box." - ) - % box.display_name - ) if ( - box.box_type - and box.box_type.startswith("untaxed_op_") + box.meaning_id + and box.meaning_id.startswith("untaxed_op_") and box.accounting_method ): raise ValidationError( _( "Box '%s' should not have an accounting method " - "considering it's box type." + "considering it's an untaxed operation." ) % box.display_name ) @@ -334,13 +269,14 @@ def _check_box(self): # noqa: C901 % box.display_name ) if box.push_box_id: - if box.push_box_id.box_type in ("manual", "no_push_total"): + if box.push_box_id.manual: raise ValidationError( _( - "Box '%s' has a push box '%s' that is configured " - "as manual or not pushed total." + "Box '%(box)s' has a push box '%(push_box)s' " + "that is configured as manual.", + box=box.display_name, + push_box=box.push_box_id.display_name, ) - % (box.display_name, box.push_box_id.display_name) ) if not box.push_sequence: raise ValidationError( @@ -362,7 +298,7 @@ def _check_box(self): # noqa: C901 raise ValidationError( _( "Box '%s' doesn't have a push box, " - "so it's push rate should be 0." + "so it's push sequence should be 0." ) % box.display_name ) @@ -397,19 +333,3 @@ def name_search(self, name="", args=None, operator="ilike", limit=100): if recs: return recs.name_get() return super().name_search(name=name, args=args, operator=operator, limit=limit) - - @api.model - def _box_from_single_box_type(self, box_type): - box = self.search([("box_type", "=", box_type)]) - if len(box) != 1: - boxtype2label = dict( - self.fields_get("box_type", "selection")["box_type"]["selection"] - ) - raise UserError( - _( - "A single box with type '%s' should exists, " - "but there are %d box(es) of that type. This should never happen." - ) - % (boxtype2label[box_type], len(box)) - ) - return box diff --git a/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py b/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py index e7c7cfb3a..1493bca5a 100644 --- a/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py +++ b/l10n_fr_account_vat_return/models/l10n_fr_account_vat_return.py @@ -8,7 +8,7 @@ from collections import defaultdict from dateutil.relativedelta import relativedelta -from PyPDF2 import PdfFileReader, PdfFileWriter +from pypdf import PdfReader, PdfWriter from reportlab.lib.pagesizes import A4 from reportlab.lib.styles import getSampleStyleSheet from reportlab.pdfgen import canvas @@ -16,7 +16,7 @@ from odoo import _, api, fields, models, tools from odoo.exceptions import UserError, ValidationError -from odoo.tools import date_utils, float_is_zero +from odoo.tools import date_utils, float_is_zero, float_round from odoo.tools.misc import format_amount, format_date from .l10n_fr_account_vat_box import PUSH_RATE_PRECISION @@ -64,7 +64,6 @@ class L10nFrAccountVatReturn(models.Model): end_date = fields.Date(compute="_compute_name_end_date", store=True) company_id = fields.Many2one( "res.company", - string="Company", ondelete="cascade", required=True, readonly=True, @@ -94,7 +93,6 @@ class L10nFrAccountVatReturn(models.Model): ("sent", "Sent"), ("posted", "Posted"), ], - string="State", default="manual", required=True, readonly=True, @@ -113,7 +111,7 @@ class L10nFrAccountVatReturn(models.Model): compute="_compute_name_end_date", store=True ) reimbursement_type = fields.Selection( - "_reimbursement_type_selection", string="Reimbursement Type", readonly=True + "_reimbursement_type_selection", readonly=True ) reimbursement_first_creation_date = fields.Date( string="Creation Date", readonly=True @@ -124,7 +122,7 @@ class L10nFrAccountVatReturn(models.Model): string="Show VAT Credit Reimbursement Button", ) reimbursement_comment_dgfip = fields.Text( - string="Reimbursement Comment for DGFIP", + string="Reimbursement Comment for DGFiP", states={"sent": [("readonly", True)], "posted": [("readonly", True)]}, ) ca3_attachment_id = fields.Many2one("ir.attachment", string="CA3 Attachment") @@ -135,7 +133,7 @@ class L10nFrAccountVatReturn(models.Model): related="ca3_attachment_id.name", string="CA3 Filename" ) comment_dgfip = fields.Text( - string="Comment for DGFIP", + string="Comment for DGFiP", states={"sent": [("readonly", True)], "posted": [("readonly", True)]}, ) line_ids = fields.One2many( @@ -184,18 +182,21 @@ def _check_start_date(self): def _check_comment_dgfip(self): max_comment = 5 * 512 comment_fields = { - "comment_dgfip": _("Comment for DGFIP"), - "reimbursement_comment_dgfip": _("Reimbursement Comment for DGFIP"), + "comment_dgfip": _("Comment for DGFiP"), + "reimbursement_comment_dgfip": _("Reimbursement Comment for DGFiP"), } for rec in self: for field_name, field_label in comment_fields.items(): if rec[field_name] and len(rec[field_name]) > max_comment: raise ValidationError( _( - "The field '%s' is too long: it has %d caracters " - "whereas the maximum is %d caracters." + "The field '%(field_label)s' is too long: " + "it has %(count_char)d caracters " + "whereas the maximum is %(max_char)d caracters.", + field_label=field_label, + count_char=len(rec[field_name]), + max_char=max_comment, ) - % (field_label, len(rec[field_name]), max_comment) ) @api.depends("start_date", "vat_periodicity") @@ -235,7 +236,7 @@ def _compute_reimbursement_show_button(self): if ( rec.state == "auto" and rec.vat_credit_total - and rec.vat_credit_total > rec.reimbursement_min_amount + and rec.vat_credit_total >= rec.reimbursement_min_amount and not rec.reimbursement_type ): reimbursement_show_button = True @@ -272,6 +273,7 @@ def company_id_change(self): def _prepare_speedy(self): # Generate a speed-dict called speedy that is used in several methods + # or for some domains that we may need to inherit self.ensure_one() company_domain = [("company_id", "=", self.company_id.id)] base_domain = company_domain + [("parent_state", "=", "posted")] @@ -280,11 +282,29 @@ def _prepare_speedy(self): ("date", "<=", self.end_date), ] base_domain_end = base_domain + [("date", "<=", self.end_date)] + vat_tax_domain = company_domain + [ + ("amount_type", "=", "percent"), + ("amount", ">", 0), + ("unece_type_code", "=", "VAT"), + ] + sale_regular_vat_tax_domain = vat_tax_domain + [ + ("fr_vat_autoliquidation", "=", False), + ("type_tax_use", "=", "sale"), + ] + purchase_vat_tax_domain = vat_tax_domain + [("type_tax_use", "=", "purchase")] + purchase_autoliq_vat_tax_domain = purchase_vat_tax_domain + [ + ("fr_vat_autoliquidation", "=", True), + ] movetype2label = dict( self.env["account.move"].fields_get("move_type", "selection")["move_type"][ "selection" ] ) + meaning_id2box = {} + for box in self.env["l10n.fr.account.vat.box"].search( + [("meaning_id", "!=", False)] + ): + meaning_id2box[box.meaning_id] = box speedy = { "company_id": self.company_id.id, "currency": self.company_id.currency_id, @@ -292,6 +312,9 @@ def _prepare_speedy(self): "base_domain": base_domain, "base_domain_period": base_domain_period, "base_domain_end": base_domain_end, + "sale_regular_vat_tax_domain": sale_regular_vat_tax_domain, + "purchase_vat_tax_domain": purchase_vat_tax_domain, + "purchase_autoliq_vat_tax_domain": purchase_autoliq_vat_tax_domain, "end_date_formatted": format_date(self.env, self.end_date), "start_date_formatted": format_date(self.env, self.start_date), "movetype2label": movetype2label, @@ -306,6 +329,11 @@ def _prepare_speedy(self): "afpt_obj": self.env["account.fiscal.position.tax"], "afpa_obj": self.env["account.fiscal.position.account"], "at_obj": self.env["account.tax"], + "meaning_id2box": meaning_id2box, + "box2value": {}, # used to speedy-up checks + # used to create negative boxes at the end + "negative_box2logs": defaultdict(list), + "vat_groups": ["regular", "extracom_product", "oil"], } speedy["bank_cash_journals"] = speedy["aj_obj"].search( speedy["company_domain"] + [("type", "in", ("bank", "cash"))] @@ -333,22 +361,23 @@ def _get_adjust_accounts(self, speedy): if not account: raise UserError( _( - "There is no account %s %s in the chart of account " - "of company '%s'." + "There is no account %(account_code)s %(account_name)s " + "in the chart of account of company '%(company)s'.", + account_code=account_code, + account_name=account_name, + company=self.company_id.display_name, ) - % (account_code, account_name, self.company_id.display_name) ) if len(account) > 1: raise UserError( _( - "There are %d accounts %s %s in the chart of account " - "of company '%s'. This scenario is not supported." - ) - % ( - len(account), - account_code, - account_name, - self.company_id.display_name, + "There are %(count)d accounts " + "%(account_code)s %(account_name)s in the chart of account " + "of company '%(company)s'. This scenario is not supported.", + count=len(account), + account_code=account_code, + account_name=account_name, + company=self.company_id.display_name, ) ) speedy[key] = account @@ -362,7 +391,8 @@ def manual2auto(self): self._generate_operation_untaxed(speedy) self._generate_due_vat(speedy) self._generate_deductible_vat(speedy) - self._switch_negative_boxes(speedy) + self._generate_negative_boxes(speedy) + self._adjustment_sum_due_vat_base_vs_taxed_operations(speedy) self._generate_credit_deferment(speedy) self._create_push_lines("start", speedy) self._generate_ca3_bottom_totals(speedy) @@ -379,7 +409,7 @@ def back_to_manual(self): self.ensure_one() assert self.state in ("auto", "sent") # del auto lines - self.line_ids.filtered(lambda x: x.box_box_type != "manual").unlink() + self.line_ids.filtered(lambda x: not x.box_manual).unlink() self._delete_move_and_attachments() vals = {"state": "manual"} if self.reimbursement_type: @@ -455,11 +485,12 @@ def _setup_data_pre_check(self, speedy): if draft_move_count: raise UserError( _( - "There is/are %d draft journal entry/entries dated before %s. " - "You should post this/these journal entry/entries or " - "delete it/them." + "There is/are %(count)d draft journal entry/entries " + "dated before %(date)s. You should post it/them " + "or delete it/them.", + count=draft_move_count, + date=format_date(self.env, self.end_date), ) - % (draft_move_count, format_date(self.env, self.end_date)) ) bad_fp = speedy["afp_obj"].search( speedy["company_domain"] + [("fr_vat_type", "=", False)], limit=1 @@ -494,7 +525,7 @@ def _generate_ca3_bottom_totals(self, speedy): [ ("parent_id", "=", self.id), ( - "box_box_type", + "box_meaning_id", "in", ( "no_push_total_debit", @@ -510,17 +541,16 @@ def _generate_ca3_bottom_totals(self, speedy): # Generate the 'no_push_total_xxx' lines: # 25. Crédit de TVA (lignes 23 - 16) # 28. TVA nette due (lignes 16 - 23) - due_vat_total_box = speedy["box_obj"]._box_from_single_box_type("due_vat_total") vat_to_pay_line = speedy["line_obj"].search( - [("parent_id", "=", self.id), ("box_id", "=", due_vat_total_box.id)] + [("parent_id", "=", self.id), ("box_meaning_id", "=", "due_vat_total")] ) vat_to_pay = vat_to_pay_line and vat_to_pay_line.value or 0 - deduc_vat_total_box = speedy["box_obj"]._box_from_single_box_type( - "deductible_vat_total" - ) vat_deduc_line = speedy["line_obj"].search( - [("parent_id", "=", self.id), ("box_id", "=", deduc_vat_total_box.id)] + [ + ("parent_id", "=", self.id), + ("box_meaning_id", "=", "deductible_vat_total"), + ] ) vat_deduc = vat_deduc_line and vat_deduc_line.value or 0 logs = [ @@ -537,9 +567,9 @@ def _generate_ca3_bottom_totals(self, speedy): ] sub_total = vat_to_pay - vat_deduc if sub_total > 0: - box = speedy["box_obj"]._box_from_single_box_type("no_push_total_debit") + box = speedy["meaning_id2box"]["no_push_total_debit"] else: - box = speedy["box_obj"]._box_from_single_box_type("no_push_total_credit") + box = speedy["meaning_id2box"]["no_push_total_credit"] for log in logs: log["amount"] *= -1 self.write({"vat_credit_total": sub_total * -1}) @@ -643,29 +673,28 @@ def _create_push_lines(self, pass_type, speedy): ) def _generate_credit_deferment(self, speedy): - box = speedy["box_obj"]._box_from_single_box_type("credit_deferment") + box = speedy["meaning_id2box"]["credit_deferment"] account = self._get_box_account(box) balance = account._fr_vat_get_balance("base_domain_end", speedy) # Check that the balance of 445670 is an integer if speedy["currency"].compare_amounts(balance, int(balance)): raise UserError( _( - "The balance of account '%s' is %s. " - "In France, it should be a integer amount." - ) - % ( - account.display_name, - format_amount(self.env, balance, speedy["currency"]), + "The balance of account '%(account)s' is %(balance)s. " + "In France, it should be a integer amount.", + account=account.display_name, + balance=format_amount(self.env, balance, speedy["currency"]), ) ) # Check that the balance of 445670 is the right sign compare_bal = speedy["currency"].compare_amounts(balance, 0) if compare_bal < 0: raise UserError( - _("The balance of account '%s' is %s. It should always be positive.") - % ( - account.display_name, - format_amount(self.env, balance, speedy["currency"]), + _( + "The balance of account '%(account)s' is %(balance)s. " + "It should always be positive.", + account=account.display_name, + balance=format_amount(self.env, balance, speedy["currency"]), ) ) elif compare_bal > 0: @@ -687,34 +716,119 @@ def _generate_credit_deferment(self, speedy): } ) + def _adjustment_box2value(self, speedy, boxes): + box2value = {} + total = 0 + box_codes = [] + for box in boxes: + value = speedy["box2value"].get(box, 0) + box2value[box] = value + total += value + box_codes.append(box.code) + box_codes_str = ", ".join(box_codes) + return box2value, total, box_codes_str + + def _adjustment_sum_due_vat_base_vs_taxed_operations(self, speedy): + self.ensure_one() + for vat_group in speedy["vat_groups"]: + taxed_op_boxes = [ + box + for meaning_id, box in speedy["meaning_id2box"].items() + if meaning_id.startswith("taxed_op_%s" % vat_group) + ] + + taxed_op_res = self._adjustment_box2value(speedy, taxed_op_boxes) + taxed_op_box2value, taxed_op_sum, taxed_op_codes_str = taxed_op_res + due_vat_base_boxes = [ + box.due_vat_base_box_id + for meaning_id, box in speedy["meaning_id2box"].items() + if meaning_id.startswith("due_vat_%s" % vat_group) + ] + due_vat_base_res = self._adjustment_box2value(speedy, due_vat_base_boxes) + ( + due_vat_base_box2value, + due_vat_base_sum, + due_vat_base_codes_str, + ) = due_vat_base_res + assert isinstance(taxed_op_sum, int) + assert isinstance(due_vat_base_sum, int) + diff = due_vat_base_sum - taxed_op_sum + assert isinstance(diff, int) + if abs(diff) > 5: + raise UserError( + _( + "There is a difference of %(diff)s € between " + "taxed operation boxes %(taxed_op_boxes)s and " + "due VAT base boxes %(due_vat_boxes)s. " + "The difference should be null or just a few euros. " + "This should never happen.", + diff=diff, + taxed_op_boxes=taxed_op_codes_str, + due_vat_boxes=due_vat_base_codes_str, + ) + ) + elif not diff: + logger.debug( + "No need for adjustment line for boxes %s vs %s", + taxed_op_boxes, + due_vat_base_boxes, + ) + else: + logger.debug( + "Creating an adjustment log line for consistency check %s vs %s", + taxed_op_codes_str, + due_vat_base_codes_str, + ) + max_taxed_op_box = max(taxed_op_box2value, key=taxed_op_box2value.get) + note = _( + "Adjustment to have " + "sum of taxed operations boxes %(taxed_op_boxes)s = " + "sum of due VAT base boxes %(due_vat_boxes)s. " + "Otherwise, DGFiP would reject the VAT return.", + taxed_op_boxes=taxed_op_codes_str, + due_vat_boxes=due_vat_base_codes_str, + ) + logs_to_add = [ + {"compute_type": "adjustment", "amount": diff, "note": note} + ] + self._update_line(speedy, logs_to_add, max_taxed_op_box) + new_taxed_op_sum = sum( + [ + speedy["box2value"].get(box, 0) + for box in taxed_op_box2value.keys() + ] + ) + assert new_taxed_op_sum == due_vat_base_sum + def _generate_due_vat(self, speedy): self.ensure_one() # TODO Check that an account can't be used in both autoliq and non-autoliq? # COMPUTE LINES - # There are 2 important dicts: - # 1. rate2logs: generate block "B décompte de la TVA à payer" - # both columns "taxe due" and "Base hors taxe" - rate2logs = defaultdict(list) - # 2. taxedop_type2logs: generate block top left "Opérations imposables" - taxedop_type2logs = defaultdict(list) + type_rate2logs = { + "regular_intracom_product_autoliq": defaultdict(list), + "regular_intracom_service_autoliq": defaultdict(list), + "extracom_product_autoliq": defaultdict(list), + "regular_extracom_service_autoliq": defaultdict(list), + "regular_france": defaultdict(list), + # 'regular_france': {2000: {'vat': [logs], 1000: [logs], 550: [], 'base': [logs]} + # I put regular_france at the end, so that intracom/extracom autoliq + # logs are not hidden at the end of the long list of unpaid_vat_on_payment logs + } # Compute France and Monaco - monaco_logs = self._generate_due_vat_france( - speedy, rate2logs, taxedop_type2logs - ) - # Compute Auto-liquidation - autoliq_intracom_product_logs = self._generate_due_vat_autoliq( - speedy, rate2logs, taxedop_type2logs - ) + monaco_logs = self._generate_due_vat_france(speedy, type_rate2logs) + # Compute Auto-liquidation extracom + intracom + self._generate_due_vat_autoliq(speedy, type_rate2logs) # CREATE LINES - # Boxes 08, 09, 9A - self._generate_due_vat_create_vat_to_pay_lines(speedy, rate2logs) - # Boxes for taxed operations: A1, B3, A3, B2 - for taxedop_type, logs in taxedop_type2logs.items(): - box_type = "taxed_op_%s" % taxedop_type - self._create_line(speedy, logs, box_type) + # Boxes 08, 09, 9B + self._generate_taxed_op_and_due_vat_lines(speedy, type_rate2logs) # Box 17 "dont TVA sur acquisitions intracom" + # generate autoliq_intracom_product_logs from type_rate2logs + autoliq_intracom_product_logs = [] + for rate, logs in type_rate2logs["regular_intracom_product_autoliq"].items(): + if rate != "base": + autoliq_intracom_product_logs += logs self._create_line( speedy, autoliq_intracom_product_logs, "due_vat_intracom_product" ) @@ -726,13 +840,7 @@ def _generate_due_vat_prepare_sale_struct(self, speedy): sale_vat_account2rate = {} sale_vat_accounts = speedy["aa_obj"] regular_due_vat_taxes = speedy["at_obj"].search( - speedy["company_domain"] - + [ - ("amount_type", "=", "percent"), - ("amount", ">", 0), - ("fr_vat_autoliquidation", "=", False), - ("type_tax_use", "=", "sale"), - ] + speedy["sale_regular_vat_tax_domain"] ) for tax in regular_due_vat_taxes: invoice_lines = tax.invoice_repartition_line_ids.filtered( @@ -766,15 +874,14 @@ def _generate_due_vat_prepare_sale_struct(self, speedy): if refund_vat_account != sale_vat_account: raise UserError( _( - "Tax '%s' has an account for invoice (%s) which is " - "different from the account for refund (%s). " - "This scenario not supported." - ) - % ( - tax.display_name, - sale_vat_account.display_name, - refund_vat_account.display_name, + "Tax '%(tax)s' has an account for invoice " + "(%(invoice_account)s) which is different from the account " + "for refund (%(refund_account)s). This scenario not supported.", + tax=tax.display_name, + invoice_account=sale_vat_account.display_name, + refund_account=refund_vat_account.display_name, ) + % () ) rate_int = int(tax.amount * 100) if ( @@ -783,13 +890,11 @@ def _generate_due_vat_prepare_sale_struct(self, speedy): ): raise UserError( _( - "Account '%s' is used on several sale VAT taxes " - "for different rates (%.2f%% and %.2f%%)." - ) - % ( - sale_vat_account.display_name, - rate_int / 100, - sale_vat_account2rate[sale_vat_account] / 100, + "Account '%(account)s' is used on several sale VAT taxes " + "for different rates (%(rate1).2f%% and %(rate2).2f%%).", + account=sale_vat_account.display_name, + rate1=rate_int / 100, + rate2=sale_vat_account2rate[sale_vat_account] / 100, ) ) sale_vat_account2rate[sale_vat_account] = rate_int @@ -798,7 +903,7 @@ def _generate_due_vat_prepare_sale_struct(self, speedy): assert sale_vat_accounts return sale_vat_accounts, sale_vat_account2rate - def _generate_due_vat_france(self, speedy, rate2logs, taxedop_type2logs): + def _generate_due_vat_france(self, speedy, type_rate2logs): ( sale_vat_accounts, sale_vat_account2rate, @@ -807,7 +912,7 @@ def _generate_due_vat_france(self, speedy, rate2logs, taxedop_type2logs): vat_on_payment_account2logs = self._vat_on_payment( "out", sale_vat_accounts.ids, speedy ) - # generate taxedop_type2logs['france'] and rate2logs + # generate type_rate2logs['france'] for sale_vat_account, rate_int in sale_vat_account2rate.items(): # Start from balance of VAT account, then compute base balance = ( @@ -820,90 +925,113 @@ def _generate_due_vat_france(self, speedy, rate2logs, taxedop_type2logs): balance, ) if not speedy["currency"].is_zero(balance): - rate2logs[rate_int].append( + type_rate2logs["regular_france"][rate_int].append( { "account_id": sale_vat_account.id, "compute_type": "balance", "amount": balance, } ) - base = balance * 10000 / rate_int - taxedop_type2logs["france"].append( - { - "account_id": sale_vat_account.id, - "compute_type": "balance", - "amount": base, - "note": _("VAT amount %s, Rate %.2f%%, Base %s") - % ( - format_amount(self.env, balance, speedy["currency"]), - rate_int / 100, - format_amount(self.env, base, speedy["currency"]), - ), - } - ) - # remove on_payment invoices unpaid on end_date for rate2logs - rate2logs[rate_int] += vat_on_payment_account2logs[sale_vat_account] - # and also for taxedop_type2logs['france'] - for log in vat_on_payment_account2logs[sale_vat_account]: - base_log = dict(log) - vat_amount = log["amount"] - base = speedy["currency"].round(vat_amount * 10000 / rate_int) - base_log["amount"] = base - taxedop_type2logs["france"].append(base_log) + # remove on_payment invoices unpaid on end_date for type_rate2logs + type_rate2logs["regular_france"][rate_int] += vat_on_payment_account2logs[ + sale_vat_account + ] # MONACO monaco_logs = self._generate_due_vat_monaco(speedy, sale_vat_accounts) return monaco_logs - def _generate_due_vat_autoliq(self, speedy, rate2logs, taxedop_type2logs): + def _generate_due_vat_autoliq(self, speedy, type_rate2logs): ( autoliq_taxedop_type2accounts, - autoliq_vat_accounts, autoliq_vat_account2rate, autoliq_tax2rate, ) = self._generate_due_vat_prepare_autoliq_struct(speedy) - # compute bloc "B décompte de la TVA à payer" - self._generate_due_vat_autoliq_vat_to_pay( - speedy, autoliq_vat_account2rate, rate2logs - ) - # compute bloc "opérations imposables" - # Extracom - self._generate_due_vat_taxed_op_extracom( - speedy, - autoliq_vat_account2rate, - autoliq_taxedop_type2accounts, - taxedop_type2logs, - ) - # Intracom - rate2product_ratio = self._compute_rate2product_ratio( + # compute bloc "opérations imposables" / Intracom + # Split product/service + autoliq_rate2product_ratio = self._compute_autoliq_rate2product_ratio( speedy, autoliq_taxedop_type2accounts, autoliq_tax2rate ) - autoliq_intracom_product_logs = self._generate_due_vat_intracom_taxed_op( - speedy, - autoliq_vat_account2rate, - autoliq_taxedop_type2accounts, - rate2product_ratio, - taxedop_type2logs, - ) - return autoliq_intracom_product_logs + # autoliq_intracom_product_logs = [] # for box 17 + # Compute both block B and block A for autoliq intracom + extracom + for autoliq_type, accounts in autoliq_taxedop_type2accounts.items(): + # autoliq_type is 'intracom' or 'extracom' + for account in accounts: + total_vat_amount = ( + account._fr_vat_get_balance("base_domain_end", speedy) * -1 + ) + if speedy["currency"].is_zero(total_vat_amount): + continue + rate_int = autoliq_vat_account2rate[account] + product_ratio = autoliq_rate2product_ratio[autoliq_type][rate_int] + ratio = { + "product": product_ratio, + "service": 100 - product_ratio, + } + product_vat_amount = round(total_vat_amount * product_ratio / 100, 2) + ps_vat_amount = { + "product": product_vat_amount, + "service": total_vat_amount - product_vat_amount, + } + for ps_type in ["product", "service"]: + vat_amount = ps_vat_amount[ps_type] + if speedy["currency"].is_zero(vat_amount): + continue + ptype = "regular_%s_%s_autoliq" % (autoliq_type, ps_type) + if ptype == "regular_extracom_product_autoliq": + ptype = "extracom_product_autoliq" + # Block B + # For proper translation in other languges, product/service + # cannot be a variable in the note field + if ps_type == "product": + vat_note = _( + "VAT amount %(total_vat_amount)s, " + "Product ratio %(ratio).2f%% " + "→ Product VAT amount %(vat_amount)s", + total_vat_amount=format_amount( + self.env, total_vat_amount, speedy["currency"] + ), + ratio=ratio[ps_type], + vat_amount=format_amount( + self.env, vat_amount, speedy["currency"] + ), + ) + elif ps_type == "service": + vat_note = _( + "VAT amount %(total_vat_amount)s, " + "Service ratio %(ratio).2f%% " + "→ Service VAT amount %(vat_amount)s", + total_vat_amount=format_amount( + self.env, total_vat_amount, speedy["currency"] + ), + ratio=ratio[ps_type], + vat_amount=format_amount( + self.env, vat_amount, speedy["currency"] + ), + ) + + vat_log = { + "account_id": account.id, + "compute_type": "balance_ratio", + "amount": vat_amount, + "note": vat_note, + } + type_rate2logs[ptype][rate_int].append(vat_log) def _generate_due_vat_prepare_autoliq_struct(self, speedy): autoliq_taxedop_type2accounts = { - "intracom_b2b": speedy["aa_obj"], - "extracom": speedy["aa_obj"], + "intracom": speedy["aa_obj"], # recordset 445201, 445202, 445203 + "extracom": speedy["aa_obj"], # recordset 445301, 445302, 445303 } - autoliq_vat_account2rate = {} - autoliq_tax2rate = {} - autoliq_vat_accounts = speedy["aa_obj"] + autoliq_vat_account2rate = ( + {} + ) # {445201: 2000, 445202: 1000, 445203: 55, 445301: 2000, } + autoliq_tax2rate = ( + {} + ) # {TVA 20% intracom (achats): 2000, TVA 10% intracom (achats): 1000, } autoliq_vat_taxes = speedy["at_obj"].search( - [ - ("type_tax_use", "=", "purchase"), - ("amount_type", "=", "percent"), - ("amount", ">", 0), - ("fr_vat_autoliquidation", "=", True), - ("company_id", "=", speedy["company_id"]), - ] + speedy["purchase_autoliq_vat_tax_domain"] ) for tax in autoliq_vat_taxes: lines = tax.invoice_repartition_line_ids.filtered( @@ -912,7 +1040,15 @@ def _generate_due_vat_prepare_autoliq_struct(self, speedy): and int(x.factor_percent) == -100 ) if len(lines) != 1: - raise UserError(_("A regular sale ")) + raise UserError( + _( + "On the autoliquidation tax '%(tax)s', the distribution for " + "invoices should have only one line -100% of tax, and not " + "%(count)s.", + tax=tax.display_name, + count=len(lines), + ) + ) account = lines.account_id rate_int = int(tax.amount * 100) autoliq_tax2rate[tax] = rate_int @@ -922,14 +1058,12 @@ def _generate_due_vat_prepare_autoliq_struct(self, speedy): ): raise UserError( _( - "Account '%s' is used as due VAT account on several " + "Account '%(account)s' is used as due VAT account on several " "auto-liquidation taxes for different rates " - "(%.2f%% and %.2f%%)." - ) - % ( - account.display_name, - rate_int / 100, - autoliq_vat_account2rate[account] / 100, + "(%(rate1).2f%% and %(rate2).2f%%).", + account=account.display_name, + rate1=rate_int / 100, + rate2=autoliq_vat_account2rate[account] / 100, ) ) # Since May 2023, the new strategy to separate goods vs services @@ -946,7 +1080,6 @@ def _generate_due_vat_prepare_autoliq_struct(self, speedy): % account.display_name ) autoliq_vat_account2rate[account] = rate_int - autoliq_vat_accounts |= account tax_map = speedy["afpt_obj"].search( [ ("tax_dest_id", "=", tax.id), @@ -962,293 +1095,185 @@ def _generate_due_vat_prepare_autoliq_struct(self, speedy): ) % tax.display_name ) - fr_vat_type = tax_map.position_id.fr_vat_type - autoliq_taxedop_type2accounts[fr_vat_type] |= account + autoliq_type = tax_map.position_id.fr_vat_type + if autoliq_type == "intracom_b2b": + autoliq_type = "intracom" + autoliq_taxedop_type2accounts[autoliq_type] |= account return ( autoliq_taxedop_type2accounts, - autoliq_vat_accounts, autoliq_vat_account2rate, autoliq_tax2rate, ) - def _generate_due_vat_autoliq_vat_to_pay( - self, speedy, autoliq_vat_account2rate, rate2logs - ): - # Generate autoliq logs for boxes 08, 09, 9A - # For autoliq, we don't do VAT on payment, we do VAT on debit - # Check that these autoliq due accounts 4452xx are empty at start of period - for account, rate_int in autoliq_vat_account2rate.items(): - balance = account._fr_vat_get_balance("base_domain_end", speedy) * -1 - if not speedy["currency"].is_zero(balance): - rate2logs[rate_int].append( - { - "account_id": account.id, - "compute_type": "balance", - "amount": balance, - } - ) - - def _generate_due_vat_taxed_op_extracom( - self, - speedy, - autoliq_vat_account2rate, - autoliq_taxedop_type2accounts, - taxedop_type2logs, - ): - # Taxable operations - Autoliquidation Extra EU - # Box B4: Achats de biens ou presta de services réalisés auprès d'un - # assujetti non établi en France (art 283-1 du CGI) - for account in autoliq_taxedop_type2accounts["extracom"]: - vat_amount = account._fr_vat_get_balance("base_domain_end", speedy) * -1 - if not speedy["currency"].is_zero(vat_amount): - rate_int = autoliq_vat_account2rate[account] - base = speedy["currency"].round(vat_amount * 10000 / rate_int) - taxedop_type2logs["autoliq_extracom"].append( - { - "account_id": account.id, - "compute_type": "computed_base", - "amount": base, - "note": _("VAT Amount %s, Rate %.2f%%, Base %s") - % ( - format_amount(self.env, vat_amount, speedy["currency"]), - rate_int / 100, - format_amount(self.env, base, speedy["currency"]), - ), - } - ) - - def _generate_due_vat_intracom_taxed_op( - self, - speedy, - autoliq_vat_account2rate, - autoliq_taxedop_type2accounts, - rate2product_ratio, - taxedop_type2logs, - ): - # Compute boxes A3, B2 and 17 - autoliq_intracom_product_logs = [] # for box 17 - - for account in autoliq_taxedop_type2accounts["intracom_b2b"]: - vat_amount = account._fr_vat_get_balance("base_domain_end", speedy) * -1 - if not speedy["currency"].is_zero(vat_amount): - rate_int = autoliq_vat_account2rate[account] - product_ratio = rate2product_ratio[rate_int] - service_ratio = 100 - product_ratio - base = speedy["currency"].round(vat_amount * 10000 / rate_int) - product_base = 0 - if not float_is_zero(product_ratio, precision_digits=2): - # Box B2 - product_base = round(base * product_ratio / 100, 2) - taxedop_type2logs["autoliq_intracom_product"].append( - { - "account_id": account.id, - "compute_type": "computed_base", - "amount": product_base, - "note": _( - "VAT Amount %s, Rate %.2f%%, Base %s, " - "Product Ratio %.2f%%, Product Base %s" - ) - % ( - format_amount(self.env, vat_amount, speedy["currency"]), - rate_int / 100, - format_amount(self.env, base, speedy["currency"]), - product_ratio, - format_amount( - self.env, product_base, speedy["currency"] - ), - ), - } - ) - # Box 17 - product_vat_amount = round(vat_amount * product_ratio / 100, 2) - autoliq_intracom_product_logs.append( - { - "account_id": account.id, - "compute_type": "computed_vat_amount", - "amount": product_vat_amount, - "note": _( - "VAT amount %s, Product Ratio %.2f%%, " - "VAT Product Amount %s" - ) - % ( - format_amount(self.env, vat_amount, speedy["currency"]), - product_ratio, - format_amount( - self.env, product_vat_amount, speedy["currency"] - ), - ), - } - ) - - # Box A3 - service_base = round(base - product_base, 2) - if not float_is_zero(service_base, precision_digits=2): - taxedop_type2logs["autoliq_intracom_service"].append( - { - "account_id": account.id, - "compute_type": "computed_base", - "amount": service_base, - "note": _( - "VAT Amount %s, Rate %.2f%%, Base %s, " - "Service Ratio %.2f%%, Service Base %s" - ) - % ( - format_amount(self.env, vat_amount, speedy["currency"]), - rate_int / 100, - format_amount(self.env, base, speedy["currency"]), - service_ratio, - format_amount( - self.env, service_base, speedy["currency"] - ), - ), - } - ) - return autoliq_intracom_product_logs - - def _compute_rate2product_ratio( + def _compute_autoliq_rate2product_ratio( self, speedy, autoliq_taxedop_type2accounts, autoliq_tax2rate ): - rate2total = defaultdict(float) - rate2product = defaultdict(float) - autoliq_vat_move_lines = speedy["aml_obj"].search( - [ - ("account_id", "in", autoliq_taxedop_type2accounts["intracom_b2b"].ids), - ("balance", "!=", 0), - ("full_reconcile_id", "=", False), - ] - + speedy["base_domain_end"] - ) + autoliq_rate2product_ratio = { + "intracom": {}, # {2000: 54.80, 1000: 24.67, ...} + "extracom": {}, + } + for autoliq_type in ["intracom", "extracom"]: + rate2total = defaultdict(float) + rate2product = defaultdict(float) - autoliq_vat_moves = autoliq_vat_move_lines.move_id - product_account_prefixes = self._get_product_account_prefixes() - for move in autoliq_vat_moves: - if move.move_type not in ("in_invoice", "in_refund"): - raise UserError( - _( - "Journal entry '%s' uses an intracom autoliquidation due VAT " - "account but is not a supplier invoice/refund. " - "This scenario is not supported." - ) - % move.display_name - ) - for line in move.invoice_line_ids.filtered(lambda x: not x.display_type): - rate_int = 0 - for tax in line.tax_ids: - if tax in autoliq_tax2rate: - rate_int = autoliq_tax2rate[tax] - if rate_int: - rate2total[rate_int] += line.balance - # If we have a product, we use its type and is_accessory_cost - # to determine if it's a product or service - # If we don't have a product, we use the account - if line.product_id: - if ( - line.product_id.type in ("product", "consu") - or line.product_id.is_accessory_cost - ): - rate2product[rate_int] += line.balance - else: - if line.account_id.code.startswith(product_account_prefixes): - rate2product[rate_int] += line.balance - else: + autoliq_vat_move_lines = speedy["aml_obj"].search( + [ + ( + "account_id", + "in", + autoliq_taxedop_type2accounts[autoliq_type].ids, + ), + ("balance", "!=", 0), + ("full_reconcile_id", "=", False), + ] + + speedy["base_domain_end"] + ) + + autoliq_vat_moves = autoliq_vat_move_lines.move_id + for move in autoliq_vat_moves: + if move.move_type not in ("in_invoice", "in_refund"): raise UserError( _( - "There is a problem on the intracom vendor bill/refund '%s': " - "check that the invoice lines have a single autoliquidation " - "tax, and not the old dual-tax system for autoliquidation " - "which was used by Odoo up to version 12.0 included." + "Journal entry '%(move)s' is dated before (or on) " + "%(end_date)s and has an unreconciled line with an " + "%(autoliq_type)s autoliquidation due VAT " + "account, but it is not a supplier invoice/refund. " + "That line with the intracom autoliquidation due VAT account " + "should be reconciled.", + move=move.display_name, + autoliq_type=autoliq_type, + end_date=format_date(self.env, self.end_date), ) - % move.display_name ) + for line in move.invoice_line_ids.filtered( + lambda x: not x.display_type + ): + rate_int = 0 + for tax in line.tax_ids: + if tax in autoliq_tax2rate: + rate_int = autoliq_tax2rate[tax] + if rate_int: + rate2total[rate_int] += line.balance + product_or_service = line._fr_is_product_or_service() + if product_or_service == "product": + rate2product[rate_int] += line.balance + else: + raise UserError( + _( + "There is a problem on the intracom vendor bill/refund '%s': " + "check that the invoice lines have a single autoliquidation " + "tax, and not the old dual-tax system for autoliquidation " + "which was used by Odoo up to version 12.0 included." + ) + % move.display_name + ) - rate2product_ratio = {} - for rate_int, total in rate2total.items(): - productratio = 0 - if not speedy["currency"].is_zero(total): - productratio = round(100 * rate2product[rate_int] / total, 2) - rate2product_ratio[rate_int] = productratio - - return rate2product_ratio + for rate_int, total in rate2total.items(): + productratio = 0 + if not speedy["currency"].is_zero(total): + productratio = round(100 * rate2product[rate_int] / total, 2) + autoliq_rate2product_ratio[autoliq_type][rate_int] = productratio - @api.model - def _get_product_account_prefixes(self): - return ( - "21", - "601", - "602", - "605", - "606", - "607", - "6091", - "6092", - "6095", - "6096", - "6097", - "6181", - "6183", - "6232", - "6234", - "6236", - ) + return autoliq_rate2product_ratio - def _generate_due_vat_create_vat_to_pay_lines(self, speedy, rate2logs): + def _generate_taxed_op_and_due_vat_lines(self, speedy, type_rate2logs): # Create boxes 08, 09, 9B (columns base HT et Taxe due) - rate2box = {} # rate as integer x 100 i.e. 550 for 5,5% - due_vat_boxes = speedy["box_obj"].search( - [ - ("box_type", "=", "due_vat"), - ("due_vat_rate", ">", 0), - ("due_vat_base_box_id", "!=", False), - ] - ) - for due_vat_box in due_vat_boxes: - rate2box[int(due_vat_box.due_vat_rate)] = due_vat_box - if not rate2box: - raise UserError( - _( - "Problem in the configuration of the due VAT boxes. " - "This should never happen." - ) + vat_group_rate2box = {} + for key_vat_group in speedy["vat_groups"]: + vat_group_rate2box[key_vat_group] = {} # {2000: box_rec, 1000, box_rec} + for vat_group in vat_group_rate2box.keys(): + boxes = speedy["box_obj"].search( + [ + ("meaning_id", "=like", "due_vat_%s_%%" % vat_group), + ("due_vat_rate", ">", 0), + ("due_vat_base_box_id", "!=", False), + ] ) - - for rate_int, logs in rate2logs.items(): - if logs: - if rate_int not in rate2box: - raise UserError( - _("No Due VAT box found for VAT rate %.2f%%.") % rate_int / 100 + for box in boxes: + vat_group_rate2box[vat_group][int(box.due_vat_rate)] = box + + box2logs = defaultdict(list) + # Prepare box2logs for Block A and Block B VAT amounts + for ptype, rate2logs in type_rate2logs.items(): + for rate_int, logs in rate2logs.items(): + if not logs: + continue + assert isinstance(rate_int, int) + total_vat_amount = sum([log["amount"] for log in logs]) + vat_group = False + for key_vat_group in speedy["vat_groups"]: + if ptype.startswith(key_vat_group): + vat_group = key_vat_group + assert vat_group + # Generate Base + base_logs = [] + for log in logs: + base_amount = speedy["currency"].round( + log["amount"] * 10000 / rate_int ) - box = rate2box[rate_int] - vals = { - "parent_id": self.id, - "box_id": box.id, - "log_ids": [(0, 0, x) for x in logs], - } - line = speedy["line_obj"].create(vals) - box_base = box.due_vat_base_box_id - rate = rate_int / 100 - base_vals = { - "parent_id": self.id, - "box_id": box_base.id, - "log_ids": [ - ( - 0, - 0, - { - "compute_type": "rate", - "amount": line.value_float * 100 / rate, - "note": "VAT Amount %s, Rate %.2f%%, " - "Base = VAT Amount / Rate" - % ( - format_amount( - self.env, line.value_float, speedy["currency"] - ), - rate, - ), - }, + note = _( + "%(start_note)s, Rate %(rate).2f%% → Base %(base_amount)s", + start_note=log.get( + "note", + _("VAT amount %s") + % format_amount( + self.env, log["amount"], speedy["currency"] + ), + ), + rate=rate_int / 100, + base_amount=format_amount( + self.env, base_amount, speedy["currency"] + ), + ) + compute_type = "base_from_%s" % log["compute_type"] + base_logs.append( + dict( + log, + note=note, + compute_type=compute_type, + amount=base_amount, ) - ], + ) + + # NEGATIVE + if speedy["currency"].compare_amounts(total_vat_amount, 0) < 0: + box2logs["negative_due_vat"] += logs + box2logs["negative_due_vat_%s" % vat_group] += logs + # Base + box2logs["negative_taxed_op"] += base_logs + + # POSITIVE + else: + box = vat_group_rate2box[vat_group][rate_int] + box2logs[box] += logs + box2logs["taxed_op_%s" % ptype] += base_logs + + for box, logs in box2logs.items(): + line = self._create_line(speedy, logs, box) + box_rec = line.box_id + if box_rec.meaning_id and box_rec.meaning_id.startswith( + ("due_vat_regular_", "due_vat_extracom_product_") + ): + rate_int = box_rec.due_vat_rate + assert isinstance(rate_int, int) + assert rate_int > 0 + base_amount = line.value_float * 10000 / rate_int + log_base_vat = { + "compute_type": "rate", + "amount": base_amount, + "note": _( + "VAT amount %(vat_amount)s, Rate %(rate).2f%% → " + "Base %(base_amount)s", + vat_amount=format_amount( + self.env, line.value_float, speedy["currency"] + ), + rate=rate_int / 100, + base_amount=format_amount( + self.env, base_amount, speedy["currency"] + ), + ), } - speedy["line_obj"].create(base_vals) + self._create_line(speedy, [log_base_vat], box_rec.due_vat_base_box_id) def _generate_due_vat_monaco(self, speedy, sale_vat_accounts): # Dont TVA sur opérations à destination de Monaco @@ -1277,23 +1302,56 @@ def _generate_due_vat_monaco(self, speedy, sale_vat_accounts): "compute_type": "computed_vat_amount", "amount": vat_amount, "origin_move_id": mline.move_id.id, - "note": _("Monaco customer '%s', VAT amount %s") - % ( - mline.partner_id.display_name, - format_amount(self.env, vat_amount, speedy["currency"]), + "note": _( + "%(invoice)s of customer %(partner)s from Monaco, " + "VAT amount %(vat_amount)s", + invoice=mline.move_id.name, + partner=mline.partner_id.display_name, + vat_amount=format_amount( + self.env, vat_amount, speedy["currency"] + ), ), } ) return monaco_box_logs - def _create_line(self, speedy, logs, box_type): + def _create_line(self, speedy, logs, box, negative_box=None): + """Box argument can be a meaning_id or a box""" + line = False if logs: + if isinstance(box, str): + box = speedy["meaning_id2box"][box] + if negative_box: + total = sum([log["amount"] for log in logs]) + if speedy["currency"].compare_amounts(total, 0) < 0: + speedy["negative_box2logs"][negative_box] += logs + return False vals = { "parent_id": self.id, - "box_id": speedy["box_obj"]._box_from_single_box_type(box_type).id, + "box_id": box.id, "log_ids": [(0, 0, x) for x in logs], } - speedy["line_obj"].create(vals) + line = speedy["line_obj"].create(vals) + speedy["box2value"][box] = line.value + return line + + def _update_line(self, speedy, logs_to_add, box): + line = speedy["line_obj"].search( + [("box_id", "=", box.id), ("parent_id", "=", self.id)] + ) + assert line + if not isinstance(logs_to_add, list): + logs_to_add = [logs_to_add] + old_value = line.value + line.write({"log_ids": [(0, 0, vals) for vals in logs_to_add]}) + new_value = line.value + speedy["box2value"][line.box_id] = new_value + logger.info( + "Update line with box %s: old value %s new value %s", + box.display_name, + old_value, + new_value, + ) def _vat_on_payment(self, in_or_out, vat_account_ids, speedy): assert in_or_out in ("in", "out") @@ -1349,8 +1407,12 @@ def _vat_on_payment(self, in_or_out, vat_account_ids, speedy): ): amount = speedy["currency"].round(line.balance) * vat_sign note = _( - "Invoice/refund is unpaid, Unpaid VAT amount %s" - ) % format_amount(self.env, amount, speedy["currency"]) + "%(invoice)s (%(partner)s) is unpaid, " + "Unpaid VAT amount %(amount)s", + invoice=unpaid_inv.name, + partner=unpaid_inv.commercial_partner_id.display_name, + amount=format_amount(self.env, amount, speedy["currency"]), + ) account2logs[line.account_id].append( { "note": note, @@ -1420,21 +1482,29 @@ def _vat_on_payment(self, in_or_out, vat_account_ids, speedy): if fully_unpaid: amount = speedy["currency"].round(balance) note = _( - "Invoice/refund was unpaid on %s, Unpaid VAT amount %s" - ) % ( - speedy["end_date_formatted"], - format_amount(self.env, amount, speedy["currency"]), + "%(invoice)s (%(partner)s) was unpaid on %(date)s, " + "Unpaid VAT amount %(amount)s", + invoice=move.name, + partner=move.commercial_partner_id.display_name, + date=speedy["end_date_formatted"], + amount=format_amount(self.env, amount, speedy["currency"]), ) else: amount = speedy["currency"].round(balance * unpaid_ratio) note = _( - "%d%% of the invoice/refund was unpaid on %s, " - "VAT amount %s => Unpaid VAT amount %s" - ) % ( - int(round(unpaid_ratio * 100)), - speedy["end_date_formatted"], - format_amount(self.env, balance, speedy["currency"]), - format_amount(self.env, amount, speedy["currency"]), + "%(unpaid_ratio)d%% of %(invoice)s (%(partner)s) " + "was unpaid on %(date)s, VAT amount %(total_vat_amount)s → " + "Unpaid VAT amount %(unpaid_vat_amount)s", + unpaid_ratio=int(round(unpaid_ratio * 100)), + invoice=move.name, + partner=move.commercial_partner_id.display_name, + date=speedy["end_date_formatted"], + total_vat_amount=format_amount( + self.env, balance, speedy["currency"] + ), + unpaid_vat_amount=format_amount( + self.env, amount, speedy["currency"] + ), ) account2logs[line.account_id].append( @@ -1454,7 +1524,7 @@ def _generate_deductible_vat(self, speedy): # vat_account2type is a dict with: # key = deduc VAT account # value = 'asset', 'regular' or 'autoliq' - boxtype2vat_accounts = { + box_meaning_id2vat_accounts = { "deductible_vat_asset": [ account for (account, vtype) in vat_account2type.items() @@ -1478,11 +1548,11 @@ def _generate_deductible_vat(self, speedy): ) # Generate return line for the 2 deduc VAT boxes - for box_type, vat_accounts in boxtype2vat_accounts.items(): + for box_meaning_id, vat_accounts in box_meaning_id2vat_accounts.items(): logger.info( - "Deduc VAT accounts: %s go to box type %s", + "Deduc VAT accounts: %s go to box meaning_id %s", ", ".join([x.code for x in vat_accounts]), - box_type, + box_meaning_id, ) logs = [] for vat_account in vat_accounts: @@ -1498,18 +1568,13 @@ def _generate_deductible_vat(self, speedy): ) # minus unpaid vat_on_payment supplier invoices logs += vat_on_payment_account2logs[vat_account] - self._create_line(speedy, logs, box_type) + self._create_line( + speedy, logs, box_meaning_id, negative_box="negative_deductible_vat" + ) def _generate_deductible_vat_prepare_struct(self, speedy): vat_account2type = {} - deduc_vat_taxes = speedy["at_obj"].search( - speedy["company_domain"] - + [ - ("amount_type", "=", "percent"), - ("amount", ">", 0), - ("type_tax_use", "=", "purchase"), - ] - ) + deduc_vat_taxes = speedy["at_obj"].search(speedy["purchase_vat_tax_domain"]) for tax in deduc_vat_taxes: line = tax.invoice_repartition_line_ids.filtered( lambda x: x.repartition_type == "tax" @@ -1541,10 +1606,12 @@ def _generate_deductible_vat_prepare_struct(self, speedy): ): raise UserError( _( - "Account '%s' is used for several kinds of " - "deductible VAT taxes (%s and %s)." + "Account '%(account)s' is used for several kinds of " + "deductible VAT taxes (%(type1)s and %(type2)s).", + account=vat_account.display_name, + type1=vtype, + type2=vat_account2type[vat_account], ) - % (vat_account.display_name, vtype, vat_account2type[vat_account]) ) vat_account2type[vat_account] = vtype @@ -1562,15 +1629,15 @@ def _generate_deductible_vat_prepare_struct(self, speedy): def _generate_operation_untaxed(self, speedy): self.ensure_one() fp_types = ["intracom_b2b", "intracom_b2c", "extracom", "france_exo"] - fpositions2boxtype = {} + fpositions2box_meaning_id = {} for fp_type in fp_types: - box_type = "untaxed_op_%s" % fp_type + box_meaning_id = "untaxed_op_%s" % fp_type fpositions = speedy["afp_obj"].search( speedy["company_domain"] + [("fr_vat_type", "=", fp_type)] ) - fpositions2boxtype[fpositions] = box_type - boxtype2accounts = {} - for fpositions, box_type in fpositions2boxtype.items(): + fpositions2box_meaning_id[fpositions] = box_meaning_id + box_meaning_id2accounts = {} + for fpositions, box_meaning_id in fpositions2box_meaning_id.items(): for fposition in fpositions: revenue_account_mappings = fposition.account_ids.filtered( lambda x: x.account_src_id.code.startswith("7") @@ -1584,11 +1651,13 @@ def _generate_operation_untaxed(self, speedy): body=_( "No account mapping on fiscal position " "%s. If this fiscal position is not " + "data-oe-id=%(fiscal_position_id)d>%(fiscal_position)s. " + "If this fiscal position is not " "only used for purchase but also for sale, you must " - "configure an account mapping on revenue accounts." + "configure an account mapping on revenue accounts.", + fiscal_position_id=fposition.id, + fiscal_position=fposition.display_name, ) - % (fposition.id, fposition.display_name) ) else: raise UserError( @@ -1596,14 +1665,18 @@ def _generate_operation_untaxed(self, speedy): % fposition.display_name ) for mapping in revenue_account_mappings: - if box_type not in boxtype2accounts: - boxtype2accounts[box_type] = mapping.account_dest_id + if box_meaning_id not in box_meaning_id2accounts: + box_meaning_id2accounts[ + box_meaning_id + ] = mapping.account_dest_id else: - boxtype2accounts[box_type] |= mapping.account_dest_id + box_meaning_id2accounts[ + box_meaning_id + ] |= mapping.account_dest_id # check that an account is not present in several fiscal positions # and create lines account_unicity = [] - for (box_type, accounts) in boxtype2accounts.items(): + for box_meaning_id, accounts in box_meaning_id2accounts.items(): if account_unicity: for acc in accounts: if acc.id in account_unicity: @@ -1627,61 +1700,19 @@ def _generate_operation_untaxed(self, speedy): "compute_type": "period_balance", } ) - self._create_line(speedy, logs, box_type) - - def _switch_negative_boxes(self, speedy): - negative_lines = speedy["line_obj"].search( - [ - ("value", "<", 0), - ("box_edi_type", "=", "MOA"), - ("parent_id", "=", self.id), - ] - ) - logger.info("%d negative lines detected", len(negative_lines)) - for line in negative_lines: - # delete negative due VAT base lines - if line.box_box_type == "due_vat_base": - line.unlink() - continue - negative_box = line.box_id.negative_switch_box_id - if not negative_box: - raise UserError( - _( - "Box '%s' has a negative value (%s) but it doesn't have a " - "negative switch box." - ) - % (line.box_id.display_name, line.value) - ) - negative_line = speedy["line_obj"].search( - [ - ("parent_id", "=", self.id), - ("box_id", "=", negative_box.id), - ], - limit=1, + self._create_line( + speedy, logs, box_meaning_id, negative_box="negative_untaxed_op" ) - if not negative_line: - negative_line = speedy["line_obj"].create( - { - "box_id": negative_box.id, - "parent_id": self.id, - "negative_switch": True, - } - ) - # Transfer log line to the negative box line - for log in line.log_ids: - vals = { - "parent_id": negative_line.id, - } - log.write(vals) - line.unlink() + + def _generate_negative_boxes(self, speedy): + for box, logs in speedy["negative_box2logs"].items(): + self._create_line(speedy, logs, box) def create_reimbursement_line(self, amount): assert isinstance(amount, int) assert amount > 0 speedy = self._prepare_speedy() - box = self.env["l10n.fr.account.vat.box"]._box_from_single_box_type( - "vat_reimbursement" - ) + box = speedy["meaning_id2box"]["vat_reimbursement"] account_id = self._get_box_account(box).id log_vals = { "amount": amount, @@ -1706,7 +1737,7 @@ def remove_credit_vat_reimbursement(self): speedy = self._prepare_speedy() self.message_post(body=_("Credit VAT Reimbursement removed.")) line_to_delete = speedy["line_obj"].search( - [("box_box_type", "=", "vat_reimbursement"), ("parent_id", "=", self.id)] + [("box_meaning_id", "=", "vat_reimbursement"), ("parent_id", "=", self.id)] ) line_to_delete.unlink() self._generate_ca3_bottom_totals(speedy) @@ -1744,8 +1775,13 @@ def _prepare_account_move(self, speedy): for line in self.line_ids.filtered(lambda x: x.box_accounting_method): method = line.box_accounting_method sign = method == "credit" and 1 or -1 - if line.box_box_type == "manual" and line.value_manual_int: - account = self._get_box_account(line.box_id, raise_if_none=True) + if line.box_manual and line.value_manual_int: + account = line.manual_account_id + if not account: + raise UserError( + _("Account is missing on manual line '%s'.") + % line.box_id.display_name + ) account2amount[(account, line.manual_analytic_account_id)] += ( line.value_manual_int * sign ) @@ -1858,7 +1894,7 @@ def _create_draft_account_move(self, speedy): move = speedy["am_obj"].create(self._prepare_account_move(speedy)) return move - def _get_box_account(self, box, raise_if_none=True): + def _get_box_account(self, box, raise_if_none=True, raise_if_not_unique=True): self.ensure_one() # I can't use speedy because this method is also called by onchange company_id = self.company_id.id @@ -1886,12 +1922,14 @@ def _get_box_account(self, box, raise_if_none=True): if raise_if_none: raise UserError( _( - "Box '%s' is configured with Manual Account Code '%s', " - "but there are no accounts that start with this code in " - "company '%s'. You may want to setup a specific account " - "on that box." + "Box '%(box)s' is configured with Manual Account Code " + "'%(account_code)s', but there are no accounts that start " + "with this code in company '%(company)s'. You may want to " + "setup a specific account on that box.", + box=box.display_name, + account_code=box.account_code, + company=self.company_id.display_name, ) - % (box.display_name, box.account_code, self.company_id.display_name) ) return None if len(accounts) > 1: @@ -1901,6 +1939,18 @@ def _get_box_account(self, box, raise_if_none=True): box.account_code, self.company_id.display_name, ) + if raise_if_not_unique: + raise UserError( + _( + "There are %(account_count)s accounts whose code start with " + "%(account_prefix)s in company '%(company)s' : %(account_list)s. " + "Odoo expects to have only one.", + account_count=len(accounts), + account_prefix=box.account_code, + company=self.company_id.display_name, + account_list=", ".join([a.code for a in accounts]), + ) + ) return accounts[0] def unlink(self): @@ -2050,25 +2100,25 @@ def generate_ca3_attachment(self): packet1.seek(0) packet2.seek(0) packet3.seek(0) - watermark_pdf_reader_p1 = PdfFileReader(packet1) - watermark_pdf_reader_p2 = PdfFileReader(packet2) - watermark_pdf_reader_p3 = PdfFileReader(packet3) + watermark_pdf_reader_p1 = PdfReader(packet1) + watermark_pdf_reader_p2 = PdfReader(packet2) + watermark_pdf_reader_p3 = PdfReader(packet3) # read your existing PDF ca3_original_fd = tools.file_open( "l10n_fr_account_vat_return/report/CA3_cerfa.pdf", "rb" ) - ca3_original_reader = PdfFileReader(ca3_original_fd) - ca3_writer = PdfFileWriter() + ca3_original_reader = PdfReader(ca3_original_fd) + ca3_writer = PdfWriter() # add the "watermark" (which is the new pdf) on the existing page - page1 = ca3_original_reader.getPage(0) - page2 = ca3_original_reader.getPage(1) - page3 = ca3_original_reader.getPage(2) - page1.mergePage(watermark_pdf_reader_p1.getPage(0)) - page2.mergePage(watermark_pdf_reader_p2.getPage(0)) - page3.mergePage(watermark_pdf_reader_p3.getPage(0)) - ca3_writer.addPage(page1) - ca3_writer.addPage(page2) - ca3_writer.addPage(page3) + page1 = ca3_original_reader.pages[0] + page2 = ca3_original_reader.pages[1] + page3 = ca3_original_reader.pages[2] + page1.merge_page(watermark_pdf_reader_p1.pages[0]) + page2.merge_page(watermark_pdf_reader_p2.pages[0]) + page3.merge_page(watermark_pdf_reader_p3.pages[0]) + ca3_writer.add_page(page1) + ca3_writer.add_page(page2) + ca3_writer.add_page(page3) # finally, write "output" to a real file out_ca3_io = io.BytesIO() ca3_writer.write(out_ca3_io) @@ -2110,11 +2160,12 @@ class L10nFrAccountVatReturnLine(models.Model): ) box_push_box_id = fields.Many2one(related="box_id.push_box_id", store=True) box_push_sequence = fields.Integer(related="box_id.push_sequence", store=True) - box_box_type = fields.Selection(related="box_id.box_type", store=True) + box_meaning_id = fields.Char(related="box_id.meaning_id", store=True) + box_manual = fields.Boolean(related="box_id.manual", store=True) box_name = fields.Char(related="box_id.name", store=True) box_display_type = fields.Selection(related="box_id.display_type", store=True) box_sequence = fields.Integer(related="box_id.sequence", store=True) - negative_switch = fields.Boolean(readonly=True) + box_negative = fields.Boolean(related="box_id.negative", store=True) value = fields.Integer( compute="_compute_value", store=True ) # MOA, QTY, PCD, CCI_TBX (manual + auto) @@ -2123,7 +2174,9 @@ class L10nFrAccountVatReturnLine(models.Model): ) # MOA, QTY, PCD (auto) value_bool = fields.Boolean(string="Value (Y/N)") # CCI_TBX (manual + auto) value_manual_int = fields.Integer(string="Integer Value") # MOA, QTY, PCD (manual) - value_char = fields.Char(string="Text") # FTX (manual + auto), except for BA field + value_char = fields.Char( + string="Text" + ) # FTX, NAD (manual + auto), except for BA field log_ids = fields.One2many( "l10n.fr.account.vat.return.line.log", "parent_id", @@ -2135,12 +2188,18 @@ class L10nFrAccountVatReturnLine(models.Model): string="Account", compute="_compute_manual_account_id", check_company=True, + readonly=False, + store=True, + domain="[('company_id', '=', company_id), ('deprecated', '=', False)]", ) manual_analytic_account_id = fields.Many2one( "account.analytic.account", string="Analytic Account", compute="_compute_manual_account_id", check_company=True, + readonly=False, + store=True, + domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]", ) # idea: field value_tree type fields.Char() that would agregate @@ -2156,9 +2215,9 @@ def _compute_manual_account_id(self): for line in self: manual_account_id = False manual_analytic_account_id = False - if line.box_id and line.box_id.box_type == "manual" and line.parent_id: + if line.box_id and line.box_id.manual and line.parent_id: account = line.parent_id._get_box_account( - line.box_id, raise_if_none=False + line.box_id, raise_if_none=False, raise_if_not_unique=False ) if account: manual_account_id = account.id @@ -2176,13 +2235,19 @@ def _check_values(self): for line in self: if line.value_manual_int < 0: raise UserError( - _("The value of line '%s' (%d) is negative.") - % (line.box_id.display_name, line.value_manual_int) + _( + "The value of line '%(box)s' (%(value)d) is negative.", + box=line.box_id.display_name, + value=line.value_manual_int, + ) ) if line.box_id.edi_type == "PCD" and line.value_manual_int > 100: raise UserError( - _("The value of line '%s' (%d) is over 100.") - % (line.box_id.display_name, line.value_manual_int) + _( + "The value of line '%(box)s' (%(value)d) is over 100.", + box=line.box_id.display_name, + value=line.value_manual_int, + ) ) @api.depends( @@ -2191,7 +2256,7 @@ def _check_values(self): "value_bool", "value_manual_int", "box_id", - "negative_switch", + "box_id.negative", ) def _compute_value(self): rg_res = self.env["l10n.fr.account.vat.return.line.log"].read_group( @@ -2201,14 +2266,21 @@ def _compute_value(self): for line in self: value = 0 value_float = 0 - sign = line.negative_switch and -1 or 1 + sign = line.box_id.negative and -1 or 1 if not line.box_id.display_type: if line.box_id.edi_type in ("MOA", "QTY", "PCD"): - if line.box_id.box_type == "manual": + if line.box_id.manual: value = line.value_manual_int else: value_float = mapped_data.get(line.id, 0) - value = int(round(value_float)) + # Python 3.10.12 + # >>> round(40147.5) + # 40148 + # >>> round(40146.5) + # 40146 + # it's why I used odoo's float_round + # which doesn't have this problem + value = int(float_round(value_float, precision_digits=0)) elif line.box_id.edi_type == "CCI_TBX": value = int(line.value_bool) line.value = value * sign @@ -2244,12 +2316,27 @@ class L10nFrAccountVatReturnLineLog(models.Model): [ ("period_balance", "Period Balance"), # used for untaxed operations ("balance", "Ending Balance"), # used for VAT boxes + ("balance_ratio", "Ending Balance x Ratio"), # used for VAT boxes ("unpaid_vat_on_payment", "Unpaid VAT on Payment"), # used for VAT boxes - ("computed_base", "Computed Base"), # used for base VAT boxes - ("computed_vat_amount", "Computed VAT Amount"), + ( + "base_from_balance", + "Base from Ending Balance", + ), # used for taxed operations + ( + "base_from_balance_ratio", + "Base from Ending Balance x Ratio", + ), # used for taxed operations + ( + "base_from_unpaid_vat_on_payment", + "Base from Unpaid VAT on Payment", + ), # used for taxed operations + ("computed_vat_amount", "Computed VAT Amount"), # for Monaco ("rate", "VAT Amount / VAT Rate"), ("box", "Box Value"), # used for sum boxes (totals) ("manual", "Manual"), # used for credit VAT reimbursement line + # used to comply with stupid consistency controls that don't tolerate + # few € difference caused by rounding + ("adjustment", "Adjustment"), ], required=True, readonly=True, @@ -2258,26 +2345,27 @@ class L10nFrAccountVatReturnLineLog(models.Model): origin_move_id = fields.Many2one( "account.move", string="Source Invoice", readonly=True ) - origin_move_partner_id = fields.Many2one( - related="origin_move_id.commercial_partner_id", - string="Source Invoice Partner", - store=True, - ) note = fields.Char() - @api.constrains("parent_id", "account_id") - def _check_account_id(self): + @api.constrains("parent_id", "account_id", "compute_type") + def _check_log_line(self): for log in self: - if ( - log.parent_id - and log.parent_id.box_accounting_method - and not log.account_id - ): - raise ValidationError( - _( - "Error in the generation of the computation and " - "accounting details of box '%s': this box has an " - "accounting method but the account is not set." + if log.parent_id and log.parent_id.box_accounting_method: + if not log.account_id: + raise ValidationError( + _( + "Error in the generation of the computation and " + "accounting details of box '%s': this box has an " + "accounting method but the account is not set." + ) + % log.parent_id.box_id.display_name + ) + if log.compute_type == "adjustment": + raise ValidationError( + _( + "Error in the generation of box '%s': " + "it has an accounting method, so it cannot have " + "any adjustment line." + ) + % log.parent_id.box_id.display_name ) - % log.parent_id.box_id.display_name - ) diff --git a/l10n_fr_account_vat_return/models/res_company.py b/l10n_fr_account_vat_return/models/res_company.py index b1cd9ab7e..694b3fb03 100644 --- a/l10n_fr_account_vat_return/models/res_company.py +++ b/l10n_fr_account_vat_return/models/res_company.py @@ -311,9 +311,11 @@ def _test_common_product_dict( purchase_tax = self.env.ref(exo_tax_xmlid % (self.id, "purchase")) purchase_tax_ids = [(6, 0, [purchase_tax.id])] account_income_id = self._test_get_account("707500") - product_name = "Test-demo TVA %s %%" % real_vat_rate - if asset: - product_name += " immo" + product_name = "Test-demo %s%s TVA %s %%" % ( + product_type, + real_vat_rate, + asset and " immo" or "", + ) product = ppo.create( { "name": product_name, @@ -772,10 +774,14 @@ def _test_create_invoice_data( start_date, partner_dict["extracom"], [ - {"product_id": product_dict["service"][200].id, "price_unit": 300}, - {"product_id": product_dict["service"][100].id, "price_unit": 310}, - {"product_id": product_dict["service"][55].id, "price_unit": 3000}, - {"product_id": product_dict["service"][21].id, "price_unit": 3100}, + {"product_id": product_dict["product"][200].id, "price_unit": 200}, + {"product_id": product_dict["service"][200].id, "price_unit": 100}, + {"product_id": product_dict["product"][100].id, "price_unit": 110}, + {"product_id": product_dict["service"][100].id, "price_unit": 200}, + {"product_id": product_dict["product"][55].id, "price_unit": 500}, + {"product_id": product_dict["service"][55].id, "price_unit": 2500}, + {"product_id": product_dict["product"][21].id, "price_unit": 2000}, + {"product_id": product_dict["service"][21].id, "price_unit": 1100}, ], {start_date: "residual"}, ) diff --git a/l10n_fr_account_vat_return/readme/DESCRIPTION.rst b/l10n_fr_account_vat_return/readme/DESCRIPTION.rst index b4284235c..86c62623d 100644 --- a/l10n_fr_account_vat_return/readme/DESCRIPTION.rst +++ b/l10n_fr_account_vat_return/readme/DESCRIPTION.rst @@ -4,6 +4,9 @@ This module adds support for the French VAT declaration *CA3* (monthly or quarte * print the CA3 PDF, * generate the corresponding journal entry. -It can also be used for the smaller companies which have a yearly CA12 VAT declaration. But, for CA12, the generation of the PDF and the auto-fill of the form on impots.gouv.fr is not supported: you will have to manually copy the values on the online form. +It can also be used for the smaller companies which have a yearly CA12 VAT declaration. But, for CA12, the generation of the PDF and the auto-fill of the form on impots.gouv.fr is not supported: you will have to manually copy the values on the online by finding, for each CA3 box, the equivalent box in the CA12. -This module also supports declaration 3519 for the reimbursement of VAT credit. +This module also supports: + +* declaration 3519 for the reimbursement of VAT credit, +* declaration 3310-A (CA3 Appendix) for the additional taxes. diff --git a/l10n_fr_account_vat_return/tests/test_fr_account_vat_return.py b/l10n_fr_account_vat_return/tests/test_fr_account_vat_return.py index 67c909acf..e08c5a891 100644 --- a/l10n_fr_account_vat_return/tests/test_fr_account_vat_return.py +++ b/l10n_fr_account_vat_return/tests/test_fr_account_vat_return.py @@ -9,18 +9,26 @@ from odoo import fields from odoo.tests import tagged -from odoo.tests.common import TransactionCase +from odoo.tests.common import SavepointCase @tagged("post_install", "-at_install") -class TestFrAccountVatReturn(TransactionCase): - def setUp(self): - super().setUp() - self.today = datetime.now().date() - self.start_date = self.today + relativedelta(months=-1, day=1) - self.before_start_date = self.start_date + relativedelta(days=-1) - self.end_date = self.start_date + relativedelta(day=31) - self.first_creation_date = fields.Date.from_string("2022-01-01") +class TestFrAccountVatReturn(SavepointCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.env = cls.env(context=dict(cls.env.context, tracking_disable=True)) + cls.today = datetime.now().date() + cls.start_date = cls.today + relativedelta(months=-1, day=1) + cls.before_start_date = cls.start_date + relativedelta(days=-1) + cls.end_date = cls.start_date + relativedelta(day=31) + cls.first_creation_date = fields.Date.from_string("2022-01-01") + cls.on_invoice_company = cls.env["res.company"]._test_fr_vat_create_company( + company_name="FR Company VAT on_invoice", fr_vat_exigibility="on_invoice" + ) + cls.on_payment_company = cls.env["res.company"]._test_fr_vat_create_company( + company_name="FR Company VAT on_payment", fr_vat_exigibility="on_payment" + ) def _check_vat_return_result(self, vat_return, result): box2value = {} @@ -47,9 +55,7 @@ def _move_to_dict(self, move): return move_dict def test_vat_return_on_invoice(self): - company = self.env["res.company"]._test_fr_vat_create_company( - company_name="FR Company VAT on_invoice", fr_vat_exigibility="on_invoice" - ) + company = self.on_invoice_company currency = company.currency_id initial_credit_vat = 3333 company._test_create_move_init_vat_credit( @@ -65,25 +71,40 @@ def test_vat_return_on_invoice(self): ) self.assertEqual(vat_return.end_date, self.end_date) self.assertEqual(vat_return.state, "manual") - # Create a manual line redevance TV + # Create a manual line without rate + new_manual_account_id = self.env["account.account"].create( + { + "code": "635900", + "name": "Taxe spécifique", + "company_id": company.id, + "user_type_id": self.env.ref("account.data_account_type_expenses").id, + } + ) + self.env.ref("l10n_fr_account_vat_return.a_ud").with_company(company.id).write( + {"account_id": new_manual_account_id} + ) self.env["l10n.fr.account.vat.return.line"].create( { - "box_id": self.env.ref("l10n_fr_account_vat_return.a_jb").id, + "box_id": self.env.ref("l10n_fr_account_vat_return.a_ud").id, "value_manual_int": 134, "parent_id": vat_return.id, } ) # Create another manual line with a rate - manual_account_id = self.env["account.account"].create( - { - "code": "635820", - "name": "Taxe sur la diffusion de contenus audiovisuels", - "company_id": company.id, - "user_type_id": self.env.ref("account.data_account_type_expenses").id, - } + existing_manual_account_id = self.env["account.account"].search( + [ + ("code", "=", "635800"), + ("company_id", "=", company.id), + ( + "user_type_id", + "=", + self.env.ref("account.data_account_type_expenses").id, + ), + ], + limit=1, ) self.env.ref("l10n_fr_account_vat_return.a_kj").with_company(company.id).write( - {"account_id": manual_account_id} + {"account_id": existing_manual_account_id} ) self.env["l10n.fr.account.vat.return.line"].create( { @@ -97,20 +118,29 @@ def test_vat_return_on_invoice(self): expected_res = { "ca3_ca": 51510, # A "ca3_kh": 2210, # A3 HA intracom services + "ca3_dk": 2810, # A4 HA extracom products "ca3_cc": 2410, # B2 HA intracom products - "ca3_cg": 6710, # B4 HA extracom + "ca3_cg": 3900, # B4 HA extracom services "ca3_da": 750, # E1 Extracom "ca3_db": 1400, # E2 Autres opérations non imposables "ca3_dc": 150, # F2 livraisons intracom ###### - "ca3_fp": 730, # base 20% - "ca3_gp": 146, # montant collecté 20% - "ca3_fr": 810, # base 10% - "ca3_gr": 81, # montant collecté 10% - "ca3_fb": 28000, # base 5,5% - "ca3_gb": 1540, # montant collecté 5,5% - "ca3_mf": 33300, # base 2,1% - "ca3_me": 699, # montant collecté 2,1% + "ca3_fp": 530, # base 20% + "ca3_gp": 106, # montant collecté 20% + "ca3_fr": 700, # base 10% + "ca3_gr": 70, # montant collecté 10% + "ca3_fb": 27500, # base 5,5% + "ca3_gb": 1512, # montant collecté 5,5% + "ca3_mf": 31300, # base 2,1% + "ca3_me": 657, # montant collecté 2,1% + "ca3_lb": 200, # base autoliq import 20% + "ca3_lc": 40, # montant autoliq import 20% + "ca3_ld": 110, # base autoliq import 10% + "ca3_le": 11, # montant autoliq import 10% + "ca3_lh": 500, # base autoliq import 5.5% + "ca3_lj": 28, # montant autoliq import 5.5% + "ca3_lk": 2000, # base autoliq import 2,1% + "ca3_ll": 42, # montant autoliq import 2,1% "ca3_gh": 2466, # Total TVA collectée "ca3_gj": 141, # dont TVA sur acquisitions intracom "ca3_gk": 891, # dont TVA à Monaco @@ -120,7 +150,7 @@ def test_vat_return_on_invoice(self): "ca3_hd": initial_credit_vat, # report crédit TVA "ca3_hg": 5032, # total VAT deduc ###### - "a_jb": 134, + "a_ud": 134, "a_mk": 1000, "a_kj": 52, "a_hb": 186, @@ -145,10 +175,10 @@ def test_vat_return_on_invoice(self): ) ) self.assertFalse( - currency.compare_amounts(move_dict["635820"], expected_res["a_kj"]) + currency.compare_amounts(move_dict["635800"], expected_res["a_kj"]) ) self.assertFalse( - currency.compare_amounts(move_dict["635800"], expected_res["a_jb"]) + currency.compare_amounts(move_dict["635900"], expected_res["a_ud"]) ) # Test reimbursement @@ -216,9 +246,7 @@ def test_vat_return_on_invoice(self): self.assertTrue(line.full_reconcile_id) def test_vat_return_on_payment(self): - company = self.env["res.company"]._test_fr_vat_create_company( - company_name="FR Company VAT on_payment", fr_vat_exigibility="on_payment" - ) + company = self.on_payment_company currency = company.currency_id initial_credit_vat = 22 company._test_create_move_init_vat_credit( @@ -239,22 +267,31 @@ def test_vat_return_on_payment(self): expected_res = { "ca3_ca": 40148, # A "ca3_kh": 2210, # A3 HA intracom services + "ca3_dk": 2810, # A4 HA extracom products "ca3_cc": 2410, # B2 HA intracom products - "ca3_cg": 6710, # B4 HA extracom + "ca3_cg": 3900, # B4 HA extracom services "ca3_db": 1400, # E2 Autres opérations non imposables "ca3_dc": 150, # F2 livraisons intracom "ca3_de": 1500, # F8 régularisations # => replaces E1 because the extracom amount is negative ###### - "ca3_fp": 688, # base 20% - "ca3_gp": 138, # montant collecté 20% - "ca3_fr": 740, # base 10% - "ca3_gr": 74, # montant collecté 10% - "ca3_fb": 23750, # base 5,5% - "ca3_gb": 1306, # montant collecté 5,5% - "ca3_mf": 26300, # base 2,1% - "ca3_me": 552, # montant collecté 2,1% - "ca3_gh": 2070, # Total TVA collectée + "ca3_fp": 488, # base 20% + "ca3_gp": 98, # montant collecté 20% + "ca3_fr": 630, # base 10% + "ca3_gr": 63, # montant collecté 10% + "ca3_fb": 23250, # base 5,5% + "ca3_gb": 1279, # montant collecté 5,5% + "ca3_mf": 24300, # base 2,1% + "ca3_me": 510, # montant collecté 2,1% + "ca3_lb": 200, # base autoliq import 20% + "ca3_lc": 40, # montant autoliq import 20% + "ca3_ld": 110, # base autoliq import 10% + "ca3_le": 11, # montant autoliq import 10% + "ca3_lh": 500, # base autoliq import 5.5% + "ca3_lj": 28, # montant autoliq import 5.5% + "ca3_lk": 2000, # base autoliq import 2,1% + "ca3_ll": 42, # montant autoliq import 2,1% + "ca3_gh": 2071, # Total TVA collectée "ca3_gj": 141, # dont TVA sur acquisitions intracom "ca3_gk": 891, # dont TVA à Monaco ###### @@ -263,9 +300,9 @@ def test_vat_return_on_payment(self): "ca3_hd": initial_credit_vat, # report crédit TVA "ca3_hg": 1721, # total VAT deduc ###### - "ca3_ka": 349, # TVA à payer (ligne 16 - 23) - "ca3_nd": 349, # TVA nette due (ligne TD - X5) - "ca3_ke": 349, # Total à payer + "ca3_ka": 350, # TVA à payer (ligne 16 - 23) + "ca3_nd": 350, # TVA nette due (ligne TD - X5) + "ca3_ke": 350, # Total à payer } self._check_vat_return_result(vat_return, expected_res) move = vat_return.move_id @@ -308,10 +345,7 @@ def test_vat_return_on_payment(self): self.assertTrue(line.full_reconcile_id) def test_vat_return_on_invoice_negative(self): - company = self.env["res.company"]._test_fr_vat_create_company( - company_name="FR Company VAT on_invoice neg", - fr_vat_exigibility="on_invoice", - ) + company = self.on_invoice_company initial_credit_vat = 44 company._test_create_move_init_vat_credit( initial_credit_vat, self.before_start_date @@ -338,6 +372,26 @@ def test_vat_return_on_invoice_negative(self): ], {}, ) + company._test_create_invoice_with_payment( + "out_refund", + self.start_date, + partner_dict["extracom"], + [ + {"product_id": product_dict["product"][200].id, "price_unit": 300}, + {"product_id": product_dict["product"][100].id, "price_unit": 350}, + ], + {}, + ) + company._test_create_invoice_with_payment( + "out_refund", + self.start_date, + partner_dict["intracom_b2b"], + [ + {"product_id": product_dict["product"][200].id, "price_unit": 10}, + ], + {}, + ) + company._test_create_invoice_with_payment( "in_refund", self.start_date, @@ -365,10 +419,12 @@ def test_vat_return_on_invoice_negative(self): ) vat_return.manual2auto() expected_res = { + "ca3_de": 660, # F8 "ca3_ce": 300, # B5 regul "ca3_gg": 76, # 15 TVA antérieurement déduite à reverser "ca3_gh": 76, # Total TVA collectée - "ca3_hc": 50, # TVA déduc biens et services + "ca3_hc": 50, # Autre TVA à déduire + "ca3_hh": 50, # dont regul TVA collectée "ca3_hd": initial_credit_vat, # report crédit TVA "ca3_hg": 50 + initial_credit_vat, # total VAT deduc ###### @@ -376,3 +432,38 @@ def test_vat_return_on_invoice_negative(self): "ca3_jc": initial_credit_vat - 76 + 50, # Crédit TVA } self._check_vat_return_result(vat_return, expected_res) + + def test_vat_return_on_invoice_with_adjustment(self): + company = self.on_invoice_company + product_dict = company._test_prepare_product_dict() + partner_dict = company._test_prepare_partner_dict() + company._test_create_invoice_with_payment( + "out_invoice", + self.start_date, + partner_dict["france"], + [ + {"product_id": product_dict["product"][200].id, "price_unit": 100.4}, + {"product_id": product_dict["product"][55].id, "price_unit": 500.3}, + ], + {}, + ) + lfavro = self.env["l10n.fr.account.vat.return"] + vat_return = lfavro.create( + { + "company_id": company.id, + "start_date": self.start_date, + "vat_periodicity": "1", + } + ) + vat_return.manual2auto() + adj_log_line = self.env["l10n.fr.account.vat.return.line.log"].search( + [ + ("parent_parent_id", "=", vat_return.id), + ("compute_type", "=", "adjustment"), + ("amount", "=", -1), + ] + ) + self.assertEqual(len(adj_log_line), 1) + adj_log_line.parent_id.box_id = self.env["l10n.fr.account.vat.box"].search( + [("meaning_id", "=", "taxed_op_france")] + ) diff --git a/l10n_fr_account_vat_return/views/account_fiscal_position.xml b/l10n_fr_account_vat_return/views/account_fiscal_position.xml index 2323cc7b7..40b210987 100644 --- a/l10n_fr_account_vat_return/views/account_fiscal_position.xml +++ b/l10n_fr_account_vat_return/views/account_fiscal_position.xml @@ -1,18 +1,17 @@ - account.fiscal.position + name="inherit_id" + ref="account.view_account_position_form" + /> @@ -23,9 +22,9 @@ account.fiscal.position + name="inherit_id" + ref="account.view_account_position_tree" + /> @@ -33,5 +32,4 @@ - diff --git a/l10n_fr_account_vat_return/views/account_move.xml b/l10n_fr_account_vat_return/views/account_move.xml index c61209199..83c292f5e 100644 --- a/l10n_fr_account_vat_return/views/account_move.xml +++ b/l10n_fr_account_vat_return/views/account_move.xml @@ -1,11 +1,10 @@ - account.move @@ -15,10 +14,10 @@ + name="out_vat_on_payment" + attrs="{'invisible': ['|', ('move_type', 'not in', ('out_invoice', 'out_refund')), ('fiscal_position_fr_vat_type', 'not in', (False, 'france'))]}" + string="VAT on Payment" + /> @@ -29,14 +28,13 @@ + name="out_vat_on_payment" + optional="hide" + invisible="context.get('default_move_type') not in ('out_invoice', 'out_refund')" + string="VAT on Payment" + /> - diff --git a/l10n_fr_account_vat_return/views/l10n_fr_account_vat_box.xml b/l10n_fr_account_vat_return/views/l10n_fr_account_vat_box.xml index ea2fa3548..72145d32f 100644 --- a/l10n_fr_account_vat_return/views/l10n_fr_account_vat_box.xml +++ b/l10n_fr_account_vat_return/views/l10n_fr_account_vat_box.xml @@ -5,99 +5,100 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). --> - l10n.fr.account.vat.box
+ name="web_ribbon" + title="Archived" + bg_color="bg-danger" + attrs="{'invisible': [('active', '=', True)]}" + /> + name="code" + attrs="{'invisible': [('display_type', '!=', False)], 'required': [('display_type', '=', False)]}" + /> + name="full_label" + groups="base.group_no_one" + /> + + name="accounting_method" + attrs="{'invisible': [('display_type', '!=', False)]}" + /> + name="account_code" + attrs="{'invisible': [('accounting_method', '=', False)]}" + /> - + name="account_id" + attrs="{'invisible': [('accounting_method', '=', False)]}" + /> + name="analytic_account_id" + attrs="{'invisible': [('accounting_method', '=', False)]}" + groups="analytic.group_analytic_accounting" + /> + + + name="negative" + attrs="{'invisible': [('display_type', '!=', False)]}" + /> + + name="due_vat_rate" + attrs="{'invisible': [('display_type', '!=', False)]}" + /> - - - - - + /> + + + name="edi" + string="EDI" + attrs="{'invisible': [('display_type', '!=', False)]}" + > + name="print" + string="Report" + attrs="{'invisible': [('display_type', '!=', False)]}" + > @@ -111,43 +112,44 @@ l10n.fr.account.vat.box + decoration-info="display_type == 'section'" + decoration-success="display_type == 'sub_section'" + > + name="sequence" + optional="hide" + /> - + + name="due_vat_base_box_id" + optional="hide" + /> + + name="accounting_method" + optional="hide" + /> + name="account_code" + attrs="{'invisible': [('accounting_method', '=', False)]}" + optional="hide" + /> + name="account_id" + attrs="{'invisible': [('accounting_method', '=', False)]}" + optional="hide" + /> + name="analytic_account_id" + attrs="{'invisible': [('accounting_method', '=', False)]}" + optional="hide" + groups="analytic.group_analytic_accounting" + /> @@ -157,10 +159,7 @@ - + @@ -170,64 +169,65 @@ + name="name" + filter_domain="['|', ('name', 'ilike', self), ('code', 'ilike', self)]" + string="Name or Code" + /> + string="3310-CA3" + name="form_code_ca3" + domain="[('form_code', '=', '3310CA3')]" + /> + string="3310-A" + name="form_code_a" + domain="[('form_code', '=', '3310A')]" + /> + name="no_sections" + string="No sections" + domain="[('display_type', '=', False)]" + /> + + + - + name="accounting_method_groupby" + string="Accounting Method" + context="{'group_by': 'accounting_method'}" + /> + name="display_type_groupby" + string="Display Type" + context="{'group_by': 'display_type'}" + /> + id="l10n_fr_account_vat_box_action" + model="ir.actions.act_window" + > France VAT Boxes l10n.fr.account.vat.box tree,form + id="l10n_fr_account_vat_box_menu" + action="l10n_fr_account_vat_box_action" + parent="account.account_account_menu" + sequence="100" + /> - diff --git a/l10n_fr_account_vat_return/views/l10n_fr_account_vat_return.xml b/l10n_fr_account_vat_return/views/l10n_fr_account_vat_return.xml index b2e6c2059..25fbc282a 100644 --- a/l10n_fr_account_vat_return/views/l10n_fr_account_vat_return.xml +++ b/l10n_fr_account_vat_return/views/l10n_fr_account_vat_return.xml @@ -1,11 +1,10 @@ - l10n.fr.account.vat.return @@ -13,65 +12,66 @@
@@ -83,54 +83,54 @@ + name="start_date" + options="{'datepicker': {'warn_future': true}}" + /> + name="end_date" + options="{'datepicker': {'warn_future': true}}" + /> + name="reimbursement_type" + attrs="{'invisible': [('reimbursement_type', '=', False)]}" + /> + name="reimbursement_first_creation_date" + attrs="{'invisible': [('reimbursement_type', '!=', 'first')]}" + /> + name="reimbursement_end_date" + attrs="{'invisible': [('reimbursement_type', '!=', 'end')]}" + /> + name="vat_credit_total" + invisible="1" + /> + name="reimbursement_min_amount" + arres="{'invisible': [('vat_credit_total', '<=', 0)]}" + widget="monetary" + options="{'currency_field': 'company_currency_id'}" + /> + name="reimbursement_show_button" + invisible="1" + /> + name="company_partner_id" + invisible="1" + /> + name="company_currency_id" + invisible="1" + /> + name="company_id" + groups="base.group_multi_company" + /> @@ -138,36 +138,39 @@ + name="line_ids" + nolabel="1" + colspan="2" + /> + name="comment" + string="Comment for DGFIP" + > + name="comment_dgfip" + nolabel="1" + colspan="2" + /> + name="reimbursement_comment" + string="Reimbursement Comment for DGFIP" + attrs="{'invisible': [('reimbursement_type', '=', False)]}" + > + name="reimbursement_comment_dgfip" + nolabel="1" + colspan="2" + />
+ name="message_follower_ids" + widget="mail_followers" + />
@@ -183,20 +186,20 @@ + name="reimbursement_type" + optional="hide" + /> + name="company_id" + groups="base.group_multi_company" + /> + name="state" + widget="badge" + decoration-success="state == 'posted'" + decoration-info="state == 'draft'" + decoration-warning="state == 'sent'" + /> @@ -207,132 +210,136 @@ + name="manual" + string="Manual Lines" + domain="[('state', '=', 'manual')]" + /> + name="auto" + string="Automatic Lines" + domain="[('state', '=', 'auto')]" + /> + name="sent" + string="Sent" + domain="[('state', '=', 'sent')]" + /> + name="posted" + string="Posted" + domain="[('state', '=', 'posted')]" + /> + name="state_groupby" + string="State" + context="{'group_by': 'state'}" + /> + name="company_groupby" + string="Company" + context="{'group_by': 'company_id'}" + /> + id="l10n_fr_account_vat_return_action" + model="ir.actions.act_window" + > VAT Return l10n.fr.account.vat.return tree,form + id="l10n_fr_account_vat_return_menu" + action="l10n_fr_account_vat_return_action" + parent="l10n_fr.account_reports_fr_statements_menu" + sequence="5" + /> l10n.fr.account.vat.return.line + class="alert alert-warning" + role="alert" + attrs="{'invisible': [('box_negative', '=', False)]}" + >The logs lines below have a negative total, so they were moved from their original box(es) to this box and the sign of the total has been inverted.
+ name="box_id" + domain="[('manual', '=', True)]" + /> + name="box_edi_type" + invisible="1" + /> + name="box_manual" + invisible="1" + /> + name="box_form_code" + invisible="1" + /> + name="company_id" + invisible="1" + /> + name="box_negative" + invisible="1" + /> + name="value" + attrs="{'invisible': ['|', ('box_manual', '=', True), ('box_edi_type', 'not in', ('MOA', 'QTY', 'PCD'))]}" + /> + name="value_float" + attrs="{'invisible': ['|', ('box_manual', '=', True), ('box_edi_type', 'not in', ('MOA', 'QTY', 'PCD'))]}" + /> + name="value_bool" + attrs="{'invisible': [('box_edi_type', '!=', 'CCI_TBX')]}" + /> + name="value_char" + attrs="{'invisible': [('box_edi_type', 'not in', ('FTX', 'NAD'))]}" + /> + name="value_manual_int" + attrs="{'invisible': ['|', ('box_manual', '=', False), ('box_edi_type', 'not in', ('MOA', 'QTY', 'PCD'))]}" + /> + name="box_accounting_method" + attrs="{'invisible': [('box_accounting_method', '=', False)]}" + /> + name="manual_account_id" + attrs="{'invisible': ['|', ('box_manual', '=', False), ('box_accounting_method', '=', False)], 'required': [('box_manual', '=', True), ('box_accounting_method', '!=', False)]}" + /> + name="manual_analytic_account_id" + attrs="{'invisible': ['|', ('box_manual', '=', False), ('box_accounting_method', '=', False)]}" + groups="analytic.group_analytic_accounting" + /> - + name="logs" + string="Computation and Accounting Details" + attrs="{'invisible': [('log_ids', '=', [])]}" + > +
@@ -341,112 +348,116 @@ l10n.fr.account.vat.return.line + decoration-info="box_display_type == 'section'" + decoration-success="box_display_type == 'sub_section'" + decoration-danger="box_negative == True" + limit="100" + > + name="box_display_type" + invisible="1" + /> + name="box_negative" + invisible="1" + /> + + - + name="value" + attrs="{'invisible': [('box_display_type', '!=', False)]}" + /> + name="value_float" + optional="hide" + attrs="{'invisible': ['|', ('box_manual', '=', True), ('box_edi_type', 'not in', ('MOA', 'QTY', 'PCD'))]}" + /> + name="value_bool" + optional="hide" + attrs="{'invisible': [('box_edi_type', '!=', 'CCI_TBX')]}" + /> +
+ id="l10n_fr_account_vat_return_line_log_tree" + model="ir.ui.view" + > l10n.fr.account.vat.return.line.log - - - + decoration-info="compute_type == 'period_balance'" + decoration-success="compute_type in ('balance', 'balance_ratio', 'base_from_balance', 'base_from_balance_ratio')" + decoration-warning="compute_type == 'subtraction'" + decoration-danger="compute_type == 'adjustment'" + > + + - + name="analytic_account_id" + groups="analytic.group_analytic_accounting" + optional="hide" + attrs="{'column_invisible': [('parent.box_accounting_method', '=', False)]}" + /> + - + id="l10n_fr_account_vat_return_line_log_form" + model="ir.ui.view" + > l10n.fr.account.vat.return.line.log
+ name="parent_id" + invisible="not context.get('l10n_fr_account_vat_return_line_log_main_view')" + /> + + name="analytic_account_id" + groups="analytic.group_analytic_accounting" + /> - - + name="origin_move_id" + attrs="{'invisible': [('origin_move_id', '=', False)]}" + /> - +
- - -
diff --git a/l10n_fr_account_vat_return/wizards/l10n_fr_account_vat_return_reimbursement.py b/l10n_fr_account_vat_return/wizards/l10n_fr_account_vat_return_reimbursement.py index 739d501a0..6566ab76e 100644 --- a/l10n_fr_account_vat_return/wizards/l10n_fr_account_vat_return_reimbursement.py +++ b/l10n_fr_account_vat_return/wizards/l10n_fr_account_vat_return_reimbursement.py @@ -30,17 +30,20 @@ def validate(self): if self.amount < self.min_amount: raise UserError( _( - "The reimbursement amount (%d €) cannot be under the minimum amount (%d €)." + "The reimbursement amount (%(amount)d €) cannot be under " + "the minimum amount (%(min_amount)d €).", + amount=self.amount, + min_amount=self.min_amount, ) - % (self.amount, self.min_amount) ) if self.amount > self.vat_credit_total: raise UserError( _( - "The reimbursement amount (%d €) cannot be superior to the " - "amount of the VAT credit (%d €)." + "The reimbursement amount (%(amount)d €) cannot be superior to the " + "amount of the VAT credit (%(vat_credit_amount)d €).", + amount=self.amount, + vat_credit_amount=self.vat_credit_total, ) - % (self.amount, self.vat_credit_total) ) today = fields.Date.context_today(self) if self.reimbursement_type == "first": diff --git a/l10n_fr_account_vat_return/wizards/res_config_settings.xml b/l10n_fr_account_vat_return/wizards/res_config_settings.xml index e8030c2f1..7593f576f 100644 --- a/l10n_fr_account_vat_return/wizards/res_config_settings.xml +++ b/l10n_fr_account_vat_return/wizards/res_config_settings.xml @@ -23,7 +23,7 @@