1
0
forked from Mapan/odoo17e
odoo17e-kedaikipas58/addons/sale_renting_sign/wizard/rental_sign.py
2024-12-10 09:04:09 +07:00

48 lines
1.8 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import api, fields, models
class RentalSign(models.TransientModel):
_name = "rental.sign.wizard"
_description = "Sign Documents from a SO"
@api.model
def default_get(self, fields):
res = super(RentalSign, self).default_get(fields)
if 'template_id' in fields:
company = self.env['sale.order'].browse(res.get('order_id')).company_id or self.env.company
default_template = company.rental_sign_tmpl_id
# if document not properly accessible by all employees, avoid access error
try:
default_template.check_access_rule("read")
res["template_id"] = company.rental_sign_tmpl_id.id
except:
pass
return res
template_id = fields.Many2one(
"sign.template", "Document Template", required=True, ondelete="cascade"
)
order_id = fields.Many2one(
"sale.order", "Sales Order", required=True, ondelete="cascade",
default=lambda s: s.env.context.get("active_id", None),
)
def next_step(self):
pending_sign_request = self.order_id.sign_request_ids.filtered(
lambda request: request.template_id == self.template_id
and request.state == "sent"
)
if pending_sign_request:
return pending_sign_request.go_to_document()
else:
action = self.env['ir.actions.act_window']._for_xml_id('sign.action_sign_send_request')
action["context"] = {
"active_id": self.template_id.id,
"sign_directly_without_mail": True,
"default_sale_order_id": self.order_id.id,
"default_signer_id": self.order_id.partner_id.id
}
return action