diff --git a/intrastat_product/__manifest__.py b/intrastat_product/__manifest__.py index db8b18d..6abbcb4 100644 --- a/intrastat_product/__manifest__.py +++ b/intrastat_product/__manifest__.py @@ -7,7 +7,7 @@ { "name": "Intrastat Product", - "version": "13.0.1.0.2", + "version": "13.0.1.0.3", "category": "Intrastat", "license": "AGPL-3", "summary": "Base module for Intrastat Product", diff --git a/intrastat_product/i18n/fr.po b/intrastat_product/i18n/fr.po index 4b068bf..b58b3c0 100644 --- a/intrastat_product/i18n/fr.po +++ b/intrastat_product/i18n/fr.po @@ -79,7 +79,6 @@ msgstr "12" #. module: intrastat_product #: model_terms:ir.ui.view,arch_db:intrastat_product.intrastat_product_declaration_view_form #, fuzzy -#| msgid "Intrastat Product Declarations" msgid "Intrastat Product Declaration " msgstr "DEBs" @@ -108,7 +107,6 @@ msgstr "Action" #. module: intrastat_product #: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__message_needaction #, fuzzy -#| msgid "Action" msgid "Action Needed" msgstr "Action" @@ -117,6 +115,23 @@ msgstr "Action" msgid "Active" msgstr "Actif" +#. module: intrastat_product +#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__activity_ids +#, fuzzy +msgid "Activities" +msgstr "Actif" + +#. module: intrastat_product +#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__activity_exception_decoration +msgid "Activity Exception Decoration" +msgstr "" + +#. module: intrastat_product +#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__activity_state +#, fuzzy +msgid "Activity State" +msgstr "Actif" + #. module: intrastat_product #: model:intrastat.transport_mode,name:intrastat_product.intrastat_transport_4 msgid "Air" @@ -150,6 +165,14 @@ msgstr "" "société = montant dans la devise de la facture converti à la date de la " "facture." +#. module: intrastat_product +#: code:addons/intrastat_product/models/intrastat_product_declaration.py:0 +#, python-format +msgid "" +"An XML Export already exists for %s. To re-generate it, you must first " +"delete it." +msgstr "" + #. module: intrastat_product #: code:addons/intrastat_product/models/intrastat_product_declaration.py:0 #, python-format @@ -171,7 +194,6 @@ msgstr "Introductions" #. module: intrastat_product #: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__message_attachment_count #, fuzzy -#| msgid "Intrastat Country" msgid "Attachment Count" msgstr "Pays pour la DEB" @@ -219,6 +241,12 @@ msgstr "Société" msgid "Company Country Code" msgstr "Code pays de la société" +#. module: intrastat_product +#: model:ir.model.fields,field_description:intrastat_product.field_res_config_settings__country_code +#, fuzzy +msgid "Company Country code" +msgstr "Code pays de la société" + #. module: intrastat_product #: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_computation_line__company_currency_id #: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration_line__company_currency_id @@ -235,7 +263,6 @@ msgstr "Lignes de transaction" #. module: intrastat_product #: model:ir.model,name:intrastat_product.model_res_config_settings #, fuzzy -#| msgid "res.config.settings" msgid "Config Settings" msgstr "res.config.settings" @@ -274,13 +301,6 @@ msgstr "" msgid "Country" msgstr "Pays" -#. module: intrastat_product -#: model:ir.model.fields,field_description:intrastat_product.field_res_config_settings__country_code -#, fuzzy -#| msgid "Company Country Code" -msgid "Country Code" -msgstr "Code pays de la société" - #. module: intrastat_product #: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_computation_line__product_origin_country_id #: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration_line__product_origin_country_id @@ -524,7 +544,6 @@ msgstr "Génération des lignes à partir des factures: résultats" #. module: intrastat_product #: code:addons/intrastat_product/models/intrastat_product_declaration.py:0 #, fuzzy, python-format -#| msgid "Go to company configuration screen" msgid "Go to Accounting Configuration Settings screen" msgstr "Aller à la page de configuration" @@ -557,6 +576,16 @@ msgstr "Codes S.H." msgid "ID" msgstr "ID" +#. module: intrastat_product +#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__activity_exception_icon +msgid "Icon" +msgstr "" + +#. module: intrastat_product +#: model:ir.model.fields,help:intrastat_product.field_intrastat_product_declaration__activity_exception_icon +msgid "Icon to indicate an exception activity." +msgstr "" + #. module: intrastat_product #: model:ir.model.fields,help:intrastat_product.field_intrastat_product_declaration__message_needaction #: model:ir.model.fields,help:intrastat_product.field_intrastat_product_declaration__message_unread @@ -654,7 +683,6 @@ msgstr "DEB" #. module: intrastat_product #: model:ir.model,name:intrastat_product.model_intrastat_product_computation_line #, fuzzy -#| msgid "Intrastat Product Computation Lines" msgid "Intrastat Product Computataion Lines" msgstr "Lignes de calcul de la DEB" @@ -754,7 +782,6 @@ msgstr "Modes de transport pour la DEB" #. module: intrastat_product #: model:ir.model,name:intrastat_product.model_report_intrastat_product_product_declaration_xls #, fuzzy -#| msgid "Intrastat Declaration" msgid "Intrastat declaration" msgstr "DEB" @@ -902,6 +929,21 @@ msgstr "Nom, code ou description" msgid "Net weight in Kg" msgstr "Poids net en Kg" +#. module: intrastat_product +#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__activity_date_deadline +msgid "Next Activity Deadline" +msgstr "" + +#. module: intrastat_product +#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__activity_summary +msgid "Next Activity Summary" +msgstr "" + +#. module: intrastat_product +#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__activity_type_id +msgid "Next Activity Type" +msgstr "" + #. module: intrastat_product #: code:addons/intrastat_product/models/intrastat_product_declaration.py:0 #, python-format @@ -935,7 +977,6 @@ msgstr "Notes" #. module: intrastat_product #: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__message_needaction_counter #, fuzzy -#| msgid "Number of Declaration Lines" msgid "Number of Actions" msgstr "Nombre de lignes de déclaration" @@ -947,7 +988,6 @@ msgstr "Nombre de lignes de déclaration" #. module: intrastat_product #: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__message_has_error_counter #, fuzzy -#| msgid "Number of Declaration Lines" msgid "Number of errors" msgstr "Nombre de lignes de déclaration" @@ -1106,6 +1146,11 @@ msgstr "" msgid "Reporting Level" msgstr "Niveau d'obligation" +#. module: intrastat_product +#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__activity_user_id +msgid "Responsible User" +msgstr "" + #. module: intrastat_product #: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__revision msgid "Revision" @@ -1199,6 +1244,15 @@ msgstr "" "État de la déclaration. Quand l'état est à 'Terminé', les paramètres passent " "en lecture seule." +#. module: intrastat_product +#: model:ir.model.fields,help:intrastat_product.field_intrastat_product_declaration__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: intrastat_product #: code:addons/intrastat_product/report/intrastat_product_report_xls.py:0 #: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_computation_line__intrastat_unit_id @@ -1272,7 +1326,6 @@ msgstr "Cette donnée est utilisée pour la DEB" #. module: intrastat_product #: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__total_amount #, fuzzy -#| msgid "Total Amount" msgid "Total Fiscal Amount" msgstr "Montant total" @@ -1284,7 +1337,6 @@ msgstr "Montant total" #. module: intrastat_product #: model:ir.model.fields,help:intrastat_product.field_intrastat_product_declaration__total_amount #, fuzzy -#| msgid "Year and month of the declaration." msgid "Total fiscal amount in company currency of the declaration." msgstr "Année et mois de la DEB." @@ -1328,6 +1380,11 @@ msgstr "Modes de transport" msgid "Type" msgstr "Type" +#. module: intrastat_product +#: model:ir.model.fields,help:intrastat_product.field_intrastat_product_declaration__activity_exception_decoration +msgid "Type of the exception activity on record." +msgstr "" + #. module: intrastat_product #: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__message_unread msgid "Unread Messages" @@ -1336,7 +1393,6 @@ msgstr "" #. module: intrastat_product #: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__message_unread_counter #, fuzzy -#| msgid "Intrastat Country" msgid "Unread Messages Counter" msgstr "Pays pour la DEB" @@ -1379,6 +1435,11 @@ msgstr "" msgid "Weight" msgstr "Poids" +#. module: intrastat_product +#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__xml_attachment_id +msgid "XML Export" +msgstr "" + #. module: intrastat_product #: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__year msgid "Year" @@ -1397,7 +1458,6 @@ msgstr "Vous pouvez ajouter des commentaires ici si vous le voulez." #. module: intrastat_product #: code:addons/intrastat_product/models/intrastat_product_declaration.py:0 #, fuzzy, python-format -#| msgid "You must set the country of the company!" msgid "You must set company's country !" msgstr "Vous devez configurer le pays de la société !" @@ -1407,6 +1467,11 @@ msgstr "Vous devez configurer le pays de la société !" msgid "for period %s" msgstr "" +#, fuzzy +#~| msgid "Company Country Code" +#~ msgid "Country Code" +#~ msgstr "Code pays de la société" + #~ msgid "Default Incoterm for Intrastat" #~ msgstr "Incoterm par défaut pour la DEB" diff --git a/intrastat_product/i18n/intrastat_product.pot b/intrastat_product/i18n/intrastat_product.pot index 9adcd00..41b3be1 100644 --- a/intrastat_product/i18n/intrastat_product.pot +++ b/intrastat_product/i18n/intrastat_product.pot @@ -107,6 +107,21 @@ msgstr "" msgid "Active" msgstr "" +#. module: intrastat_product +#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__activity_ids +msgid "Activities" +msgstr "" + +#. module: intrastat_product +#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__activity_exception_decoration +msgid "Activity Exception Decoration" +msgstr "" + +#. module: intrastat_product +#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__activity_state +msgid "Activity State" +msgstr "" + #. module: intrastat_product #: model:intrastat.transport_mode,name:intrastat_product.intrastat_transport_4 msgid "Air" @@ -134,6 +149,14 @@ msgid "" " rate of the invoice date." msgstr "" +#. module: intrastat_product +#: code:addons/intrastat_product/models/intrastat_product_declaration.py:0 +#, python-format +msgid "" +"An XML Export already exists for %s. To re-generate it, you must first " +"delete it." +msgstr "" + #. module: intrastat_product #: code:addons/intrastat_product/models/intrastat_product_declaration.py:0 #, python-format @@ -201,6 +224,11 @@ msgstr "" msgid "Company Country Code" msgstr "" +#. module: intrastat_product +#: model:ir.model.fields,field_description:intrastat_product.field_res_config_settings__country_code +msgid "Company Country code" +msgstr "" + #. module: intrastat_product #: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_computation_line__company_currency_id #: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration_line__company_currency_id @@ -250,11 +278,6 @@ msgstr "" msgid "Country" msgstr "" -#. module: intrastat_product -#: model:ir.model.fields,field_description:intrastat_product.field_res_config_settings__country_code -msgid "Country Code" -msgstr "" - #. module: intrastat_product #: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_computation_line__product_origin_country_id #: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration_line__product_origin_country_id @@ -529,6 +552,16 @@ msgstr "" msgid "ID" msgstr "" +#. module: intrastat_product +#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__activity_exception_icon +msgid "Icon" +msgstr "" + +#. module: intrastat_product +#: model:ir.model.fields,help:intrastat_product.field_intrastat_product_declaration__activity_exception_icon +msgid "Icon to indicate an exception activity." +msgstr "" + #. module: intrastat_product #: model:ir.model.fields,help:intrastat_product.field_intrastat_product_declaration__message_needaction #: model:ir.model.fields,help:intrastat_product.field_intrastat_product_declaration__message_unread @@ -863,6 +896,21 @@ msgstr "" msgid "Net weight in Kg" msgstr "" +#. module: intrastat_product +#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__activity_date_deadline +msgid "Next Activity Deadline" +msgstr "" + +#. module: intrastat_product +#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__activity_summary +msgid "Next Activity Summary" +msgstr "" + +#. module: intrastat_product +#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__activity_type_id +msgid "Next Activity Type" +msgstr "" + #. module: intrastat_product #: code:addons/intrastat_product/models/intrastat_product_declaration.py:0 #, python-format @@ -1052,6 +1100,11 @@ msgstr "" msgid "Reporting Level" msgstr "" +#. module: intrastat_product +#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__activity_user_id +msgid "Responsible User" +msgstr "" + #. module: intrastat_product #: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__revision msgid "Revision" @@ -1141,6 +1194,15 @@ msgid "" "become read-only." msgstr "" +#. module: intrastat_product +#: model:ir.model.fields,help:intrastat_product.field_intrastat_product_declaration__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: intrastat_product #: code:addons/intrastat_product/report/intrastat_product_report_xls.py:0 #: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_computation_line__intrastat_unit_id @@ -1262,6 +1324,11 @@ msgstr "" msgid "Type" msgstr "" +#. module: intrastat_product +#: model:ir.model.fields,help:intrastat_product.field_intrastat_product_declaration__activity_exception_decoration +msgid "Type of the exception activity on record." +msgstr "" + #. module: intrastat_product #: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__message_unread msgid "Unread Messages" @@ -1311,6 +1378,11 @@ msgstr "" msgid "Weight" msgstr "" +#. module: intrastat_product +#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__xml_attachment_id +msgid "XML Export" +msgstr "" + #. module: intrastat_product #: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__year msgid "Year" diff --git a/intrastat_product/migrations/13.0.1.0.3/noupdate_changes.xml b/intrastat_product/migrations/13.0.1.0.3/noupdate_changes.xml new file mode 100644 index 0000000..2b3316d --- /dev/null +++ b/intrastat_product/migrations/13.0.1.0.3/noupdate_changes.xml @@ -0,0 +1,18 @@ + + + + ['|', ('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/intrastat_product/migrations/13.0.1.0.3/post-migration.py b/intrastat_product/migrations/13.0.1.0.3/post-migration.py new file mode 100644 index 0000000..9264a91 --- /dev/null +++ b/intrastat_product/migrations/13.0.1.0.3/post-migration.py @@ -0,0 +1,10 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from openupgradelib import openupgrade # pylint: disable=W7936 + + +@openupgrade.migrate() +def migrate(env, version): + openupgrade.load_data( + env.cr, "intrastat_product", "migrations/13.0.1.0.3/noupdate_changes.xml" + ) diff --git a/intrastat_product/models/intrastat_product_declaration.py b/intrastat_product/models/intrastat_product_declaration.py index 3423077..4535b78 100644 --- a/intrastat_product/models/intrastat_product_declaration.py +++ b/intrastat_product/models/intrastat_product_declaration.py @@ -18,7 +18,7 @@ class IntrastatProductDeclaration(models.Model): _name = "intrastat.product.declaration" _description = "Intrastat Product Report Base Object" _rec_name = "year_month" - _inherit = ["mail.thread", "intrastat.common"] + _inherit = ["mail.thread", "mail.activity.mixin", "intrastat.common"] _order = "year_month desc, type, revision" _sql_constraints = [ ( @@ -32,7 +32,7 @@ class IntrastatProductDeclaration(models.Model): @api.model def default_get(self, fields_list): - res = super(IntrastatProductDeclaration, self).default_get(fields_list) + res = super().default_get(fields_list) decl_date = fields.Date.context_today(self) - relativedelta(months=1) res.update( {"year": str(decl_date.year), "month": str(decl_date.month).rjust(2, "0")} @@ -150,6 +150,7 @@ class IntrastatProductDeclaration(models.Model): states={"done": [("readonly", True)]}, ) valid = fields.Boolean(compute="_compute_check_validity", string="Valid") + xml_attachment_id = fields.Many2one("ir.attachment", string="XML Export") @api.model def _default_company_id(self): @@ -225,7 +226,7 @@ class IntrastatProductDeclaration(models.Model): self.ensure_one() default = default or {} default["revision"] = self.revision + 1 - return super(IntrastatProductDeclaration, self).copy(default) + return super().copy(default) def _account_config_warning(self, msg): action = self.env.ref("account.action_account_config") @@ -805,6 +806,14 @@ class IntrastatProductDeclaration(models.Model): def generate_xml(self): """ generate the INTRASTAT Declaration XML file """ self.ensure_one() + if self.xml_attachment_id: + raise UserError( + _( + "An XML Export already exists for %s. " + "To re-generate it, you must first delete it." + ) + % self.display_name + ) self.message_post(body=_("Generate XML Declaration File")) self._check_generate_xml() self._unlink_attachments() @@ -813,6 +822,7 @@ class IntrastatProductDeclaration(models.Model): attach_id = self._attach_xml_file( xml_string, "{}_{}".format(self.type, self.revision) ) + self.write({"xml_attachment_id": attach_id}) return self._open_attach_view(attach_id) else: raise UserError(_("No XML File has been generated.")) diff --git a/intrastat_product/models/sale_order.py b/intrastat_product/models/sale_order.py index eebbeb4..9add6e4 100644 --- a/intrastat_product/models/sale_order.py +++ b/intrastat_product/models/sale_order.py @@ -19,7 +19,7 @@ class SaleOrder(models.Model): def _prepare_invoice(self): """Copy destination country to invoice""" - vals = super(SaleOrder, self)._prepare_invoice() + vals = super()._prepare_invoice() if self.intrastat_transport_id: vals["intrastat_transport_id"] = self.intrastat_transport_id.id if self.warehouse_id.region_id: diff --git a/intrastat_product/security/intrastat_security.xml b/intrastat_product/security/intrastat_security.xml index f4c714a..b1e9d11 100644 --- a/intrastat_product/security/intrastat_security.xml +++ b/intrastat_product/security/intrastat_security.xml @@ -5,20 +5,20 @@ ['|', ('company_id', '=', False), ('company_id', 'child_of', [user.company_id.id])] + >['|', ('company_id', '=', False), ('company_id', 'in', company_ids)] Intrastat Region Company rule ['|', ('company_id', '=', False), ('company_id', 'child_of', [user.company_id.id])] + >['|', ('company_id', '=', False), ('company_id', 'in', company_ids)] Intrastat Product Declaration Company rule ['|', ('company_id', '=', False), ('company_id', 'child_of', [user.company_id.id])] + >['|', ('company_id', '=', False), ('company_id', 'in', company_ids)] diff --git a/intrastat_product/views/intrastat_product_declaration.xml b/intrastat_product/views/intrastat_product_declaration.xml index 0a75377..9934bed 100644 --- a/intrastat_product/views/intrastat_product_declaration.xml +++ b/intrastat_product/views/intrastat_product_declaration.xml @@ -23,7 +23,7 @@ name="generate_xml" string="Generate XML Declaration File" type="object" - attrs="{'invisible': [('state', '!=', 'draft')]}" + attrs="{'invisible': [('xml_attachment_id', '!=', False)]}" invisible="context.get('generic_intrastat_product_declaration')" />