expired_account_counters_now.js 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. function expired_account_counters_now (widget) {
  2. "use strict";
  3. var model= openerp;
  4. widget.ExpiredAccountCountersNowWidget = widget.Base.extend({
  5. template: 'ExpiredAccountCountersNow',
  6. // data : [],
  7. resPartner : [],
  8. moveLine : [],
  9. resCompany : [],
  10. init: function (parent) {
  11. this._super(parent, {
  12. width : 3,
  13. height: 2
  14. });
  15. },
  16. start: function () {
  17. var self = this;
  18. self.fecthInitial();
  19. },
  20. fecthInitial:function(){
  21. var self = this;
  22. self.$el.find('#morosidad').block({ message: null, overlayCSS: { backgroundColor: '#FAFAFA' }});
  23. self.$el.find('.widget-content.widget-loading').css('display','flex');
  24. self.fecthPartner().then(function(resPartner){
  25. return resPartner;
  26. }).then(function(resPartner){
  27. self.resPartner = resPartner;
  28. return self.fecthMoveLine(resPartner);
  29. }).then(function(moveLine){
  30. self.moveLine= moveLine;
  31. return self.fecthResComapny();
  32. }).then(function(resCompany){
  33. self.resCompany=resCompany;
  34. return self.fecthReduceMoveLine();
  35. });
  36. return false;
  37. },
  38. // Partner
  39. fecthPartner(){
  40. var self = this;
  41. var defer = $.Deferred();
  42. var fields =['id', 'name', 'unreconciled_aml_ids', 'credit'];
  43. var domain =[['active', '=', true], ['credit', '>', 0]];
  44. var resPartner = new model.web.Model('res.partner');
  45. resPartner.query(fields).filter(domain).all().then(function(results){
  46. defer.resolve(results);
  47. });
  48. return defer;
  49. },
  50. // Move line
  51. fecthMoveLine(partner){
  52. var self = this;
  53. var fecha = new Date();
  54. var hoy = (fecha.getFullYear()+"-"+(fecha.getMonth()+1)+"-"+fecha.getDate());
  55. var defer = $.Deferred();
  56. var move_id =_.flatten( _.map(partner, function(map){return map.unreconciled_aml_ids}));
  57. var field =['id', 'partner_id', 'amount_residual', 'credit', 'debit', 'date_maturity'];
  58. var domain=[['credit', '<=', 0],['id', '=', move_id],['date_maturity', '=', hoy]];
  59. var moveLine = new model.web.Model('account.move.line');
  60. moveLine.query(field).filter(domain).all().then(function(results){
  61. defer.resolve(results);
  62. });
  63. return defer;
  64. },
  65. //Comapnia
  66. fecthResComapny: function(){
  67. var self = this;
  68. var defer = $.Deferred();
  69. var fields =['id','name', 'currency_id','logo'];
  70. var domain =[['id', '=', 1]];
  71. var resComapy = new model.web.Model('res.company');
  72. resComapy.query(fields).filter(domain).all().then(function(results){
  73. defer.resolve(results);
  74. });
  75. return defer ;
  76. } ,
  77. // Reduce Move line
  78. fecthReduceMoveLine(){
  79. var self = this;
  80. var residual =0;
  81. var company = _.map(self.resCompany, function(map){return map.currency_id[1]});
  82. if (self.moveLine.length > 0){
  83. residual = _.reduce(_.map(self.moveLine, function(map){return map.amount_residual}),function(memo, num){return memo + num});
  84. }
  85. self.$el.find('#morosidad').unblock()
  86. self.$el.find('.widget-content.widget-loading').css('display','none');
  87. self.$el.find('.widget-content').find('a').text(accounting.formatNumber(residual,2, ".", ","));
  88. self.$el.find('.widget-footer').find('span').text("Monto en "+company);
  89. },
  90. });
  91. }