payment_detail.py
7.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
import colander
from opensipkd.base.views import BaseView
from ..tools import btn_inquiry, btn_payment, btn_advice, btn_next, btn_close
from ..tools import get_settings
from deform import widget, Form, ValidationFailure
from pyramid.view import view_config
from ..models import (DBSession, PartnerPay, Partner)
from opensipkd.base.tools import format_json
from .api_merchant import build_request, qry_vendor_produk
from opensipkd.pasar.models import Partner, Produk
from pyramid.httpexceptions import HTTPFound
form_params_view = dict(scripts="""
$(document).ready(function(){
$("form#deform input[type=text]").each(function() {
var input = $(this).prop("disabled", true);
})
$("form#deform textarea").each(function() {
var input = $(this).prop("disabled", true);
})
});
""")
class DetailSchema(colander.Schema):
vend_inv_no = colander.SchemaNode(colander.String(), title = "Vend Inv No ", missing=colander.drop)
cust_inv_no = colander.SchemaNode(colander.String(), title = "Cust Inv No ", missing=colander.drop)
tx_id = colander.SchemaNode(colander.String(), title = "Tx Id ", missing=colander.drop)
vendor = colander.SchemaNode(colander.String(), title = "Vendor", missing=colander.drop)
produk = colander.SchemaNode(colander.String(), title = "Produk", missing=colander.drop)
produk_id = colander.SchemaNode(colander.Integer(), oid="produk_id", widget=widget.HiddenWidget(readonly=True), missing=colander.drop)
vendor_id = colander.SchemaNode(colander.Integer(), oid="vendor_id", widget=widget.HiddenWidget(readonly=True), missing=colander.drop)
customer = colander.SchemaNode(colander.String(), title = "Customer", missing=colander.drop)
cust_addr = colander.SchemaNode(colander.String(), title = "Cust Addr ", missing=colander.drop)
cust_phone = colander.SchemaNode(colander.String(), title = "Cust Phone ", missing=colander.drop)
cust_city = colander.SchemaNode(colander.String(), title = "Cust Email", missing=colander.drop)
cust_state = colander.SchemaNode(colander.String(), title = "Cust City", missing=colander.drop)
cust_pos = colander.SchemaNode(colander.String(), title = "Cust Pos ", missing=colander.drop)
cust_country = colander.SchemaNode(colander.String(), title = "Cust Country ", missing=colander.drop)
inquiry = colander.SchemaNode(colander.String(), widget=widget.TextAreaWidget(rows=5, css_class="readonly"), title = "Inquiry", missing=colander.drop)
payment = colander.SchemaNode(colander.String(), widget=widget.TextAreaWidget(rows=5, css_class="readonly"), title = "Payment ", missing=colander.drop)
advice = colander.SchemaNode(colander.String(), widget=widget.TextAreaWidget(rows=5, css_class="readonly"), title = "Advice ", missing=colander.drop)
notify = colander.SchemaNode(colander.String(), widget=widget.TextAreaWidget(rows=5, css_class="readonly"), title = "Notify ", missing=colander.drop)
cancel = colander.SchemaNode(colander.String(), widget=widget.TextAreaWidget(rows=5, css_class="readonly"), title = "Cancel", missing=colander.drop)
cart = colander.SchemaNode(colander.String(), widget=widget.TextAreaWidget(rows=5, css_class="readonly"), title = "Cart", missing=colander.drop)
def form_validator(form, value):
pass
def get_form(request, class_form, buttons=None, row=None):
schema = class_form(validator=form_validator)
# schema = schema.bind(vendor=Partner.get_vendor_list(),
# produk=Produk.get_e_list(),
# customer=Partner.get_customer_list())
schema.request = request
if row:
schema.deserialize(row)
if not buttons:
# buttons = (btn_inquiry, btn_reset)
buttons = ()
return Form(schema, buttons=buttons)
class ViewDetail(BaseView):
@view_config(route_name='api-payment-view',
permission="api-payment-list",
renderer='templates/form.pt')
def view_detail(self):
request = self.req
session = self.ses
url_dict = request.matchdict
view_id = url_dict['id']
# print('masuk sini id nya : >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>')
# print(view_id)
data = PartnerPay.query_id(id=view_id).first()
if request.POST:
# print('iya masuk post .... >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>')
controls = request.POST.items()
controls = dict(controls)
# print('isi controls >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>')
# print(controls)
# print('isi request.POST >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>')
# print(request.POST)
if 'advice' in request.POST:
# print('tombol advice di klik >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>')
# id = 'id' in values and values['id'] or None
vendor_produk = qry_vendor_produk() \
.filter(Partner.id == controls['vendor_id']) \
.filter(Produk.id == controls['produk_id']).first()
# print('isi vendor_produk >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>')
# print(vendor_produk.id)
id = view_id
if not id:
session.flash('Belum ada Invoice', 'error')
if data.status == 0:
form = get_form(request, DetailSchema, (btn_advice, btn_close))
else:
form = get_form(request, DetailSchema, (btn_close, ))
form.render(values)
return dict(form=form, params=form_params_view)
invoice_det = query_id(id).first()
if not invoice_det :
session.flash('Data Tidak Ditemukan', 'error')
if data.status == 0:
form = get_form(request, DetailSchema, (btn_advice, btn_close))
else:
form = get_form(request, DetailSchema, (btn_close, ))
form.render(values)
return dict(form=form, params=form_params_view)
result = build_request('advice', vendor_produk, invoice_det)
print(result)
if 'close' in request.POST:
# print('tombol close di klik >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>')
return HTTPFound(location=request.route_url('api-payment-list'))
# form = get_form(request, DetailSchema, (btn_advice, btn_close))
if data.status == 0:
form = get_form(request, DetailSchema, (btn_advice, btn_close))
else:
form = get_form(request, DetailSchema, (btn_close, ))
values = data.to_dict()
values['vendor'] = data.vendor.nama
values['vendor_id'] = data.vendor_id
values['produk'] = data.produk.nama
values['produk_id'] = data.produk_id
values['customer'] = data.customer.nama
values['cust_addr'] = data.inv_cust_addr
values['cust_phone'] = data.inv_cust_phone
values['cust_city'] = data.inv_cust_city
values['cust_state'] = data.inv_cust_state
values['cust_pos'] = data.inv_cust_pos
values['cust_country'] = data.inv_cust_country
values['inquiry'] = format_json(data.inquiry)
values['payment'] = format_json(data.payment)
values['advice'] = format_json(data.advice)
values['notify'] = format_json(data.notify)
values['cancel'] = format_json(data.cancel)
values['cart'] = format_json(data.cart)
form.render(values)
return dict(form=form, params=form_params_view)
def query_id(id):
#id = request.matchdict['id']
return PartnerPay.query_id(id)