update to 4.0

This commit is contained in:
Àngel Àlvarez 2017-06-01 11:44:52 +02:00
parent 8ee79ab118
commit 323be8c166
6 changed files with 25 additions and 29 deletions

30
aeat.py
View file

@ -126,9 +126,9 @@ AEAT_COMMUNICATION_STATE = [
AEAT_INVOICE_STATE = [ AEAT_INVOICE_STATE = [
(None, ''), (None, ''),
('Correcto', 'Accepted'), ('Correcto', 'Accepted '),
('Correcta', 'Accepted'), # You guys are disgusting ('Correcta', 'Accepted'), # You guys are disgusting
('AceptadoConErrores', 'Accepted with Errors'), ('AceptadoConErrores', 'Accepted with Errors '),
('AceptadaConErrores', 'Accepted with Errors'), # Shame on AEAT ('AceptadaConErrores', 'Accepted with Errors'), # Shame on AEAT
('Anulada', 'Deleted'), ('Anulada', 'Deleted'),
('Incorrecto', 'Rejected') ('Incorrecto', 'Rejected')
@ -234,7 +234,7 @@ class SIIReport(Workflow, ModelSQL, ModelView):
}, depends=['state']) }, depends=['state'])
period = fields.Many2One('account.period', 'Period', required=True, period = fields.Many2One('account.period', 'Period', required=True,
domain = [('fiscalyear','=', Eval('fiscalyear'))], domain=[('fiscalyear', '=', Eval('fiscalyear'))],
states={ states={
'readonly': Eval('state') != 'draft', 'readonly': Eval('state') != 'draft',
}, depends=['state']) }, depends=['state'])
@ -258,7 +258,7 @@ class SIIReport(Workflow, ModelSQL, ModelView):
('sent', 'Sent'), ('sent', 'Sent'),
], 'State', readonly=True) ], 'State', readonly=True)
communication_state = fields.Selection( AEAT_COMMUNICATION_STATE, communication_state = fields.Selection(AEAT_COMMUNICATION_STATE,
'Communication State', readonly=True) 'Communication State', readonly=True)
csv = fields.Char( csv = fields.Char(
@ -275,7 +275,6 @@ class SIIReport(Workflow, ModelSQL, ModelView):
'readonly': ~Eval('state').in_(['draft']), 'readonly': ~Eval('state').in_(['draft']),
}, depends=['state']) }, depends=['state'])
@classmethod @classmethod
def __setup__(cls): def __setup__(cls):
super(SIIReport, cls).__setup__() super(SIIReport, cls).__setup__()
@ -299,7 +298,7 @@ class SIIReport(Workflow, ModelSQL, ModelView):
}, },
'load_invoices': { 'load_invoices': {
'invisible': ~(Eval('state').in_(['draft']) & 'invisible': ~(Eval('state').in_(['draft']) &
Eval('operation_type').in_(['A0','A1'])), Eval('operation_type').in_(['A0', 'A1'])),
} }
}) })
@ -313,7 +312,6 @@ class SIIReport(Workflow, ModelSQL, ModelView):
)) ))
@staticmethod @staticmethod
def default_company(): def default_company():
@ -339,7 +337,7 @@ class SIIReport(Workflow, ModelSQL, ModelView):
@fields.depends('company') @fields.depends('company')
def on_change_with_company_vat(self): def on_change_with_company_vat(self):
if self.company: if self.company:
return self.company.party.vat_number return self.company.party.vat_code
@classmethod @classmethod
@ModelView.button @ModelView.button
@ -418,7 +416,7 @@ class SIIReport(Workflow, ModelSQL, ModelView):
_logger.info('Sending report %s to AEAT SII', self.id) _logger.info('Sending report %s to AEAT SII', self.id)
headers = mapping.get_headers( headers = mapping.get_headers(
name=self.company.party.name, name=self.company.party.name,
vat=self.company.party.vat_number, vat=self.company.party.vat_code,
comm_kind=self.operation_type) comm_kind=self.operation_type)
pool = Pool() pool = Pool()
mapper = pool.get('aeat.sii.issued.invoice.mapper')(pool=pool) mapper = pool.get('aeat.sii.issued.invoice.mapper')(pool=pool)
@ -445,7 +443,7 @@ class SIIReport(Workflow, ModelSQL, ModelView):
def delete_issued_invoices(self): def delete_issued_invoices(self):
headers = mapping.get_headers( headers = mapping.get_headers(
name=self.company.party.name, name=self.company.party.name,
vat=self.company.party.vat_number, vat=self.company.party.vat_code,
comm_kind=self.operation_type) comm_kind=self.operation_type)
pool = Pool() pool = Pool()
mapper = pool.get('aeat.sii.issued.invoice.mapper')(pool=pool) mapper = pool.get('aeat.sii.issued.invoice.mapper')(pool=pool)
@ -475,7 +473,7 @@ class SIIReport(Workflow, ModelSQL, ModelView):
Invoice = pool.get('account.invoice') Invoice = pool.get('account.invoice')
headers = mapping.get_headers( headers = mapping.get_headers(
name=self.company.party.name, name=self.company.party.name,
vat=self.company.party.vat_number, vat=self.company.party.vat_code,
comm_kind=self.operation_type) comm_kind=self.operation_type)
with self.company.tmp_ssl_credentials() as (crt, key): with self.company.tmp_ssl_credentials() as (crt, key):
@ -522,7 +520,7 @@ class SIIReport(Workflow, ModelSQL, ModelView):
_logger.info('Sending report %s to AEAT SII', self.id) _logger.info('Sending report %s to AEAT SII', self.id)
headers = mapping.get_headers( headers = mapping.get_headers(
name=self.company.party.name, name=self.company.party.name,
vat=self.company.party.vat_number, vat=self.company.party.vat_code,
comm_kind=self.operation_type) comm_kind=self.operation_type)
pool = Pool() pool = Pool()
mapper = pool.get('aeat.sii.recieved.invoice.mapper')(pool=pool) mapper = pool.get('aeat.sii.recieved.invoice.mapper')(pool=pool)
@ -549,7 +547,7 @@ class SIIReport(Workflow, ModelSQL, ModelView):
def delete_recieved_invoices(self): def delete_recieved_invoices(self):
headers = mapping.get_headers( headers = mapping.get_headers(
name=self.company.party.name, name=self.company.party.name,
vat=self.company.party.vat_number, vat=self.company.party.vat_code,
comm_kind=self.operation_type) comm_kind=self.operation_type)
pool = Pool() pool = Pool()
mapper = pool.get('aeat.sii.recieved.invoice.mapper')(pool=pool) mapper = pool.get('aeat.sii.recieved.invoice.mapper')(pool=pool)
@ -579,7 +577,7 @@ class SIIReport(Workflow, ModelSQL, ModelView):
Invoice = pool.get('account.invoice') Invoice = pool.get('account.invoice')
headers = mapping.get_headers( headers = mapping.get_headers(
name=self.company.party.name, name=self.company.party.name,
vat=self.company.party.vat_number, vat=self.company.party.vat_code,
comm_kind=self.operation_type) comm_kind=self.operation_type)
with self.company.tmp_ssl_credentials() as (crt, key): with self.company.tmp_ssl_credentials() as (crt, key):
@ -632,14 +630,14 @@ class BaseTrytonInvoiceMapper(Model):
year = attrgetter('move.period.fiscalyear.name') year = attrgetter('move.period.fiscalyear.name')
period = attrgetter('move.period.start_date.month') period = attrgetter('move.period.start_date.month')
nif = attrgetter('company.party.vat_number') nif = attrgetter('company.party.vat_code')
issue_date = attrgetter('invoice_date') issue_date = attrgetter('invoice_date')
invoice_kind = attrgetter('sii_operation_key') invoice_kind = attrgetter('sii_operation_key')
rectified_invoice_kind = mapping.hardcode('I') rectified_invoice_kind = mapping.hardcode('I')
description = attrgetter('description') description = attrgetter('description')
not_exempt_kind = attrgetter('sii_subjected') not_exempt_kind = attrgetter('sii_subjected')
counterpart_name = attrgetter('party.name') counterpart_name = attrgetter('party.name')
counterpart_nif = attrgetter('party.vat_number') counterpart_nif = attrgetter('party.vat_code')
counterpart_id_type = attrgetter('party.identifier_type') counterpart_id_type = attrgetter('party.identifier_type')
counterpart_country = attrgetter('party.vat_country') counterpart_country = attrgetter('party.vat_country')
counterpart_id = counterpart_nif counterpart_id = counterpart_nif

