Ir al contenido
Menú
Se marcó esta pregunta
1380 Vistas

Code for exporting employee data to a document



'

def export_to_document(self):
output = io.BytesIO()
workbook = xlsxwriter.Workbook(output)
worksheet = workbook.add_worksheet()

date_style = workbook.add_format({'text_wrap': True, 'num_format': 'dd-mm-yyyy'})
format1 = workbook.add_format({'text_wrap': True})
worksheet.set_column(0, 36, 25)
# worksheet.write(0, 0, 'Employee ID')
worksheet.write(0, 0, 'Employee ID')
col = 1
for date in self.get_dates((int(self.year)), int(self.month)):
worksheet.write(0, col, date, date_style)
col += 1
worksheet.write(0, col, 'Worked Days', format1)
worksheet.write(0, col + 1, 'Monthly Allowance', format1)

col1 = 0
row = 1
col2 = 1
for key, value in self.return_employee_data().items():
employee = self.env['hr.employee'].browse(key)
worksheet.write(row, col1, employee.employee_id)
for l in self.return_employee_data()[key]:
worksheet.write(row, col2, l if l else 0)
col2 += 1
col2 = 1
row += 1

workbook.close()
attachment_data = output.getvalue()

data = {

'name': 'exported_data.xlsx',
'datas': base64.encodebytes(attachment_data),
'res_model': self._name,
'type': 'binary',
'folder_id': 10,
'file_extension': 'xlsx',
'res_id': self.id,
'spreadsheet_binary_data': base64.encodebytes(attachment_data)
}
document = self.env['documents.document'].create(data)
clone_document_id = document.clone_xlsx_into_spreadsheet()
clone_document = self.env['documents.document'].search([('id', '=', clone_document_id)])
clone_document.write({'res_model': 'monthly.timesheet'})
clone_document.write({'res_id': self.id})
clone_document.write({'name': document.name})
clone_document.write({'file_extension': document.file_extension})

return {
'name': 'Exported Data.xlsx',
'type': 'ir.actions.act_url',
'url': '/web#spreadsheet_id=%s&action=action_open_spreadsheet' % (clone_document_id),
'target': 'new',
}

For Updating data

def update_timesheet_data(self):
timesheet_obj = self.env['employee.timesheet']
document_excel = self.env['documents.document'].search([('res_model', '=', self._name), ('res_id', '=', self.id)])







'


Avatar
Descartar
Publicaciones relacionadas Respuestas Vistas Actividad
1
jul 25
265
1
jul 25
1770
1
jul 25
1013
4
may 25
2452
2
may 25
5787