diff --git a/odex25_hr/exp_hr_payroll/models/hr_payslip.py b/odex25_hr/exp_hr_payroll/models/hr_payslip.py index e4608534e..80b981a93 100644 --- a/odex25_hr/exp_hr_payroll/models/hr_payslip.py +++ b/odex25_hr/exp_hr_payroll/models/hr_payslip.py @@ -1,7 +1,7 @@ # -*- coding:utf-8 -*- from datetime import date, datetime, time - +from odoo.addons import decimal_precision as dp import babel from dateutil.relativedelta import relativedelta from pytz import timezone @@ -511,7 +511,7 @@ class HrPayslipLine(models.Model): employee_id = fields.Many2one('hr.employee', string='Employee', required=True) contract_id = fields.Many2one('hr.contract', string='Contract', required=True, index=True) rate = fields.Float(string='Rate (%)', default=100.0) - amount = fields.Float() + amount = fields.Float(digits=dp.get_precision('Product Price')) quantity = fields.Float(default=1.0) total = fields.Float(compute='_compute_total', string='Total', store=True) diff --git a/odex25_hr/exp_payroll_custom/report/payslip_monthly_report.py b/odex25_hr/exp_payroll_custom/report/payslip_monthly_report.py index 0eb911128..f41a6a63c 100644 --- a/odex25_hr/exp_payroll_custom/report/payslip_monthly_report.py +++ b/odex25_hr/exp_payroll_custom/report/payslip_monthly_report.py @@ -146,6 +146,10 @@ class PayslipMonthlyReportXlsx(models.AbstractModel): format2.set_align('center') format2.set_align('vcenter') format3 = workbook.add_format({'bottom': True, 'align': 'center', 'bold': True, }) + format_amount = workbook.add_format({ + 'bottom': True, 'right': True, 'left': True, 'top': True, 'align': 'center', + 'num_format': '#,##0.00', + }) if data['delist'] != 'tf': sheet.merge_range('C5:F5', title, format2) sheet.merge_range('C6:F6', data['form']['date_from'] + ' - ' + data['form']['date_to'], format2) @@ -162,7 +166,11 @@ class PayslipMonthlyReportXlsx(models.AbstractModel): clm = 1 for k, v in line.items(): clm += 1 - sheet.write(row, clm, line[k], format1) + if isinstance(v, (int, float)): + sheet.write(row, clm, v, format_amount) + else: + sheet.write(row, clm, v, format1) + #sheet.write(row, clm, line[k], format1) else: row += 1 clm = 2 @@ -172,5 +180,9 @@ class PayslipMonthlyReportXlsx(models.AbstractModel): clm = 1 for k, v in ln.items(): clm += 1 - sheet.write(row, clm, ln[k], format1) + if isinstance(v, (int, float)): + sheet.write(row, clm, v, format_amount) + else: + sheet.write(row, clm, v, format1) + #sheet.write(row, clm, ln[k], format1) row += 1 diff --git a/odex25_hr/hr_loans_salary_advance/report/loan_payslip_monthly_report.py b/odex25_hr/hr_loans_salary_advance/report/loan_payslip_monthly_report.py index ab64fa27f..2b84214b3 100644 --- a/odex25_hr/hr_loans_salary_advance/report/loan_payslip_monthly_report.py +++ b/odex25_hr/hr_loans_salary_advance/report/loan_payslip_monthly_report.py @@ -182,6 +182,10 @@ class PayslipMonthlyReportXlsx(models.AbstractModel): format2 = workbook.add_format( {'font_size': 14, 'bottom': True, 'right': True, 'left': True, 'top': True, 'align': 'center', 'bold': True}) + format_amount = workbook.add_format({ + 'bottom': True, 'right': True, 'left': True, 'top': True, 'align': 'center', + 'num_format': '#,##0.00', + }) format2.set_align('center') format2.set_align('vcenter') format3 = workbook.add_format({'bottom': True, 'align': 'center', 'bold': True, }) @@ -201,7 +205,11 @@ class PayslipMonthlyReportXlsx(models.AbstractModel): clm = 1 for k, v in line.items(): clm += 1 - sheet.write(row, clm, line[k], format1) + if isinstance(v, (int, float)): + sheet.write(row, clm, v, format_amount) + else: + sheet.write(row, clm, v, format1) + #sheet.write(row, clm, line[k], format1) else: row += 1 clm = 2 @@ -211,5 +219,9 @@ class PayslipMonthlyReportXlsx(models.AbstractModel): clm = 1 for k, v in ln.items(): clm += 1 - sheet.write(row, clm, ln[k], format1) + if isinstance(v, (int, float)): + sheet.write(row, clm, v, format_amount) + else: + sheet.write(row, clm, v, format1) + #sheet.write(row, clm, ln[k], format1) row += 1