diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py
index 8cb4f126411..66777e9ea45 100644
--- a/addons/purchase/purchase.py
+++ b/addons/purchase/purchase.py
@@ -88,6 +88,12 @@ class PurchaseOrder(models.Model):
order.picking_ids = pickings
order.picking_count = len(pickings)
+ @api.depends('picking_ids', 'picking_ids.state')
+ def _compute_is_shipped(self):
+ for order in self:
+ if order.picking_ids and all([x.state == 'done' for x in order.picking_ids]):
+ order.is_shipped = True
+
READONLY_STATES = {
'purchase': [('readonly', True)],
'done': [('readonly', True)],
@@ -113,7 +119,7 @@ class PurchaseOrder(models.Model):
currency_id = fields.Many2one('res.currency', 'Currency', required=True, states=READONLY_STATES,\
default=lambda self: self.env.user.company_id.currency_id.id)
state = fields.Selection([
- ('draft', 'Draft PO'),
+ ('draft', 'RFQ'),
('sent', 'RFQ Sent'),
('to approve', 'To Approve'),
('purchase', 'Purchase Order'),
@@ -153,6 +159,7 @@ class PurchaseOrder(models.Model):
default_location_dest_id_usage = fields.Selection(related='picking_type_id.default_location_dest_id.usage', string='Destination Location Type',\
help="Technical field used to display the Drop Ship Address", readonly=True)
group_id = fields.Many2one('procurement.group', string="Procurement Group")
+ is_shipped = fields.Boolean(compute="_compute_is_shipped")
@api.model
def name_search(self, name, args=None, operator='ilike', limit=100):
diff --git a/addons/purchase/purchase_view.xml b/addons/purchase/purchase_view.xml
index 84be9bc2ecb..4f18ba56bc1 100644
--- a/addons/purchase/purchase_view.xml
+++ b/addons/purchase/purchase_view.xml
@@ -165,12 +165,12 @@
-
+
-
+
+