[FIX] odex_takaful
This commit is contained in:
parent
a2e92f184f
commit
b9295d2870
|
|
@ -2,6 +2,8 @@
|
|||
from odoo import models, fields, api, _
|
||||
from odoo.exceptions import UserError, ValidationError, Warning
|
||||
import logging
|
||||
import random
|
||||
import requests
|
||||
from odoo import SUPERUSER_ID
|
||||
from datetime import datetime, date, timedelta
|
||||
|
||||
|
|
@ -109,12 +111,36 @@ class EsterdadWizard(models.Model):
|
|||
|
||||
def action_confirm_refund(self):
|
||||
for rec in self:
|
||||
user = rec.sponsor_id.sponsor_id.kafel_id
|
||||
if user:
|
||||
user.generate_otp()
|
||||
sponsor_phone = rec.mobile
|
||||
if sponsor_phone:
|
||||
company_id = rec.env.company
|
||||
# Generate OTP & send it
|
||||
otp = 1111
|
||||
if company_id.sms_mode == 'test':
|
||||
_logger.info(f"--- SMS TEST MODE --- OTP for mobile {sponsor_phone} is {otp}. SMS not sent.")
|
||||
else:
|
||||
otp = str(random.randint(1000, 9999))
|
||||
payload = {
|
||||
"recipients": [sponsor_phone],
|
||||
"body": f"Your OTP code is: {otp}",
|
||||
"sender": company_id.sms_sender_name,
|
||||
}
|
||||
headers = {
|
||||
"Authorization": f"Bearer {company_id.sms_api_token}",
|
||||
"Content-Type": "application/json",
|
||||
}
|
||||
try:
|
||||
response = requests.post(company_id.sms_api_url, json=payload, headers=headers, timeout=10)
|
||||
response.raise_for_status() # Raise an error for non-2xx responses
|
||||
_logger.info(f"OTP {otp} sent successfully to {sponsor_phone}")
|
||||
except requests.exceptions.RequestException as e:
|
||||
_logger.error(f"Failed to send OTP to {sponsor_phone}: {e}")
|
||||
raise ValidationError("Failed to send OTP. Please check API configuration or try again later.")
|
||||
##################
|
||||
|
||||
context = dict(self.env.context or {})
|
||||
context['default_user_id'] = user.id
|
||||
context['default_otp'] = user.otp_code
|
||||
# context['default_user_id'] = user.id
|
||||
context['default_otp'] = otp
|
||||
context['default_esterdad_id'] = rec.id
|
||||
context['default_invoice_ids'] = rec.journal_entry_ids.ids
|
||||
context['default_cancel_reason'] = rec.cancel_reason.name if not rec.another_reason else rec.reason
|
||||
|
|
@ -136,7 +162,7 @@ class EsterdadWizard(models.Model):
|
|||
'context': context,
|
||||
}
|
||||
else:
|
||||
raise UserError(_("No user assigned to this sponsor"))
|
||||
raise UserError(_("Mobile is required!"))
|
||||
|
||||
@api.depends('payment_ids')
|
||||
def _get_total_sponsorship_amount(self):
|
||||
|
|
@ -150,7 +176,7 @@ class OTPWizard(models.TransientModel):
|
|||
otp = fields.Integer()
|
||||
otp_code = fields.Integer()
|
||||
esterdad_id = fields.Many2one('esterdad.wizard')
|
||||
user_id = fields.Many2one('res.users')
|
||||
# user_id = fields.Many2one('res.users')
|
||||
invoice_ids = fields.Many2many('account.move')
|
||||
# payment_ids = fields.Many2many(
|
||||
# 'account.payment',
|
||||
|
|
|
|||
Loading…
Reference in New Issue