Zum Inhalt springen
Menü
Sie müssen registriert sein, um mit der Community zu interagieren.
Diese Frage wurde gekennzeichnet
2 Antworten
988 Ansichten

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 


Avatar
Verwerfen
Beste Antwort

Thank you!

Avatar
Verwerfen
Beste Antwort

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

Avatar
Verwerfen
Verknüpfte Beiträge Antworten Ansichten Aktivität
0
Nov. 24
1026
1
Feb. 24
1388
1
Okt. 16
4514
1
Juni 25
481
1
Juni 25
523