コード例 #1
0
def spec_renew_payment_offline():
    if session.get('spec_pac_id'):
        if request.method == 'POST':
            try:
                pac_course = Pac_course.query.filter_by(
                    id=session.get('spec_pac_id')).first()
                if pac_course:
                    payment_receipt = request.files['payment_receipt']
                    filename = secure_filename(payment_receipt.filename)
                    filetype, extension = splitext(filename)
                    newfilename = str(randomkey(10)).lower() + extension
                    payment_receipt.save(
                        os.path.join(RECEIPT_UPLOAD_CONTENTS, newfilename))
                    receipt_file_path = '/static/upload/receipt/' + newfilename
                    """ Upload payment receipt """

                    total_payable_amount = int(
                        pac_course.price * len(session.get('subs_months'))) + 1
                    """ Store the information of subscription to the db """
                    subs_pac_info = Student_package_subscription(
                        student_id=current_user.id,
                        package_id=session.get('spec_pac_id'),
                        total_amount=total_payable_amount,
                        coupon_code=None,
                        discount_amount=0,
                        total_payable_amount=total_payable_amount,
                        transcation_id='',
                        invoice='',
                        receipt=receipt_file_path,
                        payment_status=False,
                        payment_mode='online',
                        subs_status=False,
                        purpose=2  # renewal subscription code
                    )
                    db.session.add(subs_pac_info)
                    db.session.commit()

                    subscription_trans_log = Subscription_trans_log(
                        student_id=current_user.id,
                        package_id=session.get('spec_pac_id'),
                        total_amount=total_payable_amount,
                        coupon_code=None,
                        discount_amount=0,
                        total_payable_amount=total_payable_amount,
                        transcation_id='',
                        invoice='',
                        receipt=receipt_file_path,
                        payment_mode='online',
                        purpose='Purchase new subscription.')
                    db.session.add(subscription_trans_log)
                    db.session.commit()

                    if len(session.get('subs_optional_subjects')) > 0:
                        for optional_sub in session.get(
                                'subs_optional_subjects'):
                            subs_optional_sub_info = Student_subs_pac_optional(
                                stu_pac_subs_id=subs_pac_info.id,
                                optional_subs=optional_sub)
                            db.session.add(subs_optional_sub_info)
                            db.session.commit()

                    if len(session.get('subs_months')) > 0:
                        for month in session.get('subs_months'):
                            student_subs_month = Student_subs_pac_months(
                                stu_pac_subs_id=subs_pac_info.id,
                                subs_month=month)
                            db.session.add(student_subs_month)
                            db.session.commit()

                    db.session.close()
                    """ Unset all session of payments """
                    if session.get('spec_pac_id'):
                        session.pop('spec_pac_id')
                    if session.get('subs_optional_subjects'):
                        session.pop('subs_optional_subjects')
                    if session.get('subs_months'):
                        session.pop('subs_months')
                    flash('You have successfully renew subscription.',
                          'success')
                    return redirect(url_for('dashboard'))
                else:
                    flash(
                        'Package details are not valid. Please contact to support team.',
                        'danger')
                    return redirect(url_for('dashboard'))
            except Exception as e:
                app.logger.error(str(e))
                return abort(500)
        else:
            try:
                pac_course = Pac_course.query.filter_by(
                    id=session.get('spec_pac_id')).first()
                if pac_course:
                    amount = pac_course.price * len(
                        session.get('subs_months')) + 1
                    return render_template(
                        'package/renew/payment-offline.html', payamount=amount)
                else:
                    message = 'Sorry, Package details are not correct.'
                    return render_template('home/info.html', message=message)
            except Exception as e:
                app.logger.error(str(e))
                return abort(500)
    else:
        return redirect(url_for('dashboard'))
コード例 #2
0
def spec_renew_callbackv2():
    if session.get('spec_pac_id'):
        try:
            pac_course = Pac_course.query.filter_by(
                id=session.get('spec_pac_id')).first()
            if pac_course:

                total_payable_amount = pac_course.price * len(
                    session.get('subs_months')) + 1
                trx_id = ''
                if request.form.get('pay_method') == 'fpx':
                    trx_id = request.form.get('fpx_fpxTxnId')
                elif request.form.get('pay_method') == 'paypal':
                    trx_id = request.form.get('paypal_trx_id')
                elif request.form.get('pay_method') == 'mastercard':
                    trx_id = request.form.get('mastercard_trx_id')
                elif request.form.get('pay_method') == 'others':
                    trx_id = request.form.get['others_trx_id']
                # $_REQUEST['pay_method'] = $_REQUEST['trx_txt']; #EX: Boost eWallet and etc
                if trx_id:
                    """ Store the information of subscription to the db """
                    subs_pac_info = Student_package_subscription(
                        student_id=current_user.id,
                        package_id=session.get('spec_pac_id'),
                        total_amount=total_payable_amount,
                        coupon_code=None,
                        discount_amount=0,
                        total_payable_amount=total_payable_amount,
                        transcation_id=trx_id,
                        invoice=request.form.get('invoice_no'),
                        receipt='',
                        payment_status=bool(str('True')),
                        payment_mode='online',
                        subs_status=True,
                        purpose=2)
                    db.session.add(subs_pac_info)
                    db.session.commit()

                    subscription_trans_log = Subscription_trans_log(
                        student_id=current_user.id,
                        package_id=session.get('spec_pac_id'),
                        total_amount=total_payable_amount,
                        coupon_code=None,
                        discount_amount=0,
                        total_payable_amount=total_payable_amount,
                        transcation_id=trx_id,
                        invoice=request.form.get('invoice_no'),
                        receipt='',
                        payment_mode='online',
                        purpose='R')
                    db.session.add(subscription_trans_log)
                    db.session.commit()

                    if len(session.get('subs_optional_subjects')) > 0:
                        for optional_sub in session.get(
                                'subs_optional_subjects'):
                            subs_optional_sub_info = Student_subs_pac_optional(
                                stu_pac_subs_id=subs_pac_info.id,
                                optional_subs=optional_sub)
                            db.session.add(subs_optional_sub_info)
                            db.session.commit()

                    if len(session.get('subs_months')) > 0:
                        for month in session.get('subs_months'):
                            student_subs_month = Student_subs_pac_months(
                                stu_pac_subs_id=subs_pac_info.id,
                                subs_month=month)
                            db.session.add(student_subs_month)
                            db.session.commit()
                    db.session.close()
                    """ Unset all session of payments """
                    if session.get('spec_pac_id'):
                        session.pop('spec_pac_id')
                    if session.get('subs_optional_subjects'):
                        session.pop('subs_optional_subjects')
                    if session.get('subs_months'):
                        session.pop('subs_months')
                    flash(
                        'Your payment is successful. Your subscription is updated.',
                        'success')
                    return redirect(url_for('dashboard'))
                else:
                    message = 'Sorry, your transaction is not completed Please contact with support team.'
                    return render_template('home/info.html', message=message)
            else:
                message = 'Sorry, Package details are not correct.'
                return render_template('home/info.html', message=message)
        except Exception as e:
            app.logger.error(str(e))
            return abort('500')
    else:
        return redirect(url_for('dashboard'))
