Skip to content
Extraits de code Groupes Projets
Valider 2244ff30 rédigé par Juliana's avatar Juliana
Parcourir les fichiers

Pb calcul today slot

parent 34367d6c
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
"application": False, "application": False,
"installable": True, "installable": True,
"depends": [ "depends": [
"website", "website_sale", "website_sale_delivery" "website", "website_sale", "website_sale_delivery", "product_pack"
], ],
"data": [ "data": [
'security/ir.model.access.csv', 'security/ir.model.access.csv',
......
...@@ -78,7 +78,7 @@ class VracoopPointRetrait(models.Model): ...@@ -78,7 +78,7 @@ class VracoopPointRetrait(models.Model):
('dimanche', 6, 0, 'dim.'), ('dimanche', 6, 0, 'dim.'),
] ]
for rec in self: for rec in self:
my_datetime = datetime.today() today_datetime = datetime.today()
return_slot_list = [] return_slot_list = []
vals = [] vals = []
exclure_days_nb = rec.vracoop_retrait_time_ids.search_count([ exclure_days_nb = rec.vracoop_retrait_time_ids.search_count([
...@@ -113,7 +113,6 @@ class VracoopPointRetrait(models.Model): ...@@ -113,7 +113,6 @@ class VracoopPointRetrait(models.Model):
minute = time_available_week.strftime("%M") minute = time_available_week.strftime("%M")
interval = int(hour)*60 + int(minute) interval = int(hour)*60 + int(minute)
if week.day == my_datetime.day:
first_morning_hour_week = datetime( first_morning_hour_week = datetime(
week.year, week.month, week.day) + timedelta( week.year, week.month, week.day) + timedelta(
hours=corresponding_line.first_morning_heure) hours=corresponding_line.first_morning_heure)
...@@ -126,48 +125,7 @@ class VracoopPointRetrait(models.Model): ...@@ -126,48 +125,7 @@ class VracoopPointRetrait(models.Model):
last_noon_hour_week = datetime( last_noon_hour_week = datetime(
week.year, week.month, week.day) + timedelta( week.year, week.month, week.day) + timedelta(
hours=corresponding_line.last_noon_heure) hours=corresponding_line.last_noon_heure)
today_hour_available = my_datetime + timedelta(
hours=corresponding_line.preparation_time)
if (today_hour_available > first_morning_hour_week) and (today_hour_available < last_morning_hour_week):
dtstart_morning = today_hour_available
dtstart_noon = first_noon_hour_week
elif (today_hour_available > first_noon_hour_week) and (today_hour_available < last_noon_hour_week):
dtstart_morning = today_hour_available
dtstart_noon = today_hour_available
elif (today_hour_available > last_morning_hour_week) and (today_hour_available < first_noon_hour_week):
dtstart_morning = today_hour_available
dtstart_noon = first_noon_hour_week
else:
dtstart_morning = today_hour_available
dtstart_noon = today_hour_available
list_slot_per_day_morning = list(
rrule(
MINUTELY,
interval=interval,
byweekday=byweekday,
dtstart=dtstart_morning,
until=last_morning_hour_week))
list_slot_per_day_noon = list(
rrule(
MINUTELY,
interval=interval,
byweekday=byweekday,
dtstart=dtstart_noon,
until=last_noon_hour_week))
else:
first_morning_hour_week = datetime(
week.year, week.month, week.day) + timedelta(
hours=corresponding_line.first_morning_heure)
last_morning_hour_week = datetime(
week.year, week.month, week.day) + timedelta(
hours=corresponding_line.last_morning_heure)
first_noon_hour_week = datetime(
week.year, week.month, week.day) + timedelta(
hours=corresponding_line.first_noon_heure)
last_noon_hour_week = datetime(
week.year, week.month, week.day) + timedelta(
hours=corresponding_line.last_noon_heure)
list_slot_per_day_morning = list( list_slot_per_day_morning = list(
rrule( rrule(
MINUTELY, MINUTELY,
...@@ -183,12 +141,24 @@ class VracoopPointRetrait(models.Model): ...@@ -183,12 +141,24 @@ class VracoopPointRetrait(models.Model):
until=last_noon_hour_week)) until=last_noon_hour_week))
slots = [] slots = []
nb_sale_slot = 0 nb_sale_slot = 0
for slot_per_day_morning in list_slot_per_day_morning:
first_slot = slot_per_day_morning.strftime("%H:%M")
slot_per_day_morning = slot_per_day_morning + timedelta(
hours=corresponding_line.availability_time)
last_slot = slot_per_day_morning.strftime("%H:%M")
today_hour_available = today_datetime + timedelta(
hours=corresponding_line.preparation_time)
for slot_elem in list_slot_per_day_morning:
first_slot = slot_elem.strftime("%H:%M")
slot_elem_last = slot_elem + timedelta(
hours=corresponding_line.availability_time)
last_slot = slot_elem_last.strftime("%H:%M")
if slot_elem.date() == today_datetime.date():
if (today_hour_available > slot_elem_last):
continue
if slot_elem_last >= last_morning_hour_week:
slot_elem_last = last_morning_hour_week
last_slot = slot_elem_last.strftime("%H:%M")
if slot_elem >= last_morning_hour_week:
continue
# Check number of maximum withdrawal not reached
first_slot_hour = first_slot.split(":") first_slot_hour = first_slot.split(":")
first_slot_float = float( first_slot_float = float(
'%s.%s' % (first_slot_hour[0], first_slot_hour[1])) '%s.%s' % (first_slot_hour[0], first_slot_hour[1]))
...@@ -199,13 +169,20 @@ class VracoopPointRetrait(models.Model): ...@@ -199,13 +169,20 @@ class VracoopPointRetrait(models.Model):
if nb_sale_slot < rec.nb_max_retrait: if nb_sale_slot < rec.nb_max_retrait:
slots.append((first_slot, last_slot)) slots.append((first_slot, last_slot))
nb_sale_slot = 0 for slot_elem in list_slot_per_day_noon:
for slot_per_day_noon in list_slot_per_day_noon: first_slot = slot_elem.strftime("%H:%M")
first_slot = slot_per_day_noon.strftime("%H:%M") slot_elem_last = slot_elem + timedelta(
slot_per_day_noon = slot_per_day_noon + timedelta(
hours=corresponding_line.availability_time) hours=corresponding_line.availability_time)
last_slot = slot_per_day_noon.strftime("%H:%M") last_slot = slot_elem_last.strftime("%H:%M")
if week.date() == today_datetime.date():
if (today_hour_available > slot_elem_last):
continue
if slot_elem_last >= last_noon_hour_week:
slot_elem_last = last_noon_hour_week
last_slot = slot_elem_last.strftime("%H:%M")
if slot_elem >= last_noon_hour_week:
continue
# Check number of maximum withdrawal not reached
first_slot_hour = first_slot.split(":") first_slot_hour = first_slot.split(":")
first_slot_float = float( first_slot_float = float(
'%s.%s' % (first_slot_hour[0], first_slot_hour[1])) '%s.%s' % (first_slot_hour[0], first_slot_hour[1]))
......
...@@ -54,7 +54,6 @@ odoo.define('vracoop_click_and_collect.vracoop_retrait', function (require) { ...@@ -54,7 +54,6 @@ odoo.define('vracoop_click_and_collect.vracoop_retrait', function (require) {
var _onDayClick = function(ev) { var _onDayClick = function(ev) {
var day_retrait = $(ev.currentTarget).val(); var day_retrait = $(ev.currentTarget).val();
console.log(day_retrait);
var values = {'day_retrait': day_retrait}; var values = {'day_retrait': day_retrait};
dp.add(ajax.jsonRpc('/shop/update_retrait', 'call', values)) dp.add(ajax.jsonRpc('/shop/update_retrait', 'call', values))
.then(_onDayUpdateAnswer); .then(_onDayUpdateAnswer);
...@@ -80,7 +79,6 @@ odoo.define('vracoop_click_and_collect.vracoop_retrait', function (require) { ...@@ -80,7 +79,6 @@ odoo.define('vracoop_click_and_collect.vracoop_retrait', function (require) {
var _onHourClick = function(ev) { var _onHourClick = function(ev) {
var hour_retrait = $(ev.currentTarget).val(); var hour_retrait = $(ev.currentTarget).val();
var values = {'hour_retrait': hour_retrait}; var values = {'hour_retrait': hour_retrait};
console.log(values);
dp.add(ajax.jsonRpc('/shop/update_retrait', 'call', values)) dp.add(ajax.jsonRpc('/shop/update_retrait', 'call', values))
.then(_onHourUpdateAnswer); .then(_onHourUpdateAnswer);
}; };
...@@ -118,4 +116,8 @@ odoo.define('vracoop_click_and_collect.vracoop_retrait', function (require) { ...@@ -118,4 +116,8 @@ odoo.define('vracoop_click_and_collect.vracoop_retrait', function (require) {
var $carriers = $("#delivery_carrier input[name='delivery_type']"); var $carriers = $("#delivery_carrier input[name='delivery_type']");
$carriers.click(_onCarrierClick2); $carriers.click(_onCarrierClick2);
if ($carriers.length > 0) {
$carriers.filter(':checked').click();
}
}); });
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
<t t-foreach="list_slots" t-as="slot"> <t t-foreach="list_slots" t-as="slot">
<t t-if="slot_first"> <t t-if="slot_first">
<li class="nav-item carousel-item col-12 col-sm-6 col-md-4 col-lg-3 active"> <li class="nav-item carousel-item col-12 col-sm-6 col-md-4 col-lg-3 active">
<a data-toggle="tab" class="nav-link active btn btn-primary" t-attf-href='##{slot[1].strftime("%A")}#{point_retrait.id}'> <a data-toggle="tab" class="nav-link active btn btn-primary" t-attf-href='##{slot[1].strftime("%A")}-#{slot[1].day}-#{point_retrait.id}'>
<label class=" label_radio_button" role="radio"> <label class=" label_radio_button" role="radio">
<input t-attf-id='#{slot[1].day}-#{slot[1].month}-#{point_retrait.id}' name="day_select d-none" type="radio" class="radio_hide" t-attf-value='#{slot[1].day}-#{slot[1].month}-#{point_retrait.id}'/> <input t-attf-id='#{slot[1].day}-#{slot[1].month}-#{point_retrait.id}' name="day_select d-none" type="radio" class="radio_hide" t-attf-value='#{slot[1].day}-#{slot[1].month}-#{point_retrait.id}'/>
<span class="span_radio_button"> <span class="span_radio_button">
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
</t> </t>
<t t-else=""> <t t-else="">
<li class="nav-item carousel-item col-12 col-sm-6 col-md-4 col-lg-3"> <li class="nav-item carousel-item col-12 col-sm-6 col-md-4 col-lg-3">
<a data-toggle="tab" class="nav-link btn btn-primary" t-attf-href='##{slot[1].strftime("%A")}#{point_retrait.id}'> <a data-toggle="tab" class="nav-link btn btn-primary" t-attf-href='##{slot[1].strftime("%A")}-#{slot[1].day}-#{point_retrait.id}'>
<label class=" label_radio_button" role="radio"> <label class=" label_radio_button" role="radio">
<input t-attf-id='#{slot[1].day}-#{slot[1].month}-#{point_retrait.id}' name="day_select" type="radio" class="radio_hide d-none" t-attf-value='#{slot[1].day}-#{slot[1].month}-#{point_retrait.id}' /> <input t-attf-id='#{slot[1].day}-#{slot[1].month}-#{point_retrait.id}' name="day_select" type="radio" class="radio_hide d-none" t-attf-value='#{slot[1].day}-#{slot[1].month}-#{point_retrait.id}' />
<span class="span_radio_button"> <span class="span_radio_button">
...@@ -71,7 +71,7 @@ ...@@ -71,7 +71,7 @@
<div class="tab-content"> <div class="tab-content">
<t t-foreach="list_slots" t-as="slot"> <t t-foreach="list_slots" t-as="slot">
<t t-if="slot_first"> <t t-if="slot_first">
<div class="container tab-pane active" t-attf-id='#{slot[1].strftime("%A")}#{point_retrait.id}'> <div class="container tab-pane active" t-attf-id='#{slot[1].strftime("%A")}-#{slot[1].day}-#{point_retrait.id}'>
<t t-foreach="slot[3]" t-as="slot_by_day"> <t t-foreach="slot[3]" t-as="slot_by_day">
<label class="label_radio_button" role="radio"> <label class="label_radio_button" role="radio">
<input name="hour_select" type="radio" class="radio_hide" t-attf-value="#{slot[1].day}-#{slot[1].month}-#{slot_by_day[0]}-#{point_retrait.id}" t-attf-id="#{slot_by_day_index}"/> <input name="hour_select" type="radio" class="radio_hide" t-attf-value="#{slot[1].day}-#{slot[1].month}-#{slot_by_day[0]}-#{point_retrait.id}" t-attf-id="#{slot_by_day_index}"/>
...@@ -84,7 +84,7 @@ ...@@ -84,7 +84,7 @@
</div> </div>
</t> </t>
<t t-else=""> <t t-else="">
<div class="container tab-pane fade" t-attf-id='#{slot[1].strftime("%A")}#{point_retrait.id}'> <div class="container tab-pane fade" t-attf-id='#{slot[1].strftime("%A")}-#{slot[1].day}-#{point_retrait.id}'>
<t t-foreach="slot[3]" t-as="slot_by_day"> <t t-foreach="slot[3]" t-as="slot_by_day">
<label class=" label_radio_button" role="radio"> <label class=" label_radio_button" role="radio">
<input t-attf-id="#{slot_by_day_index}" name="hour_select" type="radio" class="radio_hide" t-attf-value="#{slot[1].day}-#{slot[1].month}-#{slot_by_day[0]}-#{point_retrait.id}"/> <input t-attf-id="#{slot_by_day_index}" name="hour_select" type="radio" class="radio_hide" t-attf-value="#{slot[1].day}-#{slot[1].month}-#{slot_by_day[0]}-#{point_retrait.id}"/>
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter