expired_account_counters.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. function expired_account_counters (widget) {
  2. "use strict";
  3. var model = openerp;
  4. widget.ExpiredAccountCountersWidget = widget.Base.extend({
  5. template: 'ExpiredAccountCounters',
  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.fetchInitial();
  19. },
  20. fetchInitial: function(){
  21. var self = this;
  22. self.$el.find('.grid-stack-item-content dashboard').block({
  23. message: null,
  24. overlayCSS: {
  25. backgroundColor: '#FAFAFA'
  26. }
  27. });
  28. self.$el.find('.widget-content.widget-loading').css('display','flex');
  29. self.fetchPartner().then(function (resPartner){
  30. return resPartner;
  31. }).then(function (resPartner){
  32. self.resPartner = resPartner;
  33. return self.fetchMoveLine(resPartner);
  34. }).then(function (moveLine){
  35. self.moveLine = moveLine;
  36. return self.fetchResCompany();
  37. }).then(function (resCompany){
  38. self.resCompany = resCompany;
  39. return self.fetchReduceMoveLine();
  40. });
  41. },
  42. // Partner
  43. fetchPartner: function () {
  44. var self = this;
  45. var defer = $.Deferred();
  46. var fields =['id', 'name', 'unreconciled_aml_ids', 'credit'];
  47. var domain =[['active', '=', true], ['credit', '>', 0]];
  48. var resPartner = new model.web.Model('res.partner');
  49. resPartner.query(fields).filter(domain).all().then(function (results){
  50. defer.resolve(results);
  51. });
  52. return defer;
  53. },
  54. // Move line
  55. fetchMoveLine: function (partner){
  56. var self = this;
  57. // var fecha = new Date();
  58. // var hoy = (fecha.getFullYear() + "-" + (fecha.getMonth() + 1) + "-" + fecha.getDate());
  59. var hoy =moment().format('YYYY-MM-DD');
  60. var defer = $.Deferred();
  61. var move_id = _.flatten(_.map(partner, function (map) {
  62. return map.unreconciled_aml_ids
  63. }));
  64. var field =['id', 'partner_id', 'amount_residual', 'credit', 'debit', 'date_maturity'];
  65. var domain=[['credit', '<=', 0],['id', '=', move_id],['date_maturity', '<', hoy]];
  66. var moveLine = new model.web.Model('account.move.line');
  67. moveLine.query(field).filter(domain).all().then(function(results){
  68. defer.resolve(results);
  69. });
  70. return defer;
  71. },
  72. //Comapnia
  73. fetchResCompany: function(){
  74. var self = this;
  75. var defer = $.Deferred();
  76. var fields =['id','name', 'currency_id', 'logo'];
  77. var domain =[['id', '=', 1]];
  78. var resCompany = new model.web.Model('res.company');
  79. resCompany.query(fields).filter(domain).all().then(function (results) {
  80. defer.resolve(results);
  81. });
  82. return defer;
  83. },
  84. // Reduce Move line
  85. fetchReduceMoveLine: function () {
  86. var self = this;
  87. var residual =0;
  88. var company = _.map(self.resCompany, function (map) {
  89. return map.currency_id[1]
  90. });
  91. if (self.moveLine.length > 0){
  92. residual = _.reduce(_.map(self.moveLine, function (map) {
  93. return map.amount_residual;
  94. }), function (memo, num) {
  95. return memo + num;
  96. });
  97. }
  98. self.$el.find('.widget-content.widget-loading').css('display','none');
  99. self.$el.find('.widget-content').find('a').text(accounting.formatNumber(residual,2, ".", ","));
  100. self.$el.find('.widget-footer').find('span').text("Monto en " + company);
  101. self.$el.find('.grid-stack-item-content dashboard').unblock();
  102. }
  103. });
  104. }