|
@@ -12,25 +12,20 @@ openerp.invoice_print_nota = function (instance, local) {
|
|
|
jsonDoc:[],
|
|
|
// Init
|
|
|
|
|
|
- init:function(parent){
|
|
|
+ init:function(parent,modelo,ids){
|
|
|
this._super(parent);
|
|
|
- },
|
|
|
-
|
|
|
- updateId : function(id){
|
|
|
- var self = this;
|
|
|
- self.id=id;
|
|
|
+ this.modelo = modelo;
|
|
|
+ this.ids = ids;
|
|
|
},
|
|
|
|
|
|
start: function () {
|
|
|
- var self = this;
|
|
|
- this.$el.click(function () {
|
|
|
- self.fecthInitial();
|
|
|
- });
|
|
|
+ this.fecthInitial();
|
|
|
},
|
|
|
|
|
|
fecthInitial: function(){
|
|
|
- var id= openerp.webclient._current_state.id;
|
|
|
+ // var id= openerp.webclient._current_state.id;
|
|
|
var self = this;
|
|
|
+ var id = this.ids[0];
|
|
|
self.fecthInvoice(id).then(function(invoice){
|
|
|
return invoice;
|
|
|
}).then(function(invoice){
|
|
@@ -47,12 +42,12 @@ openerp.invoice_print_nota = function (instance, local) {
|
|
|
return self.drawPDF();
|
|
|
});
|
|
|
return false;
|
|
|
- },
|
|
|
+ },
|
|
|
|
|
|
// Consultar Pagos
|
|
|
fecthInvoice: function(id){
|
|
|
var defer = $.Deferred();
|
|
|
- var fields =['id', 'partner_id', 'type', 'number', 'origin', 'state', 'reference', 'currency_id', 'invoice_line', 'supplier_invoice_number','date_invoice','amount_total','user_id','company_id','amount_untaxed','amount_tax'];
|
|
|
+ var fields =['id', 'partner_id', 'type', 'number', 'origin', 'state', 'reference', 'currency_id', 'invoice_line', 'supplier_invoice_number','date_invoice','amount_total','user_id','company_id','amount_untaxed','amount_tax','residual'];
|
|
|
var domain=[['id', '=', id]];
|
|
|
var Invoice = new instance.web.Model('account.invoice');
|
|
|
Invoice.query(fields).filter(domain).order_by('id').all().then(function(results){
|
|
@@ -158,6 +153,8 @@ openerp.invoice_print_nota = function (instance, local) {
|
|
|
company_id : resInvoice[k].company_id[1],
|
|
|
customer_address : partner.state_id[1]+", "+partner.country_id[1],
|
|
|
company_address : company.state_id[1]+", "+company.country_id[1],
|
|
|
+ total_pagado : accounting.formatNumber(resInvoice[k].amount_total-resInvoice[k].residual,0,".",","),
|
|
|
+ residual : accounting.formatNumber(resInvoice[k].residual,0,".",","),
|
|
|
amount_untaxed : accounting.formatNumber(resInvoice[k].amount_untaxed,2,".",","),
|
|
|
amount_tax : accounting.formatNumber(resInvoice[k].amount_tax,2,".",","),
|
|
|
amount_total : accounting.formatNumber(resInvoice[k].amount_total,2,".",",")
|
|
@@ -211,10 +208,10 @@ openerp.invoice_print_nota = function (instance, local) {
|
|
|
theme: 'plain',
|
|
|
styles: { overflow: 'linebreak', fontSize: 8, columnWidth: 'wrap'},
|
|
|
columnStyles: {
|
|
|
- line_quantity : {halign:'right',columnWidth: '4px'},
|
|
|
- line_name : {columnWidth: '10px'},
|
|
|
- line_price_unit : {columnWidth: '4px'},
|
|
|
- line_price_subtotal : {columnWidth: '4px'},
|
|
|
+ line_quantity : {halign:'left',columnWidth: '4px'},
|
|
|
+ line_name : {columnWidth: '12px'},
|
|
|
+ line_price_unit : {halign:'right',columnWidth: '4px'},
|
|
|
+ line_price_subtotal : {halign:'right',columnWidth: '4px'},
|
|
|
},
|
|
|
margin: { top: 45, horizontal: 7},
|
|
|
|
|
@@ -283,12 +280,32 @@ openerp.invoice_print_nota = function (instance, local) {
|
|
|
pdfDoc.setFontSize(10);
|
|
|
pdfDoc.setFontStyle('bold');
|
|
|
pdfDoc.setTextColor(40);
|
|
|
- pdfDoc.text(135,120,'Sub Total: ');
|
|
|
+ pdfDoc.text(15,120,'Total a Pagar: ');
|
|
|
+
|
|
|
+ pdfDoc.setFontSize(10);
|
|
|
+ pdfDoc.setFontStyle('normal');
|
|
|
+ pdfDoc.setTextColor(40);
|
|
|
+ pdfDoc.text(doc[0].amount_total,60,120,'right');
|
|
|
+
|
|
|
+ pdfDoc.setFontSize(10);
|
|
|
+ pdfDoc.setFontStyle('bold');
|
|
|
+ pdfDoc.setTextColor(40);
|
|
|
+ pdfDoc.text(135,120,'Total a Pagar: ');
|
|
|
|
|
|
pdfDoc.setFontSize(10);
|
|
|
pdfDoc.setFontStyle('normal');
|
|
|
pdfDoc.setTextColor(40);
|
|
|
- pdfDoc.text(doc[0].amount_untaxed,180,120,'right');
|
|
|
+ pdfDoc.text(doc[0].amount_untaxed,185,120,'right');
|
|
|
+
|
|
|
+ pdfDoc.setFontSize(10);
|
|
|
+ pdfDoc.setFontStyle('bold');
|
|
|
+ pdfDoc.setTextColor(40);
|
|
|
+ pdfDoc.text(15,124,'Total Pagado: ');
|
|
|
+
|
|
|
+ pdfDoc.setFontSize(10);
|
|
|
+ pdfDoc.setFontStyle('normal');
|
|
|
+ pdfDoc.setTextColor(40);
|
|
|
+ pdfDoc.text(doc[0].total_pagado,60,124,'right');
|
|
|
|
|
|
pdfDoc.setFontSize(10);
|
|
|
pdfDoc.setFontStyle('bold');
|
|
@@ -298,7 +315,17 @@ openerp.invoice_print_nota = function (instance, local) {
|
|
|
pdfDoc.setFontSize(10);
|
|
|
pdfDoc.setFontStyle('normal');
|
|
|
pdfDoc.setTextColor(40);
|
|
|
- pdfDoc.text(doc[0].amount_tax,180,124,'right');
|
|
|
+ pdfDoc.text(doc[0].amount_tax,185,124,'right');
|
|
|
+
|
|
|
+ pdfDoc.setFontSize(10);
|
|
|
+ pdfDoc.setFontStyle('bold');
|
|
|
+ pdfDoc.setTextColor(40);
|
|
|
+ pdfDoc.text(15,128,'Saldo: ');
|
|
|
+
|
|
|
+ pdfDoc.setFontSize(10);
|
|
|
+ pdfDoc.setFontStyle('normal');
|
|
|
+ pdfDoc.setTextColor(40);
|
|
|
+ pdfDoc.text(doc[0].residual,60,128,'right');
|
|
|
|
|
|
pdfDoc.setFontSize(10);
|
|
|
pdfDoc.setFontStyle('bold');
|
|
@@ -308,7 +335,7 @@ openerp.invoice_print_nota = function (instance, local) {
|
|
|
pdfDoc.setFontSize(10);
|
|
|
pdfDoc.setFontStyle('normal');
|
|
|
pdfDoc.setTextColor(40);
|
|
|
- pdfDoc.text(doc[0].amount_total,180,128,'right');
|
|
|
+ pdfDoc.text(doc[0].amount_total,185,128,'right');
|
|
|
}
|
|
|
});
|
|
|
|
|
@@ -317,26 +344,28 @@ openerp.invoice_print_nota = function (instance, local) {
|
|
|
},
|
|
|
});
|
|
|
|
|
|
- if(instance.web && instance.web.FormView){
|
|
|
+ if(instance.web && instance.web.ListView && instance.web.FormView){
|
|
|
instance.web.FormView.include({
|
|
|
- load_form: function (record) {
|
|
|
+ do_show: function() {
|
|
|
this._super.apply(this, arguments);
|
|
|
- if (this.model !== 'account.invoice') return
|
|
|
- local.parentInstance = this;
|
|
|
- if (local.widgetInstance) {
|
|
|
- local.widgetInstance.updateId(record.id);
|
|
|
- }
|
|
|
- local.parentInstance = this;
|
|
|
- if (local.widgetInstance) {
|
|
|
- local.widgetInstance.updateId(record.id);
|
|
|
- }
|
|
|
- local.widgetInstance = new local.PrintNotaWidget(this);
|
|
|
- var elemento = this.$el.find('.oe_form_sheet.oe_form_sheet_width');
|
|
|
- elemento = elemento.find('.oe_right.oe_button_box.invoice_button_box');
|
|
|
- local.widgetInstance.appendTo(elemento);
|
|
|
- local.widgetInstance.updateId(record.id);
|
|
|
+ if (this.model != 'account.invoice' || this.dataset.context.default_type !== 'out_invoice') return
|
|
|
+
|
|
|
+ var self = this;
|
|
|
+
|
|
|
+ this.sidebar.add_items('print', [
|
|
|
+ {
|
|
|
+ label: 'Imprimir Factura',
|
|
|
+ classname: 'oe_sidebar_print',
|
|
|
+ callback: function () {
|
|
|
+ var widget = new local.PrintNotaWidget(self, self.model, self.get_selected_ids());
|
|
|
+ widget.start()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ])
|
|
|
}
|
|
|
})
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
}
|