Skip to Content
Меню
Вам необхідно зареєструватися, щоб взаємодіяти зі спільнотою.
Це запитання позначене
2 Відповіді
1417 Переглядів

Hello,

Is there any way to block any periods in the field SCHEDULED DATE to avoid scheduling a date when we can´t deliver goods, for example during holidays? Or just enable a timeframe, for example Monday to Friday 09-17hrs? 

Thank you,

Mireia 


Аватар
Відмінити
Найкраща відповідь

Thank you!

Аватар
Відмінити
Найкраща відповідь

Hi,


To add validation to the scheduled_date field, you can include the following conditions to restrict delivery scheduling to specific days and times and avoid holidays:


from odoo import api, fields, models, _ 

from odoo.exceptions import ValidationError

from datetime import time


@api.constrains('scheduled_date')

    def _check_scheduled_date(self):

        for picking in self:

            if not picking.scheduled_date:

                continue

            local_date = fields.Datetime.context_timestamp(self, picking.scheduled_date)

            if local_date.weekday() >= 5:

                raise ValidationError(_('Deliveries cannot be scheduled on weekends'))

            if not (time(9, 0) <= local_date.time() <= time(17, 0)):

                raise ValidationError(_('Deliveries must be scheduled between 9:00 and 17:00'))

            holiday_dates = self.env['resource.calendar.leaves'].search([

                ('date_from', '<=', picking.scheduled_date),

                ('date_to', '>=', picking.scheduled_date)

            ])

            if holiday_dates:

                raise ValidationError(_('Delivery cannot be scheduled on holidays'))


Hope it helps

Аватар
Відмінити
Related Posts Відповіді Переглядів Дія
2
вер. 25
394
0
лист. 24
1489
1
лют. 24
1656
1
жовт. 16
4822
1
серп. 25
1238