123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325 |
- openerp.pagare_crifin = function (instance, local) {
- local.widgetInstance = null;
- local.parentInstance = null;
- local.PagareCrifinWidget = instance.Widget.extend({
- template : "pagare_crifin.PagareCrifin",
- jsonDoc:[],
- init:function(parent){
- this._super(parent);
- },
- updateId : function(id){
- var self = this;
- self.id=id;
- },
- start: function () {
- var self = this;
- this.$el.click(function (e) {
- self.fecthInitial();
- });
- },
- valorNull:function(dato){
- var valor ="";
- if (dato){
- if(dato == true && typeof dato == 'boolean'){
- valor=" ";
- }else{
- valor=dato;
- }
- }
- return valor;
- },
- fecthInitial: function(){
- var id= openerp.webclient._current_state.id;
- var self = this;
- self.fetchAccountInvoice(id).then(function(AccountInvoice){
- return AccountInvoice;
- }).then(function(AccountInvoice){
- self.AccountInvoice = AccountInvoice;
- return self.fetchAccountInvoiceQuota(id);
- }).then(function(AccountInvoiceQuota){
- self.AccountInvoiceQuota = AccountInvoiceQuota;
- return self.fetchAccountInvoiceLine();
- }).then(function(AccountInvoiceLine){
- self.AccountInvoiceLine = AccountInvoiceLine;
- return self.drawPDF();
- });
- return false;
- },
- fetchAccountInvoice: function(id){
- var domain=[['id','=', id]];
- var AccountInvoice = new instance.web.Model('account.invoice');
- return AccountInvoice.call('getAccountInvoicePagare',[domain], {
- context: new instance.web.CompoundContext()
- });
- },
- fetchAccountInvoiceQuota: function(id){
- var domain=[['id','=', id]];
- var AccountInvoice = new instance.web.Model('account.invoice');
- return AccountInvoice.call('getAccountInvoicePagareQuota',[domain], {
- context: new instance.web.CompoundContext()
- });
- },
- fetchAccountInvoiceLine: function () {
- var self = this;
- var invoice_ids = _.flatten(_.map(self.AccountInvoice,function(map){
- return map.id;
- }));
- var domain=[['invoice_id','in',invoice_ids]];
- var AccountInvoiceLine = new instance.web.Model('account.invoice.line');
- return AccountInvoiceLine.call('getAccountInvoiceLinePagare',[domain], {
- context: new instance.web.CompoundContext()
- });
- },
- drawPDF:function(){
- var self = this;
- var AccountInvoice = self.AccountInvoice;
- var CurrencyBase = self.AccountInvoice[0].currency_id[0];
- var docItem = [];
- var docQuotaItem = [];
- var getColumns = [];
- var getColumnsQuota = [];
- var pdfDoc = new jsPDF("p","mm","a4");
- pdfDoc.addImage("data:image/png;base64," + AccountInvoice[0].company_id[0].logo, 'PNG',10,10,20,15);
- _.each(self.AccountInvoiceLine, function(item){
- docItem.push({
- name : item.name,
- quantity : item.quantity,
- price_unit : accounting.formatMoney(item.price_unit,'',CurrencyBase.decimal_places, CurrencyBase.thousands_separator, CurrencyBase.decimal_separator),
- price_subtotal : accounting.formatMoney(item.price_subtotal,'',CurrencyBase.decimal_places, CurrencyBase.thousands_separator, CurrencyBase.decimal_separator),
- });
- });
- getColumns.push({
- title : 'Descripción',
- dataKey: 'name'
- });
- getColumns.push({
- title : 'Cantidad',
- dataKey: 'quantity'
- });
- getColumns.push({
- title : 'Precio Unitario',
- dataKey: 'price_unit'
- });
- getColumns.push({
- title : 'subtotal',
- dataKey: 'price_subtotal'
- });
- pdfDoc.autoTable(getColumns, docItem, {
- theme: 'grid',
- styles: {
- overflow: 'linebreak',
- columnWidth: 'auto',
- fontSize: 7
- },
- headerStyles: {
- textColor: 20,
- fillColor: null,
- lineWidth: 0.1,
- fontSize: 9
- },
- columnStyles: {
- name : {columnWidth: 'auto'},
- quantity : {columnWidth: 30, halign:'right'},
- price_unit : {columnWidth: 30, halign:'right'},
- price_subtotal : {columnWidth: 30, halign:'right'},
- },
- margin: { top: 80, horizontal: 10},
- addPageContent: function (data) {
- pdfDoc.setFontSize(10);
- pdfDoc.setFontStyle('normal');
- pdfDoc.setTextColor(20);
- pdfDoc.text(40, 13,'Empresa: ');
- pdfDoc.text(60, 13, AccountInvoice[0].company_id[0].name);
- pdfDoc.setFontSize(10);
- pdfDoc.setFontStyle('normal');
- pdfDoc.setTextColor(20);
- pdfDoc.text(120, 13,'Número de Operación: ');
- pdfDoc.text(160, 13, AccountInvoice[0].origin);
- pdfDoc.setFontSize(10);
- pdfDoc.setFontStyle('normal');
- pdfDoc.setTextColor(20);
- pdfDoc.text(120, 18,'Número de Documento: ');
- pdfDoc.text(160, 18, AccountInvoice[0].number);
- pdfDoc.setFontSize(10);
- pdfDoc.setFontStyle('normal');
- pdfDoc.setTextColor(20);
- pdfDoc.text(120, 23,'Responsable: ');
- pdfDoc.text(145, 23, AccountInvoice[0].user_name);
- // Cuadro principal
- pdfDoc.rect(10, 30, pdfDoc.internal.pageSize.getWidth() - 20 , 40, 'S');
- // Cuadro fecha de emision
- pdfDoc.rect(10, 30, 80, 10, 'S');
- pdfDoc.setFontSize(8);
- pdfDoc.setFontStyle('normal');
- pdfDoc.setTextColor(20);
- pdfDoc.text(12, 36,'Fecha de emisión: ');
- pdfDoc.text(45, 36, moment(AccountInvoice[0].date_invoice).format('DD/MM/YYYY'));
- // RUC / Documento de identidad No.
- pdfDoc.rect(10, 40, pdfDoc.internal.pageSize.getWidth() - 20, 10, 'S');
- pdfDoc.text(12, 46,'RUC / Documento de Identidad No.: ' + AccountInvoice[0].partner_id[0].ruc);
- // Nombre o Razon Social
- pdfDoc.rect(10, 50, pdfDoc.internal.pageSize.getWidth() - 20, 10, 'S');
- pdfDoc.text(12, 56,'Nombre o Razón Social: ' + AccountInvoice[0].partner_id[0].name);
- // Telefono
- pdfDoc.rect(10, 60, 95, 10, 'S');
- pdfDoc.text(12, 66,'Teléfono: ' + self.valorNull(AccountInvoice[0].partner_id[0].phone));
- // Dirreccion
- pdfDoc.rect(105, 60, 95, 10, 'S');
- pdfDoc.text(107, 66,'Direccion: ' + self.valorNull(AccountInvoice[0].partner_id[0].address));
- }
- });
- pdfDoc.setFontSize(8);
- pdfDoc.setFontStyle('normal');
- pdfDoc.text(10,75,'Referencias Personales:');
- i=0;
- _.each(AccountInvoice[0].partner_id[0].ref_personal_ids,function(item){
- pdfDoc.setFontSize(8);
- pdfDoc.setFontStyle('normal');
- pdfDoc.text(50+i,75, '' + item.name);
- i=60;
- });
- _.each(self.AccountInvoiceQuota, function(item){
- docQuotaItem.push({
- date : moment(item.date).format('DD/MM/YYYY'),
- name : item.name,
- amount : accounting.formatMoney(item.amount,'',CurrencyBase.decimal_places, CurrencyBase.thousands_separator, CurrencyBase.decimal_separator),
- });
- });
- getColumnsQuota.push({
- title : 'Fecha',
- dataKey: 'date'
- });
- getColumnsQuota.push({
- title : 'Descripción',
- dataKey: 'name'
- });
- getColumnsQuota.push({
- title : 'Valor de la Cuota',
- dataKey: 'amount'
- });
- var finalY = pdfDoc.autoTable.previous.finalY;
- pdfDoc.autoTable(getColumnsQuota, docQuotaItem, {
- theme: 'grid',
- startY: finalY + 20,
- styles: {
- overflow: 'linebreak',
- columnWidth: 'auto',
- fontSize: 7,
- },
- headerStyles: {
- textColor: 20,
- fillColor: null,
- lineWidth: 0.1,
- fontSize: 9
- },
- columnStyles: {
- date : {columnWidth: 'auto', halign: 'center'},
- name : {columnWidth: 'auto', halign: 'center'},
- amount : {columnWidth: 'auto', halign: 'right'}
- },
- margin: {horizontal: 10},
- addPageContent: function (data) {
- pdfDoc.setFontSize(10);
- pdfDoc.setFontStyle('bold');
- pdfDoc.setTextColor(40);
- pdfDoc.text(85,finalY + 15,'Información de Cuotas ');
- pdfDoc.setFontSize(10);
- pdfDoc.setFontStyle('bold');
- pdfDoc.setTextColor(40);
- pdfDoc.text(10,finalY + 5,'Total: ' + accounting.formatMoney(AccountInvoice[0].amount_total,CurrencyBase.symbol,CurrencyBase.decimal_places, CurrencyBase.thousands_separator, CurrencyBase.decimal_separator));
- }
- });
- pdfDoc.addPage();
- pdfDoc.setFontSize(15);
- pdfDoc.setFontStyle('bold');
- pdfDoc.setTextColor(40);
- pdfDoc.text(80,10,'PAGARE A LA ORDEN');
- pdfDoc.setFontSize(9);
- pdfDoc.setFontStyle('normal');
- pdfDoc.setTextColor(40);
- pdfDoc.text(10,30,'Número de Operación: ' + AccountInvoice[0].origin);
- pdfDoc.text(110,30,'Monto a pagar: ' + accounting.formatMoney(AccountInvoice[0].amount_total,CurrencyBase.symbol,CurrencyBase.decimal_places, CurrencyBase.thousands_separator, CurrencyBase.decimal_separator));
- pdfDoc.text(10,35,'Fecha: ' + moment(AccountInvoice[0].date_invoice).format('DD/MM/YYYY'));
- var total_in_letters = instance.web.num2word(AccountInvoice[0].amount_total);
- pdfDoc.text(10,45,'Pagaré a ' + AccountInvoice[0].company_id[0].name + ' o a su orden el monto de Guaraníes: ' + total_in_letters);
- var paragraph="Por este PAGARÉ A LA ORDEN, me(nos) obligo(amos) a PAGAR a la firma CRIFIN CRÉDITOS E INVERSIÓN SOCIEDAD ANONIMA con Ruc Nº 80102929-5 o a su orden, en la calle Alder Richard Miño C/ Teodoro Mongelos del Bº Pacu-Cua. Queda expresamente convenido entre CRIFIN CRÉDITOS E INVERSIÓN SOCIEDAD ANONIMA (el acreedor) y el(los) deudor(es), que la falta de pago a su vencimiento del pagaré, producirá la caducidad automática y el decaimiento anticipado de los plazos establecidos en todos los demás pagaré o documentos o cuotas vencidas, cualquiera sea su naturaleza, causa u origen y causará de pleno derecho el vencimiento anticipado de los pagaré o documentos o cuotas no vencidas, facultando a CRIFIN CRÉDITOS E INVERSIÓN SOCIEDAD ANONIMA a exigir el pago inmediato del saldo total de la deuda. La mora se producirá por el mero vencimiento del plazo, sin necesidad de protesto ni de ningún requerimiento judicial o extrajudicial por parte de CRIFIN CRÉDITOS E INVERSIÓN SOCIEDAD ANONIMA (Art. 424 C.C.). En caso de mora, las cantidades adeudadas devengarán un interés moratorio del 3% mensual como intereses compensatorios y será computada desde el día de la mora hasta el día del pago efectivo del total de la obligación principal y sus intereses, sin que ello implique novación, prórroga o espera. El interés moratorio será calculado sobre el saldo de la deuda vencida y en ningún caso podrá capitalizase intereses moratorios ni punitorios. Toda la obligación a cargo de los deudores y que se encontrare vencida e impaga, facultará a CRIFIN CRÉDITOS E INVERSIÓN SOCIEDAD ANONIMA, además, a percibir un interés punitorio adicional cuya tasa no podrá exceder el treinta por ciento (30%) de la tasa a percibirse en concepto de interés moratorio. El interés punitorio, de percibirse, solamente será calculado sobre el saldo de la deuda vencida, de conformidad a lo dispuesto en el Artículo primero de la Ley Nº 2339 de la fecha 26 de diciembre de 2003, que modifica el Art. 44 de la Ley Nº 489/95. Por el presente instrumento les autorizo en forma expresa e irrevocable, otorgando suficiente mandato en los términos del Art. 917 Inc. A, del Código Civil, Para que en caso de un atraso superior a los 90 días en el pago del presente crédito o de cualquier otra deuda pendiente que mantenga con el acreedor de este pagaré, incluyan mi nombre persona o Razón Social que represento, en el Registro General de Morosos de Inforcomf, (Equifax S.A.) Esta Autorización se extiende a fin de que pueda proveerse la información a terceros interesados. Una vez cancelada la deuda en capital, gastos e interés, la eliminación de dicho registro se realizará de acuerdo a lo dispuesto en la ley Nº 1682/01 y su modificación Ley Nº 1969/02 y 5543/2015. Declaramos expresamente, con carácter irrevocable que las firmas puestas en el pie de este instrumento me/nos obliga/n con carácter irrevocable al cumplimiento de todas y cada una de las cuotas establecidas y al condicionamiento general obrante en el pagaré. A Todos los efectos legales se conviene expresamente la jurisdicción de los Tribunales del Paraguay. Se fija domicilio real y especial en los lugares señalados más abajo, donde se tendrán por válidas, como personales las notificaciones que llegaren a practicar, aun cuando fueren hechas por telegrama colacionada.";
- pdfDoc.text(paragraph,10,50,{maxWidth:188,align:'justify'});
- pdfDoc.setFontSize(10);
- pdfDoc.setFontStyle('bold');
- pdfDoc.setTextColor(40);
- pdfDoc.text(10,160,'DEUDOR');
- pdfDoc.text(110,160,'CO-DEUDOR');
- pdfDoc.setFontSize(9);
- pdfDoc.setFontStyle('normal');
- pdfDoc.setTextColor(40);
- pdfDoc.text(10,170,'Nombre y Apellido: ' + AccountInvoice[0].partner_id[0].name);
- pdfDoc.text(110,170,'Nombre y Apellido:');
- pdfDoc.text(10,175,'RUC / DNI: ' + self.valorNull(AccountInvoice[0].partner_id[0].ruc));
- pdfDoc.text(110,175,'RUC / DNI:');
- pdfDoc.text(10,180,'Domicilio: ' + self.valorNull(AccountInvoice[0].partner_id[0].address));
- pdfDoc.text(110,180,'Domicilio:');
- pdfDoc.text(10,185,'Telefono: ' + self.valorNull(AccountInvoice[0].partner_id[0].phone));
- pdfDoc.text(110,185,'Telefono:');
- pdfDoc.text(10,190,'Celular: ' + self.valorNull(AccountInvoice[0].partner_id[0].mobile));
- pdfDoc.text(110,190,'Celular:');
- pdfDoc.save('pagare.pdf');
- },
- });
- if (instance.web && instance.web.FormView) {
- instance.web.FormView.include({
- load_form: function (record) {
- this._super.apply(this, arguments);
- if (this.model !== 'account.invoice') return;
- local.parentInstance = this;
- if (local.widgetInstance) {
- local.widgetInstance.updateId(record.id);
- }
- local.widgetInstance = new local.PagareCrifinWidget(this);
- var elemento = this.$el.find('.oe_form').find('.pagare_button_box');
- local.widgetInstance.appendTo(elemento);
- local.widgetInstance.updateId(record.id);
- }
- });
- }
- };
|