voucher_today_counters.js 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. function voucher_today_counters (widget) {
  2. "use strict";
  3. var model= openerp;
  4. widget.VoucherTodayCountersWidget = widget.Base.extend({
  5. template: 'VoucherTodayCounters',
  6. accountVoucher: [],
  7. resCompany: [],
  8. currencyRate: [],
  9. init: function (parent) {
  10. this._super(parent, {
  11. width : 3,
  12. height: 2
  13. });
  14. },
  15. start: function () {
  16. var self = this;
  17. self.fetchInitial();
  18. },
  19. fetchInitial: function () {
  20. var self = this;
  21. self.$el.find('#morosidad').block({
  22. message: null,
  23. overlayCSS: {
  24. backgroundColor: '#FAFAFA'
  25. }
  26. });
  27. self.$el.find('.widget-content.widget-loading').css('display','flex');
  28. self.fetchAccountVoucher().then(function (accountVoucher) {
  29. return accountVoucher;
  30. }).then(function (accountVoucher) {
  31. self.accountVoucher = accountVoucher;
  32. console.log(accountVoucher);
  33. return self.fetchResCompany();
  34. }).then(function (resCompany) {
  35. self.resCompany = resCompany;
  36. return self.fetchCurrency();
  37. }).then(function (currencyRate) {
  38. self.currencyRate = currencyRate;
  39. return self.fetchVoucherCurrency();
  40. });
  41. },
  42. // Account Voucher
  43. fetchAccountVoucher: function () {
  44. var self = this;
  45. var defer = $.Deferred();
  46. // var fecha = new Date();
  47. // var hoy = fecha.getFullYear() + "-" + (fecha.getMonth() + 1) + "-" + fecha.getDate();
  48. var hoy =moment().format('YYYY-MM-DD');
  49. var fields = ['id', 'amount', 'currency_id', 'payment_rate_currency_id'];
  50. var domain = [['state', '=', 'posted'], ['type', '=', 'receipt'], ['date', '=', hoy]];
  51. var accountVoucher = new model.web.Model('account.voucher');
  52. accountVoucher.query(fields).filter(domain).all().then(function (results) {
  53. defer.resolve(results);
  54. });
  55. return defer;
  56. },
  57. //Comapnia
  58. fetchResCompany: function () {
  59. var self = this;
  60. var defer = $.Deferred();
  61. var fields =['id','name', 'currency_id','logo'];
  62. var domain =[['id', '=', 1]];
  63. var resCompany = new model.web.Model('res.company');
  64. resCompany.query(fields).filter(domain).all().then(function (results) {
  65. defer.resolve(results);
  66. });
  67. return defer;
  68. },
  69. // Buscar Cambio de Monedas USD,PYG,ARG,BRL
  70. fetchCurrency: function () {
  71. var defer = $.Deferred();
  72. var currency_Rate = new model.web.Model('res.currency.rate');
  73. var fields = ['id', 'name', 'currency_id', 'rate', 'create_date'];
  74. var domain = [['currency_id', '=', [166 , 20, 7, 3]]];
  75. currency_Rate.query(fields).filter(domain).all().then(function (results) {
  76. defer.resolve(results);
  77. });
  78. return defer;
  79. },
  80. // voucherCurrencyRate
  81. fetchVoucherCurrency: function () {
  82. var self = this;
  83. var newVoucher=[];
  84. var itemvoucher;
  85. var itemCurrencyRate;
  86. for (var i = 0; i < self.accountVoucher.length; i++) {
  87. itemvoucher = self.accountVoucher[i];
  88. itemCurrencyRate = self.getCutrrencyRate(itemvoucher.currency_id[0]);
  89. // itemCurrencyRate = self.getCutrrencyRate(itemvoucher.payment_rate_currency_id[0]);
  90. if(!itemCurrencyRate){
  91. itemCurrencyRate={};
  92. itemCurrencyRate.rate=1;
  93. }
  94. newVoucher.push({ amount : itemvoucher.amount,
  95. amount_rate : (itemvoucher.amount/itemCurrencyRate.rate)
  96. });
  97. }
  98. self.fetchReduceMoveLine(newVoucher)
  99. },
  100. getCutrrencyRate: function (currency_id) {
  101. var self = this;
  102. return _.filter(self.currencyRate,function (item) {
  103. return item.currency_id[0] == currency_id
  104. }).shift();
  105. },
  106. // // Reduce Move line
  107. fetchReduceMoveLine: function (newVoucher) {
  108. var self = this;
  109. var residual =0;
  110. var company = _.map(self.resCompany, function (map) {
  111. return map.currency_id[1];
  112. });
  113. if (newVoucher.length > 0) {
  114. residual = _.reduce(_.map(newVoucher, function (map) {
  115. return map.amount_rate;
  116. }), function (memo, num) {
  117. return memo + num;
  118. });
  119. }
  120. self.$el.find('.widget-content.widget-loading').css('display','none');
  121. self.$el.find('.widget-content').find('a').text(accounting.formatNumber(residual, 2, ".", ","));
  122. self.$el.find('.widget-footer').find('span').text("Monto en "+ company);
  123. self.$el.find('#morosidad').unblock();
  124. },
  125. });
  126. }