summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indoteknik_api/controllers/api_v1/__init__.py1
-rw-r--r--indoteknik_api/controllers/api_v1/midtrans.py42
-rw-r--r--indoteknik_api/controllers/api_v1/sale_order.py2
-rw-r--r--indoteknik_api/models/blog_post.py3
-rwxr-xr-xindoteknik_custom/models/__init__.py1
-rw-r--r--indoteknik_custom/models/midtrans.py38
-rwxr-xr-xindoteknik_custom/security/ir.model.access.csv5
7 files changed, 89 insertions, 3 deletions
diff --git a/indoteknik_api/controllers/api_v1/__init__.py b/indoteknik_api/controllers/api_v1/__init__.py
index a4776503..ab499443 100644
--- a/indoteknik_api/controllers/api_v1/__init__.py
+++ b/indoteknik_api/controllers/api_v1/__init__.py
@@ -18,3 +18,4 @@ from . import wishlist
from . import brand_homepage
from . import customer
from . import content
+from . import midtrans
diff --git a/indoteknik_api/controllers/api_v1/midtrans.py b/indoteknik_api/controllers/api_v1/midtrans.py
new file mode 100644
index 00000000..fdc801d3
--- /dev/null
+++ b/indoteknik_api/controllers/api_v1/midtrans.py
@@ -0,0 +1,42 @@
+from .. import controller
+from odoo import http
+from odoo.http import request
+import json
+
+
+class Midtrans(controller.Controller):
+ prefix = '/api/v1/'
+
+ @http.route(prefix + 'midtrans/notification', auth='none', type='json', csrf=False, cors='*', methods=['POST', 'OPTIONS'])
+ def notification(self, **kw):
+ json_raw = json.loads(request.httprequest.data)
+ trx_status = json.loads(request.httprequest.data)['transaction_status']
+ order_no = json.loads(request.httprequest.data)['order_id']
+
+ query = [('name', '=', order_no)]
+ order = request.env['sale.order'].sudo().search(query, limit=1)
+ order.payment_status = trx_status
+
+ request.env['midtrans.notification'].create([{
+ 'sale_order_id': order.id,
+ 'json_raw': json_raw,
+ 'payment_status': trx_status,
+ }])
+
+ return
+
+ @http.route(prefix + 'midtrans/recurring', auth='none', type='json', csrf=False, cors='*', methods=['POST', 'OPTIONS'])
+ def recurring(self, **kw):
+ json_raw = json.loads(request.httprequest.data)
+ request.env['midtrans.recurring'].create([{
+ 'json_raw': json_raw,
+ }])
+ return
+
+ @http.route(prefix + 'midtrans/payaccount', auth='none', type='json', csrf=False, cors='*', methods=['POST', 'OPTIONS'])
+ def payaccount(self, **kw):
+ json_raw = json.loads(request.httprequest.data)
+ request.env['midtrans.account'].create([{
+ 'json_raw': json_raw,
+ }])
+ return \ No newline at end of file
diff --git a/indoteknik_api/controllers/api_v1/sale_order.py b/indoteknik_api/controllers/api_v1/sale_order.py
index 47cb2d59..7ce8cd43 100644
--- a/indoteknik_api/controllers/api_v1/sale_order.py
+++ b/indoteknik_api/controllers/api_v1/sale_order.py
@@ -127,7 +127,7 @@ class SaleOrder(controller.Controller):
'partner_purchase_order_file': params['value']['po_file']
}
sale_order = request.env['sale.order'].create([[parameters]])
-
+ var = json.loads(kw.get('transaction_time', '{}'))
order_line = json.loads(params['value']['order_line'])
parameters = []
for line in order_line:
diff --git a/indoteknik_api/models/blog_post.py b/indoteknik_api/models/blog_post.py
index 2a82c23c..079181e2 100644
--- a/indoteknik_api/models/blog_post.py
+++ b/indoteknik_api/models/blog_post.py
@@ -9,7 +9,8 @@ class BlogPost(models.Model):
base_url = self.env['ir.config_parameter'].get_param('web.base.url')
data = {
'id': blog.id,
- 'thumbnail': base_url + 'api/image/blog.post/thumbnail/' + str(blog.id) if blog.thumbnail else '',
+ # 'thumbnail': base_url + 'api/image/blog.post/thumbnail/' + str(blog.id) if blog.thumbnail else '',
+ 'thumbnail': self.env['ir.attachment'].api_image('blog.post', 'thumbnail', blog.id),
'title': blog.name,
'category': {},
'author': {},
diff --git a/indoteknik_custom/models/__init__.py b/indoteknik_custom/models/__init__.py
index c6fb7d4f..121bd0f4 100755
--- a/indoteknik_custom/models/__init__.py
+++ b/indoteknik_custom/models/__init__.py
@@ -46,3 +46,4 @@ from . import x_partner_purchase_order
from . import x_product_tags
from . import website_ads
from . import leads_monitoring
+from . import midtrans
diff --git a/indoteknik_custom/models/midtrans.py b/indoteknik_custom/models/midtrans.py
new file mode 100644
index 00000000..76dee447
--- /dev/null
+++ b/indoteknik_custom/models/midtrans.py
@@ -0,0 +1,38 @@
+from odoo import fields, models, api
+import logging
+
+_logger = logging.getLogger(__name__)
+
+
+class MidtransNotification(models.Model):
+ _name = 'midtrans.notification'
+
+ json_raw = fields.Char(string='JSON Raw Text')
+ sale_order_id = fields.Many2one('sale.order', string='Sales Order')
+ payment_status = fields.Selection([
+ ('pending', 'Pending'),
+ ('capture', 'Capture'),
+ ('settlement', 'Settlement'),
+ ('deny', 'Deny'),
+ ('cancel', 'Cancel'),
+ ('expire', 'Expire'),
+ ('failure', 'Failure'),
+ ('refund', 'Refund'),
+ ('chargeback', 'Chargeback'),
+ ('partial_refund', 'Partial Refund'),
+ ('partial_chargeback', 'Partial Chargeback'),
+ ('authorize', 'Authorize'),
+ ], string='Payment Status',
+ help='Payment Gateway Status / Midtrans / Web, https://docs.midtrans.com/en/after-payment/status-cycle')
+
+
+class MidtransRecurring(models.Model):
+ _name = 'midtrans.recurring'
+
+ json_raw = fields.Char(string='JSON Raw Text')
+
+
+class MidtransAccount(models.Model):
+ _name = 'midtrans.account'
+
+ json_raw = fields.Char(string='JSON Raw Text')
diff --git a/indoteknik_custom/security/ir.model.access.csv b/indoteknik_custom/security/ir.model.access.csv
index d469aa1e..83d9e2ed 100755
--- a/indoteknik_custom/security/ir.model.access.csv
+++ b/indoteknik_custom/security/ir.model.access.csv
@@ -27,4 +27,7 @@ access_website_content,access.website.content,model_website_content,,1,1,1,1
access_invoice_reklas,access.invoice.reklas,model_invoice_reklas,,1,1,1,1
access_custom_mail_marketing,access.custom.mail.marketing,model_custom_mail_marketing,,1,1,1,1
access_website_ads,access.website.ads,model_website_ads,,1,1,1,1
-access_leads_monitoring,access.leads.monitoring,model_leads_monitoring,,1,1,1,1 \ No newline at end of file
+access_leads_monitoring,access.leads.monitoring,model_leads_monitoring,,1,1,1,1
+access_midtrans_notification,access.midtrans.notification,model_midtrans_notification,,1,1,1,1
+access_midtrans_recurring,access.midtrans.recurring,model_midtrans_recurring,,1,1,1,1
+access_midtrans_account,access.midtrans.account,model_midtrans_account,,1,1,1,1 \ No newline at end of file