Afficher le texte sourceAnciennes révisionsLiens de retourHaut de page Table des matières Rappel - Paramétrage Concept 1 - Déclaration 2 - Paiement Comptabilisation de TVA Paramétrage : 1 - TVA sur achats 2 - TVA sur achats intracommunautaires 3 - TVA sur ventes 4 - Déclaration TVA CA3 Concept de la déclaration TVA sous Ekylibre Consultation de la déclaration TVA Paiement Spécifications fonctionnelles Exigibilité de la TVA dans les écritures Lettrage des affaires non soldées Suivi des parties de déclaration de TVA Générer les TaxDeclarationItemPart Au débit Au paiement TVA Cette partie traite des spécifications liées à la gestion de la TVA dans Ekylibre. Un article présente bien le concept comptable sur Compta-facile Rappel - Paramétrage Les codes TVA sont présents en base et en nomenclature selon le pays et sont “éditables” depuis le menu Paramétrage / Comptabilité / Taxes. Le plan de comptes est également paramétrable au même endroit (Paramétrage / Comptabilité) Les catégories sont déclarées achetables et/ou vendables et/ou immobilisables Les variants apparaissant dans les factures de ventes et d'achat sont rattachés à des catégories (via les types de produits) Concept 1 - Déclaration La déclaration liée à la taxe sur la valeur ajoutée (TVA) doit être générée par période (mensuelle, trimestrielle ou annuelle) Cette déclaration utilise les pièces d'achats et de ventes ainsi que les encaissements et décaissements. Chaque pièce d'achats ou de ventes peut comporter une ou plusieurs taxes. Chaque taxe possède une valeur, un type , un pays et 4 comptes comptables. Déductible ⇒ Achat Collectée ⇒ Vente Déductible sur immobilisation ⇒ Immobilisation Collectée sur immobilisation ⇒ Cession d'Immobilisation 2 - Paiement Une fois la déclaration effectuée, vous pouvez : payer le solde si il est positif. demander un remboursement du solde si il est négatif. reporter ce solde au crédit de la prochaine déclaration. Comptabilisation de TVA Paramétrage : Dans configuration/taxes, créer des taxes (Attention: sélectionner le type de chaque taxe) et renseigner les comptes de TVA déductible/collectée correspondants (445xxx) Sur l'exercice comptable, sélectionner si la déclaration de TVA est calculée par rapport aux factures ou aux encaissements/décaissements. Verrouiller le choix après la première déclaration de TVA de l'exercice. Vérifier usages des comptes comptables concernés par la déclaration TVA - Pour la France : 44567 - Crédit de TVA 44551 - TVA à décaisser 4452 - TVA due intra-commuanutaire 44583 - Demande de remboursement de TVA 1 - TVA sur achats Lors d'une saisie de facture d'achat : Montant TTC = Montant HT + Montant TVA (par ligne de facture) Ecriture comptable: Débit Crédit 6 - Compte de charges HT 4456xxx - TVA déductible TVA 401 - Fournisseur Total TTC 2 - TVA sur achats intracommunautaires Lors d'une saisie de facture d'achat, si une taxe de type “TVA intra-communautaire” est sélectionnée alors : Montant TTC = Montant HT (par ligne de facture) Ecriture comptable: Débit Crédit 6 - Compte de charges HT 4456xxx - TVA déductible TVA 401 - Fournisseur Total HT 4452 - TVA due intra-communautaire Total TVA 3 - TVA sur ventes Ecriture lors d'une vente : Débit Crédit 7 - Compte de produit HT 4457xxx - TVA collectée TVA 411 - Compte client Total TTC 4 - Déclaration TVA CA3 Un menu “Déclaration TVA” dans le module “Comptabilité” liste toutes les déclarations TVA de l'exercice en cours. Un bouton “Nouvelle déclaration” permet de sélectionner un type de déclaration TVA (créé dans le module Configuration - voir ci-dessus) et ouvre la vue ci-dessous. Concept de la déclaration TVA sous Ekylibre A / Lors de la création de la déclaration TVA On va pré-remplir la déclaration tva (vat_declaration) avec : - les dates de début (started_on) et fin de période (stopped_on) grâce à la la période TVA (vat_period) paramétrée dans l'exercice fiscal (financial_year). vat_period = [:monthly, :quaterly, :yearly, :none] On va ensuite créer une ligne de déclaration tva par taxe utilisée. Pour chaque ligne de déclaration tva (vat_declaration_item) : Si le mode de tva (vat_mode) est : débit (:debit) pour le montant de la tva déductible pour chaque lignes d'achats non lettrée ⇒ HT = Montant HT de la ligne d'achat ⇒ TVA = Montant TVA de la ligne d'achat pour le montant de la tva collectée pour chaque lignes de ventes non lettrée ⇒ HT = Montant HT de la ligne de vente ⇒ TVA = Montant TVA de la ligne de vente Si le mode de tva (vat_mode) est : paiement (:payment) pour le montant de la tva déductible pour chaque lignes d'achats et décaissements/encaissements liées et non lettrée ⇒ HT = Montant HT de la ligne d'achat * ratio paiement ⇒ TVA = Montant TVA de la ligne d'achat * ratio paiement pour le montant de la tva collectée pour chaque lignes de vents et décaissements/encaissements liées et non lettrée ⇒ HT = Montant HT de la ligne de vente * ratio paiement ⇒ TVA = Montant TVA de la ligne de vente * ratio paiement Formules de calcul des ratios de paiements. Par affaire lettrée: Puis pour la ligne de déclaration considérée, on doit : pour le montant de la tva déductible calculer la somme des montants HT puis stocker cette valeur dans “deductible_pretax_amount” calculer la somme des montants TVA puis stocker cette valeur dans “deductible_vat_amount” pour le montant de la tva collectée calculer la somme des montants HT puis stocker cette valeur dans “collected_pretax_amount” calculer la somme des montants TVA puis stocker cette valeur dans “collected_vat_amount” lettrer les identifiants uniques des lignes d'achats/ventes et décaissements/encaissements liées avec la ligne de déclaration tva Consultation de la déclaration TVA Dans cette vue, nous retrouvons (pour chaque taxe) : Débit Crédit TVA 20 4456 - Total TVA 20 déductible 44562 - Total TVA 20 déductible sur immos 4457 - Total TVA 20 collectée TVA 10 4456 - Total TVA 10 déductible 44562 - Total TVA 10 déductible sur immos 4457 - Total TVA 10 collectée TVA intra 20 445xxx - Total TVA intra 20 déductible 445623 - Total TVA intra 20 déductible sur immos 4452 - TVA due intracom BILAN Total TVA collectée Total TVA déductible 44567 - Crédit de TVA 44551 - TVA à décaisser NB : L'opération {Total TVA collectée - Total TVA déductible} génère un résultat: Si Positif → Résultat = TVA à décaisser Si Négatif → Valeur absolue du résultat = Crédit de TVA Paiement En bas de page, 2 boutons: Bouton 1 : Demander un remboursement de TVA OU Payer la TVA Demande de remboursement génère une écriture 44583/44567 puis à l'encaissement 512/44583 Payer la TVA génère un décaissement et une écriture 44551/512 Bouton 2 : Reporter la TVA Le montant inscrit en compte 44567 sera reporté lors de la prochaine déclaration. Une action sur un de ces boutons valide la déclaration de TVA et par conséquent verrouille toutes les pièces liées à cette déclaration (factures achats/ventes et écritures comptables associées). Spécifications fonctionnelles Voici un tableau avec un jeu de données permettant d'illustrer les explications ci-après : Journal Écriture Date Libellé Compte Mode de déclaration Lettre Debit Crédit Base HT AC AC001 25/04/2016 Choux 7071 1000 AC AC001 25/04/2016 TVA 5.5 sur Choux 4451 Paiement 55 1000 AC AC001 25/04/2016 Carottes 7072 1500 AC AC001 25/04/2016 TVA 20 sur Carottes 4452 Débit 300 1500 AC AC001 25/04/2016 Gérard BOUCHARD 401BOUC AK 2855 Déclaration TVA avril 2016 BK BK963 12/05/2016 Virement 7DFD44 401BOUC AK 1225 BK BK963 12/05/2016 Virement 7DFD44 5121 1225 Déclaration TVA mai 2016 CS CS412 02/06/2016 Liquide 401BOUC AK 1630 CS CS412 02/06/2016 Liquide 5311 1630 Déclaration TVA du mois juin 2016 Déclaration avril 2016 TVA 20% : 300€ (Base HT : 1500 €) Déclaration mai 2016 TVA 5.5% : (55 * 1225 / 2855 - 0 = ) 23.60€ (Base HT : 429.07 €) Déclaration juin 2016 TVA 5.5% : (55 * 2855 / 2855 - 23.60 = ) 31.40€ (Base HT : 570.93 €) Exigibilité de la TVA dans les écritures Il faut remonter l'information tax_declaration_mode qui se trouve au niveau des ventes et achats dans les journal_entry_items lors du processus de comptabilisation (bookkeep) pour les lignes contenant le compte de la taxe. Dans le cas des achats (Purchase), l'information est stockée directement dans la table avec la colonne tax_payability : debit == at_invoicing, payment == at_paying. Dans le cas des ventes (Ventes), l'information est stockée dans l'exercice (FinancialYear) en cours. Pas besoin de renseigner dans les ventes. Nous utiliserons la préférence utilisateur au moment de la déclaration. Note pour l'avenir : Étudier la normalisation des 2 notations tax_payability et tax_declaration_mode Lettrage des affaires non soldées Les affaires lettrent les lignes d'écriture en comptabilité seulement au moment où l'écriture est soldée. Pour la gestion des prorata, il est nécessaire de connaître le lettrage en temps réel et il faut donc l'activer en permanence sans changer la lettre utilisée à chaque fois quand c'est possible. Suivi des parties de déclaration de TVA Pour suivre et verrouiller les prorata calculés pour chaque type de TVA, nous allons faire le lien entre les journal_entry_items et les tax_declaration_items avec le montant associé (tax_amount) à reporter dans la déclaration ainsi que la base hors taxe correspondante (pretax_amount). La colonne journal_entry_items#tax_declaration_item_id est remplacée par la table suivante qui permet notamment de suivre au fur et à mesure des déclarations et pouvoir faire de la reprise sur erreur de déclaration si besoin. create_table :tax_declaration_item_parts do |t| t.references :tax_declaration_item, index: true, null: false, foreign_key: true t.references :journal_entry_item, index: true, null: false, foreign_key: true t.references :account, index: true, null: false, foreign_key: true # Redondance. Vraie utilité ? t.decimal :tax_amount, precision: 19, scale: 4, null: false t.decimal :pretax_amount, precision: 19, scale: 4, null: false t.decimal :total_tax_amount, precision: 19, scale: 4, null: false t.decimal :total_pretax_amount, precision: 19, scale: 4, null: false t.string :direction, null: false t.stamps t.index :direction # collected, deductible, fixed_asset_deductible, intracommunauty_payable # Voir TaxDeclarationItem end Dans le processus actuel TaxDeclarationItem fait le lien avec les écritures après avoir fait le calcul des sommes de TVA. Dans le nouveau processus, il faut : Générer tous les tax_declaration_item_parts (cf ci-après Calculer les sommes en fonction des tax_declaration_item_id et direction tax_declaration_item.xxx_tax_amount = tax_declaration_item.parts.où(direction: 'xxx').somme('tax_amount') Générer les TaxDeclarationItemPart Cette partie concerne les 2 modes de prise en compte de la TVA : débit ou paiement. Pour déterminer ce mode, nous nous basons sur la colonne journal_entry_items#tax_declaration_mode et si elle n'est pas renseignée, il faut prendre en compte le mode de la déclaration de TVA (qui dépend directement de la configuration au niveau de l'exercice). Avant de commencer à générer, il faudra mettre à jour les colonnes vides pour mettre les mode dans le marbre. Nous considérons que le mode de paiement de la TVA ne peut pas changer dans le temps. L'objectif est de générer en 2 requêtes pour les 2 modes l'ensemble des tax_declaration_item_parts. Au débit Dans ce cas-là, la TVA est exigible de suite. Donc pas de notion de pourcentage de règlement à prendre en compte. SELECT jei.id AS journal_entry_item_id, (debit - credit) AS tax_amount, jei.pretax_amount AS pretax_amount, (debit - credit) total_tax_amount, jei.pretax_amount AS total_pretax_amount, 'deductible' AS direction FROM journal_entry_items AS jei WHERE printed_on BETWEEN ? AND ? AND tax_declaration_mode = 'debit' AND tax_id = ? AND jei.id NOT IN (SELECT journal_entry_item_id FROM tax_declaration_item_parts) Au paiement La formule évoquée (bien) plus haut est celle qui va être utilisée pour faire les calculs : direction solde collected credit - debit deductible debit - credit fixed_asset_deductible debit - credit intracommunity_payable (à renseigner) Soient jei un journal_entry_item jei donné, ljei les lignes d'écritures lettrées avec les mêmes lettres que celles définies dans jei.siblings (= jei.entry.items), eljei les ljei externes à jei.entry.items, iljei les ljei internes à jei.entry.items : TVA à déclarer = TVA à payer - TVA déjà déclarée TVA à payer = jei.balance_debit × Montant réglé / Montant à régler Montant réglé = SOMME(eljei.balance_debit) Montant à régler = SOMME(iljei.balance_credit) TVA déjà déclarée = SOMME(jei.tax_declaration_item_parts.tax_amount) Attention la notion débit/crédit dépend de la direction de la TVA. cf tableau ci-dessus. Les formules du dessus sont exprimées pour une taxe déductible Pour une direction donnée (deductible), voici la requête SQL qui devrait produire les bonnes tax_declaration_item_parts : SELECT jei.id AS journal_entry_item_id, (debit - credit) * SUM(paid.balance) / total.balance - declared.amount AS tax_amount, jei.pretax_amount * SUM(paid.balance) / total.balance - declared.amount AS pretax_amount, (debit - credit) total_tax_amount, jei.pretax_amount AS total_pretax_amount, 'deductible' AS direction FROM journal_entry_items AS jei -- Calcul du montant total (= à régler) par écriture JOIN (SELECT entry_id, account_id, letter, SUM(credit - debit) AS balance FROM journal_entry_items WHERE LENGTH(TRIM(letter)) > 0 GROUP BY 1, 2, 3) AS total ON (total.entry_id = jei.entry_id) -- Calcul du montant réglé JOIN (SELECT entry_id, account_id, letter, debit - credit AS balance FROM journal_entry_items WHERE LENGTH(TRIM(letter)) > 0) AS paid ON (total.letter = paid.letter AND total.account_id = paid.account_id AND total.entry_id != paid.entry_id) -- Calcul du montant déclaré par écriture JOIN (SELECT journal_entry_item_id, direction, SUM(tax_amount) AS amount FROM tax_declaration_item_parts GROUP BY 1, 2) AS declared ON (jei.id = declared.journal_entry_item_id AND direction = 'deductible') WHERE printed_on BETWEEN ? AND ? AND tax_declaration_mode = 'payment' AND tax_id = ? AND (jei.id, jei.tax_amount) NOT IN (SELECT journal_entry_item_id, SUM(tax_amount) AS tax_amount FROM tax_declaration_item_parts GROUP BY 1) fr/specs/vat.txt Dernière modification: 2017/01/24 10:30par brice