pay_info.py 3.05 KB

from opensipkd.base.views import BaseView
from opensipkd.pasar.models.produk import PartnerPay
from pyramid.view import view_config
from ..tools import terbilang
import calendar
from datetime import datetime, timedelta
from ..pay_request_tools import methods, vacs, cvss, loans, cps, ems, get_str_hari, get_str_bulan, VA_IMG_SRC

class view_pay(BaseView):
    @view_config(route_name = 'pay-info', renderer = 'templates/pay_info.pt')#permission = 'pay-form',
    @view_config(route_name = 'pay-info', renderer = 'templates/pay_info_fail.pt', request_param='adt=fail')#permission = 'pay-form',
    def the_form(self):
        request = self.req
        session = self.ses
        url_dict = request.matchdict

        state = url_dict['state'] 

        amount = 0,

        dt_tm_str = '',
        img_src = '',

        meth_str = '',

        subject = '',
        content = '',

        response_url = ''

        # bringback_url = bringback_url

        if state == '0':
            pay_token = url_dict['pay_token']
            row_pay = PartnerPay.query().filter(PartnerPay.token_pay_req == pay_token).first()
            meth = row_pay.pay_req_mth

            if meth == 'VA':
                subject = 'No. Virtual Account'
                content = row_pay.card_no

                va_dt = row_pay.inv_valid_date
                va_tm = row_pay.inv_valid_time
                va_dt = datetime.strptime(va_dt, "%Y%m%d").date()
                hari_str = get_str_hari(va_dt.day, va_dt.month, va_dt.year)
                bulan_str = get_str_bulan(va_dt.month)
                va_tm = datetime.strptime(va_tm, "%H%M%S").time()
                jam_str = str(va_tm.hour) + str(va_tm.minute)
                # Jum'at, 27 Desember 2019, Pukul 04:44 WIB
                dt_tm_str = hari_str + ', ' + str(va_dt.day) + ' ' + bulan_str + ' ' + str(va_dt.year) + ', Pukul ' + str(va_tm) + ' WIB'

                denom_str = row_pay.pay_denom
                layanan = denom_str.split('-')[1]
                img_src = VA_IMG_SRC[layanan]


                amount = format(row_pay.amt_sell, ',d').replace(',', '.') 

                meth = row_pay.pay_req_mth
                meth_str = dict(methods)[meth] + ', ' + dict(vacs)[denom_str]

                response_url = row_pay.response_url


            elif meth == 'CC':
                content = row_pay.card_no
            elif meth == 'CVS':
                subject = ''
                content = ''
            elif meth == 'EM':
                subject = ''
                content = ''
            elif meth == 'loan':
                subject = ''
                content = ''
            elif meth == 'CP':
                subject = ''
                content = ''


        return dict(
                        state = state,
                        amount = amount,

                        dt_tm_str = dt_tm_str,
                        img_src = img_src,

                        meth_str = meth_str,

                        subject = subject,
                        content = content,

                        response_url = response_url
                    )