Skip to content

Commit

Permalink
Merge dd52f24 into 09b4cef
Browse files Browse the repository at this point in the history
  • Loading branch information
sysadminmatmoz committed Aug 2, 2019
2 parents 09b4cef + dd52f24 commit ed8d2c6
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 1 deletion.
1 change: 1 addition & 0 deletions contract/models/account_analytic_account.py
Expand Up @@ -176,6 +176,7 @@ def _insert_markers(self, line, date_format):
def _prepare_invoice_line(self, line, invoice_id):
invoice_line = self.env['account.invoice.line'].new({
'invoice_id': invoice_id,
'contract_line_id': line.id,
'product_id': line.product_id.id,
'quantity': line.quantity,
'uom_id': line.uom_id.id,
Expand Down
38 changes: 37 additions & 1 deletion contract/models/account_analytic_invoice_line.py
@@ -1,16 +1,52 @@
# Copyright 2017 LasLabs Inc.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

from odoo import fields, models
from odoo import fields, models, api
from odoo.addons import decimal_precision as dp


class AccountAnalyticInvoiceLine(models.Model):
_name = 'account.analytic.invoice.line'
_inherit = 'account.analytic.contract.line'

@api.depends('invoice_lines.invoice_id.state',
'invoice_lines.quantity',
'invoice_lines.uom_id')
def _compute_qty_invoiced(self):
for line in self:
qty = 0.0
for inv_line in line.invoice_lines:
if inv_line.invoice_id.state not in ['cancel']:
if inv_line.invoice_id.type == 'in_invoice':
qty += inv_line.uom_id._compute_quantity(
inv_line.quantity, line.uom_id)
elif inv_line.invoice_id.type == 'in_refund':
qty -= inv_line.uom_id._compute_quantity(
inv_line.quantity, line.uom_id)
elif inv_line.invoice_id.type == 'out_invoice':
qty -= inv_line.uom_id._compute_quantity(
inv_line.quantity, line.uom_id)
elif inv_line.invoice_id.type == 'out_refund':
qty += inv_line.uom_id._compute_quantity(
inv_line.quantity, line.uom_id)
line.qty_invoiced = qty

analytic_account_id = fields.Many2one(
comodel_name='account.analytic.account',
string='Analytic Account',
required=True,
ondelete='cascade',
)
qty_invoiced = fields.Float(
compute='_compute_qty_invoiced',
string='Invoiced Qty',
store=True,
digits=dp.get_precision('Product Unit of Measure')
)
invoice_lines = fields.One2many(
comodel_name='account.invoice.line',
inverse_name='contract_line_id',
string="Invoiced Lines",
readonly=True,
copy=False
)
9 changes: 9 additions & 0 deletions contract/models/account_invoice.py
Expand Up @@ -10,3 +10,12 @@ class AccountInvoice(models.Model):
contract_id = fields.Many2one(
'account.analytic.account',
string='Contract')


class AccountInvoiceLine(models.Model):
_inherit = 'account.invoice.line'

contract_line_id = fields.Many2one(
comodel_name='account.analytic.invoice.line',
string='Contract Lines', ondelete='set null', index=True,
readonly=True)
1 change: 1 addition & 0 deletions contract/views/account_analytic_account_view.xml
Expand Up @@ -82,6 +82,7 @@
<field name="product_id"/>
<field name="name"/>
<field name="quantity"/>
<field name="qty_invoiced"/>
<field name="uom_id"/>
<field name="automatic_price"/>
<field name="price_unit" attrs="{'readonly': [('automatic_price', '=', True)]}"/>
Expand Down

0 comments on commit ed8d2c6

Please sign in to comment.