You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

50 lines
1.6 KiB

# -*- coding: utf-8 -*-
from openerp import models, api, fields
class PurchaseOrder(models.Model):
_inherit = "purchase.order"
manual_date_planned = fields.Datetime(
string="Scheduled Date", required=True
)
def init(self,cr):
cr.execute(
"""
UPDATE purchase_order
SET manual_date_planned = (SELECT date_planned
FROM purchase_order_line
WHERE purchase_order_line.order_id = purchase_order.id
AND purchase_order_line.date_planned IS NOT NULL
LIMIT 1)
"""
)
cr.execute(
"""
ALTER TABLE purchase_order ALTER COLUMN manual_date_planned SET NOT NULL
"""
)
@api.onchange("order_line", "order_line.date_planned")
def _on_change_manual_date_planned(self):
"""
Since we don't see the date planned on the line anymore
give an idea of the user by setting the first date planned of the lines
"""
for line in self.order_line:
if line.date_planned and not self.manual_date_planned:
self.manual_date_planned = line.date_planned
break
@api.multi
def button_confirm(self):
"""
Since we hide the button to set the date planned on all line and we
hide them, we call the method to set the date planned on the line at the confirmation
"""
self.ensure_one()
self.with_context(
date_planned=self.manual_date_planned
).action_set_date_planned()
return super(PurchaseOrder, self).button_confirm()