123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222 |
- 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'
- });
- },
- });
- }
|