Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
2 Trả lời
1332 Lượt xem

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 


Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

Thank you!

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

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

Ảnh đại diện
Huỷ bỏ
Bài viết liên quan Trả lời Lượt xem Hoạt động
2
thg 9 25
187
0
thg 11 24
1397
1
thg 2 24
1623
1
thg 10 16
4792
1
thg 8 25
1111