80 lines
3.8 KiB
Python
Executable File
80 lines
3.8 KiB
Python
Executable File
from odoo import models, fields, api
|
|
|
|
class SOS_prf(models.Model):
|
|
_name = 'sos_prf'
|
|
_description = 'Purchase Requisition Form'
|
|
_rec_name = 'prf_no'
|
|
_order = 'id desc'
|
|
|
|
prf_no = fields.Char(string="PRF No", readonly= True, required= True, default=lambda self: self._generate_id())
|
|
prf_date = fields.Date(string="PRF Date", required=True, default=fields.Date.today)
|
|
line_ids = fields.One2many('sos_prf_lines', 'ref_id', string="PRF Lines",copy=True)
|
|
requested_by_name = fields.Many2one('res.users', string='Requested by')
|
|
requested_by_image = fields.Image(related="requested_by_name.signature_image",string='Requested by Sign',readonly=True)
|
|
requested_on = fields.Datetime(string="Requested On")
|
|
dept_in_charge_name = fields.Many2one('res.users', string='Department In-Charge')
|
|
dept_in_charge_image = fields.Image(related="dept_in_charge_name.signature_image",string='Department In-Charge Sign',readonly=True)
|
|
dept_in_charge_approved_on = fields.Datetime(string="Approved On")
|
|
top_management_name = fields.Many2one('res.users', string='Top Management Approver')
|
|
top_management_approval_image = fields.Image(related="top_management_name.signature_image",string='Top Management Approval',readonly=True)
|
|
top_management_approved_on = fields.Datetime(string="Approved On")
|
|
status = fields.Selection([('open', 'Open'),('close', 'Closed')], default='open' , string="Status")
|
|
|
|
def action_top_esign_btn(self):
|
|
sequence_util = self.env['sos_common_scripts']
|
|
subject = f"PRF Approved - {self.prf_no}"
|
|
body_html = f"""
|
|
<p>Below <b>PRF</b> got approved</p>
|
|
"""
|
|
sequence_util.send_direct_email(self.env,"sos_prf",self.id,"praveenkumar.m@sosaley.com",subject,body_html)
|
|
sequence_util.action_assign_signature(
|
|
self,
|
|
'top_management_name',
|
|
'top_management_approved_on',
|
|
'sos_inventory.sos_management_user'
|
|
)
|
|
def action_dept_esign_btn(self):
|
|
# Email part
|
|
body_html = f"""
|
|
<p>Below <b>PRF</b> is waiting for your Approval</p>
|
|
"""
|
|
sequence_util = self.env['sos_common_scripts']
|
|
subject = f"PRF Approval Request - {self.prf_no}"
|
|
sequence_util.send_direct_email(self.env,"sos_prf",self.id,"ramachandran.r@sosaley.com",subject,body_html)
|
|
# Email part ends
|
|
sequence_util.action_assign_signature(
|
|
self,
|
|
'dept_in_charge_name',
|
|
'dept_in_charge_approved_on',
|
|
'sos_inventory.sos_scg_group_manager'
|
|
)
|
|
def action_stores_esign_btn(self):
|
|
# Email part
|
|
body_html = f"""
|
|
<p>Below <b>PRF</b> is waiting for your Approval</p>
|
|
"""
|
|
sequence_util = self.env['sos_common_scripts']
|
|
sequence_util.send_group_email(self.env,'sos_prf',self.id,"deenalaura.m@sosaley.in","PRF Approval Request",body_html,'sos_inventory.sos_scg_group_manager')
|
|
# Email part ends
|
|
sequence_util.action_assign_signature(
|
|
self,
|
|
'requested_by_name',
|
|
'requested_on',
|
|
'sos_inventory.sos_scg_group_user'
|
|
)
|
|
def _generate_id(self):
|
|
sequence_util = self.env['sos_common_scripts']
|
|
return sequence_util.generate_sequence('sos_prf','PRF', 'prf_no')
|
|
|
|
class SOS_prf_Lines(models.Model):
|
|
_name = 'sos_prf_lines'
|
|
_description = 'Purchase Requisition Form Lines'
|
|
|
|
ref_id = fields.Many2one('sos_prf', string="PRF", ondelete="cascade")
|
|
com_type = fields.Selection([('exits', 'In-stock'),('new', 'New')], string="Availability", default='exits')
|
|
component_id = fields.Many2one('sos_material', string="Material Name")
|
|
new_component_id = fields.Char(string="New Part No")
|
|
qty = fields.Integer(string="Required Qty")
|
|
req_date = fields.Date(string="Required Date")
|
|
mon_ref_no = fields.Many2one('sos_mon',string="MON Ref No")
|