Move old search_invoice.* code to very aeat.* files

This commit is contained in:
Daniel Möller 2018-06-14 16:52:12 +02:00
parent 9855bf8715
commit 50327afa76
7 changed files with 89 additions and 115 deletions

View File

@ -8,7 +8,6 @@ from . import company
from . import load_pkcs12
from . import account
from . import aeat_mapping
from . import search_invoices
def register():
@ -26,9 +25,9 @@ def register():
aeat.SIIReportLineTax,
aeat_mapping.IssuedTrytonInvoiceMapper,
aeat_mapping.RecievedTrytonInvoiceMapper,
search_invoices.StartView,
aeat.AddInvoicesStartView,
module='aeat_sii', type_='model')
Pool.register(
load_pkcs12.LoadPKCS12,
search_invoices.AddInvoicesWizard,
aeat.AddInvoicesWizard,
module='aeat_sii', type_='wizard')

77
aeat.py
View File

@ -10,7 +10,8 @@ from pyAEATsii import service
from pyAEATsii import mapping
from trytond.model import ModelSQL, ModelView, fields, Workflow
from trytond.pyson import Eval, Bool
from trytond.wizard import Wizard, StateView, StateTransition, Button
from trytond.pyson import Eval, Bool, If, Equal
from trytond.pool import Pool
from trytond.transaction import Transaction
from trytond.config import config
@ -20,6 +21,8 @@ __all__ = [
'SIIReport',
'SIIReportLine',
'SIIReportLineTax',
'AddInvoicesStartView',
'AddInvoicesWizard',
]
_logger = getLogger(__name__)
@ -838,3 +841,75 @@ class SIIReportLineTax(ModelSQL, ModelView):
surcharge_amount = fields.Numeric('Surcharge Amount', readonly=True)
reagyp_rate = fields.Numeric('REAGYP Rate', readonly=True)
reagyp_amount = fields.Numeric('REAGYP Amount', readonly=True)
class AddInvoicesStartView(ModelView):
'Add Invoices Start View'
__name__ = 'aeat.sii.add_invoices.start'
company = fields.Many2One('company.company', 'Company')
period = fields.Many2One('account.period', 'Period')
book = fields.Selection(BOOK_KEY, 'Book')
operation_type = fields.Selection(COMMUNICATION_TYPE, 'Operation Type')
invoices = fields.Many2Many(
'account.invoice', None, None, 'Invoices',
domain=[
If(
Equal(Eval('book'), 'E'), # issued
('type', 'in', ['out_invoice', 'out_credit_note']),
If(
Equal(Eval('book'), 'R'), # recieved
('type', 'in', ['in_invoice', 'in_credit_note']),
()
)
),
('state', 'in', ['posted', 'paid']),
('company', '=', Eval('company')),
('move.period', '=', Eval('period')),
# TODO: fix account.invoice `sii_state` searcher performance and
# add a clause filtering by `sii_state` for each operation_type
],
depends=[
'company', 'period', 'book',
],
)
class AddInvoicesWizard(Wizard):
'Add Invoices Wizard'
__name__ = 'aeat.sii.add_invoices.wizard'
start = StateView(
'aeat.sii.add_invoices.start',
'aeat_sii.add_invoices_start_view_form',
[
Button('Cancel', 'end', 'tryton-cancel'),
Button('Add', 'add', 'tryton-ok', default=True),
]
)
add = StateTransition()
def default_start(self, fields):
SIIReport = Pool().get('aeat.sii.report')
sii_report = SIIReport(
Transaction().context['active_id']
)
return {
'company': sii_report.company.id,
'period': sii_report.period.id,
'book': sii_report.book,
'operation_type': sii_report.operation_type,
}
def transition_add(self):
SIIReportLine = Pool().get('aeat.sii.report.lines')
report_id = Transaction().context['active_id']
SIIReportLine.create([
{
'report': report_id,
'invoice': invoice.id,
}
for invoice in self.start.invoices
])
return 'end'

View File

