From 74c80f776a9a5a6a420c09c73bc3f121b07d99e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luismi=20Cavall=C3=A9?= Date: Mon, 21 Oct 2024 16:06:01 +0000 Subject: [PATCH] Preparing release 0.203 --- CHANGELOG.md | 12 +-- data/addons/it-sdi-v1.json | 30 ++++++++ data/regimes/br.json | 135 +++++++++++++++++++++++++++++++++ data/schemas/bill/invoice.json | 4 + version.go | 2 +- 5 files changed, 176 insertions(+), 7 deletions(-) create mode 100644 data/regimes/br.json diff --git a/CHANGELOG.md b/CHANGELOG.md index b4cf7557..597cb9c5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,19 +4,19 @@ All notable changes to GOBL will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/). See also the [GOBL versions](https://docs.gobl.org/overview/versions) documentation site for more details. -## [Unreleased] +## [v0.203.0] ### Added - `br`: added basic Brazil regime -- `uuid` - SQL library compatibility for type conversion. -- `it-sdi-v1`: added `it-sdi-vat-collect` extension for EsigibilitaIVA. +- `uuid`: SQL library compatibility for type conversion. +- `it-sdi-v1`: added `it-sdi-vat-liability` extension for EsigibilitaIVA. ### Fixed -- `bill.Invoice` - remove empty taxes instances. -- `tax.Identity` - support Calculate method to normalize IDs. -- `tax.Regime` - properly set regime when alternative codes is given. +- `bill.Invoice`: remove empty taxes instances. +- `tax.Identity`: support Calculate method to normalize IDs. +- `tax.Regime`: properly set regime when alternative codes is given. ## [v0.202.0] diff --git a/data/addons/it-sdi-v1.json b/data/addons/it-sdi-v1.json index 584bc0c5..a1ae25bb 100644 --- a/data/addons/it-sdi-v1.json +++ b/data/addons/it-sdi-v1.json @@ -890,6 +890,36 @@ } } ] + }, + { + "key": "it-sdi-vat-liability", + "name": { + "en": "VAT Liability", + "it": "Esigibilità dell'IVA" + }, + "values": [ + { + "value": "I", + "name": { + "en": "Immediate", + "it": "Immediata" + } + }, + { + "value": "D", + "name": { + "en": "Deferred", + "it": "Differita" + } + }, + { + "value": "S", + "name": { + "en": "Split Payment", + "it": "Scissione dei pagamenti" + } + } + ] } ], "tags": [ diff --git a/data/regimes/br.json b/data/regimes/br.json new file mode 100644 index 00000000..5253ce8b --- /dev/null +++ b/data/regimes/br.json @@ -0,0 +1,135 @@ +{ + "$schema": "https://gobl.org/draft-0/tax/regime-def", + "name": { + "en": "Brazil", + "pt": "Brasil" + }, + "time_zone": "America/Sao_Paulo", + "country": "BR", + "currency": "BRL", + "tags": [ + { + "schema": "bill/invoice", + "list": [ + { + "key": "simplified", + "name": { + "de": "Vereinfachte Rechnung", + "en": "Simplified Invoice", + "es": "Factura Simplificada", + "it": "Fattura Semplificata" + }, + "desc": { + "de": "Wird für B2C-Transaktionen verwendet, wenn die Kundendaten nicht verfügbar sind. Bitte wenden Sie sich an die örtlichen Behörden, um die Grenzwerte zu ermitteln.", + "en": "Used for B2C transactions when the client details are not available, check with local authorities for limits.", + "es": "Usado para transacciones B2C cuando los detalles del cliente no están disponibles, consulte con las autoridades locales para los límites.", + "it": "Utilizzato per le transazioni B2C quando i dettagli del cliente non sono disponibili, controllare con le autorità locali per i limiti." + } + }, + { + "key": "reverse-charge", + "name": { + "de": "Umkehr der Steuerschuld", + "en": "Reverse Charge", + "es": "Inversión del Sujeto Pasivo", + "it": "Inversione del soggetto passivo" + } + }, + { + "key": "self-billed", + "name": { + "de": "Rechnung durch den Leistungsempfänger", + "en": "Self-billed", + "es": "Facturación por el destinatario", + "it": "Autofattura" + } + }, + { + "key": "customer-rates", + "name": { + "de": "Kundensätze", + "en": "Customer rates", + "es": "Tarifas aplicables al destinatario", + "it": "Aliquote applicabili al destinatario" + } + }, + { + "key": "partial", + "name": { + "de": "Teilweise", + "en": "Partial", + "es": "Parcial", + "it": "Parziale" + } + } + ] + } + ], + "corrections": [ + { + "schema": "bill/invoice", + "types": [ + "credit-note" + ] + } + ], + "categories": [ + { + "code": "ISS", + "name": { + "en": "ISS", + "pt": "ISS" + }, + "title": { + "en": "Municipal Service Tax", + "pt": "Imposto Sobre Serviços" + } + }, + { + "code": "ICMS", + "name": { + "en": "ICMS", + "pt": "ICMS" + }, + "title": { + "en": "State value-added tax", + "pt": "Imposto sobre Circulação de Mercadorias e Serviços" + } + }, + { + "code": "IPI", + "name": { + "en": "IPI", + "pt": "IPI" + }, + "title": { + "en": "Federal value-added Tax", + "pt": "Imposto sobre Produtos Industrializados" + } + }, + { + "code": "PIS", + "name": { + "en": "PIS", + "pt": "PIS" + }, + "title": { + "en": "Social Integration Program", + "pt": "Programa de Integração Social" + }, + "retained": true + }, + { + "code": "COFINS", + "name": { + "en": "COFINS", + "pt": "COFINS" + }, + "title": { + "en": "Contribution for the Financing of Social Security", + "pt": "Contribuição para o Financiamento da Seguridade Social" + }, + "retained": true + } + ] +} \ No newline at end of file diff --git a/data/schemas/bill/invoice.json b/data/schemas/bill/invoice.json index 53dbb071..50122c1e 100644 --- a/data/schemas/bill/invoice.json +++ b/data/schemas/bill/invoice.json @@ -181,6 +181,10 @@ "const": "BE", "title": "Belgium" }, + { + "const": "BR", + "title": "Brazil" + }, { "const": "CA", "title": "Canada" diff --git a/version.go b/version.go index 1017e74a..fe86760a 100644 --- a/version.go +++ b/version.go @@ -8,7 +8,7 @@ import ( type Version string // VERSION is the current version of the GOBL library. -const VERSION Version = "v0.202.0" +const VERSION Version = "v0.203.0" // Semver parses and returns semver func (v Version) Semver() *semver.Version {