diff --git a/odex25_purchase/purchase_requisition_custom/models/__init__.py b/odex25_purchase/purchase_requisition_custom/models/__init__.py old mode 100644 new mode 100755 index bde2f64cf..5d433a372 --- a/odex25_purchase/purchase_requisition_custom/models/__init__.py +++ b/odex25_purchase/purchase_requisition_custom/models/__init__.py @@ -6,4 +6,4 @@ from . import budget_confirmation from . import purchase_requisition_custom from . import purchase_order from . import res_partner -from . import res_settings +from . import res_settings,mail_compose_message diff --git a/odex25_purchase/purchase_requisition_custom/models/mail_compose_message.py b/odex25_purchase/purchase_requisition_custom/models/mail_compose_message.py new file mode 100644 index 000000000..690cf6ea3 --- /dev/null +++ b/odex25_purchase/purchase_requisition_custom/models/mail_compose_message.py @@ -0,0 +1,19 @@ +from odoo import _, api, fields, models, tools + + +class MailComposer(models.TransientModel): + _inherit = 'mail.compose.message' + + def send_mail(self, auto_commit=False): + res = super(MailComposer, self).send_mail(auto_commit=auto_commit) + context = self._context + if self.model == 'purchase.order': + x = self.env['purchase.order'].search([ + ('id', 'in', context.get('active_ids')), + ]) + print(x.is_purchase_budget, 'is_purchase_budget') + self.env['purchase.order'].search([ + ('id', 'in', context.get('active_ids')), + ]).write({'state': 'sent'}) + + return res diff --git a/odex25_purchase/purchase_requisition_custom/models/purchase_order.py b/odex25_purchase/purchase_requisition_custom/models/purchase_order.py index a6ce91f78..1161753c6 100644 --- a/odex25_purchase/purchase_requisition_custom/models/purchase_order.py +++ b/odex25_purchase/purchase_requisition_custom/models/purchase_order.py @@ -31,7 +31,7 @@ class PurchaseOrderCustom(models.Model): ('done', 'Locked'), ('cancel', 'Cancelled'), ('budget_rejected', 'Rejected By Budget'), - ('wait_for_send', 'Waiting For Send to Budget')]) + ('wait_for_send', 'Waiting For Send to Budget')],default='wait') department_id = fields.Many2one('hr.department') purpose = fields.Char() category_ids = fields.Many2many('product.category', string='Categories') @@ -254,6 +254,17 @@ class PurchaseOrderCustom(models.Model): else: rec.is_purchase_budget = False + @api.model + def default_get(self, fields): + res = super(PurchaseOrderCustom, self).default_get(fields) + purchase_budget = self.env.company.purchase_budget + if purchase_budget: + res['is_purchase_budget'] = True + + else: + res['is_purchase_budget'] = False + return res + @api.model def create(self, vals): requisition_id = vals.get('requisition_id', False) @@ -263,10 +274,6 @@ class PurchaseOrderCustom(models.Model): if requisition_id: vals['send_to_budget'] = True - else: - if self.env.company.purchase_budget: - vals['state'] = 'wait_for_send' - return super(PurchaseOrderCustom, self).create(vals) def button_approve(self): 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 afa6a1058..c420f9ec1 100644 --- a/odex25_purchase/purchase_requisition_custom/views/purchase_requisition_custom.xml +++ b/odex25_purchase/purchase_requisition_custom/views/purchase_requisition_custom.xml @@ -113,9 +113,10 @@ 'cancel','budget_rejected','wait_for_send','waiting']), ('is_signed', '=', True)]}" string="Sign"/>