diff --git a/odex25_purchase/purchase_requisition_custom/models/purchase_order.py b/odex25_purchase/purchase_requisition_custom/models/purchase_order.py
index 32ff84297..d90c2e142 100644
--- a/odex25_purchase/purchase_requisition_custom/models/purchase_order.py
+++ b/odex25_purchase/purchase_requisition_custom/models/purchase_order.py
@@ -37,7 +37,15 @@ class PurchaseOrderCustom(models.Model):
billed_amount = fields.Float(store=True, compute='_compute_amount')
remaining_amount = fields.Float(store=True, compute='_compute_amount')
+ has_requisition = fields.Boolean(compute="_compute_has_requisition", readonly=True)
+ requisition_state = fields.Selection(related="requisition_id.state")
+
+ @api.depends('requisition_id')
+ def _compute_has_requisition(self):
+ for record in self:
+ record.has_requisition = bool(record.requisition_id)
+
def read(self, records):
return super(PurchaseOrderCustom, self.sudo()).read(records)
@@ -446,8 +454,8 @@ class PurchaseOrderCustom(models.Model):
def action_approve_po(self):
for rec in self:
- if rec.requisition_id and rec.requisition_id.state != 'approve':
- rec.requisition_id.write({'state': 'approve'})
+ # if rec.requisition_id and rec.requisition_id.state != 'approve':
+ # rec.requisition_id.write({'state': 'approve'})
rec.write({'state': 'draft'})
@api.constrains('state')
@@ -465,7 +473,7 @@ class PurchaseOrderCustom(models.Model):
def action_skip_budget(self):
""" Skip purchase budget"""
for po_id in self:
- if po_id.state in ('wait_for_send', 'wait') or po_id.request_id:
+ if po_id.state in ('wait_for_send', 'wait', 'sign') or po_id.request_id:
# Deal with double validation process
valid_amount = self.env.user.company_id.currency_id.compute(
po_id.company_id.po_double_validation_amount, po_id.currency_id)
@@ -592,7 +600,8 @@ class PurchaseOrderCustom(models.Model):
if self.amount_total == 0:
raise ValidationError(_("Total Amount Can't be Zero"))
self.write({'state': 'sign', 'is_signed': True})
- self.requisition_id.state = 'purchase_manager'
+ if self.requisition_id.type_id.exclusive == 'exclusive':
+ self.requisition_id.state = 'purchase_manager'
def button_confirm(self):
for order in self:
@@ -618,8 +627,8 @@ class PurchaseOrderCustom(models.Model):
budget_lines.write({'purchase_remain': amount})
budget_lines.write({'reserve': abs(line.price_subtotal - budget_lines.reserve)})
- if order.requisition_id.id:
- order.requisition_id.state = 'done'
+ # if order.requisition_id.id:
+ # order.requisition_id.state = 'done'
if order.request_id:
order.request_id.write({'state': 'done'})
return True
diff --git a/odex25_purchase/purchase_requisition_custom/models/purchase_requisition_custom.py b/odex25_purchase/purchase_requisition_custom/models/purchase_requisition_custom.py
index ddbd10e1b..e765932a7 100644
--- a/odex25_purchase/purchase_requisition_custom/models/purchase_requisition_custom.py
+++ b/odex25_purchase/purchase_requisition_custom/models/purchase_requisition_custom.py
@@ -45,6 +45,7 @@ class PurchaseRequisitionCustom(models.Model):
])
state = fields.Selection([
('draft', 'Draft'),
+ ('ongoing', 'Ongoing'),
('in_progress', 'Confirmed'),
('committee', 'Committee'),
('purchase_manager', 'Purchase manager'),
diff --git a/odex25_purchase/purchase_requisition_custom/views/purchase_requisition_custom.xml b/odex25_purchase/purchase_requisition_custom/views/purchase_requisition_custom.xml
index 4fd8d40e4..f6c097cbb 100644
--- a/odex25_purchase/purchase_requisition_custom/views/purchase_requisition_custom.xml
+++ b/odex25_purchase/purchase_requisition_custom/views/purchase_requisition_custom.xml
@@ -115,11 +115,11 @@
icon="fa-file-text-o">
-
-
-
-
-
+
+
+
+
+
@@ -349,7 +351,7 @@
class="oe_highlight"/>
@@ -393,20 +395,20 @@
1
-
+
-
+
+
+ states="draft,in_progress,ongoing" string="Cancel" type="object"/>
{'invisible':[('state','!=','cancel')]}
@@ -427,7 +429,7 @@
1
-
+