Subversion Repositories SmartDukaan

Rev

Rev 6281 | Rev 6287 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6281 Rev 6285
Line 3373... Line 3373...
3373
        return True
3373
        return True
3374
    
3374
    
3375
    if rechargeOrderStatus == RechargeOrderStatus.RECHARGE_SUCCESSFUL:
3375
    if rechargeOrderStatus == RechargeOrderStatus.RECHARGE_SUCCESSFUL:
3376
        recharge_order.status = RechargeOrderStatus.RECHARGE_SUCCESSFUL
3376
        recharge_order.status = RechargeOrderStatus.RECHARGE_SUCCESSFUL
3377
        session.commit()
3377
        session.commit()
-
 
3378
        gvs = allocate_gift_voucher(recharge_order)
3378
        enqueue_recharge_info_email(recharge_order)
3379
        enqueue_recharge_info_email(recharge_order, gvs)
3379
        return True
3380
        return True
3380
    
3381
    
3381
    if rechargeOrderStatus == RechargeOrderStatus.RECHARGE_FAILED_REFUNDED:
3382
    if rechargeOrderStatus == RechargeOrderStatus.RECHARGE_FAILED_REFUNDED:
3382
        recharge_order.status = RechargeOrderStatus.RECHARGE_FAILED_REFUNDED
3383
        recharge_order.status = RechargeOrderStatus.RECHARGE_FAILED_REFUNDED
3383
        order.responseTimestamp = refundDate
3384
        order.responseTimestamp = refundDate
Line 3386... Line 3387...
3386
        update_amount_in_wallet(recharge_order.userId, recharge_order.totalAmount - recharge_order.walletAmount, recharge_order.id)
3387
        update_amount_in_wallet(recharge_order.userId, recharge_order.totalAmount - recharge_order.walletAmount, recharge_order.id)
3387
        enqueue_recharge_info_email(recharge_order)
3388
        enqueue_recharge_info_email(recharge_order)
3388
        return True
3389
        return True
3389
            
3390
            
3390
    if rechargeOrderStatus == RechargeOrderStatus.PAYMENT_SUCCESSFUL:
3391
    if rechargeOrderStatus == RechargeOrderStatus.PAYMENT_SUCCESSFUL:
-
 
3392
        gvs = {}
3391
        recharge_order.status = RechargeOrderStatus.PAYMENT_SUCCESSFUL
3393
        recharge_order.status = RechargeOrderStatus.PAYMENT_SUCCESSFUL
3392
        session.commit()
3394
        session.commit()
3393
        gvAmount = recharge_order.totalAmount - recharge_order.walletAmount
-
 
3394
        gv = None
-
 
3395
        if gvAmount > 100:
-
 
3396
            if gvAmount > 500:     
-
 
3397
                gvAmount = 500
-
 
3398
            try:
-
 
3399
                pc = PromotionClient().get_client()
-
 
3400
                enddate = datetime.datetime.now() + datetime.timedelta(days=60)
-
 
3401
                gv = pc.createCoupon(26, to_java_date(enddate), recharge_order.userEmailId, gvAmount, 1)
-
 
3402
            except:
-
 
3403
                print "Not able to create gift voucher for user " + recharge_order.userEmailId
-
 
3404
            
-
 
3405
        if recharge_order.walletAmount > 0:
3395
        if recharge_order.walletAmount > 0:
3406
            wallet = get_user_wallet(recharge_order.userId)
3396
            wallet = get_user_wallet(recharge_order.userId)
3407
            if wallet and wallet.amount >= recharge_order.walletAmount:
3397
            if wallet and wallet.amount >= recharge_order.walletAmount:
3408
                update_amount_in_wallet(recharge_order.userId, -recharge_order.walletAmount, recharge_order.id)
3398
                update_amount_in_wallet(recharge_order.userId, -recharge_order.walletAmount, recharge_order.id)
3409
            else:
3399
            else:
Line 3412... Line 3402...
3412
    
3402
    
3413
        try:
3403
        try:
3414
            if activate_recharge_txn(recharge_order):
3404
            if activate_recharge_txn(recharge_order):
3415
                recharge_order.invoiceNumber = get_next_invoice_number(OrderType.RECHARGE)
3405
                recharge_order.invoiceNumber = get_next_invoice_number(OrderType.RECHARGE)
3416
                session.commit()
3406
                session.commit()
-
 
3407
                gvs = allocate_gift_voucher(recharge_order)
3417
                return True
3408
                return True
3418
            else:
3409
            else:
3419
                update_amount_in_wallet(recharge_order.userId, recharge_order.walletAmount, recharge_order.id)
3410
                update_amount_in_wallet(recharge_order.userId, recharge_order.walletAmount, recharge_order.id)
3420
                update_amount_in_wallet(recharge_order.userId, recharge_order.totalAmount - recharge_order.walletAmount, recharge_order.id)
3411
                update_amount_in_wallet(recharge_order.userId, recharge_order.totalAmount - recharge_order.walletAmount, recharge_order.id)
3421
                session.commit()
3412
                session.commit()
Line 3425... Line 3416...
3425
            transaction_requiring_extra_processing.category = 'RECHARGE_UNKNOWN'
