api_merchant_payment.py 7.49 KB
# from datetime import datetime
#
# import colander
# from agratek.api.merchant.views.api_merchant import get_vendor_produk
# from datatables import ColumnDT
# from deform import widget, Form, ValidationFailure
# from opensipkd.base.views import DataTables
# from pyramid.httpexceptions import HTTPFound
# from pyramid.view import view_config
#
# from . import BaseView  # , save_file_upload
# from ..models import (DBSession, flush_row, Satuan)
# # from ..models import (H2hArInvoice, H2hArInvoiceDet)
# from ..models import (Produk, Partner, PartnerLog, PartnerProduk, H2hArInvoice, H2hArInvoiceDet)
# from ..tools import (btn_reset,
#                      btn_cancel, btn_delete, btn_save, auth_from_rpc, get_settings, os)
# from opensipkd.pasar.models.views import (deferred_produk, deferred_vendor,
#                                           deferred_customer)
#
# class Payment(colander.Schema):
#     """
#     timeStamp 	    Y 	N 	14 	API Request Date
#     tXid 	        Y 	AN 	30 	Transaction ID
#     callBackUrl 	Y 	AN 	255 Payment result forward url (on browser) direplace oleh systen
#     merchantToken 	Y 	AN 	255 merchantToken (dibuat oleh system)
#     """
#
#     time_stamp = colander.SchemaNode(
#         colander.String(),
#         oid="time_stamp",
#     )
#
#     tx_id = colander.SchemaNode(
#         colander.String(), title='Customer',
#         oid="tx_id",
#         widget=widget.PasswordWidget(min_length=30, max_length=30)
#     )
#
#     callback_url = colander.SchemaNode(
#         colander.String(), title='Callback URL',
#         oid="callback_url",
#         widget=widget.TextInputWidget()
#     )
#
# class CcPay(Payment):
#     """
#         cardNo 	        Y 	        N 	20 	Full card number
#         cardExpYymm 	Y 	        N 	4 	card expiry(YYMM)
#         cardCvv 	    Y 	        N 	4 	card CVV
#         cardHolderNm 	Y (CIMB) 	AN 	50 	Card Holder Name
#         :return:
#     """
#     card_name = colander.SchemaNode(
#         colander.String(), title='Card Expired',
#         oid="card_no",
#         widget=widget.TextInputWidget(min_length=30, max_length=30)
#     )
#     card_no = colander.SchemaNode(
#         colander.String(), title='Card Number',
#         oid="card_no",
#         widget=widget.TextInputWidget(min_length=16, max_length=16)
#     )
#     card_exp = colander.SchemaNode(
#         colander.String(), title='Card Expired',
#         oid="card_no",
#         widget=widget.TextInputWidget(min_length=4, max_length=4)
#     )
#     card_cvv = colander.SchemaNode(
#         colander.String(), title='Card Expired',
#         oid="card_no",
#         widget=widget.PasswordWidget(min_length=3, max_length=3)
#     )
#
# class ClickPay(Payment):
#     """
#     clickPayNo 	Y 	N 	16 	ClickPay number
#     dataField3 	Y 	N 	16 	Token input 3 for clickpay
#     clickPayToken 	Y 	N 	6 	Code response from token
#     :return:
#     """
#     pay_no = colander.SchemaNode(
#         colander.String(), title='Click Pay No',
#         oid="pay_no",
#         widget=widget.TextInputWidget(min_length=16, max_length=16)
#     )
#
#     data_field_3 = colander.SchemaNode(
#         colander.String(), title='Click Pay No',
#         oid="data_field_3",
#         widget=widget.TextInputWidget(min_length=16, max_length=16)
#     )
#     token = colander.SchemaNode(
#         colander.String(), title='Click Pay No',
#         oid="token",
#         widget=widget.TextInputWidget(min_length=6, max_length=6)
#     )
#
# class AddSchema(Payment):
#     customer_id = colander.SchemaNode(
#         colander.Integer(), title='Customer',
#         oid="customer_id", widget=deferred_customer)
#
#     produk_id = colander.SchemaNode(
#         colander.Integer(), title='Produk',
#         oid="produk_id", widget=deferred_produk)
#
#
# def WalletPay(Payment):
#     pass
#
#
#
# def payment_validator(form, values):
#     pass
#
# def get_form(request, class_form, buttons=None, row=None, validator=payment_validator):
#     schema = class_form(validator=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_save, btn_reset)
#     return Form(schema, buttons=buttons)
#
#
# def route_list(request):
#     return HTTPFound(location=request.route_url('api-customer-list'))
#
#
# def save(values, row):
#     # if not row:
#     #     row = H2hArInvoice()
#     #     row.create_uid = values['uid']
#     #     row.created = datetime.now()
#     # else:
#     #     row.update_uid = values['uid']
#     #     row.updated = datetime.now()
#
#     row.from_dict(values)
#     flush_row(row)
#     return row
#
#
# # def save_request(request, values, values_det, row=None):
# #     if not row:
# #         row = H2hArInvoice()
# #         values['uid'] = request.user.id
# #         values['status'] = 'status' in values and values['status'] and 1 or 0
# #     else:
# #         values['update_uid'] = request.user.id
# #         values['updated'] = datetime.now()
# #         DBSession.query(H2hArInvoiceDet).filter(H2hArInvoiceDet.ar_invoice_id == row.id).delete()
# #
# #     row = save(values, row)
# #
# #     row_det = H2hArInvoiceDet()
# #     row_det.id_pel = values['id_pel']
# #     row_det.ar_invoice_id = row.id
# #     row_det = save(values_det, row_det)
# #     request.session.flash('Data %s Berhasil disimpan' % values['kode'])
# #     # return row
# #
# #
# # form_params_edit = dict(scripts="""
# # $(document).ready(function(){
# # });
# # """)
# #
# # form_params_view = dict(scripts="""
# # $(document).ready(function(){
# # });
# # """)
# #
# # def session_failed(request, session_name):
# #     r = dict(form=request.session[session_name])
# #     del request.session[session_name]
# #     return r
# #
# # def id_not_found(request):
# #     id = request.matchdict['id']
# #     request.session.flash('Data %s Tidak Ditemukan' % id, 'error')
# #     return route_list(request)
# #
# #
# # def query_id(request):
# #     id = request.matchdict['id']
# #     return H2hArInvoice.query_id(id)
# #
# #
#
#
# class ViewData(BaseView):
#     @view_config(route_name='api-merchant-payment',
#                  # permission="api-customer-admin",
#                  renderer='templates/form.pt')
#     def view_payment(self):
#         request = self.req
#         # form = get_form(request, AddSchema)
#         # form_params = dict(scripts=None)
#         form = get_form(request, Payment)
#         settings = get_settings()
#         if request.POST:
#             controls = request.POST.items()
#             try:
#                 c = form.validate(controls)
#             except ValidationFailure as e:
#                 form.set_appstruct(e.cstruct)
#                 return
#                 # dict(form=form, params=form_params_edit)
#
#             values = dict(c.items())
#             registrasi = PartnerPay.query_tx_id(values["tx_id"]).first()
#             if not registrasi:
#                 request.session.flash("Registrasi Payment Tidak Ditemukan", "error")
#                 return
#
#             vendor_produk =  PartnerProduk.get_produk(registrasi.vendor_id, registrasi.produk_id).first()
#             if not vendor_produk:
#                 request.session.flash("Produk Tidak Ditemukan", "error")
#                 return
#             url = os.path.join(settings["np_url"], "payment")
#             return HTTPFound(location=url, par)
#
#         return dict(form=form, params=form_params_edit)
#