Skip to content

Commit

Permalink
[IMP] l10n_ar_edi_ux: boarding permission
Browse files Browse the repository at this point in the history
Task: 29241
  • Loading branch information
pablohmontenegro committed Nov 3, 2023
1 parent 63085de commit da17dde
Show file tree
Hide file tree
Showing 7 changed files with 83 additions and 1 deletion.
3 changes: 2 additions & 1 deletion l10n_ar_edi_ux/__manifest__.py
@@ -1,6 +1,6 @@
{
'name': 'Argentinian Electronic Invoicing UX',
'version': "16.0.1.1.0",
'version': "16.0.1.2.0",
'category': 'Localization/Argentina',
'sequence': 14,
'author': 'ADHOC SA',
Expand All @@ -21,6 +21,7 @@
'views/res_partner_view.xml',
'views/account_move_view.xml',
'views/account_journal_view.xml',
'views/l10n_ar_boarding_permission_view.xml',
'security/ir.model.access.csv',
],
'demo': [
Expand Down
1 change: 1 addition & 0 deletions l10n_ar_edi_ux/models/__init__.py
Expand Up @@ -6,3 +6,4 @@
from . import res_partner
from . import account_move
from . import account_journal
from . import l10n_ar_boarding_permission
24 changes: 24 additions & 0 deletions l10n_ar_edi_ux/models/account_move.py
Expand Up @@ -16,6 +16,7 @@ class AccountMove(models.Model):
states={'draft': [('readonly', False)]},
help='Set this field if it is you are reporting debit/credit note and have not related invoice.'
' IMPORTANT: This is only applies on "Electronic Invoice - Web Service"')
l10n_ar_boarding_permission_ids = fields.Many2many('l10n_ar.boarding_permission', help="Solo se envía esta información si la factura es de exportación y el 'Concepto AFIP' es 'roducts / Definitive export of goods'")

def _found_related_invoice(self):
"""
Expand Down Expand Up @@ -88,3 +89,26 @@ def _post(self, soft=True):
raise UserError(msg)

return super(AccountMove, self - purchase_ar_edi_invoices)._post(soft=soft)

def _get_permissions(self):
""" Get 'permiso de embarque' for foreign invoices. """
self.ensure_one()
res = []
for permiso in self.l10n_ar_boarding_permission_ids:
res.append({'Id_permiso': permiso.l10n_ar_boarding_permission_number, 'Dst_merc': permiso.l10n_ar_boarding_permission_dst_country.l10n_ar_afip_code})
return res

@api.model
def wsfex_get_cae_request(self, last_id, client):
""" Set permiso de embarque to foreign invoice. """
res = super(AccountMove, self).wsfex_get_cae_request(last_id, client)
ArrayOfPermisions = client.get_type('ns0:ArrayOfPermiso')
if int(self.l10n_latam_document_type_id.code) == 19 and int(self.l10n_ar_afip_concept) == 1:
permisos = self._get_permissions()
permiso_existente = "S" if permisos else "N"
else:
permisos = []
permiso_existente = ""
res.update({'Permisos': ArrayOfPermisions(permisos) if permisos else None})
res.update({'Permiso_existente': permiso_existente})
return res
10 changes: 10 additions & 0 deletions l10n_ar_edi_ux/models/l10n_ar_boarding_permission.py
@@ -0,0 +1,10 @@
from odoo import fields, models


class L10nArBoardingPermission(models.Model):
_name = "l10n_ar.boarding_permission"
_description = 'Boarding Permission'
_rec_name = 'l10n_ar_boarding_permission_dst_country'

l10n_ar_boarding_permission_number = fields.Char(string="Permiso de embarque")
l10n_ar_boarding_permission_dst_country = fields.Many2one('res.country', string="País donde se aplica permiso de embarque")
1 change: 1 addition & 0 deletions l10n_ar_edi_ux/security/ir.model.access.csv
Expand Up @@ -2,3 +2,4 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_res_partner_update_from_padron_field,access_res_partner_update_from_padron_field,model_res_partner_update_from_padron_field,base.group_user,1,1,1,1
access_res_partner_update_from_padron_wizard,access_res_partner_update_from_padron_wizard,model_res_partner_update_from_padron_wizard,base.group_user,1,1,1,0
access_res_partner_update_from_padron_info,access_res_partner_update_from_padron_info,model_res_partner_update_from_padron_info,base.group_user,1,1,1,1
access_l10n_ar_boarding_permission,access_l10n_ar_boarding_permission,model_l10n_ar_boarding_permission,base.group_user,1,1,1,1
10 changes: 10 additions & 0 deletions l10n_ar_edi_ux/views/account_move_view.xml
Expand Up @@ -15,4 +15,14 @@
</field>
</record>

<record id="view_move_form" model="ir.ui.view">
<field name="name">account.move.afip.form</field>
<field name="model">account.move</field>
<field name="inherit_id" ref="l10n_ar_edi.view_move_form"/>
<field name="arch" type="xml">
<field name='l10n_ar_afip_xml_response' position="after">
<field name='l10n_ar_boarding_permission_ids' widget="many2many_tags" attrs="{'invisible': [('l10n_ar_afip_ws', '!=', 'wsfex')]}"/>
</field>
</field>
</record>
</odoo>
35 changes: 35 additions & 0 deletions l10n_ar_edi_ux/views/l10n_ar_boarding_permission_view.xml
@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="l10n_ar_boarding_permission_tree" model="ir.ui.view">
<field name="name">l10n_ar.boarding_permission.tree</field>
<field name="model">l10n_ar.boarding_permission</field>
<field name="arch" type="xml">
<tree>
<field name="l10n_ar_boarding_permission_number"/>
<field name="l10n_ar_boarding_permission_dst_country"/>
</tree>
</field>
</record>

<record id="l10n_ar_boarding_permission_form" model="ir.ui.view">
<field name="name">l10n_ar.boarding_permission.form</field>
<field name="model">l10n_ar.boarding_permission</field>
<field name="arch" type="xml">
<form>
<group>
<field name="l10n_ar_boarding_permission_number"/>
<field name="l10n_ar_boarding_permission_dst_country"/>
</group>
</form>
</field>
</record>

<record model="ir.actions.act_window" id="action_l10n_ar_boarding_permission">
<field name="name">Permisos de embarque</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">l10n_ar.boarding_permission</field>
<field name="view_mode">tree,form</field>
</record>

<menuitem name="Permisos de embarque" action="action_l10n_ar_boarding_permission" id="menu_action_l10n_ar_boarding_permission" parent="l10n_ar.menu_afip_config"/>
</odoo>

0 comments on commit da17dde

Please sign in to comment.