odex25_standard/odex25_takaful/odex_takaful/controllers/takaful_api.py

49 lines
1.7 KiB
Python

from odoo import http
from odoo.http import request
class PartnerBankController(http.Controller):
@http.route('/api/create_partner_bank', type='json', auth='user', methods=['POST'], csrf=False)
def create_partner_bank(self, **kwargs):
# In Odoo JSON-RPC with type='json', params are passed as keyword arguments
# Try kwargs first (standard Odoo JSON-RPC behavior)
partner_id = kwargs.get('partner_id')
bank_id = kwargs.get('bank_id')
acc_number = kwargs.get('acc_number')
# Fallback to request.jsonrequest if not in kwargs
# (request.jsonrequest contains params directly in Odoo JSON-RPC)
if not partner_id and request.jsonrequest:
data = request.jsonrequest
partner_id = partner_id or data.get('partner_id')
bank_id = bank_id or data.get('bank_id')
acc_number = acc_number or data.get('acc_number')
if not partner_id:
return {'error': 'partner_id is required'}
if not bank_id:
return {'error': 'bank_id is required'}
if not acc_number:
return {'error': 'acc_number is required'}
partner = request.env['res.partner'].sudo().browse(int(partner_id))
if not partner.exists():
return {'error': 'Partner not found'}
bank = request.env['res.bank'].sudo().browse(int(bank_id))
if not bank.exists():
return {'error': 'Bank not found'}
partner_bank = request.env['res.partner.bank'].sudo().create({
'partner_id': partner.id,
'bank_id': bank.id,
'acc_number': acc_number,
})
return {
'success': True,
'bank_account_id': partner_bank.id
}