コード例 #3
0
def spec_payment_offline():
    if session.get('spec_pac_id'):
        if request.method == 'POST':
            try:
                pac_course = Pac_course.query.filter_by(
                    id=session.get('spec_pac_id')).first()
                if pac_course:

                    payment_receipt = request.files['payment_receipt']
                    filename = secure_filename(payment_receipt.filename)
                    filetype, extension = splitext(filename)
                    newfilename = str(randomkey(10)).lower() + extension
                    payment_receipt.save(
                        os.path.join(RECEIPT_UPLOAD_CONTENTS, newfilename))
                    receipt_file_path = '/static/upload/receipt/' + newfilename
                    """ Upload payment receipt """
                    total_payable_amount = (
                        pac_course.price * len(session.get('subs_months')) + 1
                    )  # 1 for notes
                    """ Discount on total payment amount """
                    dis_amount = 0

                    exists_pac_info = Student_package_subscription.query.filter_by(
                        student_id=current_user.id,
                        package_id=session.get('spec_pac_id')).first()
                    if exists_pac_info:
                        """ Unset all session of payments """
                        if session.get('spec_pac_id'):
                            session.pop('spec_pac_id')
                        if session.get('subs_optional_subjects'):
                            session.pop('subs_optional_subjects')
                        if session.get('subs_months'):
                            session.pop('subs_months')

                        message = 'You have already subscribed this package.'
                        return render_template('home/info.html',
                                               message=message)

                    else:
                        """ Store the information of subscription to the db """
                        subs_pac_info = Student_package_subscription(
                            student_id=current_user.id,
                            package_id=session.get('spec_pac_id'),
                            total_amount=total_payable_amount,
                            coupon_code=None,
                            discount_amount=dis_amount,
                            total_payable_amount=total_payable_amount,
                            transcation_id='',
                            invoice='',
                            receipt=receipt_file_path,
                            payment_status=False,
                            payment_mode='online',
                            subs_status=False,
                            purpose=1  # new subscription
                        )
                        db.session.add(subs_pac_info)
                        db.session.commit()

                        subscription_trans_log = Subscription_trans_log(
                            student_id=current_user.id,
                            package_id=session.get('spec_pac_id'),
                            total_amount=total_payable_amount,
                            coupon_code=None,
                            discount_amount=dis_amount,
                            total_payable_amount=total_payable_amount,
                            transcation_id='',
                            invoice='',
                            receipt=receipt_file_path,
                            payment_mode='online',
                            purpose='Purchase new subscription.')
                        db.session.add(subscription_trans_log)
                        db.session.commit()

                        if len(session.get('subs_optional_subjects')) > 0:
                            for optional_sub in session.get(
                                    'subs_optional_subjects'):
                                subs_optional_sub_info = Student_subs_pac_optional(
                                    stu_pac_subs_id=subs_pac_info.id,
                                    optional_subs=optional_sub)
                                db.session.add(subs_optional_sub_info)
                                db.session.commit()

                        if len(session.get('subs_months')) > 0:
                            for month in session.get('subs_months'):
                                student_subs_month = Student_subs_pac_months(
                                    stu_pac_subs_id=subs_pac_info.id,
                                    subs_month=month)
                                db.session.add(student_subs_month)
                                db.session.commit()
                        db.session.close()
                        """ Unset all session of payments """
                        if session.get('spec_pac_id'):
                            session.pop('spec_pac_id')
                        if session.get('subs_optional_subjects'):
                            session.pop('subs_optional_subjects')
                        if session.get('subs_months'):
                            session.pop('subs_months')

                    return redirect(url_for('payment_success'))
                else:
                    return redirect(url_for('package'))
            except Exception as e:
                app.logger.error(str(e))
                return abort(500)
        else:
            try:
                pac_course = Pac_course.query.filter_by(
                    id=session.get('spec_pac_id')).first()
                amount = (pac_course.price) * len(
                    session.get('subs_months')) + 1  #1 for notes
                return render_template('package/payment-offline.html',
                                       payamount=amount)
            except Exception as e:
                app.logger.error(str(e))
                return abort(500)
    else:
        return redirect(url_for('packages'))
