fix excel report

This commit is contained in:
eslamabady 2024-09-16 10:51:58 +03:00
parent 4a16e7a4fa
commit 2331f7f5ac
3 changed files with 293 additions and 254 deletions

File diff suppressed because it is too large Load Diff

View File

@ -31,7 +31,7 @@
<footer>
<button string="Print Report" type="object" name="print_report" class="oe_highlight"/>
or
<button string="Print Excel Report" invisible="1" type="object" name="print_excel_report" class="oe_highlight"/>
<button string="Print Excel Report" invisible="0" type="object" name="print_excel_report" class="oe_highlight"/>
<!-- or-->
<button special="cancel" string="Cancel" class="oe_link"/>
</footer>

View File

@ -218,6 +218,8 @@ class AttendancesReportXls(models.AbstractModel):
type = data['form']['type']
sheet = workbook.add_worksheet(U'Holiday Report')
sheet.right_to_left()
sheet.set_column(8, 9, 15)
# sheet.set_column(6, 100, 25)
format2 = workbook.add_format(
{'font_size': 10, 'bottom': True, 'right': True, 'left': True, 'top': True, 'align': 'center',
'bold': True})
@ -234,17 +236,27 @@ class AttendancesReportXls(models.AbstractModel):
n = 1
size = len(final_dic[key])
tot_size = len(total[key])
sheet.write(row - 3, n, _('Employee Number'), format2)
sheet.write(row - 3, n+2, _('job '), format2)
sheet.write(row - 2, n, _('Name'), format2)
sheet.write(row - 2, n+2, _('Department'), format2)
sheet.write(row, n, _('date'), format2)
sheet.write(row, n + 1, _('Sign in'), format2)
sheet.write(row, n + 2, _('Sign out'), format2)
sheet.write(row, n + 3, _('lateness'), format2)
sheet.write(row, n + 4, _('Early Exit'), format2)
sheet.write(row, n + 5, _('Notes'), format2)
sheet.write(row, n + 5, _('Extra hours'), format2)
sheet.write(row, n + 6, _('Office Hours'), format2)
sheet.write(row, n + 7, _('Notes'), format2)
sheet.write(row, n + 8, _('Shift'), format2)
data_row = row + 1
for line in final_dic[key]:
sheet.write(row - 2, n + 1, line['employee_name'], format2)
sheet.write(data_row, n, line['date'], format2)
sheet.write(row - 3, n + 1, emp_data[key][0]['emp_no'], format2)
sheet.write(row - 3, n + 3, emp_data[key][0]['job'], format2)
sheet.write(row - 2, n + 1, emp_data[key][0]['emp_namw'], format2)
sheet.write(row - 2, n + 3, emp_data[key][0]['department'], format2)
sheet.write(data_row, n, str(line['date']), format2)
sheet.write(data_row, n + 1, '{0:02.0f}:{1:02.0f}'.format(*divmod(float(line['sig_in']) * 60, 60)),
format2)
sheet.write(data_row, n + 2, '{0:02.0f}:{1:02.0f}'.format(*divmod(float(line['sig_out']) * 60, 60)),
@ -253,19 +265,24 @@ class AttendancesReportXls(models.AbstractModel):
'{0:02.0f}:{1:02.0f}'.format(*divmod(float(line['lateness']) * 60, 60)), format2)
sheet.write(data_row, n + 4,
'{0:02.0f}:{1:02.0f}'.format(*divmod(float(line['early_exit']) * 60, 60)), format2)
sheet.write(data_row, n + 5, (' '), format2)
sheet.write(data_row, n + 5,
'{0:02.0f}:{1:02.0f}'.format(*divmod(float(line['extra_hours']) * 60, 60)), format2)
sheet.write(data_row, n + 6,
'{0:02.0f}:{1:02.0f}'.format(*divmod(float(line['office_hours']) * 60, 60)), format2)
sheet.write(data_row, n + 7,line['note'], format2)
sheet.write(data_row, n + 8, line['calendar_id'], format2)
data_row += 1
sheet.write(data_row, n, _('Total lateness'), format2)
sheet.write(data_row, n + 1, str(total[key]['total_lateness']), format2)
sheet.write(data_row, n + 2, _('Total Early Exit'), format2)
sheet.write(data_row, n + 3, str(total[key]['total_early_exit']), format2)
sheet.write(data_row, n + 4, _('Total Absent'), format2)
sheet.write(data_row, n + 5, str(total[key]['total_absent']), format2)
# sheet.set_column(data_row,data_row, 15)
sheet.write(data_row, n + 1, str(total[key]['total_late_early'].split('.')[0]), format2)
sheet.write(data_row, n + 2, _('Total Absent'), format2)
sheet.write(data_row, n + 3, str(total[key]['total_absent']), format2)
size -= 2
sheet.write(data_row + 1, n, _('Total Not Sign In'), format2)
sheet.write(data_row + 1, n + 1, str(total[key]['total_not_sig_in']), format2)
sheet.write(data_row + 1, n + 2, _('Total Not Sign Out'), format2)
sheet.write(data_row + 1, n + 3, total[key]['total_not_sig_out'], format2)
sheet.write(data_row + 1, n, _('Total Extra'), format2)
sheet.write(data_row + 1, n + 1, str(total[key]['total_extra_hours'].split('.')[0]), format2)
sheet.write(data_row + 1, n + 2, _('Total Leave'), format2)
sheet.write(data_row + 1, n + 3, total[key]['total_leave'], format2)
n += 1
row += size + 3 + tot_size
elif type == 'absent':