105 lines
4.5 KiB
Python
105 lines
4.5 KiB
Python
# Part of Flectra See LICENSE file for full copyright and licensing details.
|
|
|
|
from .test_ae_common import TestAECommon
|
|
import time
|
|
import datetime
|
|
from dateutil.relativedelta import relativedelta
|
|
|
|
|
|
class TestAccountInvoice(TestAECommon):
|
|
def setUp(self):
|
|
super(TestAccountInvoice, self).setUp()
|
|
|
|
def get_invoice(self, invoice_type, reverse_charge):
|
|
invoice_id = self.AccountInvoice.create({
|
|
'name': 'Test Customer Invoice',
|
|
'partner_id': self.partner_id.id,
|
|
'currency_id': self.env.ref('base.USD').id,
|
|
'account_id': self.account_id.id,
|
|
'type': invoice_type,
|
|
'date_invoice': time.strftime('%Y') + '-03-12',
|
|
'journal_id': self.journal_id.id,
|
|
'vat_config_type': self.config_type_local_sale.id,
|
|
'reverse_charge': reverse_charge,
|
|
})
|
|
self.AccountInvoiceLine.create({
|
|
'product_id': self.product_id.id,
|
|
'quantity': 10,
|
|
'price_unit': 885.00,
|
|
'invoice_id': invoice_id.id,
|
|
'name': 'Graphics Card',
|
|
'account_id': self.account_id.id,
|
|
})
|
|
return invoice_id
|
|
|
|
def test_customer_invoice(self):
|
|
invoice_id = self.get_invoice('out_invoice', False)
|
|
line_1 = invoice_id.invoice_line_ids[0]
|
|
line_1.get_invoice_line_account(
|
|
'out_invoice', self.product_id, False, self.main_company)
|
|
self.assertEquals(
|
|
line_1.account_id,
|
|
invoice_id.vat_config_type.journal_id.default_debit_account_id)
|
|
self.assertEquals(
|
|
invoice_id.journal_id, invoice_id.vat_config_type.journal_id)
|
|
|
|
def test_vendor_bills(self):
|
|
invoice_id = self.get_invoice('in_invoice', True)
|
|
line_1 = invoice_id.invoice_line_ids[0]
|
|
line_1._onchange_product_id()
|
|
invoice_id._onchange_invoice_line_ids()
|
|
amount_tax = invoice_id.amount_tax
|
|
self.assertEquals(len(invoice_id.tax_line_ids), 1)
|
|
self.assertEquals(len(invoice_id.reverse_tax_line_ids), 0)
|
|
invoice_id.action_invoice_open()
|
|
self.assertEquals(invoice_id.amount_tax, 0)
|
|
self.assertEquals(len(invoice_id.tax_line_ids), 0)
|
|
self.assertEquals(len(invoice_id.reverse_tax_line_ids), 1)
|
|
config_id = self.env[
|
|
'res.config.settings'].search([], order='id desc', limit=1)
|
|
rc_account = config_id.rc_vat_account_id or \
|
|
self.env.ref('l10n_ae_extend.rc_vat_account')
|
|
move_line_id = self.env['account.move.line'].search([
|
|
('move_id', '=', invoice_id.move_id.id),
|
|
('account_id', '=', rc_account.id)])
|
|
self.assertEquals(move_line_id.credit, amount_tax)
|
|
|
|
def test_report_data(self):
|
|
report_obj = self.env['report.l10n_ae_extend.vat_201']
|
|
date_to = (datetime.date.today() - relativedelta(days=10)
|
|
).strftime('%Y-%m-%d')
|
|
date_from = (datetime.date.today() - relativedelta(months=1)
|
|
).strftime('%Y-%m-01')
|
|
data = {'form': {
|
|
'date_to': date_to,
|
|
'date_from': date_from,
|
|
'company_id': [self.main_company.id, self.main_company.name],
|
|
'currency_id': [self.main_company.currency_id.id,
|
|
self.main_company.currency_id.name],
|
|
}}
|
|
dict_data = report_obj.get_report_values(None, data)
|
|
|
|
self.assertEquals(
|
|
dict_data['get_local_sale']['amount'], 15930.0)
|
|
self.assertEquals(dict_data['get_local_sale']['tax_amount'], 796.5)
|
|
self.assertEquals(dict_data['get_local_sale']['adjustment'], 4425.00)
|
|
self.assertEquals(
|
|
dict_data['get_local_sale']['return_tax_amount'], 221.25)
|
|
|
|
self.assertEquals(dict_data['get_local_purchase']['amount'], 17520)
|
|
self.assertEquals(dict_data['get_local_purchase']['tax_amount'], 876)
|
|
self.assertEquals(dict_data['get_local_purchase']['adjustment'], 8760)
|
|
self.assertEquals(
|
|
dict_data['get_local_purchase']['return_tax_amount'], 438)
|
|
|
|
self.assertEquals(
|
|
dict_data['get_reverse_charge_data']['amount'], 17520)
|
|
self.assertEquals(
|
|
dict_data['get_reverse_charge_data']['tax_amount'], 876)
|
|
self.assertEquals(
|
|
dict_data['get_reverse_charge_data']['adjustment'], 4380)
|
|
self.assertEquals(
|
|
dict_data['get_reverse_charge_data']['return_tax_amount'], 219)
|
|
self.assertEquals(round(
|
|
dict_data['get_total_vat_due']['total_tax_amount'], 2), 587.40)
|