| Line 100... |
Line 100... |
| 100 |
AmazonFCWarehouseLocation, RechargeMode, CreditTxnType, \
|
100 |
AmazonFCWarehouseLocation, RechargeMode, CreditTxnType, \
|
| 101 |
CreditHistory as TCreditHistory, LoanHistory as TLoanHistory, \
|
101 |
CreditHistory as TCreditHistory, LoanHistory as TLoanHistory, \
|
| 102 |
ShipmentLogisticsCostDetail as TShipmentLogisticsCostDetail, \
|
102 |
ShipmentLogisticsCostDetail as TShipmentLogisticsCostDetail, \
|
| 103 |
ReturnTransactionStatus, ReturnAction, ReturnTxnResolutionStatus, \
|
103 |
ReturnTransactionStatus, ReturnAction, ReturnTxnResolutionStatus, \
|
| 104 |
ReplacementShippingType, ReturnTxnPickupStatus, ReceivedReturnType, \
|
104 |
ReplacementShippingType, ReturnTxnPickupStatus, ReceivedReturnType, \
|
| 105 |
ReturnPickupType, RefundType, SellerInfo, BuyerInfo
|
105 |
ReturnPickupType, RefundType, SellerInfo, BuyerInfo, WalletReferenceType
|
| 106 |
from shop2020.thriftpy.model.v1.user.ttypes import VoucherType, CouponCategory, \
|
106 |
from shop2020.thriftpy.model.v1.user.ttypes import VoucherType, CouponCategory, \
|
| 107 |
User, Sex
|
107 |
User, Sex
|
| 108 |
from shop2020.thriftpy.payments.ttypes import PaymentException
|
108 |
from shop2020.thriftpy.payments.ttypes import PaymentException
|
| 109 |
from shop2020.thriftpy.utils.ttypes import UserSmsInfo, SmsType
|
109 |
from shop2020.thriftpy.utils.ttypes import UserSmsInfo, SmsType
|
| 110 |
from shop2020.thriftpy.warehouse.ttypes import ScanType, \
|
110 |
from shop2020.thriftpy.warehouse.ttypes import ScanType, \
|
| Line 339... |
Line 339... |
| 339 |
transaction.totalShippingCost = t_transaction.totalShippingCost
|
339 |
transaction.totalShippingCost = t_transaction.totalShippingCost
|
| 340 |
if t_transaction.totalCodCharges:
|
340 |
if t_transaction.totalCodCharges:
|
| 341 |
transaction.totalCodCharges = t_transaction.totalCodCharges
|
341 |
transaction.totalCodCharges = t_transaction.totalCodCharges
|
| 342 |
|
342 |
|
| 343 |
totalAmount = 0
|
343 |
totalAmount = 0
|
| - |
|
344 |
wallet_amount = 0.0
|
| 344 |
for t_order in t_orders:
|
345 |
for t_order in t_orders:
|
| 345 |
order = create_order(t_order)
|
346 |
order = create_order(t_order)
|
| 346 |
totalAmount = totalAmount + order.total_amount
|
347 |
totalAmount = totalAmount + order.total_amount
|
| - |
|
348 |
wallet_amount = wallet_amount + order.wallet_amount
|
| 347 |
order.transaction = transaction
|
349 |
order.transaction = transaction
|
| 348 |
for line_item in t_order.lineitems:
|
350 |
for line_item in t_order.lineitems:
|
| 349 |
litem = LineItem()
|
351 |
litem = LineItem()
|
| 350 |
litem.item_id = line_item.item_id
|
352 |
litem.item_id = line_item.item_id
|
| 351 |
litem.productGroup = line_item.productGroup
|
353 |
litem.productGroup = line_item.productGroup
|
| Line 398... |
Line 400... |
| 398 |
session.commit()
|
400 |
session.commit()
|
| 399 |
# EMI charges can not be charged by merchant as per RBI guidelines.
|
401 |
# EMI charges can not be charged by merchant as per RBI guidelines.
|
| 400 |
#Now we do not have any other charges, So commenting it out.
|
402 |
#Now we do not have any other charges, So commenting it out.
|
| 401 |
#generateOtherCharges(transaction, t_transaction.emiSchemeId, totalAmount)
|
403 |
#generateOtherCharges(transaction, t_transaction.emiSchemeId, totalAmount)
|
| 402 |
|
404 |
|
| - |
|
405 |
|
| - |
|
406 |
"""Update amount in wallet"""
|
| - |
|
407 |
|
| 403 |
return transaction.id
|
408 |
return transaction.id
|
| 404 |
|
409 |
|
| 405 |
def generateOtherCharges(transaction, emiSchemeId, totalAmount):
|
410 |
def generateOtherCharges(transaction, emiSchemeId, totalAmount):
|
| 406 |
emiScheme = EmiScheme.get_by(id=emiSchemeId)
|
411 |
emiScheme = EmiScheme.get_by(id=emiSchemeId)
|
| 407 |
if not emiScheme:
|
412 |
if not emiScheme:
|
| Line 471... |
Line 476... |
| 471 |
transaction.status = new_status
|
476 |
transaction.status = new_status
|
| 472 |
transaction.status_message = description
|
477 |
transaction.status_message = description
|
| 473 |
expectedDelayMap = {}
|
478 |
expectedDelayMap = {}
|
| 474 |
billingWarehouseIdMap = {}
|
479 |
billingWarehouseIdMap = {}
|
| 475 |
billingWarehouseTxnMap = {}
|
480 |
billingWarehouseTxnMap = {}
|
| - |
|
481 |
|
| - |
|
482 |
if new_status in (TransactionStatus.AUTHORIZED, TransactionStatus.FLAGGED, TransactionStatus.COD_IN_PROCESS):
|
| - |
|
483 |
wallet_amount_used = 0.0
|
| - |
|
484 |
for order in transaction.orders:
|
| - |
|
485 |
wallet_amount_used = wallet_amount_used + order.wallet_amount
|
| - |
|
486 |
if wallet_amount_used > 0:
|
| - |
|
487 |
user_wallet = get_user_wallet(transaction.orders[0].customer_id)
|
| - |
|
488 |
if user_wallet and user_wallet.amount < wallet_amount_used:
|
| - |
|
489 |
return False
|
| - |
|
490 |
payment_client = PaymentClient().get_client()
|
| - |
|
491 |
payments = payment_client.getPaymentForTxnId(order.transaction_id)
|
| - |
|
492 |
wallet_payment_exist = False
|
| - |
|
493 |
for payment in payments:
|
| - |
|
494 |
if payment.gatewayId == walletGatewayId:
|
| - |
|
495 |
wallet_payment_exist = True
|
| - |
|
496 |
payment_client.updatePaymentDetails(payment.paymentId, "", "", "SUCCESS", "Payment Received", "", "", "", "", PaymentStatus.SUCCESS, "", None);
|
| - |
|
497 |
if not wallet_payment_exist:
|
| - |
|
498 |
return False
|
| - |
|
499 |
consume_wallet(transaction.orders[0].customer_id, wallet_amount_used, transaction_id, WalletReferenceType.PURCHASE)
|
| - |
|
500 |
|
| 476 |
## Assign runner in case of delhi pincodes
|
501 |
## Assign runner in case of delhi pincodes
|
| 477 |
if transaction.orders[0].pickupStoreId:
|
502 |
if transaction.orders[0].pickupStoreId:
|
| 478 |
logistics_client = LogisticsClient().get_client()
|
503 |
logistics_client = LogisticsClient().get_client()
|
| 479 |
store = logistics_client.getPickupStore(transaction.orders[0].pickupStoreId)
|
504 |
store = logistics_client.getPickupStore(transaction.orders[0].pickupStoreId)
|
| 480 |
if delhi_pincodes.__contains__(store.pin):
|
505 |
if delhi_pincodes.__contains__(store.pin):
|
| Line 2094... |
Line 2119... |
| 2094 |
def __capture_txn(order):
|
2119 |
def __capture_txn(order):
|
| 2095 |
txnId = order.transaction_id
|
2120 |
txnId = order.transaction_id
|
| 2096 |
logging.info("Capturing payment for merchant txn:" + str(txnId))
|
2121 |
logging.info("Capturing payment for merchant txn:" + str(txnId))
|
| 2097 |
try:
|
2122 |
try:
|
| 2098 |
payment_client = PaymentClient().get_client()
|
2123 |
payment_client = PaymentClient().get_client()
|
| 2099 |
payment = payment_client.getPaymentForTxnId(order.transaction_id)
|
2124 |
payments = payment_client.getPaymentForTxnId(order.transaction_id)
|
| 2100 |
if payment[0].gatewayId == 9:
|
2125 |
for payment in payments:
|
| - |
|
2126 |
if payment.gatewayId in (gvGatewayId, walletGatewayId):
|
| 2101 |
return
|
2127 |
continue
|
| 2102 |
capture_result = payment_client.capturePayment(txnId, False)
|
2128 |
capture_result = payment_client.capturePayment(txnId, False)
|
| 2103 |
if capture_result:
|
2129 |
if capture_result:
|
| 2104 |
logging.info("Successfully captured payment for merchant txn:" + str(txnId))
|
2130 |
logging.info("Successfully captured payment for merchant txn:" + str(txnId))
|
| 2105 |
change_transaction_status(txnId, TransactionStatus.IN_PROCESS, "Payment received", PickUpType.COURIER, order.orderType, order.source)
|
2131 |
change_transaction_status(txnId, TransactionStatus.IN_PROCESS, "Payment received", PickUpType.COURIER, order.orderType, order.source)
|
| 2106 |
else:
|
2132 |
else:
|
| 2107 |
raise TransactionServiceException(115, "Payment capture failed.")
|
2133 |
raise TransactionServiceException(115, "Payment capture failed.")
|
| 2108 |
except PaymentException as e:
|
2134 |
except PaymentException as e:
|
| 2109 |
if e.error_code == 106:
|
2135 |
if e.error_code == 106:
|
| 2110 |
order.status = OrderStatus.CAPTURE_IN_PROCESS
|
2136 |
order.status = OrderStatus.CAPTURE_IN_PROCESS
|
| 2111 |
session.commit()
|
2137 |
session.commit()
|
| 2112 |
raise TransactionServiceException(122, "Unable to capture payment due to connection issue.")
|
2138 |
raise TransactionServiceException(122, "Unable to capture payment due to connection issue.")
|
| Line 5658... |
Line 5684... |
| 5658 |
if recharge_order.status == RechargeOrderStatus.RECHARGE_FAILED:
|
5684 |
if recharge_order.status == RechargeOrderStatus.RECHARGE_FAILED:
|
| 5659 |
return True
|
5685 |
return True
|
| 5660 |
recharge_order.status = RechargeOrderStatus.RECHARGE_FAILED
|
5686 |
recharge_order.status = RechargeOrderStatus.RECHARGE_FAILED
|
| 5661 |
recharge_order.responseTimestamp = datetime.datetime.now()
|
5687 |
recharge_order.responseTimestamp = datetime.datetime.now()
|
| 5662 |
session.commit()
|
5688 |
session.commit()
|
| 5663 |
update_amount_in_wallet(recharge_order.userId, recharge_order.walletAmount, recharge_order.id, 1)
|
5689 |
#update_amount_in_wallet(recharge_order.userId, recharge_order.walletAmount, recharge_order.id, 1)
|
| - |
|
5690 |
reverse_money_to_wallet(recharge_order.userId, recharge_order.walletAmount, recharge_order.id, WalletReferenceType.RECHARGE)
|
| 5664 |
update_amount_in_wallet(recharge_order.userId, recharge_order.totalAmount - recharge_order.walletAmount - recharge_order.couponAmount, recharge_order.id, 0)
|
5691 |
#update_amount_in_wallet(recharge_order.userId, recharge_order.totalAmount - recharge_order.walletAmount - recharge_order.couponAmount, recharge_order.id, 0)
|
| - |
|
5692 |
add_amount_in_wallet(recharge_order.userId, recharge_order.totalAmount - recharge_order.walletAmount - recharge_order.couponAmount, recharge_order.id, WalletReferenceType.RECHARGE, False, True)
|
| 5665 |
enqueue_recharge_info_email(recharge_order)
|
5693 |
enqueue_recharge_info_email(recharge_order)
|
| 5666 |
return True
|
5694 |
return True
|
| 5667 |
|
5695 |
|
| 5668 |
if rechargeOrderStatus == RechargeOrderStatus.RECHARGE_SUCCESSFUL:
|
5696 |
if rechargeOrderStatus == RechargeOrderStatus.RECHARGE_SUCCESSFUL:
|
| 5669 |
if recharge_order.status == RechargeOrderStatus.RECHARGE_SUCCESSFUL:
|
5697 |
if recharge_order.status == RechargeOrderStatus.RECHARGE_SUCCESSFUL:
|
| Line 5680... |
Line 5708... |
| 5680 |
if recharge_order.status == RechargeOrderStatus.RECHARGE_FAILED_REFUNDED:
|
5708 |
if recharge_order.status == RechargeOrderStatus.RECHARGE_FAILED_REFUNDED:
|
| 5681 |
return True
|
5709 |
return True
|
| 5682 |
recharge_order.status = RechargeOrderStatus.RECHARGE_FAILED_REFUNDED
|
5710 |
recharge_order.status = RechargeOrderStatus.RECHARGE_FAILED_REFUNDED
|
| 5683 |
recharge_order.responseTimestamp = datetime.datetime.now()
|
5711 |
recharge_order.responseTimestamp = datetime.datetime.now()
|
| 5684 |
session.commit()
|
5712 |
session.commit()
|
| 5685 |
update_amount_in_wallet(recharge_order.userId, recharge_order.walletAmount, recharge_order.id, 1)
|
5713 |
#update_amount_in_wallet(recharge_order.userId, recharge_order.walletAmount, recharge_order.id, 1)
|
| 5686 |
update_amount_in_wallet(recharge_order.userId, recharge_order.totalAmount - recharge_order.walletAmount - recharge_order.couponAmount, recharge_order.id, 0)
|
5714 |
#update_amount_in_wallet(recharge_order.userId, recharge_order.totalAmount - recharge_order.walletAmount - recharge_order.couponAmount, recharge_order.id, 0)
|
| - |
|
5715 |
reverse_money_to_wallet(recharge_order.userId, recharge_order.walletAmount, recharge_order.id, WalletReferenceType.RECHARGE)
|
| - |
|
5716 |
add_amount_in_wallet(recharge_order.userId, recharge_order.totalAmount - recharge_order.walletAmount - recharge_order.couponAmount, recharge_order.id, WalletReferenceType.RECHARGE, False, True)
|
| 5687 |
enqueue_recharge_info_email(recharge_order)
|
5717 |
enqueue_recharge_info_email(recharge_order)
|
| 5688 |
return True
|
5718 |
return True
|
| 5689 |
|
5719 |
|
| 5690 |
if rechargeOrderStatus == RechargeOrderStatus.PAYMENT_SUCCESSFUL:
|
5720 |
if rechargeOrderStatus == RechargeOrderStatus.PAYMENT_SUCCESSFUL:
|
| 5691 |
gvs = {}
|
5721 |
gvs = {}
|
| 5692 |
recharge_order.status = RechargeOrderStatus.PAYMENT_SUCCESSFUL
|
5722 |
recharge_order.status = RechargeOrderStatus.PAYMENT_SUCCESSFUL
|
| 5693 |
session.commit()
|
5723 |
session.commit()
|
| 5694 |
if recharge_order.walletAmount > 0:
|
5724 |
if recharge_order.walletAmount > 0:
|
| 5695 |
wallet = get_user_wallet(recharge_order.userId)
|
5725 |
wallet = get_user_wallet(recharge_order.userId)
|
| 5696 |
if wallet and wallet.amount >= recharge_order.walletAmount:
|
5726 |
if wallet and wallet.amount >= recharge_order.walletAmount:
|
| 5697 |
update_amount_in_wallet(recharge_order.userId, -recharge_order.walletAmount, recharge_order.id, 1)
|
5727 |
#update_amount_in_wallet(recharge_order.userId, -recharge_order.walletAmount, recharge_order.id, 1)
|
| - |
|
5728 |
consume_wallet(recharge_order.userId, recharge_order.walletAmount, recharge_order.id, WalletReferenceType.RECHARGE)
|
| 5698 |
else:
|
5729 |
else:
|
| 5699 |
## User is trying to play smart. Let us first mark his recharge failed and then credit payment amount to his wallet.
|
5730 |
## User is trying to play smart. Let us first mark his recharge failed and then credit payment amount to his wallet.
|
| 5700 |
recharge_order.status = RechargeOrderStatus.RECHARGE_FAILED
|
5731 |
recharge_order.status = RechargeOrderStatus.RECHARGE_FAILED
|
| 5701 |
recharge_order.responseTimestamp = datetime.datetime.now()
|
5732 |
recharge_order.responseTimestamp = datetime.datetime.now()
|
| 5702 |
session.commit()
|
5733 |
session.commit()
|
| 5703 |
update_amount_in_wallet(recharge_order.userId, recharge_order.totalAmount - recharge_order.walletAmount - recharge_order.couponAmount, recharge_order.id, 0)
|
5734 |
#update_amount_in_wallet(recharge_order.userId, recharge_order.totalAmount - recharge_order.walletAmount - recharge_order.couponAmount, recharge_order.id, 0)
|
| - |
|
5735 |
consume_wallet(recharge_order.userId, recharge_order.totalAmount - recharge_order.walletAmount - recharge_order.couponAmount, recharge_order.id, WalletReferenceType.RECHARGE)
|
| 5704 |
raise TransactionServiceException(103, 'Wallet amount has already been used')
|
5736 |
raise TransactionServiceException(103, 'Wallet amount has already been used')
|
| 5705 |
|
5737 |
|
| 5706 |
try:
|
5738 |
try:
|
| 5707 |
if activate_recharge_txn(recharge_order):
|
5739 |
if activate_recharge_txn(recharge_order):
|
| 5708 |
recharge_order.invoiceNumber = get_next_invoice_number(OrderType.RECHARGE)
|
5740 |
recharge_order.invoiceNumber = get_next_invoice_number(OrderType.RECHARGE)
|
| 5709 |
session.commit()
|
5741 |
session.commit()
|
| 5710 |
gvs = allocate_gift_voucher(recharge_order)
|
5742 |
gvs = allocate_gift_voucher(recharge_order)
|
| 5711 |
return True
|
5743 |
return True
|
| 5712 |
else:
|
5744 |
else:
|
| 5713 |
update_amount_in_wallet(recharge_order.userId, recharge_order.walletAmount, recharge_order.id, 1)
|
5745 |
#update_amount_in_wallet(recharge_order.userId, recharge_order.walletAmount, recharge_order.id, 1)
|
| 5714 |
update_amount_in_wallet(recharge_order.userId, recharge_order.totalAmount - recharge_order.walletAmount - recharge_order.couponAmount, recharge_order.id, 0)
|
5746 |
#update_amount_in_wallet(recharge_order.userId, recharge_order.totalAmount - recharge_order.walletAmount - recharge_order.couponAmount, recharge_order.id, 0)
|
| - |
|
5747 |
reverse_money_to_wallet(recharge_order.userId, recharge_order.walletAmount, recharge_order.id, WalletReferenceType.RECHARGE)
|
| - |
|
5748 |
add_amount_in_wallet(recharge_order.userId, recharge_order.totalAmount - recharge_order.walletAmount - recharge_order.couponAmount, recharge_order.id, WalletReferenceType.RECHARGE, False, True)
|
| 5715 |
session.commit()
|
5749 |
session.commit()
|
| 5716 |
return False
|
5750 |
return False
|
| 5717 |
except:
|
5751 |
except:
|
| 5718 |
if isinstance(recharge_order, MobileRechargeOrder):
|
5752 |
if isinstance(recharge_order, MobileRechargeOrder):
|
| 5719 |
if recharge_order.mobileOperatorId not in (getSyncOperatorsForRecharge()):
|
5753 |
if recharge_order.mobileOperatorId not in (getSyncOperatorsForRecharge()):
|
| Line 5826... |
Line 5860... |
| 5826 |
wallet = UserWallet.get_by(userId = userId)
|
5860 |
wallet = UserWallet.get_by(userId = userId)
|
| 5827 |
if not wallet:
|
5861 |
if not wallet:
|
| 5828 |
wallet = UserWallet()
|
5862 |
wallet = UserWallet()
|
| 5829 |
wallet.amount = 0
|
5863 |
wallet.amount = 0
|
| 5830 |
wallet.userId = userId
|
5864 |
wallet.userId = userId
|
| - |
|
5865 |
wallet.refundable_amount = 0
|
| 5831 |
return wallet
|
5866 |
return wallet
|
| 5832 |
|
5867 |
|
| 5833 |
def get_user_wallet_history(userId):
|
5868 |
def get_user_wallet_history(userId):
|
| 5834 |
wallet = get_user_wallet(userId)
|
5869 |
wallet = get_user_wallet(userId)
|
| 5835 |
if wallet.id:
|
5870 |
if wallet.id:
|
| Line 5947... |
Line 5982... |
| 5947 |
return "SUCCESS"
|
5982 |
return "SUCCESS"
|
| 5948 |
|
5983 |
|
| 5949 |
def get_previous_transactions(clientAddress):
|
5984 |
def get_previous_transactions(clientAddress):
|
| 5950 |
limittime = datetime.datetime.now() - datetime.timedelta(hours=24)
|
5985 |
limittime = datetime.datetime.now() - datetime.timedelta(hours=24)
|
| 5951 |
totalSuccessfulRechargeAmount = session.query(func.sum(RechargeOrder.totalAmount)).filter(RechargeOrder.status == 5).filter(RechargeOrder.ipAddress == clientAddress).filter(RechargeOrder.creationTimestamp > limittime).scalar()
|
5986 |
totalSuccessfulRechargeAmount = session.query(func.sum(RechargeOrder.totalAmount)).filter(RechargeOrder.status == 5).filter(RechargeOrder.ipAddress == clientAddress).filter(RechargeOrder.creationTimestamp > limittime).scalar()
|
| 5952 |
return totalSuccessfulRechargeAmount
|
5987 |
return totalSuccessfulRechargeAmount
|
| - |
|
5988 |
|
| - |
|
5989 |
|
| 5953 |
|
5990 |
|
| 5954 |
def update_amount_in_wallet(userId, amount, orderId, updateType):
|
5991 |
def add_amount_in_wallet(userId, amount, reference, reference_type, isPromotional, commit_session=False):
|
| 5955 |
"""
|
5992 |
"""
|
| 5956 |
UpdateType 1 is for wallet amounts
|
- |
|
| 5957 |
and 0 is for payment amounts
|
5993 |
Commit to be executed by caller
|
| 5958 |
"""
|
5994 |
"""
|
| - |
|
5995 |
if not amount > 0 or WalletReferenceType._VALUES_TO_NAMES.get(reference_type) is None:
|
| - |
|
5996 |
return
|
| - |
|
5997 |
wallet = get_user_wallet(userId)
|
| - |
|
5998 |
wallet.amount = wallet.amount + amount
|
| - |
|
5999 |
history = UserWalletHistory()
|
| - |
|
6000 |
if not isPromotional:
|
| - |
|
6001 |
wallet.refundable_amount = wallet.refundable_amount + amount
|
| 5959 |
if amount == 0:
|
6002 |
history.amount = amount
|
| - |
|
6003 |
history.refundable_amount = amount
|
| - |
|
6004 |
history.reference = reference
|
| - |
|
6005 |
history.reference_type = WalletReferenceType._VALUES_TO_NAMES.get(reference_type)
|
| - |
|
6006 |
history.wallet = wallet
|
| - |
|
6007 |
history.timestamp = datetime.datetime.now()
|
| - |
|
6008 |
if commit_session:
|
| - |
|
6009 |
session.commit()
|
| - |
|
6010 |
|
| - |
|
6011 |
def consume_wallet(userId, amount, reference, reference_type):
|
| - |
|
6012 |
if amount <= 0 or WalletReferenceType._VALUES_TO_NAMES.get(reference_type) is None:
|
| - |
|
6013 |
return
|
| - |
|
6014 |
wallet = get_user_wallet(userId)
|
| - |
|
6015 |
if wallet.amount < amount:
|
| - |
|
6016 |
return
|
| - |
|
6017 |
refundable_amount = wallet.refundable_amount
|
| - |
|
6018 |
promotional_amount = wallet.amount - wallet.refundable_amount
|
| - |
|
6019 |
refundable_amount_used = 0
|
| - |
|
6020 |
|
| - |
|
6021 |
if promotional_amount < amount:
|
| - |
|
6022 |
refundable_amount = refundable_amount - (amount - promotional_amount)
|
| - |
|
6023 |
promotional_amount = 0
|
| - |
|
6024 |
refundable_amount_used = amount - promotional_amount
|
| - |
|
6025 |
else:
|
| - |
|
6026 |
promotional_amount = promotional_amount - amount
|
| - |
|
6027 |
|
| - |
|
6028 |
wallet.amount = promotional_amount + refundable_amount
|
| - |
|
6029 |
wallet.refundable_amount = refundable_amount
|
| - |
|
6030 |
history = UserWalletHistory()
|
| - |
|
6031 |
history.amount = -amount
|
| - |
|
6032 |
history.refundable_amount = -refundable_amount_used
|
| - |
|
6033 |
history.reference = reference
|
| - |
|
6034 |
history.reference_type = WalletReferenceType._VALUES_TO_NAMES.get(reference_type)
|
| - |
|
6035 |
history.wallet = wallet
|
| - |
|
6036 |
history.timestamp = datetime.datetime.now()
|
| - |
|
6037 |
session.commit()
|
| - |
|
6038 |
|
| - |
|
6039 |
def refund_amount_from_wallet(userId, amount, reference, reference_type):
|
| - |
|
6040 |
if amount <= 0 or WalletReferenceType._VALUES_TO_NAMES.get(reference_type) is None:
|
| - |
|
6041 |
return
|
| - |
|
6042 |
wallet = get_user_wallet(userId)
|
| - |
|
6043 |
if wallet.refundable_amount < amount or wallet.amount < amount:
|
| - |
|
6044 |
return
|
| - |
|
6045 |
|
| - |
|
6046 |
wallet.amount = wallet.amount - amount
|
| - |
|
6047 |
wallet.refundable_amount = wallet.refundable_amount - amount
|
| - |
|
6048 |
history = UserWalletHistory()
|
| - |
|
6049 |
history.amount = -amount
|
| - |
|
6050 |
history.refundable_amount = -amount
|
| - |
|
6051 |
history.reference = reference
|
| - |
|
6052 |
history.reference_type = WalletReferenceType._VALUES_TO_NAMES.get(reference_type)
|
| - |
|
6053 |
history.wallet = wallet
|
| - |
|
6054 |
history.timestamp = datetime.datetime.now()
|
| - |
|
6055 |
session.commit()
|
| - |
|
6056 |
|
| - |
|
6057 |
def reverse_money_to_wallet(userId, amount, reference, reference_type):
|
| - |
|
6058 |
|
| - |
|
6059 |
"""To only reverse wallet payments, check add_amount_in_wallet to add new amount"""
|
| - |
|
6060 |
|
| - |
|
6061 |
if amount <= 0 or WalletReferenceType._VALUES_TO_NAMES.get(reference_type) is None:
|
| 5960 |
return
|
6062 |
return
|
| 5961 |
|
6063 |
|
| 5962 |
history = None
|
6064 |
history = None
|
| 5963 |
if updateType == 1 and amount > 0 :
|
6065 |
if reference_type==WalletReferenceType.RECHARGE:
|
| 5964 |
history = UserWalletHistory.query.filter_by(orderId = orderId).filter_by(amount = -amount).order_by(UserWalletHistory.id.desc()).first()
|
6066 |
history = UserWalletHistory.query.filter_by(reference = reference).filter_by(reference_type = WalletReferenceType._VALUES_TO_NAMES.get(reference_type)).filter_by(amount = -amount).order_by(UserWalletHistory.id.desc()).first()
|
| 5965 |
if history is None:
|
6067 |
if history is None:
|
| 5966 |
print 'No amount was debited from wallet for recharge Id : ' + str(orderId)
|
6068 |
print 'No amount was debited from wallet for recharge Id : ' + str(reference)
|
| 5967 |
return
|
6069 |
return
|
| 5968 |
|
- |
|
| 5969 |
"""
|
6070 |
|
| 5970 |
TODO check if successful payment available or Not
|
6071 |
elif reference_type==WalletReferenceType.PURCHASE:
|
| 5971 |
elif updateType == 0 :
|
- |
|
| 5972 |
baseorder = BaseOrder.query.filter_by(id = orderId).first()
|
6072 |
history = UserWalletHistory.query.filter_by(reference = reference).filter_by(reference_type = WalletReferenceType._VALUES_TO_NAMES.get(reference_type)).filter_by(amount = -amount).order_by(UserWalletHistory.id.desc()).first()
|
| 5973 |
if baseorder :
|
6073 |
if history is None:
|
| 5974 |
try :
|
- |
|
| 5975 |
pc = PaymentClient().get_client()
|
- |
|
| 5976 |
payments = pc.getPaymentForRechargeTxnId(baseorder.transaction.id)
|
6074 |
print 'No amount was debited from wallet for purchase : ' + str(reference)
|
| 5977 |
except Exception as e:
|
- |
|
| 5978 |
print e
|
- |
|
| 5979 |
return
|
- |
|
| 5980 |
for payment in payments :
|
- |
|
| 5981 |
if payment.status == 2 :
|
- |
|
| 5982 |
break
|
- |
|
| 5983 |
else :
|
- |
|
| 5984 |
return
|
6075 |
return
|
| - |
|
6076 |
|
| - |
|
6077 |
else:
|
| - |
|
6078 |
print "Reference is not valid"
|
| 5985 |
"""
|
6079 |
return
|
| - |
|
6080 |
|
| - |
|
6081 |
|
| 5986 |
wallet = get_user_wallet(userId)
|
6082 |
wallet = get_user_wallet(userId)
|
| 5987 |
wallet.amount = wallet.amount + amount
|
6083 |
wallet.amount = wallet.amount + amount
|
| - |
|
6084 |
wallet.refundable_amount = wallet.refundable_amount -history.refundable_amount
|
| 5988 |
|
6085 |
|
| 5989 |
history = UserWalletHistory()
|
6086 |
history = UserWalletHistory()
|
| 5990 |
history.amount = amount
|
6087 |
history.amount = amount
|
| - |
|
6088 |
history.refundable_amount = -history.refundable_amount
|
| 5991 |
history.orderId = orderId
|
6089 |
history.reference = reference
|
| - |
|
6090 |
history.reference_type = WalletReferenceType._VALUES_TO_NAMES.get(reference_type)
|
| 5992 |
history.wallet = wallet
|
6091 |
history.wallet = wallet
|
| 5993 |
history.timestamp = datetime.datetime.now()
|
6092 |
history.timestamp = datetime.datetime.now()
|
| 5994 |
session.commit()
|
6093 |
session.commit()
|
| - |
|
6094 |
|
| - |
|
6095 |
|
| - |
|
6096 |
#def update_amount_in_wallet(userId, amount, orderId, updateType):
|
| - |
|
6097 |
# return
|
| - |
|
6098 |
# """
|
| - |
|
6099 |
# UpdateType 1 is for wallet amounts
|
| - |
|
6100 |
# and 0 is for payment amounts
|
| - |
|
6101 |
# """
|
| - |
|
6102 |
# if amount == 0:
|
| - |
|
6103 |
# return
|
| - |
|
6104 |
#
|
| - |
|
6105 |
# history = None
|
| - |
|
6106 |
# if updateType == 1 and amount > 0 :
|
| - |
|
6107 |
# history = UserWalletHistory.query.filter_by(orderId = orderId).filter_by(amount = -amount).order_by(UserWalletHistory.id.desc()).first()
|
| - |
|
6108 |
# if history is None:
|
| - |
|
6109 |
# print 'No amount was debited from wallet for recharge Id : ' + str(orderId)
|
| - |
|
6110 |
# return
|
| - |
|
6111 |
#
|
| - |
|
6112 |
# """
|
| - |
|
6113 |
# TODO check if successful payment available or Not
|
| - |
|
6114 |
# elif updateType == 0 :
|
| - |
|
6115 |
# baseorder = BaseOrder.query.filter_by(id = orderId).first()
|
| - |
|
6116 |
# if baseorder :
|
| - |
|
6117 |
# try :
|
| - |
|
6118 |
# pc = PaymentClient().get_client()
|
| - |
|
6119 |
# payments = pc.getPaymentForRechargeTxnId(baseorder.transaction.id)
|
| - |
|
6120 |
# except Exception as e:
|
| - |
|
6121 |
# print e
|
| - |
|
6122 |
# return
|
| - |
|
6123 |
# for payment in payments :
|
| - |
|
6124 |
# if payment.status == 2 :
|
| - |
|
6125 |
# break
|
| - |
|
6126 |
# else :
|
| - |
|
6127 |
# return
|
| - |
|
6128 |
# """
|
| - |
|
6129 |
# wallet = get_user_wallet(userId)
|
| - |
|
6130 |
# wallet.amount = wallet.amount + amount
|
| - |
|
6131 |
#
|
| - |
|
6132 |
# history = UserWalletHistory()
|
| - |
|
6133 |
# history.amount = amount
|
| - |
|
6134 |
# history.orderId = orderId
|
| - |
|
6135 |
# history.wallet = wallet
|
| - |
|
6136 |
# history.timestamp = datetime.datetime.now()
|
| - |
|
6137 |
# session.commit()
|
| 5995 |
|
6138 |
|
| 5996 |
def get_recharge_orders_for_device(deviceNumber):
|
6139 |
def get_recharge_orders_for_device(deviceNumber):
|
| 5997 |
orders = MobileRechargeOrder.query.filter_by(mobileNumber = deviceNumber).all()
|
6140 |
orders = MobileRechargeOrder.query.filter_by(mobileNumber = deviceNumber).all()
|
| 5998 |
if orders is None:
|
6141 |
if orders is None:
|
| 5999 |
orders = DTHRechargeOrder.query.filter_by(dthAccountNumber = deviceNumber).all()
|
6142 |
orders = DTHRechargeOrder.query.filter_by(dthAccountNumber = deviceNumber).all()
|
| Line 6240... |
Line 6383... |
| 6240 |
return False
|
6383 |
return False
|
| 6241 |
|
6384 |
|
| 6242 |
paidAmount = rechargeOrder.totalAmount - rechargeOrder.walletAmount - rechargeOrder.couponAmount
|
6385 |
paidAmount = rechargeOrder.totalAmount - rechargeOrder.walletAmount - rechargeOrder.couponAmount
|
| 6243 |
amountToRefund = 0
|
6386 |
amountToRefund = 0
|
| 6244 |
status = None
|
6387 |
status = None
|
| 6245 |
if (paidAmount <= wallet.amount) :
|
6388 |
if (paidAmount <= wallet.refundable_amount) :
|
| 6246 |
amountToRefund = paidAmount
|
6389 |
amountToRefund = paidAmount
|
| 6247 |
status = RechargeOrderStatus.REFUNDED
|
6390 |
status = RechargeOrderStatus.REFUNDED
|
| 6248 |
else :
|
6391 |
else :
|
| 6249 |
amountToRefund = wallet.amount
|
6392 |
amountToRefund = wallet.refundable_amount
|
| 6250 |
status = RechargeOrderStatus.PARTIALLY_REFUNDED
|
6393 |
status = RechargeOrderStatus.PARTIALLY_REFUNDED
|
| 6251 |
|
6394 |
|
| 6252 |
update_amount_in_wallet(rechargeOrder.userId, -amountToRefund, rechargeOrderId, 1)
|
6395 |
#update_amount_in_wallet(rechargeOrder.userId, -amountToRefund, rechargeOrderId, 1)
|
| - |
|
6396 |
refund_amount_from_wallet(rechargeOrder.userId, amountToRefund, rechargeOrderId, WalletReferenceType.RECHARGE)
|
| 6253 |
|
6397 |
|
| 6254 |
try:
|
6398 |
try:
|
| 6255 |
pc = PaymentClient().get_client()
|
6399 |
pc = PaymentClient().get_client()
|
| 6256 |
if pc.refundPayment(rechargeOrder.transaction_id, amountToRefund, True) :
|
6400 |
if pc.refundPayment(rechargeOrder.transaction_id, amountToRefund, True) :
|
| 6257 |
rechargeOrder.status = status
|
6401 |
rechargeOrder.status = status
|
| 6258 |
rechargeOrder.refundTimestamp = datetime.datetime.now()
|
6402 |
rechargeOrder.refundTimestamp = datetime.datetime.now()
|
| 6259 |
session.commit()
|
6403 |
session.commit()
|
| 6260 |
return True
|
6404 |
return True
|
| 6261 |
else :
|
6405 |
else :
|
| 6262 |
update_amount_in_wallet(rechargeOrder.userId, amountToRefund, rechargeOrderId, 1)
|
6406 |
#update_amount_in_wallet(rechargeOrder.userId, amountToRefund, rechargeOrderId, 1)
|
| - |
|
6407 |
add_amount_in_wallet(rechargeOrder.userId, amountToRefund, rechargeOrderId, WalletReferenceType.RECHARGE, False, True)
|
| 6263 |
|
6408 |
|
| 6264 |
except:
|
6409 |
except:
|
| 6265 |
update_amount_in_wallet(rechargeOrder.userId, amountToRefund, rechargeOrderId, 1)
|
6410 |
#update_amount_in_wallet(rechargeOrder.userId, amountToRefund, rechargeOrderId, 1)
|
| - |
|
6411 |
add_amount_in_wallet(rechargeOrder.userId, amountToRefund, rechargeOrderId, WalletReferenceType.RECHARGE, False, True)
|
| 6266 |
|
6412 |
|
| 6267 |
return False
|
6413 |
return False
|
| 6268 |
|
6414 |
|
| 6269 |
def get_physical_orders(from_date, to_date):
|
6415 |
def get_physical_orders(from_date, to_date):
|
| 6270 |
query = Order.query.filter(Order.created_timestamp >from_date).filter(Order.created_timestamp < to_date).filter(~Order.status.in_([0,1,6,11,14,15,18,19,31,34,28,53,54,55,56,20,21,77,79,78]))
|
6416 |
query = Order.query.filter(Order.created_timestamp >from_date).filter(Order.created_timestamp < to_date).filter(~Order.status.in_([0,1,6,11,14,15,18,19,31,34,28,53,54,55,56,20,21,77,79,78]))
|
| Line 11184... |
Line 11330... |
| 11184 |
if gv_amount > 0:
|
11330 |
if gv_amount > 0:
|
| 11185 |
paymentId = payment_client.createPayment(userId, gv_amount, gvGatewayId, txnId, False);
|
11331 |
paymentId = payment_client.createPayment(userId, gv_amount, gvGatewayId, txnId, False);
|
| 11186 |
payment_client.updatePaymentDetails(paymentId, "", "", "SUCCESS", "Payment Received", "", "", "", "", PaymentStatus.SUCCESS, "", None);
|
11332 |
payment_client.updatePaymentDetails(paymentId, "", "", "SUCCESS", "Payment Received", "", "", "", "", PaymentStatus.SUCCESS, "", None);
|
| 11187 |
if wallet_amount > 0:
|
11333 |
if wallet_amount > 0:
|
| 11188 |
paymentId = payment_client.createPayment(userId, wallet_amount, walletGatewayId, txnId, False);
|
11334 |
paymentId = payment_client.createPayment(userId, wallet_amount, walletGatewayId, txnId, False);
|
| 11189 |
payment_client.updatePaymentDetails(paymentId, "", "", "SUCCESS", "Payment Received", "", "", "", "", PaymentStatus.SUCCESS, "", None);
|
- |
|
| 11190 |
if total_payable_amount > 0:
|
11335 |
if total_payable_amount > 0:
|
| 11191 |
paymentId = payment_client.createPayment(userId, total_payable_amount, gatewayId, txnId, False);
|
11336 |
paymentId = payment_client.createPayment(userId, total_payable_amount, gatewayId, txnId, False);
|
| 11192 |
return paymentId
|
11337 |
return paymentId
|
| 11193 |
|
11338 |
|
| 11194 |
|
11339 |
|