@ -170,6 +170,17 @@
<field name="group" ref="group_aeat_sii_admin"/>
</record>
<record model="ir.ui.view" id="add_invoices_start_view_form">
<field name="model">aeat.sii.add_invoices.start</field>
<field name="type">form</field>
<field name="name">add_invoices_start</field>
</record>
<record model="ir.action.wizard" id="add_invoices_act_wizard">
<field name="name">Add Invoices</field>
<field name="wiz_name">aeat.sii.add_invoices.wizard</field>
</record>
<record model="ir.action.act_window" id="act_aeat_sii_issued_report">
<field name="name">SII Report Issued</field>
<field name="res_model">aeat.sii.report</field>

View File

@ -1,91 +0,0 @@
# -*- coding: utf-8 -*-
# The COPYRIGHT file at the top level of this repository contains the full
# copyright notices and license terms.
from logging import getLogger
from trytond.pool import Pool
from trytond.transaction import Transaction
from trytond.model import ModelView, fields
from trytond.wizard import Wizard, StateView, StateTransition, Button
from trytond.pyson import Eval, If, Equal
from .aeat import BOOK_KEY, COMMUNICATION_TYPE
__all__ = [
'StartView',
'AddInvoicesWizard',
]
_logger = getLogger(__name__)
class StartView(ModelView):
'Add Invoices Start View'
__name__ = 'aeat.sii.add_invoices.start'
company = fields.Many2One('company.company', 'Company')
period = fields.Many2One('account.period', 'Period')
book = fields.Selection(BOOK_KEY, 'Book')
operation_type = fields.Selection(COMMUNICATION_TYPE, 'Operation Type')
invoices = fields.Many2Many(
'account.invoice', None, None, 'Invoices',
domain=[
If(
Equal(Eval('book'), 'E'), # issued
('type', 'in', ['out_invoice', 'out_credit_note']),
If(
Equal(Eval('book'), 'R'), # recieved
('type', 'in', ['in_invoice', 'in_credit_note']),
()
)
),
('state', 'in', ['posted', 'paid']),
('company', '=', Eval('company')),
('move.period', '=', Eval('period')),
# TODO: fix account.invoice `sii_state` searcher performance and
# add a clause filtering by `sii_state` for each operation_type
],
depends=[
'company', 'period', 'book',
],
)
class AddInvoicesWizard(Wizard):
'Add Invoices Wizard'
__name__ = 'aeat.sii.add_invoices.wizard'
start = StateView(
'aeat.sii.add_invoices.start',
'aeat_sii.add_invoices_start_view_form',
[
Button('Cancel', 'end', 'tryton-cancel'),
Button('Add', 'add', 'tryton-ok', default=True),
]
)
add = StateTransition()
def default_start(self, fields):
SIIReport = Pool().get('aeat.sii.report')
sii_report = SIIReport(
Transaction().context['active_id']
)
return {
'company': sii_report.company.id,
'period': sii_report.period.id,
'book': sii_report.book,
'operation_type': sii_report.operation_type,
}
def transition_add(self):
SIIReportLine = Pool().get('aeat.sii.report.lines')
report_id = Transaction().context['active_id']
SIIReportLine.create([
{
'report': report_id,
'invoice': invoice.id,
}
for invoice in self.start.invoices
])
return 'end'

View File

@ -1,19 +0,0 @@
<?xml version="1.0"?>
<!-- The COPYRIGHT file at the top level of this repository contains the full
copyright notices and license terms. -->
<tryton>
<data>
<record model="ir.ui.view" id="add_invoices_start_view_form">
<field name="model">aeat.sii.add_invoices.start</field>
<field name="type">form</field>
<field name="name">search_invoices_start</field>
</record>
<record model="ir.action.wizard" id="add_invoices_act_wizard">
<field name="name">Add Invoices</field>
<field name="wiz_name">aeat.sii.add_invoices.wizard</field>
</record>
</data>
</tryton>

View File

@ -11,7 +11,6 @@ extras_depend:
xml:
account.xml
aeat.xml
search_invoices.xml
invoice.xml
party.xml
company.xml