diff --git a/tax_invoice_report/__manifest__.py b/tax_invoice_report/__manifest__.py index 4a290c224..48d92bf9f 100644 --- a/tax_invoice_report/__manifest__.py +++ b/tax_invoice_report/__manifest__.py @@ -23,7 +23,7 @@ { 'name': 'Tax Invoice Report', - 'version': '10.0.1.0', + 'version': '10.0.2.0', 'summary': 'Tax Amount to Accounting Business Intelligence Report', 'description': 'Total taxable amount to the accounting report', 'category': 'Accounting', @@ -33,7 +33,7 @@ 'depends': [ 'base', 'account', ], - 'data': [], + 'data': ['tax_view.xml'], 'images': ['static/description/banner.jpg'], 'license': 'AGPL-3', 'installable': True, diff --git a/tax_invoice_report/invoice_report.py b/tax_invoice_report/invoice_report.py index 8c971b2f6..7d67f9527 100644 --- a/tax_invoice_report/invoice_report.py +++ b/tax_invoice_report/invoice_report.py @@ -21,23 +21,51 @@ # ############################################################################## -from odoo import fields, models +from odoo import fields, models,api, _ + + +class Invoicelinecount(models.Model): + _inherit = 'account.invoice' + + @api.model + def get_count_as(self): + for inv in self: + inv.count_line = len(inv.invoice_line_ids) + inv.count_line1 = len(inv.invoice_line_ids) + inv.write({'count_line1': len(inv.invoice_line_ids)}) + + @api.multi + def _write(self, vals): + for i in self: + vals.update({'count_line1': len(i.invoice_line_ids)}) + pre_not_reconciled = self.filtered(lambda invoice: not invoice.reconciled) + pre_reconciled = self - pre_not_reconciled + res = super(Invoicelinecount, self)._write(vals) + reconciled = self.filtered(lambda invoice: invoice.reconciled) + not_reconciled = self - reconciled + (reconciled & pre_reconciled).filtered(lambda invoice: invoice.state == 'open').action_invoice_paid() + (not_reconciled & pre_not_reconciled).filtered(lambda invoice: invoice.state == 'paid').action_invoice_re_open() + return res + + count_line = fields.Integer(string="Count", compute="get_count_as", store=True) + count_line1 = fields.Integer(string="Count1", default=1) class AccountInvoiceReport(models.Model): _inherit = 'account.invoice.report' - tax_amount = fields.Float(string='Total Tax', readonly=True) - total_amount = fields.Float(string='Total With Tax', readonly=True) + amount_taxes = fields.Float(string='Total Tax', readonly=True) + amount_totals = fields.Float(string='Total With Tax', readonly=True) number = fields.Char(string='Invoice Number') def _select(self): return super(AccountInvoiceReport, self)._select() \ - + ", sub.tax_amount as tax_amount,sub.total_amount as total_amount,sub.number" + + ", sub.amount_taxes as amount_taxes,sub.amount_totals as amount_totals,sub.number" def _sub_select(self): return super(AccountInvoiceReport, self)._sub_select() \ - + ",ai.amount_tax as tax_amount, ai.amount_total as total_amount,ai.number as number" + + ",(ai.amount_tax)/(ai.count_line1) AS amount_taxes, " \ + "(ai.amount_total)/(ai.count_line1) as amount_totals ,ai.number" def _group_by(self): return super(AccountInvoiceReport, self)._group_by() + ", ai.number" diff --git a/tax_invoice_report/static/description/index.html b/tax_invoice_report/static/description/index.html index 250af0655..22ebce09e 100644 --- a/tax_invoice_report/static/description/index.html +++ b/tax_invoice_report/static/description/index.html @@ -2,7 +2,7 @@