You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

94 lines
3.4 KiB

  1. odoo.define('beescoop.pos', function (require) {
  2. "use strict";
  3. var module = require("point_of_sale.screens");
  4. var Model = require('web.DataModel');
  5. var set_customer_info = function(el_class, value, prefix) {
  6. var el = this.$(el_class);
  7. el.empty();
  8. if (prefix && value) {
  9. value = prefix + value
  10. }
  11. if (value) {
  12. el.append(value);
  13. }
  14. }
  15. module.ReceiptScreenWidget = module.ReceiptScreenWidget.include({
  16. send : function() {
  17. var self = this;
  18. var loaded = new $.Deferred();
  19. var order = this.pos.get_order().name;
  20. var records = new Model('pos.order').call('send_order', [order], {}, { shadow: false, timeout: 10000});
  21. records.then(function(result){
  22. var el = self.$('.message-send')
  23. el.empty();
  24. el.append('<h2>' + result + '</h2>');
  25. },function(err){
  26. loaded.reject(err);
  27. });
  28. },
  29. renderElement: function() {
  30. var self = this;
  31. this._super();
  32. this.$('.button.send').click(function(){
  33. if (!self._locked) {
  34. self.send();
  35. }
  36. });
  37. },
  38. show: function(){
  39. this._super();
  40. var self = this;
  41. this.$('.message-send').empty();
  42. },
  43. })
  44. module.ActionpadWidget = module.ActionpadWidget.include({
  45. renderElement : function() {
  46. var self = this;
  47. var loaded = new $.Deferred();
  48. this._super();
  49. if (!this.pos.get_client()) {
  50. return
  51. }
  52. var customer_id = this.pos.get_client().id;
  53. var res = new Model('res.partner').call('get_balance_and_eater',
  54. [ customer_id ], undefined, { shadow: true, timeout: 1000});
  55. res.then(function(result) {
  56. set_customer_info.call(self, '.customer-balance', result[0])
  57. set_customer_info.call(self, '.customer-delegate1', result[1], 'Eater 1: ');
  58. set_customer_info.call(self, '.customer-delegate2', result[2], 'Eater 2: ');
  59. }, function(err) {
  60. loaded.reject(err);
  61. });
  62. },
  63. });
  64. module.PaymentScreenWidget.include({
  65. render_customer_info : function() {
  66. var self = this;
  67. var loaded = new $.Deferred();
  68. if (!this.pos.get_client()) {
  69. return
  70. }
  71. var customer_id = this.pos.get_client().id;
  72. var res = new Model('res.partner').call('get_balance_and_eater', [ customer_id ], undefined, { shadow: true, timeout: 1000});
  73. res.then(function(result) {
  74. set_customer_info.call(self, '.customer-name', self.pos.get_client().name);
  75. set_customer_info.call(self, '.customer-balance', result[0]);
  76. set_customer_info.call(self, '.customer-delegate1', result[1], 'Eater 1: ');
  77. set_customer_info.call(self, '.customer-delegate2', result[2], 'Eater 2: ');
  78. }, function(err) {
  79. loaded.reject(err);
  80. });
  81. },
  82. renderElement : function() {
  83. this._super();
  84. this.render_customer_info();
  85. },
  86. customer_changed : function() {
  87. this._super();
  88. this.render_customer_info();
  89. },
  90. });
  91. });