|
@@ -7,17 +7,16 @@
|
|
|
|
|
|
openerp.edit_move_line.MovePrintWidget = openerp.Widget.extend({
|
|
|
template: "edit_move_line.MovePrint",
|
|
|
- accountInvoice:[],
|
|
|
- moveLine:[],
|
|
|
- currencyRate:[],
|
|
|
- resPartner:[],
|
|
|
- moveLineReconcile:[],
|
|
|
- pagare:[],
|
|
|
- doc:[],
|
|
|
+ accountInvoice: [],
|
|
|
+ moveLine: [],
|
|
|
+ currencyRate: [],
|
|
|
+ resPartner: [],
|
|
|
+ moveLineReconcile: [],
|
|
|
+ pagare: [],
|
|
|
+ doc: [],
|
|
|
|
|
|
init: function (parent, id) {
|
|
|
this._super(parent);
|
|
|
- // this.id = id;
|
|
|
},
|
|
|
start: function () {
|
|
|
var self = this;
|
|
@@ -26,42 +25,42 @@
|
|
|
});
|
|
|
},
|
|
|
// inicial
|
|
|
- fecthInitial: function(){
|
|
|
- var self= this;
|
|
|
- var id =openerp.webclient._current_state.id;
|
|
|
- this.fetchCurency().then(function(Currency){
|
|
|
- self.currencyRate=Currency;
|
|
|
+ fecthInitial: function() {
|
|
|
+ var self = this;
|
|
|
+ var id = openerp.webclient._current_state.id;
|
|
|
+
|
|
|
+ this.fetchCurency().then(function(Currency) {
|
|
|
+ self.currencyRate = Currency;
|
|
|
return Currency;
|
|
|
}).then(function(Currency){
|
|
|
- return self.fetchInvoice(parseInt(id));
|
|
|
- }).then(function(invoice){
|
|
|
+ return self.fetchInvoice(id);
|
|
|
+ }).then(function(invoice) {
|
|
|
self.accountInvoice = invoice;
|
|
|
return self.fetchMoveLine(invoice);
|
|
|
- }).then(function(moveline){
|
|
|
+ }).then(function(moveline) {
|
|
|
self.moveLine = moveline;
|
|
|
return self.fetchMoveLineReconcile(moveline);
|
|
|
- }).then(function(moveRecocile){
|
|
|
+ }).then(function(moveRecocile) {
|
|
|
self.moveLineReconcile=moveRecocile;
|
|
|
return self.fetchPartner();
|
|
|
- }).then(function(partner){
|
|
|
+ }).then(function(partner) {
|
|
|
self.resPartner = partner;
|
|
|
return self.drawJSON();
|
|
|
- }).then(function(doc){
|
|
|
+ }).then(function(doc) {
|
|
|
self.doc = doc;
|
|
|
return self.fetchJoint();
|
|
|
});
|
|
|
-
|
|
|
- return false;
|
|
|
},
|
|
|
// Buscar Cambio de Monedas USD,PYG,ARG,BRL
|
|
|
fetchCurency: function (id_currency) {
|
|
|
var defer = $.Deferred();
|
|
|
var currency_Rate = new openerp.web.Model('res.currency.rate');
|
|
|
var fields = ['currency_id', 'rate'];
|
|
|
- var domain = [['currency_id', '=', [166 , 20, 7, 3]]];
|
|
|
+ var domain = [['currency_id', 'in', [166 , 20, 7, 3]]];
|
|
|
currency_Rate.query(fields).filter(domain).all().then(function (results) {
|
|
|
defer.resolve(results);
|
|
|
});
|
|
|
+
|
|
|
return defer;
|
|
|
},
|
|
|
// Account invoice
|
|
@@ -69,59 +68,64 @@
|
|
|
var defer = $.Deferred();
|
|
|
var invoice = new openerp.web.Model('account.invoice');
|
|
|
var fields = ['id', 'number', 'currency_id', 'partner_id', 'date_invoice','move_line_debt'];
|
|
|
- var domain = [['id', '=', id]];
|
|
|
+ var domain = [['id', 'in', [id]]];
|
|
|
invoice.query(fields).filter(domain).all().then(function (results) {
|
|
|
defer.resolve(results);
|
|
|
});
|
|
|
+
|
|
|
return defer;
|
|
|
},
|
|
|
- // Move Line
|
|
|
+ // Move Line0.
|
|
|
fetchMoveLine: function(invoice){
|
|
|
var defer = $.Deferred();
|
|
|
var id_move = _.flatten(_.map(invoice,function(item){return item.move_line_debt}));
|
|
|
var moveLine = new openerp.web.Model('account.move.line');
|
|
|
- var fields = ['id', 'debit','credit','date_maturity','currency_id','company_id','reconcile_partial_id','ref'];
|
|
|
- var domain = [['id', '=', id_move]];
|
|
|
- moveLine.query(fields).filter(domain).order_by("id").all().then(function(results){
|
|
|
+ var fields = ['id', 'debit', 'credit', 'date_maturity', 'currency_id', 'company_id', 'reconcile_partial_id', 'ref', 'amount_residual_currency'];
|
|
|
+ var domain = [['id', 'in', id_move]];
|
|
|
+ moveLine.query(fields).filter(domain).order_by("id").all().then(function(results) {
|
|
|
defer.resolve(results);
|
|
|
});
|
|
|
+
|
|
|
return defer;
|
|
|
},
|
|
|
// Move Line Reconcile
|
|
|
- fetchMoveLineReconcile: function(move){
|
|
|
+ fetchMoveLineReconcile: function(move) {
|
|
|
var defer = $.Deferred();
|
|
|
var id_reco = _.flatten(_.map(move,function(item){return item.reconcile_partial_id[0]}));
|
|
|
var moveLine = new openerp.web.Model('account.move.line');
|
|
|
- var fields = ['id', 'debit','credit','date_maturity','currency_id','company_id','reconcile_partial_id'];
|
|
|
- var domain = [['reconcile_partial_id', '=', id_reco],['credit', '>', 0]];
|
|
|
- moveLine.query(fields).filter(domain).all().then(function(results){
|
|
|
+ var fields = ['id', 'debit', 'credit', 'date_maturity', 'currency_id', 'company_id', 'reconcile_partial_id'];
|
|
|
+ var domain = [['reconcile_partial_id', 'in', id_reco],['credit', '>', 0]];
|
|
|
+ moveLine.query(fields).filter(domain).all().then(function(results) {
|
|
|
defer.resolve(results);
|
|
|
});
|
|
|
+
|
|
|
return defer;
|
|
|
},
|
|
|
// Partner
|
|
|
- fetchPartner: function(){
|
|
|
+ fetchPartner: function() {
|
|
|
var defer = $.Deferred();
|
|
|
var defer = $.Deferred();
|
|
|
var partner_ids = _.flatten(_.map(this.accountInvoice,function(item){return item.partner_id[0]}));
|
|
|
var resPartner = new openerp.web.Model('res.partner');
|
|
|
- var fields =['id','name','phone','mobile','ruc', 'street'];
|
|
|
- var domain =[['id', '=', partner_ids]];
|
|
|
- resPartner.query(fields).filter(domain).all().then(function(results){
|
|
|
+ var fields = ['id','name','phone','mobile','ruc', 'street'];
|
|
|
+ var domain = [['id', 'in', partner_ids]];
|
|
|
+ resPartner.query(fields).filter(domain).all().then(function(results) {
|
|
|
defer.resolve(results);
|
|
|
});
|
|
|
+
|
|
|
return defer;
|
|
|
},
|
|
|
// Obtener EL JSON
|
|
|
- drawJSON: function(){
|
|
|
+ drawJSON: function() {
|
|
|
var defer = $.Deferred();
|
|
|
- $.getJSON('/edit_move_line/static/src/json/pagare.json').then(function(doc){
|
|
|
+ $.getJSON('/edit_move_line/static/src/json/pagare.json').then(function(doc) {
|
|
|
defer.resolve(doc);
|
|
|
});
|
|
|
+
|
|
|
return defer;
|
|
|
},
|
|
|
// Juntar datos
|
|
|
- fetchJoint: function(){
|
|
|
+ fetchJoint: function() {
|
|
|
var self = this;
|
|
|
var lineReconcile;
|
|
|
var item;
|
|
@@ -130,104 +134,113 @@
|
|
|
var invoice;
|
|
|
|
|
|
invoice = this.accountInvoice.shift();
|
|
|
- partner=this.resPartner.shift();
|
|
|
- if (!partner){
|
|
|
- partner={};
|
|
|
- partner.name="";
|
|
|
- partner.street="";
|
|
|
- partner.ruc =" ";
|
|
|
- partner.phone="";
|
|
|
- partner.mobile="";
|
|
|
- }else{
|
|
|
- if (!partner.name){partner.name=""};
|
|
|
- if (!partner.street){partner.street=""};
|
|
|
- if (!partner.ruc){partner.ruc =" "};
|
|
|
- if (!partner.phone){partner.phone=""};
|
|
|
- if (!partner.mobile){partner.mobile=""};
|
|
|
+ partner = this.resPartner.shift();
|
|
|
+ if (!partner) {
|
|
|
+ partner = {};
|
|
|
+ partner.name = "";
|
|
|
+ partner.street = "";
|
|
|
+ partner.ruc = " ";
|
|
|
+ partner.phone = "";
|
|
|
+ partner.mobile = "";
|
|
|
+ }else {
|
|
|
+ if (!partner.name)
|
|
|
+ partner.name = "";
|
|
|
+ if (!partner.street)
|
|
|
+ partner.street = "";
|
|
|
+ if (!partner.ruc)
|
|
|
+ partner.ruc = " ";
|
|
|
+ if (!partner.phone)
|
|
|
+ partner.phone = "";
|
|
|
+ if (!partner.mobile)
|
|
|
+ partner.mobile = "";
|
|
|
}
|
|
|
|
|
|
for (var i = 0; i < self.moveLine.length; i++) {
|
|
|
item = self.moveLine[i];
|
|
|
// Reconcile parcial
|
|
|
lineReconcile = self.getLineReconcile(item.reconcile_partial_id[0]);
|
|
|
- if(!lineReconcile){
|
|
|
- lineReconcile={};
|
|
|
- lineReconcile.credit=0;
|
|
|
+ if(!lineReconcile) {
|
|
|
+ lineReconcile = {};
|
|
|
+ lineReconcile.credit = 0;
|
|
|
}
|
|
|
//Rate(cambio)
|
|
|
rate=self.getRate(item.currency_id[0]);
|
|
|
- if (!rate){
|
|
|
- rate={};
|
|
|
- rate.rate=1;
|
|
|
+ if (!rate) {
|
|
|
+ rate = {};
|
|
|
+ rate.rate = 1;
|
|
|
rate.currency_id = 3;
|
|
|
- rate.currency_simbol= "USD";
|
|
|
- rate.simbol="$";
|
|
|
- rate.currency_name="Dolares";
|
|
|
+ rate.currency_simbol = "USD";
|
|
|
+ rate.simbol = "$";
|
|
|
+ rate.currency_name = "Dolares";
|
|
|
}
|
|
|
|
|
|
- self.pagare.push({number: invoice.number,
|
|
|
- pagar : accounting.formatNumber(((item.debit * rate.rate)-(lineReconcile.credit *rate.rate)), 2, ".", ","),
|
|
|
- date_invoice : self.formatDate(invoice.date_invoice),
|
|
|
- vencimiento: self.formatDate(item.date_maturity),
|
|
|
- company_id_name : item.company_id[1],
|
|
|
- montoletras : number.num2word(((item.debit * rate.rate)-(lineReconcile.credit *rate.rate))),
|
|
|
- partner_name : partner.name,
|
|
|
- street_res : partner.street,
|
|
|
- ruc_res : partner.ruc,
|
|
|
- phone_res : partner.phone,
|
|
|
- mobile_res : partner.mobile,
|
|
|
- credit : (lineReconcile.credit * rate.rate),
|
|
|
- debit : (item.debit * rate.rate),
|
|
|
- company_id : item.company_id[0],
|
|
|
- currency_simbol:rate.simbol,
|
|
|
- currecy_name : rate.currency_name,
|
|
|
- page : i+1+"/"+self.moveLine.length
|
|
|
+ self.pagare.push({
|
|
|
+ number: invoice.number,
|
|
|
+ pagar: accounting.formatNumber(item.amount_residual_currency, 2, ".", ","),
|
|
|
+ date_invoice: self.formatDate(invoice.date_invoice),
|
|
|
+ vencimiento: self.formatDate(item.date_maturity),
|
|
|
+ company_id_name: item.company_id[1],
|
|
|
+ montoletras: number.num2word(item.amount_residual_currency),
|
|
|
+ partner_name: partner.name,
|
|
|
+ street_res: partner.street,
|
|
|
+ ruc_res: partner.ruc,
|
|
|
+ phone_res: partner.phone,
|
|
|
+ mobile_res: partner.mobile,
|
|
|
+ credit: (lineReconcile.credit * rate.rate),
|
|
|
+ debit: (item.debit * rate.rate),
|
|
|
+ company_id: item.company_id[0],
|
|
|
+ currency_simbol: rate.simbol,
|
|
|
+ currecy_name: rate.currency_name,
|
|
|
+ page: i+1+"/"+self.moveLine.length
|
|
|
});
|
|
|
|
|
|
}
|
|
|
self.drawPDF();
|
|
|
},
|
|
|
- formatDate: function(date){
|
|
|
- var fechaSel =date.split('-');
|
|
|
+ formatDate: function(date) {
|
|
|
+ var fechaSel = date.split('-');
|
|
|
return (fechaSel[2]+"/"+fechaSel[1]+"/"+fechaSel[0]);
|
|
|
},
|
|
|
// Get Reconile parcial
|
|
|
- getLineReconcile: function(id){
|
|
|
- return _.filter(this.moveLineReconcile, function(item){return item.reconcile_partial_id[0] === id}).shift();
|
|
|
+ getLineReconcile: function(id) {
|
|
|
+ return _.filter(this.moveLineReconcile, function(item) {
|
|
|
+ return item.reconcile_partial_id[0] === id
|
|
|
+ }).shift();
|
|
|
},
|
|
|
// Get rate
|
|
|
- getRate: function(id){
|
|
|
+ getRate: function(id) {
|
|
|
var rate;
|
|
|
- _.each(_.filter(this.currencyRate, function(item){return item.currency_id[0] === id}), function(item){
|
|
|
- rate={};
|
|
|
- rate.rate=item.rate;
|
|
|
+ _.each(_.filter(this.currencyRate, function(item){
|
|
|
+ return item.currency_id[0] === id
|
|
|
+ }), function(item){
|
|
|
+ rate = {};
|
|
|
+ rate.rate = item.rate;
|
|
|
rate.currency_id = item.currency_id[0];
|
|
|
- rate.currency_simbol= item.currency_id[1];
|
|
|
- if (item.currency_id[1] == 'PYG'){
|
|
|
- rate.simbol='Gs';
|
|
|
- rate.currency_name='Guaraníes';
|
|
|
+ rate.currency_simbol = item.currency_id[1];
|
|
|
+ if (item.currency_id[1] === 'PYG') {
|
|
|
+ rate.simbol = 'Gs';
|
|
|
+ rate.currency_name = 'Guaraníes';
|
|
|
}
|
|
|
- if (item.currency_id[1] == 'USD'){
|
|
|
- rate.simbol="$";
|
|
|
- rate.currency_name='Dolares';
|
|
|
+ if (item.currency_id[1] === 'USD') {
|
|
|
+ rate.simbol = "$";
|
|
|
+ rate.currency_name = 'Dolares';
|
|
|
}
|
|
|
-
|
|
|
});
|
|
|
return rate;
|
|
|
},
|
|
|
// Generar impresion
|
|
|
- drawPDF: function(){
|
|
|
+ drawPDF: function() {
|
|
|
var item;
|
|
|
- var self =this;
|
|
|
+ var self = this;
|
|
|
var pdfDoc = new jsPDF();
|
|
|
|
|
|
for (var i = 0; i < self.pagare.length; i++) {
|
|
|
item=self.pagare[i];
|
|
|
- if (i > 0){
|
|
|
+ if (i > 0) {
|
|
|
pdfDoc.addPage();
|
|
|
}
|
|
|
- _.each(self.doc, function(doc){
|
|
|
- var texto =_.template(doc.content)(item);
|
|
|
+ _.each(self.doc, function(doc) {
|
|
|
+ var texto = _.template(doc.content)(item);
|
|
|
pdfDoc.setFontSize(doc.size);
|
|
|
pdfDoc.setFontStyle(doc.fontStyle);
|
|
|
pdfDoc.text(doc.x, doc.y, pdfDoc.splitTextToSize(texto, 180), null, null, doc.position);
|
|
@@ -239,27 +252,24 @@
|
|
|
self.deletObjet();
|
|
|
},
|
|
|
// Limpiar los Obejto
|
|
|
- deletObjet:function(){
|
|
|
- var self=this;
|
|
|
- self.accountInvoice=[];
|
|
|
- self.moveLine=[];
|
|
|
- self.currencyRate=[];
|
|
|
- self.resPartner=[];
|
|
|
- self.moveLineReconcile=[];
|
|
|
- self.pagare =[];
|
|
|
- self.doc =[];
|
|
|
+ deletObjet:function() {
|
|
|
+ var self = this;
|
|
|
+ self.accountInvoice = [];
|
|
|
+ self.moveLine = [];
|
|
|
+ self.currencyRate = [];
|
|
|
+ self.resPartner = [];
|
|
|
+ self.moveLineReconcile = [];
|
|
|
+ self.pagare = [];
|
|
|
+ self.doc = [];
|
|
|
},
|
|
|
});
|
|
|
|
|
|
if(openerp.web && openerp.web.FormView) {
|
|
|
openerp.web.FormView.include({
|
|
|
- load_form: function(){
|
|
|
+ load_form: function() {
|
|
|
if (this.model === 'account.move.line') {
|
|
|
var padre = this.$el.closest('.oe_notebook_page');
|
|
|
var hijo = padre.find('.oe_form_group.table-bordered');
|
|
|
-
|
|
|
- // var id =openerp.webclient._current_state.id;
|
|
|
-
|
|
|
if (hijo) {
|
|
|
var moveprint = new openerp.edit_move_line.MovePrintWidget(this);
|
|
|
moveprint.insertBefore(hijo);
|