widget.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. function pos_customize_product_pack_widget(instance, module){
  2. var QWeb = instance.web.qweb;
  3. _t = instance.web._t;
  4. module.PosWidget.include({
  5. build_widgets: function() {
  6. var self = this;
  7. this._super();
  8. this.pack_popup = new module.PackPopUp(this,{});
  9. this.pack_popup.appendTo(this.$el);
  10. this.pack_popup.hide();
  11. this.screen_selector.popup_set['PackList'] = this.pack_popup;
  12. var kitchen_ticket_button = $(QWeb.render('PackModalButton'));
  13. kitchen_ticket_button.appendTo(this.$('.control-buttons'));
  14. this.$('.control-buttons').removeClass('oe_hidden');
  15. this.$('.order-pack-modal').click(function(){
  16. var check = self.pos.get('selectedOrder').selected_orderline;
  17. if(check != undefined){
  18. if(check.product.pack_line_ids.length > 0){
  19. self.pos_widget.screen_selector.show_popup('PackList');
  20. $('#floor-cancel').click(function(){
  21. self.pos_widget.screen_selector.set_current_screen('products');
  22. });
  23. }
  24. }
  25. });
  26. }
  27. });
  28. module.PackPopUp = module.PopUpWidget.extend({
  29. template:'PackPopupWidget',
  30. start: function(){
  31. this._super();
  32. var self = this;
  33. this.floor_list_widget = new module.PackListScreenWidget(this,{});
  34. },
  35. show: function(){
  36. this._super();
  37. var self = this;
  38. this.floor_list_widget.replace($('.placeholder-PackListScreenWidget'));
  39. },
  40. });
  41. module.PackListScreenWidget = module.ScreenWidget.extend({
  42. template:'PackListScreenWidget',
  43. init: function(parent, options) {
  44. this._super(parent,options);
  45. },
  46. start: function() {
  47. this._super();
  48. var self = this;
  49. },
  50. renderElement: function() {
  51. this._super();
  52. var self = this;
  53. var product = self.pos.get('selectedOrder').selected_orderline.product;
  54. var product_pack = product.pack_line_ids;
  55. var pack_lines = this.pos.product_pack_lines || [];
  56. for(var i = 0; i < product_pack.length; i++ ){
  57. var product = _.filter(pack_lines,function (inv) {
  58. return inv.id === product_pack[i];
  59. });
  60. var data = [];
  61. data.push({
  62. id: product[0].id,
  63. name: product[0].product_id[1],
  64. });
  65. data = data.shift();
  66. var product = new module.PackListWidget(this, {
  67. model_floor: data,
  68. });
  69. product.appendTo(this.$('.product_list'));
  70. }
  71. },
  72. }),
  73. module.PackListWidget = module.PosBaseWidget.extend({
  74. template: 'PackListWidget',
  75. init: function(parent, options){
  76. this._super(parent, options);
  77. this.model_floor = options.model_floor;
  78. },
  79. renderElement: function(){
  80. var self = this;
  81. this._super();
  82. }
  83. });
  84. };