コード例 #4
0
def renew_payment_offline():

    if session.get('subs_pac_id'):
        if request.method == 'POST':
            try:
                pac_course = Pac_course.query.filter_by(
                    id=session.get('subs_pac_id')).first()
                if pac_course:
                    payment_receipt = request.files['payment_receipt']
                    filename = secure_filename(payment_receipt.filename)
                    filetype, extension = splitext(filename)
                    newfilename = str(randomkey(10)).lower() + extension
                    payment_receipt.save(
                        os.path.join(RECEIPT_UPLOAD_CONTENTS, newfilename))
                    receipt_file_path = '/static/upload/receipt/' + newfilename
                    """ Upload payment receipt """
                    total_payable_amount = 0
                    """ Get the pirce of compuslory subjects """
                    comp_sub = Pac_compulsory_subjects.query.filter_by(
                        pac_course_id=session.get('subs_pac_id')).all()
                    if comp_sub:
                        for cps in comp_sub:
                            total_payable_amount = total_payable_amount + cps.price
                    """ Get the price of optional subjects """
                    for optional_sub in session.get('subs_optional_subjects'):
                        optional_subject_info = Pac_optional_subjects.query.filter_by(
                            id=optional_sub).first()
                        total_payable_amount = total_payable_amount + optional_subject_info.price

                    exists_pac_info = Student_package_subscription.query.filter_by(
                        student_id=current_user.id,
                        package_id=session.get('subs_pac_id')).first()

                    amount = int(total_payable_amount *
                                 len(session.get('subs_months'))) * 100
                    """ Discount on total payment amount """
                    dis_amount = 0
                    if len(session.get('subs_optional_subjects')) == 3:
                        dis_amount = (amount * 10) / 100
                        amount = amount - dis_amount

                    elif len(session.get('subs_optional_subjects')) > 3:
                        dis_amount = (amount * 20) / 100
                        amount = amount - dis_amount

                    if exists_pac_info:
                        exists_pac_info.total_amount = total_payable_amount * len(
                            session.get('subs_months'))
                        exists_pac_info.coupon_code = None
                        exists_pac_info.discount_amount = (dis_amount / 100)
                        exists_pac_info.total_payable_amount = (amount / 100)
                        exists_pac_info.transcation_id = ''
                        exists_pac_info.receipt = receipt_file_path
                        exists_pac_info.payment_mode = 'online'
                        db.session.commit()


                        subscription_trans_log = Subscription_trans_log(student_id=current_user.id, package_id=session.get('subs_pac_id'), \
                            total_amount=total_payable_amount * len(session.get('subs_months')), coupon_code=None, \
                            discount_amount=(dis_amount / 100), total_payable_amount=(amount / 100), transcation_id='', invoice='',\
                            receipt=receipt_file_path, payment_mode='online', purpose='Renew subscription.')

                        db.session.add(subscription_trans_log)
                        db.session.commit()

                        if len(session.get('subs_optional_subjects')) > 0:
                            """ Add all the subscribed optional subjects to the array for match """
                            optional_subjects_arr = []
                            stu_exists_opt_subjects = Student_subs_pac_optional.query.filter_by(
                                stu_pac_subs_id=exists_pac_info.id).all()
                            if (stu_exists_opt_subjects):
                                for sub_opt_subjects in stu_exists_opt_subjects:
                                    optional_subjects_arr.append(
                                        sub_opt_subjects.optional_subs)
                                    """ delete the subscribed optional subject also """
                                    stu_ = Student_subs_pac_optional.query.filter_by(
                                        id=sub_opt_subjects.id).first()
                                    db.session.delete(stu_)
                                    db.session.commit()
                            """ Add the new optional subjects to the existing subscribed courses. """
                            for optional_sub in session.get(
                                    'subs_optional_subjects'):
                                subs_optional_sub_info = Student_subs_pac_optional(
                                    stu_pac_subs_id=exists_pac_info.id,
                                    optional_subs=optional_sub)
                                db.session.add(subs_optional_sub_info)
                                db.session.commit()

                        if len(session.get('subs_months')) > 0:
                            for month in session.get('subs_months'):
                                student_subs_month = Student_subs_pac_months(
                                    stu_pac_subs_id=exists_pac_info.id,
                                    subs_month=month)
                                db.session.add(student_subs_month)
                                db.session.commit()
                        """ Unset all session of payments """
                        if session.get('subs_pac_id'):
                            session.pop('subs_pac_id')
                        if session.get('subs_optional_subjects'):
                            session.pop('subs_optional_subjects')
                        if session.get('subs_months'):
                            session.pop('subs_months')

                        flash('You have successfully renew subscription',
                              'success')
                        return redirect(url_for('dashboard'))
                    else:
                        if session.get('subs_pac_id'):
                            session.pop('subs_pac_id')
                        if session.get('subs_optional_subjects'):
                            session.pop('subs_optional_subjects')
                        if session.get('subs_months'):
                            session.pop('subs_months')

                        flash(
                            'You have not subscibed any package. Please contact with support team.',
                            'danger')
                        return redirect(url_for('dashboard'))
                else:
                    flash(
                        'Oops subscription package is expried. Please contact with support team.',
                        'danger')
                    return redirect(url_for('dashboard'))
            except Exception as e:
                app.logger.error(str(e))
                return abort(500)
        else:
            try:
                """ Upload payment receipt """
                total_payable_amount = 0
                """ Get the pirce of compuslory subjects """
                comp_sub = Pac_compulsory_subjects.query.filter_by(
                    pac_course_id=session.get('subs_pac_id')).all()
                for cps in comp_sub:
                    total_payable_amount = total_payable_amount + cps.price
                """ Get the price of optional subjects  """
                for optional_sub in session.get('subs_optional_subjects'):
                    optional_subject_info = Pac_optional_subjects.query.filter_by(
                        id=optional_sub).first()
                    total_payable_amount = total_payable_amount + optional_subject_info.price

                amount = int(total_payable_amount *
                             len(session.get('subs_months'))) * 100
                """ Discount on total payment amount """
                dis_amount = 0
                if len(session.get('subs_optional_subjects')) == 3:
                    dis_amount = (amount * 10) / 100
                    amount = amount - dis_amount

                elif len(session.get('subs_optional_subjects')) > 3:
                    dis_amount = (amount * 20) / 100
                    amount = amount - dis_amount

                return render_template(
                    'dashboard/student/payment-offline.html', payamount=amount)
            except Exception as e:
                app.logger.error(str(e))
                return abort(500)
    else:
        return redirect(url_for('dashboard'))
