使用代码自动生成电子签约合同 - xiaohao0576/odoo-doc GitHub Wiki

# 获取附件的ID

attachment_id = env.context.get("attachment_id", 0)
attachment = env['ir.attachment'].browse(attachment_id)

if not attachment:
    raise UserError('Can not find attachment')

# 创建sign.template
sign_template = env['sign.template'].create({'name':'sing-test-001'})

# 创建sign.document
sign_document = env['sign.document'].create({'attachment_id': attachment_id, 'template_id': sign_template.id})

# 创建 sing.item.role, 如果要做分享链接,只能有一个签署方

role_A = env['sign.item.role'].create({'name':'Party-A'})

# 创建sign.items
sign_item_01 = env['sign.item'].create({
    'document_id':  sign_document.id,
    'responsible_id':         role_A.id,
    'type_id':      1,              # Signature
    'page':         4,
    'posX':         0.81,
    'posY':         0.77,
    'width':        0.16,
    'height':       0.04,
    'alignment':    'left'
})

sign_request = sign_template.open_shared_sign_request()
sign_request_share = env['sign.request.share'].browse(sign_request['res_id'])

action = {
    'share_link': sign_request_share.share_link
}