summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2023-02-21 12:01:57 +0700
committerstephanchrst <stephanchrst@gmail.com>2023-02-21 12:01:57 +0700
commite4158dc69c7d6bca17970dfbc838d9c29a76bd2b (patch)
tree53b9695566319f12604f5b2124b81e3f98baf1ca
parent093b0160a1f6146e93cb0294341d65dcee707d9c (diff)
scheduler for parsing midtrans notification
-rw-r--r--indoteknik_custom/models/midtrans.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/indoteknik_custom/models/midtrans.py b/indoteknik_custom/models/midtrans.py
index 76dee447..df14c129 100644
--- a/indoteknik_custom/models/midtrans.py
+++ b/indoteknik_custom/models/midtrans.py
@@ -1,5 +1,6 @@
from odoo import fields, models, api
import logging
+import json
_logger = logging.getLogger(__name__)
@@ -24,6 +25,30 @@ class MidtransNotification(models.Model):
('authorize', 'Authorize'),
], string='Payment Status',
help='Payment Gateway Status / Midtrans / Web, https://docs.midtrans.com/en/after-payment/status-cycle')
+ payment_type = fields.Char(string='Payment Type', help='Jenis pembayaran dengan Midtrans')
+ gross_amount = fields.Float(string='Gross Amount', help='Jumlah pembayaran yang dilakukan dengan Midtrans')
+
+ def _parse_notification(self):
+ query = [
+ ('payment_status', '=', False)
+ ]
+ notifications = self.env['midtrans.notification'].search(query, order='id')
+ for notif in notifications:
+ payment_status = json.loads(notif.json_raw)['transaction_status']
+ payment_type = json.loads(notif.json_raw)['payment_type']
+ gross_amount = json.loads(notif.json_raw)['gross_amount']
+ order_id = json.loads(notif.json_raw)['order_id']
+
+ orders = order_id.split('_')
+ order = orders[0]
+ sale_order = self.env['sale.order'].search([('name', '=', order)], limit=1)
+
+ notif.payment_status = payment_status
+ notif.payment_type = payment_type
+ notif.gross_amount = gross_amount
+ notif.sale_order_id = sale_order.id
+
+ _logger.info('Success Parsing Midtrans Notification %s' % notif.id)
class MidtransRecurring(models.Model):