function rrhh_pdf(reporting) { "use strict"; var model = openerp; reporting.ReportPdfWidget = reporting.Base.extend({ drawAbsencePdf: function (row,ResCompany,pdf_title,pdf_type,pdf_name,pdf_columnStyles,filter) { var self = this; var base64Img = 'data:image/png;base64,' + ResCompany.logo; var hoy = moment().format('DD/MM/YYYY'); var totalPagesExp = "{total_pages_count_string}"; var pdfDoc = new jsPDF(pdf_type); var title = []; var currentpage = 0; var i = 0; var position = 27; var y_position2 = 27; title.push({ title : 'Fecha', dataKey: 'create_date', align: 'center', }); title.push({ title : 'Descripción', dataKey: 'name', align: 'center', }); title.push({ title : 'Nómina', dataKey: 'payslip', align: 'center', }); title.push({ title : 'Días Faltados', dataKey: 'number_of_days', align: 'center', }); //LOGO pdfDoc.addImage(base64Img, 'png', 7, 2, 0, 15); //FECHA pdfDoc.setFontSize(13); pdfDoc.setFontStyle('normal'); pdfDoc.setTextColor(40) pdfDoc.text(pdfDoc.internal.pageSize.getWidth() - 35, 12,hoy); //TITULO pdfDoc.setFontSize(15); pdfDoc.setFontStyle('bold'); pdfDoc.setTextColor('#0288d1'); pdfDoc.autoTableText(pdf_title, pdfDoc.internal.pageSize.getWidth() - 12, 18, { halign: 'right', valign: 'middle' }); pdfDoc.setLineWidth(0.5); pdfDoc.setDrawColor('#424242'); pdfDoc.line(10, 22, pdfDoc.internal.pageSize.getWidth() - 10 , 22); var ii=0; if(pdf_type == 'l'){ var col1_title = 15; var col1_value = 55; var col2_title = 150; var col2_value = 190; } else{ var col1_title = 10; var col1_value = 50; var col2_title = 110; var col2_value = 150; } if(filter.length >0){ _.each(filter,function(item){ if(ii<4){ self.addFilter(pdfDoc,item.title,item.value,col1_title,col1_value,position); position = position + 5; }else{ self.addFilter(pdfDoc,item.title,item.value,col2_title,col2_value,y_position2); y_position2 = y_position2 + 5; } ii++; }); pdfDoc.setLineWidth(0.5); pdfDoc.setDrawColor('#424242'); if(position >= y_position2){ position = position; pdfDoc.line(10, position, pdfDoc.internal.pageSize.getWidth() - 10 , position); }else{ position = y_position2; pdfDoc.line(10, y_position2, pdfDoc.internal.pageSize.getWidth() - 10 , y_position2); } } _.each(row, function(item){ if(i > 0){ let first = pdfDoc.autoTable.previous; position = first.finalY + 5; }; var docItem = []; if(item.info != 'undefined'){ _.each(item.info, function(index){ docItem.push({ create_date: index.create_date, name: index.name, payslip: index.payslip, number_of_days: index.number_of_days, }) }); } pdfDoc.setDrawColor(0); pdfDoc.setFillColor(76, 133, 248); pdfDoc.rect(7, position+5, 196, 8, 'F'); pdfDoc.setFontSize(9); pdfDoc.setTextColor(255,255,255) pdfDoc.setFontStyle('bold'); pdfDoc.autoTableText('Funcionario: ', 10, position+9, { halign: 'left', valign: 'middle' }); pdfDoc.autoTableText(item.employee_name, 30, position+9, { halign: 'left', valign: 'middle' }); pdfDoc.autoTableText('Días Faltados: ', 100, position+9, { halign: 'left', valign: 'middle' }); pdfDoc.autoTableText(item.total_days, 123, position+9, { halign: 'left', valign: 'middle' }); pdfDoc.autoTableText('Monto Descontado: ', 140, position+9, { halign: 'left', valign: 'middle' }); pdfDoc.autoTableText(item.total_amount, 172, position+9, { halign: 'left', valign: 'middle' }); pdfDoc.autoTable(title, docItem, { // showHeader: false, startY: position+15, theme: 'grid', styles: { overflow: 'linebreak', fontSize: 8, margin: 50, lineWidth: 0.3, lineColor: [132,132,132] }, headerStyles: { fillColor: [255,255,255], fontSize: 9, textColor: [0,0,0], lineWidth: 0.3, lineColor: [132,132,132] }, columnStyles: pdf_columnStyles, margin: 'auto', tableWidth: 'auto', addPageContent: function (data) { // FOOTER if (currentpage < pdfDoc.internal.getNumberOfPages()) { var str = "Página " + pdfDoc.internal.getNumberOfPages(); str = str + " de " + totalPagesExp; pdfDoc.setFontSize(9); pdfDoc.setFontStyle('bold'); pdfDoc.setTextColor(40); var pageHeight = pdfDoc.internal.pageSize.height || pdfDoc.internal.pageSize.getHeight(); pdfDoc.text(str, pdfDoc.internal.pageSize.getWidth() - 55, pageHeight - 5); currentpage = pdfDoc.internal.getNumberOfPages(); } } }); i++; }); if (typeof pdfDoc.putTotalPages === 'function') { pdfDoc.putTotalPages(totalPagesExp); } row.pop(); if(model.printer_bridge){ var data = pdfDoc.output('datauristring'); model.printer_bridge.print(data); return; } pdfDoc.save(pdf_name + hoy + '.pdf'); }, addFilter: function(pdfDoc,title,value,x_position_title,x_position_value,y_position){ pdfDoc.setFontSize(10); pdfDoc.setTextColor('#424242'); pdfDoc.setFontStyle('bold'); pdfDoc.autoTableText(title+':', x_position_title, y_position, { halign: 'left', valign: 'middle' }); pdfDoc.setFontSize(10); pdfDoc.setTextColor('#424242'); pdfDoc.setFontStyle('normal'); pdfDoc.autoTableText(value, x_position_value, y_position, { halign: 'left', valign: 'middle' }); }, }); }