123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- function expired_account_counters (widget) {
- "use strict";
- var model = openerp;
- widget.ExpiredAccountCountersWidget = widget.Base.extend({
- template: 'ExpiredAccountCounters',
- resPartner : [],
- moveLine : [],
- resCompany : [],
- resCurrecy :[],
- events: {
- 'click a': 'showCustomers',
- 'click h2': 'showCustomers',
- },
- init: function (parent) {
- this._super(parent, {
- width : 3,
- height: 2
- });
- },
- start: function () {
- var self = this;
- self.fetchInitial();
- },
- fetchInitial: function(){
- var self = this;
- self.$el.find('.grid-stack-item-content dashboard').block({
- message: null,
- overlayCSS: {
- backgroundColor: '#FAFAFA'
- }
- });
- 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);
- }).then(function (moveLine){
- self.moveLine = moveLine;
- return self.fetchResCompany();
- }).then(function (resCompany){
- self.resCompany = resCompany;
- return self.fetchResCurrecy(resCompany);
- }).then(function (resCurrecy){
- self.resCurrecy = resCurrecy;
- return self.fetchReduceMoveLine();
- });
- },
- // 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;
- },
- // Move line
- fetchMoveLine: function (partner){
- var self = this;
- var hoy =moment().format('YYYY-MM-DD');
- 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', 'in', 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
- fetchResCompany: function(){
- var self = this;
- var defer = $.Deferred();
- var fields =['id','name', 'currency_id', 'logo'];
- var domain =[['id', '=', 1]];
- var resCompany = new model.web.Model('res.company');
- resCompany.query(fields).filter(domain).all().then(function (results) {
- defer.resolve(results);
- });
- return defer;
- },
- // Res currecy
- fetchResCurrecy : function(company){
- var self = this;
- var defer = $.Deferred();
- var id_curency = _.flatten(_.map(company,function(map){
- return map.currency_id[0];
- }));
- var fields =['id','name', 'symbol'];
- var domain =[['id','=',id_curency]];
- var resCurrecy = new model.web.Model('res.currency');
- resCurrecy.query(fields).filter(domain).all().then(function(results){
- defer.resolve(results);
- });
- return defer;
- },
- // Reduce Move line
- fetchReduceMoveLine: function () {
- var self = this;
- var residual =0;
- var company = _.map(self.resCompany, function (map) {
- return map.currency_id[1]
- });
- var moneda = self.resCurrecy.shift();
- if (self.moveLine.length > 0){
- residual = _.reduce(_.map(self.moveLine, function (map) {
- return map.amount_residual;
- }), function (memo, num) {
- return memo + num;
- });
- }
- if (moneda.id != 166){
- residual=accounting.formatNumber(residual,2, ".", ",");
- }else {
- residual=accounting.formatNumber(residual, ",", ".");
- }
- 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('.grid-stack-item-content dashboard').unblock();
- },
- showCustomers: function (e) {
- var self = this;
- var hoy =moment().format('YYYY-MM-DD');
- var move_id = _.flatten(_.map(self.moveLine, function (map) {
- return map.id;
- }));
- this.do_action({
- name:"Listado de clientes con deudas atrasadas",
- type: 'ir.actions.act_window',
- res_model: "res.partner",
- views: [[false, 'list']],
- target: 'new',
- domain: [['unreconciled_aml_ids', 'in', move_id]],
- context: {},
- });
- }
- });
- }
|