View file

@ -107,7 +107,7 @@
<field name="global_p" eval="True"/> <field name="global_p" eval="True"/>
</record> </record>
<record model="ir.rule" id="rule_sii_report1"> <record model="ir.rule" id="rule_sii_report1">
<field name="domain">[('company', '=', user.company.id if user.company else None)]</field> <field name="domain" eval="[('company', '=', Eval('user' ,{}).get('company', None))]" pyson="1" />
<field name="rule_group" ref="rule_group_sii_report"/> <field name="rule_group" ref="rule_group_sii_report"/>
</record> </record>
@ -116,7 +116,7 @@
<field name="global_p" eval="True"/> <field name="global_p" eval="True"/>
</record> </record>
<record model="ir.rule" id="rule_sii_report_line1"> <record model="ir.rule" id="rule_sii_report_line1">
<field name="domain">[('company', '=', user.company.id if user.company else None)]</field> <field name="domain" eval="[('company', '=',Eval('user', {}).get('company', None))]" pyson="1"/>
<field name="rule_group" ref="rule_group_sii_report_line"/> <field name="rule_group" ref="rule_group_sii_report_line"/>
</record> </record>
@ -144,7 +144,7 @@
<record model="ir.action.act_window" id="act_aeat_sii_issued_report"> <record model="ir.action.act_window" id="act_aeat_sii_issued_report">
<field name="name">SII Report Issued</field> <field name="name">SII Report Issued</field>
<field name="res_model">aeat.sii.report</field> <field name="res_model">aeat.sii.report</field>
<field name="domain">[('book', '=', 'E')]</field> <field name="domain" eval="[('book', '=', 'E')]" pyson="1"/>
<field name="search_value"></field> <field name="search_value"></field>
</record> </record>
<menuitem action="act_aeat_sii_issued_report" <menuitem action="act_aeat_sii_issued_report"
@ -155,7 +155,7 @@
<record model="ir.action.act_window" id="act_aeat_sii_invest_report"> <record model="ir.action.act_window" id="act_aeat_sii_invest_report">
<field name="name">SII Report Invest</field> <field name="name">SII Report Invest</field>
<field name="res_model">aeat.sii.report</field> <field name="res_model">aeat.sii.report</field>
<field name="domain">[('book', '=', 'I')]</field> <field name="domain" eval="[('book', '=', 'I')]" pyson="1"/>
<field name="search_value"></field> <field name="search_value"></field>
</record> </record>
<menuitem action="act_aeat_sii_invest_report" <menuitem action="act_aeat_sii_invest_report"
@ -166,7 +166,8 @@
<record model="ir.action.act_window" id="act_aeat_sii_received_report"> <record model="ir.action.act_window" id="act_aeat_sii_received_report">
<field name="name">SII Report Received</field> <field name="name">SII Report Received</field>
<field name="res_model">aeat.sii.report</field> <field name="res_model">aeat.sii.report</field>
<field name="domain">[('book', '=', 'R')]</field> <field name="domain" eval="[('book', '=', 'R')]" pyson="1"/>
<field name="search_value"></field> <field name="search_value"></field>
</record> </record>
<menuitem action="act_aeat_sii_received_report" <menuitem action="act_aeat_sii_received_report"
@ -177,7 +178,7 @@
<record model="ir.action.act_window" id="act_aeat_sii_intra_report"> <record model="ir.action.act_window" id="act_aeat_sii_intra_report">
<field name="name">SII Report Intracommunity</field> <field name="name">SII Report Intracommunity</field>
<field name="res_model">aeat.sii.report</field> <field name="res_model">aeat.sii.report</field>
<field name="domain">[('book', '=', 'U')]</field> <field name="domain" eval="[('book', '=', 'U')]" pyson="1"/>
<field name="search_value"></field> <field name="search_value"></field>
</record> </record>
<menuitem action="act_aeat_sii_intra_report" <menuitem action="act_aeat_sii_intra_report"