3416
            transaction_requiring_extra_processing.category = 'RECHARGE_UNKNOWN'
3426
            transaction_requiring_extra_processing.transaction_id = recharge_order.transaction_id
3417
            transaction_requiring_extra_processing.transaction_id = recharge_order.transaction_id
3427
            session.commit()
3418
            session.commit()
3428
            return False
3419
            return False
3429
        finally:
3420
        finally:
3430
            enqueue_recharge_info_email(recharge_order, gv, gvAmount)
3421
            enqueue_recharge_info_email(recharge_order, gvs)
3431
            
3422
            
3432
 
3423
 
-
 
3424
def allocate_gift_voucher(recharge_order):            
-
 
3425
    totalAmount = recharge_order.totalAmount
-
 
3426
    gvs = {}
-
 
3427
    if totalAmount > 100:
-
 
3428
        totalAmount=500 if totalAmount > 500 else totalAmount
-
 
3429
        try:
-
 
3430
            pc = PromotionClient().get_client()
-
 
3431
            enddate = datetime.datetime.now() + datetime.timedelta(days=60)
-
 
3432
            while totalAmount > 0:
-
 
3433
                gvAmount = totalAmount if totalAmount < 250 else 250
-
 
3434
                totalAmount = totalAmount - gvAmount
-
 
3435
                gv = pc.createCoupon(26, to_java_date(enddate), recharge_order.userEmailId, gvAmount, 1)
-
 
3436
                gvs[gv] = gvAmount  
-
 
3437
        except:
-
 
3438
            print "Not able to create gift voucher for user " + recharge_order.userEmailId
-
 
3439
    return gvs     
-
 
3440
 
3433
def activate_recharge_txn(recharge_order):
3441
def activate_recharge_txn(recharge_order):
3434
    if isinstance(recharge_order, MobileRechargeOrder):
3442
    if isinstance(recharge_order, MobileRechargeOrder):
3435
        rechargeType = 'MTP'
3443
        rechargeType = 'MTP'
3436
        deviceNumber = recharge_order.mobileNumber
3444
        deviceNumber = recharge_order.mobileNumber
3437
        strProviderCode = get_provider_code(recharge_order.mobileOperatorId)
3445
        strProviderCode = get_provider_code(recharge_order.mobileOperatorId)
Line 3610... Line 3618...
3610
    return RechargePlan.query.filter_by(operatorId = operator_id).all()
3618
    return RechargePlan.query.filter_by(operatorId = operator_id).all()
3611
 
3619
 
3612
def get_recharge_orders_for_transaction(txId):
3620
def get_recharge_orders_for_transaction(txId):
3613
    return RechargeOrder.query.filter_by(transaction_id = txId).first()
3621
    return RechargeOrder.query.filter_by(transaction_id = txId).first()
3614
 
3622
 
3615
def enqueue_recharge_info_email(recharge_order, gv=None, gvAmount=None):
3623
def enqueue_recharge_info_email(recharge_order, gvs={}):
3616
    status = ""
3624
    status = ""
3617
    message = ""
3625
    message = ""
3618
    html_header = """
3626
    html_header = """
3619
 
3627
 
3620
    <html>
3628
    <html>
Line 3652... Line 3660...
3652
    elif recharge_order.status == RechargeOrderStatus.RECHARGE_FAILED_REFUNDED:
3660
    elif recharge_order.status == RechargeOrderStatus.RECHARGE_FAILED_REFUNDED:
3653
        status = "Recharge Failed, Amount Refunded"
3661
        status = "Recharge Failed, Amount Refunded"
3654
        message = """
3662
        message = """
3655
                It seems operator could not process your recharge request. We are crediting the refund amount to your recharge wallet. You can use wallet amount to recharge again. <a href="$source_url/static/recharge-faq">Learn More</a>
3663
                It seems operator could not process your recharge request. We are crediting the refund amount to your recharge wallet. You can use wallet amount to recharge again. <a href="$source_url/static/recharge-faq">Learn More</a>
3656
                """
3664
                """
3657
    if gv:
3665
    if len(gvs) > 0:
3658
        message = message  + '<br />  You have been awarded with Gift Voucher of ' + gvAmount + '. You can redeem Gift Voucher using code ' + gv + ' to purchase any product.'
3666
        message = message  + '<br />  You have been awarded with following Gift Voucher(s). You can redeem Gift Voucher(s) using to purchase any product above 5000.'
-
 
3667
        message = message + " <br />  Voucher Code          Amount"
3659
                
3668
        for gv in gvs.keys():
-
 
3669
            gvAmount = gvs.get(gv)
-
 
3670
            message = message + " <br />  " + gv + "       "  + gvAmount
-
 
3671
    
3660
    message = message  + '<br />  In case of any problem, please  <a href="$source_url/contact-us">contact us</a>'
3672
    message = message  + '<br />  In case of any problem, please  <a href="$source_url/contact-us">contact us</a>'
3661
    
3673
    
3662
    html_header = html_header + message
3674
    html_header = html_header + message
3663
    html_footer = """
3675
    html_footer = """
3664
    <p>
3676
    <p>