function expired_account_counters_now (widget) { "use strict"; var model= openerp; widget.ExpiredAccountCountersNowWidget = widget.Base.extend({ template: 'ExpiredAccountCountersNow', // data : [], resPartner : [], moveLine : [], resCompany : [], init: function (parent) { this._super(parent, { width : 3, height: 2 }); }, start: function () { var self = this; self.fecthInitial(); }, fecthInitial:function(){ var self = this; self.$el.find('#morosidad').block({ message: null, overlayCSS: { backgroundColor: '#FAFAFA' }}); self.$el.find('.widget-content.widget-loading').css('display','flex'); self.fecthPartner().then(function(resPartner){ return resPartner; }).then(function(resPartner){ self.resPartner = resPartner; return self.fecthMoveLine(resPartner); }).then(function(moveLine){ self.moveLine= moveLine; return self.fecthResComapny(); }).then(function(resCompany){ self.resCompany=resCompany; return self.fecthReduceMoveLine(); }); return false; }, // Partner fecthPartner(){ 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; }, // Move line fecthMoveLine(partner){ var self = this; var fecha = new Date(); var hoy = (fecha.getFullYear()+"-"+(fecha.getMonth()+1)+"-"+fecha.getDate()); 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']; var domain=[['credit', '<=', 0],['id', '=', move_id],['date_maturity', '=', hoy]]; var moveLine = new model.web.Model('account.move.line'); moveLine.query(field).filter(domain).all().then(function(results){ defer.resolve(results); }); return defer; }, //Comapnia fecthResComapny: function(){ var self = this; var defer = $.Deferred(); var fields =['id','name', 'currency_id','logo']; var domain =[['id', '=', 1]]; var resComapy = new model.web.Model('res.company'); resComapy.query(fields).filter(domain).all().then(function(results){ defer.resolve(results); }); return defer ; } , // Reduce Move line fecthReduceMoveLine(){ var self = this; var residual =0; var company = _.map(self.resCompany, function(map){return map.currency_id[1]}); if (self.moveLine.length > 0){ residual = _.reduce(_.map(self.moveLine, function(map){return map.amount_residual}),function(memo, num){return memo + num}); } self.$el.find('#morosidad').unblock() self.$el.find('.widget-content.widget-loading').css('display','none'); self.$el.find('.widget-content').find('a').text(accounting.formatNumber(residual,2, ".", ",")); self.$el.find('.widget-footer').find('span').text("Monto en "+company); }, }); }