44 lines
2.1 KiB
Python
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
|