[IMP] website_sale_aplicoop: automate non-weekly group order cycles

One-time, biweekly and monthly group orders now follow the same cron
confirmation flow as weekly ones (confirm sale orders + batch pickings
when the cycle cutoff passes):

- Biweekly/monthly keep the cutoff_day/pickup_day weekday scheme on a
  recurrence grid anchored at start_date (creation date as fallback):
  cutoffs advance +14 days / +1 month snapped to cutoff_day, with
  catch-up after cron downtime. Previously they behaved as weekly.
- One-time orders (specials/promotions) are driven by end_date
  (cutoff_date = end_date); once passed, the cron confirms, batches
  and closes the group order.
- end_date keeps its "empty = permanent" meaning for recurring orders.
- Website draft-cart lookup window is now period-aware instead of
  assuming a 6-day weekly cycle.
- New cron tests for once/biweekly/monthly cycles; i18n es/eu updated.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
GitHub Copilot 2026-07-15 14:14:03 +02:00
parent d8cd83bdaf
commit aba22fd230
8 changed files with 510 additions and 74 deletions

View file

@ -663,26 +663,39 @@ msgstr "Día en que las compras se detienen"
#. module: website_sale_aplicoop
#: model:ir.model.fields,help:website_sale_aplicoop.field_group_order__cutoff_day
msgid ""
"Day when purchases stop and the consumer group order is locked for this "
"week."
"Day when purchases stop and the consumer group order is locked for the "
"current cycle."
msgstr ""
"Día en que se detienen las compras y el pedido del grupo de consumidores se "
"bloquea para esta semana."
"Día en que se detienen las compras y el pedido de grupo se bloquea para el "
"ciclo actual."
#. module: website_sale_aplicoop
#: model:ir.model.fields,help:website_sale_aplicoop.field_group_order__start_date
msgid "Day when the consumer group order opens for purchases"
msgstr "Día en que el pedido del grupo de consumidores se abre para compras"
msgid ""
"Day when the consumer group order opens for purchases. For biweekly and "
"monthly orders it also anchors the recurrence: cycles advance every 14 days "
"/ 1 month from the first cutoff day after this date."
msgstr ""
"Día en que el pedido de grupo se abre para compras. En pedidos quincenales y"
" mensuales también ancla la recurrencia: los ciclos avanzan cada 14 días / 1"
" mes desde el primer día de corte posterior a esta fecha."
#. module: website_sale_aplicoop
#: model_terms:ir.ui.view,arch_db:website_sale_aplicoop.view_group_order_form
msgid "Day when the order closes (empty = permanent)"
msgstr "Día en que el pedido se cierra (vacío = permanente)"
msgid ""
"Day when the order closes (empty = permanent). One-time orders are confirmed"
" and closed once it has passed"
msgstr ""
"Día en que se cierra el pedido (vacío = permanente). Los pedidos puntuales "
"se confirman y cierran una vez pasada la fecha"
#. module: website_sale_aplicoop
#: model_terms:ir.ui.view,arch_db:website_sale_aplicoop.view_group_order_form
msgid "Day when the order opens for purchases"
msgstr "Día en que el pedido se abre para compras"
msgid ""
"Day when the order opens for purchases (anchors biweekly/monthly cycles)"
msgstr ""
"Día en que el pedido se abre para compras (ancla los ciclos "
"quincenales/mensuales)"
#. module: website_sale_aplicoop
#: model_terms:ir.ui.view,arch_db:website_sale_aplicoop.eskaera_shop_products
@ -1120,8 +1133,16 @@ msgstr "Si está marcado, algunos mensajes tienen un error de entrega."
#. module: website_sale_aplicoop
#: model:ir.model.fields,help:website_sale_aplicoop.field_group_order__end_date
msgid "If empty, the consumer group order is permanent"
msgstr "Si está vacío, el pedido del grupo de consumidores es permanente"
msgid ""
"Recurring orders (weekly, biweekly, monthly): if empty, the consumer group "
"order is permanent. One-time orders: this date closes the single cycle; once"
" it has passed, the cron confirms the linked sale orders and closes the "
"order."
msgstr ""
"Pedidos recurrentes (semanal, quincenal, mensual): si está vacía, el pedido "
"de grupo es permanente. Pedidos puntuales: esta fecha cierra el ciclo único;"
" una vez pasada, el cron confirma los pedidos de venta vinculados y cierra "
"el pedido."
#. module: website_sale_aplicoop
#: model:ir.model.fields,field_description:website_sale_aplicoop.field_group_order__image