add operation analytic to invoice

This commit is contained in:
sinergia 2023-07-01 01:40:02 -05:00
parent 5c38127f37
commit f8d3c1b03d
8 changed files with 86 additions and 9 deletions

View File

@ -0,0 +1,8 @@
######################
Analytic Operations Module
######################
The *Analytic Operations Module* adds the concept of analytic account general
in invoice, purchase, sale. This allows added the account analytic to the lines of
operation more fast.

View File

@ -2,7 +2,7 @@
# this repository contains the full copyright notices and license terms. # this repository contains the full copyright notices and license terms.
from trytond.pool import Pool from trytond.pool import Pool
from . import purchase, sale from . import invoice, purchase, sale
__all__ = ['register'] __all__ = ['register']
@ -13,8 +13,10 @@ def register():
purchase.PurchaseLine, purchase.PurchaseLine,
sale.Sale, sale.Sale,
sale.SaleLine, sale.SaleLine,
module='analytic_operation', type_='model') invoice.Invoice,
invoice.InvoiceLine,
module='analytic_operations', type_='model')
Pool.register( Pool.register(
module='analytic_operation', type_='wizard') module='analytic_operations', type_='wizard')
Pool.register( Pool.register(
module='analytic_operation', type_='report') module='analytic_operations', type_='report')

39
invoice.py Normal file
View File

@ -0,0 +1,39 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
from trytond.pool import Pool, PoolMeta
from trytond.model import ModelView, ModelSQL, fields
from trytond.pyson import Eval
from trytond.exceptions import UserError
class Invoice(metaclass=PoolMeta):
'Account Invoice'
__name__ = 'account.invoice'
_states = {
'readonly': Eval('state') != 'draft',
}
account_analytic = fields.Many2One('analytic_account.account', 'Analytic Account', required=True,
domain=[('type', '=', 'normal')],
states=_states)
class InvoiceLine(metaclass=PoolMeta):
'Invoice Line'
__name__ = 'account.invoice.line'
@fields.depends('product', 'unit', '_parent_invoice.type', 'analytic_accounts',
'_parent_invoice.party', 'party', 'invoice', 'invoice_type',
'_parent_invoice.account_analytic', '_parent_invoice.invoice_date',
'_parent_invoice.accounting_date','company', methods=['_get_tax_rule_pattern'])
def on_change_product(self):
super(InvoiceLine, self).on_change_product()
self.analytic_accounts = tuple()
try:
self.analytic_accounts += ({'root': self.invoice.account_analytic.root,
'account': self.invoice.account_analytic},)
except:
pass

11
invoice.xml Normal file
View File

@ -0,0 +1,11 @@
<?xml version="1.0"?>
<!--This file file is part of Tryton. 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="invoice_view_form">
<field name="model">account.invoice</field>
<field name="inherit" ref="account_invoice.invoice_view_form"/>
<field name="name">invoice_form</field>
</record>
</data>
</tryton>

View File

@ -2,6 +2,10 @@
msgid "" msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n" msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.invoice,account_analytic:"
msgid "Analytic Account"
msgstr "Cuenta Analítica"
msgctxt "field:purchase.purchase,account_analytic:" msgctxt "field:purchase.purchase,account_analytic:"
msgid "Analytic Account" msgid "Analytic Account"
msgstr "Cuenta Analítica" msgstr "Cuenta Analítica"

View File

@ -10,11 +10,13 @@ class Purchase(metaclass=PoolMeta):
'Purchase Analytic Operation' 'Purchase Analytic Operation'
__name__ = 'purchase.purchase' __name__ = 'purchase.purchase'
account_analytic = fields.Many2One('analytic_account.account', _states = {
'Analytic Account', required=True, 'readonly': Eval('state') != 'draft',
domain=[ }
('type', '=', 'normal'),
]) account_analytic = fields.Many2One('analytic_account.account', 'Analytic Account', required=True,
domain=[('type', '=', 'normal')],
states=_states)
class PurchaseLine(metaclass=PoolMeta): class PurchaseLine(metaclass=PoolMeta):
'Purchase Line Analytic Operation' 'Purchase Line Analytic Operation'
__name__ = 'purchase.line' __name__ = 'purchase.line'

View File

@ -8,3 +8,4 @@ depends:
xml: xml:
purchase.xml purchase.xml
sale.xml sale.xml
invoice.xml

10
view/invoice_form.xml Normal file
View File

@ -0,0 +1,10 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<data>
<xpath
expr="/form/field[@name='reference']" position="after">
<label name="account_analytic"/>
<field name="account_analytic" xexpand="1"/>
</xpath>
</data>