diff --git a/l10n_it_fatturapa_in/security/ir.model.access.csv b/l10n_it_fatturapa_in/security/ir.model.access.csv index 056d7bcb6181..a737c71f682a 100644 --- a/l10n_it_fatturapa_in/security/ir.model.access.csv +++ b/l10n_it_fatturapa_in/security/ir.model.access.csv @@ -3,3 +3,11 @@ access_fatturapa_attachment_in,access_fatturapa_attachment_in,model_fatturapa_at access_fatturapa_article_code,access_fatturapa_article_code,model_fatturapa_article_code,account.group_account_invoice,1,1,1,1 access_einvoice_line,access_einvoice_line,model_einvoice_line,account.group_account_invoice,1,1,1,1 access_einvoice_line_other_data,access_einvoice_line_other_data,model_einvoice_line_other_data,account.group_account_invoice,1,1,1,1 +create_billing_fatturapa_summary_data,Allow E-Invoice Summary Data creation for Billing,l10n_it_fatturapa.model_faturapa_summary_data,account.group_account_invoice,0,0,1,0 +create_billing_fatturapa_payment_data,Allow E-Invoice Payment Data creation for Billing,l10n_it_fatturapa.model_fatturapa_payment_data,account.group_account_invoice,0,0,1,0 +create_billing_fatturapa_payment_detail,Allow E-Invoice Payment Detail creation for Billing,l10n_it_fatturapa.model_fatturapa_payment_detail,account.group_account_invoice,0,0,1,0 +create_billing_discount_rise_price,Allow E-Invoice Discount Supplement Data creation for Billing,l10n_it_fatturapa.model_discount_rise_price,account.group_account_invoice,0,0,1,0 +create_billing_welfare_fund_data_line,Allow E-invoice Welfare Fund Data creation for Billing,l10n_it_fatturapa.model_welfare_fund_data_line,account.group_account_invoice,0,0,1,0 +create_billing_fatturapa_activity_progress,Allow E-invoice Activity Progress creation for Billing,l10n_it_fatturapa.model_faturapa_activity_progress,account.group_account_invoice,0,0,1,0 +create_billing_fatturapa_related_ddt,Allow E-invoice Related DDT creation for Billing,l10n_it_fatturapa.model_fatturapa_related_ddt,account.group_account_invoice,0,0,1,0 +create_billing_fatturapa_attachments,Allow E-invoice attachments creation for Billing,l10n_it_fatturapa.model_fatturapa_attachments,account.group_account_invoice,0,0,1,0 diff --git a/l10n_it_fatturapa_in/tests/fatturapa_common.py b/l10n_it_fatturapa_in/tests/fatturapa_common.py index 835c6641894d..536c5ed6ed62 100644 --- a/l10n_it_fatturapa_in/tests/fatturapa_common.py +++ b/l10n_it_fatturapa_in/tests/fatturapa_common.py @@ -1,5 +1,7 @@ import base64 import tempfile + +from odoo.addons.test_mail.tests.common import mail_new_test_user from odoo.modules import get_module_resource from odoo.tests.common import SingleTransactionCase @@ -132,14 +134,22 @@ def run_wizard(self, name, file_name, datas_fname=None, module_name=module_name) attach_id = attach.id if mode == 'import': - wizard = self.wizard_model.with_context( - active_ids=[attach_id], active_model='fatturapa.attachment.in' - ).create(wiz_values or {}) + wizard = self.wizard_model \ + .sudo(user=self.env.uid) \ + .with_context( + active_ids=[attach_id], + active_model='fatturapa.attachment.in', + ) \ + .create(wiz_values or {}) return wizard.importFatturaPA() if mode == 'link': - wizard = self.wizard_link_model.with_context( - active_ids=[attach_id], active_model='fatturapa.attachment.in' - ).create(wiz_values or {}) + wizard = self.wizard_link_model \ + .sudo(user=self.env.uid) \ + .with_context( + active_ids=[attach_id], + active_model='fatturapa.attachment.in', + ). \ + create(wiz_values or {}) return wizard.link() def run_wizard_multi(self, file_name_list, module_name=None): @@ -157,6 +167,15 @@ def run_wizard_multi(self, file_name_list, module_name=None): active_ids=active_ids).create({}) return wizard.importFatturaPA() + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.billing_user = mail_new_test_user( + cls.env, + login="Billing user", + groups='account.group_account_invoice,base.group_partner_manager', + ) + def setUp(self): super(FatturapaCommon, self).setUp() self.wizard_model = self.env['wizard.import.fatturapa'] 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 94fb40e8bdba..3f4ed73325c6 100644 --- a/l10n_it_fatturapa_in/tests/test_import_fatturapa_xml.py +++ b/l10n_it_fatturapa_in/tests/test_import_fatturapa_xml.py @@ -1053,6 +1053,24 @@ def vat_partner_exists(): bill.inconsistencies, ) + def test_55_xml_import_billing(self): + """ + A user only having groups 'Billing' and 'Create contacts', + but not 'Billing Manager', + can import an Electronic Invoice. + """ + user = self.billing_user + self.uid = user.id + user_model = self.env['res.users'] + self.assertTrue(user_model.has_group('account.group_account_invoice')) + self.assertTrue(user_model.has_group('base.group_partner_manager')) + self.assertFalse(user_model.has_group('account.group_account_manager')) + + res = self.run_wizard('import_billing', 'IT01234567890_FPR15.xml') + invoice_id = res.get('domain')[0][2][0] + invoice = self.invoice_model.browse(invoice_id) + self.assertTrue(invoice) + def test_01_xml_link(self): """ E-invoice lines are created.