[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:
budi sentosa
2022-05-09 10:25:49 +02:00
committed by John Laterre (jol)
parent 70604fefbc
commit 8ac8645418
+14 -13
View File
@@ -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)