This commit is contained in:
Mazen Abdo 2025-11-06 10:41:38 +02:00
parent 64774e612b
commit 9840355e2d
1 changed files with 106 additions and 109 deletions

View File

@ -50,42 +50,39 @@ class PayrollBankAlbiladReportXlsx(models.AbstractModel):
})
# Set column widths
sheet.set_column('A:A', 5)
sheet.set_column('B:B', 5)
sheet.set_column('C:L', 20)
sheet.set_column('A:J', 20)
row = 2
row = 0
if no_details:
# With details section
for bank in banks:
row += 3
sheet.write(row - 1, 1, bank.name, format3)
sheet.write(row, 2, 'Total Amount', format2)
sheet.write(row, 3, 'Beneficiary Account IBAN', format2)
sheet.write(row, 4, 'Beneficiary Name', format2)
sheet.write(row, 5, 'Beneficiary Bank CODE', format2)
sheet.write(row, 6, 'Payment Description', format2)
sheet.write(row, 7, 'Basic Salary', format2)
sheet.write(row, 8, 'Housing Allowance', format2)
sheet.write(row, 9, 'Other Earnings', format2)
sheet.write(row, 10, 'Deductions', format2)
sheet.write(row, 11, 'Beneficiary National/IqamaID', format2)
row += 2
sheet.write(row, 0, bank.name, format3)
row += 1
sheet.write(row, 0, 'Total Amount', format2)
sheet.write(row, 1, 'Beneficiary Account IBAN', format2)
sheet.write(row, 2, 'Beneficiary Name', format2)
sheet.write(row, 3, 'Beneficiary Bank CODE', format2)
sheet.write(row, 4, 'Payment Description', format2)
sheet.write(row, 5, 'Basic Salary', format2)
sheet.write(row, 6, 'Housing Allowance', format2)
sheet.write(row, 7, 'Other Earnings', format2)
sheet.write(row, 8, 'Deductions', format2)
sheet.write(row, 9, 'Beneficiary National/IqamaID', format2)
row += 1
sheet.write(row, 2, 'المبلغ الاجمالي', format2)
sheet.write(row, 3, 'رقم الايبان', format2)
sheet.write(row, 4, 'اسم المستفيد', format2)
sheet.write(row, 5, 'بنك المستفيد', format2)
sheet.write(row, 6, 'تفاصيل التحويل', format2)
sheet.write(row, 7, 'الراتب الاساسي', format2)
sheet.write(row, 8, 'بدل السكن', format2)
sheet.write(row, 9, 'البدلات الاخرى', format2)
sheet.write(row, 10, 'الخصم', format2)
sheet.write(row, 11, 'رقم الهوية', format2)
sheet.write(row, 0, 'المبلغ الاجمالي', format2)
sheet.write(row, 1, 'رقم الايبان', format2)
sheet.write(row, 2, 'اسم المستفيد', format2)
sheet.write(row, 3, 'بنك المستفيد', format2)
sheet.write(row, 4, 'تفاصيل التحويل', format2)
sheet.write(row, 5, 'الراتب الاساسي', format2)
sheet.write(row, 6, 'بدل السكن', format2)
sheet.write(row, 7, 'البدلات الاخرى', format2)
sheet.write(row, 8, 'الخصم', format2)
sheet.write(row, 9, 'رقم الهوية', format2)
if report_type == 'salary':
payslip_ids = self._get_payslips(date_from, date_to, entry_type, employees, salary, salary_ids, bank)
@ -126,16 +123,16 @@ class PayrollBankAlbiladReportXlsx(models.AbstractModel):
row += 1
# Write AlBilad format data
sheet.write(row, 2, data_list[4], format1)
sheet.write(row, 3, data_list[2], format1)
sheet.write(row, 4, data_list[1], format1)
sheet.write(row, 5, data_list[3], format1)
sheet.write(row, 6, '', format1)
sheet.write(row, 7, data_list[6], format1)
sheet.write(row, 8, data_list[7], format1)
sheet.write(row, 9, data_list[8], format1)
sheet.write(row, 10, data_list[9], format1)
sheet.write(row, 11, data_list[5], format1)
sheet.write(row, 0, data_list[4], format1)
sheet.write(row, 1, data_list[2], format1)
sheet.write(row, 2, data_list[1], format1)
sheet.write(row, 3, data_list[3], format1)
sheet.write(row, 4, '', format1)
sheet.write(row, 5, data_list[6], format1)
sheet.write(row, 6, data_list[7], format1)
sheet.write(row, 7, data_list[8], format1)
sheet.write(row, 8, data_list[9], format1)
sheet.write(row, 9, data_list[5], format1)
elif report_type == 'allowance':
row = self._write_allowance_data(sheet, row, date_from, date_to, entry_type, employees, salary, salary_ids, bank, branch, company_id, format1)
@ -150,30 +147,30 @@ class PayrollBankAlbiladReportXlsx(models.AbstractModel):
row = self._write_training_data(sheet, row, date_from, date_to, entry_type, employees, salary, salary_ids, bank, branch, company_id, format1)
else:
# No details section
row = 3
row = 1
# English headers row
sheet.write(2, 2, 'Total Amount', format2)
sheet.write(2, 3, 'Beneficiary Account IBAN', format2)
sheet.write(2, 4, 'Beneficiary Name', format2)
sheet.write(2, 5, 'Beneficiary Bank CODE', format2)
sheet.write(2, 6, 'Payment Description', format2)
sheet.write(2, 7, 'Basic Salary', format2)
sheet.write(2, 8, 'Housing Allowance', format2)
sheet.write(2, 9, 'Other Earnings', format2)
sheet.write(2, 10, 'Deductions', format2)
sheet.write(2, 11, 'Beneficiary National/IqamaID', format2)
sheet.write(0, 0, 'Total Amount', format2)
sheet.write(0, 1, 'Beneficiary Account IBAN', format2)
sheet.write(0, 2, 'Beneficiary Name', format2)
sheet.write(0, 3, 'Beneficiary Bank CODE', format2)
sheet.write(0, 4, 'Payment Description', format2)
sheet.write(0, 5, 'Basic Salary', format2)
sheet.write(0, 6, 'Housing Allowance', format2)
sheet.write(0, 7, 'Other Earnings', format2)
sheet.write(0, 8, 'Deductions', format2)
sheet.write(0, 9, 'Beneficiary National/IqamaID', format2)
# Arabic headers row
sheet.write(3, 2, 'المبلغ الاجمالي', format2)
sheet.write(3, 3, 'رقم الايبان', format2)
sheet.write(3, 4, 'اسم المستفيد', format2)
sheet.write(3, 5, 'بنك المستفيد', format2)
sheet.write(3, 6, 'تفاصيل التحويل', format2)
sheet.write(3, 7, 'الراتب الاساسي', format2)
sheet.write(3, 8, 'بدل السكن', format2)
sheet.write(3, 9, 'البدلات الاخرى', format2)
sheet.write(3, 10, 'الخصم', format2)
sheet.write(3, 11, 'رقم الهوية', format2)
sheet.write(1, 0, 'المبلغ الاجمالي', format2)
sheet.write(1, 1, 'رقم الايبان', format2)
sheet.write(1, 2, 'اسم المستفيد', format2)
sheet.write(1, 3, 'بنك المستفيد', format2)
sheet.write(1, 4, 'تفاصيل التحويل', format2)
sheet.write(1, 5, 'الراتب الاساسي', format2)
sheet.write(1, 6, 'بدل السكن', format2)
sheet.write(1, 7, 'البدلات الاخرى', format2)
sheet.write(1, 8, 'الخصم', format2)
sheet.write(1, 9, 'رقم الهوية', format2)
if report_type == 'salary':
for bank in banks:
@ -213,16 +210,16 @@ class PayrollBankAlbiladReportXlsx(models.AbstractModel):
]
row += 1
sheet.write(row, 2, data_list[4], format1)
sheet.write(row, 3, data_list[2], format1)
sheet.write(row, 4, data_list[1], format1)
sheet.write(row, 5, data_list[3], format1)
sheet.write(row, 6, '', format1)
sheet.write(row, 7, data_list[6], format1)
sheet.write(row, 8, data_list[7], format1)
sheet.write(row, 9, data_list[8], format1)
sheet.write(row, 10, data_list[9], format1)
sheet.write(row, 11, data_list[5], format1)
sheet.write(row, 0, data_list[4], format1)
sheet.write(row, 1, data_list[2], format1)
sheet.write(row, 2, data_list[1], format1)
sheet.write(row, 3, data_list[3], format1)
sheet.write(row, 4, '', format1)
sheet.write(row, 5, data_list[6], format1)
sheet.write(row, 6, data_list[7], format1)
sheet.write(row, 7, data_list[8], format1)
sheet.write(row, 8, data_list[9], format1)
sheet.write(row, 9, data_list[5], format1)
def _get_payslips(self, date_from, date_to, entry_type, employees, salary, salary_ids, bank):
domain_base = [
@ -289,16 +286,16 @@ class PayrollBankAlbiladReportXlsx(models.AbstractModel):
]
row += 1
sheet.write(row, 2, data_list[4], format1)
sheet.write(row, 3, data_list[2], format1)
sheet.write(row, 4, data_list[1], format1)
sheet.write(row, 5, data_list[3], format1)
sheet.write(row, 6, '', format1)
sheet.write(row, 7, data_list[6], format1)
sheet.write(row, 8, data_list[7], format1)
sheet.write(row, 9, data_list[8], format1)
sheet.write(row, 10, data_list[9], format1)
sheet.write(row, 11, data_list[5], format1)
sheet.write(row, 0, data_list[4], format1)
sheet.write(row, 1, data_list[2], format1)
sheet.write(row, 2, data_list[1], format1)
sheet.write(row, 3, data_list[3], format1)
sheet.write(row, 4, '', format1)
sheet.write(row, 5, data_list[6], format1)
sheet.write(row, 6, data_list[7], format1)
sheet.write(row, 7, data_list[8], format1)
sheet.write(row, 8, data_list[9], format1)
sheet.write(row, 9, data_list[5], format1)
return row
@ -318,16 +315,16 @@ class PayrollBankAlbiladReportXlsx(models.AbstractModel):
]
row += 1
sheet.write(row, 2, data_list[4], format1)
sheet.write(row, 3, data_list[2], format1)
sheet.write(row, 4, data_list[1], format1)
sheet.write(row, 5, data_list[3], format1)
sheet.write(row, 6, '', format1)
sheet.write(row, 7, data_list[6], format1)
sheet.write(row, 8, data_list[7], format1)
sheet.write(row, 9, data_list[8], format1)
sheet.write(row, 10, data_list[9], format1)
sheet.write(row, 11, data_list[5], format1)
sheet.write(row, 0, data_list[4], format1)
sheet.write(row, 1, data_list[2], format1)
sheet.write(row, 2, data_list[1], format1)
sheet.write(row, 3, data_list[3], format1)
sheet.write(row, 4, '', format1)
sheet.write(row, 5, data_list[6], format1)
sheet.write(row, 6, data_list[7], format1)
sheet.write(row, 7, data_list[8], format1)
sheet.write(row, 8, data_list[9], format1)
sheet.write(row, 9, data_list[5], format1)
return row
@ -349,16 +346,16 @@ class PayrollBankAlbiladReportXlsx(models.AbstractModel):
]
row += 1
sheet.write(row, 2, data_list[4], format1)
sheet.write(row, 3, data_list[2], format1)
sheet.write(row, 4, data_list[1], format1)
sheet.write(row, 5, data_list[3], format1)
sheet.write(row, 6, '', format1)
sheet.write(row, 7, data_list[6], format1)
sheet.write(row, 8, data_list[7], format1)
sheet.write(row, 9, data_list[8], format1)
sheet.write(row, 10, data_list[9], format1)
sheet.write(row, 11, data_list[5], format1)
sheet.write(row, 0, data_list[4], format1)
sheet.write(row, 1, data_list[2], format1)
sheet.write(row, 2, data_list[1], format1)
sheet.write(row, 3, data_list[3], format1)
sheet.write(row, 4, '', format1)
sheet.write(row, 5, data_list[6], format1)
sheet.write(row, 6, data_list[7], format1)
sheet.write(row, 7, data_list[8], format1)
sheet.write(row, 8, data_list[9], format1)
sheet.write(row, 9, data_list[5], format1)
return row
@ -378,16 +375,16 @@ class PayrollBankAlbiladReportXlsx(models.AbstractModel):
]
row += 1
sheet.write(row, 2, data_list[4], format1)
sheet.write(row, 3, data_list[2], format1)
sheet.write(row, 4, data_list[1], format1)
sheet.write(row, 5, data_list[3], format1)
sheet.write(row, 6, '', format1)
sheet.write(row, 7, data_list[6], format1)
sheet.write(row, 8, data_list[7], format1)
sheet.write(row, 9, data_list[8], format1)
sheet.write(row, 10, data_list[9], format1)
sheet.write(row, 11, data_list[5], format1)
sheet.write(row, 0, data_list[4], format1)
sheet.write(row, 1, data_list[2], format1)
sheet.write(row, 2, data_list[1], format1)
sheet.write(row, 3, data_list[3], format1)
sheet.write(row, 4, '', format1)
sheet.write(row, 5, data_list[6], format1)
sheet.write(row, 6, data_list[7], format1)
sheet.write(row, 7, data_list[8], format1)
sheet.write(row, 8, data_list[9], format1)
sheet.write(row, 9, data_list[5], format1)
return row