pdf_inmobiliaria.js 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. function pdf_inmobiliaria(reporting) {
  2. "use strict";
  3. var model = openerp;
  4. reporting.ReportPdfWidgetInmobiliaria = reporting.Base.extend({
  5. drawPDFInmobiliaria: function (getColumns,row,ResCompany,pdf_title,pdf_type,pdf_name,pdf_columnStyles,filter) {
  6. var self = this;
  7. var base64Img = 'data:image/png;base64,' + ResCompany.logo;
  8. var hoy = moment().format('DD/MM/YYYY');
  9. var totalPagesExp = "{total_pages_count_string}";
  10. var pdfDoc = new jsPDF(pdf_type);
  11. var y_position = 27;
  12. var y_position2 = 27;
  13. //LOGO
  14. pdfDoc.addImage(base64Img, 'png', 7, 2, 0, 15);
  15. //FECHA
  16. pdfDoc.setFontSize(13);
  17. pdfDoc.setFontStyle('normal');
  18. pdfDoc.setTextColor(40)
  19. pdfDoc.text(pdfDoc.internal.pageSize.getWidth() - 35, 12,hoy);
  20. //TITULO
  21. pdfDoc.setFontSize(15);
  22. pdfDoc.setFontStyle('bold');
  23. pdfDoc.setTextColor('#0288d1');
  24. pdfDoc.autoTableText(pdf_title, pdfDoc.internal.pageSize.getWidth() - 12, 18, {
  25. halign: 'right',
  26. valign: 'middle'
  27. });
  28. pdfDoc.setLineWidth(0.5);
  29. pdfDoc.setDrawColor('#424242');
  30. pdfDoc.line(10, 22, pdfDoc.internal.pageSize.getWidth() - 10 , 22);
  31. var i=0;
  32. if(pdf_type == 'l'){
  33. var col1_title = 15;
  34. var col1_value = 55;
  35. var col2_title = 150;
  36. var col2_value = 190;
  37. }
  38. else{
  39. var col1_title = 10;
  40. var col1_value = 50;
  41. var col2_title = 110;
  42. var col2_value = 150;
  43. }
  44. if(filter.length >0){
  45. _.each(filter,function(item){
  46. if(i<4){
  47. self.addFilter(pdfDoc,item.title,item.value,col1_title,col1_value,y_position);
  48. y_position = y_position + 5;
  49. }else{
  50. self.addFilter(pdfDoc,item.title,item.value,col2_title,col2_value,y_position2);
  51. y_position2 = y_position2 + 5;
  52. }
  53. i++;
  54. });
  55. pdfDoc.setLineWidth(0.5);
  56. pdfDoc.setDrawColor('#424242');
  57. if(y_position >= y_position2){
  58. y_position = y_position;
  59. pdfDoc.line(10, y_position, pdfDoc.internal.pageSize.getWidth() - 10 , y_position);
  60. }else{
  61. y_position = y_position2;
  62. pdfDoc.line(10, y_position2, pdfDoc.internal.pageSize.getWidth() - 10 , y_position2);
  63. }
  64. }
  65. pdfDoc.autoTable(getColumns, row, {
  66. // showHeader: 'firstPage',
  67. startY: y_position + 5,
  68. theme: 'grid',
  69. styles: {
  70. overflow: 'linebreak',
  71. columnWidth: 'auto',
  72. fontSize: 7,
  73. },
  74. headerStyles: {
  75. fillColor: [76, 133, 248],
  76. fontSize: 8
  77. },
  78. columnStyles: pdf_columnStyles,
  79. margin: { horizontal: 7},
  80. drawCell: function(cell, opts) {
  81. var rows = opts.table.rows;
  82. if (opts.row.index == rows.length - 1) {
  83. pdfDoc.setFontStyle('bold');
  84. }
  85. },
  86. addPageContent: function (data) {
  87. //FOOTER
  88. var str = "Página " + data.pageCount;
  89. if (typeof pdfDoc.putTotalPages === 'function') {
  90. str = str + " de " + totalPagesExp;
  91. }
  92. pdfDoc.setFontSize(9);
  93. pdfDoc.setFontStyle('bold');
  94. pdfDoc.setTextColor(40);
  95. var pageHeight = pdfDoc.internal.pageSize.height || pdfDoc.internal.pageSize.getHeight();
  96. pdfDoc.autoTableText(str, pdfDoc.internal.pageSize.getWidth() - 35, pageHeight - 5, {
  97. halign: 'rigth',
  98. valign: 'middle'
  99. });
  100. }
  101. });
  102. if (typeof pdfDoc.putTotalPages === 'function') {
  103. pdfDoc.putTotalPages(totalPagesExp);
  104. }
  105. row.pop();
  106. if(model.printer_bridge){
  107. var data = pdfDoc.output('datauristring');
  108. model.printer_bridge.print(data);
  109. return;
  110. }
  111. pdfDoc.save(pdf_name + hoy + '.pdf');
  112. },
  113. addFilter: function(pdfDoc,title,value,x_position_title,x_position_value,y_position){
  114. pdfDoc.setFontSize(10);
  115. pdfDoc.setTextColor('#424242');
  116. pdfDoc.setFontStyle('bold');
  117. pdfDoc.autoTableText(title+':', x_position_title, y_position, {
  118. halign: 'left',
  119. valign: 'middle'
  120. });
  121. pdfDoc.setFontSize(10);
  122. pdfDoc.setTextColor('#424242');
  123. pdfDoc.setFontStyle('normal');
  124. pdfDoc.autoTableText(value, x_position_value, y_position, {
  125. halign: 'left',
  126. valign: 'middle'
  127. });
  128. },
  129. })
  130. }