View file

@ -96,7 +96,7 @@ class Invoice:
table = SIILines.__table__() table = SIILines.__table__()
cursor = Transaction().cursor cursor = Transaction().connection.cursor()
cursor.execute(*table.select(Max(table.id), table.invoice, cursor.execute(*table.select(Max(table.id), table.invoice,
group_by=table.invoice)) group_by=table.invoice))
@ -126,7 +126,7 @@ class Invoice:
result[name] = dict((i.id, '') for i in invoices) result[name] = dict((i.id, '') for i in invoices)
table = SIILines.__table__() table = SIILines.__table__()
cursor = Transaction().cursor cursor = Transaction().connection.cursor()
cursor.execute(*table.select(Max(table.id), table.invoice, cursor.execute(*table.select(Max(table.id), table.invoice,
where=table.invoice.in_([x.id for x in invoices]), where=table.invoice.in_([x.id for x in invoices]),
group_by=table.invoice)) group_by=table.invoice))

View file

@ -3,14 +3,12 @@
<data> <data>
<record model="ir.ui.view" id="aeat_sii_invoice_form_view"> <record model="ir.ui.view" id="aeat_sii_invoice_form_view">
<field name="model">account.invoice</field> <field name="model">account.invoice</field>
<field name="type">form</field>
<field name="inherit" ref="account_invoice.invoice_view_form"/> <field name="inherit" ref="account_invoice.invoice_view_form"/>
<field name="name">account_invoice_form</field> <field name="name">account_invoice_form</field>
</record> </record>
<record model="ir.ui.view" id="aeat_sii_invoice_list_view"> <record model="ir.ui.view" id="aeat_sii_invoice_list_view">
<field name="model">account.invoice</field> <field name="model">account.invoice</field>
<field name="type">tree</field>
<field name="inherit" ref="account_invoice.invoice_view_tree"/> <field name="inherit" ref="account_invoice.invoice_view_tree"/>
<field name="name">account_invoice_list</field> <field name="name">account_invoice_list</field>
</record> </record>

View file

@ -7,11 +7,10 @@ from . import aeat
__all__ = ['Party'] __all__ = ['Party']
class Party: class Party:
__name__ = 'party.party' __name__ = 'party.party'
__metaclass__ = PoolMeta __metaclass__ = PoolMeta
# TODO: v4 change to party.identifier module # TODO: v4 change to party.identifier module
identifier_type = fields.Selection( [('','')] + aeat.PARTY_IDENTIFIER_TYPE, identifier_type = fields.Selection([('', '')] + aeat.PARTY_IDENTIFIER_TYPE,
'Identifier Type', ) 'Identifier Type', )

View file

@ -1,5 +1,5 @@
[tryton] [tryton]
version=3.4.0 version=4.0
depends: depends:
account_invoice account_invoice
xml: xml: