From e4158dc69c7d6bca17970dfbc838d9c29a76bd2b Mon Sep 17 00:00:00 2001 From: stephanchrst Date: Tue, 21 Feb 2023 12:01:57 +0700 Subject: scheduler for parsing midtrans notification --- indoteknik_custom/models/midtrans.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'indoteknik_custom/models/midtrans.py') 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): -- cgit v1.2.3 From c2105f6b0efdd0bb74b934205bb0acc43b297bdc Mon Sep 17 00:00:00 2001 From: stephanchrst Date: Tue, 21 Feb 2023 13:07:57 +0700 Subject: sale order set midtrans status and others --- indoteknik_custom/models/midtrans.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'indoteknik_custom/models/midtrans.py') diff --git a/indoteknik_custom/models/midtrans.py b/indoteknik_custom/models/midtrans.py index df14c129..11b10292 100644 --- a/indoteknik_custom/models/midtrans.py +++ b/indoteknik_custom/models/midtrans.py @@ -25,8 +25,6 @@ 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 = [ @@ -44,10 +42,12 @@ class MidtransNotification(models.Model): 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 + sale_order.payment_type = payment_type + sale_order.gross_amount = gross_amount + sale_order.payment_status = payment_status + _logger.info('Success Parsing Midtrans Notification %s' % notif.id) -- cgit v1.2.3 From d67936f7c5f2e471690d0dc682b8ed97f4097e22 Mon Sep 17 00:00:00 2001 From: stephanchrst Date: Tue, 21 Feb 2023 13:43:01 +0700 Subject: replace strip with slash if searching sale order midtrans --- indoteknik_custom/models/midtrans.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indoteknik_custom/models/midtrans.py') diff --git a/indoteknik_custom/models/midtrans.py b/indoteknik_custom/models/midtrans.py index 11b10292..c99c8410 100644 --- a/indoteknik_custom/models/midtrans.py +++ b/indoteknik_custom/models/midtrans.py @@ -38,7 +38,7 @@ class MidtransNotification(models.Model): order_id = json.loads(notif.json_raw)['order_id'] orders = order_id.split('_') - order = orders[0] + order = orders[0].replace('-', '/') sale_order = self.env['sale.order'].search([('name', '=', order)], limit=1) notif.payment_status = payment_status -- cgit v1.2.3