Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
Kunto
/
backoffice
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit b2fda85f
authored
Jul 31, 2019
by
Solo Group
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
auto-push
1 parent
98b0c172
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
57 additions
and
16 deletions
src/agratek/api/merchant/views/vendor.py
src/agratek/api/merchant/views/vendor.py
View file @
b2fda85
...
@@ -23,7 +23,7 @@ from . import BaseView # , save_file_upload
...
@@ -23,7 +23,7 @@ from . import BaseView # , save_file_upload
from
..models
import
(
DBSession
,
flush_row
,
Partner
,
PartnerProduk
,
H2hArInvoiceDet
)
from
..models
import
(
DBSession
,
flush_row
,
Partner
,
PartnerProduk
,
H2hArInvoiceDet
)
from
..models
import
(
Produk
,
ProdukKategori
)
from
..models
import
(
Produk
,
ProdukKategori
)
from
..tools
import
(
btn_next
,
date_from_str
,
get_settings
,
btn_reset
,
from
..tools
import
(
btn_next
,
date_from_str
,
get_settings
,
btn_reset
,
btn_inquiry
,
btn_advice
,
btn_payment
)
btn_inquiry
,
btn_advice
,
btn_payment
,
get_jsonrpc
)
from
..tools
import
log
from
..tools
import
log
...
@@ -86,11 +86,11 @@ class VendorClass(object):
...
@@ -86,11 +86,11 @@ class VendorClass(object):
elif
typ
==
'advice'
:
elif
typ
==
'advice'
:
self
.
invoice_det
.
advice
=
dict
(
request
=
self
.
request
,
self
.
invoice_det
.
advice
=
dict
(
request
=
self
.
request
,
response
=
self
.
response
,
response
=
self
.
response
,
result
=
self
.
result
)
result
=
self
.
result
)
elif
typ
==
'info'
:
elif
typ
==
'info'
:
self
.
invoice_det
.
info
=
dict
(
request
=
self
.
request
,
self
.
invoice_det
.
info
=
dict
(
request
=
self
.
request
,
response
=
self
.
response
,
response
=
self
.
response
,
result
=
self
.
result
)
result
=
self
.
result
)
flush_row
(
self
.
invoice_det
)
flush_row
(
self
.
invoice_det
)
...
@@ -155,9 +155,8 @@ def update_harga(p, k, v):
...
@@ -155,9 +155,8 @@ def update_harga(p, k, v):
return
True
return
True
def
proses_odeo
(
request
):
def
proses_odeo
(
data
):
settings
=
get_settings
()
settings
=
get_settings
()
data
=
json
.
loads
(
request
.
text
)
mid
=
'odeo_mid'
in
settings
and
settings
[
"odeo_mid"
]
or
None
mid
=
'odeo_mid'
in
settings
and
settings
[
"odeo_mid"
]
or
None
key
=
'odeo_key'
in
settings
and
settings
[
"odeo_key"
]
or
None
key
=
'odeo_key'
in
settings
and
settings
[
"odeo_key"
]
or
None
partner
=
Partner
.
query_kode
(
"ODEO"
)
.
first
()
partner
=
Partner
.
query_kode
(
"ODEO"
)
.
first
()
...
@@ -203,23 +202,65 @@ def proses_odeo(request):
...
@@ -203,23 +202,65 @@ def proses_odeo(request):
# proses jika status 1 notify ada isinya tapi belum ada field result
# proses jika status 1 notify ada isinya tapi belum ada field result
# todo: create cron torecurring order to other vendor
# todo: create cron torecurring order to other vendor
# jika status = -2 proses vendor yang lain
# jika status = -2 proses vendor yang lain
#
callback_merchant
(
order
)
# customer = Partner.query_id(order.customer_id).first()
return
order
# if customer and customer.website:
# users = customer.users
# url = customer.website
def
callback_merchant
(
order
):
# c_data = dict(trx_id=order.cust_trx,
# Callback to merchant
# status=status,
customer
=
order
.
customer
# signature=sha256(users.user_name + users.api_key))
invoice
=
order
.
invoice
# with requests.session():
if
customer
and
customer
.
website
:
# requests.post(url, data=c_data)
url
=
customer
.
website
users
=
customer
.
users
status
=
order
.
status
==
1
and
"SUCCESS"
\
or
order
.
status
>
-
2
and
"FAILED"
\
or
"PENDING"
key
=
invoice
.
cust_inv_no
+
users
.
user_name
+
users
.
api_key
+
status
signature
=
sha256
(
key
.
encode
())
.
decode
()
data
=
produk
=
[]
dat
=
dict
(
invoice_no
=
invoice
.
cust_inv_no
,
signature
=
signature
)
produk
.
append
(
dict
(
denom
=
order
.
produk
.
kode
,
id_pel
=
order
.
id_pel
,
subtotal
=
order
.
amt_sell
+
order
.
discount
,
discount
=
order
.
discount
,
total
=
order
.
amt_sell
,
status
=
status
,
serial_number
=
order
.
serial_number
))
dat
.
update
(
produk
=
produk
)
data
.
append
(
dat
)
js
=
get_jsonrpc
(
method
=
"notify"
,
params
=
data
)
log
.
info
(
"Notify:
%
s
%
s"
%
(
url
,
js
))
with
requests
.
session
():
requests
.
post
(
url
,
data
=
data
,
timeout
=
15
)
"""
{
"jsonrpc": "2.0",
"id": 1,
"params": {
"data": [{
"invoice_no": "15678",
"signature":
"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
}
]
}
}
"""
@view_config
(
route_name
=
'api-vendor-notify'
,
renderer
=
'json'
)
@view_config
(
route_name
=
'api-vendor-notify'
,
renderer
=
'json'
)
def
api_vendor_notify
(
request
):
def
api_vendor_notify
(
request
):
vendor_nm
=
request
.
matchdict
[
'name'
]
vendor_nm
=
request
.
matchdict
[
'name'
]
if
vendor_nm
==
"odeo"
:
if
vendor_nm
==
"odeo"
:
proses_odeo
(
request
)
data
=
json
.
loads
(
request
.
text
)
order
=
proses_odeo
(
data
)
@view_config
(
route_name
=
'api-vendor-test'
,
renderer
=
"string"
)
@view_config
(
route_name
=
'api-vendor-test'
,
renderer
=
"string"
)
...
...
Write
Preview
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment