|
@@ -5,12 +5,12 @@ function expired_account_counters_now (widget) {
|
|
var Qweb = openerp.web.qweb;
|
|
var Qweb = openerp.web.qweb;
|
|
|
|
|
|
widget.ExpiredAccountCountersNowWidget = widget.Base.extend({
|
|
widget.ExpiredAccountCountersNowWidget = widget.Base.extend({
|
|
- template: 'ExpiredAccountCountersNow',
|
|
|
|
- resPartner : [],
|
|
|
|
|
|
+ template : 'ExpiredAccountCountersNow',
|
|
moveLine : [],
|
|
moveLine : [],
|
|
resCompany : [],
|
|
resCompany : [],
|
|
- resCompany :[],
|
|
|
|
- modelId:[],
|
|
|
|
|
|
+ resCompany : [],
|
|
|
|
+ modelId : [],
|
|
|
|
+ accountInvoice : [],
|
|
|
|
|
|
events: {
|
|
events: {
|
|
'click a': 'showCustomers',
|
|
'click a': 'showCustomers',
|
|
@@ -36,17 +36,18 @@ function expired_account_counters_now (widget) {
|
|
});
|
|
});
|
|
self.$el.find('.widget-content.widget-loading').css('display','flex');
|
|
self.$el.find('.widget-content.widget-loading').css('display','flex');
|
|
|
|
|
|
- self.fetchPartner().then(function(resPartner){
|
|
|
|
- return resPartner;
|
|
|
|
- }).then(function(resPartner){
|
|
|
|
- self.resPartner = resPartner;
|
|
|
|
- return self.fetchMoveLine(resPartner);
|
|
|
|
|
|
+ self.fetchMoveLine().then(function(moveLine){
|
|
|
|
+ return moveLine;
|
|
}).then(function(moveLine){
|
|
}).then(function(moveLine){
|
|
self.moveLine= moveLine;
|
|
self.moveLine= moveLine;
|
|
|
|
+ // console.log(moveLine);
|
|
|
|
+ return self.fetchInvoice(moveLine);
|
|
|
|
+ }).then(function(accountInvoice){
|
|
|
|
+ self.accountInvoice = accountInvoice
|
|
return self.fetchResCompany();
|
|
return self.fetchResCompany();
|
|
}).then(function(resCompany){
|
|
}).then(function(resCompany){
|
|
self.resCompany=resCompany;
|
|
self.resCompany=resCompany;
|
|
- return self.fetchResCurrecy(resCompany);
|
|
|
|
|
|
+ return self.fetchResCurrecy();
|
|
}).then(function(resCurrecy){
|
|
}).then(function(resCurrecy){
|
|
self.resCurrecy= resCurrecy;
|
|
self.resCurrecy= resCurrecy;
|
|
return self.fetchGetModelId();
|
|
return self.fetchGetModelId();
|
|
@@ -65,37 +66,38 @@ function expired_account_counters_now (widget) {
|
|
this.alive(getObtjectReference('account', 'invoice_form')).then(function(results){
|
|
this.alive(getObtjectReference('account', 'invoice_form')).then(function(results){
|
|
defer.resolve(results);
|
|
defer.resolve(results);
|
|
});
|
|
});
|
|
- return defer;
|
|
|
|
- },
|
|
|
|
- // Partner
|
|
|
|
- fetchPartner: function () {
|
|
|
|
- var self = this;
|
|
|
|
- var defer = $.Deferred();
|
|
|
|
- var fields =['id', 'name', 'unreconciled_aml_ids', 'credit'];
|
|
|
|
- var domain =[['active', '=', true], ['credit', '>', 0]];
|
|
|
|
- var resPartner = new model.web.Model('res.partner');
|
|
|
|
-
|
|
|
|
- resPartner.query(fields).filter(domain).all().then(function (results) {
|
|
|
|
- defer.resolve(results);
|
|
|
|
- });
|
|
|
|
|
|
|
|
return defer;
|
|
return defer;
|
|
},
|
|
},
|
|
// Move line
|
|
// Move line
|
|
- fetchMoveLine: function (partner) {
|
|
|
|
|
|
+ fetchMoveLine: function () {
|
|
var self = this;
|
|
var self = this;
|
|
var hoy =moment().format('YYYY-MM-DD');
|
|
var hoy =moment().format('YYYY-MM-DD');
|
|
var defer = $.Deferred();
|
|
var defer = $.Deferred();
|
|
- var move_id = _.flatten(_.map(partner, function (map) {
|
|
|
|
- return map.unreconciled_aml_ids
|
|
|
|
- }));
|
|
|
|
- var field = ['id', 'partner_id', 'amount_residual', 'credit', 'debit', 'date_maturity', 'invoice','ref'];
|
|
|
|
- var domain = [['credit', '<=', 0], ['id', 'in', move_id], ['date_maturity', '=', hoy]];
|
|
|
|
|
|
+ var field = ['id', 'partner_id', 'amount_residual', 'credit', 'debit', 'date_maturity', 'invoice','ref', 'invoice', 'amount_residual_currency', 'currency_id'];
|
|
|
|
+ var domain = [['credit', '<=', 0], ['date_maturity', '=', hoy]];
|
|
var moveLine = new model.web.Model('account.move.line');
|
|
var moveLine = new model.web.Model('account.move.line');
|
|
|
|
|
|
moveLine.query(field).filter(domain).all().then(function (results) {
|
|
moveLine.query(field).filter(domain).all().then(function (results) {
|
|
defer.resolve(results);
|
|
defer.resolve(results);
|
|
});
|
|
});
|
|
|
|
+
|
|
|
|
+ return defer;
|
|
|
|
+ },
|
|
|
|
+ // invoice
|
|
|
|
+ fetchInvoice: function(moveline){
|
|
|
|
+ var self = this ;
|
|
|
|
+ var defer = $.Deferred()
|
|
|
|
+ var ref = _.map(moveline, function(map) {
|
|
|
|
+ return map.invoice[0];
|
|
|
|
+ });
|
|
|
|
+ var fields = ['id', 'currency_id', 'number', 'currency_id'];
|
|
|
|
+ var domain = [['id', 'in', ref]];
|
|
|
|
+ var accountInvoice = new model.web.Model('account.invoice');
|
|
|
|
+ accountInvoice.query(fields).filter(domain).all().then(function(results) {
|
|
|
|
+ defer.resolve(results);
|
|
|
|
+ });
|
|
|
|
+
|
|
return defer;
|
|
return defer;
|
|
},
|
|
},
|
|
//Comapnia
|
|
//Comapnia
|
|
@@ -109,53 +111,75 @@ function expired_account_counters_now (widget) {
|
|
resComapy.query(fields).filter(domain).all().then(function (results) {
|
|
resComapy.query(fields).filter(domain).all().then(function (results) {
|
|
defer.resolve(results);
|
|
defer.resolve(results);
|
|
});
|
|
});
|
|
|
|
+
|
|
return defer ;
|
|
return defer ;
|
|
} ,
|
|
} ,
|
|
// Res currecy
|
|
// Res currecy
|
|
- fetchResCurrecy : function(company){
|
|
|
|
|
|
+ fetchResCurrecy : function(){
|
|
var self = this;
|
|
var self = this;
|
|
var defer = $.Deferred();
|
|
var defer = $.Deferred();
|
|
-
|
|
|
|
- var id_curency = _.flatten(_.map(company,function(map){
|
|
|
|
- return map.currency_id[0];
|
|
|
|
- }));
|
|
|
|
-
|
|
|
|
- var fields =['id','name', 'symbol'];
|
|
|
|
- var domain =[['id','in',id_curency]];
|
|
|
|
|
|
+ var fields =['id','name', 'symbol', 'rate_silent', 'base', 'decimal_separator', 'decimal_places', 'thousands_separator', 'symbol_position'];
|
|
|
|
+ var domain =[['active','=', true]];
|
|
var resCurrecy = new model.web.Model('res.currency');
|
|
var resCurrecy = new model.web.Model('res.currency');
|
|
|
|
|
|
resCurrecy.query(fields).filter(domain).all().then(function(results){
|
|
resCurrecy.query(fields).filter(domain).all().then(function(results){
|
|
defer.resolve(results);
|
|
defer.resolve(results);
|
|
});
|
|
});
|
|
|
|
+
|
|
return defer;
|
|
return defer;
|
|
},
|
|
},
|
|
// Reduce Move line
|
|
// Reduce Move line
|
|
fetchReduceMoveLine: function () {
|
|
fetchReduceMoveLine: function () {
|
|
var self = this;
|
|
var self = this;
|
|
|
|
+ var newmoveLine = [];
|
|
|
|
+ var inteMove;
|
|
var residual =0;
|
|
var residual =0;
|
|
- var moneda =self.resCurrecy.shift();
|
|
|
|
- var company = _.map(self.resCompany, function(map){
|
|
|
|
- return map.currency_id[1];
|
|
|
|
- });
|
|
|
|
|
|
+ var currencyInvoice;
|
|
|
|
+ var company = self.resCompany.shift();
|
|
|
|
+ var currencyBase = self.getCurrency(company.currency_id[0]).shift();
|
|
|
|
|
|
- if (self.moveLine.length > 0){
|
|
|
|
- residual = _.reduce(_.map(self.moveLine, function(map){
|
|
|
|
- return map.amount_residual;
|
|
|
|
- }),function(memo, num){
|
|
|
|
- return memo + num;
|
|
|
|
|
|
+ for (var i = 0; i < self.moveLine.length; i++) {
|
|
|
|
+ inteMove = self.moveLine[i];
|
|
|
|
+
|
|
|
|
+ currencyInvoice = self.getInvoiceCurrency(inteMove.invoice[0]).shift();
|
|
|
|
+
|
|
|
|
+ if(!currencyInvoice){
|
|
|
|
+ currencyInvoice = {};
|
|
|
|
+ currencyInvoice.rate=currencyBase.rate_silent;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ newmoveLine.push({
|
|
|
|
+ amount_residual : inteMove.amount_residual,
|
|
|
|
+ amount_residual_currency :(inteMove.amount_residual_currency * (currencyBase.rate_silent / currencyInvoice.rate_silent))
|
|
});
|
|
});
|
|
}
|
|
}
|
|
|
|
|
|
- if (moneda.id !=166){
|
|
|
|
- residual= accounting.formatNumber(residual,2, ".", ",");
|
|
|
|
- }else{
|
|
|
|
- residual= accounting.formatNumber(residual,",", ".");
|
|
|
|
|
|
+ if (newmoveLine.length > 0){
|
|
|
|
+ residual = _.reduce(_.map(newmoveLine, function (map) {
|
|
|
|
+ return map.amount_residual_currency;
|
|
|
|
+ }), function (memo, num) {
|
|
|
|
+ return memo + num;
|
|
|
|
+ });
|
|
}
|
|
}
|
|
|
|
|
|
self.$el.find('.widget-content.widget-loading').css('display','none');
|
|
self.$el.find('.widget-content.widget-loading').css('display','none');
|
|
- self.$el.find('.widget-content').find('a').text(residual).append(' <small>'+moneda.symbol+'</small>');
|
|
|
|
- // self.$el.find('.widget-footer').find('span').text("Monto en " + company);
|
|
|
|
- self.$el.find('#morosidad').unblock()
|
|
|
|
|
|
+ self.$el.find('.widget-content').find('a').text(accounting.formatMoney(residual, currencyBase.symbol, currencyBase.decimal_places, currencyBase.thousands_separator, currencyBase.decimal_separator));
|
|
|
|
+ self.$el.find('#morosidad').unblock();
|
|
|
|
+ },
|
|
|
|
+ // Obtener moneda
|
|
|
|
+ getCurrency: function (id) {
|
|
|
|
+ var self = this;
|
|
|
|
+ return _.filter(self.resCurrecy,function (item) {
|
|
|
|
+ return item.id === id;
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ // Moneda de la factura
|
|
|
|
+ getInvoiceCurrency: function(id){
|
|
|
|
+ var self = this;
|
|
|
|
+ var currency_invoice = _.filter(self.accountInvoice, function(filter) {
|
|
|
|
+ return filter.id === id;
|
|
|
|
+ }).shift();
|
|
|
|
+ return self.getCurrency(currency_invoice.currency_id[0]);
|
|
},
|
|
},
|
|
showCustomers: function (e) {
|
|
showCustomers: function (e) {
|
|
var self = this;
|
|
var self = this;
|
|
@@ -195,7 +219,7 @@ function expired_account_counters_now (widget) {
|
|
});
|
|
});
|
|
|
|
|
|
$('.openerp_webclient_container').after(modal);
|
|
$('.openerp_webclient_container').after(modal);
|
|
- $('.expired-account-modal').modal()
|
|
|
|
|
|
+ $('.expired-account-modal').modal();
|
|
$('.expired-account-modal').on('hidden.bs.modal', function (e) {
|
|
$('.expired-account-modal').on('hidden.bs.modal', function (e) {
|
|
self.removeModal(e);
|
|
self.removeModal(e);
|
|
})
|
|
})
|
|
@@ -210,19 +234,15 @@ function expired_account_counters_now (widget) {
|
|
},
|
|
},
|
|
// Remover <Modal></Modal>
|
|
// Remover <Modal></Modal>
|
|
removeModal: function (e) {
|
|
removeModal: function (e) {
|
|
- $('.expired-account-modal').remove()
|
|
|
|
- $('.modal-backdrop').remove()
|
|
|
|
|
|
+ $('.expired-account-modal').remove();
|
|
|
|
+ $('.modal-backdrop').remove();
|
|
},
|
|
},
|
|
// Llamar form
|
|
// Llamar form
|
|
renderForm: function(id){
|
|
renderForm: function(id){
|
|
var self= this;
|
|
var self= this;
|
|
-
|
|
|
|
- id = parseInt(id)
|
|
|
|
-
|
|
|
|
- // if (!id) return
|
|
|
|
|
|
+ id = parseInt(id);
|
|
|
|
|
|
this.do_action({
|
|
this.do_action({
|
|
- // name : "factura",
|
|
|
|
type : "ir.actions.act_window",
|
|
type : "ir.actions.act_window",
|
|
res_model : "account.invoice",
|
|
res_model : "account.invoice",
|
|
views : [[self.modelId[1], 'form']],
|
|
views : [[self.modelId[1], 'form']],
|