[FIX] l10n_id_efaktur: change round, to float_round
on invoice, all round is default to half_up but on efaktur export is half_down ref #89793 X-original-commit: bd21e88ab041bf38132e7bd1502ca6e21a34ff0e Part-of: odoo/odoo#90456
This commit is contained in:
committed by
John Laterre (jol)
parent
70604fefbc
commit
8ac8645418
@@ -5,6 +5,7 @@ import base64
|
||||
import re
|
||||
from odoo import api, fields, models, _
|
||||
from odoo.exceptions import UserError, ValidationError
|
||||
from odoo.tools import float_round
|
||||
|
||||
FK_HEAD_LIST = ['FK', 'KD_JENIS_TRANSAKSI', 'FG_PENGGANTI', 'NOMOR_FAKTUR', 'MASA_PAJAK', 'TAHUN_PAJAK', 'TANGGAL_FAKTUR', 'NPWP', 'NAMA', 'ALAMAT_LENGKAP', 'JUMLAH_DPP', 'JUMLAH_PPN', 'JUMLAH_PPNBM', 'ID_KETERANGAN_TAMBAHAN', 'FG_UANG_MUKA', 'UANG_MUKA_DPP', 'UANG_MUKA_PPN', 'UANG_MUKA_PPNBM', 'REFERENSI', 'KODE_DOKUMEN_PENDUKUNG']
|
||||
|
||||
@@ -172,16 +173,16 @@ class AccountMove(models.Model):
|
||||
eTax['NPWP'] = invoice_npwp
|
||||
eTax['NAMA'] = move.partner_id.name if eTax['NPWP'] == '000000000000000' else move.partner_id.l10n_id_tax_name or move.partner_id.name
|
||||
eTax['ALAMAT_LENGKAP'] = move.partner_id.contact_address.replace('\n', '') if eTax['NPWP'] == '000000000000000' else move.partner_id.l10n_id_tax_address or street
|
||||
eTax['JUMLAH_DPP'] = int(round(move.amount_untaxed, 0)) # currency rounded to the unit
|
||||
eTax['JUMLAH_PPN'] = int(round(move.amount_tax, 0))
|
||||
eTax['JUMLAH_DPP'] = int(float_round(move.amount_untaxed, 0)) # currency rounded to the unit
|
||||
eTax['JUMLAH_PPN'] = int(float_round(move.amount_tax, 0))
|
||||
eTax['ID_KETERANGAN_TAMBAHAN'] = '1' if move.l10n_id_kode_transaksi == '07' else ''
|
||||
eTax['REFERENSI'] = number_ref
|
||||
eTax['KODE_DOKUMEN_PENDUKUNG'] = '0'
|
||||
|
||||
lines = move.line_ids.filtered(lambda x: x.product_id.id == int(dp_product_id) and x.price_unit < 0 and not x.display_type)
|
||||
eTax['FG_UANG_MUKA'] = 0
|
||||
eTax['UANG_MUKA_DPP'] = int(abs(sum(lines.mapped(lambda l: round(l.price_subtotal, 0)))))
|
||||
eTax['UANG_MUKA_PPN'] = int(abs(sum(lines.mapped(lambda l: round(l.price_total - l.price_subtotal, 0)))))
|
||||
eTax['UANG_MUKA_DPP'] = int(abs(sum(lines.mapped(lambda l: float_round(l.price_subtotal, 0)))))
|
||||
eTax['UANG_MUKA_PPN'] = int(abs(sum(lines.mapped(lambda l: float_round(l.price_total - l.price_subtotal, 0)))))
|
||||
|
||||
company_npwp = company_id.partner_id.vat or '000000000000000'
|
||||
|
||||
@@ -214,10 +215,10 @@ class AccountMove(models.Model):
|
||||
line_dict = {
|
||||
'KODE_OBJEK': line.product_id.default_code or '',
|
||||
'NAMA': line.product_id.name or '',
|
||||
'HARGA_SATUAN': int(round(invoice_line_unit_price, 0)),
|
||||
'HARGA_SATUAN': int(float_round(invoice_line_unit_price, 0)),
|
||||
'JUMLAH_BARANG': line.quantity,
|
||||
'HARGA_TOTAL': int(round(invoice_line_total_price, 0)),
|
||||
'DPP': int(round(line.price_subtotal, 0)),
|
||||
'HARGA_TOTAL': int(float_round(invoice_line_total_price, 0)),
|
||||
'DPP': int(float_round(line.price_subtotal, 0)),
|
||||
'product_id': line.product_id.id,
|
||||
}
|
||||
|
||||
@@ -226,16 +227,16 @@ class AccountMove(models.Model):
|
||||
free_tax_line += (line.price_subtotal * (tax.amount / 100.0)) * -1.0
|
||||
|
||||
line_dict.update({
|
||||
'DISKON': int(round(invoice_line_total_price - line.price_subtotal, 0)),
|
||||
'PPN': int(round(free_tax_line, 0)),
|
||||
'DISKON': int(float_round(invoice_line_total_price - line.price_subtotal, 0)),
|
||||
'PPN': int(float_round(free_tax_line, 0)),
|
||||
})
|
||||
free.append(line_dict)
|
||||
elif line.price_subtotal != 0.0:
|
||||
invoice_line_discount_m2m = invoice_line_total_price - line.price_subtotal
|
||||
|
||||
line_dict.update({
|
||||
'DISKON': int(round(invoice_line_discount_m2m, 0)),
|
||||
'PPN': int(round(tax_line, 0)),
|
||||
'DISKON': int(float_round(invoice_line_discount_m2m, 0)),
|
||||
'PPN': int(float_round(tax_line, 0)),
|
||||
})
|
||||
sales.append(line_dict)
|
||||
|
||||
@@ -258,14 +259,14 @@ class AccountMove(models.Model):
|
||||
if tax.amount > 0:
|
||||
tax_line += sale['DPP'] * (tax.amount / 100.0)
|
||||
|
||||
sale['PPN'] = int(round(tax_line, 0))
|
||||
sale['PPN'] = int(float_round(tax_line, 0))
|
||||
|
||||
free.remove(f)
|
||||
|
||||
sub_total_before_adjustment += sale['DPP']
|
||||
sub_total_ppn_before_adjustment += sale['PPN']
|
||||
bruto_total += sale['DISKON']
|
||||
total_discount += round(sale['DISKON'], 2)
|
||||
total_discount += float_round(sale['DISKON'], 2)
|
||||
|
||||
output_head += _csv_row(fk_values_list, delimiter)
|
||||
output_head += _csv_row(lt_values_list, delimiter)
|
||||
|
||||
Reference in New Issue
Block a user