コード例 #5
0
def renew_callbackv2():

    try:
        pac_course = Pac_course.query.filter_by(
            id=session.get('subs_pac_id')).first()
        if pac_course:
            total_payable_amount = 0
            """ Get the pirce of compuslory subjects """
            comp_sub = Pac_compulsory_subjects.query.filter_by(
                pac_course_id=session.get('subs_pac_id')).all()
            if comp_sub:
                for cps in comp_sub:
                    total_payable_amount = total_payable_amount + cps.price
            """ Get the price of optional subjects """
            for optional_sub in session.get('subs_optional_subjects'):
                optional_subject_info = Pac_optional_subjects.query.filter_by(
                    id=optional_sub).first()
                total_payable_amount = total_payable_amount + optional_subject_info.price
            exists_pac_info = Student_package_subscription.query.filter_by(
                student_id=current_user.id,
                package_id=session.get('subs_pac_id')).first()
            amount = int(
                total_payable_amount * len(session.get('subs_months'))) * 100
            """ Discount on total payment amount """
            dis_amount = 0
            if len(session.get('subs_optional_subjects')) == 3:
                dis_amount = (amount * 10) / 100
                amount = amount - dis_amount

            elif len(session.get('subs_optional_subjects')) > 3:
                dis_amount = (amount * 20) / 100
                amount = amount - dis_amount

            if exists_pac_info:

                trx_id = ''
                if request.form.get('pay_method') == 'fpx':
                    trx_id = request.form.get('fpx_fpxTxnId')
                elif request.form.get('pay_method') == 'paypal':
                    trx_id = request.form.get('paypal_trx_id')
                elif request.form.get('pay_method') == 'mastercard':
                    trx_id = request.form.get('mastercard_trx_id')
                elif request.form.get('pay_method') == 'others':
                    trx_id = request.form.get['others_trx_id']

                exists_pac_info.total_amount = total_payable_amount * len(
                    session.get('subs_months'))
                exists_pac_info.coupon_code = None
                exists_pac_info.discount_amount = (dis_amount / 100)
                exists_pac_info.total_payable_amount = (amount / 100)
                exists_pac_info.transcation_id = trx_id
                exists_pac_info.invoice = request.form.get('invoice_no')
                exists_pac_info.receipt = ''
                exists_pac_info.payment_mode = 'online'
                exists_pac_info.payment_status = bool(str('True'))
                exists_pac_info.subs_status = bool(str('True'))
                db.session.commit()

                subscription_trans_log = Subscription_trans_log(student_id=current_user.id, package_id=session.get('subs_pac_id'), \
                    total_amount=total_payable_amount * len(session.get('subs_months')), coupon_code=None, \
                    discount_amount=(dis_amount / 100), total_payable_amount=(amount / 100), transcation_id=trx_id, invoice=request.form.get('invoice_no'), \
                    receipt='', payment_mode='online', purpose='Renew subscription.')

                db.session.add(subscription_trans_log)
                db.session.commit()

                if len(session.get('subs_optional_subjects')) > 0:
                    """ Add all the subscribed optional subjects to the array for match """
                    optional_subjects_arr = []
                    stu_exists_opt_subjects = Student_subs_pac_optional.query.filter_by(
                        stu_pac_subs_id=exists_pac_info.id).all()
                    if (stu_exists_opt_subjects):
                        for sub_opt_subjects in stu_exists_opt_subjects:
                            optional_subjects_arr.append(
                                sub_opt_subjects.optional_subs)
                            """ delete the subscribed optional subject also """
                            stu_ = Student_subs_pac_optional.query.filter_by(
                                id=sub_opt_subjects.id).first()
                            db.session.delete(stu_)
                            db.session.commit()
                    """ Add the new optional subjects to the existing subscribed courses. """
                    for optional_sub in session.get('subs_optional_subjects'):
                        subs_optional_sub_info = Student_subs_pac_optional(
                            stu_pac_subs_id=exists_pac_info.id,
                            optional_subs=optional_sub)
                        db.session.add(subs_optional_sub_info)
                        db.session.commit()

                if len(session.get('subs_months')) > 0:
                    for month in session.get('subs_months'):
                        student_subs_month = Student_subs_pac_months(
                            stu_pac_subs_id=exists_pac_info.id,
                            subs_month=month)
                        db.session.add(student_subs_month)
                        db.session.commit()
                """ Unset all session of payments """
                if session.get('subs_pac_id'):
                    session.pop('subs_pac_id')
                if session.get('subs_optional_subjects'):
                    session.pop('subs_optional_subjects')
                if session.get('subs_months'):
                    session.pop('subs_months')

                flash('You have successfully renew subscription', 'success')
                return redirect(url_for('dashboard'))
            else:
                if session.get('subs_pac_id'):
                    session.pop('subs_pac_id')
                if session.get('subs_optional_subjects'):
                    session.pop('subs_optional_subjects')
                if session.get('subs_months'):
                    session.pop('subs_months')

                flash(
                    'You have not subscibed any package. Please contact with support team.',
                    'danger')
                return redirect(url_for('dashboard'))
        else:
            flash(
                'Oops subscription package is expried. Please contact with support team.',
                'danger')
            return redirect(url_for('dashboard'))
    except Exception as e:
        app.logger.error(str(e))
        return abort(500)
