flectra/addons/l10n_in/models/account_invoice.py
2018-01-16 02:34:37 -08:00

44 lines
2.1 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo, Flectra. See LICENSE file for full copyright and licensing details.
from flectra import api, fields, models, _
class AccountInvoice(models.Model):
_inherit = "account.invoice"
@api.depends('amount_total')
def _compute_amount_total_words(self):
for invoice in self:
invoice.amount_total_words = invoice.currency_id.amount_to_text(invoice.amount_total)
amount_total_words = fields.Char("Total (In Words)", compute="_compute_amount_total_words")
def _get_printed_report_name(self):
self.ensure_one()
if self.company_id.country_id.code != 'IN':
return super(AccountInvoice, self)._get_printed_report_name()
return self.type == 'out_invoice' and self.state == 'draft' and _('Draft %s') % (self.journal_id.name) or \
self.type == 'out_invoice' and self.state in ('open','paid') and '%s - %s' % (self.journal_id.name, self.number) or \
self.type == 'out_refund' and self.state == 'draft' and _('Credit Note') or \
self.type == 'out_refund' and _('Credit Note - %s') % (self.number) or \
self.type == 'in_invoice' and self.state == 'draft' and _('Vendor Bill') or \
self.type == 'in_invoice' and self.state in ('open','paid') and _('Vendor Bill - %s') % (self.number) or \
self.type == 'in_refund' and self.state == 'draft' and _('Vendor Credit Note') or \
self.type == 'in_refund' and _('Vendor Credit Note - %s') % (self.number)
@api.multi
def _invoice_line_tax_values(self):
self.ensure_one()
tax_datas = {}
TAX = self.env['account.tax']
for line in self.mapped('invoice_line_ids'):
price_unit = line.price_unit * (1 - (line.discount or 0.0) / 100.0)
tax_lines = line.invoice_line_tax_ids.compute_all(price_unit, line.invoice_id.currency_id, line.quantity, line.product_id, line.invoice_id.partner_id)['taxes']
for tax_line in tax_lines:
tax_line['tag_ids'] = TAX.browse(tax_line['id']).tag_ids.ids
tax_datas[line.id] = tax_lines
return tax_datas