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')"
/>
+
@@ -115,6 +119,7 @@
+