コード例 #6
0
def renew_payment_offline():

    if session.get('subs_pac_id'):
        if request.method == 'POST':
            try:
                pac_course = Pac_course.query.filter_by(
                    id=session.get('subs_pac_id')).first()
                if pac_course:
                    payment_receipt = request.files['payment_receipt']
                    filename = secure_filename(payment_receipt.filename)
                    filetype, extension = splitext(filename)
                    newfilename = str(randomkey(10)).lower() + extension
                    payment_receipt.save(
                        os.path.join(RECEIPT_UPLOAD_CONTENTS, newfilename))
                    receipt_file_path = '/static/upload/receipt/' + newfilename
                    """ Upload payment receipt """
                    total_payable_amount = 0
                    """ Get the pirce of compuslory subjects """
                    comp_sub = Pac_compulsory_subjects.query.filter_by(
                        pac_course_id=session.get('subs_pac_id')).all()
                    for cps in comp_sub:
                        total_payable_amount = total_payable_amount + cps.price
                    """ Get the price of optional subjects  """
                    for optional_sub in session.get('subs_optional_subjects'):
                        optional_subject_info = Pac_optional_subjects.query.filter_by(
                            id=optional_sub).first()
                        total_payable_amount = total_payable_amount + optional_subject_info.price

                    amount = int(total_payable_amount *
                                 len(session.get('subs_months'))) * 100
                    """ Discount on total payment amount """
                    dis_amount = 0
                    if len(session.get('subs_optional_subjects')) == 3:
                        dis_amount = (amount * 10) / 100
                        amount = amount - dis_amount

                    elif len(session.get('subs_optional_subjects')) > 3:
                        dis_amount = (amount * 20) / 100
                        amount = amount - dis_amount
                    """ Store the information of subscription to the db """
                    subs_pac_info = Student_package_subscription(
                        student_id=current_user.id,
                        package_id=session.get('subs_pac_id'),
                        total_amount=total_payable_amount *
                        len(session.get('subs_months')),
                        coupon_code=None,
                        discount_amount=(dis_amount / 100),
                        total_payable_amount=(amount / 100),
                        transcation_id='',
                        invoice='',
                        receipt=receipt_file_path,
                        payment_status=False,
                        payment_mode='online',
                        subs_status=False,
                        purpose=2  #renewal subscription code
                    )
                    db.session.add(subs_pac_info)
                    db.session.commit()

                    subscription_trans_log = Subscription_trans_log(
                        student_id=current_user.id,
                        package_id=session.get('subs_pac_id'),
                        total_amount=total_payable_amount *
                        len(session.get('subs_months')),
                        coupon_code=None,
                        discount_amount=(dis_amount / 100),
                        total_payable_amount=(amount / 100),
                        transcation_id='',
                        invoice='',
                        receipt=receipt_file_path,
                        payment_mode='online',
                        purpose='Purchase new subscription.')
                    db.session.add(subscription_trans_log)
                    db.session.commit()

                    if len(session.get('subs_optional_subjects')) > 0:
                        for optional_sub in session.get(
                                'subs_optional_subjects'):
                            subs_optional_sub_info = Student_subs_pac_optional(
                                stu_pac_subs_id=subs_pac_info.id,
                                optional_subs=optional_sub)
                            db.session.add(subs_optional_sub_info)
                            db.session.commit()

                    if len(session.get('subs_months')) > 0:
                        for month in session.get('subs_months'):
                            student_subs_month = Student_subs_pac_months(
                                stu_pac_subs_id=subs_pac_info.id,
                                subs_month=month)
                            db.session.add(student_subs_month)
                            db.session.commit()
                    """ Unset all session of payments """
                    if session.get('subs_pac_id'):
                        session.pop('subs_pac_id')
                    if session.get('subs_optional_subjects'):
                        session.pop('subs_optional_subjects')
                    if session.get('subs_months'):
                        session.pop('subs_months')

                    flash('You have successfully renew subscription',
                          'success')
                    return redirect(url_for('dashboard'))
                else:
                    flash(
                        'Package details are not valid. Please contact to support team.',
                        'danger')
                    return redirect(url_for('dashboard'))
            except Exception as e:
                app.logger.error(str(e))
                return abort(500)
        else:
            try:
                """ Upload payment receipt """
                total_payable_amount = 0
                """ Get the pirce of compuslory subjects """
                comp_sub = Pac_compulsory_subjects.query.filter_by(
                    pac_course_id=session.get('subs_pac_id')).all()
                for cps in comp_sub:
                    total_payable_amount = total_payable_amount + cps.price
                """ Get the price of optional subjects  """
                for optional_sub in session.get('subs_optional_subjects'):
                    optional_subject_info = Pac_optional_subjects.query.filter_by(
                        id=optional_sub).first()
                    total_payable_amount = total_payable_amount + optional_subject_info.price

                amount = int(total_payable_amount *
                             len(session.get('subs_months'))) * 100
                """ Discount on total payment amount """
                dis_amount = 0
                if len(session.get('subs_optional_subjects')) == 3:
                    dis_amount = (amount * 10) / 100
                    amount = amount - dis_amount

                elif len(session.get('subs_optional_subjects')) > 3:
                    dis_amount = (amount * 20) / 100
                    amount = amount - dis_amount
                return render_template(
                    'dashboard/student/payment-offline.html', payamount=amount)
            except Exception as e:
                app.logger.error(str(e))
                return abort(500)
    else:
        return redirect(url_for('dashboard'))
