跳至内容
菜单
此问题已终结
2 回复
1307 查看

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

形象
丢弃
相关帖文 回复 查看 活动
0
11月 24
1356
1
2月 24
1595
1
10月 16
4743
1
8月 25
1058
1
6月 25
900