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.

143 lines
5.2 KiB

5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
  1. odoo.define('vracoop_click_and_collect.vracoop_retrait', function (require) {
  2. 'use strict';
  3. require('web.dom_ready');
  4. var ajax = require('web.ajax');
  5. var core = require('web.core');
  6. var _t = core._t;
  7. var concurrency = require('web.concurrency');
  8. var dp = new concurrency.DropPrevious();
  9. $('#carousel_1').on('slide.bs.carousel', function (e) {
  10. var $e = $(e.relatedTarget);
  11. var idx = $e.index();
  12. var itemsPerSlide = 5;
  13. var totalItems = $('.carousel-item').length;
  14. if (idx >= totalItems-(itemsPerSlide-1)) {
  15. var it = itemsPerSlide - (totalItems - idx);
  16. for (var i=0; i<it; i++) {
  17. // append slides to end
  18. if (e.direction=="left") {
  19. $('.carousel-item').eq(i).appendTo('.carousel-inner');
  20. }
  21. else {
  22. $('.carousel-item').eq(0).appendTo('.carousel-inner');
  23. }
  24. }
  25. }
  26. });
  27. var $pay_button = $('#o_payment_form_pay');
  28. var _onRetraitUpdateAnswer = function(result) {
  29. var $retrait_badge = $('#point_retrait input[name="point_retrait_type"][value=' + result.vracoop_point_retrait_id + ']');
  30. // var $retrait_bloc = $('#slots_point_retrait_' + result.vracoop_point_retrait_id)
  31. // console.log($retrait_bloc);
  32. if (result.status === true) {
  33. // $retrait_bloc.removeClass('d-none');
  34. $pay_button.data('disabled_reasons').retrait_selection = false;
  35. $pay_button.prop('disabled', _.contains($pay_button.data('disabled_reasons'), true));
  36. }
  37. else {
  38. console.error(result.error_message);
  39. }
  40. };
  41. var _onRetraitClick = function(ev) {
  42. $pay_button.data('disabled_reasons', $pay_button.data('disabled_reasons') || {});
  43. $pay_button.prop('disabled', true);
  44. $pay_button.data('disabled_reasons').retrait_selection = true;
  45. var vracoop_point_retrait_id = $(ev.currentTarget).val();
  46. console.log(vracoop_point_retrait_id);
  47. var values = {'vracoop_point_retrait_id': vracoop_point_retrait_id};
  48. dp.add(ajax.jsonRpc('/shop/update_retrait', 'call', values))
  49. .then(_onRetraitUpdateAnswer);
  50. };
  51. var $retraits = $("#point_retrait input[name='point_retrait_type']");
  52. $retraits.click(_onRetraitClick);
  53. if ($retraits.length > 0) {
  54. $retraits.filter(':checked').click();
  55. }
  56. var _onDayUpdateAnswer = function(result) {
  57. if (result.status === true) {
  58. $pay_button.data('disabled_reasons').day_selection = false;
  59. $pay_button.prop('disabled', _.contains($pay_button.data('disabled_reasons'), true));
  60. }
  61. else {
  62. console.error(result.error_message);
  63. }
  64. };
  65. var _onDayClick = function(ev) {
  66. $pay_button.data('disabled_reasons', $pay_button.data('disabled_reasons') || {});
  67. $pay_button.data('disabled_reasons').day_selection = true;
  68. $pay_button.prop('disabled', true);
  69. var day_retrait = $(ev.currentTarget).val();
  70. console.log(day_retrait);
  71. var values = {'day_retrait': day_retrait};
  72. dp.add(ajax.jsonRpc('/shop/update_retrait', 'call', values))
  73. .then(_onDayUpdateAnswer);
  74. };
  75. var $days = $("#point_retrait input[name='day_select']");
  76. $days.click(_onDayClick);
  77. if ($days.length > 0) {
  78. $days.filter(':checked').click();
  79. }
  80. var _onHourUpdateAnswer = function(result) {
  81. if (result.status === true) {
  82. $pay_button.data('disabled_reasons').hour_selection = false;
  83. $pay_button.prop('disabled', _.contains($pay_button.data('disabled_reasons'), true));
  84. }
  85. else {
  86. console.error(result.error_message);
  87. }
  88. };
  89. var _onHourClick = function(ev) {
  90. $pay_button.data('disabled_reasons', $pay_button.data('disabled_reasons') || {});
  91. $pay_button.data('disabled_reasons').hour_selection = true;
  92. $pay_button.prop('disabled', true);
  93. var hour_retrait = $(ev.currentTarget).val();
  94. var values = {'hour_retrait': hour_retrait};
  95. dp.add(ajax.jsonRpc('/shop/update_retrait', 'call', values))
  96. .then(_onHourUpdateAnswer);
  97. };
  98. var $hours = $("#point_retrait input[name='hour_select']");
  99. $hours.click(_onHourClick);
  100. if ($hours.length > 0) {
  101. $hours.filter(':checked').click();
  102. }
  103. var _onCarrierCheckType = function(result) {
  104. var $carrier_badge = $('#delivery_carrier input[name="delivery_type"][value=' + result.carrier_id + '] ~ .badge.d-none');
  105. var $point_retrait = $('#point_retrait');
  106. if (result.point_retrait === true) {
  107. $point_retrait.removeClass('d-none');
  108. }
  109. else {
  110. $point_retrait.addClass('d-none');
  111. }
  112. };
  113. var _onCarrierClick2 = function(ev) {
  114. var carrier_id = $(ev.currentTarget).val();
  115. var values = {'carrier_id': carrier_id};
  116. dp.add(ajax.jsonRpc('/shop/check_type_carrier', 'call', values))
  117. .then(_onCarrierCheckType);
  118. };
  119. var $carriers = $("#delivery_carrier input[name='delivery_type']");
  120. $carriers.click(_onCarrierClick2);
  121. });