コード例 #7
0
def renew_callbackv2():

    if session.get('subs_pac_id'):
        try:
            total_payable_amount = 0
            """ Get the pirce of compuslory subjects """
            comp_sub = Pac_compulsory_subjects.query.filter_by(
                pac_course_id=session.get('subs_pac_id')).all()
            for cps in comp_sub:
                total_payable_amount = total_payable_amount + cps.price
            """ Get the price of optional subjects  """
            for optional_sub in session.get('subs_optional_subjects'):
                optional_subject_info = Pac_optional_subjects.query.filter_by(
                    id=optional_sub).first()
                total_payable_amount = total_payable_amount + optional_subject_info.price

            amount = int(
                total_payable_amount * len(session.get('subs_months'))) * 100
            """ Discount on total payment amount """
            dis_amount = 0

            if len(session.get('subs_optional_subjects')) == 3:
                dis_amount = (amount * 10) / 100
                amount = amount - dis_amount

            elif len(session.get('subs_optional_subjects')) > 3:
                dis_amount = (amount * 20) / 100
                amount = amount - dis_amount

            trx_id = ''
            if request.form.get('pay_method') == 'fpx':
                trx_id = request.form.get('fpx_fpxTxnId')
            elif request.form.get('pay_method') == 'paypal':
                trx_id = request.form.get('paypal_trx_id')
            elif request.form.get('pay_method') == 'mastercard':
                trx_id = request.form.get('mastercard_trx_id')
            elif request.form.get('pay_method') == 'others':
                trx_id = request.form.get['others_trx_id']
            #$_REQUEST['pay_method'] = $_REQUEST['trx_txt']; #EX: Boost eWallet and etc

            if trx_id:
                """ Store the information of subscription to the db """
                subs_pac_info = Student_package_subscription(
                    student_id=current_user.id,
                    package_id=session.get('subs_pac_id'),
                    total_amount=total_payable_amount *
                    len(session.get('subs_months')),
                    coupon_code=None,
                    discount_amount=(dis_amount / 100),
                    total_payable_amount=(amount / 100),
                    transcation_id=trx_id,
                    invoice=request.form.get('invoice_no'),
                    receipt='',
                    payment_status=bool(str('True')),
                    payment_mode='online',
                    subs_status=True,
                    purpose=2)
                db.session.add(subs_pac_info)
                db.session.commit()

                subscription_trans_log = Subscription_trans_log(
                    student_id=current_user.id,
                    package_id=session.get('subs_pac_id'),
                    total_amount=total_payable_amount *
                    len(session.get('subs_months')),
                    coupon_code=None,
                    discount_amount=(dis_amount / 100),
                    total_payable_amount=(amount / 100),
                    transcation_id=trx_id,
                    invoice=request.form.get('invoice_no'),
                    receipt='',
                    payment_mode='online',
                    purpose='R')
                db.session.add(subscription_trans_log)
                db.session.commit()

                if len(session.get('subs_optional_subjects')) > 0:
                    for optional_sub in session.get('subs_optional_subjects'):
                        subs_optional_sub_info = Student_subs_pac_optional(
                            stu_pac_subs_id=subs_pac_info.id,
                            optional_subs=optional_sub)
                        db.session.add(subs_optional_sub_info)
                        db.session.commit()

                if len(session.get('subs_months')) > 0:
                    for month in session.get('subs_months'):
                        student_subs_month = Student_subs_pac_months(
                            stu_pac_subs_id=subs_pac_info.id, subs_month=month)
                        db.session.add(student_subs_month)
                        db.session.commit()
                """ Unset all session of payments """
                if session.get('subs_pac_id'):
                    session.pop('subs_pac_id')
                if session.get('subs_optional_subjects'):
                    session.pop('subs_optional_subjects')
                if session.get('subs_months'):
                    session.pop('subs_months')
                flash(
                    'Your payment is successfull. Your subscription is updated',
                    'success')
                return redirect(url_for('dashboard'))
            else:
                message = 'Sorry, your transaction is not completed Please contact with support team.'
                return render_template('home/info.html', message=message)
        except Exception as e:
            app.logger.error(str(e))
    else:
        return redirect(url_for('dashboard'))