diff --git a/README.md b/README.md index dc19de03f9ee..46dd2460e4be 100644 --- a/README.md +++ b/README.md @@ -21,13 +21,13 @@ Available addons ---------------- addon | version | maintainers | summary --- | --- | --- | --- -[account_vat_period_end_statement](account_vat_period_end_statement/) | 14.0.1.0.3 | | Allow to create the 'VAT Statement'. -[assets_management](assets_management/) | 14.0.1.2.2 | | Gestione Cespiti +[account_vat_period_end_statement](account_vat_period_end_statement/) | 14.0.1.2.0 | | Allow to create the 'VAT Statement'. +[assets_management](assets_management/) | 14.0.1.4.4 | | Gestione Cespiti [currency_rate_update_boi](currency_rate_update_boi/) | 14.0.1.0.0 | [![eLBati](https://github.com/eLBati.png?size=30px)](https://github.com/eLBati) | Update exchange rates using www.bancaditalia.it [fiscal_epos_print](fiscal_epos_print/) | 14.0.1.0.1 | [![eLBati](https://github.com/eLBati.png?size=30px)](https://github.com/eLBati) | ePOS-Print XML Fiscal Printer Driver - Stampanti Epson compatibili: FP81II, FP90III [l10n_it_abicab](l10n_it_abicab/) | 14.0.1.0.2 | [![Borruso](https://github.com/Borruso.png?size=30px)](https://github.com/Borruso) | Base Bank ABI/CAB codes -[l10n_it_account](l10n_it_account/) | 14.0.1.3.0 | | Modulo base usato come dipendenza di altri moduli contabili -[l10n_it_account_balance_eu](l10n_it_account_balance_eu/) | 14.0.1.0.0 | [![mktsrl](https://github.com/mktsrl.png?size=30px)](https://github.com/mktsrl) | ITA - Bilancio UE con XBRL +[l10n_it_account](l10n_it_account/) | 14.0.1.4.0 | | Modulo base usato come dipendenza di altri moduli contabili +[l10n_it_account_balance_eu](l10n_it_account_balance_eu/) | 14.0.1.0.1 | [![mktsrl](https://github.com/mktsrl.png?size=30px)](https://github.com/mktsrl) | ITA - Bilancio UE con XBRL [l10n_it_account_stamp](l10n_it_account_stamp/) | 14.0.1.1.4 | | Gestione automatica dell'imposta di bollo [l10n_it_account_tax_kind](l10n_it_account_tax_kind/) | 14.0.1.1.1 | | Gestione natura delle aliquote IVA [l10n_it_appointment_code](l10n_it_appointment_code/) | 14.0.1.0.1 | | Aggiunge la tabella dei codici carica da usare nelle dichiarazioni fiscali italiane @@ -36,9 +36,9 @@ addon | version | maintainers | summary [l10n_it_ateco](l10n_it_ateco/) | 14.0.1.1.0 | | ITA - Codici Ateco [l10n_it_bill_of_entry](l10n_it_bill_of_entry/) | 14.0.1.0.1 | | ITA - Bolle doganali [l10n_it_central_journal](l10n_it_central_journal/) | 14.0.1.0.1 | | ITA - Libro giornale -[l10n_it_central_journal_reportlab](l10n_it_central_journal_reportlab/) | 14.0.1.0.4 | [![MarcoCalcagni](https://github.com/MarcoCalcagni.png?size=30px)](https://github.com/MarcoCalcagni) [![Borruso](https://github.com/Borruso.png?size=30px)](https://github.com/Borruso) | ITA - Libro giornale - Reportlab -[l10n_it_declaration_of_intent](l10n_it_declaration_of_intent/) | 14.0.1.1.7 | | Gestione dichiarazioni di intento -[l10n_it_delivery_note](l10n_it_delivery_note/) | 14.0.3.0.1 | [![MarcoCalcagni](https://github.com/MarcoCalcagni.png?size=30px)](https://github.com/MarcoCalcagni) [![aleuffre](https://github.com/aleuffre.png?size=30px)](https://github.com/aleuffre) [![renda-dev](https://github.com/renda-dev.png?size=30px)](https://github.com/renda-dev) | Crea, gestisce e fattura i DDT partendo dalle consegne +[l10n_it_central_journal_reportlab](l10n_it_central_journal_reportlab/) | 14.0.1.1.0 | [![MarcoCalcagni](https://github.com/MarcoCalcagni.png?size=30px)](https://github.com/MarcoCalcagni) [![Borruso](https://github.com/Borruso.png?size=30px)](https://github.com/Borruso) | ITA - Libro giornale - Reportlab +[l10n_it_declaration_of_intent](l10n_it_declaration_of_intent/) | 14.0.1.1.15 | | Gestione dichiarazioni di intento +[l10n_it_delivery_note](l10n_it_delivery_note/) | 14.0.3.4.0 | [![MarcoCalcagni](https://github.com/MarcoCalcagni.png?size=30px)](https://github.com/MarcoCalcagni) [![aleuffre](https://github.com/aleuffre.png?size=30px)](https://github.com/aleuffre) [![renda-dev](https://github.com/renda-dev.png?size=30px)](https://github.com/renda-dev) | Crea, gestisce e fattura i DDT partendo dalle consegne [l10n_it_delivery_note_base](l10n_it_delivery_note_base/) | 14.0.1.0.2 | [![MarcoCalcagni](https://github.com/MarcoCalcagni.png?size=30px)](https://github.com/MarcoCalcagni) | Crea e gestisce tabelle principali per gestire i DDT [l10n_it_delivery_note_batch](l10n_it_delivery_note_batch/) | 14.0.1.1.0 | [![MarcoCalcagni](https://github.com/MarcoCalcagni.png?size=30px)](https://github.com/MarcoCalcagni) [![TheMule71](https://github.com/TheMule71.png?size=30px)](https://github.com/TheMule71) [![aleuffre](https://github.com/aleuffre.png?size=30px)](https://github.com/aleuffre) [![PicchiSeba](https://github.com/PicchiSeba.png?size=30px)](https://github.com/PicchiSeba) [![renda-dev](https://github.com/renda-dev.png?size=30px)](https://github.com/renda-dev) | Crea i DDT partendo da gruppi di prelievi [l10n_it_delivery_note_customer_code](l10n_it_delivery_note_customer_code/) | 14.0.1.2.0 | [![aleuffre](https://github.com/aleuffre.png?size=30px)](https://github.com/aleuffre) [![renda-dev](https://github.com/renda-dev.png?size=30px)](https://github.com/renda-dev) [![PicchiSeba](https://github.com/PicchiSeba.png?size=30px)](https://github.com/PicchiSeba) | Product Customer code and name for delivery note @@ -46,20 +46,21 @@ addon | version | maintainers | summary [l10n_it_delivery_note_inter_warehouse](l10n_it_delivery_note_inter_warehouse/) | 14.0.1.0.1 | [![aleuffre](https://github.com/aleuffre.png?size=30px)](https://github.com/aleuffre) [![renda-dev](https://github.com/renda-dev.png?size=30px)](https://github.com/renda-dev) | Delivery Note Inter Warehouse [l10n_it_delivery_note_order_link](l10n_it_delivery_note_order_link/) | 14.0.1.0.1 | [![andreampiovesana](https://github.com/andreampiovesana.png?size=30px)](https://github.com/andreampiovesana) | Crea collegamento tra i DDT e ordine di vendita/acquisto [l10n_it_delivery_note_rma](l10n_it_delivery_note_rma/) | 14.0.1.1.0 | [![solo4games](https://github.com/solo4games.png?size=30px)](https://github.com/solo4games) [![CetmixGitDrone](https://github.com/CetmixGitDrone.png?size=30px)](https://github.com/CetmixGitDrone) | Add Oportunity to create RMA from DN with wizard and smart button to DN view -[l10n_it_fatturapa](l10n_it_fatturapa/) | 14.0.2.1.2 | | Fatture elettroniche +[l10n_it_fatturapa](l10n_it_fatturapa/) | 14.0.2.2.1 | | Fatture elettroniche [l10n_it_fatturapa_export_zip](l10n_it_fatturapa_export_zip/) | 14.0.1.0.1 | [![sergiocorato](https://github.com/sergiocorato.png?size=30px)](https://github.com/sergiocorato) | Permette di esportare in uno ZIP diversi file XML di fatture elettroniche -[l10n_it_fatturapa_import_zip](l10n_it_fatturapa_import_zip/) | 14.0.1.0.1 | | Permette di importare in uno ZIP diversi file XML di fatture elettroniche -[l10n_it_fatturapa_in](l10n_it_fatturapa_in/) | 14.0.2.2.1 | | Ricezione fatture elettroniche +[l10n_it_fatturapa_import_zip](l10n_it_fatturapa_import_zip/) | 14.0.1.0.2 | | Permette di importare in uno ZIP diversi file XML di fatture elettroniche +[l10n_it_fatturapa_in](l10n_it_fatturapa_in/) | 14.0.2.2.2 | | Ricezione fatture elettroniche [l10n_it_fatturapa_in_purchase](l10n_it_fatturapa_in_purchase/) | 14.0.1.0.0 | | Modulo ponte tra ricezione fatture elettroniche e acquisti -[l10n_it_fatturapa_in_rc](l10n_it_fatturapa_in_rc/) | 14.0.1.1.1 | [![sergiocorato](https://github.com/sergiocorato.png?size=30px)](https://github.com/sergiocorato) | Modulo ponte tra e-fattura in acquisto e inversione contabile -[l10n_it_fatturapa_out](l10n_it_fatturapa_out/) | 14.0.3.4.4 | | Emissione fatture elettroniche -[l10n_it_fatturapa_out_di](l10n_it_fatturapa_out_di/) | 14.0.1.0.3 | | Dichiarazioni d'intento in fatturapa +[l10n_it_fatturapa_in_rc](l10n_it_fatturapa_in_rc/) | 14.0.1.1.2 | [![sergiocorato](https://github.com/sergiocorato.png?size=30px)](https://github.com/sergiocorato) | Modulo ponte tra e-fattura in acquisto e inversione contabile +[l10n_it_fatturapa_out](l10n_it_fatturapa_out/) | 14.0.3.5.1 | | Emissione fatture elettroniche +[l10n_it_fatturapa_out_di](l10n_it_fatturapa_out_di/) | 14.0.1.0.5 | | Dichiarazioni d'intento in fatturapa +[l10n_it_fatturapa_out_oss](l10n_it_fatturapa_out_oss/) | 14.0.1.0.0 | | OSS in fatturapa [l10n_it_fatturapa_out_rc](l10n_it_fatturapa_out_rc/) | 14.0.1.3.1 | [![eLBati](https://github.com/eLBati.png?size=30px)](https://github.com/eLBati) | Integrazione l10n_it_fatturapa_out e l10n_it_reverse_charge [l10n_it_fatturapa_out_sp](l10n_it_fatturapa_out_sp/) | 14.0.1.0.4 | | Scissione pagamenti in fatturapa [l10n_it_fatturapa_out_stamp](l10n_it_fatturapa_out_stamp/) | 14.0.1.0.1 | [![eLBati](https://github.com/eLBati.png?size=30px)](https://github.com/eLBati) | Modulo ponte tra emissione fatture elettroniche e imposta di bollo [l10n_it_fatturapa_out_triple_discount](l10n_it_fatturapa_out_triple_discount/) | 14.0.1.0.0 | | Modulo ponte tra emissione fatture elettroniche e sconto triplo [l10n_it_fatturapa_out_wt](l10n_it_fatturapa_out_wt/) | 14.0.1.0.1 | | Modulo ponte tra emissione fatture elettroniche e ritenute. -[l10n_it_fatturapa_pec](l10n_it_fatturapa_pec/) | 14.0.2.4.2 | | Invio fatture elettroniche tramite PEC +[l10n_it_fatturapa_pec](l10n_it_fatturapa_pec/) | 14.0.2.5.0 | | Invio fatture elettroniche tramite PEC [l10n_it_fatturapa_sale](l10n_it_fatturapa_sale/) | 14.0.1.0.3 | | Aggiunge alcuni dati per la fatturazione elettronica nell'ordine di vendita [l10n_it_fatturapa_sdicoop](l10n_it_fatturapa_sdicoop/) | 14.0.1.0.0 | | Invio fatture elettroniche tramite SDICoop [l10n_it_financial_statements_report](l10n_it_financial_statements_report/) | 14.0.1.1.2 | | Rendicontazione .pdf e .xls per stato patrimoniale e conto economico a sezioni contrapposte @@ -67,8 +68,8 @@ addon | version | maintainers | summary [l10n_it_fiscal_payment_term](l10n_it_fiscal_payment_term/) | 14.0.1.1.0 | | Condizioni di pagamento delle fatture elettroniche [l10n_it_fiscalcode](l10n_it_fiscalcode/) | 14.0.1.0.2 | | ITA - Codice fiscale [l10n_it_fiscalcode_sale](l10n_it_fiscalcode_sale/) | 14.0.1.0.0 | [![eLBati](https://github.com/eLBati.png?size=30px)](https://github.com/eLBati) | Mostra il codice fiscale del cliente nella stampa del preventivo -[l10n_it_intrastat](l10n_it_intrastat/) | 14.0.1.4.0 | | Riclassificazione merci e servizi per dichiarazioni Intrastat -[l10n_it_intrastat_statement](l10n_it_intrastat_statement/) | 14.0.1.3.2 | | Dichiarazione Intrastat per l'Agenzia delle Dogane +[l10n_it_intrastat](l10n_it_intrastat/) | 14.0.1.4.2 | | Riclassificazione merci e servizi per dichiarazioni Intrastat +[l10n_it_intrastat_statement](l10n_it_intrastat_statement/) | 14.0.1.3.6 | | Dichiarazione Intrastat per l'Agenzia delle Dogane [l10n_it_invoices_data_communication](l10n_it_invoices_data_communication/) | 14.0.1.0.2 | | Comunicazione dati fatture (c.d. "nuovo spesometro" o "esterometro") [l10n_it_invoices_data_communication_fatturapa](l10n_it_invoices_data_communication_fatturapa/) | 14.0.1.0.0 | | Integrazione fatturazione elettronica e comunicazione dati fatture (c.d. "nuovo spesometro") [l10n_it_ipa](l10n_it_ipa/) | 14.0.1.0.2 | | ITA - Codice IPA @@ -79,20 +80,22 @@ addon | version | maintainers | summary [l10n_it_pos_fatturapa](l10n_it_pos_fatturapa/) | 14.0.1.0.0 | | Gestione dati fattura elettronica del cliente all'internodell'interfaccia del POS [l10n_it_pos_fiscalcode](l10n_it_pos_fiscalcode/) | 14.0.1.0.1 | [![eLBati](https://github.com/eLBati.png?size=30px)](https://github.com/eLBati) | Gestione codice fiscale del cliente all'interno dell'interfaccia del POS [l10n_it_rea](l10n_it_rea/) | 14.0.1.0.4 | | Gestisce i campi del Repertorio Economico Amministrativo -[l10n_it_reverse_charge](l10n_it_reverse_charge/) | 14.0.1.2.5 | | Inversione contabile +[l10n_it_reverse_charge](l10n_it_reverse_charge/) | 14.0.1.2.6 | | Inversione contabile [l10n_it_riba_sale_commission](l10n_it_riba_sale_commission/) | 14.0.1.1.1 | [![odooNextev](https://github.com/odooNextev.png?size=30px)](https://github.com/odooNextev) | Modulo ponte tra provvigioni agenti e RiBa -[l10n_it_ricevute_bancarie](l10n_it_ricevute_bancarie/) | 14.0.1.8.1 | | Ricevute bancarie -[l10n_it_sdi_channel](l10n_it_sdi_channel/) | 14.0.2.3.2 | [![sergiocorato](https://github.com/sergiocorato.png?size=30px)](https://github.com/sergiocorato) | Aggiunge il canale di invio/ricezione dei file XML attraverso lo SdI +[l10n_it_ricevute_bancarie](l10n_it_ricevute_bancarie/) | 14.0.1.9.0 | | Ricevute bancarie +[l10n_it_sdi_channel](l10n_it_sdi_channel/) | 14.0.2.4.0 | [![sergiocorato](https://github.com/sergiocorato.png?size=30px)](https://github.com/sergiocorato) | Aggiunge il canale di invio/ricezione dei file XML attraverso lo SdI [l10n_it_split_payment](l10n_it_split_payment/) | 14.0.1.0.7 | | Scissione pagamenti [l10n_it_vat_payability](l10n_it_vat_payability/) | 14.0.1.0.2 | | ITA - Esigibilità IVA -[l10n_it_vat_registries](l10n_it_vat_registries/) | 14.0.1.0.5 | | ITA - Registri IVA +[l10n_it_vat_registries](l10n_it_vat_registries/) | 14.0.1.1.0 | | ITA - Registri IVA [l10n_it_vat_registries_split_payment](l10n_it_vat_registries_split_payment/) | 14.0.1.1.1 | | Modulo di congiunzione tra registri IVA e scissione dei pagamenti [l10n_it_vat_statement_communication](l10n_it_vat_statement_communication/) | 14.0.1.0.0 | | Comunicazione liquidazione IVA ed esportazione file xmlconforme alle specifiche dell'Agenzia delle Entrate [l10n_it_vat_statement_split_payment](l10n_it_vat_statement_split_payment/) | 14.0.1.0.2 | | Migliora la liquidazione dell'IVA tenendo in considerazione la scissione dei pagamenti +[l10n_it_website_portal_fatturapa](l10n_it_website_portal_fatturapa/) | 14.0.1.0.0 | | Add fatturapa fields and checks in frontend user's details [l10n_it_website_portal_fiscalcode](l10n_it_website_portal_fiscalcode/) | 14.0.1.0.1 | | Add fiscal code to details of frontend user [l10n_it_website_portal_ipa](l10n_it_website_portal_ipa/) | 14.0.1.0.0 | | Aggiunge l'indice PA (IPA) tra i dettagli dell'utente nel portale. -[l10n_it_website_sale_fiscalcode](l10n_it_website_sale_fiscalcode/) | 14.0.1.0.0 | | Website Sale FiscalCode -[l10n_it_withholding_tax](l10n_it_withholding_tax/) | 14.0.1.1.8 | | ITA - Ritenute d'acconto +[l10n_it_website_sale_fatturapa](l10n_it_website_sale_fatturapa/) | 14.0.1.0.0 | | Aggiunge i campi necessari alla fatturazione elettronica nel form del checkout +[l10n_it_website_sale_fiscalcode](l10n_it_website_sale_fiscalcode/) | 14.0.1.1.0 | | Website Sale FiscalCode +[l10n_it_withholding_tax](l10n_it_withholding_tax/) | 14.0.1.1.9 | | ITA - Ritenute d'acconto [l10n_it_withholding_tax_payment](l10n_it_withholding_tax_payment/) | 14.0.1.0.2 | | Gestisce le ritenute sulle fatture e sui pagamenti [l10n_it_withholding_tax_reason](l10n_it_withholding_tax_reason/) | 14.0.1.0.2 | | ITA - Causali pagamento per ritenute d'acconto diff --git a/account_vat_period_end_statement/README.rst b/account_vat_period_end_statement/README.rst index 04ff1af8d4dc..fd39e3afe938 100644 --- a/account_vat_period_end_statement/README.rst +++ b/account_vat_period_end_statement/README.rst @@ -7,7 +7,7 @@ ITA - Liquidazione IVA !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:33b0c4662ce1950da8d2a453f2dcf57124be50f30e5de54b00f61a19e531b11f + !! source digest: sha256:0db9b54f4313804efe7532ba87034761669619e9c9497e7431dc8e10e63087cd !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png @@ -39,6 +39,12 @@ ITA - Liquidazione IVA (vedere Configurazione per generare correttamente i periodi). I debiti e crediti precedenti vengono caricati dalle liquidazioni IVA precedenti, in base allo stato del loro pagamento. + A seguito dell’introduzione della normativa OSS, per chi fa vendite online su diversi paesi, deve necessariamente escludere dalla liquidazione iva ciò che farà parte della liquidazione OSS. + E’ stato introdotto un nuovo campo per filtrare le imposte da elaborare, quindi va indicato il conto configurato nelle imposte “Conto utilizzato per la liquidazione IVA”. + Quindi selezionare il conto IVA debito per elaborare liquidazione iva su tutte le imposte che hanno in configurazione il conto IVA debito. Per la liquidazione OSS invece selezionare conto dedicato ad esempio IVA debito OSS Francia. + E’ necessario creare un periodo di dichiarazione IVA dedicato all’OSS . + Per caricare invece tutte le imposte che hanno un conto per la liquidazione IVA, è sufficiente lasciare vuoto il filtro per conti. + Per creare la registrazione contabile, fare clic sul pulsante 'Crea movimento', dentro la scheda 'Conti'. Se i termini di pagamento sono impostati viene scritta anche la scadenza (o le scadenze). @@ -62,6 +68,12 @@ ITA - Liquidazione IVA Previous debit or credit is loaded from previous VAT statement, according to its payments status. + Following the introduction of the OSS legislation, for those who make online sales in different countries, it must necessarily exclude from the VAT settlement what will be part of the OSS settlement. + A new field has been introduced to filter the taxes to be processed, so the account configured in the taxes "Account used for VAT settlement" must be indicated. + Then select the VAT debit account to process VAT settlement on all taxes that have the VAT debit account in setup. + For OSS settlement, on the other hand, select a dedicated account, for example, OSS debit VAT France. It is necessary to create a VAT return period dedicated to the OSS. + To load all taxes that have a VAT settlement account instead, just leave the filter by accounts blank. + In order to generate the journal entry, click on 'Create move' button, inside the 'Accounts' tab. If you select a payment term, the due date(s) will be set. @@ -96,7 +108,7 @@ Configuration #. aprire l'imposta da Fatturazione > Configurazione > Contabilità > Imposte, #. nella scheda 'Opzioni avanzate' selezionare il conto corretto (ad esempio IVA debito) - per il campo 'Conto utilizzato per la liquidazione IVA'. + per il campo 'Conto utilizzato per la liquidazione IVA'. Se si è soggetti a liquidazione OSS indicare un conto dedicato (ad esempio IVA debito OSS Francia) Per calcolare gli interessi, è possibile aggiungere le informazioni da utilizzare (conto e percentuale) nei dati aziendali, nella scheda 'Liquidazione IVA'. @@ -117,7 +129,7 @@ Configuration #. open a tax in Accounting > Configuration > Accounting > Taxes, #. in the tab 'Advanced Options' select the correct account (for instance the account debit VAT) - for the field 'Account used for VAT statement'. + for the field 'Account used for VAT statement'. If you are subject to OSS settlement indicate a dedicated account (for example OSS debit VAT France) If you need to calculate interest, you can add default information in your company data (percentage and account), in the 'VAT statement' tab. @@ -155,6 +167,9 @@ Contributors * Giacomo Grasso * Lara Baggio * Gianmarco Conte +* `TAKOBI `_: + + * Simone Rubino Maintainers ~~~~~~~~~~~ diff --git a/account_vat_period_end_statement/__manifest__.py b/account_vat_period_end_statement/__manifest__.py index 3a345a3c543f..a445981cc077 100644 --- a/account_vat_period_end_statement/__manifest__.py +++ b/account_vat_period_end_statement/__manifest__.py @@ -2,11 +2,12 @@ # Copyright 2012-17 Agile Business Group () # Copyright 2012-15 LinkIt Spa () # Copyright 2015 Associazione Odoo Italia () +# Copyright 2021 Gianmarco Conte - Dinamiche Aziendali Srl () # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). { "name": "ITA - Liquidazione IVA", - "version": "14.0.1.0.3", + "version": "14.0.1.2.0", "category": "Localization/Italy", "summary": "Allow to create the 'VAT Statement'.", "license": "AGPL-3", diff --git a/account_vat_period_end_statement/i18n/account_vat_period_end_statement.pot b/account_vat_period_end_statement/i18n/account_vat_period_end_statement.pot index 3f6480227978..5193b0ced9f6 100644 --- a/account_vat_period_end_statement/i18n/account_vat_period_end_statement.pot +++ b/account_vat_period_end_statement/i18n/account_vat_period_end_statement.pot @@ -76,6 +76,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -711,3 +716,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/am.po b/account_vat_period_end_statement/i18n/am.po index e396ba5afd96..d979b900c2ee 100644 --- a/account_vat_period_end_statement/i18n/am.po +++ b/account_vat_period_end_statement/i18n/am.po @@ -81,6 +81,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -717,3 +722,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/ar.po b/account_vat_period_end_statement/i18n/ar.po index 2b47311e361e..e3526ccf92a8 100644 --- a/account_vat_period_end_statement/i18n/ar.po +++ b/account_vat_period_end_statement/i18n/ar.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -718,3 +723,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/bg.po b/account_vat_period_end_statement/i18n/bg.po index 966605371611..27caee864388 100644 --- a/account_vat_period_end_statement/i18n/bg.po +++ b/account_vat_period_end_statement/i18n/bg.po @@ -81,6 +81,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -717,3 +722,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/bs.po b/account_vat_period_end_statement/i18n/bs.po index bd9a533bbe2a..72d03dd996f6 100644 --- a/account_vat_period_end_statement/i18n/bs.po +++ b/account_vat_period_end_statement/i18n/bs.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -718,3 +723,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/ca.po b/account_vat_period_end_statement/i18n/ca.po index d01f97dbc975..63008423c790 100644 --- a/account_vat_period_end_statement/i18n/ca.po +++ b/account_vat_period_end_statement/i18n/ca.po @@ -81,6 +81,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -717,3 +722,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/ca_ES.po b/account_vat_period_end_statement/i18n/ca_ES.po index 5fa7443e16a5..24308900cdfa 100644 --- a/account_vat_period_end_statement/i18n/ca_ES.po +++ b/account_vat_period_end_statement/i18n/ca_ES.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -718,3 +723,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/cs.po b/account_vat_period_end_statement/i18n/cs.po index 7d032b65e256..d9dd596aef49 100644 --- a/account_vat_period_end_statement/i18n/cs.po +++ b/account_vat_period_end_statement/i18n/cs.po @@ -81,6 +81,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -717,3 +722,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/da.po b/account_vat_period_end_statement/i18n/da.po index 23fa5f81caee..1b9e878f0f66 100644 --- a/account_vat_period_end_statement/i18n/da.po +++ b/account_vat_period_end_statement/i18n/da.po @@ -81,6 +81,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -717,3 +722,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/de.po b/account_vat_period_end_statement/i18n/de.po index a3ba55de15e2..3d5507e3feeb 100644 --- a/account_vat_period_end_statement/i18n/de.po +++ b/account_vat_period_end_statement/i18n/de.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -718,3 +723,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/el_GR.po b/account_vat_period_end_statement/i18n/el_GR.po index 50218601d36a..9c0f7c1f8169 100644 --- a/account_vat_period_end_statement/i18n/el_GR.po +++ b/account_vat_period_end_statement/i18n/el_GR.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -718,3 +723,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/en_AU.po b/account_vat_period_end_statement/i18n/en_AU.po index 31e674870204..6a293e166a2b 100644 --- a/account_vat_period_end_statement/i18n/en_AU.po +++ b/account_vat_period_end_statement/i18n/en_AU.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -718,3 +723,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/en_GB.po b/account_vat_period_end_statement/i18n/en_GB.po index cfe544ea6d95..e55d3e6075e1 100644 --- a/account_vat_period_end_statement/i18n/en_GB.po +++ b/account_vat_period_end_statement/i18n/en_GB.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -718,3 +723,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/es.po b/account_vat_period_end_statement/i18n/es.po index 215512c7b830..0eb0dd8cc2ec 100644 --- a/account_vat_period_end_statement/i18n/es.po +++ b/account_vat_period_end_statement/i18n/es.po @@ -81,6 +81,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -717,3 +722,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/es_AR.po b/account_vat_period_end_statement/i18n/es_AR.po index 25ff1a022897..a69a024ec747 100644 --- a/account_vat_period_end_statement/i18n/es_AR.po +++ b/account_vat_period_end_statement/i18n/es_AR.po @@ -84,6 +84,11 @@ msgstr "" msgid "Accounts" msgstr "Cuentas" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -722,5 +727,11 @@ msgstr "" msgid "You cannot delete a confirmed or paid statement" msgstr "" +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" + #~ msgid "Account Lines" #~ msgstr "Líneas de cuenta" diff --git a/account_vat_period_end_statement/i18n/es_CL.po b/account_vat_period_end_statement/i18n/es_CL.po index 1d03222404e0..00696f7d3e68 100644 --- a/account_vat_period_end_statement/i18n/es_CL.po +++ b/account_vat_period_end_statement/i18n/es_CL.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -718,3 +723,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/es_CO.po b/account_vat_period_end_statement/i18n/es_CO.po index 6e56f392458f..2ea1ae6e04db 100644 --- a/account_vat_period_end_statement/i18n/es_CO.po +++ b/account_vat_period_end_statement/i18n/es_CO.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -718,3 +723,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/es_CR.po b/account_vat_period_end_statement/i18n/es_CR.po index 889c1656e37a..c078f3d56fc4 100644 --- a/account_vat_period_end_statement/i18n/es_CR.po +++ b/account_vat_period_end_statement/i18n/es_CR.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -718,3 +723,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/es_DO.po b/account_vat_period_end_statement/i18n/es_DO.po index 23c661c258af..dedd01a04df5 100644 --- a/account_vat_period_end_statement/i18n/es_DO.po +++ b/account_vat_period_end_statement/i18n/es_DO.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -718,3 +723,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/es_EC.po b/account_vat_period_end_statement/i18n/es_EC.po index c65308708c15..a21a288831bf 100644 --- a/account_vat_period_end_statement/i18n/es_EC.po +++ b/account_vat_period_end_statement/i18n/es_EC.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -718,3 +723,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/es_ES.po b/account_vat_period_end_statement/i18n/es_ES.po index 6e3d61943d63..05f0560ef376 100644 --- a/account_vat_period_end_statement/i18n/es_ES.po +++ b/account_vat_period_end_statement/i18n/es_ES.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -718,3 +723,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/es_MX.po b/account_vat_period_end_statement/i18n/es_MX.po index 83bd42a6d532..a6b8a89047b3 100644 --- a/account_vat_period_end_statement/i18n/es_MX.po +++ b/account_vat_period_end_statement/i18n/es_MX.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -718,3 +723,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/es_PE.po b/account_vat_period_end_statement/i18n/es_PE.po index ee57ee299b7c..cf970c357071 100644 --- a/account_vat_period_end_statement/i18n/es_PE.po +++ b/account_vat_period_end_statement/i18n/es_PE.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -718,3 +723,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/es_PY.po b/account_vat_period_end_statement/i18n/es_PY.po index 63f7220835c7..bfd4b9546638 100644 --- a/account_vat_period_end_statement/i18n/es_PY.po +++ b/account_vat_period_end_statement/i18n/es_PY.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -718,3 +723,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/es_VE.po b/account_vat_period_end_statement/i18n/es_VE.po index 2898ea0e81af..21057632762d 100644 --- a/account_vat_period_end_statement/i18n/es_VE.po +++ b/account_vat_period_end_statement/i18n/es_VE.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -718,3 +723,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/et.po b/account_vat_period_end_statement/i18n/et.po index ec82582b18bb..deab2e64f13f 100644 --- a/account_vat_period_end_statement/i18n/et.po +++ b/account_vat_period_end_statement/i18n/et.po @@ -81,6 +81,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -717,3 +722,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/eu.po b/account_vat_period_end_statement/i18n/eu.po index 52043a3f38d7..1ba37652e9dc 100644 --- a/account_vat_period_end_statement/i18n/eu.po +++ b/account_vat_period_end_statement/i18n/eu.po @@ -81,6 +81,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -717,3 +722,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/fa.po b/account_vat_period_end_statement/i18n/fa.po index 0e330b3f0915..7a4a52be890c 100644 --- a/account_vat_period_end_statement/i18n/fa.po +++ b/account_vat_period_end_statement/i18n/fa.po @@ -81,6 +81,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -717,3 +722,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/fi.po b/account_vat_period_end_statement/i18n/fi.po index 889c0bf526f2..12805c9090a5 100644 --- a/account_vat_period_end_statement/i18n/fi.po +++ b/account_vat_period_end_statement/i18n/fi.po @@ -81,6 +81,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -717,3 +722,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/fr.po b/account_vat_period_end_statement/i18n/fr.po index 4c55aa10c91d..4f3b08184237 100644 --- a/account_vat_period_end_statement/i18n/fr.po +++ b/account_vat_period_end_statement/i18n/fr.po @@ -81,6 +81,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -717,3 +722,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/fr_CA.po b/account_vat_period_end_statement/i18n/fr_CA.po index 464994837651..aec9aef6486a 100644 --- a/account_vat_period_end_statement/i18n/fr_CA.po +++ b/account_vat_period_end_statement/i18n/fr_CA.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -718,3 +723,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/fr_CH.po b/account_vat_period_end_statement/i18n/fr_CH.po index 380462801bcc..e3b24a490c4b 100644 --- a/account_vat_period_end_statement/i18n/fr_CH.po +++ b/account_vat_period_end_statement/i18n/fr_CH.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -718,3 +723,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/fr_FR.po b/account_vat_period_end_statement/i18n/fr_FR.po index ddc48d815ecf..a4135a478c7a 100644 --- a/account_vat_period_end_statement/i18n/fr_FR.po +++ b/account_vat_period_end_statement/i18n/fr_FR.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -718,3 +723,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/gl.po b/account_vat_period_end_statement/i18n/gl.po index 1ccb73a4a291..c3762a72409b 100644 --- a/account_vat_period_end_statement/i18n/gl.po +++ b/account_vat_period_end_statement/i18n/gl.po @@ -81,6 +81,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -717,3 +722,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/gl_ES.po b/account_vat_period_end_statement/i18n/gl_ES.po index e9b6342d09b6..d720cd9625a5 100644 --- a/account_vat_period_end_statement/i18n/gl_ES.po +++ b/account_vat_period_end_statement/i18n/gl_ES.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -718,3 +723,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/he.po b/account_vat_period_end_statement/i18n/he.po index 2514cd6f379e..593ecbab5167 100644 --- a/account_vat_period_end_statement/i18n/he.po +++ b/account_vat_period_end_statement/i18n/he.po @@ -81,6 +81,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -717,3 +722,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/hi.po b/account_vat_period_end_statement/i18n/hi.po index f1db205bc449..faba17b66369 100644 --- a/account_vat_period_end_statement/i18n/hi.po +++ b/account_vat_period_end_statement/i18n/hi.po @@ -81,6 +81,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -717,3 +722,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/hr.po b/account_vat_period_end_statement/i18n/hr.po index e87ce041eef2..f493a2c7dbef 100644 --- a/account_vat_period_end_statement/i18n/hr.po +++ b/account_vat_period_end_statement/i18n/hr.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -718,3 +723,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/hr_HR.po b/account_vat_period_end_statement/i18n/hr_HR.po index 36a35cd9da3d..10e59757277e 100644 --- a/account_vat_period_end_statement/i18n/hr_HR.po +++ b/account_vat_period_end_statement/i18n/hr_HR.po @@ -83,6 +83,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -719,3 +724,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/hu.po b/account_vat_period_end_statement/i18n/hu.po index 92acbb1ca66f..fa5d1496700a 100644 --- a/account_vat_period_end_statement/i18n/hu.po +++ b/account_vat_period_end_statement/i18n/hu.po @@ -81,6 +81,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -717,3 +722,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/id.po b/account_vat_period_end_statement/i18n/id.po index bac1e2be08d2..225ffd3e92f9 100644 --- a/account_vat_period_end_statement/i18n/id.po +++ b/account_vat_period_end_statement/i18n/id.po @@ -81,6 +81,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -717,3 +722,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/it.po b/account_vat_period_end_statement/i18n/it.po index a308938bf061..8a2b8bd55de1 100644 --- a/account_vat_period_end_statement/i18n/it.po +++ b/account_vat_period_end_statement/i18n/it.po @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: Odoo Server 12.0+e\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-04-09 12:56+0000\n" -"PO-Revision-Date: 2023-04-21 13:42+0000\n" +"PO-Revision-Date: 2024-03-04 07:40+0000\n" "Last-Translator: mymage \n" "Language-Team: \n" "Language: it\n" @@ -15,7 +15,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.14.1\n" +"X-Generator: Weblate 4.17\n" #. module: account_vat_period_end_statement #: model:ir.model.fields.selection,name:account_vat_period_end_statement.selection__account_vat_period_end_statement__advance_computation_method__4 @@ -80,6 +80,11 @@ msgstr "Conto utilizzato per la liquidazione IVA" msgid "Accounts" msgstr "Conti" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "Filtro conti" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -727,6 +732,12 @@ msgstr "Liquidazione IVA" msgid "You cannot delete a confirmed or paid statement" msgstr "Non è possibile eliminare una liquidazione confermata o pagata" +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "Bisogna selezionare documenti della stessa azienda!" + #~ msgid "Account Lines" #~ msgstr "Righe conti" diff --git a/account_vat_period_end_statement/i18n/ja.po b/account_vat_period_end_statement/i18n/ja.po index b12a26c73fe3..62a94d914a9c 100644 --- a/account_vat_period_end_statement/i18n/ja.po +++ b/account_vat_period_end_statement/i18n/ja.po @@ -81,6 +81,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -717,3 +722,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/ko.po b/account_vat_period_end_statement/i18n/ko.po index d9b6ca5b1b3f..8b858cd891e0 100644 --- a/account_vat_period_end_statement/i18n/ko.po +++ b/account_vat_period_end_statement/i18n/ko.po @@ -81,6 +81,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -717,3 +722,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/lo.po b/account_vat_period_end_statement/i18n/lo.po index bcbf62994973..f264b3984c51 100644 --- a/account_vat_period_end_statement/i18n/lo.po +++ b/account_vat_period_end_statement/i18n/lo.po @@ -81,6 +81,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -717,3 +722,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/lt.po b/account_vat_period_end_statement/i18n/lt.po index e6d57248806a..e1202599fb00 100644 --- a/account_vat_period_end_statement/i18n/lt.po +++ b/account_vat_period_end_statement/i18n/lt.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -718,3 +723,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/lt_LT.po b/account_vat_period_end_statement/i18n/lt_LT.po index 3feea40fafc1..eb93caa85bea 100644 --- a/account_vat_period_end_statement/i18n/lt_LT.po +++ b/account_vat_period_end_statement/i18n/lt_LT.po @@ -83,6 +83,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -719,3 +724,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/lv.po b/account_vat_period_end_statement/i18n/lv.po index 6ac0a17fda39..127e76399d63 100644 --- a/account_vat_period_end_statement/i18n/lv.po +++ b/account_vat_period_end_statement/i18n/lv.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -718,3 +723,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/mk.po b/account_vat_period_end_statement/i18n/mk.po index 40a843b68fd9..4ec8d8e7cda6 100644 --- a/account_vat_period_end_statement/i18n/mk.po +++ b/account_vat_period_end_statement/i18n/mk.po @@ -81,6 +81,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -717,3 +722,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/mn.po b/account_vat_period_end_statement/i18n/mn.po index 1de6789405f1..4101fee2218d 100644 --- a/account_vat_period_end_statement/i18n/mn.po +++ b/account_vat_period_end_statement/i18n/mn.po @@ -81,6 +81,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -717,3 +722,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/nb.po b/account_vat_period_end_statement/i18n/nb.po index 57d8c8c2386c..92d511f423bd 100644 --- a/account_vat_period_end_statement/i18n/nb.po +++ b/account_vat_period_end_statement/i18n/nb.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -718,3 +723,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/nb_NO.po b/account_vat_period_end_statement/i18n/nb_NO.po index f6badc09fc08..795815968c79 100644 --- a/account_vat_period_end_statement/i18n/nb_NO.po +++ b/account_vat_period_end_statement/i18n/nb_NO.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -718,3 +723,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/nl.po b/account_vat_period_end_statement/i18n/nl.po index b1ac13b48620..b6abf901f621 100644 --- a/account_vat_period_end_statement/i18n/nl.po +++ b/account_vat_period_end_statement/i18n/nl.po @@ -81,6 +81,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -717,3 +722,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/nl_BE.po b/account_vat_period_end_statement/i18n/nl_BE.po index c182478aec4b..716f0980fa04 100644 --- a/account_vat_period_end_statement/i18n/nl_BE.po +++ b/account_vat_period_end_statement/i18n/nl_BE.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -718,3 +723,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/pl.po b/account_vat_period_end_statement/i18n/pl.po index 038252cd8509..158f994da9f1 100644 --- a/account_vat_period_end_statement/i18n/pl.po +++ b/account_vat_period_end_statement/i18n/pl.po @@ -83,6 +83,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -719,3 +724,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/pt.po b/account_vat_period_end_statement/i18n/pt.po index b1c632ba8e00..838c27239752 100644 --- a/account_vat_period_end_statement/i18n/pt.po +++ b/account_vat_period_end_statement/i18n/pt.po @@ -81,6 +81,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -717,3 +722,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/pt_BR.po b/account_vat_period_end_statement/i18n/pt_BR.po index f039dd284a8c..d0eb542396b1 100644 --- a/account_vat_period_end_statement/i18n/pt_BR.po +++ b/account_vat_period_end_statement/i18n/pt_BR.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -718,3 +723,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/pt_PT.po b/account_vat_period_end_statement/i18n/pt_PT.po index 5fc0144292f3..4772443f77a1 100644 --- a/account_vat_period_end_statement/i18n/pt_PT.po +++ b/account_vat_period_end_statement/i18n/pt_PT.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -718,3 +723,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/ro.po b/account_vat_period_end_statement/i18n/ro.po index 4bb446f49fd6..ce759f0bdb08 100644 --- a/account_vat_period_end_statement/i18n/ro.po +++ b/account_vat_period_end_statement/i18n/ro.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -718,3 +723,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/ru.po b/account_vat_period_end_statement/i18n/ru.po index cd5919afc3b7..103fd6e43ef1 100644 --- a/account_vat_period_end_statement/i18n/ru.po +++ b/account_vat_period_end_statement/i18n/ru.po @@ -83,6 +83,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -719,3 +724,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/sk.po b/account_vat_period_end_statement/i18n/sk.po index 3aabeb0321ae..40646b9a7482 100644 --- a/account_vat_period_end_statement/i18n/sk.po +++ b/account_vat_period_end_statement/i18n/sk.po @@ -81,6 +81,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -717,3 +722,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/sl.po b/account_vat_period_end_statement/i18n/sl.po index df2afa840bf5..7333284fac0e 100644 --- a/account_vat_period_end_statement/i18n/sl.po +++ b/account_vat_period_end_statement/i18n/sl.po @@ -83,6 +83,11 @@ msgstr "Konto za DDV izjavo" msgid "Accounts" msgstr "Konti" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -739,6 +744,12 @@ msgstr "DDV izjava" msgid "You cannot delete a confirmed or paid statement" msgstr "Potrjenih ali plačanih izjav ne morete brisati" +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" + #~ msgid "Account Lines" #~ msgstr "Kontne postavke" diff --git a/account_vat_period_end_statement/i18n/sr.po b/account_vat_period_end_statement/i18n/sr.po index c65a130edba9..7745e031c340 100644 --- a/account_vat_period_end_statement/i18n/sr.po +++ b/account_vat_period_end_statement/i18n/sr.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -718,3 +723,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/sr@latin.po b/account_vat_period_end_statement/i18n/sr@latin.po index 853f19664937..b7d4612c19d7 100644 --- a/account_vat_period_end_statement/i18n/sr@latin.po +++ b/account_vat_period_end_statement/i18n/sr@latin.po @@ -83,6 +83,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -719,3 +724,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/sv.po b/account_vat_period_end_statement/i18n/sv.po index 1c34db56b0ef..0ad77c758ef6 100644 --- a/account_vat_period_end_statement/i18n/sv.po +++ b/account_vat_period_end_statement/i18n/sv.po @@ -81,6 +81,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -717,3 +722,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/th.po b/account_vat_period_end_statement/i18n/th.po index 95d299835e37..9533344822ad 100644 --- a/account_vat_period_end_statement/i18n/th.po +++ b/account_vat_period_end_statement/i18n/th.po @@ -81,6 +81,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -717,3 +722,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/tr.po b/account_vat_period_end_statement/i18n/tr.po index b890e7e1a404..ab4af13e477e 100644 --- a/account_vat_period_end_statement/i18n/tr.po +++ b/account_vat_period_end_statement/i18n/tr.po @@ -81,6 +81,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -717,3 +722,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/uk.po b/account_vat_period_end_statement/i18n/uk.po index 3ba1623cc07e..88c643a1b9e2 100644 --- a/account_vat_period_end_statement/i18n/uk.po +++ b/account_vat_period_end_statement/i18n/uk.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -718,3 +723,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/vi.po b/account_vat_period_end_statement/i18n/vi.po index 5cc93245f28d..3f2f15b92778 100644 --- a/account_vat_period_end_statement/i18n/vi.po +++ b/account_vat_period_end_statement/i18n/vi.po @@ -81,6 +81,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -717,3 +722,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/vi_VN.po b/account_vat_period_end_statement/i18n/vi_VN.po index 104aefb0fed6..8305b2ee5ef9 100644 --- a/account_vat_period_end_statement/i18n/vi_VN.po +++ b/account_vat_period_end_statement/i18n/vi_VN.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -718,3 +723,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/zh_CN.po b/account_vat_period_end_statement/i18n/zh_CN.po index 7a32e8ebf9d0..87cc2b2a399d 100644 --- a/account_vat_period_end_statement/i18n/zh_CN.po +++ b/account_vat_period_end_statement/i18n/zh_CN.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -718,3 +723,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/i18n/zh_TW.po b/account_vat_period_end_statement/i18n/zh_TW.po index 4ce03866da5c..02156f0b0cbc 100644 --- a/account_vat_period_end_statement/i18n/zh_TW.po +++ b/account_vat_period_end_statement/i18n/zh_TW.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" @@ -718,3 +723,9 @@ msgstr "" #, python-format msgid "You cannot delete a confirmed or paid statement" msgstr "" + +#. module: account_vat_period_end_statement +#: code:addons/account_vat_period_end_statement/report/vat_statement.py:0 +#, python-format +msgid "You must select documents from the same company!" +msgstr "" diff --git a/account_vat_period_end_statement/models/account.py b/account_vat_period_end_statement/models/account.py index 96baee9de24d..9119093f0e1c 100644 --- a/account_vat_period_end_statement/models/account.py +++ b/account_vat_period_end_statement/models/account.py @@ -1,6 +1,8 @@ # Copyright 2011-2012 Domsense s.r.l. (). # Copyright 2012-15 Agile Business Group sagl () # Copyright 2015 Associazione Odoo Italia () +# Copyright 2021 Gianmarco Conte - Dinamiche Aziendali Srl () +# Copyright 2022 Simone Rubino - TAKOBI # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). import math @@ -107,6 +109,7 @@ def _get_default_interest_percent(self): _name = "account.vat.period.end.statement" _description = "VAT period end statement" _rec_name = "date" + _order = "date DESC, id DESC" debit_vat_account_line_ids = fields.One2many( "statement.debit.account.line", @@ -341,6 +344,17 @@ def _get_default_interest_percent(self): default=lambda self: self.env.company, ) annual = fields.Boolean("Annual prospect") + account_ids = fields.Many2many( + "account.account", + string="Accounts filter", + domain=lambda self: self._get_domain_account(), + ) + + def _get_domain_account(self): + domain = [("vat_statement_account_id", "!=", False)] + tax_ids = self.env["account.tax"].search(domain) + account_ids = tax_ids.mapped("vat_statement_account_id") + return [("id", "in", account_ids.ids)] def unlink(self): for statement in self: @@ -608,16 +622,27 @@ def _add_debit_vat_data(self, lines_to_create, move, statement, statement_date): debit_vat_data["credit"] = math.fabs(debit_line.amount) lines_to_create.append((0, 0, debit_vat_data)) + def _get_previous_statements(self): + self.ensure_one() + prev_statements = self.search( + [ + ("date", "<", self.date), + ("annual", "=", False), + ], + order="date desc", + ) + prev_statements_same_accounts = prev_statements.filtered( + lambda s: s.account_ids == self.account_ids + ) + return prev_statements_same_accounts + def compute_amounts(self): decimal_precision_obj = self.env["decimal.precision"] debit_line_model = self.env["statement.debit.account.line"] credit_line_model = self.env["statement.credit.account.line"] for statement in self: statement.previous_debit_vat_amount = 0.0 - prev_statements = self.search( - [("date", "<", statement.date), ("annual", "=", False)], - order="date desc", - ) + prev_statements = statement._get_previous_statements() if prev_statements and not statement.annual: prev_statement = prev_statements[0] if ( @@ -735,23 +760,14 @@ def _get_credit_debit_lines(self, statement): ] ) for tax in taxes: - # se ho una tassa padre con figli cee_type, condidero le figlie - if any( - tax_ch - for tax_ch in tax.children_tax_ids - if tax_ch.cee_type in ("sale", "purchase") + if ( + tax.vat_statement_account_id.id in statement.account_ids.ids + or not statement.account_ids ): - - for tax_ch in tax.children_tax_ids: - if tax_ch.cee_type == "sale": - self._set_debit_lines(tax_ch, debit_line_ids, statement) - elif tax_ch.cee_type == "purchase": - self._set_credit_lines(tax_ch, credit_line_ids, statement) - - elif tax.type_tax_use == "sale": - self._set_debit_lines(tax, debit_line_ids, statement) - elif tax.type_tax_use == "purchase": - self._set_credit_lines(tax, credit_line_ids, statement) + if tax.type_tax_use == "sale": + self._set_debit_lines(tax, debit_line_ids, statement) + elif tax.type_tax_use == "purchase": + self._set_credit_lines(tax, credit_line_ids, statement) return credit_line_ids, debit_line_ids diff --git a/account_vat_period_end_statement/readme/CONFIGURE.rst b/account_vat_period_end_statement/readme/CONFIGURE.rst index c8841da86d3b..32d271f464ef 100644 --- a/account_vat_period_end_statement/readme/CONFIGURE.rst +++ b/account_vat_period_end_statement/readme/CONFIGURE.rst @@ -13,7 +13,7 @@ #. aprire l'imposta da Fatturazione > Configurazione > Contabilità > Imposte, #. nella scheda 'Opzioni avanzate' selezionare il conto corretto (ad esempio IVA debito) - per il campo 'Conto utilizzato per la liquidazione IVA'. + per il campo 'Conto utilizzato per la liquidazione IVA'. Se si è soggetti a liquidazione OSS indicare un conto dedicato (ad esempio IVA debito OSS Francia) Per calcolare gli interessi, è possibile aggiungere le informazioni da utilizzare (conto e percentuale) nei dati aziendali, nella scheda 'Liquidazione IVA'. @@ -34,7 +34,7 @@ #. open a tax in Accounting > Configuration > Accounting > Taxes, #. in the tab 'Advanced Options' select the correct account (for instance the account debit VAT) - for the field 'Account used for VAT statement'. + for the field 'Account used for VAT statement'. If you are subject to OSS settlement indicate a dedicated account (for example OSS debit VAT France) If you need to calculate interest, you can add default information in your company data (percentage and account), in the 'VAT statement' tab. diff --git a/account_vat_period_end_statement/readme/CONTRIBUTORS.rst b/account_vat_period_end_statement/readme/CONTRIBUTORS.rst index 8efaaef9c5c7..b93e0e06618f 100644 --- a/account_vat_period_end_statement/readme/CONTRIBUTORS.rst +++ b/account_vat_period_end_statement/readme/CONTRIBUTORS.rst @@ -9,3 +9,6 @@ * Giacomo Grasso * Lara Baggio * Gianmarco Conte +* `TAKOBI `_: + + * Simone Rubino diff --git a/account_vat_period_end_statement/readme/DESCRIPTION.rst b/account_vat_period_end_statement/readme/DESCRIPTION.rst index f7987a48ebf4..5e2630557a31 100644 --- a/account_vat_period_end_statement/readme/DESCRIPTION.rst +++ b/account_vat_period_end_statement/readme/DESCRIPTION.rst @@ -9,6 +9,12 @@ (vedere Configurazione per generare correttamente i periodi). I debiti e crediti precedenti vengono caricati dalle liquidazioni IVA precedenti, in base allo stato del loro pagamento. + A seguito dell’introduzione della normativa OSS, per chi fa vendite online su diversi paesi, deve necessariamente escludere dalla liquidazione iva ciò che farà parte della liquidazione OSS. + E’ stato introdotto un nuovo campo per filtrare le imposte da elaborare, quindi va indicato il conto configurato nelle imposte “Conto utilizzato per la liquidazione IVA”. + Quindi selezionare il conto IVA debito per elaborare liquidazione iva su tutte le imposte che hanno in configurazione il conto IVA debito. Per la liquidazione OSS invece selezionare conto dedicato ad esempio IVA debito OSS Francia. + E’ necessario creare un periodo di dichiarazione IVA dedicato all’OSS . + Per caricare invece tutte le imposte che hanno un conto per la liquidazione IVA, è sufficiente lasciare vuoto il filtro per conti. + Per creare la registrazione contabile, fare clic sul pulsante 'Crea movimento', dentro la scheda 'Conti'. Se i termini di pagamento sono impostati viene scritta anche la scadenza (o le scadenze). @@ -32,6 +38,12 @@ Previous debit or credit is loaded from previous VAT statement, according to its payments status. + Following the introduction of the OSS legislation, for those who make online sales in different countries, it must necessarily exclude from the VAT settlement what will be part of the OSS settlement. + A new field has been introduced to filter the taxes to be processed, so the account configured in the taxes "Account used for VAT settlement" must be indicated. + Then select the VAT debit account to process VAT settlement on all taxes that have the VAT debit account in setup. + For OSS settlement, on the other hand, select a dedicated account, for example, OSS debit VAT France. It is necessary to create a VAT return period dedicated to the OSS. + To load all taxes that have a VAT settlement account instead, just leave the filter by accounts blank. + In order to generate the journal entry, click on 'Create move' button, inside the 'Accounts' tab. If you select a payment term, the due date(s) will be set. diff --git a/account_vat_period_end_statement/report/vat_statement.py b/account_vat_period_end_statement/report/vat_statement.py index 9596fd1d3d93..ef6378e8ff77 100644 --- a/account_vat_period_end_statement/report/vat_statement.py +++ b/account_vat_period_end_statement/report/vat_statement.py @@ -8,6 +8,7 @@ import time from odoo import api, models +from odoo.exceptions import UserError from odoo.tools.misc import formatLang from odoo.tools.translate import _ @@ -19,11 +20,15 @@ class VatPeriodEndStatementReport(models.AbstractModel): @api.model def _get_report_values(self, docids, data=None): docs = self.env["account.vat.period.end.statement"].browse(docids) + companies = docs.mapped("company_id") + if len(companies) != 1: + raise UserError(_("You must select documents from the same company!")) + company = companies[0] vals = { "docs": docs, "time": time, - "tax_amounts": self._get_taxes_amounts, - "account_vat_amounts": self._get_account_vat_amounts, + "tax_amounts": self.with_company(company)._get_taxes_amounts, + "account_vat_amounts": self.with_company(company)._get_account_vat_amounts, "formatLang": formatLang, "env": self.env, } @@ -53,21 +58,6 @@ def _get_taxes_amounts(self, period_id, tax_ids=None, registry_type="customer"): } ) - if tax.cee_type and tax.parent_tax_ids and len(tax.parent_tax_ids) == 1: - # In caso di integrazione iva l'imponibile è solo sulla - # padre - parent = tax.parent_tax_ids[0] - - tax_data = parent._compute_totals_tax( - { - "from_date": date_range.date_start, - "to_date": date_range.date_end, - "registry_type": registry_type, - } - ) - # return tax_name, base, tax_val, deductible, undeductible - base = tax_data[1] - res[tax_name] = { "code": tax_name, "vat": tax_val, diff --git a/account_vat_period_end_statement/static/description/index.html b/account_vat_period_end_statement/static/description/index.html index fb2729024824..f2bc12c37018 100644 --- a/account_vat_period_end_statement/static/description/index.html +++ b/account_vat_period_end_statement/static/description/index.html @@ -366,7 +366,7 @@

ITA - Liquidazione IVA

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:33b0c4662ce1950da8d2a453f2dcf57124be50f30e5de54b00f61a19e531b11f +!! source digest: sha256:0db9b54f4313804efe7532ba87034761669619e9c9497e7431dc8e10e63087cd !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

Beta License: AGPL-3 OCA/l10n-italy Translate me on Weblate Try me on Runboat

Italiano

@@ -378,6 +378,11 @@

ITA - Liquidazione IVA

Di norma, gli importi di debito e credito delle imposte vengono caricati automaticamente dai periodi selezionati (vedere Configurazione per generare correttamente i periodi). I debiti e crediti precedenti vengono caricati dalle liquidazioni IVA precedenti, in base allo stato del loro pagamento.

+

A seguito dell’introduzione della normativa OSS, per chi fa vendite online su diversi paesi, deve necessariamente escludere dalla liquidazione iva ciò che farà parte della liquidazione OSS. +E’ stato introdotto un nuovo campo per filtrare le imposte da elaborare, quindi va indicato il conto configurato nelle imposte “Conto utilizzato per la liquidazione IVA”. +Quindi selezionare il conto IVA debito per elaborare liquidazione iva su tutte le imposte che hanno in configurazione il conto IVA debito. Per la liquidazione OSS invece selezionare conto dedicato ad esempio IVA debito OSS Francia. +E’ necessario creare un periodo di dichiarazione IVA dedicato all’OSS . +Per caricare invece tutte le imposte che hanno un conto per la liquidazione IVA, è sufficiente lasciare vuoto il filtro per conti.

Per creare la registrazione contabile, fare clic sul pulsante ‘Crea movimento’, dentro la scheda ‘Conti’. Se i termini di pagamento sono impostati viene scritta anche la scadenza (o le scadenze).

La scheda ‘Erario’ contiene informazioni sui pagamenti, @@ -397,6 +402,11 @@

ITA - Liquidazione IVA

from taxes of the selected periods (see Configuration to correctly generate the periods). Previous debit or credit is loaded from previous VAT statement, according to its payments status.

+

Following the introduction of the OSS legislation, for those who make online sales in different countries, it must necessarily exclude from the VAT settlement what will be part of the OSS settlement. +A new field has been introduced to filter the taxes to be processed, so the account configured in the taxes “Account used for VAT settlement” must be indicated. +Then select the VAT debit account to process VAT settlement on all taxes that have the VAT debit account in setup. +For OSS settlement, on the other hand, select a dedicated account, for example, OSS debit VAT France. It is necessary to create a VAT return period dedicated to the OSS. +To load all taxes that have a VAT settlement account instead, just leave the filter by accounts blank.

In order to generate the journal entry, click on ‘Create move’ button, inside the ‘Accounts’ tab. If you select a payment term, the due date(s) will be set.

The ‘tax authority’ tab contains information about payment(s), @@ -436,7 +446,7 @@

Configuration

  1. aprire l’imposta da Fatturazione > Configurazione > Contabilità > Imposte,
  2. nella scheda ‘Opzioni avanzate’ selezionare il conto corretto (ad esempio IVA debito) -per il campo ‘Conto utilizzato per la liquidazione IVA’.
  3. +per il campo ‘Conto utilizzato per la liquidazione IVA’. Se si è soggetti a liquidazione OSS indicare un conto dedicato (ad esempio IVA debito OSS Francia)

Per calcolare gli interessi, è possibile aggiungere le informazioni da utilizzare (conto e percentuale) nei dati aziendali, nella scheda ‘Liquidazione IVA’.

@@ -457,7 +467,7 @@

Configuration

  1. open a tax in Accounting > Configuration > Accounting > Taxes,
  2. in the tab ‘Advanced Options’ select the correct account (for instance the account debit VAT) -for the field ‘Account used for VAT statement’.
  3. +for the field ‘Account used for VAT statement’. If you are subject to OSS settlement indicate a dedicated account (for example OSS debit VAT France)

If you need to calculate interest, you can add default information in your company data (percentage and account), in the ‘VAT statement’ tab.

@@ -494,6 +504,10 @@

Contributors

  • Giacomo Grasso <giacomo.grasso.82@gmail.com>
  • Lara Baggio <http://linkgroup.it/>
  • Gianmarco Conte <gconte@dinamicheaziendali.it>
  • +
  • TAKOBI: +
  • diff --git a/account_vat_period_end_statement/tests/test_vat_statement.py b/account_vat_period_end_statement/tests/test_vat_statement.py index 785ff9a21588..b99e108601a5 100644 --- a/account_vat_period_end_statement/tests/test_vat_statement.py +++ b/account_vat_period_end_statement/tests/test_vat_statement.py @@ -1,11 +1,14 @@ # Copyright 2015 Agile Business Group +# Copyright 2022 Simone Rubino - TAKOBI # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). from datetime import date, datetime from dateutil.rrule import MONTHLY +from odoo import fields from odoo.tests import tagged +from odoo.tests.common import Form from odoo.addons.account.tests.common import AccountTestInvoicingCommon @@ -277,3 +280,139 @@ def test_vat_statement(self): self.assertEqual(line.debit, 100) self.assertTrue(vat_auth_found) # TODO payment + + def _create_vendor_bill(self, partner, invoice_date, price_unit, tax): + """ + Create an open Vendor Bill for `partner` having date `invoice_date`. + The Bill will also have a Line having Price `price_unit` and Tax `tax`. + """ + bill_model = self.invoice_model.with_context( + invoice_type="in_invoice", + ) + bill_form = Form(bill_model) + bill_form.partner_id = partner + bill_form.invoice_date = invoice_date + with bill_form.invoice_line_ids.new() as line: + line.tax_ids.clear() + line.tax_ids.add(tax) + line.name = "Test Invoice Line" + line.account_id = self.company_data["default_account_expense"] + line.price_unit = price_unit + bill = bill_form.save() + bill.action_post() + return bill + + def _get_statement(self, period, statement_date, accounts): + """ + Create a VAT Statement in date `statement_date` + for Period `period` and Accounts `accounts`. + """ + # Create statement + statement_form = Form(self.vat_statement_model) + statement_form.journal_id = self.general_journal + statement_form.authority_vat_account_id = self.vat_authority + statement_form.payment_term_id = self.account_payment_term + statement_form.date = statement_date + statement_form.account_ids.clear() + for account in accounts: + statement_form.account_ids.add(account) + statement = statement_form.save() + + # Add period + add_period_model = self.env["add.period.to.vat.statement"] + add_period_model = add_period_model.with_context( + active_id=statement.id, + active_model=statement._name, + ) + add_period_form = Form(add_period_model) + add_period_form.period_id = period + add_period = add_period_form.save() + add_period.add_period() + return statement + + def test_different_previous_vat_statements(self): + """ + Statements for different Accounts + only count previous Amounts from Statements with the same Accounts. + """ + # Arrange: Create two different VAT Statements + # selecting two different Accounts + partner = self.env.ref("base.res_partner_4") + tax = self.account_tax_22_credit + tax_statement_account = tax.vat_statement_account_id + last_year_bill = self._create_vendor_bill( + partner, + self.last_year_recent_date, + 10, + tax, + ) + self.assertEqual(last_year_bill.state, "posted") + last_year_period = self.last_year_period + last_year_statement = self._get_statement( + last_year_period, + self.last_year_date, + tax_statement_account, + ) + self.assertTrue(last_year_statement) + + # Create another Bill and Statement + other_tax_statement_account = tax_statement_account.copy() + other_tax = tax.copy( + default={ + "vat_statement_account_id": other_tax_statement_account.id, + }, + ) + other_last_year_bill = self._create_vendor_bill( + partner, + self.last_year_recent_date, + 20, + other_tax, + ) + self.assertEqual(other_last_year_bill.state, "posted") + last_year_period.type_id.allow_overlap = True + other_last_year_period = last_year_period.copy( + default={ + "name": "Test Other last Year Period", + "vat_statement_id": False, + }, + ) + other_last_year_statement = self._get_statement( + other_last_year_period, + self.last_year_date, + other_tax_statement_account, + ) + self.assertTrue(other_last_year_statement) + + # Act: Create this Year's Statements, + # one for each Account used in previous Statements + today = fields.Date.today() + current_period = self.current_period + statement = self._get_statement( + current_period, + today, + tax_statement_account, + ) + + current_period.type_id.allow_overlap = True + other_current_period = current_period.copy( + default={ + "name": "Test Other current Period", + "vat_statement_id": False, + }, + ) + other_statement = self._get_statement( + other_current_period, + today, + other_tax_statement_account, + ) + + # Assert: Each one of this Year's Statements counts as previous Amount + # only the corresponding last Year's Statement + self.assertEqual( + statement.previous_credit_vat_amount, + -last_year_statement.authority_vat_amount, + ) + self.assertEqual( + other_statement.previous_credit_vat_amount, + -other_last_year_statement.authority_vat_amount, + ) diff --git a/account_vat_period_end_statement/views/account_view.xml b/account_vat_period_end_statement/views/account_view.xml index f2470822aab4..75659e405307 100644 --- a/account_vat_period_end_statement/views/account_view.xml +++ b/account_vat_period_end_statement/views/account_view.xml @@ -62,6 +62,7 @@ /> + \n" "Language-Team: \n" "Language: it\n" @@ -53,7 +53,7 @@ msgstr "Codice" #: model_terms:ir.ui.view,arch_db:assets_management.template_asset_previsional_asset_year_depreciation_table_header #: model_terms:ir.ui.view,arch_db:assets_management.template_asset_previsional_totals_header msgid "Curr. Year Dep. Fund" -msgstr "Fondo Amm.to anno corrente" +msgstr "Fondo amm.to anno corr." #. module: assets_management #: model_terms:ir.ui.view,arch_db:assets_management.template_asset_journal_asset_year_depreciation_table_header @@ -61,7 +61,7 @@ msgstr "Fondo Amm.to anno corrente" #: model_terms:ir.ui.view,arch_db:assets_management.template_asset_previsional_asset_year_depreciation_table_header #: model_terms:ir.ui.view,arch_db:assets_management.template_asset_previsional_totals_header msgid "Dep. Amount" -msgstr "Valore ammortizzabile" +msgstr "Valore amm." #. module: assets_management #: model_terms:ir.ui.view,arch_db:assets_management.template_asset_journal_asset_depreciation_table_header @@ -79,13 +79,13 @@ msgstr "Valore ammortizzabile" #: model_terms:ir.ui.view,arch_db:assets_management.template_asset_journal_asset_depreciation_table_header #: model_terms:ir.ui.view,arch_db:assets_management.template_asset_previsional_asset_depreciation_table_header msgid "Depreciation Mode" -msgstr "Metodo" +msgstr "Metodo ammortamento" #. module: assets_management #: model_terms:ir.ui.view,arch_db:assets_management.template_asset_journal_asset_depreciation_table_header #: model_terms:ir.ui.view,arch_db:assets_management.template_asset_previsional_asset_depreciation_table_header msgid "Depreciation Type" -msgstr "Natura" +msgstr "Tipo ammortamento" #. module: assets_management #: model_terms:ir.ui.view,arch_db:assets_management.template_asset_journal_asset_year_depreciation_table_header @@ -93,7 +93,7 @@ msgstr "Natura" #: model_terms:ir.ui.view,arch_db:assets_management.template_asset_previsional_asset_year_depreciation_table_header #: model_terms:ir.ui.view,arch_db:assets_management.template_asset_previsional_totals_header msgid "Depreciation" -msgstr "Amm." +msgstr "Ammortamento" #. module: assets_management #: model_terms:ir.ui.view,arch_db:assets_management.template_asset_journal_asset_accounting_table_header @@ -105,7 +105,7 @@ msgstr "Data Documento" #: model_terms:ir.ui.view,arch_db:assets_management.template_asset_journal_asset_accounting_table_header #: model_terms:ir.ui.view,arch_db:assets_management.template_asset_previsional_asset_accounting_table_header msgid "Document Nr" -msgstr "N. Documento" +msgstr "N° documento" #. module: assets_management #: model_terms:ir.ui.view,arch_db:assets_management.template_asset_journal_asset_year_depreciation_table_header @@ -149,7 +149,7 @@ msgstr "Fondo Amm.to anno precedente" #: model_terms:ir.ui.view,arch_db:assets_management.template_asset_journal_asset_depreciation_table_header #: model_terms:ir.ui.view,arch_db:assets_management.template_asset_previsional_asset_depreciation_table_header msgid "Pro Rata Temporis" -msgstr "Pro Rata Temporis" +msgstr "Pro rata temporis" #. module: assets_management #: model_terms:ir.ui.view,arch_db:assets_management.template_asset_journal_asset_table_header @@ -175,13 +175,13 @@ msgstr "Rif." #: model_terms:ir.ui.view,arch_db:assets_management.template_asset_previsional_asset_year_depreciation_table_header #: model_terms:ir.ui.view,arch_db:assets_management.template_asset_previsional_totals_header msgid "Residual" -msgstr "Residuo da ammortizzare" +msgstr "Residuo" #. module: assets_management #: model_terms:ir.ui.view,arch_db:assets_management.template_asset_journal_asset_depreciation_table_header #: model_terms:ir.ui.view,arch_db:assets_management.template_asset_previsional_asset_depreciation_table_header msgid "Starting From" -msgstr "Data inizio amm.to" +msgstr "Data inizio" #. module: assets_management #: model_terms:ir.ui.view,arch_db:assets_management.template_asset_journal_asset_table_header @@ -292,7 +292,7 @@ msgstr "Valore ammortizzato" #: model:ir.model.fields,field_description:assets_management.field_report_asset_previsional_depreciation_line_year__amount_depreciation_fund_curr_year #: model:ir.model.fields,field_description:assets_management.field_report_asset_previsional_totals__amount_depreciation_fund_curr_year msgid "Amount Depreciation Fund Curr Year" -msgstr "F.do amm.to Anno Corrente" +msgstr "F.do amm.to anno corrente" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_report_asset_journal_depreciation_line_year__amount_depreciation_fund_prev_year @@ -300,7 +300,7 @@ msgstr "F.do amm.to Anno Corrente" #: model:ir.model.fields,field_description:assets_management.field_report_asset_previsional_depreciation_line_year__amount_depreciation_fund_prev_year #: model:ir.model.fields,field_description:assets_management.field_report_asset_previsional_totals__amount_depreciation_fund_prev_year msgid "Amount Depreciation Fund Prev Year" -msgstr "F.do amm.to Anno Precedente" +msgstr "F.do amm.to anno precedente" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_report_asset_journal_depreciation_line_year__amount_gain @@ -314,13 +314,13 @@ msgstr "Plusvalenza" #: model:ir.model.fields,field_description:assets_management.field_report_asset_journal_depreciation_line_year__amount_gain_total #: model:ir.model.fields,field_description:assets_management.field_report_asset_previsional_depreciation_line_year__amount_gain_total msgid "Amount Gain Total" -msgstr "Totale Plusvalenza" +msgstr "Totale plusvalenza" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_report_asset_journal_depreciation_line_year__amount_historical #: model:ir.model.fields,field_description:assets_management.field_report_asset_previsional_depreciation_line_year__amount_historical msgid "Amount Historical" -msgstr "Valore Storico" +msgstr "Valore storico" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_report_asset_journal_depreciation_line_year__amount_in @@ -332,7 +332,7 @@ msgstr "Rettifica positiva" #: model:ir.model.fields,field_description:assets_management.field_report_asset_journal_depreciation_line_year__amount_in_detail #: model:ir.model.fields,field_description:assets_management.field_report_asset_previsional_depreciation_line_year__amount_in_detail msgid "Amount In Detail" -msgstr "Dettaglio Rettifica positiva" +msgstr "Dettaglio rettifica positiva" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_report_asset_journal_depreciation_line_year__amount_in_total @@ -340,7 +340,7 @@ msgstr "Dettaglio Rettifica positiva" #: model:ir.model.fields,field_description:assets_management.field_report_asset_previsional_depreciation_line_year__amount_in_total #: model:ir.model.fields,field_description:assets_management.field_report_asset_previsional_totals__amount_in_total msgid "Amount In Total" -msgstr "Totale Rettifica positiva" +msgstr "Totale rettifica positiva" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_report_asset_journal_depreciation_line_year__amount_loss @@ -354,7 +354,7 @@ msgstr "Minusvalenza" #: model:ir.model.fields,field_description:assets_management.field_report_asset_journal_depreciation_line_year__amount_loss_total #: model:ir.model.fields,field_description:assets_management.field_report_asset_previsional_depreciation_line_year__amount_loss_total msgid "Amount Loss Total" -msgstr "Totale Minusvalenza" +msgstr "Totale minusvalenza" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_report_asset_journal_depreciation_line_year__amount_out @@ -366,7 +366,7 @@ msgstr "Rettifica negativa" #: model:ir.model.fields,field_description:assets_management.field_report_asset_journal_depreciation_line_year__amount_out_detail #: model:ir.model.fields,field_description:assets_management.field_report_asset_previsional_depreciation_line_year__amount_out_detail msgid "Amount Out Detail" -msgstr "Dettaglio Rettifica negativa" +msgstr "Dettaglio rettifica negativa" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_report_asset_journal_depreciation_line_year__amount_out_total @@ -374,7 +374,7 @@ msgstr "Dettaglio Rettifica negativa" #: model:ir.model.fields,field_description:assets_management.field_report_asset_previsional_depreciation_line_year__amount_out_total #: model:ir.model.fields,field_description:assets_management.field_report_asset_previsional_totals__amount_out_total msgid "Amount Out Total" -msgstr "Totale Rettifica negativa" +msgstr "Totale rettifica negativa" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_report_asset_journal_depreciation_line_year__amount_residual @@ -409,12 +409,12 @@ msgstr "Cespite" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_asset_category__asset_account_id msgid "Asset Account" -msgstr "Conto Cespite" +msgstr "Conto cespite" #. module: assets_management #: model:ir.model,name:assets_management.model_asset_accounting_info msgid "Asset Accounting Relations" -msgstr "Collegamenti contabili" +msgstr "Collegamenti contabili cespite" #. module: assets_management #: model:ir.model,name:assets_management.model_asset_category @@ -424,48 +424,48 @@ msgstr "Categoria cespite" #. module: assets_management #: model:ir.model,name:assets_management.model_asset_category_depreciation_type msgid "Asset Category - Depreciation Type" -msgstr "Categorie beni ammortizzabili - Natura ammortamento" +msgstr "Categorie cespite - Natura ammortamento" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_report_asset_journal_asset__asset_code #: model:ir.model.fields,field_description:assets_management.field_report_asset_previsional_asset__asset_code msgid "Asset Code" -msgstr "Codice" +msgstr "Codice cespite" #. module: assets_management #: model:ir.ui.menu,name:assets_management.menu_asset_configuration msgid "Asset Configuration" -msgstr "Configurazione" +msgstr "Configurazione cespite" #. module: assets_management #: model:ir.model.fields.selection,name:assets_management.selection__asset_accounting_info__relation_type__create msgid "Asset Creation" -msgstr "Creazione Cespite" +msgstr "Creazione cespite" #. module: assets_management #: model_terms:ir.ui.view,arch_db:assets_management.asset_dep_line_search_view msgid "Asset Depreciation" -msgstr "Ammortamento" +msgstr "Ammortamento cespite" #. module: assets_management #: model:ir.model,name:assets_management.model_asset_depreciation_mode msgid "Asset Depreciation Mode" -msgstr "Metodi ammortamento" +msgstr "Metodo ammortamento cespite" #. module: assets_management #: model:ir.model,name:assets_management.model_asset_depreciation_mode_line msgid "Asset Depreciation Mode Line" -msgstr "Riga metodo Amm. Cespite" +msgstr "Riga metodo amm. cespite" #. module: assets_management #: model:ir.model,name:assets_management.model_asset_depreciation_type msgid "Asset Depreciation Type" -msgstr "Natura ammortameno" +msgstr "Natura ammortamento cespite" #. module: assets_management #: model:ir.model.fields.selection,name:assets_management.selection__asset_accounting_info__relation_type__dismiss msgid "Asset Dismissal" -msgstr "Dismissione Cespite" +msgstr "Dismissione cespite" #. module: assets_management #: code:addons/assets_management/report/asset_journal_xlsx.py:0 @@ -473,7 +473,7 @@ msgstr "Dismissione Cespite" #: model:ir.ui.menu,name:assets_management.menu_wizard_asset_journal_report #, python-format msgid "Asset Journal" -msgstr "Registro cespiti" +msgstr "Registro cespite" #. module: assets_management #: model:ir.actions.client,name:assets_management.act_client_asset_journal_report @@ -486,7 +486,7 @@ msgstr "Resoconto libro cespiti" #: model_terms:ir.ui.view,arch_db:assets_management.asset_form_view #: model_terms:ir.ui.view,arch_db:assets_management.wizard_account_move_mange_asset_form_view msgid "Asset Name" -msgstr "Nome Cespite" +msgstr "Nome cespite" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_report_asset_journal__asset_order_fname @@ -497,77 +497,77 @@ msgstr "Codice cespite" #. module: assets_management #: model:ir.model.fields.selection,name:assets_management.selection__asset_accounting_info__relation_type__partial_dismiss msgid "Asset Partial Dismissal" -msgstr "Dismissione parziale Cespite" +msgstr "Dismissione parziale cespite" #. module: assets_management #: model:ir.actions.act_window,name:assets_management.action_wizard_asset_previsional_report #: model:ir.actions.client,name:assets_management.act_client_asset_previsional_report #: model:ir.ui.menu,name:assets_management.menu_wizard_asset_previsional_report msgid "Asset Previsional Report" -msgstr "Registro Previsionale" +msgstr "Resoconto previsionale cespite" #. module: assets_management #: model:ir.actions.report,name:assets_management.report_asset_previsional_html msgid "Asset Previsional Report HTML" -msgstr "Registro Previsionale HTML" +msgstr "Resoconto HTML previsionale cespite" #. module: assets_management #: model:ir.actions.report,name:assets_management.report_asset_previsional_pdf msgid "Asset Previsional Report PDF" -msgstr "Registro Previsionale PDF" +msgstr "Resoconto PDf previsionale cespite" #. module: assets_management #: model:ir.actions.report,name:assets_management.report_asset_previsional_xlsx msgid "Asset Previsional Report XLSX" -msgstr "Registro Previsionale XLSX" +msgstr "Resoconto XLSX previsionale cespite" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_wizard_asset_journal_report__asset_order_fname #: model:ir.model.fields,field_description:assets_management.field_wizard_asset_previsional_report__asset_order_fname msgid "Asset Print Order" -msgstr "Ordine stampa beni ammortizzabili" +msgstr "Ordine stampa cespiti" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_report_asset_journal_asset__asset_purchase_amount #: model:ir.model.fields,field_description:assets_management.field_report_asset_previsional_asset__asset_purchase_amount msgid "Asset Purchase Amount" -msgstr "Valore Acquisto" +msgstr "Valore acquisto cespite" #. module: assets_management #: model:ir.actions.report,name:assets_management.report_asset_journal_html msgid "Asset Report HTML" -msgstr "Registro beni ammortizzabili - HTML" +msgstr "Resoconto HTML cespite" #. module: assets_management #: model:ir.actions.report,name:assets_management.report_asset_journal_pdf msgid "Asset Report PDF" -msgstr "Registro beni ammortizzabili - PDF" +msgstr "Resoconto PDF cespite" #. module: assets_management #: model:ir.actions.report,name:assets_management.report_asset_journal_xlsx msgid "Asset Report XLSX" -msgstr "Registro beni ammortizzabili - XLSX" +msgstr "Resoconto XLSX cespite" #. module: assets_management #: model:ir.ui.menu,name:assets_management.menu_asset_reports msgid "Asset Reports" -msgstr "Registro beni ammortizzabili" +msgstr "Resoconti cespite" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_report_asset_journal_asset__asset_state #: model:ir.model.fields,field_description:assets_management.field_report_asset_previsional_asset__asset_state msgid "Asset State" -msgstr "Stato" +msgstr "Stato cespite" #. module: assets_management #: model:ir.model,name:assets_management.model_asset_tag msgid "Asset Tags" -msgstr "Tag" +msgstr "Etichette cespite" #. module: assets_management #: model:ir.model.fields.selection,name:assets_management.selection__asset_accounting_info__relation_type__update msgid "Asset Update" -msgstr "Aggiornamento Cespite" +msgstr "Aggiornamento cespite" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_report_asset_journal_asset__asset_used @@ -578,17 +578,17 @@ msgstr "Cespite usato" #. module: assets_management #: model:res.groups,name:assets_management.group_asset_user msgid "Asset Users" -msgstr "Utenti" +msgstr "Utenti cespite" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_asset_depreciation_line__depreciation_id msgid "Asset depreciation" -msgstr "Ammortamento" +msgstr "Ammortamento cespite" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_asset_depreciation_line__depreciation_type_id msgid "Asset depreciation type" -msgstr "Tipo Amm. Cespite" +msgstr "Natura ammortamento cespite" #. module: assets_management #: code:addons/assets_management/models/asset_depreciation.py:0 @@ -629,44 +629,44 @@ msgstr "Cespiti" #: model:ir.model.fields,field_description:assets_management.field_account_payment__asset_accounting_info_ids #: model:ir.ui.menu,name:assets_management.menu_asset_accounting_info msgid "Assets Accounting Info" -msgstr "Info contabili" +msgstr "Informazioni contabili cespiti" #. module: assets_management #: model:ir.actions.act_window,name:assets_management.action_asset_depreciation_mode msgid "Assets Depreciation Mode" -msgstr "Metodi ammortamento" +msgstr "Metodo ammortamento cespiti" #. module: assets_management #: model:ir.actions.act_window,name:assets_management.action_asset_depreciation_type msgid "Assets Depreciation Type" -msgstr "Natura ammortamento" +msgstr "Natura ammortamento cespiti" #. module: assets_management #: model:ir.model,name:assets_management.model_asset_depreciation msgid "Assets Depreciations" -msgstr "Ammortamenti" +msgstr "Ammortamenti cespiti" #. module: assets_management #: code:addons/assets_management/report/asset_journal.py:0 #, python-format msgid "Assets Depreciations " -msgstr "Amm.ti Cespiti " +msgstr "Ammortamenti cespiti " #. module: assets_management #: model:ir.model,name:assets_management.model_asset_depreciation_line msgid "Assets Depreciations Lines" -msgstr "Linee ammortamento" +msgstr "Righe ammortamento cespiti" #. module: assets_management #: model:ir.ui.menu,name:assets_management.menu_asset_management msgid "Assets Management" -msgstr "Gestione" +msgstr "Gestione cespiti" #. module: assets_management #: code:addons/assets_management/report/asset_previsional.py:0 #, python-format msgid "Assets Previsional Depreciations " -msgstr "Previsione Amm.ti Cespiti " +msgstr "Ammortamenti previsionali cespiti " #. module: assets_management #: model_terms:ir.ui.view,arch_db:assets_management.asset_search_view @@ -712,7 +712,7 @@ msgid "" "Attention! You cannot create an asset from accounting moves related to sale " "documents." msgstr "" -"Attenzione! Non è possibile creare un Cespite da una registrazione contabile " +"Attenzione! Non è possibile creare un cespite da una registrazione contabile " "collegata a documenti di vendita." #. module: assets_management @@ -741,8 +741,8 @@ msgid "" "Before creating new categories, please complete the assets' configuration " "for both depreciation types and modes." msgstr "" -"Prima di creare nuove categorie, si prega di completare la configurazione " -"dei cespiti sia per i tipi che per i modi di ammortamento." +"Prima di creare nuove categorie, completare la configurazione dei cespiti " +"sia per le nature che per le modalità di ammortamento." #. module: assets_management #: model:ir.model.fields,help:assets_management.field_wizard_asset_journal_report__show_sold_assets @@ -941,7 +941,7 @@ msgstr "Plusvalenza" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_asset_category__gain_account_id msgid "Capital Gain Account" -msgstr "Conto Plusvalenza" +msgstr "Conto plusvalenza" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_asset_depreciation__amount_loss @@ -952,7 +952,7 @@ msgstr "Minusvalenza" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_asset_category__loss_account_id msgid "Capital Loss Account" -msgstr "Conto Minusvalenza" +msgstr "Conto minusvalenza" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_wizard_asset_generate_depreciation__category_ids @@ -986,7 +986,7 @@ msgstr "Nome categoria" #. module: assets_management #: model_terms:ir.ui.view,arch_db:assets_management.wizard_account_move_mange_asset_form_view msgid "Choose Your Asset" -msgstr "Scegli il Cespite" +msgstr "Scegli il cespite" #. module: assets_management #: code:addons/assets_management/report/asset_journal_xlsx.py:0 @@ -1206,7 +1206,7 @@ msgstr "Cliente" #. module: assets_management #: model:ir.model.fields.selection,name:assets_management.selection__wizard_account_move_manage_asset__move_type__out_refund msgid "Customer Credit Note" -msgstr "Nota di Credito Cliente" +msgstr "Nota di credito cliente" #. module: assets_management #: model:ir.model.fields.selection,name:assets_management.selection__wizard_account_move_manage_asset__move_type__out_invoice @@ -1251,7 +1251,7 @@ msgstr "" #: model:ir.model.fields,field_description:assets_management.field_report_asset_journal_depreciation__dep_amount_depreciable #: model:ir.model.fields,field_description:assets_management.field_report_asset_previsional_depreciation__dep_amount_depreciable msgid "Dep Amount Depreciable" -msgstr "Importo ammortamento" +msgstr "Importo ammortizzabile" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_asset_category_depreciation_type__base_coeff @@ -1285,24 +1285,24 @@ msgstr "Percentuale amm.to" #: model:ir.model.fields,field_description:assets_management.field_report_asset_journal_depreciation__dep_pro_rata_temporis #: model:ir.model.fields,field_description:assets_management.field_report_asset_previsional_depreciation__dep_pro_rata_temporis msgid "Dep Pro Rata Temporis" -msgstr "Pro Rata Temporis amm.to" +msgstr "Pro rata temporis amm.to" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_asset_depreciation_line__depreciation_nr msgid "Dep. Num" -msgstr "Amm.to Nr" +msgstr "Amm.to n°" #. module: assets_management #: code:addons/assets_management/report/asset_journal_xlsx.py:0 #: code:addons/assets_management/report/asset_previsional_xlsx.py:0 #, python-format msgid "Dep. Percentage (%)" -msgstr "Percentuale Amm.to (%)" +msgstr "Percentuale amm.to (%)" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_asset_depreciation__base_coeff msgid "Depreciable Base Coeff" -msgstr "Coeff. base Amm.to" +msgstr "Coeff. base amm.to" #. module: assets_management #: model:ir.model.fields.selection,name:assets_management.selection__asset_asset__state__totally_depreciated @@ -1364,12 +1364,12 @@ msgstr "Riga ammortamento" #: model:ir.actions.act_window,name:assets_management.action_asset_depreciation_line_type #: model:ir.ui.menu,name:assets_management.menu_asset_depreciation_line_type msgid "Depreciation Line Amount Types" -msgstr "Tipi operazione" +msgstr "Tipi valore riga ammortamento" #. module: assets_management #: model:ir.model,name:assets_management.model_asset_depreciation_line_type msgid "Depreciation Line Type" -msgstr "Tipo riga amm.to" +msgstr "Tipo riga ammortamento" #. module: assets_management #: model:ir.actions.act_window,name:assets_management.action_asset_dep_line @@ -1389,7 +1389,7 @@ msgstr "Righe ammortamento" #: code:addons/assets_management/report/asset_previsional_xlsx.py:0 #, python-format msgid "Depreciation Mode" -msgstr "Modo Ammortamento" +msgstr "Modo ammortamento" #. module: assets_management #: model:ir.ui.menu,name:assets_management.menu_asset_depreciation_mode @@ -1537,7 +1537,7 @@ msgstr "Nome visualizzato" #: model:ir.model.fields,field_description:assets_management.field_report_asset_previsional_accounting_doc__document_date #, python-format msgid "Document Date" -msgstr "Data Documento" +msgstr "Data documento" #. module: assets_management #: code:addons/assets_management/report/asset_journal_xlsx.py:0 @@ -1546,13 +1546,13 @@ msgstr "Data Documento" #: model:ir.model.fields,field_description:assets_management.field_report_asset_previsional_accounting_doc__document_nr #, python-format msgid "Document Nr" -msgstr "N° Documento" +msgstr "N° documento" #. module: assets_management #: code:addons/assets_management/models/account_move.py:0 #, python-format msgid "Every line is already linked to an asset." -msgstr "Ogni linea è già collegata a un cespite." +msgstr "Ogni riga è già collegata a un cespite." #. module: assets_management #: code:addons/assets_management/wizard/account_move_manage_asset.py:0 @@ -1563,12 +1563,12 @@ msgstr "Ogni riga di movimento deve avere lo stesso conto!" #. module: assets_management #: model_terms:ir.ui.view,arch_db:assets_management.wizard_asset_journal_report_form_view msgid "Export Journal Report" -msgstr "Esporta stampa registro" +msgstr "Esporta resoconto registro" #. module: assets_management #: model_terms:ir.ui.view,arch_db:assets_management.wizard_asset_previsional_report_form_view msgid "Export Previsional Report" -msgstr "Esporta Stampa Previsionale" +msgstr "Esporta resoconto previsionale" #. module: assets_management #: code:addons/assets_management/models/asset_depreciation.py:0 @@ -1576,7 +1576,7 @@ msgstr "Esporta Stampa Previsionale" msgid "" "Fields `Force All Dep. Num` and `Force First Dep. Num` cannot be both active." msgstr "" -"Campi `Forza Tutti Num. Amm.ti. ` e `Forza Primo Num. Amm.to` non possono " +"I campi `Forza tutti num. amm.ti` e `Forza primo num. amm.to` non possono " "essere entrambi attivi." #. module: assets_management @@ -1589,7 +1589,7 @@ msgstr "Filtri" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_asset_depreciation__first_dep_nr msgid "First Dep. Num" -msgstr "Primo Amm.to Nr" +msgstr "N° primo amm.to" #. module: assets_management #: model:ir.model,name:assets_management.model_account_fiscal_year @@ -1646,17 +1646,17 @@ msgstr "Forza tutti i numeri amm.to" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_asset_depreciation_line__force_dep_nr msgid "Force Dep. Num" -msgstr "Primo Nr amm.to" +msgstr "Forza numero amm.to" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_asset_depreciation__force_first_dep_nr msgid "Force First Dep. Num" -msgstr "Forza PRIMO Nr amm.to" +msgstr "Forza primo numero amm.to" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_asset_depreciation_mode_line__from_nr msgid "From Nr" -msgstr "Dal N." +msgstr "Dal n°" #. module: assets_management #: code:addons/assets_management/wizard/account_move_manage_asset.py:0 @@ -1707,7 +1707,7 @@ msgstr "Info generali" #: code:addons/assets_management/report/asset_previsional.py:0 #, python-format msgid "General Total" -msgstr "Totale Complessivo" +msgstr "Totale complessivo" #. module: assets_management #: model_terms:ir.ui.view,arch_db:assets_management.wizard_asset_generate_depreciation_form_view @@ -1853,7 +1853,7 @@ msgstr "Valore rettifiche attive" #: code:addons/assets_management/report/asset_previsional_xlsx.py:0 #, python-format msgid "In Amount - Detail" -msgstr "Importo Positivo - Dettaglio" +msgstr "Importo rettifiche attive - Dettaglio" #. module: assets_management #: model_terms:ir.ui.view,arch_db:assets_management.asset_dep_line_form_view @@ -1861,25 +1861,25 @@ msgstr "Importo Positivo - Dettaglio" #: model_terms:ir.ui.view,arch_db:assets_management.view_asset_depreciation_form #: model_terms:ir.ui.view,arch_db:assets_management.view_move_line_form_inherit msgid "In/Out Amount Type" -msgstr "+/- Tipo operazione" +msgstr "Tipo valore rettifica attiva/passiva" #. module: assets_management #: code:addons/assets_management/models/asset_accounting_info.py:0 #, python-format msgid "Incoherent asset data." -msgstr "Data cespite anomala." +msgstr "Dati cespite incoerenti." #. module: assets_management #: code:addons/assets_management/models/asset_accounting_info.py:0 #, python-format msgid "Incoherent company data." -msgstr "Dati azienda anomali." +msgstr "Dati azienda incoerenti." #. module: assets_management #: code:addons/assets_management/models/asset_accounting_info.py:0 #, python-format msgid "Incoherent move data." -msgstr "Data movimento anomala." +msgstr "Dati registrazione incoerenti" #. module: assets_management #: code:addons/assets_management/report/asset_journal_xlsx.py:0 @@ -2036,12 +2036,12 @@ msgstr "Righe" #. module: assets_management #: model_terms:ir.ui.view,arch_db:assets_management.view_move_form_inherit msgid "Link to Asset" -msgstr "Beni ammortizzabili" +msgstr "Collega a cespite" #. module: assets_management #: model:ir.actions.act_window,name:assets_management.action_wizard_account_move_manage_asset msgid "Link to Assets" -msgstr "Collegamento ai cespiti" +msgstr "Collega a cespiti" #. module: assets_management #: model_terms:ir.ui.view,arch_db:assets_management.asset_dep_line_search_view @@ -2088,7 +2088,7 @@ msgstr "Metodo" #: model:ir.model.fields,field_description:assets_management.field_report_asset_journal_depreciation__mode_name #: model:ir.model.fields,field_description:assets_management.field_report_asset_previsional_depreciation__mode_name msgid "Mode Name" -msgstr "Metodo" +msgstr "Nome modo" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_asset_accounting_info__move_id @@ -2106,7 +2106,7 @@ msgstr "Riga movimento" #: model:ir.model.fields,field_description:assets_management.field_wizard_account_move_manage_asset__move_line_ids #: model_terms:ir.ui.view,arch_db:assets_management.wizard_account_move_mange_asset_form_view msgid "Move Lines" -msgstr "Righe di Movimento" +msgstr "Righe movimento" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_wizard_account_move_manage_asset__is_move_state_ok @@ -2261,34 +2261,34 @@ msgstr "Rettifica negativa" #: model:ir.model.fields,field_description:assets_management.field_asset_depreciation__amount_out #, python-format msgid "Out Amount" -msgstr "Rettifica negativa" +msgstr "Valore rettifica negativa" #. module: assets_management #: code:addons/assets_management/report/asset_journal_xlsx.py:0 #: code:addons/assets_management/report/asset_previsional_xlsx.py:0 #, python-format msgid "Out Amount - Detail" -msgstr "Importi Negativi - Dettaglio" +msgstr "Importo rettifica negativa - Dettaglio" #. module: assets_management #: model:ir.model.fields.selection,name:assets_management.selection__wizard_account_move_manage_asset__management_type__partial_dismiss msgid "Partial Dismiss" -msgstr "Dismissione Parziale" +msgstr "Dismissione parziale" #. module: assets_management #: model_terms:ir.ui.view,arch_db:assets_management.wizard_account_move_mange_asset_form_view msgid "Partial Dismiss Asset" -msgstr "Dismissione Parziale" +msgstr "Dismissione parziale cespite" #. module: assets_management #: model_terms:ir.ui.view,arch_db:assets_management.wizard_account_move_mange_asset_form_view msgid "Partial Dismiss Asset and Show" -msgstr "Dismetti Cespite e Mostra" +msgstr "Dismetti parzialmente cespite e visualizza" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_asset_depreciation_line__partial_dismissal msgid "Partial Dismissal" -msgstr "Dismissione Parziale" +msgstr "Dismissione parziale" #. module: assets_management #: code:addons/assets_management/wizard/account_move_manage_asset.py:0 @@ -2300,7 +2300,7 @@ msgstr "Dismissione parziale da movimento/i {}" #: model:ir.model.fields.selection,name:assets_management.selection__asset_asset__state__partially_depreciated #: model:ir.model.fields.selection,name:assets_management.selection__asset_depreciation__state__partially_depreciated msgid "Partially Depreciated" -msgstr "Parzialmente Ammortizzato" +msgstr "Parzialmente ammortizzato" #. module: assets_management #: code:addons/assets_management/report/asset_journal_xlsx.py:0 @@ -2433,7 +2433,7 @@ msgstr "Valore acquisto" #: code:addons/assets_management/report/asset_previsional_xlsx.py:0 #, python-format msgid "Purchased as New / Used" -msgstr "Acquisto Nuovo / Usato" +msgstr "Acquisto nuovo / usato" #. module: assets_management #: model_terms:ir.ui.view,arch_db:assets_management.asset_dep_line_form_view @@ -2492,37 +2492,37 @@ msgstr "Resoconto cespite" #. module: assets_management #: model:ir.model,name:assets_management.model_report_asset_journal msgid "Report Asset Journal" -msgstr "Stampa Registro Cespiti" +msgstr "Resoconto registro cespite" #. module: assets_management #: model:ir.model,name:assets_management.model_report_asset_journal_accounting_doc msgid "Report Asset Journal Accounting Doc" -msgstr "Stampa Registro Cespiti Doc Contabili" +msgstr "Resoconto documenti contabili registro cespite" #. module: assets_management #: model:ir.model,name:assets_management.model_report_asset_journal_asset msgid "Report Asset Journal Asset" -msgstr "Stampa Registro Cespiti" +msgstr "Resoconto registro cespite del cespite" #. module: assets_management #: model:ir.model,name:assets_management.model_report_asset_journal_category msgid "Report Asset Journal Category" -msgstr "Stampa Registro Categorie Cespiti" +msgstr "Resoconto categoria registro cespite" #. module: assets_management #: model:ir.model,name:assets_management.model_report_asset_journal_depreciation msgid "Report Asset Journal Depreciation" -msgstr "Stampa Registro Amm.ti Cespiti" +msgstr "Resoconto ammortamenti registro cespite" #. module: assets_management #: model:ir.model,name:assets_management.model_report_asset_journal_depreciation_line_year msgid "Report Asset Journal Depreciation Line Year" -msgstr "Stampa Registro Amm.ti Righe Anno Cespiti" +msgstr "Resoconto anno riga ammortamento registro cespite" #. module: assets_management #: model:ir.model,name:assets_management.model_report_asset_journal_totals msgid "Report Asset Journal Totals" -msgstr "Stampa Registro Cespiti Totali" +msgstr "Resoconto totali registro cespite" #. module: assets_management #: model:ir.model,name:assets_management.model_report_assets_management_report_asset_journal_xlsx @@ -2532,42 +2532,42 @@ msgstr "Stampa Registro Cespiti Xlsx" #. module: assets_management #: model:ir.model,name:assets_management.model_report_asset_previsional msgid "Report Asset Previsional" -msgstr "Stampa Registro Cespiti Previsionale" +msgstr "Resoconto previsionale cespite" #. module: assets_management #: model:ir.model,name:assets_management.model_report_asset_previsional_accounting_doc msgid "Report Asset Previsional Accounting Doc" -msgstr "Stampa Registro Cespiti Doc Contabili Previsionale" +msgstr "Resoconto documenti contabili previsionale cespite" #. module: assets_management #: model:ir.model,name:assets_management.model_report_asset_previsional_asset msgid "Report Asset Previsional Asset" -msgstr "Stampa Registro Cespiti Previsionale" +msgstr "Resoconto previsionale cespite del cespirte" #. module: assets_management #: model:ir.model,name:assets_management.model_report_asset_previsional_category msgid "Report Asset Previsional Category" -msgstr "Stampa Registro Categorie Cespiti Previsionale" +msgstr "Resoconto categoria previsionale cespite" #. module: assets_management #: model:ir.model,name:assets_management.model_report_asset_previsional_depreciation msgid "Report Asset Previsional Depreciation" -msgstr "Stampa Registro Amm.ti Cespiti Previsionale" +msgstr "Resoconto ammortamento previsionale cespite" #. module: assets_management #: model:ir.model,name:assets_management.model_report_asset_previsional_depreciation_line_year msgid "Report Asset Previsional Depreciation Line Year" -msgstr "Stampa Registro Amm.ti Cespiti Anno Previsionale" +msgstr "Resoconto anno riga ammortamento previsionale cespite" #. module: assets_management #: model:ir.model,name:assets_management.model_report_asset_previsional_totals msgid "Report Asset Previsional Totals" -msgstr "Stampa Registro Cespiti Previsionale Totali" +msgstr "Resoconto totali previsionale cespite" #. module: assets_management #: model:ir.model,name:assets_management.model_report_assets_management_report_asset_previsional_xlsx msgid "Report Asset Previsional Xlsx" -msgstr "Stampa Registro Cespiti Previsionale Xlsx" +msgstr "Resoconto XLSX previsionale cespite" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_report_asset_journal__report_category_ids @@ -2593,7 +2593,7 @@ msgstr "Resoconto ammortamento" #: model:ir.model.fields,field_description:assets_management.field_report_asset_journal__report_depreciation_line_year_ids #: model:ir.model.fields,field_description:assets_management.field_report_asset_previsional__report_depreciation_line_year_ids msgid "Report Depreciation Line Year" -msgstr "Resoconto riga ammortamento annuale" +msgstr "Resoconto anno riga ammortamento" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_report_asset_journal_depreciation__report_depreciation_year_line_ids @@ -2613,19 +2613,19 @@ msgstr "Anno piè di pagina resoconto" #: model:ir.model.fields,field_description:assets_management.field_report_asset_journal__report_name #: model:ir.model.fields,field_description:assets_management.field_report_asset_previsional__report_name msgid "Report Name" -msgstr "Nome della stampa" +msgstr "Nome resoconto" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_report_asset_journal_asset__report_purchase_doc_id #: model:ir.model.fields,field_description:assets_management.field_report_asset_previsional_asset__report_purchase_doc_id msgid "Report Purchase Doc" -msgstr "Stampa doc. acquisto" +msgstr "Resoconto documento acquisto" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_report_asset_journal_asset__report_sale_doc_id #: model:ir.model.fields,field_description:assets_management.field_report_asset_previsional_asset__report_sale_doc_id msgid "Report Sale Doc" -msgstr "Resoconto doc. vendita" +msgstr "Resoconto documento vendita" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_report_asset_journal__report_total_ids @@ -2633,12 +2633,12 @@ msgstr "Resoconto doc. vendita" #: model:ir.model.fields,field_description:assets_management.field_report_asset_previsional__report_total_ids #: model:ir.model.fields,field_description:assets_management.field_report_asset_previsional_category__report_total_ids msgid "Report Total" -msgstr "Resoconto totale" +msgstr "Totale resoconto" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_asset_depreciation_line__requires_account_move msgid "Required Account Move" -msgstr "Genera registrazioni contabili" +msgstr "Registrazione contabile richiesta" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_asset_depreciation__requires_account_move @@ -2649,7 +2649,7 @@ msgstr "Richiede registrazione contabile" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_asset_depreciation_line__requires_depreciation_nr msgid "Requires Dep Num" -msgstr "Richiede Nr Amm.to" +msgstr "Richiede n° ammortamento" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_report_asset_journal_accounting_doc__res_id @@ -2766,7 +2766,7 @@ msgstr "Cespiti vendiuti: visualizza" #: code:addons/assets_management/report/asset_previsional_xlsx.py:0 #, python-format msgid "Starting From" -msgstr "Inizio Da" +msgstr "Inizio da" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_asset_asset__state @@ -2804,12 +2804,12 @@ msgstr "Fornitore" #: code:addons/assets_management/report/asset_previsional_xlsx.py:0 #, python-format msgid "Supplier Ref" -msgstr "Rif. Fornitore" +msgstr "Rif. fornitore" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_asset_asset__supplier_ref msgid "Supplier Ref." -msgstr "Rif. documento fornitore" +msgstr "Rif. fornitore" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_asset_category__tag_ids @@ -2856,12 +2856,12 @@ msgstr "Non c'è alcunché da stampare in base alle scelte impostate!" #: model:ir.model.fields,field_description:assets_management.field_wizard_asset_journal_report__date #: model:ir.model.fields,field_description:assets_management.field_wizard_asset_previsional_report__date msgid "To Date" -msgstr "Alla Data" +msgstr "Alla data" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_asset_depreciation_mode_line__to_nr msgid "To Nr" -msgstr "Al Nr" +msgstr "Al n°" #. module: assets_management #: code:addons/assets_management/report/asset_journal_xlsx.py:0 @@ -2911,7 +2911,7 @@ msgstr "Sconosciuto" #: code:addons/assets_management/models/asset_accounting_info.py:0 #, python-format msgid "Unknown Asset" -msgstr "Cespite Sconosciuto" +msgstr "Cespite sconosciuto" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_asset_asset__message_unread @@ -2926,12 +2926,12 @@ msgstr "Contatore messaggi non letti" #. module: assets_management #: model_terms:ir.ui.view,arch_db:assets_management.wizard_account_move_mange_asset_form_view msgid "Update Asset" -msgstr "Aggiorna Cespite" +msgstr "Aggiorna cespite" #. module: assets_management #: model_terms:ir.ui.view,arch_db:assets_management.wizard_account_move_mange_asset_form_view msgid "Update Asset and Show" -msgstr "Aggiorna Cespite e Mostra" +msgstr "Aggiorna cespite e mostra" #. module: assets_management #: model:ir.model.fields.selection,name:assets_management.selection__wizard_account_move_manage_asset__management_type__update @@ -2941,7 +2941,7 @@ msgstr "Aggiorna esistente" #. module: assets_management #: model:ir.model.fields,field_description:assets_management.field_asset_depreciation__amount_depreciable_updated msgid "Updated Depreciable Amount" -msgstr "Importo Ammortizzabile Aggiornato" +msgstr "Importo ammortizzabile aggiornato" #. module: assets_management #: code:addons/assets_management/report/asset_journal.py:0 @@ -3034,7 +3034,6 @@ msgstr "Anno" #. module: assets_management #: model_terms:ir.ui.view,arch_db:assets_management.asset_dep_line_form_view -#: model_terms:ir.ui.view,arch_db:assets_management.asset_form_view msgid "" "You confirm the removal of the current line? Depreciation line amounts will " "not be affected and will have to be updated manually." diff --git a/assets_management/migrations/14.0.1.4.4/noupdate_changes.xml b/assets_management/migrations/14.0.1.4.4/noupdate_changes.xml new file mode 100644 index 000000000000..2a5917f5f42f --- /dev/null +++ b/assets_management/migrations/14.0.1.4.4/noupdate_changes.xml @@ -0,0 +1,68 @@ + + + + + ['|',('company_id','=',False),('company_id','in',company_ids)] + + + + + + ['|',('company_id','=',False),('company_id','in',company_ids)] + + + + + + ['|',('company_id','=',False),('company_id','in',company_ids)] + + + + + + ['|',('company_id','=',False),('company_id','in',company_ids)] + + + + + + ['|',('company_id','=',False),('company_id','in',company_ids)] + + + + + + ['|',('company_id','=',False),('company_id','in',company_ids)] + + + + + + ['|',('company_id','=',False),('company_id','in',company_ids)] + + + + + + ['|',('company_id','=',False),('company_id','in',company_ids)] + + + + + + ['|',('company_id','=',False),('company_id','in',company_ids)] + + + + + + ['|',('company_id','=',False),('company_id','in',company_ids)] + + + + + + ['|',('company_id','=',False),('company_id','in',company_ids)] + + + diff --git a/assets_management/migrations/14.0.1.4.4/post-migration.py b/assets_management/migrations/14.0.1.4.4/post-migration.py new file mode 100644 index 000000000000..123da6ac2cc1 --- /dev/null +++ b/assets_management/migrations/14.0.1.4.4/post-migration.py @@ -0,0 +1,8 @@ +from openupgradelib import openupgrade + + +@openupgrade.migrate() +def migrate(env, version): + openupgrade.load_data( + env.cr, "assets_management", "migrations/14.0.1.4.4/noupdate_changes.xml" + ) diff --git a/assets_management/models/asset.py b/assets_management/models/asset.py index 50a175149ebe..c25528c59b7d 100644 --- a/assets_management/models/asset.py +++ b/assets_management/models/asset.py @@ -11,10 +11,11 @@ class Asset(models.Model): _description = "Assets" _inherit = ["mail.thread", "mail.activity.mixin", "portal.mixin"] _order = "purchase_date desc, name asc" + _check_company_auto = True @api.model def get_default_company_id(self): - return self.env.user.company_id + return self.env.company asset_accounting_info_ids = fields.One2many( "asset.accounting.info", "asset_id", string="Accounting Info" @@ -24,6 +25,7 @@ def get_default_company_id(self): "asset.category", required=True, string="Category", + check_company=True, ) code = fields.Char( @@ -37,6 +39,7 @@ def get_default_company_id(self): required=True, string="Company", tracking=True, + readonly=True, ) currency_id = fields.Many2one( @@ -45,12 +48,17 @@ def get_default_company_id(self): string="Currency", ) - customer_id = fields.Many2one("res.partner", string="Customer") + customer_id = fields.Many2one( + "res.partner", + string="Customer", + check_company=True, + ) depreciation_ids = fields.One2many( "asset.depreciation", "asset_id", string="Depreciations", + check_company=True, ) name = fields.Char( @@ -70,7 +78,11 @@ def get_default_company_id(self): tracking=True, ) - purchase_move_id = fields.Many2one("account.move", string="Purchase Move") + purchase_move_id = fields.Many2one( + "account.move", + string="Purchase Move", + check_company=True, + ) sale_amount = fields.Monetary( string="Sale Value", @@ -80,7 +92,11 @@ def get_default_company_id(self): dismiss_date = fields.Date() - sale_move_id = fields.Many2one("account.move", string="Sale Move") + sale_move_id = fields.Many2one( + "account.move", + string="Sale Move", + check_company=True, + ) sold = fields.Boolean(string="Sold") dismissed = fields.Boolean(string="Dismissed") @@ -97,7 +113,11 @@ def get_default_company_id(self): string="State", ) - supplier_id = fields.Many2one("res.partner", string="Supplier") + supplier_id = fields.Many2one( + "res.partner", + string="Supplier", + check_company=True, + ) supplier_ref = fields.Char(string="Supplier Ref.") @@ -175,6 +195,7 @@ def onchange_category_id(self): def onchange_company_currency(self): if self.company_id: self.currency_id = self.company_id.currency_id + self.category_id = False @api.onchange("purchase_amount") def onchange_purchase_amount(self): diff --git a/assets_management/models/asset_category.py b/assets_management/models/asset_category.py index a63996e28772..75d4398b8c73 100644 --- a/assets_management/models/asset_category.py +++ b/assets_management/models/asset_category.py @@ -10,10 +10,11 @@ class AssetCategory(models.Model): _name = "asset.category" _description = "Asset Category" _order = "name" + _check_company_auto = True @api.model def get_default_company_id(self): - return self.env.user.company_id + return self.env.company @api.model def get_default_type_ids(self): @@ -46,6 +47,7 @@ def get_default_type_ids(self): "account.account", required=True, string="Asset Account", + check_company=True, ) comment = fields.Text( @@ -53,33 +55,42 @@ def get_default_type_ids(self): ) company_id = fields.Many2one( - "res.company", default=get_default_company_id, string="Company" + "res.company", default=get_default_company_id, readonly=True, string="Company" ) depreciation_account_id = fields.Many2one( "account.account", required=True, string="Depreciation Account", + check_company=True, ) fund_account_id = fields.Many2one( "account.account", required=True, string="Fund Account", + check_company=True, ) gain_account_id = fields.Many2one( "account.account", required=True, string="Capital Gain Account", + check_company=True, ) - journal_id = fields.Many2one("account.journal", required=True, string="Journal") + journal_id = fields.Many2one( + "account.journal", + required=True, + string="Journal", + check_company=True, + ) loss_account_id = fields.Many2one( "account.account", required=True, string="Capital Loss Account", + check_company=True, ) name = fields.Char( @@ -97,6 +108,7 @@ def get_default_type_ids(self): tag_ids = fields.Many2many( "asset.tag", string="Tag", + check_company=True, ) type_ids = fields.One2many( @@ -104,6 +116,7 @@ def get_default_type_ids(self): "category_id", default=get_default_type_ids, string="Depreciation Types", + check_company=True, ) def copy(self, default=None): diff --git a/assets_management/models/asset_category_depreciation_type.py b/assets_management/models/asset_category_depreciation_type.py index 0b81fa7b8061..c8ea2f6054fd 100644 --- a/assets_management/models/asset_category_depreciation_type.py +++ b/assets_management/models/asset_category_depreciation_type.py @@ -8,6 +8,7 @@ class AssetCategoryDepreciationType(models.Model): _name = "asset.category.depreciation.type" _description = "Asset Category - Depreciation Type" + _check_company_auto = True base_coeff = fields.Float( default=1, @@ -21,6 +22,7 @@ class AssetCategoryDepreciationType(models.Model): readonly=True, required=True, string="Category", + check_company=True, ) company_id = fields.Many2one( @@ -31,12 +33,14 @@ class AssetCategoryDepreciationType(models.Model): "asset.depreciation.type", required=True, string="Type", + check_company=True, ) mode_id = fields.Many2one( "asset.depreciation.mode", required=True, string="Dep Mode", + check_company=True, ) percentage = fields.Float(string="Depreciation %") diff --git a/assets_management/models/asset_depreciation.py b/assets_management/models/asset_depreciation.py index f1fa01c1145f..c622fcbdaee5 100644 --- a/assets_management/models/asset_depreciation.py +++ b/assets_management/models/asset_depreciation.py @@ -10,6 +10,7 @@ class AssetDepreciation(models.Model): _name = "asset.depreciation" _description = "Assets Depreciations" + _check_company_auto = True amount_depreciable = fields.Monetary(string="Initial Depreciable Amount") @@ -85,7 +86,11 @@ class AssetDepreciation(models.Model): date_start = fields.Date(string="Date Start") - dismiss_move_id = fields.Many2one("account.move", string="Dismiss Move") + dismiss_move_id = fields.Many2one( + "account.move", + string="Dismiss Move", + check_company=True, + ) first_dep_nr = fields.Integer( default=1, @@ -103,13 +108,17 @@ class AssetDepreciation(models.Model): ) line_ids = fields.One2many( - "asset.depreciation.line", "depreciation_id", string="Lines" + "asset.depreciation.line", + "depreciation_id", + string="Lines", + check_company=True, ) mode_id = fields.Many2one( "asset.depreciation.mode", required=True, string="Mode", + check_company=True, ) percentage = fields.Float(string="Depreciation (%)") @@ -134,7 +143,11 @@ class AssetDepreciation(models.Model): string="State", ) - type_id = fields.Many2one("asset.depreciation.type", string="Depreciation Type") + type_id = fields.Many2one( + "asset.depreciation.type", + string="Depreciation Type", + check_company=True, + ) zero_depreciation_until = fields.Date(string="Zero Depreciation Up To") @@ -286,7 +299,9 @@ def generate_depreciation_lines(self, dep_date): new_lines = self.env["asset.depreciation.line"] for dep in self: - new_lines |= dep.generate_depreciation_lines_single(dep_date) + new_line = dep.generate_depreciation_lines_single(dep_date) + if new_line: + new_lines |= new_line return new_lines @@ -298,6 +313,8 @@ def generate_depreciation_lines_single(self, dep_date): dep_nr = self.get_max_depreciation_nr() + 1 dep = self.with_context(dep_nr=dep_nr, used_asset=self.asset_id.used) dep_amount = dep.get_depreciation_amount(dep_date) + if not dep_amount: + return res dep = dep.with_context(dep_amount=dep_amount) vals = dep.prepare_depreciation_line_vals(dep_date) diff --git a/assets_management/models/asset_depreciation_line.py b/assets_management/models/asset_depreciation_line.py index f58848ce3833..837fd142a3ae 100644 --- a/assets_management/models/asset_depreciation_line.py +++ b/assets_management/models/asset_depreciation_line.py @@ -10,13 +10,17 @@ class AssetDepreciationLine(models.Model): _name = "asset.depreciation.line" _description = "Assets Depreciations Lines" _order = "date asc, name asc" + _check_company_auto = True amount = fields.Monetary( string="Amount", ) asset_accounting_info_ids = fields.One2many( - "asset.accounting.info", "dep_line_id", string="Accounting Info" + "asset.accounting.info", + "dep_line_id", + string="Accounting Info", + check_company=True, ) asset_id = fields.Many2one( @@ -63,7 +67,9 @@ class AssetDepreciationLine(models.Model): ) depreciation_line_type_id = fields.Many2one( - "asset.depreciation.line.type", string="Depreciation Type" + "asset.depreciation.line.type", + string="Depreciation Type", + check_company=True, ) depreciation_nr = fields.Integer( @@ -84,7 +90,11 @@ class AssetDepreciationLine(models.Model): string="Force Dep. Num", ) - move_id = fields.Many2one("account.move", string="Move") + move_id = fields.Many2one( + "account.move", + string="Move", + check_company=True, + ) move_type = fields.Selection( [ diff --git a/assets_management/models/asset_depreciation_line_type.py b/assets_management/models/asset_depreciation_line_type.py index 6cf756aa867f..b540eb0530f6 100644 --- a/assets_management/models/asset_depreciation_line_type.py +++ b/assets_management/models/asset_depreciation_line_type.py @@ -14,7 +14,7 @@ class DepLineType(models.Model): @api.model def get_default_company_id(self): - return self.env.user.company_id + return self.env.company code = fields.Char(string="Code") diff --git a/assets_management/models/asset_depreciation_mode.py b/assets_management/models/asset_depreciation_mode.py index 0776bd6cc111..10d871f51c30 100644 --- a/assets_management/models/asset_depreciation_mode.py +++ b/assets_management/models/asset_depreciation_mode.py @@ -10,19 +10,23 @@ class AssetDepreciationMode(models.Model): _name = "asset.depreciation.mode" _description = "Asset Depreciation Mode" _order = "name" + _check_company_auto = True @api.model def get_default_company_id(self): - return self.env.user.company_id + return self.env.company company_id = fields.Many2one( - "res.company", default=get_default_company_id, string="Company" + "res.company", default=get_default_company_id, readonly=True, string="Company" ) default = fields.Boolean(string="Default Mode") line_ids = fields.One2many( - "asset.depreciation.mode.line", "mode_id", string="Lines" + "asset.depreciation.mode.line", + "mode_id", + string="Lines", + check_company=True, ) name = fields.Char( diff --git a/assets_management/models/asset_depreciation_type.py b/assets_management/models/asset_depreciation_type.py index 8d069f989a8a..9248f5291987 100644 --- a/assets_management/models/asset_depreciation_type.py +++ b/assets_management/models/asset_depreciation_type.py @@ -13,7 +13,7 @@ class AssetDepreciationType(models.Model): @api.model def get_default_company_id(self): - return self.env.user.company_id + return self.env.company company_id = fields.Many2one( "res.company", default=get_default_company_id, string="Company" diff --git a/assets_management/models/asset_tag.py b/assets_management/models/asset_tag.py index c05b7ec15093..d3096e012f71 100644 --- a/assets_management/models/asset_tag.py +++ b/assets_management/models/asset_tag.py @@ -11,10 +11,10 @@ class AssetTag(models.Model): @api.model def get_default_company_id(self): - return self.env.user.company_id + return self.env.company company_id = fields.Many2one( - "res.company", default=get_default_company_id, string="Company" + "res.company", default=get_default_company_id, readonly=True, string="Company" ) name = fields.Char(string="Name", required=True) diff --git a/assets_management/report/asset_journal.py b/assets_management/report/asset_journal.py index ce351e6f01df..8f274d136ee7 100644 --- a/assets_management/report/asset_journal.py +++ b/assets_management/report/asset_journal.py @@ -165,7 +165,7 @@ def generate_structure(self): dep_lines = dep_lines.filtered(lambda dl: dl.date <= self.date) categories = assets.mapped("category_id") - if not (categories and assets and deps and dep_lines): + if not (categories and assets and deps): raise ValidationError( _("There is nothing to print according to current settings!") ) @@ -347,8 +347,16 @@ def generate_totals(self): t: {fname: 0 for fname in fnames} for t in report_deps.mapped("depreciation_id.type_id") } - for report_dep in report_deps.filtered("report_depreciation_year_line_ids"): + for report_dep in report_deps: dep_type = report_dep.depreciation_id.type_id + if not report_dep.report_depreciation_year_line_ids: + totals_by_dep_type[dep_type][ + "amount_depreciable_updated" + ] += report_dep.dep_amount_depreciable + totals_by_dep_type[dep_type][ + "amount_residual" + ] += report_dep.dep_amount_depreciable + continue last_line = report_dep.report_depreciation_year_line_ids[-1] line_curr = last_line.get_currency() fy_start = last_line.fiscal_year_id.date_from diff --git a/assets_management/security/rules.xml b/assets_management/security/rules.xml index 8bddd91b1ecf..48f87c28f934 100644 --- a/assets_management/security/rules.xml +++ b/assets_management/security/rules.xml @@ -1,12 +1,11 @@ - Asset multi company rule - ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] + ['|',('company_id','=',False),('company_id','in',company_ids)] @@ -15,7 +14,7 @@ - ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] + ['|',('company_id','=',False),('company_id','in',company_ids)] @@ -24,7 +23,7 @@ - ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] + ['|',('company_id','=',False),('company_id','in',company_ids)] @@ -33,7 +32,7 @@ - ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] + ['|',('company_id','=',False),('company_id','in',company_ids)] @@ -42,7 +41,7 @@ - ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] + ['|',('company_id','=',False),('company_id','in',company_ids)] @@ -51,7 +50,7 @@ - ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] + ['|',('company_id','=',False),('company_id','in',company_ids)] @@ -60,7 +59,7 @@ - ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] + ['|',('company_id','=',False),('company_id','in',company_ids)] @@ -69,7 +68,7 @@ - ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] + ['|',('company_id','=',False),('company_id','in',company_ids)] @@ -78,7 +77,7 @@ - ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] + ['|',('company_id','=',False),('company_id','in',company_ids)] @@ -87,7 +86,7 @@ - ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] + ['|',('company_id','=',False),('company_id','in',company_ids)] @@ -96,8 +95,7 @@ - ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] + ['|',('company_id','=',False),('company_id','in',company_ids)] - diff --git a/assets_management/static/description/index.html b/assets_management/static/description/index.html index 4afc55a45226..c8e01c2d583b 100644 --- a/assets_management/static/description/index.html +++ b/assets_management/static/description/index.html @@ -1,3 +1,4 @@ + @@ -366,7 +367,7 @@

    ITA - Gestione Cespiti

    !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:e6766f9cf7ff68e40f648daa45bea3f007a2f6426a58400e57865a0a43bab02d +!! source digest: sha256:e472a31bb7144e64efa2feb096c00ec6fe4d925c0dc93c97fb77b9832fe44cfb !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

    Beta License: AGPL-3 OCA/l10n-italy Translate me on Weblate Try me on Runboat

    This modules allows account management of companies’ assets.

    diff --git a/assets_management/tests/__init__.py b/assets_management/tests/__init__.py index 3bf9c4dc3869..b5995afb2579 100644 --- a/assets_management/tests/__init__.py +++ b/assets_management/tests/__init__.py @@ -1 +1,3 @@ +from . import test_assets_common from . import test_assets_management +from . import test_assets_multicompany diff --git a/assets_management/tests/test_assets_common.py b/assets_management/tests/test_assets_common.py new file mode 100644 index 000000000000..10a1db87dee6 --- /dev/null +++ b/assets_management/tests/test_assets_common.py @@ -0,0 +1,310 @@ +# Copyright 2021 Sergio Corato +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from odoo.tests import new_test_user +from odoo.tests.common import SavepointCase + + +class TestAssets(SavepointCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + # Companies + cls.company_1 = cls.env.ref("base.main_company") + cls.company_2 = cls.env["res.company"].create( + { + "name": "company 2", + } + ) + # User + cls.user = new_test_user( + cls.env, + "user", + groups="base.group_multi_company,account.group_account_manager", + company_id=cls.company_1.id, + company_ids=[(6, 0, [cls.company_1.id, cls.company_2.id])], + ) + # Asset depreciation types + cls.ad_type_civ_company_1 = cls.env.ref("assets_management.ad_type_civilistico") + cls.ad_type_fis_company_1 = cls.env.ref("assets_management.ad_type_fiscale") + cls.ad_type_civ_company_2 = cls.ad_type_civ_company_1.copy( + {"company_id": cls.company_2.id} + ) + cls.ad_type_fis_company_2 = cls.ad_type_fis_company_1.copy( + {"company_id": cls.company_2.id} + ) + # Asset depreciation modes + cls.ad_mode_mat_company_1 = cls.env.ref("assets_management.ad_mode_materiale") + cls.ad_mode_mat_company_2 = cls.ad_mode_mat_company_1.copy( + {"company_id": cls.company_2.id} + ) + # Account types (non companies related) + cls.data_account_type_current_assets = cls.env.ref( + "account.data_account_type_current_assets" + ) + cls.data_account_type_current_liabilities = cls.env.ref( + "account.data_account_type_current_liabilities" + ) + # Accounts + cls.asset_account_company_1 = cls.env["account.account"].search( + [ + ( + "user_type_id", + "=", + cls.env.ref("account.data_account_type_fixed_assets").id, + ), + ("company_id", "=", cls.company_1.id), + ], + limit=1, + ) + cls.asset_account_company_2 = cls.asset_account_company_1.copy( + {"company_id": cls.company_2.id} + ) + + cls.depreciation_account_company_1 = cls.env["account.account"].search( + [ + ( + "user_type_id", + "=", + cls.env.ref("account.data_account_type_expenses").id, + ), + ("company_id", "=", cls.company_1.id), + ], + limit=1, + ) + cls.depreciation_account_company_2 = cls.depreciation_account_company_1.copy( + {"company_id": cls.company_2.id} + ) + + cls.fund_account_company_1 = cls.env["account.account"].search( + [ + ( + "user_type_id", + "=", + cls.env.ref("account.data_account_type_non_current_assets").id, + ), + ("company_id", "=", cls.company_1.id), + ], + limit=1, + ) + cls.fund_account_company_2 = cls.fund_account_company_1.copy( + {"company_id": cls.company_2.id} + ) + + cls.gain_account_company_1 = cls.env["account.account"].search( + [ + ( + "user_type_id", + "=", + cls.env.ref("account.data_account_type_revenue").id, + ), + ("company_id", "=", cls.company_1.id), + ], + limit=1, + ) + cls.gain_account_company_2 = cls.gain_account_company_1.copy( + {"company_id": cls.company_2.id} + ) + + cls.loss_account_company_1 = cls.env["account.account"].search( + [ + ( + "user_type_id", + "=", + cls.env.ref("account.data_account_type_expenses").id, + ), + ("company_id", "=", cls.company_1.id), + ], + limit=1, + ) + cls.loss_account_company_2 = cls.loss_account_company_1.copy( + {"company_id": cls.company_2.id} + ) + # Journals + cls.journal_company_1 = cls.env["account.journal"].search( + [("type", "=", "general"), ("company_id", "=", cls.company_1.id)], + limit=1, + ) + cls.journal_company_2 = cls.journal_company_1.copy( + {"company_id": cls.company_2.id} + ) + # Asset categories + cls.asset_category_1_company_1 = cls.env["asset.category"].create( + { + "name": "Asset category 1 Company 1", + "company_id": cls.company_1.id, + "asset_account_id": cls.asset_account_company_1.id, + "depreciation_account_id": cls.depreciation_account_company_1.id, + "fund_account_id": cls.fund_account_company_1.id, + "gain_account_id": cls.gain_account_company_1.id, + "journal_id": cls.journal_company_1.id, + "loss_account_id": cls.loss_account_company_1.id, + "type_ids": [ + ( + 0, + 0, + { + "depreciation_type_id": cls.ad_type_civ_company_1.id, + "mode_id": cls.ad_mode_mat_company_1.id, + "company_id": cls.company_1.id, + }, + ) + ], + } + ) + + cls.asset_category_1_company_2 = cls.env["asset.category"].create( + { + "name": "Asset category 1 Company 2", + "company_id": cls.company_2.id, + "asset_account_id": cls.asset_account_company_2.id, + "depreciation_account_id": cls.depreciation_account_company_2.id, + "fund_account_id": cls.fund_account_company_2.id, + "gain_account_id": cls.gain_account_company_2.id, + "journal_id": cls.journal_company_2.id, + "loss_account_id": cls.loss_account_company_2.id, + "type_ids": [ + ( + 0, + 0, + { + "depreciation_type_id": cls.ad_type_civ_company_2.id, + "mode_id": cls.ad_mode_mat_company_2.id, + "company_id": cls.company_2.id, + }, + ) + ], + } + ) + # Tax accounts + cls.tax_account_company_1 = cls.env["account.account"].create( + { + "name": "Deductable tax", + "code": "DEDTAX", + "user_type_id": cls.data_account_type_current_assets.id, + "company_id": cls.company_1.id, + } + ) + cls.tax_account_company_2 = cls.tax_account_company_1.copy( + {"company_id": cls.company_2.id} + ) + # Taxes + cls.tax_22_partial_60 = cls.env["account.tax"].create( + { + "name": "22% deductable partial 60%", + "type_tax_use": "purchase", + "amount_type": "percent", + "amount": 22, + "invoice_repartition_line_ids": [ + ( + 0, + 0, + { + "factor_percent": 100, + "repartition_type": "base", + }, + ), + ( + 0, + 0, + { + "factor_percent": 60, + "repartition_type": "tax", + "account_id": cls.tax_account_company_1.id, + }, + ), + ( + 0, + 0, + { + "factor_percent": 40, + "repartition_type": "tax", + }, + ), + ], + "refund_repartition_line_ids": [ + ( + 0, + 0, + { + "factor_percent": 100, + "repartition_type": "base", + }, + ), + ( + 0, + 0, + { + "factor_percent": 60, + "repartition_type": "tax", + "account_id": cls.tax_account_company_1.id, + }, + ), + ( + 0, + 0, + { + "factor_percent": 40, + "repartition_type": "tax", + }, + ), + ], + } + ) + + def _create_asset(self, asset_date): + asset = self.env["asset.asset"].create( + { + "name": "Test asset", + "category_id": self.asset_category_1_company_1.id, + "company_id": self.env.ref("base.main_company").id, + "currency_id": self.env.ref("base.main_company").currency_id.id, + "purchase_amount": 1000.0, + "purchase_date": asset_date, + } + ) + return asset + + def _depreciate_asset(self, asset, date_dep): + wiz_vals = asset.with_context( + {"allow_reload_window": True} + ).launch_wizard_generate_depreciations() + wiz = ( + self.env["wizard.asset.generate.depreciation"] + .with_context(wiz_vals["context"]) + .create({"date_dep": date_dep}) + ) + wiz.do_generate() + + def _create_purchase_invoice(self, invoice_date, tax_ids=False, amount=7000): + invoice_line_vals = { + "account_id": self.asset_category_1_company_1.asset_account_id.id, + "quantity": 1, + "price_unit": amount, + } + if tax_ids: + invoice_line_vals.update({"tax_ids": tax_ids}) + purchase_invoice = self.env["account.move"].create( + { + "move_type": "in_invoice", + "invoice_date": invoice_date, + "partner_id": self.env.ref("base.partner_demo").id, + "journal_id": self.env["account.journal"] + .search( + [ + ("type", "=", "purchase"), + ], + limit=1, + ) + .id, + "invoice_line_ids": [ + ( + 0, + 0, + invoice_line_vals, + ) + ], + } + ) + purchase_invoice.action_post() + self.assertEqual(purchase_invoice.state, "posted") + return purchase_invoice diff --git a/assets_management/tests/test_assets_management.py b/assets_management/tests/test_assets_management.py index 975da8172855..9fb9a9da4bf0 100644 --- a/assets_management/tests/test_assets_management.py +++ b/assets_management/tests/test_assets_management.py @@ -1,239 +1,18 @@ # Copyright 2021 Sergio Corato # Copyright 2022 Simone Rubino - TAKOBI +# Copyright 2023 Nextev Srl # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). from datetime import date from odoo import fields from odoo.exceptions import ValidationError from odoo.fields import first -from odoo.tests.common import SavepointCase from odoo.tools.date_utils import relativedelta +from .test_assets_common import TestAssets -class TestAssets(SavepointCase): - @classmethod - def setUpClass(cls): - super().setUpClass() - cls.data_account_type_current_assets = cls.env.ref( - "account.data_account_type_current_assets" - ) - cls.data_account_type_current_liabilities = cls.env.ref( - "account.data_account_type_current_liabilities" - ) - cls.asset_category_1 = cls.env["asset.category"].create( - { - "name": "Asset category 1", - "asset_account_id": cls.env["account.account"] - .search( - [ - ( - "user_type_id", - "=", - cls.env.ref("account.data_account_type_fixed_assets").id, - ) - ], - limit=1, - ) - .id, - "depreciation_account_id": cls.env["account.account"] - .search( - [ - ( - "user_type_id", - "=", - cls.env.ref("account.data_account_type_expenses").id, - ) - ], - limit=1, - ) - .id, - "fund_account_id": cls.env["account.account"] - .search( - [ - ( - "user_type_id", - "=", - cls.env.ref( - "account.data_account_type_non_current_assets" - ).id, - ) - ], - limit=1, - ) - .id, - "gain_account_id": cls.env["account.account"] - .search( - [ - ( - "user_type_id", - "=", - cls.env.ref("account.data_account_type_revenue").id, - ) - ], - limit=1, - ) - .id, - "journal_id": cls.env["account.journal"] - .search([("type", "=", "general")], limit=1) - .id, - "loss_account_id": cls.env["account.account"] - .search( - [ - ( - "user_type_id", - "=", - cls.env.ref("account.data_account_type_expenses").id, - ) - ], - limit=1, - ) - .id, - "type_ids": [ - ( - 0, - 0, - { - "depreciation_type_id": cls.env.ref( - "assets_management.ad_type_civilistico" - ).id, - "mode_id": cls.env.ref( - "assets_management.ad_mode_materiale" - ).id, - }, - ) - ], - } - ) - cls.tax_account = cls.env["account.account"].create( - { - "name": "Deductable tax", - "code": "DEDTAX", - "user_type_id": cls.env.ref( - "account.data_account_type_current_assets" - ).id, - } - ) - cls.tax_22_partial_60 = cls.env["account.tax"].create( - { - "name": "22% deductable partial 60%", - "type_tax_use": "purchase", - "amount_type": "percent", - "amount": 22, - "invoice_repartition_line_ids": [ - ( - 0, - 0, - { - "factor_percent": 100, - "repartition_type": "base", - }, - ), - ( - 0, - 0, - { - "factor_percent": 60, - "repartition_type": "tax", - "account_id": cls.tax_account.id, - }, - ), - ( - 0, - 0, - { - "factor_percent": 40, - "repartition_type": "tax", - }, - ), - ], - "refund_repartition_line_ids": [ - ( - 0, - 0, - { - "factor_percent": 100, - "repartition_type": "base", - }, - ), - ( - 0, - 0, - { - "factor_percent": 60, - "repartition_type": "tax", - "account_id": cls.tax_account.id, - }, - ), - ( - 0, - 0, - { - "factor_percent": 40, - "repartition_type": "tax", - }, - ), - ], - } - ) - - def _create_asset(self, asset_date): - asset = self.env["asset.asset"].create( - { - "name": "Test asset", - "category_id": self.asset_category_1.id, - "company_id": self.env.ref("base.main_company").id, - "currency_id": self.env.ref("base.main_company").currency_id.id, - "purchase_amount": 1000.0, - "purchase_date": asset_date, - } - ) - return asset - - def _depreciate_asset(self, asset, date_dep): - wiz_vals = asset.with_context( - {"allow_reload_window": True} - ).launch_wizard_generate_depreciations() - wiz = ( - self.env["wizard.asset.generate.depreciation"] - .with_context(wiz_vals["context"]) - .create({"date_dep": date_dep}) - ) - wiz.do_generate() - - def _create_purchase_invoice(self, invoice_date, tax_ids=False, amount=7000): - invoice_line_vals = { - "account_id": self.asset_category_1.asset_account_id.id, - "quantity": 1, - "price_unit": amount, - } - if tax_ids: - invoice_line_vals.update({"tax_ids": tax_ids}) - purchase_invoice = self.env["account.move"].create( - { - "move_type": "in_invoice", - "invoice_date": invoice_date, - "partner_id": self.env.ref("base.partner_demo").id, - "journal_id": self.env["account.journal"] - .search( - [ - ("type", "=", "purchase"), - ], - limit=1, - ) - .id, - "invoice_line_ids": [ - ( - 0, - 0, - invoice_line_vals, - ) - ], - } - ) - purchase_invoice.action_post() - self.assertEqual(purchase_invoice.state, "posted") - return purchase_invoice +class TestAssetsManagement(TestAssets): def test_00_create_asset_depreciate_and_sale(self): today = fields.Date.today() first_depreciation_date = today.replace(month=12, day=31) + relativedelta( @@ -347,7 +126,7 @@ def test_01_asset_from_purchase_invoice(self): move_line_ids = wiz_vals["context"]["default_move_line_ids"][0][2] move_lines = self.env["account.move.line"].browse(move_line_ids) move_lines_to_do = move_lines.filtered( - lambda x: x.account_id == self.asset_category_1.asset_account_id + lambda x: x.account_id == self.asset_category_1_company_1.asset_account_id ) wiz_vals["context"]["default_move_line_ids"] = [(6, 0, move_lines_to_do.ids)] wiz = ( @@ -356,7 +135,7 @@ def test_01_asset_from_purchase_invoice(self): .create( { "management_type": "create", - "category_id": self.asset_category_1.id, + "category_id": self.asset_category_1_company_1.id, "name": "Test asset", } ) @@ -422,7 +201,7 @@ def test_02_asset_partial_deductible_from_purchase_invoice(self): sum( line.debit for line in purchase_invoice.line_ids - if line.account_id == self.asset_category_1.asset_account_id + if line.account_id == self.asset_category_1_company_1.asset_account_id ), 7000 + (7000 * 0.22 * 0.4), ) @@ -430,7 +209,7 @@ def test_02_asset_partial_deductible_from_purchase_invoice(self): move_line_ids = wiz_vals["context"]["default_move_line_ids"][0][2] move_lines = self.env["account.move.line"].browse(move_line_ids) move_lines_to_do = move_lines.filtered( - lambda x: x.account_id == self.asset_category_1.asset_account_id + lambda x: x.account_id == self.asset_category_1_company_1.asset_account_id ) wiz_vals["context"]["default_move_line_ids"] = [(6, 0, move_lines_to_do.ids)] wiz = ( @@ -439,7 +218,7 @@ def test_02_asset_partial_deductible_from_purchase_invoice(self): .create( { "management_type": "create", - "category_id": self.asset_category_1.id, + "category_id": self.asset_category_1_company_1.id, "name": "Test asset", } ) @@ -456,7 +235,7 @@ def test_03_asset_from_purchase_invoice_increment(self): move_line_ids = wiz_vals["context"]["default_move_line_ids"][0][2] move_lines = self.env["account.move.line"].browse(move_line_ids) move_lines_to_do = move_lines.filtered( - lambda x: x.account_id == self.asset_category_1.asset_account_id + lambda x: x.account_id == self.asset_category_1_company_1.asset_account_id ) wiz_vals["context"]["default_move_line_ids"] = [(6, 0, move_lines_to_do.ids)] wiz = ( @@ -465,7 +244,7 @@ def test_03_asset_from_purchase_invoice_increment(self): .create( { "management_type": "create", - "category_id": self.asset_category_1.id, + "category_id": self.asset_category_1_company_1.id, "name": "Test asset", } ) @@ -509,7 +288,7 @@ def test_03_asset_from_purchase_invoice_increment(self): move_line_ids = wiz_vals["context"]["default_move_line_ids"][0][2] move_lines = self.env["account.move.line"].browse(move_line_ids) move_lines_to_do = move_lines.filtered( - lambda x: x.account_id == self.asset_category_1.asset_account_id + lambda x: x.account_id == self.asset_category_1_company_1.asset_account_id ) wiz_vals["context"]["default_move_line_ids"] = [(6, 0, move_lines_to_do.ids)] wiz = ( @@ -518,7 +297,7 @@ def test_03_asset_from_purchase_invoice_increment(self): .create( { "management_type": "update", - "category_id": self.asset_category_1.id, + "category_id": self.asset_category_1_company_1.id, "asset_id": asset.id, "depreciation_type_ids": [(6, 0, civ_type.ids)], } @@ -554,7 +333,7 @@ def test_04_asset_partial_depreciate_from_purchase_invoice_increment(self): move_line_ids = wiz_vals["context"]["default_move_line_ids"][0][2] move_lines = self.env["account.move.line"].browse(move_line_ids) move_lines_to_do = move_lines.filtered( - lambda x: x.account_id == self.asset_category_1.asset_account_id + lambda x: x.account_id == self.asset_category_1_company_1.asset_account_id ) wiz_vals["context"]["default_move_line_ids"] = [(6, 0, move_lines_to_do.ids)] wiz = ( @@ -563,7 +342,7 @@ def test_04_asset_partial_depreciate_from_purchase_invoice_increment(self): .create( { "management_type": "create", - "category_id": self.asset_category_1.id, + "category_id": self.asset_category_1_company_1.id, "name": "Test asset", } ) @@ -603,7 +382,7 @@ def test_04_asset_partial_depreciate_from_purchase_invoice_increment(self): move_line_ids = wiz_vals["context"]["default_move_line_ids"][0][2] move_lines = self.env["account.move.line"].browse(move_line_ids) move_lines_to_do = move_lines.filtered( - lambda x: x.account_id == self.asset_category_1.asset_account_id + lambda x: x.account_id == self.asset_category_1_company_1.asset_account_id ) wiz_vals["context"]["default_move_line_ids"] = [(6, 0, move_lines_to_do.ids)] wiz = ( @@ -612,7 +391,7 @@ def test_04_asset_partial_depreciate_from_purchase_invoice_increment(self): .create( { "management_type": "update", - "category_id": self.asset_category_1.id, + "category_id": self.asset_category_1_company_1.id, "asset_id": asset.id, "depreciation_type_ids": [(6, 0, civ_type.ids)], } diff --git a/assets_management/tests/test_assets_multicompany.py b/assets_management/tests/test_assets_multicompany.py new file mode 100644 index 000000000000..3453453e089b --- /dev/null +++ b/assets_management/tests/test_assets_multicompany.py @@ -0,0 +1,21 @@ +# Copyright 2023 Nextev Srl +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from odoo.tests.common import Form, users + +from .test_assets_common import TestAssets + + +class TestAssetsMulticompany(TestAssets): + @users("user") + def test_00_create_depreciation_mode_multicompany(self): + """ + It checks that you cannot change the default associated company upon + asset depreciation mode creation + """ + mode_form = Form(self.env["asset.depreciation.mode"]) + mode_form.name = "Move 1" + mode_form.save() + with self.assertRaises( + AssertionError, msg="can't write on readonly field company_id" + ): + mode_form.company_id = self.company_2 diff --git a/assets_management/views/asset.xml b/assets_management/views/asset.xml index 5d157587d5aa..2b47458e322f 100644 --- a/assets_management/views/asset.xml +++ b/assets_management/views/asset.xml @@ -87,7 +87,6 @@ diff --git a/assets_management/views/asset_category.xml b/assets_management/views/asset_category.xml index 24398ae40756..cc6f2aac8d7f 100644 --- a/assets_management/views/asset_category.xml +++ b/assets_management/views/asset_category.xml @@ -31,6 +31,7 @@ nolabel="1" > + diff --git a/assets_management/wizard/account_move_manage_asset.py b/assets_management/wizard/account_move_manage_asset.py index 8d27d7483ab5..e322fe57de05 100644 --- a/assets_management/wizard/account_move_manage_asset.py +++ b/assets_management/wizard/account_move_manage_asset.py @@ -10,22 +10,28 @@ class WizardAccountMoveManageAsset(models.TransientModel): _name = "wizard.account.move.manage.asset" _description = "Manage Assets from Account Moves" + _check_company_auto = True @api.model def get_default_company_id(self): - return self.env.user.company_id + return self.env.company @api.model def get_default_move_ids(self): return self._context.get("move_ids") - asset_id = fields.Many2one("asset.asset", string="Asset") + asset_id = fields.Many2one( + "asset.asset", + string="Asset", + check_company=True, + ) asset_purchase_amount = fields.Monetary(string="Purchase Amount") category_id = fields.Many2one( "asset.category", string="Category", + check_company=True, ) code = fields.Char( @@ -35,6 +41,7 @@ def get_default_move_ids(self): company_id = fields.Many2one( "res.company", + readonly=True, default=get_default_company_id, string="Company", ) @@ -49,7 +56,9 @@ def get_default_move_ids(self): depreciated_fund_amount = fields.Monetary(string="Depreciated Fund Amount") depreciation_type_ids = fields.Many2many( - "asset.depreciation.type", string="Depreciation Types" + "asset.depreciation.type", + string="Depreciation Types", + check_company=True, ) dismiss_date = fields.Date( @@ -77,11 +86,13 @@ def get_default_move_ids(self): "account.move", default=get_default_move_ids, string="Moves", + check_company=True, ) move_line_ids = fields.Many2many( "account.move.line", string="Move Lines", + check_company=True, ) move_type = fields.Selection( @@ -514,15 +525,19 @@ def get_partial_dismiss_asset_vals(self): fund_amt = self.depreciated_fund_amount purchase_amt = self.asset_purchase_amount - max_date = max(asset.depreciation_ids.mapped("last_depreciation_date")) - if max_date and max_date > dismiss_date: - raise ValidationError( - _( - "Cannot dismiss an asset earlier than the last depreciation" - " date.\n" - "(Dismiss date: {}, last depreciation date: {})." - ).format(dismiss_date, max_date) - ) + last_depreciation_dates = asset.depreciation_ids.filtered( + "last_depreciation_date" + ).mapped("last_depreciation_date") + if last_depreciation_dates: + max_date = max(last_depreciation_dates) + if max_date > dismiss_date: + raise ValidationError( + _( + "Cannot dismiss an asset earlier than the last depreciation" + " date.\n" + "(Dismiss date: {}, last depreciation date: {})." + ).format(dismiss_date, max_date) + ) move = self.move_line_ids.mapped("move_id") move_nums = move.name diff --git a/assets_management/wizard/account_move_manage_asset_view.xml b/assets_management/wizard/account_move_manage_asset_view.xml index fe9c1af81250..6017ab2e18e1 100644 --- a/assets_management/wizard/account_move_manage_asset_view.xml +++ b/assets_management/wizard/account_move_manage_asset_view.xml @@ -76,7 +76,6 @@ @@ -148,12 +147,7 @@ options="{'no_open':1}" readonly="1" /> - + - + diff --git a/assets_management/wizard/asset_generate_depreciation.py b/assets_management/wizard/asset_generate_depreciation.py index 855f412881d5..5e26c2d27a22 100644 --- a/assets_management/wizard/asset_generate_depreciation.py +++ b/assets_management/wizard/asset_generate_depreciation.py @@ -8,15 +8,16 @@ class WizardAssetsGenerateDepreciations(models.TransientModel): _name = "wizard.asset.generate.depreciation" _description = "Generate Asset Depreciations" + _check_company_auto = True @api.model def get_default_company_id(self): - return self.env.user.company_id + return self.env.company @api.model def get_default_date_dep(self): fiscal_year = self.env["account.fiscal.year"].get_fiscal_year_by_date( - fields.Date.today(), company=self.env.user.company_id, miss_raise=False + fields.Date.today(), company=self.env.company, miss_raise=False ) if fiscal_year: return fiscal_year.date_to @@ -29,17 +30,21 @@ def get_default_type_ids(self): asset_ids = fields.Many2many( "asset.asset", string="Assets", + check_company=True, ) category_ids = fields.Many2many( "asset.category", string="Categories", + check_company=True, ) company_id = fields.Many2one( "res.company", default=get_default_company_id, string="Company", + readonly=True, + check_company=True, ) date_dep = fields.Date( @@ -53,6 +58,7 @@ def get_default_type_ids(self): default=get_default_type_ids, required=True, string="Depreciation Types", + check_company=True, ) def do_generate(self): diff --git a/assets_management/wizard/asset_journal_report.py b/assets_management/wizard/asset_journal_report.py index cf7e7206ac81..19a90c9543d5 100644 --- a/assets_management/wizard/asset_journal_report.py +++ b/assets_management/wizard/asset_journal_report.py @@ -10,6 +10,7 @@ class WizardAssetJournalReport(models.TransientModel): _name = "wizard.asset.journal.report" _description = "Wizard Asset Journal Report" + _check_company_auto = True @api.model def get_asset_order_fname_selection(self): @@ -26,11 +27,16 @@ def get_default_asset_order_fname(self): @api.model def get_default_category_ids(self): - return self.env["asset.category"].search([("print_by_default", "=", True)]) + return self.env["asset.category"].search( + [ + ("print_by_default", "=", True), + ("company_id", "=", self.get_default_company_id().id), + ] + ) @api.model def get_default_company_id(self): - return self.env.user.company_id + return self.env.company @api.model def get_default_date(self): @@ -43,10 +49,17 @@ def get_default_report_footer_year(self): @api.model def get_default_type_ids(self): return self.env["asset.depreciation.type"].search( - [("print_by_default", "=", True)] + [ + ("print_by_default", "=", True), + ("company_id", "=", self.get_default_company_id().id), + ] ) - asset_ids = fields.Many2many("asset.asset", string="Assets") + asset_ids = fields.Many2many( + "asset.asset", + string="Assets", + check_company=True, + ) asset_order_fname = fields.Selection( get_asset_order_fname_selection, @@ -56,11 +69,18 @@ def get_default_type_ids(self): ) category_ids = fields.Many2many( - "asset.category", default=get_default_category_ids, string="Categories" + "asset.category", + default=get_default_category_ids, + string="Categories", + check_company=True, ) company_id = fields.Many2one( - "res.company", default=get_default_company_id, required=True, string="Company" + "res.company", + default=get_default_company_id, + readonly=True, + required=True, + string="Company", ) date = fields.Date( @@ -86,6 +106,7 @@ def get_default_type_ids(self): "asset.depreciation.type", default=get_default_type_ids, string="Depreciation Types", + check_company=True, ) @api.onchange("category_ids", "company_id", "date", "type_ids") diff --git a/assets_management/wizard/asset_journal_report_view.xml b/assets_management/wizard/asset_journal_report_view.xml index 728d7c709723..4fb6380baf76 100644 --- a/assets_management/wizard/asset_journal_report_view.xml +++ b/assets_management/wizard/asset_journal_report_view.xml @@ -9,24 +9,26 @@ - + - + diff --git a/assets_management/wizard/asset_previsional_report.py b/assets_management/wizard/asset_previsional_report.py index da4d41258272..b873f48e17cb 100644 --- a/assets_management/wizard/asset_previsional_report.py +++ b/assets_management/wizard/asset_previsional_report.py @@ -10,6 +10,7 @@ class WizardAssetPrevisionalReport(models.TransientModel): _name = "wizard.asset.previsional.report" _description = "Wizard Asset Previsional Report" + _check_company_auto = True @api.model def get_asset_order_fname_selection(self): @@ -26,11 +27,16 @@ def get_default_asset_order_fname(self): @api.model def get_default_category_ids(self): - return self.env["asset.category"].search([("print_by_default", "=", True)]) + return self.env["asset.category"].search( + [ + ("print_by_default", "=", True), + ("company_id", "=", self.get_default_company_id().id), + ] + ) @api.model def get_default_company_id(self): - return self.env.user.company_id + return self.env.company @api.model def get_default_date(self): @@ -43,10 +49,17 @@ def get_default_report_footer_year(self): @api.model def get_default_type_ids(self): return self.env["asset.depreciation.type"].search( - [("print_by_default", "=", True)] + [ + ("print_by_default", "=", True), + ("company_id", "=", self.get_default_company_id().id), + ] ) - asset_ids = fields.Many2many("asset.asset", string="Assets") + asset_ids = fields.Many2many( + "asset.asset", + string="Assets", + check_company=True, + ) asset_order_fname = fields.Selection( get_asset_order_fname_selection, @@ -56,11 +69,18 @@ def get_default_type_ids(self): ) category_ids = fields.Many2many( - "asset.category", default=get_default_category_ids, string="Categories" + "asset.category", + default=get_default_category_ids, + string="Categories", + check_company=True, ) company_id = fields.Many2one( - "res.company", default=get_default_company_id, required=True, string="Company" + "res.company", + default=get_default_company_id, + readonly=True, + required=True, + string="Company", ) date = fields.Date( @@ -86,6 +106,7 @@ def get_default_type_ids(self): "asset.depreciation.type", default=get_default_type_ids, string="Depreciation Types", + check_company=True, ) @api.onchange("category_ids", "company_id", "date", "type_ids") diff --git a/assets_management/wizard/asset_previsional_report_view.xml b/assets_management/wizard/asset_previsional_report_view.xml index 3ba820879d05..17466aa5e7d8 100644 --- a/assets_management/wizard/asset_previsional_report_view.xml +++ b/assets_management/wizard/asset_previsional_report_view.xml @@ -17,12 +17,12 @@ diff --git a/fiscal_epos_print/i18n/it.po b/fiscal_epos_print/i18n/it.po index de17a2589071..7b61c478e9ac 100644 --- a/fiscal_epos_print/i18n/it.po +++ b/fiscal_epos_print/i18n/it.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 14.0\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2023-07-10 10:11+0000\n" +"PO-Revision-Date: 2024-03-01 10:36+0000\n" "Last-Translator: mymage \n" "Language-Team: none\n" "Language: it\n" @@ -467,7 +467,7 @@ msgstr "Pagamento in corso" #. module: fiscal_epos_print #: model:ir.model.fields,field_description:fiscal_epos_print.field_pos_payment_method__fiscalprinter_payment_type msgid "Payment type" -msgstr "Tipo di pagamento" +msgstr "Tipo pagamento" #. module: fiscal_epos_print #. openerp-web diff --git a/l10n_it_abicab/__init__.py b/l10n_it_abicab/__init__.py old mode 100644 new mode 100755 diff --git a/l10n_it_account/README.rst b/l10n_it_account/README.rst index 5959fe380c7a..bb9128bd4a64 100644 --- a/l10n_it_account/README.rst +++ b/l10n_it_account/README.rst @@ -7,7 +7,7 @@ ITA - Contabilità base !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:6e2a9c1746e6c5cb42930fe967cf804612ca6f3093713ec2eec9139d2e307ca7 + !! source digest: sha256:9c137473c26de3da14f21fcc07e0bfd00ddae6449913d9c9c4285f742b4cb0ef !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png diff --git a/l10n_it_account/__manifest__.py b/l10n_it_account/__manifest__.py index a4de68d70b15..f6951923dbb5 100644 --- a/l10n_it_account/__manifest__.py +++ b/l10n_it_account/__manifest__.py @@ -9,7 +9,7 @@ { "name": "ITA - Contabilità base", "summary": "Modulo base usato come dipendenza di altri moduli contabili", - "version": "14.0.1.3.0", + "version": "14.0.1.4.0", "development_status": "Production/Stable", "category": "Hidden", "author": "Agile Business Group, Abstract, Odoo Community Association (OCA)", diff --git a/l10n_it_account/i18n/es_AR.po b/l10n_it_account/i18n/es_AR.po index dc4a637964fc..46ecb414754a 100644 --- a/l10n_it_account/i18n/es_AR.po +++ b/l10n_it_account/i18n/es_AR.po @@ -114,11 +114,6 @@ msgstr "" msgid "ID" msgstr "" -#. module: l10n_it_account -#: model:ir.model.fields,field_description:l10n_it_account.field_account_tax__cee_type -msgid "Include in VAT register" -msgstr "" - #. module: l10n_it_account #: code:addons/l10n_it_account/models/account_group.py:0 #, python-format @@ -148,16 +143,6 @@ msgstr "" msgid "Parent Taxes" msgstr "" -#. module: l10n_it_account -#: model:ir.model.fields.selection,name:l10n_it_account.selection__account_tax__cee_type__purchase -msgid "Purchase" -msgstr "" - -#. module: l10n_it_account -#: model:ir.model.fields.selection,name:l10n_it_account.selection__account_tax__cee_type__sale -msgid "Sale" -msgstr "" - #. module: l10n_it_account #: model:ir.model,name:l10n_it_account.model_account_tax msgid "Tax" @@ -167,10 +152,3 @@ msgstr "Impuesto" #: model:ir.model.fields,field_description:l10n_it_account.field_account_tax__undeductible_balance msgid "Undeductible Balance" msgstr "" - -#. module: l10n_it_account -#: model:ir.model.fields,help:l10n_it_account.field_account_tax__cee_type -msgid "" -"Use in the case of tax with 'VAT integration'. This specifies the VAT " -"register (sales / purchases) where the tax must be computed." -msgstr "" diff --git a/l10n_it_account/i18n/it.po b/l10n_it_account/i18n/it.po index 31be52245c6d..3488d7a85db5 100644 --- a/l10n_it_account/i18n/it.po +++ b/l10n_it_account/i18n/it.po @@ -116,11 +116,6 @@ msgstr "Generazione intervalli date" msgid "ID" msgstr "ID" -#. module: l10n_it_account -#: model:ir.model.fields,field_description:l10n_it_account.field_account_tax__cee_type -msgid "Include in VAT register" -msgstr "Includere nel registro IVA" - #. module: l10n_it_account #: code:addons/l10n_it_account/models/account_group.py:0 #, python-format @@ -150,16 +145,6 @@ msgstr "Pagina:" msgid "Parent Taxes" msgstr "Imposte padre" -#. module: l10n_it_account -#: model:ir.model.fields.selection,name:l10n_it_account.selection__account_tax__cee_type__purchase -msgid "Purchase" -msgstr "Acquisto" - -#. module: l10n_it_account -#: model:ir.model.fields.selection,name:l10n_it_account.selection__account_tax__cee_type__sale -msgid "Sale" -msgstr "Vendita" - #. module: l10n_it_account #: model:ir.model,name:l10n_it_account.model_account_tax msgid "Tax" @@ -170,14 +155,22 @@ msgstr "Imposta" msgid "Undeductible Balance" msgstr "Saldo non deducibile" -#. module: l10n_it_account -#: model:ir.model.fields,help:l10n_it_account.field_account_tax__cee_type -msgid "" -"Use in the case of tax with 'VAT integration'. This specifies the VAT " -"register (sales / purchases) where the tax must be computed." -msgstr "" -"Utilizzare nel caso di imposta per \"integrazione IVA\". Specifica il " -"registro IVA (vendite / acquisti) nel quale deve essere calcolata l'imposta." +#~ msgid "Include in VAT register" +#~ msgstr "Includere nel registro IVA" + +#~ msgid "Purchase" +#~ msgstr "Acquisto" + +#~ msgid "Sale" +#~ msgstr "Vendita" + +#~ msgid "" +#~ "Use in the case of tax with 'VAT integration'. This specifies the VAT " +#~ "register (sales / purchases) where the tax must be computed." +#~ msgstr "" +#~ "Utilizzare nel caso di imposta per \"integrazione IVA\". Specifica il " +#~ "registro IVA (vendite / acquisti) nel quale deve essere calcolata " +#~ "l'imposta." #~ msgid "" #~ "
    \n" diff --git a/l10n_it_account/i18n/l10n_it_account.pot b/l10n_it_account/i18n/l10n_it_account.pot index 145390c2dce0..056c1555f9cd 100644 --- a/l10n_it_account/i18n/l10n_it_account.pot +++ b/l10n_it_account/i18n/l10n_it_account.pot @@ -108,11 +108,6 @@ msgstr "" msgid "ID" msgstr "" -#. module: l10n_it_account -#: model:ir.model.fields,field_description:l10n_it_account.field_account_tax__cee_type -msgid "Include in VAT register" -msgstr "" - #. module: l10n_it_account #: code:addons/l10n_it_account/models/account_group.py:0 #, python-format @@ -142,16 +137,6 @@ msgstr "" msgid "Parent Taxes" msgstr "" -#. module: l10n_it_account -#: model:ir.model.fields.selection,name:l10n_it_account.selection__account_tax__cee_type__purchase -msgid "Purchase" -msgstr "" - -#. module: l10n_it_account -#: model:ir.model.fields.selection,name:l10n_it_account.selection__account_tax__cee_type__sale -msgid "Sale" -msgstr "" - #. module: l10n_it_account #: model:ir.model,name:l10n_it_account.model_account_tax msgid "Tax" @@ -161,10 +146,3 @@ msgstr "" #: model:ir.model.fields,field_description:l10n_it_account.field_account_tax__undeductible_balance msgid "Undeductible Balance" msgstr "" - -#. module: l10n_it_account -#: model:ir.model.fields,help:l10n_it_account.field_account_tax__cee_type -msgid "" -"Use in the case of tax with 'VAT integration'. This specifies the VAT " -"register (sales / purchases) where the tax must be computed." -msgstr "" diff --git a/l10n_it_account/i18n/sl.po b/l10n_it_account/i18n/sl.po index e1bc1520b5e4..017c5dff174b 100644 --- a/l10n_it_account/i18n/sl.po +++ b/l10n_it_account/i18n/sl.po @@ -114,11 +114,6 @@ msgstr "" msgid "ID" msgstr "" -#. module: l10n_it_account -#: model:ir.model.fields,field_description:l10n_it_account.field_account_tax__cee_type -msgid "Include in VAT register" -msgstr "" - #. module: l10n_it_account #: code:addons/l10n_it_account/models/account_group.py:0 #, python-format @@ -148,16 +143,6 @@ msgstr "" msgid "Parent Taxes" msgstr "" -#. module: l10n_it_account -#: model:ir.model.fields.selection,name:l10n_it_account.selection__account_tax__cee_type__purchase -msgid "Purchase" -msgstr "Nabava" - -#. module: l10n_it_account -#: model:ir.model.fields.selection,name:l10n_it_account.selection__account_tax__cee_type__sale -msgid "Sale" -msgstr "Prodaja" - #. module: l10n_it_account #: model:ir.model,name:l10n_it_account.model_account_tax msgid "Tax" @@ -168,12 +153,11 @@ msgstr "" msgid "Undeductible Balance" msgstr "" -#. module: l10n_it_account -#: model:ir.model.fields,help:l10n_it_account.field_account_tax__cee_type -msgid "" -"Use in the case of tax with 'VAT integration'. This specifies the VAT " -"register (sales / purchases) where the tax must be computed." -msgstr "" +#~ msgid "Purchase" +#~ msgstr "Nabava" + +#~ msgid "Sale" +#~ msgstr "Prodaja" #~ msgid "Pag:" #~ msgstr "Plač:" diff --git a/l10n_it_account/models/account_tax.py b/l10n_it_account/models/account_tax.py index d7419350b94c..b0c6344b9cf6 100644 --- a/l10n_it_account/models/account_tax.py +++ b/l10n_it_account/models/account_tax.py @@ -6,13 +6,7 @@ class AccountTax(models.Model): _inherit = "account.tax" - cee_type = fields.Selection( - [("sale", "Sale"), ("purchase", "Purchase")], - string="Include in VAT register", - help="Use in the case of tax with 'VAT integration'. This " - "specifies the VAT register (sales / purchases) where the " - "tax must be computed.", - ) + # TODO remove? parent_tax_ids = fields.Many2many( "account.tax", "account_tax_filiation_rel", @@ -186,24 +180,11 @@ def _compute_totals_tax(self, data): else: # TODO remove? base_balance = tax.base_balance - tax_balance = 0 deductible = 0 undeductible = 0 for child in tax.children_tax_ids: child_balance = child.balance - if ( - data["registry_type"] == "customer" and child.cee_type == "sale" - ) or ( - data["registry_type"] == "supplier" and child.cee_type == "purchase" - ): - # Prendo la parte di competenza di ogni registro e lo - # sommo sempre - child_balance = child_balance - - elif child.cee_type: - continue - tax_balance += child_balance account_ids = ( child.mapped("invoice_repartition_line_ids.account_id") diff --git a/l10n_it_account/static/description/index.html b/l10n_it_account/static/description/index.html index 0750b71d4d97..3cbdc2b20865 100644 --- a/l10n_it_account/static/description/index.html +++ b/l10n_it_account/static/description/index.html @@ -1,4 +1,3 @@ - @@ -367,7 +366,7 @@

    ITA - Contabilità base

    !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:6e2a9c1746e6c5cb42930fe967cf804612ca6f3093713ec2eec9139d2e307ca7 +!! source digest: sha256:9c137473c26de3da14f21fcc07e0bfd00ddae6449913d9c9c4285f742b4cb0ef !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

    Production/Stable License: AGPL-3 OCA/l10n-italy Translate me on Weblate Try me on Runboat

    Italiano

    diff --git a/l10n_it_account_balance_eu/README.rst b/l10n_it_account_balance_eu/README.rst index fab85212eebb..da2d4b3b2acf 100644 --- a/l10n_it_account_balance_eu/README.rst +++ b/l10n_it_account_balance_eu/README.rst @@ -7,7 +7,7 @@ ITA - Bilancio UE con XBRL !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:3e738184140e1cdef6ba77a61cb7b20f251b8f95be3bbb4be5264a74e5f3f000 + !! source digest: sha256:41f2a73e58254d1eb1db746edd91ed428fa978858ecd6bff18dd969f21398cda !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png diff --git a/l10n_it_account_balance_eu/__manifest__.py b/l10n_it_account_balance_eu/__manifest__.py index 6157f610e62c..727e9fded621 100644 --- a/l10n_it_account_balance_eu/__manifest__.py +++ b/l10n_it_account_balance_eu/__manifest__.py @@ -5,7 +5,7 @@ { "name": "ITA - Bilancio UE con XBRL", - "version": "14.0.1.0.0", + "version": "14.0.1.0.1", "category": "Localization/Italy", "development_status": "Alpha", "license": "AGPL-3", diff --git a/l10n_it_account_balance_eu/i18n/it.po b/l10n_it_account_balance_eu/i18n/it.po index 7d793c676b4a..e6436d49c842 100644 --- a/l10n_it_account_balance_eu/i18n/it.po +++ b/l10n_it_account_balance_eu/i18n/it.po @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: Odoo Server 14.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-03-20 09:39+0000\n" -"PO-Revision-Date: 2023-10-12 09:41+0000\n" +"PO-Revision-Date: 2024-03-22 09:34+0000\n" "Last-Translator: mymage \n" "Language-Team: \n" "Language: it\n" @@ -113,7 +113,7 @@ msgstr "Saldo" #. module: l10n_it_account_balance_eu #: model:ir.model.fields.selection,name:l10n_it_account_balance_eu.selection__account_balance_eu__zone_bal__pa msgid "Assets" -msgstr "Attivo" +msgstr "Attività" #. module: l10n_it_account_balance_eu #: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_log__balance_id @@ -191,7 +191,7 @@ msgstr "Azienda" #. module: l10n_it_account_balance_eu #: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__company_name msgid "Company Name" -msgstr "Ragione Sociale" +msgstr "Nome azienda" #. module: l10n_it_account_balance_eu #: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu__long_desc @@ -230,7 +230,7 @@ msgstr "Valuta" #. module: l10n_it_account_balance_eu #: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__date_range_id msgid "Date range" -msgstr "Intervallo di date" +msgstr "Intervallo date" #. module: l10n_it_account_balance_eu #: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_account__account_balance_eu_debit_id diff --git a/l10n_it_account_balance_eu/static/description/index.html b/l10n_it_account_balance_eu/static/description/index.html index f881d3ee4773..427991467a13 100644 --- a/l10n_it_account_balance_eu/static/description/index.html +++ b/l10n_it_account_balance_eu/static/description/index.html @@ -1,4 +1,3 @@ - @@ -367,7 +366,7 @@

    ITA - Bilancio UE con XBRL

    !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:3e738184140e1cdef6ba77a61cb7b20f251b8f95be3bbb4be5264a74e5f3f000 +!! source digest: sha256:41f2a73e58254d1eb1db746edd91ed428fa978858ecd6bff18dd969f21398cda !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

    Alpha License: AGPL-3 OCA/l10n-italy Translate me on Weblate Try me on Runboat

    Italiano

    diff --git a/l10n_it_account_balance_eu/static/src/js/client_action.js b/l10n_it_account_balance_eu/static/src/js/client_action.js index 56436bf51efc..64753a2b529c 100644 --- a/l10n_it_account_balance_eu/static/src/js/client_action.js +++ b/l10n_it_account_balance_eu/static/src/js/client_action.js @@ -32,7 +32,7 @@ odoo.define("l10n_it_account_balance_eu.client_action", function (require) { type: "ir.actions.report", report_type: "xlsx", report_name: "l10n_it_account_balance_eu.balance_eu_xlsx_report", - report_file: this._get_xlsx_name(this.report_file), + report_file: "l10n_it_account_balance_eu.balance_eu_xlsx_report", data: this.data, context: this.context, display_name: this.title, @@ -40,18 +40,6 @@ odoo.define("l10n_it_account_balance_eu.client_action", function (require) { return this.do_action(action); }, - /** - * @param {String} str - * @returns {String} - */ - _get_xlsx_name: function (str) { - if (!_.isString(str)) { - return str; - } - const parts = str.split("."); - return `a_f_r.report_${parts[parts.length - 1]}_xlsx`; - }, - on_click_xbrl: function () { const action = { name: this.name, diff --git a/l10n_it_asset_history_import/i18n/it.po b/l10n_it_asset_history_import/i18n/it.po index 9fa0f4066a15..d5bd5434d55d 100644 --- a/l10n_it_asset_history_import/i18n/it.po +++ b/l10n_it_asset_history_import/i18n/it.po @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: Odoo Server 14.0+e\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-03-22 16:00+0000\n" -"PO-Revision-Date: 2023-12-24 19:42+0000\n" +"PO-Revision-Date: 2024-04-15 08:35+0000\n" "Last-Translator: mymage \n" "Language-Team: \n" "Language: it\n" @@ -36,7 +36,7 @@ msgstr "Importi" #. module: l10n_it_asset_history_import #: model:ir.model,name:l10n_it_asset_history_import.model_asset_category msgid "Asset Category" -msgstr "Categoria cespiti" +msgstr "Categoria cespite" #. module: l10n_it_asset_history_import #: code:addons/l10n_it_asset_history_import/wizards/asset_history_import.py:0 @@ -53,12 +53,12 @@ msgstr "Codice cespite" #. module: l10n_it_asset_history_import #: model:ir.model,name:l10n_it_asset_history_import.model_asset_depreciation_mode msgid "Asset Depreciation Mode" -msgstr "Modalità ammortamento cespiti" +msgstr "Metodo ammortamento cespite" #. module: l10n_it_asset_history_import #: model:ir.model,name:l10n_it_asset_history_import.model_asset_depreciation_type msgid "Asset Depreciation Type" -msgstr "Natura Amm." +msgstr "Natura ammortamento cespite" #. module: l10n_it_asset_history_import #: code:addons/l10n_it_asset_history_import/wizards/asset_history_import.py:0 diff --git a/l10n_it_ateco/i18n/it.po b/l10n_it_ateco/i18n/it.po index 68a2f3417716..8da8aee4f086 100644 --- a/l10n_it_ateco/i18n/it.po +++ b/l10n_it_ateco/i18n/it.po @@ -7,14 +7,15 @@ msgstr "" "Project-Id-Version: Odoo Server 12.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-03-20 08:48+0000\n" -"PO-Revision-Date: 2020-03-20 08:48+0000\n" -"Last-Translator: <>\n" +"PO-Revision-Date: 2024-02-16 17:46+0000\n" +"Last-Translator: mymage \n" "Language-Team: \n" -"Language: \n" +"Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Plural-Forms: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.17\n" #. module: l10n_it_ateco #: model:ir.model,name:l10n_it_ateco.model_ateco_category @@ -101,7 +102,7 @@ msgstr "Nome" #. module: l10n_it_ateco #: model:ir.model.fields,field_description:l10n_it_ateco.field_ateco_category__parent_id msgid "Parent Category" -msgstr "Categoria madre" +msgstr "Categoria padre" #. module: l10n_it_ateco #: model:ir.model.fields,field_description:l10n_it_ateco.field_ateco_category__partner_ids diff --git a/l10n_it_central_journal_reportlab/README.rst b/l10n_it_central_journal_reportlab/README.rst index 698edaa11e94..fd69f4bb2828 100644 --- a/l10n_it_central_journal_reportlab/README.rst +++ b/l10n_it_central_journal_reportlab/README.rst @@ -7,7 +7,7 @@ ITA - Libro giornale - Reportlab !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:2e5e8c53058faadfc2d7c63c5315894bae941e5d0304d16b966460065ae239ee + !! source digest: sha256:40a460fde02c6ae3efa5c2554ac5b1148177b699708845d1a065d7b38e3fee01 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/l10n_it_central_journal_reportlab/__manifest__.py b/l10n_it_central_journal_reportlab/__manifest__.py index c08d7603072b..101a5d357db5 100644 --- a/l10n_it_central_journal_reportlab/__manifest__.py +++ b/l10n_it_central_journal_reportlab/__manifest__.py @@ -3,7 +3,7 @@ { "name": "ITA - Libro giornale - Reportlab", - "version": "14.0.1.0.4", + "version": "14.0.1.1.0", "development_status": "Beta", "category": "Localization/Italy", "author": "Gianmarco Conte - Dinamiche Aziendali srl, " diff --git a/l10n_it_central_journal_reportlab/i18n/it.po b/l10n_it_central_journal_reportlab/i18n/it.po index cbe93f3be9ee..6dd5cd921d0c 100644 --- a/l10n_it_central_journal_reportlab/i18n/it.po +++ b/l10n_it_central_journal_reportlab/i18n/it.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 14.0\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2023-10-13 10:18+0000\n" +"PO-Revision-Date: 2024-03-04 07:40+0000\n" "Last-Translator: mymage \n" "Language-Team: none\n" "Language: it\n" @@ -16,6 +16,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 4.17\n" +#. module: l10n_it_central_journal_reportlab +#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0 +#, python-format +msgid " - Account Central Journal" +msgstr " - Libro giornale contabile" + #. module: l10n_it_central_journal_reportlab #: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0 #, python-format diff --git a/l10n_it_central_journal_reportlab/i18n/l10n_it_central_journal_reportlab.pot b/l10n_it_central_journal_reportlab/i18n/l10n_it_central_journal_reportlab.pot index 8659e948f688..0c7ce16852c4 100644 --- a/l10n_it_central_journal_reportlab/i18n/l10n_it_central_journal_reportlab.pot +++ b/l10n_it_central_journal_reportlab/i18n/l10n_it_central_journal_reportlab.pot @@ -13,6 +13,12 @@ msgstr "" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" +#. module: l10n_it_central_journal_reportlab +#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0 +#, python-format +msgid " - Account Central Journal" +msgstr "" + #. module: l10n_it_central_journal_reportlab #: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0 #, python-format diff --git a/l10n_it_central_journal_reportlab/models/account.py b/l10n_it_central_journal_reportlab/models/account.py index af8befde1c53..604e657467e4 100644 --- a/l10n_it_central_journal_reportlab/models/account.py +++ b/l10n_it_central_journal_reportlab/models/account.py @@ -14,7 +14,7 @@ class DateRangeInherit(models.Model): date_last_print = fields.Date("Last printed date") progressive_page_number = fields.Integer("Progressive of the page") - progressive_line_number = fields.Integer("Progressive line") + progressive_line_number = fields.Integer("Last printed line") progressive_credit = fields.Float( "Progressive Credit", digits="Account", diff --git a/l10n_it_central_journal_reportlab/static/description/index.html b/l10n_it_central_journal_reportlab/static/description/index.html index bc5dbd9b4ed2..2869deaa84d7 100644 --- a/l10n_it_central_journal_reportlab/static/description/index.html +++ b/l10n_it_central_journal_reportlab/static/description/index.html @@ -366,7 +366,7 @@

    ITA - Libro giornale - Reportlab

    !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:2e5e8c53058faadfc2d7c63c5315894bae941e5d0304d16b966460065ae239ee +!! source digest: sha256:40a460fde02c6ae3efa5c2554ac5b1148177b699708845d1a065d7b38e3fee01 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

    Beta License: AGPL-3 OCA/l10n-italy Translate me on Weblate Try me on Runboat

    Italiano

    diff --git a/l10n_it_central_journal_reportlab/wizard/print_giornale.py b/l10n_it_central_journal_reportlab/wizard/print_giornale.py index 5c67f72c83e9..1b5ce1a85709 100644 --- a/l10n_it_central_journal_reportlab/wizard/print_giornale.py +++ b/l10n_it_central_journal_reportlab/wizard/print_giornale.py @@ -113,15 +113,15 @@ def on_change_daterange_reportlab(self): self.date_move_line_from = date_start self.date_move_line_from_view = date_start self.date_move_line_to = date_end - if self.daterange_id.progressive_line_number != 0: - self.start_row = self.daterange_id.progressive_line_number + 1 - else: + if self.daterange_id.progressive_line_number: self.start_row = self.daterange_id.progressive_line_number self.progressive_debit2 = self.daterange_id.progressive_debit self.progressive_credit = self.daterange_id.progressive_credit if self.last_def_date_print == self.daterange_id.date_end: self.date_move_line_from_view = self.last_def_date_print + if self.daterange_id.progressive_page_number: + self.fiscal_page_base = self.daterange_id.progressive_page_number def get_grupped_line_reportlab_ids(self): wizard = self @@ -203,7 +203,11 @@ def _get_account_name_reportlab(self, line): def get_template_header_report_giornale(self, report, height_available): report.setFont("Helvetica-Bold", 12) height_available -= gap - report.drawString(margin_left, height_available, self.company_id.name) + report.drawString( + margin_left, + height_available, + self.company_id.name + _(" - Account Central Journal"), + ) report.setFont("Helvetica", 10) text = "" if self.company_id.street: @@ -224,6 +228,7 @@ def get_template_footer_report_giornale(self, report): page_num = report.getPageNumber() + self.fiscal_page_base page_text = _("Page: %s / %s" % (self.year_footer, page_num)) report.drawString(margin_left, margin_bottom + 12, page_text) + return page_num def get_styles_report_giornale_line(self): style_header = ParagraphStyle("style_header") @@ -364,7 +369,7 @@ def get_grupped_final_tables_report_giornale( tables.append( Table(line_data, colWidths=colwidths, style=style_table) ) - return tables, list_balance + return tables, list_balance, start_row def get_final_tables_report_giornale( self, move_line_ids, tables, start_row, width_available @@ -407,7 +412,7 @@ def get_final_tables_report_giornale( ) else: tables.append(Table(line_data, colWidths=colwidths, style=style_table)) - return tables, list_balance + return tables, list_balance, start_row def get_balance_data_report_giornale(self, tot_debit, tot_credit, final=False): style_name = self.get_styles_report_giornale_line()["style_name"] @@ -460,14 +465,18 @@ def create_report_giornale_reportlab(self): list_grupped_line = self.get_grupped_line_reportlab_ids() if not list_grupped_line: raise UserError(_("No documents found in the current selection")) - final_tables, list_balance = self.get_grupped_final_tables_report_giornale( + ( + final_tables, + list_balance, + end_row, + ) = self.get_grupped_final_tables_report_giornale( list_grupped_line, tables, start_row, width_available ) else: move_line_ids = self.get_line_reportlab_ids() if not move_line_ids: raise UserError(_("No documents found in the current selection")) - final_tables, list_balance = self.get_final_tables_report_giornale( + final_tables, list_balance, end_row = self.get_final_tables_report_giornale( move_line_ids, tables, start_row, width_available ) @@ -544,14 +553,14 @@ def create_report_giornale_reportlab(self): header_table.drawOn(report, margin_left, height_available) height_available -= header_table_height + final_balance_table_height final_balance_table.drawOn(report, margin_left, height_available) - self.get_template_footer_report_giornale(report) + page_num = self.get_template_footer_report_giornale(report) report.showPage() report.save() file_base64 = base64.b64encode(pdf_bytes.getvalue()) self.write({"report_giornale": file_base64}) - return start_row, tot_debit, tot_credit + return end_row, tot_debit, tot_credit, page_num def print_giornale_reportlab(self): self.create_report_giornale_reportlab() @@ -572,7 +581,12 @@ def print_giornale_reportlab(self): } def print_giornale_reportlab_final(self): - end_row, end_debit, end_credit = self.create_report_giornale_reportlab() + ( + end_row, + end_debit, + end_credit, + end_page, + ) = self.create_report_giornale_reportlab() if ( not self.company_id.period_lock_date @@ -582,11 +596,13 @@ def print_giornale_reportlab_final(self): daterange_vals = { "date_last_print": self.date_move_line_to, + "progressive_page_number": end_page, "progressive_line_number": end_row, "progressive_debit": end_debit, "progressive_credit": end_credit, } self.daterange_id.write(daterange_vals) + self.on_change_daterange_reportlab() model_data_obj = self.env["ir.model.data"] view_rec = model_data_obj.get_object_reference( diff --git a/l10n_it_declaration_of_intent/README.rst b/l10n_it_declaration_of_intent/README.rst index 7a1944898c17..a4bc2e7acd4e 100644 --- a/l10n_it_declaration_of_intent/README.rst +++ b/l10n_it_declaration_of_intent/README.rst @@ -7,7 +7,7 @@ ITA - Dichiarazione di intento !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:d702a69091126fd403ab99d9db2e1238eb71231ff842faa03d81e5fd2d75be54 + !! source digest: sha256:643e8ccb9fd6c61fccdcfc77814bf89d510bd0e3552b00aedb0bfb9fd3573b02 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/l10n_it_declaration_of_intent/__manifest__.py b/l10n_it_declaration_of_intent/__manifest__.py index 4b11386fa3b2..2f9c54a5c992 100644 --- a/l10n_it_declaration_of_intent/__manifest__.py +++ b/l10n_it_declaration_of_intent/__manifest__.py @@ -6,7 +6,7 @@ { "name": "ITA - Dichiarazione di intento", "summary": "Gestione dichiarazioni di intento", - "version": "14.0.1.1.7", + "version": "14.0.1.1.15", "license": "AGPL-3", "author": "Francesco Apruzzese, Sergio Corato, Glauco Prina, Lara Baggio, " "Odoo Community Association (OCA)", diff --git a/l10n_it_declaration_of_intent/i18n/it.po b/l10n_it_declaration_of_intent/i18n/it.po index 2b394282ad6e..d4e2b74ead91 100644 --- a/l10n_it_declaration_of_intent/i18n/it.po +++ b/l10n_it_declaration_of_intent/i18n/it.po @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: Odoo Server 14.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-15 14:06+0000\n" -"PO-Revision-Date: 2023-04-19 15:34+0000\n" +"PO-Revision-Date: 2024-04-16 16:45+0000\n" "Last-Translator: mymage \n" "Language-Team: \n" "Language: it\n" @@ -15,13 +15,18 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.14.1\n" +"X-Generator: Weblate 4.17\n" #. module: l10n_it_declaration_of_intent #: model_terms:ir.ui.view,arch_db:l10n_it_declaration_of_intent.declaration_of_intent_form msgid "Accounting" msgstr "Contabilità" +#. module: l10n_it_declaration_of_intent +#: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_l10n_it_declaration_of_intent_yearly_limit__actual_used_amount +msgid "Actual Used Amount" +msgstr "Importo effettivo utilizzato" + #. module: l10n_it_declaration_of_intent #: code:addons/l10n_it_declaration_of_intent/models/declaration.py:0 #, python-format @@ -168,7 +173,6 @@ msgstr "Dichiarazioni d'intento" #: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_account_payment__declaration_of_intent_ids #: model:ir.ui.menu,name:l10n_it_declaration_of_intent.declaration_of_intent_menu #: model_terms:ir.ui.view,arch_db:l10n_it_declaration_of_intent.declaration_of_intent_search -#: model_terms:ir.ui.view,arch_db:l10n_it_declaration_of_intent.declaration_of_intent_view_company_form msgid "Declarations of intent" msgstr "Dichiarazioni d'intento" @@ -206,7 +210,6 @@ msgstr "Dettagli della dichiarazione d'intento" #: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_l10n_it_declaration_of_intent_declaration_line__display_name #: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_l10n_it_declaration_of_intent_select_declarations__display_name #: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_l10n_it_declaration_of_intent_yearly_limit__display_name -#: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_product_product__display_name #: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_res_company__display_name #: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_sale_order__display_name msgid "Display Name" @@ -232,6 +235,11 @@ msgstr "Numero documento" msgid "Expired" msgstr "Scaduta" +#. module: l10n_it_declaration_of_intent +#: model_terms:ir.ui.view,arch_db:l10n_it_declaration_of_intent.declaration_of_intent_view_company_form +msgid "Exporter Plafond" +msgstr "Plafond esportatore" + #. module: l10n_it_declaration_of_intent #: model:ir.model,name:l10n_it_declaration_of_intent.model_account_fiscal_position #: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_l10n_it_declaration_of_intent_declaration__fiscal_position_id @@ -262,7 +270,6 @@ msgstr "Forza riapertura" #: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_l10n_it_declaration_of_intent_declaration_line__id #: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_l10n_it_declaration_of_intent_select_declarations__id #: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_l10n_it_declaration_of_intent_yearly_limit__id -#: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_product_product__id #: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_res_company__id #: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_sale_order__id msgid "ID" @@ -279,6 +286,11 @@ msgstr "Impossibile eliminare un documento con fatture collegate" msgid "Invoice" msgstr "Fattura" +#. module: l10n_it_declaration_of_intent +#: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_l10n_it_declaration_of_intent_yearly_limit__used_amount +msgid "Issued Declarations" +msgstr "Dichiarazioni emesse" + #. module: l10n_it_declaration_of_intent #: model:ir.model.fields.selection,name:l10n_it_declaration_of_intent.selection__l10n_it_declaration_of_intent_declaration__type__in msgid "Issued from company" @@ -302,7 +314,6 @@ msgstr "Movimento contabile" #: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_l10n_it_declaration_of_intent_declaration_line____last_update #: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_l10n_it_declaration_of_intent_select_declarations____last_update #: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_l10n_it_declaration_of_intent_yearly_limit____last_update -#: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_product_product____last_update #: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_res_company____last_update #: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_sale_order____last_update msgid "Last Modified on" @@ -326,7 +337,6 @@ msgstr "Ultimo aggiornamento il" #. module: l10n_it_declaration_of_intent #: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_l10n_it_declaration_of_intent_declaration__limit_amount -#: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_l10n_it_declaration_of_intent_yearly_limit__limit_amount msgid "Limit Amount" msgstr "Importo limite" @@ -348,7 +358,7 @@ msgstr "Righe" #. module: l10n_it_declaration_of_intent #: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_l10n_it_declaration_of_intent_declaration_line__move_line_ids msgid "Move Lines" -msgstr "Righe movimenti" +msgstr "Righe movimento" #. module: l10n_it_declaration_of_intent #: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_l10n_it_declaration_of_intent_declaration__number @@ -367,9 +377,9 @@ msgid "Partner" msgstr "Partner" #. module: l10n_it_declaration_of_intent -#: model:ir.model,name:l10n_it_declaration_of_intent.model_product_product -msgid "Product" -msgstr "Prodotto" +#: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_l10n_it_declaration_of_intent_yearly_limit__limit_amount +msgid "Plafond" +msgstr "plafond" #. module: l10n_it_declaration_of_intent #: model:ir.model.fields.selection,name:l10n_it_declaration_of_intent.selection__l10n_it_declaration_of_intent_declaration__type__out @@ -432,7 +442,6 @@ msgstr "Tipo" #. module: l10n_it_declaration_of_intent #: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_l10n_it_declaration_of_intent_declaration__used_amount -#: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_l10n_it_declaration_of_intent_yearly_limit__used_amount msgid "Used Amount" msgstr "Importo usato" @@ -467,6 +476,9 @@ msgstr "Limite annuale per le dichiarazioni" msgid "or" msgstr "o" +#~ msgid "Product" +#~ msgstr "Prodotto" + #, python-format #~ msgid "" #~ "\n" diff --git a/l10n_it_declaration_of_intent/i18n/l10n_it_declaration_of_intent.pot b/l10n_it_declaration_of_intent/i18n/l10n_it_declaration_of_intent.pot index 47901390babc..58f3ccdfe0d2 100644 --- a/l10n_it_declaration_of_intent/i18n/l10n_it_declaration_of_intent.pot +++ b/l10n_it_declaration_of_intent/i18n/l10n_it_declaration_of_intent.pot @@ -18,6 +18,11 @@ msgstr "" msgid "Accounting" msgstr "" +#. module: l10n_it_declaration_of_intent +#: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_l10n_it_declaration_of_intent_yearly_limit__actual_used_amount +msgid "Actual Used Amount" +msgstr "" + #. module: l10n_it_declaration_of_intent #: code:addons/l10n_it_declaration_of_intent/models/declaration.py:0 #, python-format @@ -159,7 +164,6 @@ msgstr "" #: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_account_payment__declaration_of_intent_ids #: model:ir.ui.menu,name:l10n_it_declaration_of_intent.declaration_of_intent_menu #: model_terms:ir.ui.view,arch_db:l10n_it_declaration_of_intent.declaration_of_intent_search -#: model_terms:ir.ui.view,arch_db:l10n_it_declaration_of_intent.declaration_of_intent_view_company_form msgid "Declarations of intent" msgstr "" @@ -193,7 +197,6 @@ msgstr "" #: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_l10n_it_declaration_of_intent_declaration_line__display_name #: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_l10n_it_declaration_of_intent_select_declarations__display_name #: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_l10n_it_declaration_of_intent_yearly_limit__display_name -#: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_product_product__display_name #: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_res_company__display_name #: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_sale_order__display_name msgid "Display Name" @@ -219,6 +222,11 @@ msgstr "" msgid "Expired" msgstr "" +#. module: l10n_it_declaration_of_intent +#: model_terms:ir.ui.view,arch_db:l10n_it_declaration_of_intent.declaration_of_intent_view_company_form +msgid "Exporter Plafond" +msgstr "" + #. module: l10n_it_declaration_of_intent #: model:ir.model,name:l10n_it_declaration_of_intent.model_account_fiscal_position #: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_l10n_it_declaration_of_intent_declaration__fiscal_position_id @@ -249,7 +257,6 @@ msgstr "" #: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_l10n_it_declaration_of_intent_declaration_line__id #: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_l10n_it_declaration_of_intent_select_declarations__id #: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_l10n_it_declaration_of_intent_yearly_limit__id -#: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_product_product__id #: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_res_company__id #: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_sale_order__id msgid "ID" @@ -266,6 +273,11 @@ msgstr "" msgid "Invoice" msgstr "" +#. module: l10n_it_declaration_of_intent +#: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_l10n_it_declaration_of_intent_yearly_limit__used_amount +msgid "Issued Declarations" +msgstr "" + #. module: l10n_it_declaration_of_intent #: model:ir.model.fields.selection,name:l10n_it_declaration_of_intent.selection__l10n_it_declaration_of_intent_declaration__type__in msgid "Issued from company" @@ -289,7 +301,6 @@ msgstr "" #: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_l10n_it_declaration_of_intent_declaration_line____last_update #: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_l10n_it_declaration_of_intent_select_declarations____last_update #: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_l10n_it_declaration_of_intent_yearly_limit____last_update -#: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_product_product____last_update #: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_res_company____last_update #: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_sale_order____last_update msgid "Last Modified on" @@ -313,7 +324,6 @@ msgstr "" #. module: l10n_it_declaration_of_intent #: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_l10n_it_declaration_of_intent_declaration__limit_amount -#: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_l10n_it_declaration_of_intent_yearly_limit__limit_amount msgid "Limit Amount" msgstr "" @@ -352,8 +362,8 @@ msgid "Partner" msgstr "" #. module: l10n_it_declaration_of_intent -#: model:ir.model,name:l10n_it_declaration_of_intent.model_product_product -msgid "Product" +#: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_l10n_it_declaration_of_intent_yearly_limit__limit_amount +msgid "Plafond" msgstr "" #. module: l10n_it_declaration_of_intent @@ -417,7 +427,6 @@ msgstr "" #. module: l10n_it_declaration_of_intent #: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_l10n_it_declaration_of_intent_declaration__used_amount -#: model:ir.model.fields,field_description:l10n_it_declaration_of_intent.field_l10n_it_declaration_of_intent_yearly_limit__used_amount msgid "Used Amount" msgstr "" diff --git a/l10n_it_declaration_of_intent/i18n/l10n_it_dichiarazione_intento.pot b/l10n_it_declaration_of_intent/i18n/l10n_it_dichiarazione_intento.pot deleted file mode 100644 index be353345e1be..000000000000 --- a/l10n_it_declaration_of_intent/i18n/l10n_it_dichiarazione_intento.pot +++ /dev/null @@ -1,453 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * l10n_it_dichiarazione_intento -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 14.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-15 14:09+0000\n" -"PO-Revision-Date: 2021-01-15 14:09+0000\n" -"Last-Translator: \n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: l10n_it_dichiarazione_intento -#: model_terms:ir.ui.view,arch_db:l10n_it_dichiarazione_intento.dichiarazione_intento_form -msgid "Accounting" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: code:addons/l10n_it_dichiarazione_intento/models/dichiarazione_intento.py:0 -#, python-format -msgid "" -"All taxes in declaration of intent must be used in fiscal position taxes" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento_line__amount -msgid "Amount" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento__available_amount -msgid "Available Amount" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: code:addons/l10n_it_dichiarazione_intento/models/account_invoice.py:0 -#: code:addons/l10n_it_dichiarazione_intento/models/account_invoice.py:0 -#, python-format -msgid "" -"Available plafond insufficent.\n" -"Excess value: %s" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento_line__base_amount -msgid "Base Amount" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model_terms:ir.ui.view,arch_db:l10n_it_dichiarazione_intento.select_manually_declarations_wizard -msgid "Cancel" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model.fields.selection,name:l10n_it_dichiarazione_intento.selection__dichiarazione_intento__state__close -#: model_terms:ir.ui.view,arch_db:l10n_it_dichiarazione_intento.dichiarazione_intento_search -msgid "Close" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model,name:l10n_it_dichiarazione_intento.model_res_company -msgid "Companies" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento_yearly_limit__company_id -msgid "Company" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model_terms:ir.ui.view,arch_db:l10n_it_dichiarazione_intento.select_manually_declarations_wizard -msgid "Confirm" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento__create_uid -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento_line__create_uid -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento_yearly_limit__create_uid -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_select_manually_declarations__create_uid -msgid "Created by" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento__create_date -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento_line__create_date -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento_yearly_limit__create_date -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_select_manually_declarations__create_date -msgid "Created on" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento__currency_id -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento_line__currency_id -msgid "Currency" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento__date -msgid "Date" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento__date_end -msgid "Date End" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento_line__date_invoice -msgid "Date Invoice" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento__date_start -msgid "Date Start" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model.fields,help:l10n_it_dichiarazione_intento.field_dichiarazione_intento__partner_document_date -msgid "Date of partner's document" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento_line__dichiarazione_id -msgid "Declaration" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model,name:l10n_it_dichiarazione_intento.model_dichiarazione_intento -msgid "Declaration of intent" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: code:addons/l10n_it_dichiarazione_intento/models/account_invoice.py:0 -#, python-format -msgid "" -"Declaration of intent not found. Add new declaration or change fiscal " -"position and verify applied tax" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_res_company__dichiarazione_yearly_limit_ids -msgid "Declaration yearly limit" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_select_manually_declarations__declaration_ids -msgid "Declarations of Intent" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.actions.act_window,name:l10n_it_dichiarazione_intento.dichiarazione_intento_action -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_account_bank_statement_line__dichiarazione_intento_ids -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_account_move__dichiarazione_intento_ids -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_account_payment__dichiarazione_intento_ids -#: model:ir.ui.menu,name:l10n_it_dichiarazione_intento.dichiarazione_intento_menu -#: model_terms:ir.ui.view,arch_db:l10n_it_dichiarazione_intento.dichiarazione_intento_search -#: model_terms:ir.ui.view,arch_db:l10n_it_dichiarazione_intento.dichiarazione_intento_view_company_form -msgid "Declarations of intent" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: code:addons/l10n_it_dichiarazione_intento/models/dichiarazione_intento.py:0 -#, python-format -msgid "Define a yearly plafond for in documents in your company settings" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: code:addons/l10n_it_dichiarazione_intento/models/account.py:0 -#, python-format -msgid "Define taxes for fiscal position %s valid for declaration of intent" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model_terms:ir.ui.view,arch_db:l10n_it_dichiarazione_intento.dichiarazione_intento_form -msgid "Details" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model,name:l10n_it_dichiarazione_intento.model_dichiarazione_intento_line -msgid "Details of declaration of intent" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_account_fiscal_position__display_name -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_account_move__display_name -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_account_move_line__display_name -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento__display_name -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento_line__display_name -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento_yearly_limit__display_name -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_product_product__display_name -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_res_company__display_name -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_sale_order__display_name -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_select_manually_declarations__display_name -msgid "Display Name" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model_terms:ir.ui.view,arch_db:l10n_it_dichiarazione_intento.dichiarazione_intento_form -msgid "Document Amount" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento__partner_document_date -msgid "Document Date" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento__partner_document_number -msgid "Document Number" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model.fields.selection,name:l10n_it_dichiarazione_intento.selection__dichiarazione_intento__state__expired -msgid "Expired" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model,name:l10n_it_dichiarazione_intento.model_account_fiscal_position -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento__fiscal_position_id -msgid "Fiscal Position" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento__force_close -#: model_terms:ir.ui.view,arch_db:l10n_it_dichiarazione_intento.dichiarazione_intento_form -msgid "Force Close" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_account_move_line__force_dichiarazione_intento_id -msgid "Force Declaration of Intent" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model_terms:ir.ui.view,arch_db:l10n_it_dichiarazione_intento.dichiarazione_intento_form -msgid "Force Reopen" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_account_fiscal_position__id -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_account_move__id -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_account_move_line__id -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento__id -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento_line__id -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento_yearly_limit__id -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_product_product__id -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_res_company__id -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_sale_order__id -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_select_manually_declarations__id -msgid "ID" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: code:addons/l10n_it_dichiarazione_intento/models/dichiarazione_intento.py:0 -#, python-format -msgid "Impossible to delete a document with linked invoices" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento_line__invoice_id -msgid "Invoice" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model.fields.selection,name:l10n_it_dichiarazione_intento.selection__dichiarazione_intento__type__in -msgid "Issued from company" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model,name:l10n_it_dichiarazione_intento.model_account_move -msgid "Journal Entry" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model,name:l10n_it_dichiarazione_intento.model_account_move_line -msgid "Journal Item" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_account_fiscal_position____last_update -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_account_move____last_update -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_account_move_line____last_update -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento____last_update -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento_line____last_update -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento_yearly_limit____last_update -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_product_product____last_update -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_res_company____last_update -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_sale_order____last_update -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_select_manually_declarations____last_update -msgid "Last Modified on" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento__write_uid -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento_line__write_uid -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento_yearly_limit__write_uid -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_select_manually_declarations__write_uid -msgid "Last Updated by" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento__write_date -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento_line__write_date -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento_yearly_limit__write_date -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_select_manually_declarations__write_date -msgid "Last Updated on" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento__limit_amount -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento_yearly_limit__limit_amount -msgid "Limit Amount" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: code:addons/l10n_it_dichiarazione_intento/models/dichiarazione_intento.py:0 -#, python-format -msgid "" -"Limit passed for declaration %s.\n" -"Excess value: %s%s" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento__line_ids -msgid "Lines" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento_line__move_line_ids -msgid "Move Lines" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento__number -msgid "Number" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model.fields,help:l10n_it_dichiarazione_intento.field_dichiarazione_intento__partner_document_number -msgid "Number of partner's document" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento__partner_id -#: model_terms:ir.ui.view,arch_db:l10n_it_dichiarazione_intento.dichiarazione_intento_search -msgid "Partner" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model,name:l10n_it_dichiarazione_intento.model_product_product -msgid "Product" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model.fields.selection,name:l10n_it_dichiarazione_intento.selection__dichiarazione_intento__type__out -msgid "Received from customers" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model_terms:ir.ui.view,arch_db:l10n_it_dichiarazione_intento.dichiarazione_intento_form -msgid "Refs" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model,name:l10n_it_dichiarazione_intento.model_sale_order -msgid "Sales Order" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model_terms:ir.ui.view,arch_db:l10n_it_dichiarazione_intento.dichiarazione_intento_invoice_form -msgid "Select Manually" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.actions.act_window,name:l10n_it_dichiarazione_intento.select_manually_declarations_action -#: model_terms:ir.ui.view,arch_db:l10n_it_dichiarazione_intento.select_manually_declarations_wizard -msgid "Select Manually Declarations" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model,name:l10n_it_dichiarazione_intento.model_select_manually_declarations -msgid "Set declaration of intent manually on invoice" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento__state -#: model_terms:ir.ui.view,arch_db:l10n_it_dichiarazione_intento.dichiarazione_intento_search -msgid "State" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento__taxes_ids -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento_line__taxes_ids -msgid "Taxes" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento__telematic_protocol -msgid "Telematic Protocol" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: code:addons/l10n_it_dichiarazione_intento/models/dichiarazione_intento.py:0 -#, python-format -msgid "Total of documents exceed yearly limit" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento__type -msgid "Type" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento__used_amount -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento_yearly_limit__used_amount -msgid "Used Amount" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model.fields.selection,name:l10n_it_dichiarazione_intento.selection__dichiarazione_intento__state__valid -#: model_terms:ir.ui.view,arch_db:l10n_it_dichiarazione_intento.dichiarazione_intento_search -msgid "Valid" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model_terms:ir.ui.view,arch_db:l10n_it_dichiarazione_intento.dichiarazione_intento_form -msgid "Valid Period" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_account_fiscal_position__valid_for_dichiarazione_intento -msgid "Valid for declaration of intent" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model.fields,field_description:l10n_it_dichiarazione_intento.field_dichiarazione_intento_yearly_limit__year -msgid "Year" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model:ir.model,name:l10n_it_dichiarazione_intento.model_dichiarazione_intento_yearly_limit -msgid "Yearly limit for declarations" -msgstr "" - -#. module: l10n_it_dichiarazione_intento -#: model_terms:ir.ui.view,arch_db:l10n_it_dichiarazione_intento.select_manually_declarations_wizard -msgid "or" -msgstr "" \ No newline at end of file diff --git a/l10n_it_declaration_of_intent/models/__init__.py b/l10n_it_declaration_of_intent/models/__init__.py index 588c91f5c211..b7922be8fb9c 100644 --- a/l10n_it_declaration_of_intent/models/__init__.py +++ b/l10n_it_declaration_of_intent/models/__init__.py @@ -3,4 +3,3 @@ from . import company from . import account_move from . import sale -from . import product diff --git a/l10n_it_declaration_of_intent/models/account_move.py b/l10n_it_declaration_of_intent/models/account_move.py index fef619f1d133..b02c3a73c2f5 100644 --- a/l10n_it_declaration_of_intent/models/account_move.py +++ b/l10n_it_declaration_of_intent/models/account_move.py @@ -8,7 +8,6 @@ class AccountMove(models.Model): - _inherit = "account.move" declaration_of_intent_ids = fields.Many2many( @@ -145,15 +144,9 @@ def update_declarations(self, declarations, grouped_lines): if is_sale_document: cmt = self.narration or "" msg = ( - "Vostra dichiarazione d'intento nr %s del %s, " - "nostro protocollo nr %s del %s, " + "Vostra dichiarazione d'intento del %s, " "protocollo telematico nr %s." % ( - declaration.partner_document_number, - format_date( - self.env, declaration.partner_document_date - ), - declaration.number, format_date(self.env, declaration.date), declaration.telematic_protocol, ) @@ -230,7 +223,7 @@ def check_declarations_amounts(self, declarations): declarations_residual = sum( [declarations_amounts[da] for da in declarations_amounts] ) - if declarations_residual < 0: + if self.currency_id.compare_amounts(declarations_residual, 0) == -1: raise UserError( _("Available plafond insufficent.\n" "Excess value: %s") % (abs(declarations_residual)) @@ -242,7 +235,12 @@ def check_declarations_amounts(self, declarations): declaration = declaration_model.browse(declaration_id) # declarations_amounts contains residual, so, if > limit_amount, # used_amount went < 0 - if declarations_amounts[declaration_id] > declaration.limit_amount: + if ( + self.currency_id.compare_amounts( + declarations_amounts[declaration_id], declaration.limit_amount + ) + == 1 + ): excess = abs( declarations_amounts[declaration_id] - declaration.limit_amount ) @@ -253,6 +251,12 @@ def check_declarations_amounts(self, declarations): def get_declaration_residual_amounts(self, declarations): """Get residual amount for every `declarations`.""" + available_plafond = 0.0 + if self.move_type in ["in_invoice", "in_refund"]: + plafond = self.company_id.declaration_yearly_limit_ids.filtered( + lambda r: r.year == str(fields.first(declarations).date_start.year) + ) + available_plafond = plafond.limit_amount - plafond.actual_used_amount declarations_amounts = {} # If the tax amount is 0, then there is no line representing the tax # so there will be no line having tax_line_id. @@ -268,9 +272,18 @@ def get_declaration_residual_amounts(self, declarations): for declaration in declarations: if declaration.id not in declarations_amounts: - declarations_amounts[declaration.id] = declaration.available_amount + if ( + self.move_type in ["in_invoice", "in_refund"] + and declaration.available_amount > available_plafond + ): + declarations_amounts[declaration.id] = available_plafond + else: + declarations_amounts[ + declaration.id + ] = declaration.available_amount if any(tax in declaration.taxes_ids for tax in tax_line.tax_ids): declarations_amounts[declaration.id] -= amount + amount = 0.0 for declaration in declarations: # exclude amount from lines with invoice_id equals to self for line in declaration.line_ids.filtered(lambda l: l.invoice_id == self): @@ -290,7 +303,6 @@ def button_cancel(self): class AccountMoveLine(models.Model): - _inherit = "account.move.line" force_declaration_of_intent_id = fields.Many2one( diff --git a/l10n_it_declaration_of_intent/models/declaration.py b/l10n_it_declaration_of_intent/models/declaration.py index d5ce9e1294df..86acf18ef336 100644 --- a/l10n_it_declaration_of_intent/models/declaration.py +++ b/l10n_it_declaration_of_intent/models/declaration.py @@ -8,7 +8,6 @@ class DeclarationOfIntentYearlyLimit(models.Model): - _name = "l10n_it_declaration_of_intent.yearly_limit" _description = "Yearly limit for declarations" _order = "company_id, year desc" @@ -16,8 +15,14 @@ class DeclarationOfIntentYearlyLimit(models.Model): company_id = fields.Many2one("res.company", string="Company") year = fields.Char(required=True) - limit_amount = fields.Float() - used_amount = fields.Float(compute="_compute_used_amount") + limit_amount = fields.Float(string="Plafond") + # TODO align terms: used_amount > issued_declarations + used_amount = fields.Float( + string="Issued Declarations", compute="_compute_used_amount" + ) + actual_used_amount = fields.Float( + string="Actual Used Amount", compute="_compute_used_amount" + ) def _compute_used_amount(self): for record in self: @@ -31,10 +36,10 @@ def _compute_used_amount(self): ] ) record.used_amount = sum([d.limit_amount for d in declarations]) + record.actual_used_amount = sum([d.used_amount for d in declarations]) class DeclarationOfIntent(models.Model): - _name = "l10n_it_declaration_of_intent.declaration" _description = "Declaration of intent" _order = "date_start desc,date_end desc" @@ -55,10 +60,10 @@ def _default_currency(self): partner_id = fields.Many2one("res.partner", string="Partner", required=True) telematic_protocol = fields.Char(required=True) partner_document_number = fields.Char( - required=True, string="Document Number", help="Number of partner's document" + string="Document Number", help="Number of partner's document" ) partner_document_date = fields.Date( - required=True, string="Document Date", help="Date of partner's document" + string="Document Date", help="Date of partner's document" ) taxes_ids = fields.Many2many("account.tax", string="Taxes", required=True) used_amount = fields.Monetary(compute="_compute_amounts", store=True) @@ -120,7 +125,8 @@ def create(self, values): sum([d.limit_amount for d in declarations]) + values["limit_amount"] ) if actual_limit_total > plafond.limit_amount: - raise UserError(_("Total of documents exceed yearly limit")) + if plafond.limit_amount < plafond.actual_used_amount: + raise UserError(_("Total of documents exceed yearly limit")) # ----- Assign a number to declaration if values and not values.get("number", ""): values["number"] = self.env["ir.sequence"].next_by_code( @@ -255,7 +261,6 @@ def get_all_for_partner(self, type_d=None, partner_id=False, ignore_state=False) class DeclarationOfIntentLine(models.Model): - _name = "l10n_it_declaration_of_intent.declaration_line" _description = "Details of declaration of intent" diff --git a/l10n_it_declaration_of_intent/models/product.py b/l10n_it_declaration_of_intent/models/product.py deleted file mode 100644 index 101ef9959f38..000000000000 --- a/l10n_it_declaration_of_intent/models/product.py +++ /dev/null @@ -1,20 +0,0 @@ -# Copyright 2017 Francesco Apruzzese -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). - -from odoo import api, models - - -class ProductProduct(models.Model): - - _inherit = "product.product" - - @api.model - def _convert_prepared_anglosaxon_line(self, line, partner): - res = super(ProductProduct, self)._convert_prepared_anglosaxon_line( - line, partner - ) - if line.get("force_declaration_of_intent_id", False): - res["force_declaration_of_intent_id"] = line[ - "force_declaration_of_intent_id" - ] - return res diff --git a/l10n_it_declaration_of_intent/static/description/index.html b/l10n_it_declaration_of_intent/static/description/index.html index bc97c9efdd28..07e36044b505 100644 --- a/l10n_it_declaration_of_intent/static/description/index.html +++ b/l10n_it_declaration_of_intent/static/description/index.html @@ -1,4 +1,3 @@ - @@ -367,7 +366,7 @@

    ITA - Dichiarazione di intento

    !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:d702a69091126fd403ab99d9db2e1238eb71231ff842faa03d81e5fd2d75be54 +!! source digest: sha256:643e8ccb9fd6c61fccdcfc77814bf89d510bd0e3552b00aedb0bfb9fd3573b02 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

    Beta License: AGPL-3 OCA/l10n-italy Translate me on Weblate Try me on Runboat

    Italiano

    diff --git a/l10n_it_declaration_of_intent/tests/test_declaration_of_intent.py b/l10n_it_declaration_of_intent/tests/test_declaration_of_intent.py index dfc28d734a11..bfcbdb5b20eb 100644 --- a/l10n_it_declaration_of_intent/tests/test_declaration_of_intent.py +++ b/l10n_it_declaration_of_intent/tests/test_declaration_of_intent.py @@ -19,8 +19,6 @@ def _create_declaration(cls, partner, type_d): return cls.env["l10n_it_declaration_of_intent.declaration"].create( { "partner_id": partner.id, - "partner_document_number": "PartnerTest%s" % partner.id, - "partner_document_date": cls.today_date, "date": cls.today_date, "date_start": cls.today_date, "date_end": cls.today_date, @@ -353,8 +351,8 @@ def test_invoice_vendor_with_no_effect_on_declaration(self): def test_all_invoice_types(self): """ - Check that a declaration with all the invoice types - computes the totals correctly. + Check that declarations with both invoices and refunds compute + the totals correctly. """ partner = self.partner1 @@ -382,20 +380,30 @@ def test_all_invoice_types(self): in_refund_balance = in_refund.line_ids.filtered("tax_ids").balance self.assertEqual(in_refund_balance, -100) - invoices = out_invoice | in_invoice | out_refund | in_refund + declaration_out = self._create_declaration(partner, "out") + declaration_out.limit_amount = 2000 + invoices_in = in_invoice | in_refund + invoices_in.declaration_of_intent_ids = declaration_out - declaration = self._create_declaration(partner, "out") - declaration.limit_amount = 2000 - invoices.declaration_of_intent_ids = declaration + declaration_in = self._create_declaration(partner, "in") + declaration_in.limit_amount = 2000 + invoices_out = out_invoice | out_refund + invoices_out.declaration_of_intent_ids = declaration_in - invoices.action_post() - used_amount = ( - -out_invoice_balance - + in_invoice_balance - - out_refund_balance - + in_refund_balance - ) - self.assertEqual(declaration.available_amount, 2000 - used_amount) + invoices_in.action_post() + invoices_out.action_post() + + # balance is positive for in invoices + # add "in" invoice and refund and compare with "out" DI available_amount + used_amount_in = in_invoice_balance + in_refund_balance + self.assertEqual(used_amount_in, 800) + self.assertEqual(declaration_out.available_amount, 2000 - used_amount_in) + + # balance is positive for out invoices + # add "out" invoice and refund and compare with "in" DI available_amount + used_amount_out = -out_invoice_balance - out_refund_balance + self.assertEqual(used_amount_out, 800) + self.assertEqual(declaration_in.available_amount, 2000 - used_amount_out) def test_invoice_repost(self): invoice = self._create_invoice( @@ -476,3 +484,29 @@ def test_multi_company(self): ) self.assertEqual(declaration_model.search([]), declaration) self.assertEqual(self.env.company, declaration.company_id) + + def test_action_register_payment(self): + """ + Check register payment from action in invoice. + """ + partner = self.partner1 + partner.property_account_position_id = self.fiscal_position.id + + out_invoice = self._create_invoice( + "test_out_invoice_registr_payment", partner, tax=self.tax1, in_type=False + ) + self.assertEqual(out_invoice.move_type, "out_invoice") + out_invoice.action_post() + + result = out_invoice.action_register_payment() + wizard = Form( + self.env[(result.get("res_model"))].with_context(**result["context"]) + ).save() + self.assertEqual(wizard._name, "account.payment.register") + action = wizard.action_create_payments() + if action.get("res_id", False): + payments = [action["res_id"]] + self.assertTrue(len(payments) == 1) + else: + payments = action["domain"][0][2] + self.assertTrue(len(payments) > 1) diff --git a/l10n_it_declaration_of_intent/views/company_view.xml b/l10n_it_declaration_of_intent/views/company_view.xml index eae75e5c27ba..97195a2bacfb 100644 --- a/l10n_it_declaration_of_intent/views/company_view.xml +++ b/l10n_it_declaration_of_intent/views/company_view.xml @@ -6,12 +6,13 @@ - + + diff --git a/l10n_it_delivery_note/README.rst b/l10n_it_delivery_note/README.rst index 3df005a823e4..4a9b37ee425a 100644 --- a/l10n_it_delivery_note/README.rst +++ b/l10n_it_delivery_note/README.rst @@ -7,7 +7,7 @@ ITA - Documento di trasporto !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:80f052f286b30d6d177d6bd7b8cbb8c2bd09c4de4879f3c6505822caaaf40f2b + !! source digest: sha256:4e1fa7293a056cc1fcb0296ee154eda41b453e04993ac7e9fdabc6d9143ed79c !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png @@ -79,6 +79,8 @@ To configure this module, go to: Checking 'Display Delivery Method in Delivery Note Report' enables in report field 'Delivery Method'. + Checking 'Display total in DN with prices' enables in report the 'Import' column and the list of taxes with the sum of the total. + 2. *Inventory → Configuration → Warehouse Management → Delivery Note Types* In delivery note type you can specify if the product price have to be printed in the delivery note report/slip. @@ -88,7 +90,11 @@ To configure this module, go to: - *Inventory → Configuration → Delivery Notes → Reasons of Transport* - *Inventory → Configuration → Delivery Notes → Methods of Transport* -3. *Settings → User & Companies → Users* +3. *Inventory → Configuration → Warehouse Management → Operation Types* + + Checking 'Prevent DN's Create' won't make delivery notes available for every picking of that picking type. + +4. *Settings → User & Companies → Users* In the user profile settings, "Show product information in DN lines" allows showing prices in the form. @@ -202,6 +208,7 @@ Contributors * `PyTech-SRL `_: * Alessandro Uffreduzzi * Sebastiano Picchi +* Sergio Corato Maintainers ~~~~~~~~~~~ diff --git a/l10n_it_delivery_note/__manifest__.py b/l10n_it_delivery_note/__manifest__.py index 4cbb1167fca6..d72985a38cc7 100644 --- a/l10n_it_delivery_note/__manifest__.py +++ b/l10n_it_delivery_note/__manifest__.py @@ -13,7 +13,7 @@ "author": "Marco Calcagni, Gianmarco Conte, Link IT Europe Srl, " "Odoo Community Association (OCA)", "website": "https://github.com/OCA/l10n-italy", - "version": "14.0.3.0.1", + "version": "14.0.3.4.0", "category": "Localization/Italy", "license": "AGPL-3", "maintainers": ["MarcoCalcagni", "aleuffre", "renda-dev"], @@ -39,6 +39,7 @@ "views/sale_order.xml", "views/stock_delivery_note.xml", "views/stock_picking.xml", + "views/stock_picking_type.xml", "views/portal_templates.xml", "views/portal_my_delivery_notes.xml", "wizard/delivery_note_confirm.xml", diff --git a/l10n_it_delivery_note/cli/migrate_l10n_it_ddt.py b/l10n_it_delivery_note/cli/migrate_l10n_it_ddt.py index afb84b38eeb2..deff6130b329 100644 --- a/l10n_it_delivery_note/cli/migrate_l10n_it_ddt.py +++ b/l10n_it_delivery_note/cli/migrate_l10n_it_ddt.py @@ -324,6 +324,14 @@ def vals_getter(record): documents = Document.search([], order="id ASC") for document in documents: + # align dn_supplier_number and dn_supplier_date fields in picking + for picking in document.picking_ids: + picking.write( + { + "dn_supplier_number": picking.ddt_supplier_number, + "dn_supplier_date": picking.ddt_supplier_date, + } + ) delivery_note = DeliveryNote.create(vals_getter(document)) extra_lines = document.line_ids.filtered(lambda l: not l.move_id) diff --git a/l10n_it_delivery_note/i18n/fr.po b/l10n_it_delivery_note/i18n/fr.po new file mode 100644 index 000000000000..553bad8ca6ed --- /dev/null +++ b/l10n_it_delivery_note/i18n/fr.po @@ -0,0 +1,2038 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_it_delivery_note +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\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" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/models/stock_delivery_note.py:0 +#, python-format +msgid "%s hasn't sale order!" +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/models/stock_delivery_note.py:0 +#, python-format +msgid "%s is already invoiced!" +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/models/stock_delivery_note.py:0 +#, python-format +msgid "%s is in draft!" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.actions.report,print_report_name:l10n_it_delivery_note.delivery_note_report_action +msgid "'Delivery Note - %s' % object.display_name" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.portal_delivery_note_page +msgid " Download" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.portal_delivery_note_page +msgid " Print" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.res_config_settings_form_view +msgid "(e.g. link multiple pickings to a single DN)" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_select_form_view +msgid "" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.sale_advance_payment_inv_form_view +msgid " Warning!" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_form_view +msgid "" +"\n" +" \n" +" Warning!\n" +" \n" +" Inconsistent DN info in sale orders!" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template +msgid "" +" Delivery Note: \n" +" Under the terms of Italian Presidential Decree 472-96 of " +"14.08.1996" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template +msgid "Carriage Condition:" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template +msgid "Carrier:" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template +msgid "Customer:" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template +msgid "Delivery Method:" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template +msgid "Delivery address:" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template +msgid "Method of Transport / Carrier:" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template +msgid "Method of Transport:" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.sale_advance_payment_inv_form_view +msgid "" +"N.B.: there will be no way, subsequently, to restore\n" +" this binding between the delivery note lines with " +"the related sales order." +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template +msgid "Reason of Transport:" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template +msgid "Subtotal" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template +msgid "Total" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template +msgid "Warehouse:" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,help:l10n_it_delivery_note.field_stock_delivery_note_line__product_description +msgid "" +"A description of the Product that you want to communicate to your customers. " +"This description will be copied to every Sales Order, Delivery Order and " +"Customer Invoice/Credit Note" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__access_warning +msgid "Access warning" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__message_needaction +msgid "Action Needed" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__active +msgid "Active" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__activity_ids +msgid "Activities" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__activity_exception_decoration +msgid "Activity Exception Decoration" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__activity_state +msgid "Activity State" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__activity_type_icon +msgid "Activity Type Icon" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_form_view +msgid "Add a note" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_form_view +msgid "Add a section" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:res.groups,name:l10n_it_delivery_note.can_change_number +msgid "Allow to change delivery note number" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_line__amount +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template +msgid "Amount" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_res_partner__default_goods_appearance_id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_res_users__default_goods_appearance_id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_sale_order__default_goods_appearance_id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__goods_appearance_id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__goods_appearance_id +msgid "Appearance of goods" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.actions.act_window,name:l10n_it_delivery_note.stock_picking_goods_appearance_action +#: model:ir.ui.menu,name:l10n_it_delivery_note.stock_picking_good_appearance_menu +msgid "Appearances of goods" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_search_view +msgid "Archived" +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/mixins/picking_checker.py:0 +#, python-format +msgid "" +"At least one picking you've selected appears to be already related to " +"another delivery note." +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/mixins/picking_checker.py:0 +#, python-format +msgid "At least one picking you've selected doesn't appear to be completed." +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__message_attachment_count +msgid "Attachment Count" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.res_config_settings_form_view +msgid "" +"Block the validation of incoming DNs if the\n" +" \"Partner reference\" field is not set." +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__can_be_invoiced +msgid "Can Be Invoiced" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__can_change_number +msgid "Can Change Number" +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/models/stock_location.py:0 +#, python-format +msgid "" +"Can't find a default virtual locations root.\n" +"Ask your system administrator to set it from the Warehouse configurations " +"page before continue." +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_confirm_form_view +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_create_form_view +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_form_view +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_select_form_view +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_picking_form_view +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.view_stock_delivery_note_invoice_wizard +msgid "Cancel" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields.selection,name:l10n_it_delivery_note.selection__stock_delivery_note__state__cancel +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_search_view +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_picking_form_view +msgid "Cancelled" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__carrier_id +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_picking_form_view +msgid "Carrier" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template +msgid "Carrier's Signature" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_search_view +msgid "Carriers" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model,name:l10n_it_delivery_note.model_res_company +msgid "Companies" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__company_id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_line__company_id +msgid "Company" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_res_partner__default_transport_condition_id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_res_users__default_transport_condition_id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_sale_order__default_transport_condition_id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__transport_condition_id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__transport_condition_id +msgid "Condition of transport" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.actions.act_window,name:l10n_it_delivery_note.stock_picking_transport_condition_action +#: model:ir.ui.menu,name:l10n_it_delivery_note.stock_picking_transport_condition_menu +msgid "Conditions of transport" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model,name:l10n_it_delivery_note.model_res_config_settings +msgid "Config Settings" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields.selection,name:l10n_it_delivery_note.selection__sale_advance_payment_inv__step__confirm +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_confirm_form_view +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_create_form_view +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_select_form_view +msgid "Confirm" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model,name:l10n_it_delivery_note.model_res_partner +msgid "Contact" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.view_stock_delivery_note_invoice_wizard +msgid "Create Invoice" +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/models/stock_picking.py:0 +#: model:ir.actions.act_window,name:l10n_it_delivery_note.stock_delivery_note_create_action +#, python-format +msgid "Create a new delivery note" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_form_view +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_picking_form_view +msgid "Create invoice" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.actions.act_window,name:l10n_it_delivery_note.action_stock_delivery_note_invoice_wizard +msgid "Create invoices" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_picking_form_view +msgid "Create new" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__create_uid +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_confirm_wizard__create_uid +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_create_wizard__create_uid +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_invoice_wizard__create_uid +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_line__create_uid +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_select_wizard__create_uid +msgid "Created by" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__create_date +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_confirm_wizard__create_date +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_create_wizard__create_date +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_invoice_wizard__create_date +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_line__create_date +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_select_wizard__create_date +msgid "Created on" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__currency_id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_line__currency_id +msgid "Currency" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_sale_advance_payment_inv__step +msgid "Current step" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,help:l10n_it_delivery_note.field_stock_delivery_note__access_url +msgid "Customer Portal URL" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_line__sale_order_client_ref +msgid "Customer Reference" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__delivery_note_carrier_id +msgid "DN Carrier" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__delivery_note_date +msgid "DN Date" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__picking_type_code +msgid "DN Operation Type" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__packages +msgid "DN Packages" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__delivery_note_state +msgid "DN State" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__delivery_note_volume +msgid "DN Volume" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__date +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_base_wizard__date +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_create_wizard__date +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_select_wizard__date +msgid "Date" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_search_view +msgid "Dates" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_form_view +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_picking_tree_view +msgid "Delivery Method" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.actions.report,name:l10n_it_delivery_note.delivery_note_report_action +#: model:ir.model,name:l10n_it_delivery_note.model_stock_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_account_move_line__delivery_note_id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_sale_order__delivery_note_ids +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_confirm_wizard__delivery_note_id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_line__delivery_note_id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_select_wizard__delivery_note_id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__delivery_note_id +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_picking_form_view +msgid "Delivery Note" +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/models/account_invoice.py:0 +#, python-format +msgid "Delivery Note \"{}\" of {}" +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/controllers/portal.py:0 +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.portal_my_delivery_notes +#, python-format +msgid "Delivery Note #" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model,name:l10n_it_delivery_note.model_stock_delivery_note_base_wizard +msgid "Delivery Note Base" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model,name:l10n_it_delivery_note.model_stock_delivery_note_confirm_wizard +msgid "Delivery Note Confirm" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_account_bank_statement_line__delivery_note_count +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_account_move__delivery_note_count +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_account_payment__delivery_note_count +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_sale_order__delivery_note_count +msgid "Delivery Note Count" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model,name:l10n_it_delivery_note.model_stock_delivery_note_create_wizard +msgid "Delivery Note Creator" +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/controllers/portal.py:0 +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.portal_my_delivery_notes +#, python-format +msgid "Delivery Note Date" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__delivery_note_draft +msgid "Delivery Note Draft" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__delivery_note_exists +msgid "Delivery Note Exists" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model,name:l10n_it_delivery_note.model_stock_delivery_note_invoice_wizard +msgid "Delivery Note Invoice" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model,name:l10n_it_delivery_note.model_stock_delivery_note_line +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_sale_order_line__delivery_note_line_ids +msgid "Delivery Note Line" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__delivery_note_readonly +msgid "Delivery Note Readonly" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model,name:l10n_it_delivery_note.model_stock_delivery_note_select_wizard +msgid "Delivery Note Selector" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.actions.act_window,name:l10n_it_delivery_note.stock_delivery_note_type_action +#: model:ir.ui.menu,name:l10n_it_delivery_note.stock_delivery_note_type_menu +msgid "Delivery Note Types" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__delivery_note_visible +msgid "Delivery Note Visible" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.actions.act_window,name:l10n_it_delivery_note.stock_delivery_note_action +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_account_bank_statement_line__delivery_note_ids +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_account_move__delivery_note_ids +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_account_payment__delivery_note_ids +#: model:ir.ui.menu,name:l10n_it_delivery_note.stock_delivery_note_config_menu +#: model:ir.ui.menu,name:l10n_it_delivery_note.stock_delivery_note_menu +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.account_view_move_form_view +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.portal_my_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.portal_my_delivery_notes +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.portal_my_home_menu_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.res_config_settings_form_view +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_picking_form_view +msgid "Delivery Notes" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_sale_order_line__delivery_picking_id +msgid "Delivery Picking" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__delivery_method_id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__delivery_method_id +msgid "Delivery method" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_line__name +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template +msgid "Description" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_form_view +msgid "Details" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_line__discount +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template +msgid "Discount" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_res_company__display_carrier_dn_report +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_res_config_settings__display_carrier_dn_report +msgid "Display Carrier in Delivery Note Report" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_res_company__display_delivery_method_dn_report +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_res_config_settings__display_delivery_method_dn_report +msgid "Display Delivery Method in Delivery Note Report" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_account_move__display_name +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_account_move_line__display_name +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_res_company__display_name +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_res_config_settings__display_name +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_res_partner__display_name +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_sale_advance_payment_inv__display_name +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_sale_order__display_name +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_sale_order_line__display_name +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_shipping_information_updater_mixin__display_name +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__display_name +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_base_wizard__display_name +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_confirm_wizard__display_name +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_create_wizard__display_name +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_invoice_wizard__display_name +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_line__display_name +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_select_wizard__display_name +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_location__display_name +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__display_name +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking_checker_mixin__display_name +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking_type__display_name +msgid "Display Name" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_res_company__display_ref_customer_dn_report +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_res_config_settings__display_ref_customer_dn_report +msgid "Display Ref. Customer in Delivery Note Report" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_res_company__display_ref_order_dn_report +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_res_config_settings__display_ref_order_dn_report +msgid "Display Ref. Order in Delivery Note Report" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_res_company__display_total_in_dn_with_prices +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_res_config_settings__display_total_in_dn_with_prices +msgid "Display total in DN with prices" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_form_view +msgid "Document" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template +msgid "Document:" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields.selection,name:l10n_it_delivery_note.selection__stock_delivery_note__state__done +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_search_view +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_picking_form_view +msgid "Done" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.portal_delivery_note_page +msgid "Download" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields.selection,name:l10n_it_delivery_note.selection__stock_delivery_note__state__draft +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_search_view +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_picking_form_view +msgid "Draft" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_picking_search_view +msgid "Draft DN" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_form_view +msgid "Draft document" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template +msgid "Draft document:" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template +msgid "Driver's Signature" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_base_wizard__error_message +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_create_wizard__error_message +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_select_wizard__error_message +msgid "Error Message" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__message_follower_ids +msgid "Followers" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__message_channel_ids +msgid "Followers (Channels)" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__message_partner_ids +msgid "Followers (Partners)" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,help:l10n_it_delivery_note.field_stock_delivery_note__activity_type_icon +msgid "Font awesome icon e.g. fa-tasks" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields.selection,name:l10n_it_delivery_note.selection__stock_delivery_note__invoice_status__invoiced +#: model:ir.model.fields.selection,name:l10n_it_delivery_note.selection__stock_delivery_note_line__invoice_status__invoiced +msgid "Fully invoiced" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_picking_form_view +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_picking_tree_view +msgid "Go to delivery note" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_form_view +msgid "Go to invoice" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template +msgid "Goods Description" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template +msgid "Gross Weight" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__gross_weight +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__gross_weight +msgid "Gross weight" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__gross_weight_uom_id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__gross_weight_uom_id +msgid "Gross weight UoM" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.portal_delivery_note_page +msgid "History" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_account_move__id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_account_move_line__id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_res_company__id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_res_config_settings__id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_res_partner__id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_sale_advance_payment_inv__id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_sale_order__id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_sale_order_line__id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_shipping_information_updater_mixin__id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_base_wizard__id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_confirm_wizard__id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_create_wizard__id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_invoice_wizard__id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_line__id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_select_wizard__id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_location__id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking_checker_mixin__id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking_type__id +msgid "ID" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__activity_exception_icon +msgid "Icon" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,help:l10n_it_delivery_note.field_stock_delivery_note__activity_exception_icon +msgid "Icon to indicate an exception activity." +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,help:l10n_it_delivery_note.field_stock_delivery_note__message_needaction +#: model:ir.model.fields,help:l10n_it_delivery_note.field_stock_delivery_note__message_unread +msgid "If checked, new messages require your attention." +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,help:l10n_it_delivery_note.field_stock_delivery_note__message_has_error +msgid "If checked, some messages have a delivery error." +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_wizard_error_message_template +msgid "If these problems persist, don't hesitate to contact the helpdesk." +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/models/stock_delivery_note.py:0 +#, python-format +msgid "In %s there is %s with invoicing policy 'order'" +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/tests/test_stock_delivery_note_sequence.py:0 +#: model:ir.model.fields.selection,name:l10n_it_delivery_note.selection__stock_delivery_note__picking_type__incoming +#: model:ir.model.fields.selection,name:l10n_it_delivery_note.selection__stock_delivery_note_create_wizard__picking_type__incoming +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_search_view +#, python-format +msgid "Incoming" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields.selection,name:l10n_it_delivery_note.selection__sale_advance_payment_inv__step__initial +msgid "Initial" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields.selection,name:l10n_it_delivery_note.selection__stock_delivery_note__picking_type__internal +#: model:ir.model.fields.selection,name:l10n_it_delivery_note.selection__stock_delivery_note_create_wizard__picking_type__internal +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_search_view +msgid "Internal" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__delivery_note_note +msgid "Internal note" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_form_view +msgid "Internal notes" +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/tests/test_stock_delivery_note_sequence.py:0 +#, python-format +msgid "Internal transfer" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model,name:l10n_it_delivery_note.model_stock_location +msgid "Inventory Locations" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_invoice_wizard__invoice_method +msgid "Invoice Method" +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/wizard/sale_advance_payment_inv.py:0 +#, python-format +msgid "Invoice Order" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__invoice_status +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_line__invoice_status +msgid "Invoice status" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_search_view +msgid "Invoice statuses" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_invoice_wizard__invoice_date +msgid "Invoice/Bill Date" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields.selection,name:l10n_it_delivery_note.selection__stock_delivery_note__state__invoiced +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_search_view +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_picking_form_view +msgid "Invoiced" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__invoice_ids +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_form_view +msgid "Invoices" +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/wizard/delivery_note_invoice.py:0 +#, python-format +msgid "Invoices from TD" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__message_is_follower +msgid "Is Follower" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.res_config_settings_form_view +msgid "" +"It extends the standard behaviour of DNs\n" +" management by introducing additional " +"functions." +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/cli/migrate_l10n_it_ddt.py:0 +#, python-format +msgid "" +"It seems that at least one delivery note has been already created. You can't " +"migrate any data on an already used database." +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/cli/migrate_l10n_it_ddt.py:0 +#, python-format +msgid "" +"It seems that there are no documents to migrate. You don't need to run this " +"command." +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model,name:l10n_it_delivery_note.model_account_move +msgid "Journal Entry" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model,name:l10n_it_delivery_note.model_account_move_line +msgid "Journal Item" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_account_move____last_update +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_account_move_line____last_update +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_res_company____last_update +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_res_config_settings____last_update +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_res_partner____last_update +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_sale_advance_payment_inv____last_update +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_sale_order____last_update +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_sale_order_line____last_update +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_shipping_information_updater_mixin____last_update +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note____last_update +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_base_wizard____last_update +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_confirm_wizard____last_update +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_create_wizard____last_update +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_invoice_wizard____last_update +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_line____last_update +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_select_wizard____last_update +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_location____last_update +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking____last_update +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking_checker_mixin____last_update +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking_type____last_update +msgid "Last Modified on" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__write_uid +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_confirm_wizard__write_uid +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_create_wizard__write_uid +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_invoice_wizard__write_uid +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_line__write_uid +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_select_wizard__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__write_date +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_confirm_wizard__write_date +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_create_wizard__write_date +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_invoice_wizard__write_date +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_line__write_date +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_select_wizard__write_date +msgid "Last Updated on" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_line__display_type +msgid "Line type" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__line_ids +msgid "Lines" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__lines_have_customer_ref +msgid "Lines Have Customer Ref" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__lines_have_so_number +msgid "Lines Have So Number" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__message_main_attachment_id +msgid "Main Attachment" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_res_config_settings__group_required_partner_ref +msgid "Make Partner Ref. in DN Mandatory" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:res.groups,name:l10n_it_delivery_note.group_required_partner_ref +msgid "Make Partner Ref. in DN Required" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields.selection,name:l10n_it_delivery_note.selection__stock_delivery_note__picking_type__mrp_operation +#: model:ir.model.fields.selection,name:l10n_it_delivery_note.selection__stock_delivery_note_create_wizard__picking_type__mrp_operation +msgid "Manufacturing Operation" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__message_has_error +msgid "Message Delivery error" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__message_ids +msgid "Messages" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_res_partner__default_transport_method_id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_res_users__default_transport_method_id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_sale_order__default_transport_method_id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__transport_method_id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__transport_method_id +msgid "Method of transport" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.actions.act_window,name:l10n_it_delivery_note.stock_picking_transport_method_action +#: model:ir.ui.menu,name:l10n_it_delivery_note.stock_picking_transport_method_menu +msgid "Methods of transport" +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/cli/migrate_l10n_it_ddt.py:0 +#, python-format +msgid "" +"Module `l10n_it_ddt` isn't installed on this database. You don't need to run " +"this command." +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__my_activity_date_deadline +msgid "My Activity Deadline" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__name +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_tree_view +msgid "Name" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template +msgid "Net Weight" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__net_weight +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__net_weight +msgid "Net weight" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__net_weight_uom_id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__net_weight_uom_id +msgid "Net weight UoM" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__activity_date_deadline +msgid "Next Activity Deadline" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__activity_summary +msgid "Next Activity Summary" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__activity_type_id +msgid "Next Activity Type" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_picking_search_view +msgid "No DN" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields.selection,name:l10n_it_delivery_note.selection__stock_delivery_note_line__display_type__line_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_form_view +msgid "Note" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_account_move_line__note_dn +msgid "Note DN" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template +msgid "Notes" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields.selection,name:l10n_it_delivery_note.selection__stock_delivery_note__invoice_status__no +#: model:ir.model.fields.selection,name:l10n_it_delivery_note.selection__stock_delivery_note_line__invoice_status__no +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_search_view +msgid "Nothing to invoice" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__message_needaction_counter +msgid "Number of Actions" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__message_has_error_counter +msgid "Number of errors" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,help:l10n_it_delivery_note.field_stock_delivery_note__message_needaction_counter +msgid "Number of messages which requires an action" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,help:l10n_it_delivery_note.field_stock_delivery_note__message_has_error_counter +msgid "Number of messages with delivery error" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,help:l10n_it_delivery_note.field_stock_delivery_note__message_unread_counter +msgid "Number of unread messages" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields.selection,name:l10n_it_delivery_note.selection__stock_delivery_note_invoice_wizard__invoice_method__dn +msgid "Only DN" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_form_view +msgid "Open picking" +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/tests/test_stock_delivery_note_sequence.py:0 +#: model:ir.model.fields.selection,name:l10n_it_delivery_note.selection__stock_delivery_note__picking_type__outgoing +#: model:ir.model.fields.selection,name:l10n_it_delivery_note.selection__stock_delivery_note_create_wizard__picking_type__outgoing +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_search_view +#, python-format +msgid "Outgoing" +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/tests/test_stock_delivery_note_sequence.py:0 +#, python-format +msgid "Outgoing (with prices)" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__packages +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.portal_my_delivery_notes +msgid "Packages" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__partner_ref +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__delivery_note_partner_ref +msgid "Partner reference" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_select_wizard__picking_ids +msgid "Picking" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model,name:l10n_it_delivery_note.model_stock_picking_checker_mixin +msgid "Picking Checker Mixin" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model,name:l10n_it_delivery_note.model_stock_picking_type +msgid "Picking Type" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__picking_type +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_create_wizard__picking_type +msgid "Picking type" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_search_view +msgid "Picking types" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__picking_ids +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_create_form_view +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_form_view +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_select_form_view +msgid "Pickings" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__pickings_picker +msgid "Pickings Picker" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_wizard_error_message_template +msgid "Please, check and solve these problems before trying again." +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__access_url +msgid "Portal Access URL" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking_type__prevent_dn_create +msgid "Prevent DN's Create" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.portal_delivery_note_page +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_form_view +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_picking_form_view +msgid "Print" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.res_config_settings_form_view +msgid "Prints Carrier's name on DN report (if there is any)" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.res_config_settings_form_view +msgid "Prints Customer References on DN report (if there are any)" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.res_config_settings_form_view +msgid "Prints Delivery Method on DN report (if there is any)" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.res_config_settings_form_view +msgid "Prints Sale Order numbers on DN report (if there are any)" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.res_config_settings_form_view +msgid "Prints Total Amount on DN report" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_line__product_id +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template +msgid "Product" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_line__product_qty +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template +msgid "Quantity" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_res_partner__default_transport_reason_id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_res_users__default_transport_reason_id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_sale_order__default_transport_reason_id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__transport_reason_id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__transport_reason_id +msgid "Reason of transport" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.actions.act_window,name:l10n_it_delivery_note.stock_picking_transport_reason_action +#: model:ir.ui.menu,name:l10n_it_delivery_note.stock_picking_transport_reason_menu +msgid "Reasons of transport" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__partner_id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_base_wizard__partner_id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_create_wizard__partner_id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_select_wizard__partner_id +msgid "Recipient" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template +msgid "Recipient's Signature" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_search_view +msgid "Recipients" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template +msgid "Ref. Customer" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template +msgid "Ref. Order" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_form_view +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_picking_form_view +msgid "Reset to draft" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__activity_user_id +msgid "Responsible User" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__sale_ids +msgid "Sale" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__sale_count +msgid "Sale Count" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_line__sale_line_id +msgid "Sale Line" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_line__sale_order_number +msgid "Sale Order Number" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model,name:l10n_it_delivery_note.model_sale_advance_payment_inv +msgid "Sales Advance Payment Invoice" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_line__product_description +msgid "Sales Description" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model,name:l10n_it_delivery_note.model_sale_order +msgid "Sales Order" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model,name:l10n_it_delivery_note.model_sale_order_line +msgid "Sales Order Line" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__sales_transport_check +msgid "Sales Transport Check" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_form_view +msgid "Sales orders" +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/controllers/portal.py:0 +#, python-format +msgid "Search Name" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields.selection,name:l10n_it_delivery_note.selection__stock_delivery_note_line__display_type__line_section +msgid "Section" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_form_view +msgid "Section name (e.g. Products, Services)" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__access_token +msgid "Security Token" +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/models/stock_picking.py:0 +#: model:ir.actions.act_window,name:l10n_it_delivery_note.stock_delivery_note_select_action +#, python-format +msgid "Select an existing delivery note" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_picking_form_view +msgid "Select existing" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.res_config_settings_form_view +msgid "" +"Select the root of all your virtual locations.
    \n" +" Internal transfers between at least one " +"virtual\n" +" locations won't generate automatically " +"any DN\n" +" documents." +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_base_wizard__selected_picking_ids +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_create_wizard__selected_picking_ids +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_select_wizard__selected_picking_ids +msgid "Selected Picking" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__partner_sender_id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_base_wizard__partner_sender_id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_create_wizard__partner_sender_id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_select_wizard__partner_sender_id +msgid "Sender" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_search_view +msgid "Senders" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__sequence_id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_line__sequence +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__delivery_note_sequence_id +msgid "Sequence" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_form_view +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_picking_form_view +msgid "Set done" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model,name:l10n_it_delivery_note.model_shipping_information_updater_mixin +msgid "Shipping Information Updater Mixin" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__partner_shipping_id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_base_wizard__partner_shipping_id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_create_wizard__partner_shipping_id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_select_wizard__partner_shipping_id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__delivery_note_partner_shipping_id +msgid "Shipping address" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.res_partner_form_view +msgid "Shipping information" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__show_discount +msgid "Show Discount" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__show_product_information +msgid "Show Product Information" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__print_prices +msgid "Show prices on printed DN" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__state +msgid "State" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_search_view +msgid "States" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,help:l10n_it_delivery_note.field_stock_delivery_note__activity_state +msgid "" +"Status based on activities\n" +"Overdue: Due date is already passed\n" +"Today: Activity date is today\n" +"Planned: Future activities." +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_create_form_view +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_select_form_view +msgid "Summary" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__dn_supplier_date +msgid "Supplier DN Date" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__dn_supplier_number +msgid "Supplier DN Number" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_form_view +msgid "Tax" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_form_view +msgid "Tax excluded" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_line__tax_ids +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template +msgid "Taxes" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.constraint,message:l10n_it_delivery_note.constraint_stock_delivery_note_name_uniq +msgid "The Delivery note must have unique numbers." +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/models/stock_delivery_note.py:0 +#, python-format +msgid "" +"The carrier set in Delivery Note is different from the carrier set in " +"picking(s). Are you sure you want to proceed?" +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/models/stock_delivery_note.py:0 +#, python-format +msgid "" +"The field 'Partner reference' is mandatory to validate the Delivery Note." +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,help:l10n_it_delivery_note.field_stock_picking__carrier_partner_id +msgid "The partner that is doing the delivery service." +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/mixins/picking_checker.py:0 +#, python-format +msgid "" +"The pickings you've selected don't seem to have any location of departure." +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/mixins/picking_checker.py:0 +#, python-format +msgid "" +"The pickings you've selected don't seem to have any location of destination." +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/mixins/picking_checker.py:0 +#, python-format +msgid "" +"The pickings you've selected don't seem to have any partner or the selected " +"warehouse doesn't have a valid address." +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/mixins/picking_checker.py:0 +#, python-format +msgid "The pickings you've selected don't seem to have any type." +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/wizard/delivery_note_select.py:0 +#, python-format +msgid "The selected pickings have different delivery methods: %(carriers)s" +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/models/stock_delivery_note.py:0 +#, python-format +msgid "" +"The shipping method set in Delivery Note is different from the shipping " +"method set in picking(s). Are you sure you want to proceed?" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.sale_advance_payment_inv_form_view +msgid "" +"There appears to be one or more delivery notes in \"Draft\" state.
    \n" +" If you proceed with the creation of an invoice " +"(other than the downpayment one),\n" +" the affected delivery note lines will be detached " +"from the sales order and\n" +" will not appear linked to the generated invoice." +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.portal_my_delivery_notes +msgid "There are currently no delivery notes for your account." +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_wizard_error_message_template +msgid "There are one or more problems with the pickings you've selected:" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.sale_advance_payment_inv_form_view +msgid "" +"This behaviour just described may not be wrong in some very specific cases." +"
    \n" +" Proceed only if you are absolutely sure and aware of " +"what you're doing." +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/models/stock_delivery_note.py:0 +#, python-format +msgid "" +"This delivery note contains pickings related to different delivery methods " +"from the same transporter. Are you sure you want to proceed?\n" +"Delivery Methods: %(carriers)s" +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/models/stock_delivery_note.py:0 +#, python-format +msgid "" +"This delivery note contains pickings related to different transporters. Are " +"you sure you want to proceed?\n" +"Carrier Partners: %(carrier_partners)s" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields.selection,name:l10n_it_delivery_note.selection__stock_delivery_note__invoice_status__to_invoice +#: model:ir.model.fields.selection,name:l10n_it_delivery_note.selection__stock_delivery_note_line__invoice_status__to_invoice +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_search_view +msgid "To invoice" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_form_view +msgid "To pay" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_form_view +msgid "Total" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__amount_total +msgid "Total Amount" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model,name:l10n_it_delivery_note.model_stock_picking +msgid "Transfer" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__transport_datetime +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__transport_datetime +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template +msgid "Transport date" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__carrier_partner_id +msgid "Transporter" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__type_id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_base_wizard__type_id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_create_wizard__type_id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_select_wizard__type_id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__delivery_note_type_id +msgid "Type" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_search_view +msgid "Type codes" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__type_code +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__delivery_note_type_code +msgid "Type of Operation" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,help:l10n_it_delivery_note.field_stock_delivery_note__activity_exception_decoration +msgid "Type of the exception activity on record." +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_search_view +msgid "Types" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.sale_advance_payment_inv_form_view +msgid "Understood, continue anyway" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_line__price_unit +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template +msgid "Unit price" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__message_unread +msgid "Unread Messages" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__message_unread_counter +msgid "Unread Messages Counter" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_line__untaxed_amount +msgid "Untaxed Amount" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__untaxed_amount_total +msgid "Untaxed Total Amount" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_line__product_uom_id +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template +msgid "UoM" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_form_view +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_picking_form_view +msgid "Update to now" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__use_advanced_behaviour +msgid "Use Advanced Behaviour" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_res_config_settings__group_use_advanced_delivery_notes +#: model:res.groups,name:l10n_it_delivery_note.use_advanced_delivery_notes +msgid "Use Advanced DN Features" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__use_delivery_note +msgid "Use Delivery Note" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__valid_move_ids +msgid "Valid Move" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_form_view +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_picking_form_view +msgid "Validate" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields.selection,name:l10n_it_delivery_note.selection__stock_delivery_note__state__confirm +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_search_view +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_picking_form_view +msgid "Validated" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_picking_search_view +msgid "Validated DN" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_res_config_settings__virtual_locations_root +msgid "Virtual locations root" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__volume +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_picking_form_view +msgid "Volume" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__volume_uom_id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__delivery_note_volume_uom_id +msgid "Volume UoM" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_line__move_id +msgid "Warehouse movement" +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/models/stock_delivery_note.py:0 +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_base_wizard__warning_message +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_create_wizard__warning_message +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_select_wizard__warning_message +#, python-format +msgid "Warning" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_confirm_wizard__warning_message +msgid "Warning Message" +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/models/stock_delivery_note.py:0 +#: code:addons/l10n_it_delivery_note/models/stock_picking.py:0 +#: code:addons/l10n_it_delivery_note/wizard/delivery_note_base.py:0 +#, python-format +msgid "Warning!" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__website_message_ids +msgid "Website Messages" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,help:l10n_it_delivery_note.field_stock_delivery_note__website_message_ids +msgid "Website communication history" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields.selection,name:l10n_it_delivery_note.selection__stock_delivery_note_invoice_wizard__invoice_method__service +msgid "With Service" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.constraint,message:l10n_it_delivery_note.constraint_stock_delivery_note_line_move_uniq +msgid "" +"You cannot assign the same warehouse movement to different delivery notes!" +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/models/stock_delivery_note.py:0 +#, python-format +msgid "" +"You cannot cancel this delivery note. There is at least one invoice related " +"to this delivery note." +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/models/stock_delivery_note.py:0 +#, python-format +msgid "" +"You cannot change the type of a delivery note line. Instead you should " +"delete the current line and create a new line of the proper type." +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/models/stock_delivery_note.py:0 +#, python-format +msgid "You cannot have different currencies in the lines of aDelivery Note" +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/models/stock_delivery_note.py:0 +#: code:addons/l10n_it_delivery_note/models/stock_picking.py:0 +#, python-format +msgid "" +"You cannot set this delivery note type due of a different numerator " +"configuration." +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/models/stock_delivery_note.py:0 +#, python-format +msgid "" +"You cannot set this delivery note type due of a different type with related " +"pickings." +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/models/stock_picking.py:0 +#, python-format +msgid "" +"You have just called this method on an heterogeneous set of pickings.\n" +"All pickings should have the same 'location_dest_id' field value." +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/models/stock_picking.py:0 +#, python-format +msgid "" +"You have just called this method on an heterogeneous set of pickings.\n" +"All pickings should have the same 'location_id' field value." +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/models/stock_picking.py:0 +#, python-format +msgid "" +"You have just called this method on an heterogeneous set of pickings.\n" +"All pickings should have the same 'partner_id' field value." +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/models/stock_picking.py:0 +#, python-format +msgid "" +"You have just called this method on an heterogeneous set of pickings.\n" +"All pickings should have the same 'picking_type_code' field value." +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/mixins/picking_checker.py:0 +#, python-format +msgid "You need to select pickings with all the same location of departure." +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/mixins/picking_checker.py:0 +#, python-format +msgid "You need to select pickings with all the same location of destination." +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/mixins/picking_checker.py:0 +#, python-format +msgid "You need to select pickings with all the same recipient." +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/mixins/picking_checker.py:0 +#, python-format +msgid "You need to select pickings with all the same type." +msgstr "" + +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/mixins/picking_checker.py:0 +#, python-format +msgid "" +"You shouldn't be able to launch this wizard without selecting any pickings." +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template +msgid "best before" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template +msgid "lot / sn :" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template +msgid "of:" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template +msgid "qty" +msgstr "" diff --git a/l10n_it_delivery_note/i18n/it.po b/l10n_it_delivery_note/i18n/it.po index cb618445c07a..c32a3d19f82b 100644 --- a/l10n_it_delivery_note/i18n/it.po +++ b/l10n_it_delivery_note/i18n/it.po @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: Odoo Server 14.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-08 14:45+0000\n" -"PO-Revision-Date: 2024-02-02 09:37+0000\n" +"PO-Revision-Date: 2024-04-18 13:35+0000\n" "Last-Translator: Francesco Foresti \n" "Language-Team: \n" "Language: it\n" @@ -144,6 +144,16 @@ msgstr "" msgid "Reason of Transport:" msgstr "Causale di trasporto:" +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template +msgid "Subtotal" +msgstr "Subtotale" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template +msgid "Total" +msgstr "Totale" + #. module: l10n_it_delivery_note #: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template msgid "Warehouse:" @@ -210,6 +220,12 @@ msgstr "Aggiungi una sezione" msgid "Allow to change delivery note number" msgstr "Consentire modifica numero documento di trasporto" +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_line__amount +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template +msgid "Amount" +msgstr "Importo" + #. module: l10n_it_delivery_note #: model:ir.model.fields,field_description:l10n_it_delivery_note.field_res_partner__default_goods_appearance_id #: model:ir.model.fields,field_description:l10n_it_delivery_note.field_res_users__default_goods_appearance_id @@ -250,6 +266,16 @@ msgstr "Almeno un prelievo tra quelli selezionati non è stato completato." msgid "Attachment Count" msgstr "Numero allegati" +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.res_config_settings_form_view +msgid "" +"Block the validation of incoming DNs if the\n" +" \"Partner reference\" field is not set." +msgstr "" +"Blocca la validazione di DdT in entrata se il\n" +" campo \"Riferimento partner\" non è " +"valorizzato." + #. module: l10n_it_delivery_note #: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__can_be_invoiced msgid "Can Be Invoiced" @@ -398,6 +424,7 @@ msgid "Created on" msgstr "Creato il" #. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__currency_id #: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_line__currency_id msgid "Currency" msgstr "Valuta" @@ -640,6 +667,7 @@ msgstr "Mostra metodo di consegna nella stampa DdT" #: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_location__display_name #: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__display_name #: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking_checker_mixin__display_name +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking_type__display_name msgid "Display Name" msgstr "Nome visualizzato" @@ -655,6 +683,12 @@ msgstr "Mostra Rif. Cliente nella stampa DdT" msgid "Display Ref. Order in Delivery Note Report" msgstr "Mostra Rif. Ordine nella stampa DdT" +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_res_company__display_total_in_dn_with_prices +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_res_config_settings__display_total_in_dn_with_prices +msgid "Display total in DN with prices" +msgstr "Mostra totali nei DdT con prezzi" + #. module: l10n_it_delivery_note #: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_form_view msgid "Document" @@ -795,6 +829,7 @@ msgstr "Storico" #: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_location__id #: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__id #: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking_checker_mixin__id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking_type__id msgid "ID" msgstr "ID" @@ -984,6 +1019,7 @@ msgstr "Movimento contabile" #: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_location____last_update #: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking____last_update #: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking_checker_mixin____last_update +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking_type____last_update msgid "Last Modified on" msgstr "Ultima modifica il" @@ -1032,6 +1068,16 @@ msgstr "Righe hanno numero SO" msgid "Main Attachment" msgstr "Allegato principale" +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_res_config_settings__group_required_partner_ref +msgid "Make Partner Ref. in DN Mandatory" +msgstr "Campo \"Riferimento Partner\" in DdT obbligatorio" + +#. module: l10n_it_delivery_note +#: model:res.groups,name:l10n_it_delivery_note.group_required_partner_ref +msgid "Make Partner Ref. in DN Required" +msgstr "Campo Riferimento Partner in DdT obbligatorio" + #. module: l10n_it_delivery_note #: model:ir.model.fields.selection,name:l10n_it_delivery_note.selection__stock_delivery_note__picking_type__mrp_operation #: model:ir.model.fields.selection,name:l10n_it_delivery_note.selection__stock_delivery_note_create_wizard__picking_type__mrp_operation @@ -1217,6 +1263,11 @@ msgstr "Prelievo" msgid "Picking Checker Mixin" msgstr "Mescola Controllore del Prelievo" +#. module: l10n_it_delivery_note +#: model:ir.model,name:l10n_it_delivery_note.model_stock_picking_type +msgid "Picking Type" +msgstr "Tipologia prelievo" + #. module: l10n_it_delivery_note #: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__picking_type #: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_create_wizard__picking_type @@ -1251,6 +1302,11 @@ msgstr "Prego, controllare e risolvere questi problemi prima di riprovare." msgid "Portal Access URL" msgstr "URL accesso portale" +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking_type__prevent_dn_create +msgid "Prevent DN's Create" +msgstr "Non permettere creazione DDT" + #. module: l10n_it_delivery_note #: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.portal_delivery_note_page #: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_form_view @@ -1278,6 +1334,11 @@ msgstr "Stampa metodo di consegna su stampa DdT (se presente)" msgid "Prints Sale Order numbers on DN report (if there are any)" msgstr "Stampa Rif. Ordine su DdT (se presente)" +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.res_config_settings_form_view +msgid "Prints Total Amount on DN report" +msgstr "Stampa gli importi totali nel report DdT" + #. module: l10n_it_delivery_note #: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_line__product_id #: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template @@ -1496,6 +1557,11 @@ msgstr "Indirizzo di spedizione" msgid "Shipping information" msgstr "Informazioni spedizione" +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__show_discount +msgid "Show Discount" +msgstr "Mostra sconto" + #. module: l10n_it_delivery_note #: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__show_product_information msgid "Show Product Information" @@ -1535,6 +1601,16 @@ msgstr "" msgid "Summary" msgstr "Riepilogo" +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__dn_supplier_date +msgid "Supplier DN Date" +msgstr "Data DDT fornitore" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__dn_supplier_number +msgid "Supplier DN Number" +msgstr "Numero DDT fornitore" + #. module: l10n_it_delivery_note #: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_form_view msgid "Tax" @@ -1566,6 +1642,14 @@ msgstr "" "Il vettore impostato nel DdT è differente dal vettore impostato nei " "trasferimenti. Confermi di voler procedere?" +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/models/stock_delivery_note.py:0 +#, python-format +msgid "" +"The field 'Partner reference' is mandatory to validate the Delivery Note." +msgstr "" +"Il campo \"Riferimento partner\" è obbligatorio per poter validare il DdT." + #. module: l10n_it_delivery_note #: model:ir.model.fields,help:l10n_it_delivery_note.field_stock_picking__carrier_partner_id msgid "The partner that is doing the delivery service." @@ -1702,6 +1786,11 @@ msgstr "Da pagare" msgid "Total" msgstr "Totale" +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__amount_total +msgid "Total Amount" +msgstr "Importo totale" + #. module: l10n_it_delivery_note #: model:ir.model,name:l10n_it_delivery_note.model_stock_picking msgid "Transfer" @@ -1770,6 +1859,16 @@ msgstr "Messaggi non letti" msgid "Unread Messages Counter" msgstr "Numero messaggi non letti" +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_line__untaxed_amount +msgid "Untaxed Amount" +msgstr "Imponibile" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__untaxed_amount_total +msgid "Untaxed Total Amount" +msgstr "Totale imponibile" + #. module: l10n_it_delivery_note #: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_line__product_uom_id #: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template @@ -1906,6 +2005,12 @@ msgstr "" "Non puoi cambiare il tipo della riga del DdT. Dovresti, invece, eliminare la " "riga corrente e creare una riga nuova del tipo corretto." +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/models/stock_delivery_note.py:0 +#, python-format +msgid "You cannot have different currencies in the lines of aDelivery Note" +msgstr "Non puoi avere valute diverse sulle righe di un DdT" + #. module: l10n_it_delivery_note #: code:addons/l10n_it_delivery_note/models/stock_delivery_note.py:0 #: code:addons/l10n_it_delivery_note/models/stock_picking.py:0 diff --git a/l10n_it_delivery_note/i18n/l10n_it_delivery_note.pot b/l10n_it_delivery_note/i18n/l10n_it_delivery_note.pot index 8d80f267ebee..4aeb5f8db15b 100644 --- a/l10n_it_delivery_note/i18n/l10n_it_delivery_note.pot +++ b/l10n_it_delivery_note/i18n/l10n_it_delivery_note.pot @@ -125,6 +125,16 @@ msgstr "" msgid "Reason of Transport:" msgstr "" +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template +msgid "Subtotal" +msgstr "" + +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template +msgid "Total" +msgstr "" + #. module: l10n_it_delivery_note #: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template msgid "Warehouse:" @@ -188,6 +198,12 @@ msgstr "" msgid "Allow to change delivery note number" msgstr "" +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_line__amount +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template +msgid "Amount" +msgstr "" + #. module: l10n_it_delivery_note #: model:ir.model.fields,field_description:l10n_it_delivery_note.field_res_partner__default_goods_appearance_id #: model:ir.model.fields,field_description:l10n_it_delivery_note.field_res_users__default_goods_appearance_id @@ -227,6 +243,13 @@ msgstr "" msgid "Attachment Count" msgstr "" +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.res_config_settings_form_view +msgid "" +"Block the validation of incoming DNs if the\n" +" \"Partner reference\" field is not set." +msgstr "" + #. module: l10n_it_delivery_note #: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__can_be_invoiced msgid "Can Be Invoiced" @@ -371,6 +394,7 @@ msgid "Created on" msgstr "" #. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__currency_id #: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_line__currency_id msgid "Currency" msgstr "" @@ -613,6 +637,7 @@ msgstr "" #: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_location__display_name #: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__display_name #: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking_checker_mixin__display_name +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking_type__display_name msgid "Display Name" msgstr "" @@ -628,6 +653,12 @@ msgstr "" msgid "Display Ref. Order in Delivery Note Report" msgstr "" +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_res_company__display_total_in_dn_with_prices +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_res_config_settings__display_total_in_dn_with_prices +msgid "Display total in DN with prices" +msgstr "" + #. module: l10n_it_delivery_note #: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_form_view msgid "Document" @@ -768,6 +799,7 @@ msgstr "" #: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_location__id #: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__id #: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking_checker_mixin__id +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking_type__id msgid "ID" msgstr "" @@ -952,6 +984,7 @@ msgstr "" #: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_location____last_update #: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking____last_update #: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking_checker_mixin____last_update +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking_type____last_update msgid "Last Modified on" msgstr "" @@ -1000,6 +1033,16 @@ msgstr "" msgid "Main Attachment" msgstr "" +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_res_config_settings__group_required_partner_ref +msgid "Make Partner Ref. in DN Mandatory" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:res.groups,name:l10n_it_delivery_note.group_required_partner_ref +msgid "Make Partner Ref. in DN Required" +msgstr "" + #. module: l10n_it_delivery_note #: model:ir.model.fields.selection,name:l10n_it_delivery_note.selection__stock_delivery_note__picking_type__mrp_operation #: model:ir.model.fields.selection,name:l10n_it_delivery_note.selection__stock_delivery_note_create_wizard__picking_type__mrp_operation @@ -1185,6 +1228,11 @@ msgstr "" msgid "Picking Checker Mixin" msgstr "" +#. module: l10n_it_delivery_note +#: model:ir.model,name:l10n_it_delivery_note.model_stock_picking_type +msgid "Picking Type" +msgstr "" + #. module: l10n_it_delivery_note #: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__picking_type #: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_create_wizard__picking_type @@ -1219,6 +1267,11 @@ msgstr "" msgid "Portal Access URL" msgstr "" +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking_type__prevent_dn_create +msgid "Prevent DN's Create" +msgstr "" + #. module: l10n_it_delivery_note #: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.portal_delivery_note_page #: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_form_view @@ -1246,6 +1299,11 @@ msgstr "" msgid "Prints Sale Order numbers on DN report (if there are any)" msgstr "" +#. module: l10n_it_delivery_note +#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.res_config_settings_form_view +msgid "Prints Total Amount on DN report" +msgstr "" + #. module: l10n_it_delivery_note #: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_line__product_id #: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template @@ -1456,6 +1514,11 @@ msgstr "" msgid "Shipping information" msgstr "" +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__show_discount +msgid "Show Discount" +msgstr "" + #. module: l10n_it_delivery_note #: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__show_product_information msgid "Show Product Information" @@ -1491,6 +1554,16 @@ msgstr "" msgid "Summary" msgstr "" +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__dn_supplier_date +msgid "Supplier DN Date" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_picking__dn_supplier_number +msgid "Supplier DN Number" +msgstr "" + #. module: l10n_it_delivery_note #: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.stock_delivery_note_form_view msgid "Tax" @@ -1520,6 +1593,13 @@ msgid "" "picking(s). Are you sure you want to proceed?" msgstr "" +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/models/stock_delivery_note.py:0 +#, python-format +msgid "" +"The field 'Partner reference' is mandatory to validate the Delivery Note." +msgstr "" + #. module: l10n_it_delivery_note #: model:ir.model.fields,help:l10n_it_delivery_note.field_stock_picking__carrier_partner_id msgid "The partner that is doing the delivery service." @@ -1626,6 +1706,11 @@ msgstr "" msgid "Total" msgstr "" +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__amount_total +msgid "Total Amount" +msgstr "" + #. module: l10n_it_delivery_note #: model:ir.model,name:l10n_it_delivery_note.model_stock_picking msgid "Transfer" @@ -1694,6 +1779,16 @@ msgstr "" msgid "Unread Messages Counter" msgstr "" +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_line__untaxed_amount +msgid "Untaxed Amount" +msgstr "" + +#. module: l10n_it_delivery_note +#: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note__untaxed_amount_total +msgid "Untaxed Total Amount" +msgstr "" + #. module: l10n_it_delivery_note #: model:ir.model.fields,field_description:l10n_it_delivery_note.field_stock_delivery_note_line__product_uom_id #: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note.delivery_note_report_template @@ -1828,6 +1923,12 @@ msgid "" "delete the current line and create a new line of the proper type." msgstr "" +#. module: l10n_it_delivery_note +#: code:addons/l10n_it_delivery_note/models/stock_delivery_note.py:0 +#, python-format +msgid "You cannot have different currencies in the lines of aDelivery Note" +msgstr "" + #. module: l10n_it_delivery_note #: code:addons/l10n_it_delivery_note/models/stock_delivery_note.py:0 #: code:addons/l10n_it_delivery_note/models/stock_picking.py:0 diff --git a/l10n_it_delivery_note/migrations/14.0.2.0.0/post-migration.py b/l10n_it_delivery_note/migrations/14.0.2.0.0/post-migration.py deleted file mode 100644 index 1f37ba5ae1f0..000000000000 --- a/l10n_it_delivery_note/migrations/14.0.2.0.0/post-migration.py +++ /dev/null @@ -1,8 +0,0 @@ -from openupgradelib import openupgrade # pylint: disable=W7936 - - -@openupgrade.migrate() -def migrate(env, version): - carriers = env["stock.delivery.note"].search([]).mapped("carrier_id") - if carriers: - carriers.write({"is_carrier": True}) diff --git a/l10n_it_delivery_note/models/__init__.py b/l10n_it_delivery_note/models/__init__.py index 96fc59a422fc..d6d99206e03a 100644 --- a/l10n_it_delivery_note/models/__init__.py +++ b/l10n_it_delivery_note/models/__init__.py @@ -6,3 +6,4 @@ from . import stock_delivery_note from . import stock_location from . import stock_picking +from . import stock_picking_type diff --git a/l10n_it_delivery_note/models/account_invoice.py b/l10n_it_delivery_note/models/account_invoice.py index 0c5a2d383ce1..4ed050e6db31 100644 --- a/l10n_it_delivery_note/models/account_invoice.py +++ b/l10n_it_delivery_note/models/account_invoice.py @@ -149,13 +149,14 @@ def update_delivery_note_lines(self): invoice_line.delivery_note_id = ( note_line.delivery_note_id.id ) - new_lines.append( - ( - 0, - False, - self._prepare_note_dn_value(sequence, dn), + if dn_invoice_lines: + new_lines.append( + ( + 0, + False, + self._prepare_note_dn_value(sequence, dn), + ) ) - ) for invoice_line in dn_invoice_lines: sequence += 1 invoice_line.sequence = sequence diff --git a/l10n_it_delivery_note/models/res_company.py b/l10n_it_delivery_note/models/res_company.py index 729bafa3f378..02dd13a18f55 100644 --- a/l10n_it_delivery_note/models/res_company.py +++ b/l10n_it_delivery_note/models/res_company.py @@ -20,3 +20,7 @@ class ResCompany(models.Model): "Display Delivery Method in Delivery Note Report", default=False, ) + display_total_in_dn_with_prices = fields.Boolean( + "Display total in DN with prices", + default=False, + ) diff --git a/l10n_it_delivery_note/models/res_config_settings.py b/l10n_it_delivery_note/models/res_config_settings.py index c9090e780f99..8d1c9ad39463 100644 --- a/l10n_it_delivery_note/models/res_config_settings.py +++ b/l10n_it_delivery_note/models/res_config_settings.py @@ -17,6 +17,11 @@ def _default_virtual_locations_root(self): implied_group="l10n_it_delivery_note.use_advanced_delivery_notes", ) + group_required_partner_ref = fields.Boolean( + string="Make Partner Ref. in DN Mandatory", + implied_group="l10n_it_delivery_note.group_required_partner_ref", + ) + virtual_locations_root = fields.Many2one( "stock.location", string="Virtual locations root", @@ -44,3 +49,7 @@ def _default_virtual_locations_root(self): related="company_id.display_delivery_method_dn_report", readonly=False, ) + display_total_in_dn_with_prices = fields.Boolean( + related="company_id.display_total_in_dn_with_prices", + readonly=False, + ) diff --git a/l10n_it_delivery_note/models/stock_delivery_note.py b/l10n_it_delivery_note/models/stock_delivery_note.py index 1659618de3b8..ec95237d3ab3 100644 --- a/l10n_it_delivery_note/models/stock_delivery_note.py +++ b/l10n_it_delivery_note/models/stock_delivery_note.py @@ -4,7 +4,7 @@ import datetime from odoo import _, api, fields, models -from odoo.exceptions import UserError +from odoo.exceptions import UserError, ValidationError from ..mixins.picking_checker import ( DOMAIN_PICKING_TYPES, @@ -274,6 +274,22 @@ def _domain_weight_uom(self): sale_count = fields.Integer(compute="_compute_sales") sales_transport_check = fields.Boolean(compute="_compute_sales", default=True) + currency_id = fields.Many2one("res.currency", compute="_compute_currency_id") + + untaxed_amount_total = fields.Monetary( + "Untaxed Total Amount", + compute="_compute_amount_total", + currency_field="currency_id", + store=True, + ) + + amount_total = fields.Monetary( + "Total Amount", + compute="_compute_amount_total", + currency_field="currency_id", + store=True, + ) + invoice_ids = fields.Many2many( "account.move", "stock_delivery_note_account_invoice_rel", @@ -291,6 +307,7 @@ def _domain_weight_uom(self): can_change_number = fields.Boolean(compute="_compute_boolean_flags") show_product_information = fields.Boolean(compute="_compute_boolean_flags") company_id = fields.Many2one("res.company", required=True, default=_default_company) + show_discount = fields.Boolean(compute="_compute_show_discount") _sql_constraints = [ ( @@ -335,6 +352,19 @@ def _compute_invoice_status(self): invoice_status = DOMAIN_INVOICE_STATUSES[1] note.invoice_status = invoice_status + @api.depends("line_ids.currency_id") + def _compute_currency_id(self): + for sdn in self: + sdn.currency_id = sdn.line_ids.mapped("currency_id") + + @api.depends("line_ids.amount", "line_ids.untaxed_amount") + def _compute_amount_total(self): + for sdn in self: + sdn.untaxed_amount_total = ( + sum(line.untaxed_amount or 0.0 for line in sdn.line_ids) or 0.0 + ) + sdn.amount_total = sum(line.amount or 0.0 for line in sdn.line_ids) or 0.0 + def _compute_get_pickings(self): for note in self: note.pickings_picker = note.picking_ids @@ -359,6 +389,13 @@ def _compute_weights(self): note.gross_weight = gross_weight note.net_weight = net_weight + @api.depends("line_ids.discount") + def _compute_show_discount(self): + for sdn in self: + sdn.show_discount = any( + sdn.line_ids.filtered(lambda line: line.discount != 0) + ) + @api.onchange("picking_ids") def _onchange_picking_ids(self): self._compute_weights() @@ -516,6 +553,17 @@ def _onchange_partner_shipping(self): else: self.delivery_method_id = False + @api.constrains("line_ids") + def _check_line_ids(self): + for rec in self: + if len(rec.line_ids.mapped("currency_id")) > 1: + raise ValidationError( + _( + "You cannot have different currencies in the lines of a" + "Delivery Note" + ) + ) + def check_compliance(self, pickings): super().check_compliance(pickings) @@ -544,13 +592,35 @@ def _action_confirm(self): note.date = datetime.date.today() if not note.name: - note.name = sequence.with_context( - ir_sequence_date=note.date - ).next_by_id() + # Avoid duplicates + while True: + name = sequence.with_context( + ir_sequence_date=note.date + ).next_by_id() + if not self.search( + [("name", "=", name), ("company_id", "=", note.company_id.id)] + ): + break + + note.name = name note.sequence_id = sequence def action_confirm(self): for note in self: + if ( + note.type_code == "incoming" + and not note.partner_ref + and self.env.user.has_group( + "l10n_it_delivery_note.group_required_partner_ref" + ) + ): + raise UserError( + _( + "The field 'Partner reference' is " + "mandatory to validate the Delivery Note." + ) + ) + warning_message = False carrier_ids = note.mapped("picking_ids.carrier_id") carrier_partner_ids = carrier_ids.mapped("partner_id") @@ -911,7 +981,7 @@ def _default_unit_uom(self): string="Quantity", digits="Product Unit of Measure", default=1.0 ) product_uom_id = fields.Many2one("uom.uom", string="UoM", default=_default_unit_uom) - price_unit = fields.Monetary(string="Unit price", currency_field="currency_id") + price_unit = fields.Float(string="Unit price", digits="Product Price") currency_id = fields.Many2one( "res.currency", string="Currency", required=True, default=_default_currency ) @@ -946,6 +1016,9 @@ def _default_unit_uom(self): copy=False, ) + untaxed_amount = fields.Monetary(compute="_compute_amount", store=True) + amount = fields.Monetary(compute="_compute_amount", store=True) + _sql_constraints = [ ( "move_uniq", @@ -971,6 +1044,42 @@ def _compute_sale_order_client_ref(self): sdnl.sale_line_id.order_id.client_order_ref or "" ) + @api.depends( + "product_id", + "price_unit", + "discount", + "product_qty", + "tax_ids", + "currency_id", + "delivery_note_id.partner_shipping_id", + ) + def _compute_amount(self): + for sdnl in self: + price = sdnl.price_unit * (100.0 - sdnl.discount or 0.0) / 100.0 + + taxed_amount_data = sdnl._get_taxed_amount() + + sdnl.untaxed_amount = taxed_amount_data.get("total_excluded", price) + sdnl.amount = taxed_amount_data.get("total_included", price) + + def _get_taxed_amount(self): + price = self.price_unit * (100.0 - self.discount or 0.0) / 100.0 + res = {} + if self.tax_ids: + tax_data = self.tax_ids.compute_all( + price, + self.currency_id, + self.product_qty, + product=self.product_id, + partner=self.delivery_note_id.partner_shipping_id, + ) + res.update( + total_excluded=tax_data.get("total_excluded"), + total_included=tax_data.get("total_included"), + taxes=tax_data.get("taxes"), + ) + return res + @api.onchange("product_id") def _onchange_product_id(self): if self.product_id: @@ -994,7 +1103,7 @@ def _onchange_product_id(self): def _prepare_detail_lines(self, moves): lines = [] for move in moves: - + move = move.with_context(lang=move.picking_id.partner_id.lang) name = move.product_id.name if move.product_id.description_sale: name += "\n" + move.product_id.description_sale diff --git a/l10n_it_delivery_note/models/stock_picking.py b/l10n_it_delivery_note/models/stock_picking.py index ed6c49ed1168..95f009e9a534 100644 --- a/l10n_it_delivery_note/models/stock_picking.py +++ b/l10n_it_delivery_note/models/stock_picking.py @@ -99,6 +99,8 @@ class StockPicking(models.Model): delivery_note_readonly = fields.Boolean(compute="_compute_boolean_flags") delivery_note_visible = fields.Boolean(compute="_compute_boolean_flags") can_be_invoiced = fields.Boolean(compute="_compute_boolean_flags") + dn_supplier_number = fields.Char(string="Supplier DN Number", copy=False) + dn_supplier_date = fields.Date(string="Supplier DN Date", copy=False) @property def _delivery_note_fields(self): @@ -124,7 +126,9 @@ def _compute_boolean_flags(self): for picking in self: picking.use_delivery_note = ( - not from_delivery_note and picking.state == DONE_PICKING_STATE + not picking.picking_type_id.prevent_dn_create + and not from_delivery_note + and picking.state == DONE_PICKING_STATE ) picking.delivery_note_visible = use_advanced_behaviour @@ -304,6 +308,9 @@ def _check_delivery_note_consistency(self): ) def _must_create_delivery_note(self): + if self.picking_type_id.prevent_dn_create: + return False + use_advanced_behaviour = self.user_has_groups( "l10n_it_delivery_note.use_advanced_delivery_notes" ) @@ -349,9 +356,7 @@ def _create_delivery_note(self): { "company_id": self.company_id.id, "partner_sender_id": partners[0].id, - "partner_id": self.sale_id.partner_id.id - if self.sale_id - else partners[0].id, + "partner_id": partners[2].id if self.sale_id else partners[0].id, "partner_shipping_id": partners[1].id, "type_id": type_id.id, "date": self.date_done, @@ -387,6 +392,7 @@ def _get_partners(self): partner_id = self.mapped("partner_id") src_location_id = self.mapped("location_id") dest_location_id = self.mapped("location_dest_id") + picking_type_code = self.mapped("picking_type_code") src_warehouse_id = src_location_id.get_warehouse() dest_warehouse_id = dest_location_id.get_warehouse() @@ -395,18 +401,30 @@ def _get_partners(self): dest_partner_id = dest_warehouse_id.partner_id if not src_partner_id: - src_partner_id = partner_id + src_partner_id = ( + self.company_id.partner_id + if picking_type_code == ["outgoing"] + else partner_id + ) - if not dest_partner_id: + if not dest_partner_id: + dest_partner_id = ( + self.company_id.partner_id + if picking_type_code == ["incoming"] + else partner_id + ) + + if self.mapped("sale_id"): + partner_ids = self.mapped("sale_id.partner_invoice_id") + if len(partner_ids) > 1: raise ValueError( - "Fields 'src_partner_id' and 'dest_partner_id' " - "cannot be both unset." + "Multiple partner found for sale order linked to pickings!" ) + partner_id = partner_ids[0] + else: + partner_id = dest_partner_id.commercial_partner_id - elif not dest_partner_id: - dest_partner_id = partner_id - - return (src_partner_id, dest_partner_id) + return (src_partner_id, dest_partner_id, partner_id) def get_partners(self): self._check_delivery_note_consistency() diff --git a/l10n_it_delivery_note/models/stock_picking_type.py b/l10n_it_delivery_note/models/stock_picking_type.py new file mode 100644 index 000000000000..2cc1c8802734 --- /dev/null +++ b/l10n_it_delivery_note/models/stock_picking_type.py @@ -0,0 +1,7 @@ +from odoo import fields, models + + +class StockPickingType(models.Model): + _inherit = "stock.picking.type" + + prevent_dn_create = fields.Boolean("Prevent DN's Create") diff --git a/l10n_it_delivery_note/readme/CONFIGURE.rst b/l10n_it_delivery_note/readme/CONFIGURE.rst index 10751f5cf3ea..cd92df75d1bd 100644 --- a/l10n_it_delivery_note/readme/CONFIGURE.rst +++ b/l10n_it_delivery_note/readme/CONFIGURE.rst @@ -10,6 +10,8 @@ To configure this module, go to: Checking 'Display Delivery Method in Delivery Note Report' enables in report field 'Delivery Method'. + Checking 'Display total in DN with prices' enables in report the 'Import' column and the list of taxes with the sum of the total. + 2. *Inventory → Configuration → Warehouse Management → Delivery Note Types* In delivery note type you can specify if the product price have to be printed in the delivery note report/slip. @@ -19,6 +21,10 @@ To configure this module, go to: - *Inventory → Configuration → Delivery Notes → Reasons of Transport* - *Inventory → Configuration → Delivery Notes → Methods of Transport* -3. *Settings → User & Companies → Users* +3. *Inventory → Configuration → Warehouse Management → Operation Types* + + Checking 'Prevent DN's Create' won't make delivery notes available for every picking of that picking type. + +4. *Settings → User & Companies → Users* In the user profile settings, "Show product information in DN lines" allows showing prices in the form. diff --git a/l10n_it_delivery_note/readme/CONTRIBUTORS.rst b/l10n_it_delivery_note/readme/CONTRIBUTORS.rst index 6447f31e0d37..375f4b367a22 100644 --- a/l10n_it_delivery_note/readme/CONTRIBUTORS.rst +++ b/l10n_it_delivery_note/readme/CONTRIBUTORS.rst @@ -14,3 +14,4 @@ * `PyTech-SRL `_: * Alessandro Uffreduzzi * Sebastiano Picchi +* Sergio Corato diff --git a/l10n_it_delivery_note/report/report_delivery_note.xml b/l10n_it_delivery_note/report/report_delivery_note.xml index fe7d7b385597..93cf2bdc12dd 100644 --- a/l10n_it_delivery_note/report/report_delivery_note.xml +++ b/l10n_it_delivery_note/report/report_delivery_note.xml @@ -172,7 +172,7 @@ Unit price @@ -181,6 +181,12 @@ Taxes + + Amount + Ref. Order @@ -221,7 +227,7 @@ @@ -232,6 +238,12 @@ t-esc="', '.join(map(lambda t: (t.description or t.name), line.tax_ids))" /> + + + @@ -279,6 +291,75 @@ +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + +
    Subtotal + + + +
    + + + + + + + + + +
    Total + +
    +
    +
    +
    + + Make Partner Ref. in DN Required + + + Allow to change delivery note number ITA - Documento di trasporto !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:80f052f286b30d6d177d6bd7b8cbb8c2bd09c4de4879f3c6505822caaaf40f2b +!! source digest: sha256:4e1fa7293a056cc1fcb0296ee154eda41b453e04993ac7e9fdabc6d9143ed79c !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

    Beta License: AGPL-3 OCA/l10n-italy Translate me on Weblate Try me on Runboat

    English

    @@ -418,6 +418,7 @@

    Configuration

    Checking ‘Display Ref. Order in Delivery Note Report’ or ‘Display Ref. Customer in Delivery Note Report” enables in report fields relating DN line to SO (if applicable).

    Checking ‘Display Carrier in Delivery Note Report’ enables in report field ‘Carrier’.

    Checking ‘Display Delivery Method in Delivery Note Report’ enables in report field ‘Delivery Method’.

    +

    Checking ‘Display total in DN with prices’ enables in report the ‘Import’ column and the list of taxes with the sum of the total.

  • Inventory → Configuration → Warehouse Management → Delivery Note Types

    In delivery note type you can specify if the product price have to be printed in the delivery note report/slip.

    @@ -428,6 +429,9 @@

    Configuration

  • Inventory → Configuration → Delivery Notes → Methods of Transport
  • +
  • Inventory → Configuration → Warehouse Management → Operation Types

    +

    Checking ‘Prevent DN’s Create’ won’t make delivery notes available for every picking of that picking type.

    +
  • Settings → User & Companies → Users

    In the user profile settings, “Show product information in DN lines” allows showing prices in the form.

  • @@ -539,6 +543,7 @@

    Contributors

    +
  • Sergio Corato <https://github.com/sergiocorato>
  • diff --git a/l10n_it_delivery_note/tests/test_stock_delivery_note.py b/l10n_it_delivery_note/tests/test_stock_delivery_note.py index e10b2ccd479e..63a696177972 100644 --- a/l10n_it_delivery_note/tests/test_stock_delivery_note.py +++ b/l10n_it_delivery_note/tests/test_stock_delivery_note.py @@ -184,3 +184,176 @@ def test_delivery_action_confirm(self): "different from the shipping method set in picking(s)", warning_context.get("default_warning_message"), ) + + def test_delivery_action_confirm_without_ref(self): + user = new_test_user( + self.env, + login="test", + groups="stock.group_stock_manager," + "l10n_it_delivery_note.use_advanced_delivery_notes," + "l10n_it_delivery_note.group_required_partner_ref", + ) + # change user in order to activate DN advanced settings + self.env.user = user + + picking = self.create_picking( + picking_type_id=self.env.ref("stock.picking_type_in").id, + carrier_id=self.env.ref("delivery.delivery_carrier").id, + ) + picking.move_lines.quantity_done = 1 + picking.button_validate() + + dn_form = Form( + self.env["stock.delivery.note.create.wizard"].with_context( + {"active_id": picking.id, "active_ids": picking.ids} + ) + ) + dn = dn_form.save() + dn.confirm() + + delivery_note_id = picking.delivery_note_id + + with self.assertRaises(UserError) as exc: + delivery_note_id.action_confirm() + exc_message = exc.exception.args[0] + self.assertIn("The field 'Partner reference' is mandatory", exc_message) + + delivery_note_id.partner_ref = "Reference #1234" + delivery_note_id.action_confirm() + + def test_partner_shipping_delivering_single_so(self): + # ⇒ "Ordine singolo: consegna a indirizzo diverso" + self._test_partners() + # ⇒ "Ordine singolo: consegna a indirizzo di consegna e fatturazione diversi" + self._test_partners(test_invoice_partner=True) + + def _test_partners(self, test_invoice_partner=False): + user = new_test_user( + self.env, + login=f"test_{'invoice' if test_invoice_partner else 'shipping'}", + groups="stock.group_stock_manager," + "l10n_it_delivery_note.use_advanced_delivery_notes", + ) + self.env.user = user + partner_shipping = self.create_partner( + "Shipping Address Mario Rossi", user.company_id + ) + partner_shipping.write( + { + "parent_id": self.recipient.id, + "type": "delivery", + } + ) + partner_invoicing = self.create_partner("Invoicing Address", user.company_id) + StockPicking = self.env["stock.picking"] + sales_order = self.create_sales_order( + [ + self.large_desk_line, # 1 + self.desk_combination_line, # 1 + ], + ) + if test_invoice_partner: + sales_order.write( + { + "partner_invoice_id": partner_invoicing.id, + } + ) + self.assertEqual(len(sales_order.order_line), 2) + sales_order.action_confirm() + self.assertEqual(len(sales_order.picking_ids), 1) + picking = sales_order.picking_ids + self.assertEqual(len(picking.move_lines), 2) + + # deliver only the first product + picking.move_lines[0].quantity_done = 1 + res_dict = picking.button_validate() + wizard = Form( + self.env[(res_dict.get("res_model"))] + .with_user(user) + .with_context(res_dict["context"]) + ).save() + wizard.process() + res_dict = picking.action_delivery_note_create() + wizard = Form( + self.env[(res_dict.get("res_model"))] + .with_user(user) + .with_context(res_dict["context"]) + ).save() + wizard.confirm() + self.assertTrue(picking.delivery_note_id) + if test_invoice_partner: + self.assertEqual(picking.delivery_note_id.partner_id, partner_invoicing) + else: + self.assertEqual(picking.delivery_note_id.partner_id, self.recipient) + self.assertEqual(picking.delivery_note_id.partner_shipping_id, partner_shipping) + picking_backorder = StockPicking.search([("backorder_id", "=", picking.id)]) + self.assertEqual(len(picking_backorder.move_lines), 1) + picking_backorder.move_lines[0].quantity_done = 1 + picking_backorder.button_validate() + res_dict = picking_backorder.action_delivery_note_create() + wizard = Form( + self.env[(res_dict.get("res_model"))] + .with_user(user) + .with_context(res_dict["context"]) + ).save() + wizard.confirm() + self.assertTrue(picking_backorder.delivery_note_id) + if test_invoice_partner: + self.assertEqual( + picking_backorder.delivery_note_id.partner_id, partner_invoicing + ) + else: + self.assertEqual( + picking_backorder.delivery_note_id.partner_id, self.recipient + ) + self.assertEqual( + picking_backorder.delivery_note_id.partner_shipping_id, + partner_shipping, + ) + + def test_ddt_line_amount(self): + user = new_test_user( + self.env, + login="test", + groups="stock.group_stock_manager," + "l10n_it_delivery_note.use_advanced_delivery_notes", + ) + + self.env.user = user + + sales_order = self.create_sales_order( + [ + self.large_desk_line, # 1 + self.desk_combination_line, # 1 + ], + ) + + tax_id = self.env["account.tax"].search( + [("type_tax_use", "=", "sale")], limit=1 + ) + + for line in sales_order.order_line: + line.tax_id = [(6, 0, tax_id.ids)] + + sales_order.action_confirm() + picking = sales_order.picking_ids + + # deliver all the products + for move_line in picking.move_lines: + move_line.quantity_done = 1 + + picking.button_validate() + dn_form = Form( + self.env["stock.delivery.note.create.wizard"].with_context( + {"active_id": picking.id, "active_ids": picking.ids} + ) + ) + dn = dn_form.save() + dn.confirm() + + delivery_note_id = picking.delivery_note_id + for note_line in delivery_note_id.line_ids: + self.assertEqual( + note_line.price_unit * note_line.product_qty, note_line.untaxed_amount + ) + self.assertNotEqual(note_line.untaxed_amount, note_line.amount) diff --git a/l10n_it_delivery_note/tests/test_stock_delivery_note_invoicing.py b/l10n_it_delivery_note/tests/test_stock_delivery_note_invoicing.py index 33707ad3fafe..d2fc15fe1e7b 100644 --- a/l10n_it_delivery_note/tests/test_stock_delivery_note_invoicing.py +++ b/l10n_it_delivery_note/tests/test_stock_delivery_note_invoicing.py @@ -1,7 +1,9 @@ from datetime import datetime, timedelta +from odoo.tests import new_test_user from odoo.tests.common import Form +from ..models.stock_delivery_note import DATE_FORMAT from .delivery_note_common import StockDeliveryNoteCommon @@ -1287,3 +1289,93 @@ def test_delivery_note_to_draft_from_create(self): delivery_note.action_draft() self.assertEqual(delivery_note.invoice_status, "no") self.assertEqual(delivery_note.state, "draft") + + def test_invoicing_multiple_dn(self): + user = new_test_user( + self.env, + login="test_multiple_dn", + groups="stock.group_stock_manager," + "l10n_it_delivery_note.use_advanced_delivery_notes", + ) + self.env.user = user + StockPicking = self.env["stock.picking"] + sales_order = self.create_sales_order( + [ + self.right_corner_desk_line, # 2 + self.desk_combination_line, # 1 + ], + ) + self.assertEqual(len(sales_order.order_line), 2) + sales_order.action_confirm() + self.assertEqual(len(sales_order.picking_ids), 1) + picking = sales_order.picking_ids + self.assertEqual(len(picking.move_lines), 2) + + # deliver only half of the first product + picking.move_lines[0].quantity_done = 1 + res_dict = picking.button_validate() + wizard = Form( + self.env[(res_dict.get("res_model"))] + .with_user(user) + .with_context(res_dict["context"]) + ).save() + wizard.process() + res_dict = picking.action_delivery_note_create() + wizard = Form( + self.env[(res_dict.get("res_model"))] + .with_user(user) + .with_context(res_dict["context"]) + ).save() + wizard.confirm() + self.assertTrue(picking.delivery_note_id) + dn = picking.delivery_note_id + self.assertEqual(dn.partner_id, self.recipient) + dn.action_confirm() + dn.action_done() + picking_backorder = StockPicking.search([("backorder_id", "=", picking.id)]) + self.assertEqual(len(picking_backorder.move_lines), 2) + picking_backorder.move_lines[0].quantity_done = 1 + picking_backorder.move_lines[1].quantity_done = 1 + picking_backorder.button_validate() + self.assertEqual(picking_backorder.state, "done") + back_res_dict = picking_backorder.action_delivery_note_create() + back_wizard = Form( + self.env[(back_res_dict.get("res_model"))] + .with_user(user) + .with_context(back_res_dict["context"]) + ).save() + back_wizard.confirm() + self.assertTrue(picking_backorder.delivery_note_id) + back_dn = picking_backorder.delivery_note_id + self.assertEqual(back_dn.partner_id, self.recipient) + back_dn.action_confirm() + back_dn.action_done() + sales_order._create_invoices() + self.assertTrue(len(sales_order.invoice_ids), 1) + invoice = sales_order.invoice_ids + invoice.action_post() + self.assertEqual(invoice.state, "posted") + self.assertEqual( + invoice.invoice_line_ids.filtered( + lambda inv_line: inv_line.product_id.id + == self.right_corner_desk_line[2]["product_id"] + ).quantity, + 2, + ) + self.assertEqual( + invoice.invoice_line_ids.filtered( + lambda inv_line: inv_line.product_id.id + == self.desk_combination_line[2]["product_id"] + ).quantity, + 1, + ) + self.assertEqual(dn.invoice_status, "invoiced") + self.assertEqual(back_dn.invoice_status, "invoiced") + self.assertIn( + f'Delivery Note "{dn.name}" of {dn.date.strftime(DATE_FORMAT)}', + invoice.invoice_line_ids.mapped("name"), + ) + self.assertIn( + f'Delivery Note "{back_dn.name}" of {back_dn.date.strftime(DATE_FORMAT)}', + invoice.invoice_line_ids.mapped("name"), + ) diff --git a/l10n_it_delivery_note/views/res_config_settings.xml b/l10n_it_delivery_note/views/res_config_settings.xml index 09f89de88b8b..215a8e1fbb02 100644 --- a/l10n_it_delivery_note/views/res_config_settings.xml +++ b/l10n_it_delivery_note/views/res_config_settings.xml @@ -28,6 +28,20 @@
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    diff --git a/l10n_it_delivery_note/views/stock_picking.xml b/l10n_it_delivery_note/views/stock_picking.xml index 57f4ed58a341..7ba5fdc66eca 100644 --- a/l10n_it_delivery_note/views/stock_picking.xml +++ b/l10n_it_delivery_note/views/stock_picking.xml @@ -323,6 +323,14 @@ /> + + + + + + + + + + stock.picking.type.form + stock.picking.type + + + + + + + + diff --git a/l10n_it_delivery_note/wizard/delivery_note_base.py b/l10n_it_delivery_note/wizard/delivery_note_base.py index 3073bca0e9db..ae6ed20aa5a9 100644 --- a/l10n_it_delivery_note/wizard/delivery_note_base.py +++ b/l10n_it_delivery_note/wizard/delivery_note_base.py @@ -28,7 +28,9 @@ def _domain_type_id(self): partner_id = fields.Many2one( "res.partner", string="Recipient", compute="_compute_fields" ) - partner_shipping_id = fields.Many2one("res.partner", string="Shipping address") + partner_shipping_id = fields.Many2one( + "res.partner", string="Shipping address", compute="_compute_fields" + ) date = fields.Date(string="Date") type_id = fields.Many2one( @@ -80,6 +82,7 @@ def _compute_fields(self): self.error_message = False self.partner_sender_id = False self.partner_id = False + self.partner_shipping_id = False self.check_compliance(self.selected_picking_ids) except ValidationError: @@ -98,7 +101,8 @@ def _compute_fields(self): self.warning_message = self._get_warning_message() partners = self.selected_picking_ids.get_partners() self.partner_sender_id = partners[0] - self.partner_id = partners[1] + self.partner_shipping_id = partners[1] + self.partner_id = partners[2] def confirm(self): raise NotImplementedError( diff --git a/l10n_it_delivery_note/wizard/delivery_note_create.py b/l10n_it_delivery_note/wizard/delivery_note_create.py index ea090098e54f..4afb99abef1e 100644 --- a/l10n_it_delivery_note/wizard/delivery_note_create.py +++ b/l10n_it_delivery_note/wizard/delivery_note_create.py @@ -31,8 +31,6 @@ def _default_type(self): [("code", "=", "outgoing")], limit=1 ) - partner_shipping_id = fields.Many2one("res.partner", required=True) - date = fields.Date(default=_default_date) type_id = fields.Many2one( "stock.delivery.note.type", default=_default_type, required=True @@ -67,9 +65,11 @@ def _onchange_partner(self): self.check_compliance(self.selected_picking_ids) self.update( { - "partner_shipping_id": self.partner_id, - "partner_id": self.selected_picking_ids.mapped("sale_id.partner_id") - if self.selected_picking_ids.mapped("sale_id.partner_id") + "partner_shipping_id": self.partner_shipping_id, + "partner_id": self.selected_picking_ids.mapped( + "sale_id.partner_invoice_id" + ) + if self.selected_picking_ids.mapped("sale_id.partner_invoice_id") else self.partner_id, } ) @@ -82,8 +82,8 @@ def _prepare_delivery_note_vals(self, sale_order_id): ), "partner_sender_id": self.partner_sender_id.id, "partner_id": ( - self.selected_picking_ids.mapped("sale_id.partner_id").id - if self.selected_picking_ids.mapped("sale_id.partner_id").id + sale_order_id.partner_invoice_id.id + if sale_order_id.partner_invoice_id else self.partner_id.id ), "partner_shipping_id": self.partner_shipping_id.id, diff --git a/l10n_it_delivery_note_base/migrations/14.0.1.0.1/pre-migrate.py b/l10n_it_delivery_note_base/migrations/14.0.1.0.1/pre-migrate.py new file mode 100644 index 000000000000..ff54773922f5 --- /dev/null +++ b/l10n_it_delivery_note_base/migrations/14.0.1.0.1/pre-migrate.py @@ -0,0 +1,25 @@ +# Copyright 2023 Nextev Srl +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +from openupgradelib import openupgrade + + +@openupgrade.migrate() +def migrate(env, version): + # delete ir.sequence model data due to change + # into via code creation for every company + deleted_dn_seq_data = ( + "l10n_it_delivery_note_base.delivery_note_sequence_ddt_incoming", + "l10n_it_delivery_note_base.delivery_note_sequence_ddt", + "l10n_it_delivery_note_base.delivery_note_sequence_ddt_internal", + ) + openupgrade.delete_records_safely_by_xml_id(env, deleted_dn_seq_data) + + # delete stock.delivery.note.type model data due to change + # into via code creation for every company + deleted_dn_type_data = ( + "l10n_it_delivery_note_base.delivery_note_type_incoming_ddt", + "l10n_it_delivery_note_base.delivery_note_type_ddt", + "l10n_it_delivery_note_base.delivery_note_type_priced_ddt", + "l10n_it_delivery_note_base.delivery_note_type_internal_ddt", + ) + openupgrade.delete_records_safely_by_xml_id(env, deleted_dn_type_data) diff --git a/l10n_it_fatturapa/README.rst b/l10n_it_fatturapa/README.rst index 6a11ed4cf960..100518f8361a 100644 --- a/l10n_it_fatturapa/README.rst +++ b/l10n_it_fatturapa/README.rst @@ -7,7 +7,7 @@ ITA - Fattura elettronica - Base !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:06c0cbfb64cdc86d71e0b493e2618dc90d10d5cc279ca5caea25eb62701fd19b + !! source digest: sha256:40ad3b80c05df67593538a42732fa8e3d698e5268e5a89848f803843675d947c !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/l10n_it_fatturapa/__manifest__.py b/l10n_it_fatturapa/__manifest__.py index 5adfbe7db4c3..ceb121ddf1b6 100644 --- a/l10n_it_fatturapa/__manifest__.py +++ b/l10n_it_fatturapa/__manifest__.py @@ -6,7 +6,7 @@ { "name": "ITA - Fattura elettronica - Base", - "version": "14.0.2.1.2", + "version": "14.0.2.2.1", "category": "Localization/Italy", "summary": "Fatture elettroniche", "author": "Davide Corio, Agile Business Group, Innoviu, " diff --git a/l10n_it_fatturapa/models/account.py b/l10n_it_fatturapa/models/account.py index 8ba3bcf2ec2f..9787c7db91ff 100644 --- a/l10n_it_fatturapa/models/account.py +++ b/l10n_it_fatturapa/models/account.py @@ -196,6 +196,9 @@ def create(self, vals): vals["lineRef"] = line.sequence return super(FatturapaRelatedDocumentType, self).create(vals) + def setlineRef(self, n): + self.lineRef = n + class FatturapaActivityProgress(models.Model): # _position = ['2.1.7'] diff --git a/l10n_it_fatturapa/security/ir.model.access.csv b/l10n_it_fatturapa/security/ir.model.access.csv index a789a23d5aba..24ad269723ce 100644 --- a/l10n_it_fatturapa/security/ir.model.access.csv +++ b/l10n_it_fatturapa/security/ir.model.access.csv @@ -15,7 +15,7 @@ access_discount_rise_price,access_discount_rise_price,model_discount_rise_price, access_fatturapa_activity_progress_manager,access_fatturapa_activity_progress_manager,model_fatturapa_activity_progress,account.group_account_manager,1,1,1,1 access_fatturapa_activity_progress,access_fatturapa_activity_progress,model_fatturapa_activity_progress,account.group_account_invoice,1,0,0,0 access_fatturapa_attachments_manager,access_fatturapa_attachments_manager,model_fatturapa_attachments,account.group_account_manager,1,1,1,1 -access_fatturapa_attachments,access_fatturapa_attachments,model_fatturapa_attachments,account.group_account_invoice,1,1,1,1 +access_fatturapa_attachments,access_fatturapa_attachments,model_fatturapa_attachments,account.group_account_invoice,1,0,0,0 access_fatturapa_related_ddt_manager,access_fatturapa_related_ddt_manager,model_fatturapa_related_ddt,account.group_account_manager,1,1,1,1 access_fatturapa_related_ddt,access_fatturapa_related_ddt,model_fatturapa_related_ddt,account.group_account_invoice,1,0,0,0 access_fatturapa_summary_data_manager,access_fatturapa_summary_data_manager,model_fatturapa_summary_data,account.group_account_manager,1,1,1,1 diff --git a/l10n_it_fatturapa/static/description/index.html b/l10n_it_fatturapa/static/description/index.html index 1f64eb78c3a9..f0fcd8deef06 100644 --- a/l10n_it_fatturapa/static/description/index.html +++ b/l10n_it_fatturapa/static/description/index.html @@ -1,4 +1,3 @@ - @@ -367,7 +366,7 @@

    ITA - Fattura elettronica - Base

    !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:06c0cbfb64cdc86d71e0b493e2618dc90d10d5cc279ca5caea25eb62701fd19b +!! source digest: sha256:40ad3b80c05df67593538a42732fa8e3d698e5268e5a89848f803843675d947c !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

    Beta License: AGPL-3 OCA/l10n-italy Translate me on Weblate Try me on Runboat

    Italiano

    diff --git a/l10n_it_fatturapa_import_zip/README.rst b/l10n_it_fatturapa_import_zip/README.rst index 356fee617755..575915447b4c 100644 --- a/l10n_it_fatturapa_import_zip/README.rst +++ b/l10n_it_fatturapa_import_zip/README.rst @@ -7,7 +7,7 @@ ITA - Fattura elettronica - Import ZIP !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:eb6631494623d9b19127ff9ad977338e515e4c54b1e66c0badfdca24cd97795c + !! source digest: sha256:cda6887b706ab4415b182a215db2c3123cced344521036bc7a519547445e78c4 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/l10n_it_fatturapa_import_zip/__manifest__.py b/l10n_it_fatturapa_import_zip/__manifest__.py index 2e6c65277cef..ffcb1618b846 100644 --- a/l10n_it_fatturapa_import_zip/__manifest__.py +++ b/l10n_it_fatturapa_import_zip/__manifest__.py @@ -5,7 +5,7 @@ "name": "ITA - Fattura elettronica - Import ZIP", "summary": "Permette di importare in uno ZIP diversi file XML di " "fatture elettroniche", - "version": "14.0.1.0.1", + "version": "14.0.1.0.2", "category": "Localization/Italy", "website": "https://github.com/OCA/l10n-italy", "author": "TAKOBI, Odoo Community Association (OCA)", diff --git a/l10n_it_fatturapa_import_zip/models/attachment.py b/l10n_it_fatturapa_import_zip/models/attachment.py index 74a8a9733309..16dc7fdde31c 100644 --- a/l10n_it_fatturapa_import_zip/models/attachment.py +++ b/l10n_it_fatturapa_import_zip/models/attachment.py @@ -164,7 +164,9 @@ def action_import(self): ) .create({}) ) - wizard.importFatturaPA() + wizard.with_context( + fatturapa_in_skip_no_it_vat_check=True + ).importFatturaPA() self.env.company.in_invoice_registration_date = ( original_in_invoice_registration_date ) diff --git a/l10n_it_fatturapa_import_zip/static/description/index.html b/l10n_it_fatturapa_import_zip/static/description/index.html index 68fa8277fe16..8346fc18ab71 100644 --- a/l10n_it_fatturapa_import_zip/static/description/index.html +++ b/l10n_it_fatturapa_import_zip/static/description/index.html @@ -366,7 +366,7 @@

    ITA - Fattura elettronica - Import ZIP

    !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:eb6631494623d9b19127ff9ad977338e515e4c54b1e66c0badfdca24cd97795c +!! source digest: sha256:cda6887b706ab4415b182a215db2c3123cced344521036bc7a519547445e78c4 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

    Beta License: AGPL-3 OCA/l10n-italy Translate me on Weblate Try me on Runboat

    Italiano

    diff --git a/l10n_it_fatturapa_in/README.rst b/l10n_it_fatturapa_in/README.rst index 96ab83cd1821..2e9d75193ed6 100644 --- a/l10n_it_fatturapa_in/README.rst +++ b/l10n_it_fatturapa_in/README.rst @@ -7,7 +7,7 @@ ITA - Fattura elettronica - Ricezione !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:3ab67aef3ed2653d413617f4bfd5f2d5a9d5fc549b1c6f0f13011cb4b1bb0838 + !! source digest: sha256:cc05448ce3232200bd1642ebd528668b38bb4b39d6bbc211801c78ba74ed72c7 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/l10n_it_fatturapa_in/__manifest__.py b/l10n_it_fatturapa_in/__manifest__.py index 284ebaed5547..808f4a5ca0c9 100644 --- a/l10n_it_fatturapa_in/__manifest__.py +++ b/l10n_it_fatturapa_in/__manifest__.py @@ -6,7 +6,7 @@ { "name": "ITA - Fattura elettronica - Ricezione", - "version": "14.0.2.2.1", + "version": "14.0.2.2.2", "development_status": "Beta", "category": "Localization/Italy", "summary": "Ricezione fatture elettroniche", diff --git a/l10n_it_fatturapa_in/models/account.py b/l10n_it_fatturapa_in/models/account.py index 4c3f2e578628..befe77a6fdc0 100644 --- a/l10n_it_fatturapa_in/models/account.py +++ b/l10n_it_fatturapa_in/models/account.py @@ -323,14 +323,23 @@ def process_negative_lines(self): for line in self.invoice_line_ids: if line.price_unit >= 0: return - # if every line is negative, change them all + # if every line is negative, change them all, and change move type + if self.fiscal_document_type_id.code == "TD01": + self.move_type = "in_refund" for line in self.invoice_line_ids: - line.with_context(check_move_validity=False).update( - {"price_unit": -line.price_unit} - ) - self.with_context(check_move_validity=False)._recompute_dynamic_lines( - recompute_all_taxes=True - ) + line = line.with_context(check_move_validity=False) + line.update({"price_unit": -line.price_unit}) + line._onchange_price_subtotal() + line._onchange_mark_recompute_taxes() + self.with_context(check_move_validity=False)._onchange_invoice_line_ids() + for line in self.line_ids: + if ( + not line.amount_currency + and self.company_id.currency_id.id == self.currency_id.id + ): + # force updating amount_currency, + # computed like in account.move.line.create + line.update({"amount_currency": line.balance}) class FatturapaArticleCode(models.Model): diff --git a/l10n_it_fatturapa_in/static/description/index.html b/l10n_it_fatturapa_in/static/description/index.html index 407663b3daa1..373bcddccc1a 100644 --- a/l10n_it_fatturapa_in/static/description/index.html +++ b/l10n_it_fatturapa_in/static/description/index.html @@ -1,4 +1,3 @@ - @@ -367,7 +366,7 @@

    ITA - Fattura elettronica - Ricezione

    !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:3ab67aef3ed2653d413617f4bfd5f2d5a9d5fc549b1c6f0f13011cb4b1bb0838 +!! source digest: sha256:cc05448ce3232200bd1642ebd528668b38bb4b39d6bbc211801c78ba74ed72c7 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

    Beta License: AGPL-3 OCA/l10n-italy Translate me on Weblate Try me on Runboat

    Italiano

    diff --git a/l10n_it_fatturapa_in/tests/data/IT02098391200_FPR16.xml b/l10n_it_fatturapa_in/tests/data/IT02098391200_FPR16.xml new file mode 100644 index 000000000000..2550b44d878c --- /dev/null +++ b/l10n_it_fatturapa_in/tests/data/IT02098391200_FPR16.xml @@ -0,0 +1,123 @@ + + + + + + + + + + IT + 05979361218 + + + 56Fvy + FPR12 + 0000000 + + + + + + + + + IT + 02780790107 + + + 02780790107 + + + SOCIETA' ALPHA SRL + + + RF01 + + + + + VIALE ROMA 543 + 07100 + SASSARI + SS + IT + + + + + + + + 03533590174 + + BETA GAMMA + + + + VIA TORINO 38-B + 00145 + ROMA + RM + IT + + + + + + + + + + + TD01 + EUR + 2023-01-23 + 2023/131703/1 + -1.83 + LA FATTURA FA RIFERIMENTO AD UNA OPERAZIONE AAAA BBBBBBBBBBBBBBBBBB CCC DDDDDDDDDDDDDDD E FFFFFFFFFFFFFFFFFFFF GGGGGGGGGG HHHHHHH II LLLLLLLLLLLLLLLLL MMM NNNNN OO PPPPPPPPPPP QQQQ RRRR SSSSSSSSSSSSSS + SEGUE DESCRIZIONE CAUSALE NEL CASO IN CUI NON SIANO STATI SUFFICIENTI 200 CARATTERI AAAAAAAAAAA BBBBBBBBBBBBBBBBB + + + + + + + + 10 + Quota fissa Fognatura + 10.00 + 2022-01-01 + 2022-04-19 + -0.15 + -1.50 + 22.00 + + + + + + 22.00 + -1.50 + -0.33 + I + IVA al 22% + + + + + + + TP02 + + + MP19 + 2023-02-22 + 0.00 + + + + + + + diff --git a/l10n_it_fatturapa_in/tests/test_import_fatturapa_xml.py b/l10n_it_fatturapa_in/tests/test_import_fatturapa_xml.py index afa2c56b6c84..9ba64ab2c0b2 100644 --- a/l10n_it_fatturapa_in/tests/test_import_fatturapa_xml.py +++ b/l10n_it_fatturapa_in/tests/test_import_fatturapa_xml.py @@ -984,6 +984,21 @@ def vat_partner_exists(): ), ) + def test_54_xml_import(self): + """ + Test: Negative invoice (TD01) is correctly imported, + converted all values to positive and set move_type to in_refund + """ + res = self.run_wizard("test54", "IT02098391200_FPR16.xml") + invoice_id = res.get("domain")[0][2][0] + invoice = self.invoice_model.browse(invoice_id) + self.assertEqual(invoice.amount_untaxed, 1.5) + self.assertEqual(invoice.amount_total, 1.83) + self.assertEqual(invoice.invoice_line_ids[0].price_unit, 0.15) + self.assertEqual(invoice.invoice_line_ids[0].quantity, 10.0) + self.assertEqual(invoice.invoice_line_ids[0].price_subtotal, 1.5) + self.assertEqual(invoice.move_type, "in_refund") + def test_01_xml_link(self): """ E-invoice lines are created. diff --git a/l10n_it_fatturapa_in_rc/README.rst b/l10n_it_fatturapa_in_rc/README.rst index 6d3ecbe44734..03facad9d076 100644 --- a/l10n_it_fatturapa_in_rc/README.rst +++ b/l10n_it_fatturapa_in_rc/README.rst @@ -7,7 +7,7 @@ ITA - Fattura elettronica - Inversione contabile !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:f148585816c5b69b1e489070e81235ad132d2ae520f2aeee16342c67a3adb170 + !! source digest: sha256:c24470bdf1e8bfff06e5654e772c3a4249fdf660533778e78d0e6a1d46646012 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/l10n_it_fatturapa_in_rc/__manifest__.py b/l10n_it_fatturapa_in_rc/__manifest__.py index a906afde9144..81f747b63a63 100644 --- a/l10n_it_fatturapa_in_rc/__manifest__.py +++ b/l10n_it_fatturapa_in_rc/__manifest__.py @@ -3,7 +3,7 @@ { "name": "ITA - Fattura elettronica - Inversione contabile", "summary": "Modulo ponte tra e-fattura in acquisto e inversione" " contabile", - "version": "14.0.1.1.1", + "version": "14.0.1.1.2", "development_status": "Beta", "category": "Hidden", "website": "https://github.com/OCA/l10n-italy", diff --git a/l10n_it_fatturapa_in_rc/static/description/index.html b/l10n_it_fatturapa_in_rc/static/description/index.html index 084d6fadac80..cd15d599a513 100644 --- a/l10n_it_fatturapa_in_rc/static/description/index.html +++ b/l10n_it_fatturapa_in_rc/static/description/index.html @@ -1,4 +1,3 @@ - @@ -367,7 +366,7 @@

    ITA - Fattura elettronica - Inversione contabile

    !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:f148585816c5b69b1e489070e81235ad132d2ae520f2aeee16342c67a3adb170 +!! source digest: sha256:c24470bdf1e8bfff06e5654e772c3a4249fdf660533778e78d0e6a1d46646012 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

    Beta License: AGPL-3 OCA/l10n-italy Translate me on Weblate Try me on Runboat

    Modulo ponte tra ricezione fatture elettroniche fornitore e inversione contabile.

    diff --git a/l10n_it_fatturapa_in_rc/wizard/wizard_import_fatturapa.py b/l10n_it_fatturapa_in_rc/wizard/wizard_import_fatturapa.py index 8cfea748851b..001c93b8f984 100644 --- a/l10n_it_fatturapa_in_rc/wizard/wizard_import_fatturapa.py +++ b/l10n_it_fatturapa_in_rc/wizard/wizard_import_fatturapa.py @@ -46,3 +46,11 @@ def set_invoice_line_ids( if rc_ita_fp: invoice.fiscal_position_id = rc_ita_fp return res + + def _prepareInvoiceLineAliquota(self, credit_account_id, line, nline): + retLine = super(WizardImportFatturapa, self)._prepareInvoiceLineAliquota( + credit_account_id, line, nline + ) + if float(line.AliquotaIVA) == 0.0 and line.Natura.startswith("N6"): + retLine["rc"] = True + return retLine diff --git a/l10n_it_fatturapa_out/README.rst b/l10n_it_fatturapa_out/README.rst index 571766594b5b..ded13c64f1f5 100644 --- a/l10n_it_fatturapa_out/README.rst +++ b/l10n_it_fatturapa_out/README.rst @@ -7,7 +7,7 @@ ITA - Fattura elettronica - Emissione !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:61bcdeed659ebf56eeb773a1fd8bdfcaa2e52243848c17a05ca408d2bc81061d + !! source digest: sha256:435d8f4a86fc94e249f36da52293569b6f768443b4afe0487de6c33abafa7c55 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/l10n_it_fatturapa_out/__manifest__.py b/l10n_it_fatturapa_out/__manifest__.py index c35560ca1ebc..4e407f6a7d14 100644 --- a/l10n_it_fatturapa_out/__manifest__.py +++ b/l10n_it_fatturapa_out/__manifest__.py @@ -6,7 +6,7 @@ { "name": "ITA - Fattura elettronica - Emissione", - "version": "14.0.3.4.4", + "version": "14.0.3.5.1", "development_status": "Beta", "category": "Localization/Italy", "summary": "Emissione fatture elettroniche", diff --git a/l10n_it_fatturapa_out/data/invoice_it_template.xml b/l10n_it_fatturapa_out/data/invoice_it_template.xml index 49d737617f9a..3144e3786a91 100644 --- a/l10n_it_fatturapa_out/data/invoice_it_template.xml +++ b/l10n_it_fatturapa_out/data/invoice_it_template.xml @@ -41,35 +41,35 @@ e 'line' per riga di fattura (a seconda del livello in cui sono chiamati) t-foreach="line.related_documents.filtered(lambda doc: doc.type == 'order')" t-as="doc" > - + - + - + - + - + diff --git a/l10n_it_fatturapa_out/static/description/index.html b/l10n_it_fatturapa_out/static/description/index.html index 62fd8dc40ee7..72f2269678b9 100644 --- a/l10n_it_fatturapa_out/static/description/index.html +++ b/l10n_it_fatturapa_out/static/description/index.html @@ -1,4 +1,3 @@ - @@ -367,7 +366,7 @@

    ITA - Fattura elettronica - Emissione

    !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:61bcdeed659ebf56eeb773a1fd8bdfcaa2e52243848c17a05ca408d2bc81061d +!! source digest: sha256:435d8f4a86fc94e249f36da52293569b6f768443b4afe0487de6c33abafa7c55 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

    Beta License: AGPL-3 OCA/l10n-italy Translate me on Weblate Try me on Runboat

    Italiano

    diff --git a/l10n_it_fatturapa_out/tests/data/IT06363391001_00017.xml b/l10n_it_fatturapa_out/tests/data/IT06363391001_00017.xml new file mode 100644 index 000000000000..e55421023915 --- /dev/null +++ b/l10n_it_fatturapa_out/tests/data/IT06363391001_00017.xml @@ -0,0 +1,113 @@ + + + + + + IT + 06363391001 + + 00017 + FPA12 + UFPQ1O + + 06543534343 + info@yourcompany.example.com + + + + + + IT + 06363391001 + + + YourCompany + + RF01 + + + Via Milano, 1 + 00100 + Roma + AK + IT + + + 06543534343 + info@yourcompany.example.com + + + + + + IT + 06363391001 + + 06363391001 + + Public Administration + + + + Via Roma, 1 + 10100 + Torino + AK + IT + + + + + + + TD01 + EUR + 2016-06-15 + INV/2016/0014 + 17.08 + prima riga + seconda riga + SI + + + 2 + PO123 + 456 + 123 + + + + + 1 + Mouse, Optical + 1.000 + Unit(s) + 10.00000 + 10.00 + 22.00 + + + 2 + Zed+ Antivirus + 1.000 + Unit(s) + 4.00000 + 4.00 + 22.00 + + + 22.00 + 14.00 + 3.08 + + + + TP02 + + MP05 + 2016-07-31 + 17.08 + + + + diff --git a/l10n_it_fatturapa_out/tests/test_fatturapa_xml_validation.py b/l10n_it_fatturapa_out/tests/test_fatturapa_xml_validation.py index ac64e1e76a64..3246e2bcf3f4 100644 --- a/l10n_it_fatturapa_out/tests/test_fatturapa_xml_validation.py +++ b/l10n_it_fatturapa_out/tests/test_fatturapa_xml_validation.py @@ -781,6 +781,80 @@ def test_16_xml_export(self): xml_content = base64.decodebytes(attachment.datas) self.check_content(xml_content, "IT06363391001_00016.xml") + def test_17_line_related_documents(self): + # this test is similar to test_2_xml_export, but the related document + # refers to a line, not the whole invoice + invoice = self.invoice_model.create( + { + "name": "INV/2016/0014", + "invoice_date": "2016-06-15", + "partner_id": self.res_partner_fatturapa_0.id, + "journal_id": self.sales_journal.id, + # "account_id": self.a_recv.id, + "invoice_payment_term_id": self.account_payment_term.id, + "user_id": self.user_demo.id, + "move_type": "out_invoice", + "currency_id": self.EUR.id, + "narration": "prima riga\nseconda riga", + "invoice_line_ids": [ + ( + 0, + 0, + { + "account_id": self.a_sale.id, + "product_id": self.product_product_10.id, + "name": "Mouse, Optical", + "quantity": 1, + "product_uom_id": self.product_uom_unit.id, + "price_unit": 10, + "tax_ids": [(6, 0, {self.tax_22.id})], + "sequence": 10, + }, + ), + ( + 0, + 0, + { + "account_id": self.a_sale.id, + "product_id": self.product_order_01.id, + "name": "Zed+ Antivirus", + "quantity": 1, + "product_uom_id": self.product_uom_unit.id, + "price_unit": 4, + "tax_ids": [(6, 0, {self.tax_22.id})], + "sequence": 20, + "related_documents": [ + ( + 0, + 0, + { + "type": "order", + "name": "PO123", + "cig": "123", + "cup": "456", + }, + ) + ], + }, + ), + ], + } + ) + invoice._post() + # by default, lineRef is assigned from sequence, potentially a wrong guess + self.assertEqual(invoice.line_ids[1].related_documents[0].lineRef, 20) + + res = self.run_wizard(invoice.id) + + # lineRef is assigned by the template to its actual output value in the XML + self.assertEqual(invoice.line_ids[1].related_documents[0].lineRef, 2) + + attachment = self.attach_model.browse(res["res_id"]) + self.set_e_invoice_file_id(attachment, "IT06363391001_00017.xml") + + xml_content = base64.decodebytes(attachment.datas) + self.check_content(xml_content, "IT06363391001_00017.xml") + def test_no_tax_fail(self): """ - create an invoice with a product line without taxes diff --git a/l10n_it_fatturapa_out/wizard/wizard_export_fatturapa.py b/l10n_it_fatturapa_out/wizard/wizard_export_fatturapa.py index d333c1f776f3..a66be30be421 100644 --- a/l10n_it_fatturapa_out/wizard/wizard_export_fatturapa.py +++ b/l10n_it_fatturapa_out/wizard/wizard_export_fatturapa.py @@ -302,7 +302,7 @@ def generate_attach_report(self, inv): "mimetype": "application/x-pdf", } ) - inv.write( + inv.sudo().write( { "fatturapa_doc_attachments": [ ( diff --git a/l10n_it_fatturapa_out_di/README.rst b/l10n_it_fatturapa_out_di/README.rst index 5e6a999c1f1f..096637c58f92 100644 --- a/l10n_it_fatturapa_out_di/README.rst +++ b/l10n_it_fatturapa_out_di/README.rst @@ -7,7 +7,7 @@ ITA - Fattura elettronica - Emissione - Dichiarazione d'intento !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:f31fb6612df8de2bf93b5e7c2e59276d4280529050f216d5ab69c1977b704840 + !! source digest: sha256:347b7f5c6029e1c73c6e7f43c4b8e7069c3016603b9fd16761a4418dd73920e3 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/l10n_it_fatturapa_out_di/__manifest__.py b/l10n_it_fatturapa_out_di/__manifest__.py index 89838261da2b..1d43b0809ad2 100644 --- a/l10n_it_fatturapa_out_di/__manifest__.py +++ b/l10n_it_fatturapa_out_di/__manifest__.py @@ -2,7 +2,7 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). { "name": "ITA - Fattura elettronica - Emissione - Dichiarazione d'intento", - "version": "14.0.1.0.3", + "version": "14.0.1.0.5", "development_status": "Beta", "category": "Localization/Italy", "summary": "Dichiarazioni d'intento in fatturapa", diff --git a/l10n_it_fatturapa_out_di/static/description/index.html b/l10n_it_fatturapa_out_di/static/description/index.html index d3ee443b2c9d..44ebbd8b0c9a 100644 --- a/l10n_it_fatturapa_out_di/static/description/index.html +++ b/l10n_it_fatturapa_out_di/static/description/index.html @@ -1,4 +1,3 @@ - @@ -367,7 +366,7 @@

    ITA - Fattura elettronica - Emissione - Dichiarazione d’inte !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:f31fb6612df8de2bf93b5e7c2e59276d4280529050f216d5ab69c1977b704840 +!! source digest: sha256:347b7f5c6029e1c73c6e7f43c4b8e7069c3016603b9fd16761a4418dd73920e3 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

    Beta License: AGPL-3 OCA/l10n-italy Translate me on Weblate Try me on Runboat

    Italiano

    diff --git a/l10n_it_fatturapa_out_di/tests/data/IT06363391001_00001.xml b/l10n_it_fatturapa_out_di/tests/data/IT06363391001_00001.xml index e1c2bda02e54..8b52142db326 100644 --- a/l10n_it_fatturapa_out_di/tests/data/IT06363391001_00001.xml +++ b/l10n_it_fatturapa_out_di/tests/data/IT06363391001_00001.xml @@ -68,7 +68,7 @@ 2016-06-15 INV/2016/06/0001 14.00 - Vostra dichiarazione d'intento nr DI/111 del 06/15/2016, nostro protocollo nr 1 del 06/15/2016, protocollo telematico nr 08060120341234567-000001. + Vostra dichiarazione d'intento del 06/15/2016, protocollo telematico nr 08060120341234567-000001. SI diff --git a/l10n_it_fatturapa_out_di/tests/data/IT06363391001_00002.xml b/l10n_it_fatturapa_out_di/tests/data/IT06363391001_00002.xml index a0d96b6e5f94..a78ad188b6a5 100644 --- a/l10n_it_fatturapa_out_di/tests/data/IT06363391001_00002.xml +++ b/l10n_it_fatturapa_out_di/tests/data/IT06363391001_00002.xml @@ -68,7 +68,7 @@ 2016-06-15 INV/2016/06/0001 14.00 - Vostra dichiarazione d'intento nr DI/111 del 06/15/2016, nostro protocollo nr 1 del 06/15/2016, protocollo telematico nr 08060120341234567-000001. + Vostra dichiarazione d'intento del 06/15/2016, protocollo telematico nr 08060120341234567-000001. SI diff --git a/l10n_it_fatturapa_out_di/tests/data/IT06363391001_00003.xml b/l10n_it_fatturapa_out_di/tests/data/IT06363391001_00003.xml index ef1d399b9d63..90df7612c604 100644 --- a/l10n_it_fatturapa_out_di/tests/data/IT06363391001_00003.xml +++ b/l10n_it_fatturapa_out_di/tests/data/IT06363391001_00003.xml @@ -68,7 +68,7 @@ 2016-06-15 INV/2016/06/0001 14.00 - Vostra dichiarazione d'intento nr DI/112 del 06/15/2016, nostro protocollo nr 1 del 06/15/2016, protocollo telematico nr 08060120341234567-000002. + Vostra dichiarazione d'intento del 06/15/2016, protocollo telematico nr 08060120341234567-000002. SI diff --git a/l10n_it_fatturapa_out_di/tests/test_fatturapa_xml_validation.py b/l10n_it_fatturapa_out_di/tests/test_fatturapa_xml_validation.py index 294937eb1348..83ade3d48001 100644 --- a/l10n_it_fatturapa_out_di/tests/test_fatturapa_xml_validation.py +++ b/l10n_it_fatturapa_out_di/tests/test_fatturapa_xml_validation.py @@ -32,6 +32,9 @@ def setUp(self): self.env.company.fatturapa_fiscal_position_id = self.env.ref( "l10n_it_fatturapa.fatturapa_RF01" ).id + self.env.company.declaration_yearly_limit_ids = [ + (0, 0, {"year": 2016, "limit_amount": 500}) + ] self.env.ref("product.decimal_product_uom").digits = 3 self.env.ref("uom.product_uom_unit").name = "Unit(s)" diff --git a/l10n_it_fatturapa_out_oss/README.rst b/l10n_it_fatturapa_out_oss/README.rst new file mode 100644 index 000000000000..69c8c6677f17 --- /dev/null +++ b/l10n_it_fatturapa_out_oss/README.rst @@ -0,0 +1,91 @@ +=========================================== +ITA - Fattura elettronica - Emissione - OSS +=========================================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:88fe86904abb0356b30b42262b7e64b67957992e2cd4a8321bf89c57f7168ef9 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png + :target: https://odoo-community.org/page/development-status + :alt: Alpha +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fl10n--italy-lightgray.png?logo=github + :target: https://github.com/OCA/l10n-italy/tree/14.0/l10n_it_fatturapa_out_oss + :alt: OCA/l10n-italy +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/l10n-italy-14-0/l10n-italy-14-0-l10n_it_fatturapa_out_oss + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/l10n-italy&target_branch=14.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +**Italiano** + +Modulo tecnico di integrazione tra l10n_eu_oss e l10n_it_fatturapa_out + +**English** + +Technical module for integrating l10n_eu_oss and l10n_it_fatturapa_out + +.. IMPORTANT:: + This is an alpha version, the data model and design can change at any time without warning. + Only for development or testing purpose, do not use in production. + `More details on development status `_ + +**Table of contents** + +.. contents:: + :local: + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Sergio Corato + +Contributors +~~~~~~~~~~~~ + +* Sergio Corato + +* `TAKOBI `_: + + * Lorenzo Battistini + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +This module is part of the `OCA/l10n-italy `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/l10n_it_fatturapa_out_oss/__init__.py b/l10n_it_fatturapa_out_oss/__init__.py new file mode 100644 index 000000000000..f5b388c3a40a --- /dev/null +++ b/l10n_it_fatturapa_out_oss/__init__.py @@ -0,0 +1,13 @@ +from . import wizard +from odoo import api, SUPERUSER_ID + + +def _l10n_it_fatturapa_out_oss_post_init(cr, registry): + env = api.Environment(cr, SUPERUSER_ID, {}) + oss_taxes = env["account.tax"].search([("oss_country_id", "!=", False)]) + oss_taxes.write( + { + "kind_id": env.ref("l10n_it_account_tax_kind.n3_2").id, + "law_reference": "Art. 41 D.L. 331/1993", + } + ) diff --git a/l10n_it_fatturapa_out_oss/__manifest__.py b/l10n_it_fatturapa_out_oss/__manifest__.py new file mode 100644 index 000000000000..8795b30e619b --- /dev/null +++ b/l10n_it_fatturapa_out_oss/__manifest__.py @@ -0,0 +1,22 @@ +# Copyright 2022 Sergio Corato +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +{ + "name": "ITA - Fattura elettronica - Emissione - OSS", + "version": "14.0.1.0.0", + "development_status": "Alpha", + "category": "Localization/Italy", + "summary": "OSS in fatturapa", + "author": "Sergio Corato," "Odoo Community Association (OCA)", + "website": "https://github.com/OCA/l10n-italy", + "license": "AGPL-3", + "depends": [ + "l10n_it_fatturapa_out", + "l10n_eu_oss", + ], + "data": [ + "data/invoice_it_template.xml", + ], + "installable": True, + "auto_install": True, + "post_init_hook": "_l10n_it_fatturapa_out_oss_post_init", +} diff --git a/l10n_it_fatturapa_out_oss/data/invoice_it_template.xml b/l10n_it_fatturapa_out_oss/data/invoice_it_template.xml new file mode 100644 index 000000000000..665c7d5d8498 --- /dev/null +++ b/l10n_it_fatturapa_out_oss/data/invoice_it_template.xml @@ -0,0 +1,71 @@ + + + + + + + + diff --git a/l10n_it_fatturapa_out_oss/i18n/it.po b/l10n_it_fatturapa_out_oss/i18n/it.po new file mode 100644 index 000000000000..bb48c336f679 --- /dev/null +++ b/l10n_it_fatturapa_out_oss/i18n/it.po @@ -0,0 +1,28 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_it_fatturapa_out_oss +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-06-22 16:56+0000\n" +"PO-Revision-Date: 2023-04-26 16:05+0000\n" +"Last-Translator: mymage \n" +"Language-Team: \n" +"Language: it\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.14.1\n" + +#. module: l10n_it_fatturapa_out_oss +#: model:ir.model,name:l10n_it_fatturapa_out_oss.model_wizard_export_fatturapa +msgid "Export E-invoice" +msgstr "Esporta E-fattura" + +#. module: l10n_it_fatturapa_out_oss +#: model:ir.model,name:l10n_it_fatturapa_out_oss.model_l10n_eu_oss_wizard +msgid "l10n.eu.oss.wizard" +msgstr "l10n.eu.oss.wizard" diff --git a/l10n_it_fatturapa_out_oss/i18n/l10n_it_fatturapa_out_oss.pot b/l10n_it_fatturapa_out_oss/i18n/l10n_it_fatturapa_out_oss.pot new file mode 100644 index 000000000000..f80f7fe37b20 --- /dev/null +++ b/l10n_it_fatturapa_out_oss/i18n/l10n_it_fatturapa_out_oss.pot @@ -0,0 +1,52 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_it_fatturapa_out_oss +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: l10n_it_fatturapa_out_oss +#: model_terms:ir.ui.view,arch_db:l10n_it_fatturapa_out_oss.fatturapa_out_oss_fattura_elettronica_body +msgid "0.00" +msgstr "" + +#. module: l10n_it_fatturapa_out_oss +#: model:ir.model.fields,field_description:l10n_it_fatturapa_out_oss.field_l10n_eu_oss_wizard__display_name +#: model:ir.model.fields,field_description:l10n_it_fatturapa_out_oss.field_wizard_export_fatturapa__display_name +msgid "Display Name" +msgstr "" + +#. module: l10n_it_fatturapa_out_oss +#: model:ir.model,name:l10n_it_fatturapa_out_oss.model_wizard_export_fatturapa +msgid "Export E-invoice" +msgstr "" + +#. module: l10n_it_fatturapa_out_oss +#: model:ir.model.fields,field_description:l10n_it_fatturapa_out_oss.field_l10n_eu_oss_wizard__id +#: model:ir.model.fields,field_description:l10n_it_fatturapa_out_oss.field_wizard_export_fatturapa__id +msgid "ID" +msgstr "" + +#. module: l10n_it_fatturapa_out_oss +#: model:ir.model.fields,field_description:l10n_it_fatturapa_out_oss.field_l10n_eu_oss_wizard____last_update +#: model:ir.model.fields,field_description:l10n_it_fatturapa_out_oss.field_wizard_export_fatturapa____last_update +msgid "Last Modified on" +msgstr "" + +#. module: l10n_it_fatturapa_out_oss +#: model_terms:ir.ui.view,arch_db:l10n_it_fatturapa_out_oss.fatturapa_out_oss_line_it_FatturaPA +msgid "OSS" +msgstr "" + +#. module: l10n_it_fatturapa_out_oss +#: model:ir.model,name:l10n_it_fatturapa_out_oss.model_l10n_eu_oss_wizard +msgid "l10n.eu.oss.wizard" +msgstr "" diff --git a/l10n_it_fatturapa_out_oss/readme/CONTRIBUTORS.rst b/l10n_it_fatturapa_out_oss/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000000..93b7071d7825 --- /dev/null +++ b/l10n_it_fatturapa_out_oss/readme/CONTRIBUTORS.rst @@ -0,0 +1,5 @@ +* Sergio Corato + +* `TAKOBI `_: + + * Lorenzo Battistini diff --git a/l10n_it_fatturapa_out_oss/readme/DESCRIPTION.rst b/l10n_it_fatturapa_out_oss/readme/DESCRIPTION.rst new file mode 100644 index 000000000000..111d9fb76340 --- /dev/null +++ b/l10n_it_fatturapa_out_oss/readme/DESCRIPTION.rst @@ -0,0 +1,7 @@ +**Italiano** + +Modulo tecnico di integrazione tra l10n_eu_oss e l10n_it_fatturapa_out + +**English** + +Technical module for integrating l10n_eu_oss and l10n_it_fatturapa_out diff --git a/l10n_it_fatturapa_out_oss/static/description/icon.png b/l10n_it_fatturapa_out_oss/static/description/icon.png new file mode 100644 index 000000000000..3a0328b516c4 Binary files /dev/null and b/l10n_it_fatturapa_out_oss/static/description/icon.png differ diff --git a/l10n_it_fatturapa_out_oss/static/description/index.html b/l10n_it_fatturapa_out_oss/static/description/index.html new file mode 100644 index 000000000000..9af231b5aaf4 --- /dev/null +++ b/l10n_it_fatturapa_out_oss/static/description/index.html @@ -0,0 +1,434 @@ + + + + + + +ITA - Fattura elettronica - Emissione - OSS + + + +
    +

    ITA - Fattura elettronica - Emissione - OSS

    + + +

    Alpha License: AGPL-3 OCA/l10n-italy Translate me on Weblate Try me on Runboat

    +

    Italiano

    +

    Modulo tecnico di integrazione tra l10n_eu_oss e l10n_it_fatturapa_out

    +

    English

    +

    Technical module for integrating l10n_eu_oss and l10n_it_fatturapa_out

    +
    +

    Important

    +

    This is an alpha version, the data model and design can change at any time without warning. +Only for development or testing purpose, do not use in production. +More details on development status

    +
    +

    Table of contents

    + +
    +

    Bug Tracker

    +

    Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +feedback.

    +

    Do not contact contributors directly about support or help with technical issues.

    +
    +
    +

    Credits

    +
    +

    Authors

    +
      +
    • Sergio Corato
    • +
    +
    +
    +

    Contributors

    + +
    +
    +

    Maintainers

    +

    This module is maintained by the OCA.

    +Odoo Community Association +

    OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

    +

    This module is part of the OCA/l10n-italy project on GitHub.

    +

    You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

    +
    +
    +
    + + diff --git a/l10n_it_fatturapa_out_oss/tests/__init__.py b/l10n_it_fatturapa_out_oss/tests/__init__.py new file mode 100644 index 000000000000..c4c14b87a47c --- /dev/null +++ b/l10n_it_fatturapa_out_oss/tests/__init__.py @@ -0,0 +1,2 @@ +from . import fatturapa_common +from . import test_fatturapa_xml_validation diff --git a/l10n_it_fatturapa_out_oss/tests/data/IT06363391001_00001.xml b/l10n_it_fatturapa_out_oss/tests/data/IT06363391001_00001.xml new file mode 100644 index 000000000000..e3a977f39d03 --- /dev/null +++ b/l10n_it_fatturapa_out_oss/tests/data/IT06363391001_00001.xml @@ -0,0 +1,106 @@ + + + + + + IT + 06363391001 + + 00001 + FPR12 + XXXXXXX + + 06543534343 + info@yourcompany.example.com + + + + + + IT + 06363391001 + + + company_1_data + + RF01 + + + Via Milano, 1 + 00100 + Roma + AK + IT + + + 06543534343 + info@yourcompany.example.com + + + + + + AT + 99999999999 + + + EU + B2C Customer + + + + 11 Wien St + 00000 + Wolfsgraben + EE + AT + + + + + + + TD01 + EUR + 2022-02-28 + INV/2022/02/0001 + 16.80 + + + + + 1 + Cabinet with Doors + 1.00 + Units + 14.00000 + 14.00 + 0.00 + N3.2 + + OSS + 20.00 + + + + 0.00 + N3.2 + 14.00 + 0.00 + NON IMPONIBILE ART. 41 COMMA 1, LETT. B + + + + TP02 + + MP05 + 2022-03-31 + 16.80 + + + + diff --git a/l10n_it_fatturapa_out_oss/tests/data/IT06363391001_00002.xml b/l10n_it_fatturapa_out_oss/tests/data/IT06363391001_00002.xml new file mode 100644 index 000000000000..ea05525d5c75 --- /dev/null +++ b/l10n_it_fatturapa_out_oss/tests/data/IT06363391001_00002.xml @@ -0,0 +1,98 @@ + + + + + + IT + 06363391001 + + 00002 + FPR12 + XXXXXXX + + 06543534343 + info@yourcompany.example.com + + + + + + IT + 06363391001 + + + company_1_data + + RF01 + + + Via Milano, 1 + 00100 + Roma + AK + IT + + + 06543534343 + info@yourcompany.example.com + + + + + + AT + 99999999999 + + + EU + B2C Customer + + + + 11 Wien St + 00000 + Wolfsgraben + EE + AT + + + + + + + TD01 + EUR + 2023-02-28 + INV/2023/02/0001 + 17.08 + + + + + 1 + Cabinet with Doors + 1.00 + Units + 14.00000 + 14.00 + 22.00 + + + 22.00 + 14.00 + 3.08 + + + + TP02 + + MP05 + 2023-03-31 + 17.08 + + + + diff --git a/l10n_it_fatturapa_out_oss/tests/fatturapa_common.py b/l10n_it_fatturapa_out_oss/tests/fatturapa_common.py new file mode 100644 index 000000000000..bc9b86919ee8 --- /dev/null +++ b/l10n_it_fatturapa_out_oss/tests/fatturapa_common.py @@ -0,0 +1,18 @@ +from odoo.addons.l10n_it_fatturapa_out.tests.fatturapa_common import ( + FatturaPACommon as _FatturaPACommon, +) + + +class FatturaPACommon(_FatturaPACommon): + def setUp(self): + super().setUp() + + def getAttachment(self, name, module_name=None): + if module_name is None: + module_name = "l10n_it_fatturapa_out_oss" + return super().getAttachment(name, module_name) + + def getFile(self, filename, module_name=None): + if module_name is None: + module_name = "l10n_it_fatturapa_out_oss" + return super().getFile(filename, module_name) diff --git a/l10n_it_fatturapa_out_oss/tests/test_fatturapa_xml_validation.py b/l10n_it_fatturapa_out_oss/tests/test_fatturapa_xml_validation.py new file mode 100644 index 000000000000..2ed40a67d0c8 --- /dev/null +++ b/l10n_it_fatturapa_out_oss/tests/test_fatturapa_xml_validation.py @@ -0,0 +1,114 @@ +# Copyright 2022 Sergio Corato +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +import base64 + +from odoo import fields +from odoo.tests import Form, tagged + +from .fatturapa_common import FatturaPACommon + + +@tagged("post_install", "-at_install") +class TestInvoiceOss(FatturaPACommon): + def setUp(self): + super().setUp() + + self.env.company.vat = "IT06363391001" + self.env.company.fatturapa_art73 = False + self.env.company.partner_id.street = "Via Milano, 1" + self.env.company.partner_id.city = "Roma" + self.env.company.partner_id.state_id = self.env.ref("base.state_us_2").id + self.env.company.partner_id.zip = "00100" + self.env.company.partner_id.phone = "06543534343" + self.env.company.email = "info@yourcompany.example.com" + self.env.company.partner_id.country_id = self.env.ref("base.it").id + self.env.company.fatturapa_fiscal_position_id = self.env.ref( + "l10n_it_fatturapa.fatturapa_RF01" + ).id + + self.product_product_10.write({"taxes_id": [(6, 0, self.tax_22.ids)]}) + + tax1_form = Form(self.env["account.tax"]) + tax1_form.name = "OSS AU" + tax1_form.amount = 20.0 + tax1_form.kind_id = self.env.ref("l10n_it_account_tax_kind.n3_2") + tax1_form.law_reference = "NON IMPONIBILE ART. 41 COMMA 1, LETT. B" + self.tax1 = tax1_form.save() + self.tax1.oss_country_id = self.env.ref("base.at").id + + fp_form = Form(self.env["account.fiscal.position"]) + fp_form.name = "OSS Test" + with fp_form.tax_ids.new() as tax_form: + tax_form.tax_src_id = self.tax_22 + tax_form.tax_dest_id = self.tax1 + self.fiscal_position = fp_form.save() + + self.eu_b2c_customer = self.env["res.partner"].create( + { + "name": "EU B2C Customer", + "customer_rank": 1, + "is_company": False, + "street": "11 Wien St", + "is_pa": False, + "city": "Wolfsgraben", + "zip": "12345", + "country_id": self.env.ref("base.at").id, + "codice_destinatario": "XXXXXXX", + } + ) + + def _create_invoice(self, date): + move_form = Form( + self.env["account.move"].with_context(default_move_type="out_invoice") + ) + move_form.invoice_date = fields.Date.from_string(date) + move_form.partner_id = self.eu_b2c_customer + move_form.invoice_payment_term_id = self.env.ref( + "account.account_payment_term_end_following_month" + ) + with move_form.invoice_line_ids.new() as line_form: + line_form.product_id = self.product_product_10 + line_form.quantity = 1 + line_form.product_uom_id = self.product_uom_unit + line_form.price_unit = 14.0 + line_form.account_id = self.a_sale + line_form.tax_ids.add(self.tax_22) + account_move = move_form.save() + return account_move + + def test_1_oss_xml_export(self): + date = "2022-02-28" + invoice = self._create_invoice(date) + move_form = Form(invoice) + move_form.fiscal_position_id = self.fiscal_position + with move_form.invoice_line_ids.edit(0) as line_form: + line_form.tax_ids.clear() + line_form.tax_ids.add(self.tax1) + invoice = move_form.save() + self.assertEqual( + fields.first(invoice.invoice_line_ids).tax_ids[:1].name, + self.tax1.name, + ) + invoice.action_post() + + res = self.run_wizard(invoice.id) + attachment = self.attach_model.browse(res["res_id"]) + self.set_e_invoice_file_id(attachment, "IT06363391001_00001.xml") + xml_content = base64.decodebytes(attachment.datas) + self.check_content(xml_content, "IT06363391001_00001.xml") + + def test_2_oss_xml_export(self): + date = "2023-02-28" + invoice = self._create_invoice(date) + self.assertEqual( + fields.first(invoice.invoice_line_ids).tax_ids[:1].name, + self.tax_22.name, + ) + invoice.action_post() + + res = self.run_wizard(invoice.id) + attachment = self.attach_model.browse(res["res_id"]) + self.set_e_invoice_file_id(attachment, "IT06363391001_00002.xml") + xml_content = base64.decodebytes(attachment.datas) + self.check_content(xml_content, "IT06363391001_00002.xml") diff --git a/l10n_it_fatturapa_out_oss/wizard/__init__.py b/l10n_it_fatturapa_out_oss/wizard/__init__.py new file mode 100644 index 000000000000..d16abc16e349 --- /dev/null +++ b/l10n_it_fatturapa_out_oss/wizard/__init__.py @@ -0,0 +1,2 @@ +from . import l10n_eu_oss_wizard +from . import wizard_export_fatturapa diff --git a/l10n_it_fatturapa_out_oss/wizard/l10n_eu_oss_wizard.py b/l10n_it_fatturapa_out_oss/wizard/l10n_eu_oss_wizard.py new file mode 100644 index 000000000000..38e873a9778b --- /dev/null +++ b/l10n_it_fatturapa_out_oss/wizard/l10n_eu_oss_wizard.py @@ -0,0 +1,12 @@ +from odoo import models + + +class L10nEuOssWizard(models.TransientModel): + _inherit = "l10n.eu.oss.wizard" + + def _prepare_tax_vals(self, country, tax, rate, tax_group): + vals = super(L10nEuOssWizard, self)._prepare_tax_vals( + country, tax, rate, tax_group + ) + vals["kind_id"] = self.env.ref("l10n_it_account_tax_kind.n3_2").id + return vals diff --git a/l10n_it_fatturapa_out_oss/wizard/wizard_export_fatturapa.py b/l10n_it_fatturapa_out_oss/wizard/wizard_export_fatturapa.py new file mode 100644 index 000000000000..b284b2906636 --- /dev/null +++ b/l10n_it_fatturapa_out_oss/wizard/wizard_export_fatturapa.py @@ -0,0 +1,13 @@ +from odoo import api, models + + +class WizardExportFatturapa(models.TransientModel): + _inherit = "wizard.export.fatturapa" + + @api.model + def getAllTaxes(self, invoice): + out = super().getAllTaxes(invoice) + for tax_line_id in out: + tax_line = self.env["account.tax"].browse(tax_line_id) + out[tax_line_id]["Oss Country"] = tax_line.oss_country_id + return out diff --git a/l10n_it_fatturapa_pec/README.rst b/l10n_it_fatturapa_pec/README.rst index e8c62375719f..fdab0ea0b63a 100644 --- a/l10n_it_fatturapa_pec/README.rst +++ b/l10n_it_fatturapa_pec/README.rst @@ -7,7 +7,7 @@ ITA - Fattura elettronica - Supporto PEC !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:1a8dc7f85df785a5b0f95a90fa3f2a0399fd92999b2bfe7d363a16de14ed9403 + !! source digest: sha256:da04d83146e70f42ea042610b209110c039dbe404695f258294d6ab4b5186818 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/l10n_it_fatturapa_pec/__manifest__.py b/l10n_it_fatturapa_pec/__manifest__.py index f13b33da09ed..38b7b23b8ba7 100644 --- a/l10n_it_fatturapa_pec/__manifest__.py +++ b/l10n_it_fatturapa_pec/__manifest__.py @@ -8,7 +8,7 @@ { "name": "ITA - Fattura elettronica - Supporto PEC", - "version": "14.0.2.4.2", + "version": "14.0.2.5.0", "category": "Localization/Italy", "summary": "Invio fatture elettroniche tramite PEC", "author": "Openforce Srls Unipersonale, Odoo Community Association (OCA)", diff --git a/l10n_it_fatturapa_pec/models/sdi.py b/l10n_it_fatturapa_pec/models/sdi.py index 8a6a4ffbd621..8a2c8ce733d5 100644 --- a/l10n_it_fatturapa_pec/models/sdi.py +++ b/l10n_it_fatturapa_pec/models/sdi.py @@ -121,10 +121,10 @@ def send_via_pec(self, attachment_out_ids): self._check_fetchmail() self.check_first_pec_sending() user = self.env.user - company = user.company_id for att in attachment_out_ids: if not att.datas or not att.name: raise UserError(_("File content and file name are mandatory")) + company = att.company_id mail_message = self.env["mail.message"].create( { "model": att._name, @@ -135,8 +135,8 @@ def send_via_pec(self, attachment_out_ids): att.name, company.email_exchange_system ), "attachment_ids": [(6, 0, att.ir_attachment_id.ids)], - "email_from": (company.email_from_for_fatturaPA), - "reply_to": (company.email_from_for_fatturaPA), + "email_from": company.email_from_for_fatturaPA, + "reply_to": company.email_from_for_fatturaPA, "mail_server_id": company.sdi_channel_id.pec_server_id.id, } ) diff --git a/l10n_it_fatturapa_pec/static/description/index.html b/l10n_it_fatturapa_pec/static/description/index.html index f3809b6d2e0c..c974b93aa22f 100644 --- a/l10n_it_fatturapa_pec/static/description/index.html +++ b/l10n_it_fatturapa_pec/static/description/index.html @@ -366,7 +366,7 @@

    ITA - Fattura elettronica - Supporto PEC

    !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:1a8dc7f85df785a5b0f95a90fa3f2a0399fd92999b2bfe7d363a16de14ed9403 +!! source digest: sha256:da04d83146e70f42ea042610b209110c039dbe404695f258294d6ab4b5186818 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

    Beta License: AGPL-3 OCA/l10n-italy Translate me on Weblate Try me on Runboat

    Italiano

    diff --git a/l10n_it_intrastat/README.rst b/l10n_it_intrastat/README.rst index 0724f0a9d7c9..4f629dae6706 100644 --- a/l10n_it_intrastat/README.rst +++ b/l10n_it_intrastat/README.rst @@ -7,7 +7,7 @@ ITA - Intrastat !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:a1d3a2a70b9143fa3a20ae6162b2afdba38a60a731e7969f3f2418ccbfdf35a9 + !! source digest: sha256:c266d931bab660a09e2294b22cc93bdcfe295fbf2c148f3a0fcaaeec62c13ec7 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/l10n_it_intrastat/__manifest__.py b/l10n_it_intrastat/__manifest__.py index ea88bd4ccd64..96033eee518b 100644 --- a/l10n_it_intrastat/__manifest__.py +++ b/l10n_it_intrastat/__manifest__.py @@ -4,7 +4,7 @@ { "name": "ITA - Intrastat", - "version": "14.0.1.4.0", + "version": "14.0.1.4.2", "category": "Account", "summary": "Riclassificazione merci e servizi per dichiarazioni Intrastat", "author": "Openforce, Link IT srl, Agile Business Group, " diff --git a/l10n_it_intrastat/i18n/it.po b/l10n_it_intrastat/i18n/it.po index 583b278662e8..e94f99a7e764 100644 --- a/l10n_it_intrastat/i18n/it.po +++ b/l10n_it_intrastat/i18n/it.po @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: Odoo Server 12.0+e-20191007\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-09-16 15:53+0000\n" -"PO-Revision-Date: 2024-02-14 17:36+0000\n" +"PO-Revision-Date: 2024-02-15 17:36+0000\n" "Last-Translator: mymage \n" "Language-Team: \n" "Language: it\n" @@ -4437,8 +4437,8 @@ msgid "" "Axminster carpets of man-made textile materials, woven, not tufted or " "flocked, of pile construction, made up" msgstr "" -"Tappeti \"Axminster\" di materie tessili sintetiche o artificiali, tessuti," -"tessuti (non \"tufted\" né \"floccati\"), vellutati, confezionati" +"Tappeti Axminster di materie tessili sintetiche o artificiali, tessuti, non " +"tufted né floccati, vellutati, confezionati" #. module: l10n_it_intrastat #: model:report.intrastat.code,description:l10n_it_intrastat.intrastat_category_2014_57023210 @@ -5599,7 +5599,7 @@ msgstr "" #. module: l10n_it_intrastat #: model:report.intrastat.code,description:l10n_it_intrastat.intrastat_category_2014_74072110 msgid "Bars and rods, of copper-zinc base alloys \"brass\", n.e.s." -msgstr "Barre di ottone" +msgstr "Barre e profilati di leghe a base di rame-zinco \"ottone\", n.n.a." #. module: l10n_it_intrastat #: model:report.intrastat.code,description:l10n_it_intrastat.intrastat_category_2014_72139910 @@ -18935,7 +18935,7 @@ msgid "" "conductors, n.e.s." msgstr "" "Conduttori elettrici, diversi da quelli delle precedenti voci 8544, per " -"tensioni > 1 000 V, con conduttori di rame" +"tensioni > 1 000 V, con conduttori di rame, n.n.a." #. module: l10n_it_intrastat #: model:report.intrastat.code,description:l10n_it_intrastat.intrastat_category_2014_85444995 @@ -25080,16 +25080,16 @@ msgid "" "sale, mixes and doughs for preparation of bakers' wares and goods in " "subheading 1901.90.91)" msgstr "" -"Preparazioni alimentari a base di farina, semole, semolini, amido o estratti " -"di malto, non contenenti cacao o contenenti cacao in proporzione in peso < " -"40%, calcolata su base totalmente sgrassata, e preparazioni alimentari a " -"base di latte, panna., burro di latte, latte acido , panna. acida, siero di " -"latte, yogurt, kephir o prodotti simili delle voci da 0401 a 0404, non " -"contenenti cacao o contenenti cacao in proporzione in peso < 5%, calcolato " -"su base totalmente sgrassata, n.n.a. (escl. estratti di malto e preparazioni " -"per alimenti per l'infanzia, destinte alla vendita al minuto miscele e " -"impasti per la preparazione di prodotti da forno e prodotti delle sottovoci " -"1901 90 91 e 1901 90 95)" +"Preparazioni alimentari a base di farina, semola, semolino, amido o estratto " +"di malto, non contenenti cacao o contenenti cacao in una proporzione in peso " +"< 40%, calcolata su una base completamente sgrassata, e preparazioni " +"alimentari a base di latte, panna, burro di latte, latte acido , panna " +"acida, siero di latte, yogurt, kefir o prodotti simili delle voci da 0401 a " +"0404, non contenenti cacao o contenenti cacao in una proporzione, in peso, < " +"5%, calcolata su una base completamente sgrassata, n.n.a. (escl. estratti di " +"malto e preparazioni per alimenti per l'infanzia, condizionati per la " +"vendita al minuto, miscele e impasti per la preparazione di prodotti della " +"panetteria e prodotti della sottovoce 1901.90.91)" #. module: l10n_it_intrastat #: model:report.intrastat.code,description:l10n_it_intrastat.intrastat_category_2014_21069098 @@ -27380,7 +27380,7 @@ msgid "" "Fresh or chilled sea bream \"Sparidae\" (excl. gilt-head sea bream, Dentex " "dentex and Pagellus spp.)" msgstr "" -"Orate fresche o refrigerate (Sparidae) (escl. orate orate, Dentex dentex e " +"Orate \"Sparidae\" fresche o refrigerate (escl. orate, Dentex dentex e " "Pagellus spp.)" #. module: l10n_it_intrastat @@ -27696,7 +27696,7 @@ msgstr "Mandorle, fresche o secche, sgusciate (escl. mandorle amare)" #. module: l10n_it_intrastat #: model:report.intrastat.code,description:l10n_it_intrastat.intrastat_category_2014_08028000 msgid "Fresh or dried areca nuts, whether or not shelled or peeled" -msgstr "Noci di di arec fresche o secche anche sgusciate e pelate" +msgstr "Noci di arec fresche o secche anche sgusciate e pelate" #. module: l10n_it_intrastat #: model:report.intrastat.code,description:l10n_it_intrastat.intrastat_category_2014_08044000 @@ -30646,7 +30646,7 @@ msgid "" "primarily for human consumption, n.e.s." msgstr "" "Noccioli e mandorle e altri prodotti vegetali, dei tipi utilizzati " -"principalmente per il consumo umano, non nominate altrove" +"principalmente per il consumo umano, n.n.a." #. module: l10n_it_intrastat #: model:report.intrastat.code,description:l10n_it_intrastat.intrastat_category_2014_19059060 @@ -34190,9 +34190,8 @@ msgid "" "Hairpins, curling pins, curling grips, hair-curlers and the like, and parts " "thereof, n.e.s. (excl. electro-thermic appliances of heading 8516)" msgstr "" -"Spille per capelli, ferma-ricci, ondulatori, bigodini e simili, e loro " -"parti; parti di pettini da toletta e da ornamento e di fermagli per capelli " -"e simili" +"Forcine, forcine, mollette, bigodini e simili, e loro parti, n.n.a. (escl. " +"apparecchi elettrotermici della voce 8516)" #. module: l10n_it_intrastat #: model:report.intrastat.code,description:l10n_it_intrastat.intrastat_category_2014_16041994 @@ -34255,9 +34254,8 @@ msgid "" "Halogenated derivatives of acyclic hydrocarbons containing two or more " "different halogens, halogenated only with fluorine and chlorine, n.e.s." msgstr "" -"Derivati alogenati degli idrocarburi aciclici, alogenati unicamente con " -"fluoro e cloro (escl. del metano, etano o propano (HCFC)), non nominati " -"altrove" +"Derivati alogenati di idrocarburi aciclici contenenti due o più alogeni " +"diversi, alogenati unicamente con fluoro e cloro, n.n.a." #. module: l10n_it_intrastat #: model:report.intrastat.code,description:l10n_it_intrastat.intrastat_category_2014_29037911 @@ -47414,9 +47412,8 @@ msgid "" "Mixtures and preparations of animal or vegetable fats and oils and of " "fractions of various fats and oils, inedible, n.e.s., in chapter 15" msgstr "" -"Miscugli e preparazioni di grassi ed oli animali o vegetali nonchè di " -"frazioni di differenti grassi ed oli di questo capitolo, non alimentari, n.n." -"a." +"Miscele e preparazioni di grassi e di oli animali o vegetali e di frazioni " +"di diversi grassi e oli, non alimentari, n.n.a., nel capitolo 15" #. module: l10n_it_intrastat #: model:report.intrastat.code,description:l10n_it_intrastat.intrastat_category_2014_38249087 @@ -55321,7 +55318,7 @@ msgstr "" #. module: l10n_it_intrastat #: model:report.intrastat.code,description:l10n_it_intrastat.intrastat_category_2014_90289010 msgid "Parts and accessories for electricity meters, n.e.s." -msgstr "Parti ed accessori di contatori elettrici" +msgstr "Parti ed accessori di contatori elettrici, n.n.a." #. module: l10n_it_intrastat #: model:report.intrastat.code,description:l10n_it_intrastat.intrastat_category_2014_90129090 @@ -55427,7 +55424,7 @@ msgid "" "and checking, n.e.s." msgstr "" "Parti ed accessori di strumenti, apparecchi e macchine di misura e " -"controllo, non nominati altrove" +"controllo, non nominati altrove, n.n.a." #. module: l10n_it_intrastat #: model:report.intrastat.code,description:l10n_it_intrastat.intrastat_category_2014_90139090 @@ -56811,8 +56808,8 @@ msgstr "" #: model:report.intrastat.code,description:l10n_it_intrastat.intrastat_category_2014_84399900 msgid "Parts of machinery for making or finishing paper or paperboard, n.e.s." msgstr "" -"Parti di macchinari per la fabbricazione o la finitura della carta o " -"cartone, non nominate altrove" +"Parti di macchine per la produzione o la finitura della carta o del cartone, " +"n.n.a." #. module: l10n_it_intrastat #: model:report.intrastat.code,description:l10n_it_intrastat.intrastat_category_2014_84399100 @@ -58223,8 +58220,8 @@ msgid "" "Perhalogenated derivatives of acyclic hydrocarbons containing two or more " "different halogens, n.e.s." msgstr "" -"Derivati peralogenati degli idrocarburi aciclici contenenti almeno due " -"alogeni diversi, non nominati altrove" +"Derivati peralogenati di idrocarburi aciclici contenenti due o più alogeni " +"diversi, n.n.a." #. module: l10n_it_intrastat #: model:report.intrastat.code,description:l10n_it_intrastat.intrastat_category_2014_85051990 @@ -60839,11 +60836,12 @@ msgid "" "into squares or rectangles (excl. self-adhesive products, and floor, wall " "and ceiling coverings of heading 3918)" msgstr "" -"Lastre, piastre, fogli, pellicole, nastri e strisce di cellulosa rigenerata, " -"non alveolare, non stampati, non rinforzati, stratificati, nè parimenti " -"associati ad altre materie, senza supporto, non lavorati o lavorati più " -"volte in superficie o tagliati in forma quadrata o rettangolare, di spessore " -"> 0,10 mm, n.n.a." +"Lastre, fogli, pellicole, strisce e nastri di cellulosa rigenerata non " +"alveolare, non rinforzati, stratificati, supportati o similmente combinati " +"con altre materie, senza supporto, grezzi o semplicemente lavorati in " +"superficie o semplicemente tagliati in quadrati o rettangoli (escl. -" +"prodotti adesivi e rivestimenti per pavimenti, pareti e soffitti della voce " +"3918)" #. module: l10n_it_intrastat #: model:report.intrastat.code,description:l10n_it_intrastat.intrastat_category_2014_39206300 @@ -65191,11 +65189,9 @@ msgid "" "power, combined with sound-reproducing apparatus with laser reading system " "(excl. pocket-size radiocassette players)" msgstr "" -"Radioricevitori che possono funzionare senza sorgente di energia esterna, " -"incl. gli apparecchi che possono anche ricevere la radiotelefonia e la " -"radiotelegrafia, combinati con un apparecchio per la la riproduzione del " -"suono con sistema di lettura mediante fascio laser (escl. radiocassette " -"tascabili)" +"Apparecchi riceventi per la radiodiffusione in grado di funzionare senza " +"fonte di energia esterna, combinati con apparecchi per la riproduzione del " +"suono con sistema di lettura laser (escl. radiolettori tascabili)" #. module: l10n_it_intrastat #: model:report.intrastat.code,description:l10n_it_intrastat.intrastat_category_2014_85271900 @@ -86290,7 +86286,7 @@ msgid "" msgstr "" "Vermut ed altri vini di uve fresche preparati con piante o sostanze " "aromatiche, in recipienti di capacità fino a 2 litri, con titolo " -"alcolometrico fino a 18% vol." +"alcolometrico fino a 18% vol" #. module: l10n_it_intrastat #: model:report.intrastat.code,description:l10n_it_intrastat.intrastat_category_2014_22051090 @@ -86301,7 +86297,7 @@ msgid "" msgstr "" "Vermut ed altri vini di uve fresche preparati con piante o sostanze " "aromatiche, in recipienti di capacità fino a 2 litri, con titolo " -"alcolometrico > 18% vol." +"alcolometrico > 18% vol" #. module: l10n_it_intrastat #: model:report.intrastat.code,description:l10n_it_intrastat.intrastat_category_2014_22059010 @@ -86310,9 +86306,9 @@ msgid "" "substances, in containers holding > 2 l, of actual alcoholic strength of <= " "18% vol" msgstr "" -"Vermut ed altri vini di uve fresche preparati con piante o sostanze " -"aromatiche, in recipienti di capacità > 2 litri, con titolo alcolometrico " -"fino a 18% vol." +"Vermouth e altri vini di uve fresche, aromatizzati con piante o sostanze " +"aromatiche, in recipienti di capacità > 2 l, con titolo alcolometrico " +"effettivo <= 18% vol" #. module: l10n_it_intrastat #: model:report.intrastat.code,description:l10n_it_intrastat.intrastat_category_2014_22059090 @@ -86323,7 +86319,7 @@ msgid "" msgstr "" "Vermut ed altri vini di uve fresche preparati con piante o sostanze " "aromatiche, in recipienti di capacità > 2 litri, con titolo alcolometrico > " -"18% vol." +"18% vol" #. module: l10n_it_intrastat #: model:report.intrastat.code,description:l10n_it_intrastat.522216 @@ -87692,8 +87688,8 @@ msgid "" "Watch straps, watch bands and watch bracelets, and parts thereof, of base " "metal, whether or not gold- or silver-plated, n.e.s." msgstr "" -"Cinturini e braccialetti per orologi, di metalli comuni, anche dorati o " -"argentati, e loro parti" +"Cinturini per orologi, cinturini e braccialetti per orologi, e loro parti, " +"di metalli comuni, anche dorati o argentati, n.n.a." #. module: l10n_it_intrastat #: model:report.intrastat.code,description:l10n_it_intrastat.intrastat_category_2014_91131090 @@ -87701,8 +87697,8 @@ msgid "" "Watch straps, watch bands and watch bracelets, and parts thereof, of metal " "clad with precious metal, n.e.s." msgstr "" -"Cinturini e braccialetti per orologi, di metalli placcati o ricoperti di " -"metalli preziosi, e loro parti" +"Cinturini per orologi, cinturini e braccialetti per orologi, e loro parti, " +"di metallo placcato con metalli preziosi, n.n.a." #. module: l10n_it_intrastat #: model:report.intrastat.code,description:l10n_it_intrastat.intrastat_category_2014_91131010 @@ -87710,7 +87706,8 @@ msgid "" "Watch straps, watch bands and watch bracelets, and parts thereof, of " "precious metal, n.e.s." msgstr "" -"Cinturini e braccialetti per orologi, di metalli preziosi, e loro parti" +"Cinturini per orologi, cinturini e braccialetti per orologi, e loro parti, " +"in metalli preziosi, n.n.a." #. module: l10n_it_intrastat #: model:report.intrastat.code,description:l10n_it_intrastat.intrastat_category_2014_84243001 @@ -87912,7 +87909,7 @@ msgstr "" msgid "" "Weighing machine weights of all kinds; parts of weighing machinery, n.e.s." msgstr "" -"Pesi per qualsiasi bilancia, parti di apparecchi o strumenti per pesare" +"Pesi per pesatrici di ogni genere; parti di apparecchi per pesare, n.n.a." #. module: l10n_it_intrastat #: model:report.intrastat.code,description:l10n_it_intrastat.intrastat_category_2014_84238290 @@ -90069,9 +90066,9 @@ msgid "" "Wine of fresh grapes, incl. fortified wine, produced in the Community, in " "containers holding <= 2 l and of an actual alcoholic strength of > 22% vol" msgstr "" -"Vini di uve fresche, compresi i vini arricchiti d'alcole, prodotti nella " -"Comunità, in recipienti di capacità <= 2 litri e con titolo alcolometrico " -"effettivo > 22% vol." +"Vino di uve fresche, incl. vino liquoroso, prodotto nella Comunità, in " +"recipienti di capacità <= 2 l e con un titolo alcolometrico effettivo > 22% " +"vol" #. module: l10n_it_intrastat #: model:report.intrastat.code,description:l10n_it_intrastat.intrastat_category_2014_22042992 @@ -90079,9 +90076,9 @@ msgid "" "Wine of fresh grapes, incl. fortified wine, produced in the Community, in " "containers holding > 2 l and of an actual alcoholic strength of > 22% vol" msgstr "" -"Vini di uve fresche, compresi i vini arricchiti d'alcole, prodotti nella " -"Comunità, in recipienti di capacità > 2 litri, con titolo alcolometrico " -"effettivo > 22% vol." +"Vino di uve fresche, incl. vino liquoroso, prodotto nella Comunità, in " +"recipienti di capacità > 2 l e con un titolo alcolometrico effettivo > 22% " +"vol" #. module: l10n_it_intrastat #: model:report.intrastat.code,description:l10n_it_intrastat.intrastat_category_2014_22042910 @@ -90537,9 +90534,8 @@ msgid "" "Wines without PDO and PGI, produced in the Community, in containers holding " "<= 2 l and of an actual alcoholic strength of > 15% vol to 22% vol" msgstr "" -"Vini prodotti nell'Unione europea, né a denominazione d'origine protetta " -"(DOP) né a indicazione geografica protetta (IGP), in recipienti di capacità " -"<= 2 litri e con titolo alcolometrico effettivo > 15% vol." +"Vini senza DOP e IGP, prodotti nella Comunità, in recipienti di capacità <= " +"2 l e con un titolo alcolometrico effettivo compreso tra > 15% vol e 22% vol" #. module: l10n_it_intrastat #: model:report.intrastat.code,description:l10n_it_intrastat.intrastat_category_2014_22042991 @@ -90547,9 +90543,8 @@ msgid "" "Wines without PDO and PGI, produced in the Community, in containers holding " "> 2 l and of an actual alcoholic strength of > 15% vol to 22% vol" msgstr "" -"Vini, né a denominazione d'origine protetta (DOP) né a indicazione " -"geografica protetta (IGP), in recipienti di capacità > 10 litri e con titolo " -"alcolometrico effettivo >15% vol." +"Vini senza DOP e IGP, prodotti nella Comunità, in recipienti di capacità > 2 " +"l e con un titolo alcolometrico effettivo compreso tra > 15% vol e 22% vol" #. module: l10n_it_intrastat #: model:report.intrastat.code,description:l10n_it_intrastat.intrastat_category_2014_72299090 @@ -94645,8 +94640,9 @@ msgid "" "heading 5605, of a kind used in apparel, as furnishing fabrics or for " "similar purposes, n.e.s." msgstr "" -"Tessuti di fili di metallo e tessuti di filati metallici o di filati tessili " -"metallizzati della voce 5605, non nominati nè compresi altrove" +"Tessuti di fili metallici e tessuti di filati metallizzati della voce 5605, " +"dei tipi utilizzati per l'abbigliamento, come tessuti per arredamento o per " +"usi simili, n.n.a." #. module: l10n_it_intrastat #: model:report.intrastat.code,description:l10n_it_intrastat.intrastat_category_2014_50071000 @@ -95365,10 +95361,10 @@ msgid "" "panels and desks, screens, examination or treatment tables, chairs and the " "like, and general parts and accessories for apparatus of heading 9022, n.e.s." msgstr "" -"Generatori di raggi X diversi da tubi a raggi X, generatori di alta " -"tensione, quadri di comando, schermi, tavoli, poltrone e supporti simili di " -"esame o di trattamento, parti generali ed accessori per apparecchi delle " -"voci 9022, non nominati altrove" +"Generatori di raggi X diversi dai tubi a raggi X, generatori di alta " +"tensione, pannelli di controllo e scrivanie, schermi, lettini per esami o " +"cure, sedie e simili, e parti generali ed accessori di apparecchi della voce " +"9022, n.n.a." #. module: l10n_it_intrastat #: model:report.intrastat.code,description:l10n_it_intrastat.intrastat_category_2014_90223000 diff --git a/l10n_it_intrastat/models/account.py b/l10n_it_intrastat/models/account.py index 4281dc1f233a..8b25c7cebf21 100644 --- a/l10n_it_intrastat/models/account.py +++ b/l10n_it_intrastat/models/account.py @@ -33,7 +33,7 @@ def _prepare_intrastat_line(self): self._prepare_intrastat_line_amount(res) # Weight - weight_kg = self._prepare_intrastat_line_weight(product_template, res) + weight_kg = self._prepare_intrastat_line_weight(self.product_id, res) # Additional Units self._prepare_intrastat_line_additional_units( @@ -217,16 +217,16 @@ def _prepare_intrastat_line_additional_units( additional_units = self.quantity res.update({"additional_units": additional_units}) - def _prepare_intrastat_line_weight(self, product_template, res): + def _prepare_intrastat_line_weight(self, product, res): self.ensure_one() intrastat_uom_kg = self.move_id.company_id.intrastat_uom_kg_id # ...Weight compute in Kg # ...If Uom has the same category of kg -> Convert to Kg # ...Else the weight will be product weight * qty - product_weight = product_template.weight or 0 + product_weight = product.weight or 0 if ( intrastat_uom_kg - and product_template.uom_id.category_id == intrastat_uom_kg.category_id + and product.uom_id.category_id == intrastat_uom_kg.category_id ): weight_kg = self.product_uom_id._compute_quantity( qty=self.quantity, to_unit=intrastat_uom_kg diff --git a/l10n_it_intrastat/static/description/index.html b/l10n_it_intrastat/static/description/index.html index 55a4824d086d..ef677fc2a5d2 100644 --- a/l10n_it_intrastat/static/description/index.html +++ b/l10n_it_intrastat/static/description/index.html @@ -366,7 +366,7 @@

    ITA - Intrastat

    !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:a1d3a2a70b9143fa3a20ae6162b2afdba38a60a731e7969f3f2418ccbfdf35a9 +!! source digest: sha256:c266d931bab660a09e2294b22cc93bdcfe295fbf2c148f3a0fcaaeec62c13ec7 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

    Beta License: AGPL-3 OCA/l10n-italy Translate me on Weblate Try me on Runboat

    Italiano

    diff --git a/l10n_it_intrastat/views/account.xml b/l10n_it_intrastat/views/account.xml index 9f9fab67f460..fb58f0e6f838 100644 --- a/l10n_it_intrastat/views/account.xml +++ b/l10n_it_intrastat/views/account.xml @@ -140,9 +140,9 @@ name="country_destination_id" attrs="{ 'invisible': [ - ('statement_section', 'not in', ['sale_s1'])], + ('statement_section', 'not in', ['sale_s1', 'sale_s2'])], 'required': [ - ('statement_section', 'in', ['sale_s1'])]}" + ('statement_section', 'in', ['sale_s1', 'sale_s2'])]}" /> diff --git a/l10n_it_intrastat_statement/README.rst b/l10n_it_intrastat_statement/README.rst index 761ec254cc1c..a91f5fa377c8 100644 --- a/l10n_it_intrastat_statement/README.rst +++ b/l10n_it_intrastat_statement/README.rst @@ -7,7 +7,7 @@ ITA - Dichiarazione Intrastat !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:c1cf8418102db7402e365dd175e0032ae6db278b956058516dde5890fa84f2af + !! source digest: sha256:879752dcbc9f3fbfaa646e28f4424a8642295ddae9e68fa9610c5afba8b8468a !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/l10n_it_intrastat_statement/__manifest__.py b/l10n_it_intrastat_statement/__manifest__.py index b92450902b36..20552314f25d 100644 --- a/l10n_it_intrastat_statement/__manifest__.py +++ b/l10n_it_intrastat_statement/__manifest__.py @@ -3,7 +3,7 @@ { "name": "ITA - Dichiarazione Intrastat", - "version": "14.0.1.3.2", + "version": "14.0.1.3.6", "category": "Account", "summary": "Dichiarazione Intrastat per l'Agenzia delle Dogane", "author": "Openforce, Link IT srl, Agile Business Group, " diff --git a/l10n_it_intrastat_statement/models/intrastat_statement.py b/l10n_it_intrastat_statement/models/intrastat_statement.py index 0b895423c724..5691ea004804 100644 --- a/l10n_it_intrastat_statement/models/intrastat_statement.py +++ b/l10n_it_intrastat_statement/models/intrastat_statement.py @@ -44,6 +44,7 @@ class AccountIntrastatStatement(models.Model): _name = "account.intrastat.statement" _description = "Intrastat Statement" _rec_name = "number" + _order = "date desc" def round_min_amount(self, amount, company=None, prec_digits=None, truncate=False): """ @@ -768,8 +769,8 @@ def compute_statement(self): # Search intrastat lines domain = [ - ("invoice_date", ">=", period_date_start), - ("invoice_date", "<=", period_date_stop), + ("date", ">=", period_date_start), + ("date", "<=", period_date_stop), ("intrastat", "=", True), ] inv_type = [] @@ -779,33 +780,31 @@ def compute_statement(self): inv_type += ["in_invoice", "in_refund"] domain.append(("move_type", "in", inv_type)) - statement_data = dict() + statement_data = {} + section_field_reverse = {} + for section_type in ["purchase", "sale"]: + for section_number in range(1, 5): + statement_section_field = self.get_section_field_name( + section_type, section_number + ) + statement_data[statement_section_field] = list() + section_field_reverse["{}_s{}".format(section_type, section_number)] = ( + section_type, + section_number, + ) + invoices = self.env["account.move"].search(domain) for inv_intra_line in invoices.mapped("intrastat_line_ids"): - for section_type in ["purchase", "sale"]: - for section_number in range(1, 5): - section_details = (section_type, section_number) - statement_section = "%s_s%s" % section_details - if inv_intra_line.statement_section != statement_section: - continue - statement_section_model_name = self.get_section_model( - *section_details - ) - st_line = self.env[ - statement_section_model_name - ]._prepare_statement_line(inv_intra_line, self) - if not st_line: - continue - statement_section_field = self.get_section_field_name( - *section_details - ) - if statement_section_field not in statement_data: - statement_data[statement_section_field] = list() - st_line["sequence"] = ( - len(statement_data[statement_section_field]) + 1 - ) - statement_data[statement_section_field].append((0, 0, st_line)) + section_details = section_field_reverse[inv_intra_line.statement_section] + statement_section_model_name = self.get_section_model(*section_details) + st_line = self.env[statement_section_model_name]._prepare_statement_line( + inv_intra_line, self + ) + if st_line: + statement_section_field = self.get_section_field_name(*section_details) + st_line["sequence"] = len(statement_data[statement_section_field]) + 1 + statement_data[statement_section_field].append((0, 0, st_line)) self.write(statement_data) # Group refund to sale lines if they have the same period of ref @@ -834,6 +833,7 @@ def compute_statement(self): ) to_refund_model = self.env[refund_section_model] self.refund_line(line, to_refund_model) + self.recompute_sequence_lines() return True @staticmethod diff --git a/l10n_it_intrastat_statement/static/description/index.html b/l10n_it_intrastat_statement/static/description/index.html index 4d83691fe8d9..2f00cd0d08b0 100644 --- a/l10n_it_intrastat_statement/static/description/index.html +++ b/l10n_it_intrastat_statement/static/description/index.html @@ -366,7 +366,7 @@

    ITA - Dichiarazione Intrastat

    !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:c1cf8418102db7402e365dd175e0032ae6db278b956058516dde5890fa84f2af +!! source digest: sha256:879752dcbc9f3fbfaa646e28f4424a8642295ddae9e68fa9610c5afba8b8468a !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

    Beta License: AGPL-3 OCA/l10n-italy Translate me on Weblate Try me on Runboat

    Italiano

    diff --git a/l10n_it_intrastat_statement/tests/test_intrastat_statement.py b/l10n_it_intrastat_statement/tests/test_intrastat_statement.py index eef35e5464bc..26c996f2c2f8 100644 --- a/l10n_it_intrastat_statement/tests/test_intrastat_statement.py +++ b/l10n_it_intrastat_statement/tests/test_intrastat_statement.py @@ -126,8 +126,8 @@ def test_statement_sale(self): statement = self.statement_model.create( { - "period_number": invoice.invoice_date.month, - "fiscalyear": invoice.invoice_date.year, + "period_number": invoice.date.month, + "fiscalyear": invoice.date.year, } ) @@ -145,13 +145,13 @@ def test_statement_sale(self): def test_statement_sale_quarter(self): invoice = self._get_intrastat_computed_invoice() - month = invoice.invoice_date.month + month = invoice.date.month quarter = 1 + (month - 1) // 3 statement = self.statement_model.create( { "period_number": quarter, "period_type": "T", - "fiscalyear": invoice.invoice_date.year, + "fiscalyear": invoice.date.year, } ) @@ -167,8 +167,8 @@ def test_statement_purchase(self): statement = self.statement_model.create( { - "period_number": bill.invoice_date.month, - "fiscalyear": bill.invoice_date.year, + "period_number": bill.date.month, + "fiscalyear": bill.date.year, } ) @@ -189,8 +189,8 @@ def test_statement_purchase_currency(self): statement = self.statement_model.create( { - "period_number": bill.invoice_date.month, - "fiscalyear": bill.invoice_date.year, + "period_number": bill.date.month, + "fiscalyear": bill.date.year, } ) @@ -213,8 +213,8 @@ def test_statement_purchase_refund(self): statement = self.statement_model.create( { - "period_number": bill_refund.invoice_date.month, - "fiscalyear": bill_refund.invoice_date.year, + "period_number": bill_refund.date.month, + "fiscalyear": bill_refund.date.year, } ) @@ -256,8 +256,8 @@ def test_statement_purchase_refund_no_compensation(self): statement = self.statement_model.create( { - "period_number": bill_refund.invoice_date.month, - "fiscalyear": bill_refund.invoice_date.year, + "period_number": bill_refund.date.month, + "fiscalyear": bill_refund.date.year, } ) @@ -285,8 +285,8 @@ def test_statement_purchase_refund_no_subtract(self): statement = self.statement_model.create( { - "period_number": bill_refund.invoice_date.month, - "fiscalyear": bill_refund.invoice_date.year, + "period_number": bill_refund.date.month, + "fiscalyear": bill_refund.date.year, } ) @@ -362,13 +362,13 @@ def test_statement_purchase_service_refund_no_subtract(self): def test_statement_purchase_quarter(self): bill = self._get_intrastat_computed_bill() - month = bill.invoice_date.month + month = bill.date.month quarter = 1 + (month - 1) // 3 statement = self.statement_model.create( { "period_number": quarter, "period_type": "T", - "fiscalyear": bill.invoice_date.year, + "fiscalyear": bill.date.year, } ) @@ -384,8 +384,8 @@ def test_statement_export_file(self): statement = self.statement_model.create( { - "period_number": invoice.invoice_date.month, - "fiscalyear": invoice.invoice_date.year, + "period_number": invoice.date.month, + "fiscalyear": invoice.date.year, } ) statement.compute_statement() @@ -405,8 +405,8 @@ def test_purchase_default_transaction_nature(self): statement = self.statement_model.create( { - "period_number": bill.invoice_date.month, - "fiscalyear": bill.invoice_date.year, + "period_number": bill.date.month, + "fiscalyear": bill.date.year, } ) line = statement.purchase_section1_ids.create({}) @@ -421,8 +421,8 @@ def test_sale_default_transaction_nature(self): statement = self.statement_model.create( { - "period_number": invoice.invoice_date.month, - "fiscalyear": invoice.invoice_date.year, + "period_number": invoice.date.month, + "fiscalyear": invoice.date.year, } ) @@ -440,8 +440,8 @@ def test_statement_sale_round_up_amounts(self): statement = self.statement_model.create( { - "period_number": invoice.invoice_date.month, - "fiscalyear": invoice.invoice_date.year, + "period_number": invoice.date.month, + "fiscalyear": invoice.date.year, } ) statement.compute_statement() @@ -459,8 +459,8 @@ def test_statement_sale_round_down_amounts(self): statement = self.statement_model.create( { - "period_number": invoice.invoice_date.month, - "fiscalyear": invoice.invoice_date.year, + "period_number": invoice.date.month, + "fiscalyear": invoice.date.year, } ) statement.compute_statement() @@ -482,8 +482,8 @@ def test_statement_purchase_round_up_amounts(self): statement = self.statement_model.create( { - "period_number": bill.invoice_date.month, - "fiscalyear": bill.invoice_date.year, + "period_number": bill.date.month, + "fiscalyear": bill.date.year, } ) statement.compute_statement() @@ -514,8 +514,8 @@ def test_statement_purchase_round_down_amounts(self): statement = self.statement_model.create( { - "period_number": bill.invoice_date.month, - "fiscalyear": bill.invoice_date.year, + "period_number": bill.date.month, + "fiscalyear": bill.date.year, } ) statement.compute_statement() diff --git a/l10n_it_reverse_charge/README.rst b/l10n_it_reverse_charge/README.rst index fb148347a1e3..2dd9bf6890c1 100644 --- a/l10n_it_reverse_charge/README.rst +++ b/l10n_it_reverse_charge/README.rst @@ -7,7 +7,7 @@ ITA - Inversione contabile !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:2b84019b30278ddfeadd77a1ec61231adc0e0446865c983019dd5a7a0b87d2a2 + !! source digest: sha256:810b302eed4bf53e3cb0dacc313195e6e3c0e1c5b8e7b60dfe23b147da4bd0d6 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/l10n_it_reverse_charge/__manifest__.py b/l10n_it_reverse_charge/__manifest__.py index 10136a9184de..103ffbaef8a0 100644 --- a/l10n_it_reverse_charge/__manifest__.py +++ b/l10n_it_reverse_charge/__manifest__.py @@ -7,7 +7,7 @@ { "name": "ITA - Inversione contabile", - "version": "14.0.1.2.5", + "version": "14.0.1.2.6", "category": "Localization/Italy", "summary": "Inversione contabile", "author": "Odoo Italia Network, Odoo Community Association (OCA)", diff --git a/l10n_it_reverse_charge/models/account_move.py b/l10n_it_reverse_charge/models/account_move.py index ad085ca338d9..1b79aab8b2e8 100644 --- a/l10n_it_reverse_charge/models/account_move.py +++ b/l10n_it_reverse_charge/models/account_move.py @@ -343,7 +343,7 @@ def _rc_reconcile_same_account_line(self, payment): ) rc_lines_to_rec = line_to_reconcile | payment_line_to_reconcile - rc_lines_to_rec.reconcile() + rc_lines_to_rec.with_context(no_exchange_difference=True).reconcile() def _reconcile_rc_invoice_payment(self, rc_invoice, rc_payment): """Reconcile the RC Payment.""" diff --git a/l10n_it_reverse_charge/static/description/index.html b/l10n_it_reverse_charge/static/description/index.html index d2fedab23911..0cf8d8c059cd 100644 --- a/l10n_it_reverse_charge/static/description/index.html +++ b/l10n_it_reverse_charge/static/description/index.html @@ -366,7 +366,7 @@

    ITA - Inversione contabile

    !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:2b84019b30278ddfeadd77a1ec61231adc0e0446865c983019dd5a7a0b87d2a2 +!! source digest: sha256:810b302eed4bf53e3cb0dacc313195e6e3c0e1c5b8e7b60dfe23b147da4bd0d6 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

    Beta License: LGPL-3 OCA/l10n-italy Translate me on Weblate Try me on Runboat

    Italiano

    diff --git a/l10n_it_ricevute_bancarie/README.rst b/l10n_it_ricevute_bancarie/README.rst index 6eafa30ae907..a69e4afca4a9 100644 --- a/l10n_it_ricevute_bancarie/README.rst +++ b/l10n_it_ricevute_bancarie/README.rst @@ -7,7 +7,7 @@ ITA - Ricevute bancarie !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:2398111be2cd5f0e84c6061763dda376d13f4045766e34d14077afee27213ea2 + !! source digest: sha256:be62b27b99e2640ef593e5f7628515427008027bfb5edb08962675e0e31e90f2 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png @@ -131,7 +131,9 @@ Contributors * Sergio Zanchetta * Simone Vanin * Sergio Corato -* Giovanni Serra + +* `Ooops `_: + * Giovanni Serra Maintainers ~~~~~~~~~~~ diff --git a/l10n_it_ricevute_bancarie/__manifest__.py b/l10n_it_ricevute_bancarie/__manifest__.py index c60da5fb4897..2c11ab8c5259 100644 --- a/l10n_it_ricevute_bancarie/__manifest__.py +++ b/l10n_it_ricevute_bancarie/__manifest__.py @@ -9,7 +9,7 @@ { "name": "ITA - Ricevute bancarie", - "version": "14.0.1.8.1", + "version": "14.0.1.9.0", "development_status": "Beta", "author": "Odoo Community Association (OCA)", "category": "Localization/Italy", diff --git a/l10n_it_ricevute_bancarie/migrations/14.0.1.8.2/noupdate_changes.xml b/l10n_it_ricevute_bancarie/migrations/14.0.1.8.2/noupdate_changes.xml new file mode 100644 index 000000000000..7cf88627aff2 --- /dev/null +++ b/l10n_it_ricevute_bancarie/migrations/14.0.1.8.2/noupdate_changes.xml @@ -0,0 +1,36 @@ + + + + + Ri.Ba. distinta multi-company + + + + ['|',('company_id','=',False),('company_id','in',company_ids)] + + + + + Ri.Ba. distinta line multi-company + + + + ['|',('company_id','=',False),('company_id','in',company_ids)] + + + + + Ri.Ba. configuration multi-company + + + + ['|',('company_id','=',False),('company_id','in',company_ids)] + + + diff --git a/l10n_it_ricevute_bancarie/migrations/14.0.1.8.2/post-migration.py b/l10n_it_ricevute_bancarie/migrations/14.0.1.8.2/post-migration.py new file mode 100644 index 000000000000..ffc8e134c995 --- /dev/null +++ b/l10n_it_ricevute_bancarie/migrations/14.0.1.8.2/post-migration.py @@ -0,0 +1,14 @@ +from openupgradelib import openupgrade + +_delete_xmlids = ["l10n_it_ricevute_bancarie.riba_config_company_rule"] + + +@openupgrade.migrate() +def migrate(env, version): + + openupgrade.load_data( + env.cr, + "l10n_it_ricevute_bancarie", + "migrations/14.0.1.8.2/noupdate_changes.xml", + ) + openupgrade.delete_records_safely_by_xml_id(env, _delete_xmlids) diff --git a/l10n_it_ricevute_bancarie/readme/CONTRIBUTORS.rst b/l10n_it_ricevute_bancarie/readme/CONTRIBUTORS.rst index 15cfac5e044a..dc7b23f106ab 100644 --- a/l10n_it_ricevute_bancarie/readme/CONTRIBUTORS.rst +++ b/l10n_it_ricevute_bancarie/readme/CONTRIBUTORS.rst @@ -9,4 +9,6 @@ * Sergio Zanchetta * Simone Vanin * Sergio Corato -* Giovanni Serra + +* `Ooops `_: + * Giovanni Serra diff --git a/l10n_it_ricevute_bancarie/static/description/index.html b/l10n_it_ricevute_bancarie/static/description/index.html index ec38cef463c2..2539d9683689 100644 --- a/l10n_it_ricevute_bancarie/static/description/index.html +++ b/l10n_it_ricevute_bancarie/static/description/index.html @@ -366,7 +366,7 @@

    ITA - Ricevute bancarie

    !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:2398111be2cd5f0e84c6061763dda376d13f4045766e34d14077afee27213ea2 +!! source digest: sha256:be62b27b99e2640ef593e5f7628515427008027bfb5edb08962675e0e31e90f2 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

    Beta License: AGPL-3 OCA/l10n-italy Translate me on Weblate Try me on Runboat

    Italiano

    @@ -466,7 +466,8 @@

    Contributors

  • Sergio Zanchetta <https://github.com/primes2h>
  • Simone Vanin <simone.vanin@agilebg.com>
  • Sergio Corato <https://github.com/sergiocorato>
  • -
  • Giovanni Serra <giovanni@gslab.it>
  • +
  • Ooops: +* Giovanni Serra <giovanni@gslab.it>
  • diff --git a/l10n_it_ricevute_bancarie/wizard/wizard_riba_file_export.py b/l10n_it_ricevute_bancarie/wizard/wizard_riba_file_export.py index a28e4ecd3075..93583a8fbe21 100644 --- a/l10n_it_ricevute_bancarie/wizard/wizard_riba_file_export.py +++ b/l10n_it_ricevute_bancarie/wizard/wizard_riba_file_export.py @@ -10,6 +10,8 @@ import datetime import re +from unidecode import unidecode + from odoo import _, fields, models from odoo.exceptions import UserError @@ -314,7 +316,7 @@ def act_getfile(self): dataemissione = datetime.datetime.now().strftime("%d%m%y") nome_supporto = datetime.datetime.now().strftime("%d%m%y%H%M%S") + credit_sia creditor_address = order_obj.config_id.company_id.partner_id - creditor_city = creditor_address.city or "" + creditor_city = unidecode(creditor_address.city or "") if ( not order_obj.config_id.company_id.partner_id.vat and not order_obj.config_id.company_id.partner_id.fiscalcode @@ -328,10 +330,10 @@ def act_getfile(self): dataemissione, nome_supporto, "E", - name_company, - creditor_address.street or "", + unidecode(name_company), + unidecode(creditor_address.street or ""), creditor_address.zip or "" + " " + creditor_city, - order_obj.config_id.company_id.partner_id.ref or "", + unidecode(order_obj.config_id.company_id.partner_id.ref or ""), ( order_obj.config_id.company_id.partner_id.vat and order_obj.config_id.company_id.partner_id.vat[2:] @@ -342,7 +344,7 @@ def act_getfile(self): for line in order_obj.line_ids: debit_bank = line.bank_id debitor_address = line.partner_id - debitor_street = debitor_address.street or "" + debitor_street = unidecode(debitor_address.street or "") debitor_zip = debitor_address.zip or "" if debit_bank.bank_abi and debit_bank.bank_cab: debit_abi = debit_bank.bank_abi @@ -355,10 +357,10 @@ def act_getfile(self): raise UserError( _("No IBAN or ABI/CAB specified for ") + line.partner_id.name ) - debitor_city = ( + debitor_city = unidecode( debitor_address.city and debitor_address.city.ljust(23)[0:23] or "" ) - debitor_province = ( + debitor_province = unidecode( debitor_address.state_id and debitor_address.state_id.code or "" ) if not line.due_date: # ??? VERIFICARE @@ -386,12 +388,12 @@ def act_getfile(self): debitor_province, debit_abi, debit_cab, - debit_bank.bank_name and debit_bank.bank_name[:50] or "", - line.partner_id.ref and line.partner_id.ref[:16] or "", - line.invoice_number[:40], + unidecode(debit_bank.bank_name and debit_bank.bank_name[:50] or ""), + unidecode(line.partner_id.ref and line.partner_id.ref[:16] or ""), + unidecode(line.invoice_number[:40]), line.invoice_date, - "CIG: %s " % line.cig if line.cig else "", - "CUP: %s " % line.cup if line.cup else "", + unidecode("CIG: %s " % line.cig if line.cig else ""), + unidecode("CUP: %s " % line.cup if line.cup else ""), ] arrayRiba.append(Riba) diff --git a/l10n_it_sdi_channel/README.rst b/l10n_it_sdi_channel/README.rst index f33b6b44a844..00f58ea8539d 100644 --- a/l10n_it_sdi_channel/README.rst +++ b/l10n_it_sdi_channel/README.rst @@ -7,7 +7,7 @@ ITA - Fattura elettronica - Canale SdI !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:c0d93c4c8db0c5a508f6c57503b4b083697bd8bfd41aff62b72a45b3f9567eb4 + !! source digest: sha256:4052d3e2b95f660eff42b99483bc8e89c1c45a3ca0cade8068aad68b3a4804bc !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/l10n_it_sdi_channel/__manifest__.py b/l10n_it_sdi_channel/__manifest__.py index 77d70d9af6b1..fbb383e967e3 100644 --- a/l10n_it_sdi_channel/__manifest__.py +++ b/l10n_it_sdi_channel/__manifest__.py @@ -7,7 +7,7 @@ "name": "ITA - Fattura elettronica - Canale SdI", "summary": "Aggiunge il canale di invio/ricezione dei file XML " "attraverso lo SdI", - "version": "14.0.2.3.2", + "version": "14.0.2.4.0", "development_status": "Beta", "category": "Hidden", "website": "https://github.com/OCA/l10n-italy", diff --git a/l10n_it_sdi_channel/models/fatturapa_attachment_out.py b/l10n_it_sdi_channel/models/fatturapa_attachment_out.py index 16d4537bc506..12385de03e9f 100644 --- a/l10n_it_sdi_channel/models/fatturapa_attachment_out.py +++ b/l10n_it_sdi_channel/models/fatturapa_attachment_out.py @@ -34,8 +34,7 @@ def send_to_sdi(self): if set(states) != {"ready"}: raise UserError(_("You can only send files in 'Ready to Send' state.")) - company = self.env.company - sdi_channel = company.sdi_channel_id + sdi_channel = self.company_id.sdi_channel_id send_result = sdi_channel.send(self) return send_result diff --git a/l10n_it_sdi_channel/static/description/index.html b/l10n_it_sdi_channel/static/description/index.html index b9646f2da59d..6b8946fb7fd0 100644 --- a/l10n_it_sdi_channel/static/description/index.html +++ b/l10n_it_sdi_channel/static/description/index.html @@ -366,7 +366,7 @@

    ITA - Fattura elettronica - Canale SdI

    !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:c0d93c4c8db0c5a508f6c57503b4b083697bd8bfd41aff62b72a45b3f9567eb4 +!! source digest: sha256:4052d3e2b95f660eff42b99483bc8e89c1c45a3ca0cade8068aad68b3a4804bc !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

    Beta License: AGPL-3 OCA/l10n-italy Translate me on Weblate Try me on Runboat

    Italiano

    diff --git a/l10n_it_split_payment/migrations/14.0.1.0.0/post-migration.py b/l10n_it_split_payment/migrations/14.0.1.0.0/post-migration.py index 448d5548bb56..93a3f4b31ecd 100644 --- a/l10n_it_split_payment/migrations/14.0.1.0.0/post-migration.py +++ b/l10n_it_split_payment/migrations/14.0.1.0.0/post-migration.py @@ -37,9 +37,9 @@ def migrate(cr, installed_version): """ update account_move_line set is_split_payment = True - where id in {line_ids} + where id in ({line_ids}) """.format( - line_ids=tuple(line_ids) + line_ids=",".join(map(str, line_ids)) ), ) >>>>>>> 0ea88591eae932c1799c0e0f34b89be93f85e574 diff --git a/l10n_it_split_payment/migrations/14.0.1.0.0/pre-move_split_amount.py b/l10n_it_split_payment/migrations/14.0.1.0.0/pre-move_split_amount.py index 75edce9d789e..b5bd7732cc20 100644 --- a/l10n_it_split_payment/migrations/14.0.1.0.0/pre-move_split_amount.py +++ b/l10n_it_split_payment/migrations/14.0.1.0.0/pre-move_split_amount.py @@ -6,18 +6,28 @@ @openupgrade.migrate() def migrate(env, version): - openupgrade.add_fields( - env, - [("amount_sp", "account.move", False, "float", False, "l10n_it_split_payment")], - ) - openupgrade.logged_query( - env.cr, - """ - update account_move - set - amount_sp = inv.amount_sp - from account_invoice inv - where - account_move.id = inv.move_id; - """, - ) + if not openupgrade.column_exists(env.cr, "account_move", "amount_sp"): + openupgrade.add_fields( + env, + [ + ( + "amount_sp", + "account.move", + False, + "float", + False, + "l10n_it_split_payment", + ) + ], + ) + openupgrade.logged_query( + env.cr, + """ + update account_move + set + amount_sp = inv.amount_sp + from account_invoice inv + where + account_move.id = inv.move_id; + """, + ) diff --git a/l10n_it_vat_registries/README.rst b/l10n_it_vat_registries/README.rst index 014efe8a16ad..a182a88b2433 100644 --- a/l10n_it_vat_registries/README.rst +++ b/l10n_it_vat_registries/README.rst @@ -7,7 +7,7 @@ ITA - Registri IVA !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:aa15b5cf25d504fd618238bc8a4575276f49e0478d3120bbd81423c5e196cc42 + !! source digest: sha256:8cc6a4edb24a61f4e41f2513787907fc86623c2ddf9e47d82f07291bb3314d8e !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png diff --git a/l10n_it_vat_registries/__manifest__.py b/l10n_it_vat_registries/__manifest__.py index 060f81f1368c..7adf876a13ef 100644 --- a/l10n_it_vat_registries/__manifest__.py +++ b/l10n_it_vat_registries/__manifest__.py @@ -6,7 +6,7 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). { - "version": "14.0.1.0.5", + "version": "14.0.1.1.0", "name": "ITA - Registri IVA", "category": "Localization/Italy", "author": "Agile Business Group, Odoo Community Association (OCA), LinkIt Srl", diff --git a/l10n_it_vat_registries/models/vat_registry.py b/l10n_it_vat_registries/models/vat_registry.py index ee06cefb76e3..697e1c9a0289 100644 --- a/l10n_it_vat_registries/models/vat_registry.py +++ b/l10n_it_vat_registries/models/vat_registry.py @@ -62,7 +62,6 @@ def _tax_amounts_by_tax_id(self, move, move_lines, registry_type): res = {} for move_line in move_lines: - set_cee_absolute_value = False if not (move_line.tax_line_id or move_line.tax_ids): continue @@ -78,14 +77,6 @@ def _tax_amounts_by_tax_id(self, move, move_lines, registry_type): tax = move_line.tax_line_id is_base = False - if (registry_type == "customer" and tax.cee_type == "sale") or ( - registry_type == "supplier" and tax.cee_type == "purchase" - ): - set_cee_absolute_value = True - - elif tax.cee_type: - continue - if tax.parent_tax_ids and len(tax.parent_tax_ids) == 1: # we group by main tax tax = tax.parent_tax_ids[0] @@ -101,8 +92,6 @@ def _tax_amounts_by_tax_id(self, move, move_lines, registry_type): } tax_amount = move_line.debit - move_line.credit - if set_cee_absolute_value: - tax_amount = abs(tax_amount) if ( "receivable" in move.financial_type or "payable_refund" == move.financial_type diff --git a/l10n_it_vat_registries/static/description/index.html b/l10n_it_vat_registries/static/description/index.html index e1a33d602c63..d8f59208132e 100644 --- a/l10n_it_vat_registries/static/description/index.html +++ b/l10n_it_vat_registries/static/description/index.html @@ -1,4 +1,3 @@ - @@ -367,7 +366,7 @@

    ITA - Registri IVA

    !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:aa15b5cf25d504fd618238bc8a4575276f49e0478d3120bbd81423c5e196cc42 +!! source digest: sha256:8cc6a4edb24a61f4e41f2513787907fc86623c2ddf9e47d82f07291bb3314d8e !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

    Production/Stable License: AGPL-3 OCA/l10n-italy Translate me on Weblate Try me on Runboat

    Law: Decreto del Presidente della Repubblica del 26 ottobre 1972 n. 633 diff --git a/l10n_it_vat_registries/views/account_view.xml b/l10n_it_vat_registries/views/account_view.xml index 982accad54de..8e10d51e2b09 100644 --- a/l10n_it_vat_registries/views/account_view.xml +++ b/l10n_it_vat_registries/views/account_view.xml @@ -7,10 +7,6 @@ - diff --git a/l10n_it_website_portal_fatturapa/README.rst b/l10n_it_website_portal_fatturapa/README.rst new file mode 100644 index 000000000000..ac68da6cd884 --- /dev/null +++ b/l10n_it_website_portal_fatturapa/README.rst @@ -0,0 +1,71 @@ +=================================== +ITA - Fattura elettronica - Portale +=================================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:e7f51d65791ee4b2e0b7a28978203a8c7a2c78e25bd812314d1eed9e86cbfc62 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fl10n--italy-lightgray.png?logo=github + :target: https://github.com/OCA/l10n-italy/tree/14.0/l10n_it_website_portal_fatturapa + :alt: OCA/l10n-italy +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/l10n-italy-14-0/l10n-italy-14-0-l10n_it_website_portal_fatturapa + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/l10n-italy&target_branch=14.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +Allow frontend users to edit any necessary field for Electronic invoice from their *details* page. + +**Table of contents** + +.. contents:: + :local: + +Known issues / Roadmap +====================== + +Fields `is_pa` and `ipa_code` are not shown in the frontend because Odoo core always supposes that frontend users are individual, and these fields are only meaningful for companies. + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +This module is part of the `OCA/l10n-italy `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/l10n_it_website_portal_fatturapa/__init__.py b/l10n_it_website_portal_fatturapa/__init__.py new file mode 100644 index 000000000000..49c73ea2c845 --- /dev/null +++ b/l10n_it_website_portal_fatturapa/__init__.py @@ -0,0 +1,4 @@ +# Copyright 2019 Simone Rubino +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from . import controllers diff --git a/l10n_it_website_portal_fatturapa/__manifest__.py b/l10n_it_website_portal_fatturapa/__manifest__.py new file mode 100644 index 000000000000..169a91fac0ba --- /dev/null +++ b/l10n_it_website_portal_fatturapa/__manifest__.py @@ -0,0 +1,19 @@ +# Copyright 2019 Simone Rubino +# Copyright 2019 Lorenzo Battistini +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +{ + "name": "ITA - Fattura elettronica - Portale", + "summary": "Add fatturapa fields and checks in frontend user's details", + "version": "14.0.1.0.0", + "author": "Odoo Community Association (OCA)", + "category": "Localization/Italy", + "website": "https://github.com/OCA/l10n-italy", + "license": "AGPL-3", + "depends": [ + "l10n_it_fatturapa", + "l10n_it_website_portal_fiscalcode", + "l10n_it_website_portal_ipa", + ], + "data": ["views/l10n_it_website_portal_fatturapa_templates.xml"], + "auto_install": True, +} diff --git a/l10n_it_website_portal_fatturapa/controllers/__init__.py b/l10n_it_website_portal_fatturapa/controllers/__init__.py new file mode 100644 index 000000000000..f43232f0128c --- /dev/null +++ b/l10n_it_website_portal_fatturapa/controllers/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from . import main diff --git a/l10n_it_website_portal_fatturapa/controllers/main.py b/l10n_it_website_portal_fatturapa/controllers/main.py new file mode 100644 index 000000000000..7f982f6860bc --- /dev/null +++ b/l10n_it_website_portal_fatturapa/controllers/main.py @@ -0,0 +1,90 @@ +# Copyright 2019 Simone Rubino +# Copyright 2019 Lorenzo Battistini +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from odoo.exceptions import ValidationError +from odoo.http import request +from odoo.tools.translate import _ + +from odoo.addons.l10n_it_website_portal_fiscalcode.controllers.main import ( + WebsitePortalFiscalCode, +) + +FATTURAPA_PORTAL_FIELDS = [ + "codice_destinatario", + "firstname", + "lastname", + "pec_destinatario", + "country_id", + "fiscalcode", + "zipcode", + "vat", + "electronic_invoice_subjected", + "street", + "city", + "is_pa", + "ipa_code", + "eori_code", + "electronic_invoice_obliged_subject", +] +WebsitePortalFiscalCode.OPTIONAL_BILLING_FIELDS.extend(FATTURAPA_PORTAL_FIELDS) + + +class WebsitePortalFatturapa(WebsitePortalFiscalCode): + def details_form_validate(self, data): + # when checkbox electronic_invoice_subjected is not checked, + # it is not posted + data["electronic_invoice_subjected"] = data.get( + "electronic_invoice_subjected", False + ) + if data["electronic_invoice_subjected"]: + data["electronic_invoice_obliged_subject"] = True + error, error_message = super( + WebsitePortalFatturapa, self + ).details_form_validate(data) + partner_sudo = request.env.user.partner_id.sudo() + error, error_message = self.validate_partner_firstname( + data, error, error_message + ) + + partner_values = self.get_portal_fatturapa_partner_values(data, partner_sudo) + dummy_partner = request.env["res.partner"].new(partner_values) + try: + dummy_partner._check_ftpa_partner_data() + except ValidationError as ve: + error["error"] = "error" + error_message.append(ve.name) + return error, error_message + + def get_portal_fatturapa_partner_values(self, data, partner_sudo): + # Read all the fields for the constraint from the current user + constr_fields = partner_sudo._check_ftpa_partner_data._constrains + partner_values = partner_sudo.read(constr_fields)[0] + + # Update them with fields that might be edited by the user + new_partner_values = { + f_name: data.get(f_name) for f_name in FATTURAPA_PORTAL_FIELDS + } + if new_partner_values.get("country_id"): + new_partner_values["country_id"] = int(new_partner_values["country_id"]) + new_partner_values.update({"zip": new_partner_values.pop("zipcode", "")}) + partner_values.update(new_partner_values) + return partner_values + + def validate_partner_firstname(self, data, error, error_message): + # Compute name field, using First name and Last name + if all(f in data for f in ["name", "firstname", "lastname"]): + lastname = data.get("lastname") + firstname = data.get("firstname") + if lastname or firstname: + data.update( + name=request.env["res.partner"]._get_computed_name( + lastname, firstname + ) + ) + else: + error["firstname"] = "error" + error["lastname"] = "error" + error_message.append( + _("At least one of first name and last name is required") + ) + return error, error_message diff --git a/l10n_it_website_portal_fatturapa/i18n/it.po b/l10n_it_website_portal_fatturapa/i18n/it.po new file mode 100644 index 000000000000..565821381866 --- /dev/null +++ b/l10n_it_website_portal_fatturapa/i18n/it.po @@ -0,0 +1,53 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_it_website_portal_fatturapa +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2019-12-09 12:04+0000\n" +"Last-Translator: Lorenzo Battistini \n" +"Language-Team: none\n" +"Language: it\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 3.9.1\n" + +#. module: l10n_it_website_portal_fatturapa +#: model_terms:ir.ui.view,arch_db:l10n_it_website_portal_fatturapa.fatturapa_details +msgid "Addressee code" +msgstr "Codice destinatario" + +#. module: l10n_it_website_portal_fatturapa +#: code:addons/l10n_it_website_portal_fatturapa/controllers/main.py:0 +#, python-format +msgid "At least one of first name and last name is required" +msgstr "Almeno uno fra nome e cognome è richiesto" + +#. module: l10n_it_website_portal_fatturapa +#: model_terms:ir.ui.view,arch_db:l10n_it_website_portal_fatturapa.fatturapa_details +msgid "EORI code" +msgstr "Codice EORI" + +#. module: l10n_it_website_portal_fatturapa +#: model_terms:ir.ui.view,arch_db:l10n_it_website_portal_fatturapa.fatturapa_details +msgid "Enable receiving electronic invoice" +msgstr "Abilitare la ricezione della fattura elettronica" + +#. module: l10n_it_website_portal_fatturapa +#: model_terms:ir.ui.view,arch_db:l10n_it_website_portal_fatturapa.fatturapa_details +msgid "Or PEC address for Electronic invoicing" +msgstr "O indirizzo PEC per la fatturazione elettronica" + +#. module: l10n_it_website_portal_fatturapa +#: model_terms:ir.ui.view,arch_db:l10n_it_website_portal_fatturapa.fatturapa_details +msgid "Your First Name" +msgstr "Il tuo nome" + +#. module: l10n_it_website_portal_fatturapa +#: model_terms:ir.ui.view,arch_db:l10n_it_website_portal_fatturapa.fatturapa_details +msgid "Your Last Name" +msgstr "Il tuo cognome" diff --git a/l10n_it_website_portal_fatturapa/i18n/l10n_it_website_portal_fatturapa.pot b/l10n_it_website_portal_fatturapa/i18n/l10n_it_website_portal_fatturapa.pot new file mode 100644 index 000000000000..31fd30e4a2c9 --- /dev/null +++ b/l10n_it_website_portal_fatturapa/i18n/l10n_it_website_portal_fatturapa.pot @@ -0,0 +1,50 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_it_website_portal_fatturapa +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: l10n_it_website_portal_fatturapa +#: model_terms:ir.ui.view,arch_db:l10n_it_website_portal_fatturapa.fatturapa_details +msgid "Addressee code" +msgstr "" + +#. module: l10n_it_website_portal_fatturapa +#: code:addons/l10n_it_website_portal_fatturapa/controllers/main.py:0 +#, python-format +msgid "At least one of first name and last name is required" +msgstr "" + +#. module: l10n_it_website_portal_fatturapa +#: model_terms:ir.ui.view,arch_db:l10n_it_website_portal_fatturapa.fatturapa_details +msgid "EORI code" +msgstr "" + +#. module: l10n_it_website_portal_fatturapa +#: model_terms:ir.ui.view,arch_db:l10n_it_website_portal_fatturapa.fatturapa_details +msgid "Enable receiving electronic invoice" +msgstr "" + +#. module: l10n_it_website_portal_fatturapa +#: model_terms:ir.ui.view,arch_db:l10n_it_website_portal_fatturapa.fatturapa_details +msgid "Or PEC address for Electronic invoicing" +msgstr "" + +#. module: l10n_it_website_portal_fatturapa +#: model_terms:ir.ui.view,arch_db:l10n_it_website_portal_fatturapa.fatturapa_details +msgid "Your First Name" +msgstr "" + +#. module: l10n_it_website_portal_fatturapa +#: model_terms:ir.ui.view,arch_db:l10n_it_website_portal_fatturapa.fatturapa_details +msgid "Your Last Name" +msgstr "" diff --git a/l10n_it_website_portal_fatturapa/readme/DESCRIPTION.rst b/l10n_it_website_portal_fatturapa/readme/DESCRIPTION.rst new file mode 100644 index 000000000000..5491a9b6b040 --- /dev/null +++ b/l10n_it_website_portal_fatturapa/readme/DESCRIPTION.rst @@ -0,0 +1 @@ +Allow frontend users to edit any necessary field for Electronic invoice from their *details* page. diff --git a/l10n_it_website_portal_fatturapa/readme/ROADMAP.rst b/l10n_it_website_portal_fatturapa/readme/ROADMAP.rst new file mode 100644 index 000000000000..ff5071c2dab6 --- /dev/null +++ b/l10n_it_website_portal_fatturapa/readme/ROADMAP.rst @@ -0,0 +1 @@ +Fields `is_pa` and `ipa_code` are not shown in the frontend because Odoo core always supposes that frontend users are individual, and these fields are only meaningful for companies. diff --git a/l10n_it_website_portal_fatturapa/static/description/icon.png b/l10n_it_website_portal_fatturapa/static/description/icon.png new file mode 100644 index 000000000000..3a0328b516c4 Binary files /dev/null and b/l10n_it_website_portal_fatturapa/static/description/icon.png differ diff --git a/l10n_it_website_portal_fatturapa/static/description/index.html b/l10n_it_website_portal_fatturapa/static/description/index.html new file mode 100644 index 000000000000..81fad21a0007 --- /dev/null +++ b/l10n_it_website_portal_fatturapa/static/description/index.html @@ -0,0 +1,411 @@ + + + + + +ITA - Fattura elettronica - Portale + + + +

    +

    ITA - Fattura elettronica - Portale

    + + +

    Beta License: AGPL-3 OCA/l10n-italy Translate me on Weblate Try me on Runboat

    +

    Allow frontend users to edit any necessary field for Electronic invoice from their details page.

    +

    Table of contents

    + +
    +

    Known issues / Roadmap

    +

    Fields is_pa and ipa_code are not shown in the frontend because Odoo core always supposes that frontend users are individual, and these fields are only meaningful for companies.

    +
    +
    +

    Bug Tracker

    +

    Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +feedback.

    +

    Do not contact contributors directly about support or help with technical issues.

    +
    +
    +

    Credits

    +
    +

    Maintainers

    +

    This module is maintained by the OCA.

    +Odoo Community Association +

    OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

    +

    This module is part of the OCA/l10n-italy project on GitHub.

    +

    You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

    +
    +
    +
    + + diff --git a/l10n_it_website_portal_fatturapa/static/src/js/l10n_it_website_portal_fatturapa.js b/l10n_it_website_portal_fatturapa/static/src/js/l10n_it_website_portal_fatturapa.js new file mode 100644 index 000000000000..0bcccf0badfe --- /dev/null +++ b/l10n_it_website_portal_fatturapa/static/src/js/l10n_it_website_portal_fatturapa.js @@ -0,0 +1,50 @@ +odoo.define("l10n_it_website_portal_fatturapa", function (require) { + "use strict"; + require("web.core"); + + $(document).ready(function () { + var details_div_selector = ".o_portal_details"; + var $details_div = $(details_div_selector); + if ($details_div.length) { + var $electronic_invoice_subjected_input = $details_div.find( + "input[name='electronic_invoice_subjected'][type='checkbox']" + ); + var $div_electronic_invoice_subjected_fields = $details_div.find( + ".div_electronic_invoice_subjected_fields" + ); + + var compute_e_inv_fields_visibility = function () { + if ($electronic_invoice_subjected_input[0].checked) { + $div_electronic_invoice_subjected_fields.show(); + } else { + $div_electronic_invoice_subjected_fields.hide(); + } + }; + compute_e_inv_fields_visibility(); + $electronic_invoice_subjected_input.change(compute_e_inv_fields_visibility); + + var $is_pa = $details_div.find("input[name='is_pa'][type='checkbox']"); + if (!$is_pa.length) { + return; + } + var $codice_destinatario_div = $details_div + .find("input[name='codice_destinatario'][type='text']") + .parent(); + var $pec_destinatario_div = $details_div + .find("input[name='pec_destinatario'][type='text']") + .parent(); + + var compute_destinatario_fields_visibility = function () { + if ($is_pa[0].checked) { + $codice_destinatario_div.hide(); + $pec_destinatario_div.hide(); + } else { + $codice_destinatario_div.show(); + $pec_destinatario_div.show(); + } + }; + compute_destinatario_fields_visibility(); + $is_pa.change(compute_destinatario_fields_visibility); + } + }); +}); diff --git a/l10n_it_website_portal_fatturapa/views/l10n_it_website_portal_fatturapa_templates.xml b/l10n_it_website_portal_fatturapa/views/l10n_it_website_portal_fatturapa_templates.xml new file mode 100644 index 000000000000..a86785092df9 --- /dev/null +++ b/l10n_it_website_portal_fatturapa/views/l10n_it_website_portal_fatturapa_templates.xml @@ -0,0 +1,126 @@ + + + +