49 lines
1.7 KiB
Python
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
|
|
}
|