Subversion Repositories SmartDukaan

Rev

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

Rev 13472 Rev 13485
Line 78... Line 78...
78
from shop2020.thriftpy.warehouse.ttypes import ScanType, \
78
from shop2020.thriftpy.warehouse.ttypes import ScanType, \
79
    WarehouseServiceException
79
    WarehouseServiceException
80
from shop2020.utils.EmailAttachmentSender import mail, get_attachment_part, \
80
from shop2020.utils.EmailAttachmentSender import mail, get_attachment_part, \
81
    mail_html
81
    mail_html
82
from shop2020.utils.Utils import to_py_date, to_java_date, \
82
from shop2020.utils.Utils import to_py_date, to_java_date, \
83
    getAsyncOperatorsForRecharge
83
    getSyncOperatorsForRecharge
84
from sqlalchemy.orm.exc import NoResultFound, MultipleResultsFound
84
from sqlalchemy.orm.exc import NoResultFound, MultipleResultsFound
85
from sqlalchemy.sql import func
85
from sqlalchemy.sql import func
86
from sqlalchemy.sql.expression import and_, or_, desc, not_, distinct, cast, \
86
from sqlalchemy.sql.expression import and_, or_, desc, not_, distinct, cast, \
87
    between
87
    between
88
from string import Template
88
from string import Template
Line 4936... Line 4936...
4936
        session.commit()
4936
        session.commit()
4937
        return True
4937
        return True
4938
    
4938
    
4939
    if rechargeOrderStatus == RechargeOrderStatus.RECHARGE_FAILED:
4939
    if rechargeOrderStatus == RechargeOrderStatus.RECHARGE_FAILED:
4940
        if recharge_order.status == RechargeOrderStatus.RECHARGE_FAILED:
4940
        if recharge_order.status == RechargeOrderStatus.RECHARGE_FAILED:
4941
            print "Same updation for status RECHARGE_FAILED"
-
 
4942
            return True
4941
            return True
4943
        recharge_order.status = RechargeOrderStatus.RECHARGE_FAILED
4942
        recharge_order.status = RechargeOrderStatus.RECHARGE_FAILED
4944
        recharge_order.responseTimestamp = datetime.datetime.now()
4943
        recharge_order.responseTimestamp = datetime.datetime.now()
4945
        session.commit()
4944
        session.commit()
4946
        update_amount_in_wallet(recharge_order.userId, recharge_order.walletAmount, recharge_order.id, 1)
4945
        update_amount_in_wallet(recharge_order.userId, recharge_order.walletAmount, recharge_order.id, 1)
Line 4948... Line 4947...
4948
        enqueue_recharge_info_email(recharge_order)
4947
        enqueue_recharge_info_email(recharge_order)
4949
        return True
4948
        return True
4950
    
4949
    
4951
    if rechargeOrderStatus == RechargeOrderStatus.RECHARGE_SUCCESSFUL:
4950
    if rechargeOrderStatus == RechargeOrderStatus.RECHARGE_SUCCESSFUL:
4952
        if recharge_order.status == RechargeOrderStatus.RECHARGE_SUCCESSFUL:
4951
        if recharge_order.status == RechargeOrderStatus.RECHARGE_SUCCESSFUL:
4953
            print "Same updation for status RECHARGE_SUCCESSFUL"
-
 
4954
            return True
4952
            return True
4955
        recharge_order.status = RechargeOrderStatus.RECHARGE_SUCCESSFUL
4953
        recharge_order.status = RechargeOrderStatus.RECHARGE_SUCCESSFUL
4956
        recharge_order.responseTimestamp = datetime.datetime.now()
4954
        recharge_order.responseTimestamp = datetime.datetime.now()
4957
        recharge_order.invoiceNumber = get_next_invoice_number(OrderType.RECHARGE)
4955
        recharge_order.invoiceNumber = get_next_invoice_number(OrderType.RECHARGE)
4958
        session.commit()
4956
        session.commit()
Line 4960... Line 4958...
4960
        enqueue_recharge_info_email(recharge_order, gvs)
4958
        enqueue_recharge_info_email(recharge_order, gvs)
4961
        return True
4959
        return True
4962
    
4960
    
4963
    if rechargeOrderStatus == RechargeOrderStatus.RECHARGE_FAILED_REFUNDED:
4961
    if rechargeOrderStatus == RechargeOrderStatus.RECHARGE_FAILED_REFUNDED:
4964
        if recharge_order.status == RechargeOrderStatus.RECHARGE_FAILED_REFUNDED:
4962
        if recharge_order.status == RechargeOrderStatus.RECHARGE_FAILED_REFUNDED:
4965
            print "Same updation for status RECHARGE_FAILED_REFUNDED"
-
 
4966
            return True
4963
            return True
4967
        recharge_order.status = RechargeOrderStatus.RECHARGE_FAILED_REFUNDED
4964
        recharge_order.status = RechargeOrderStatus.RECHARGE_FAILED_REFUNDED
4968
        recharge_order.responseTimestamp = datetime.datetime.now()
4965
        recharge_order.responseTimestamp = datetime.datetime.now()
4969
        session.commit()
4966
        session.commit()
4970
        update_amount_in_wallet(recharge_order.userId, recharge_order.walletAmount, recharge_order.id, 1)
4967
        update_amount_in_wallet(recharge_order.userId, recharge_order.walletAmount, recharge_order.id, 1)
Line 4999... Line 4996...
4999
                update_amount_in_wallet(recharge_order.userId, recharge_order.totalAmount - recharge_order.walletAmount - recharge_order.couponAmount, recharge_order.id, 0)
4996
                update_amount_in_wallet(recharge_order.userId, recharge_order.totalAmount - recharge_order.walletAmount - recharge_order.couponAmount, recharge_order.id, 0)
5000
                session.commit()
4997
                session.commit()
5001
                return False
4998
                return False
5002
        except:
4999
        except:
5003
            if isinstance(recharge_order, MobileRechargeOrder):
5000
            if isinstance(recharge_order, MobileRechargeOrder):
5004
                if recharge_order.mobileOperatorId in (getAsyncOperatorsForRecharge()):
5001
                if recharge_order.mobileOperatorId not in (getSyncOperatorsForRecharge()):
5005
                    return False 
5002
                    return True 
5006
            if isinstance(recharge_order, DTHRechargeOrder):
5003
            if isinstance(recharge_order, DTHRechargeOrder):
5007
                if recharge_order.dthOperatorId in (getAsyncOperatorsForRecharge()):
5004
                if recharge_order.dthOperatorId not in (getSyncOperatorsForRecharge()):
5008
                    return False
5005
                    return True
5009
            transaction_requiring_extra_processing = TransactionRequiringExtraProcessing()
5006
            transaction_requiring_extra_processing = TransactionRequiringExtraProcessing()
5010
            transaction_requiring_extra_processing.category = 'RECHARGE_UNKNOWN'
5007
            transaction_requiring_extra_processing.category = 'RECHARGE_UNKNOWN'
5011
            transaction_requiring_extra_processing.transaction_id = recharge_order.transaction_id
5008
            transaction_requiring_extra_processing.transaction_id = recharge_order.transaction_id
5012
            session.commit()
5009
            session.commit()
5013
            return False
5010
            return False
Line 5037... Line 5034...
5037
    if isinstance(recharge_order, MobileRechargeOrder):
5034
    if isinstance(recharge_order, MobileRechargeOrder):
5038
        rechargeType = 'MTP'
5035
        rechargeType = 'MTP'
5039
        deviceNumber = recharge_order.mobileNumber
5036
        deviceNumber = recharge_order.mobileNumber
5040
        strProviderCode = get_provider_code(recharge_order.mobileOperatorId)
5037
        strProviderCode = get_provider_code(recharge_order.mobileOperatorId)
5041
        plan = recharge_order.rechargePlan
5038
        plan = recharge_order.rechargePlan
5042
        if recharge_order.mobileOperatorId in (getAsyncOperatorsForRecharge()):
5039
        if recharge_order.mobileOperatorId not in (getSyncOperatorsForRecharge()):
5043
            __activate_recharge_txn_asynchronously(recharge_order,rechargeType,deviceNumber,strProviderCode,plan)
5040
            __activate_recharge_txn_asynchronously(recharge_order,rechargeType,deviceNumber,strProviderCode,plan)
5044
    if isinstance(recharge_order, DTHRechargeOrder):
5041
    if isinstance(recharge_order, DTHRechargeOrder):
5045
        rechargeType = 'RCH'
5042
        rechargeType = 'RCH'
5046
        deviceNumber = recharge_order.dthAccountNumber
5043
        deviceNumber = recharge_order.dthAccountNumber
5047
        strProviderCode = get_provider_code(recharge_order.dthOperatorId)
5044
        strProviderCode = get_provider_code(recharge_order.dthOperatorId)
5048
        plan = ''
5045
        plan = ''
5049
        if recharge_order.dthOperatorId in (getAsyncOperatorsForRecharge()):
5046
        if recharge_order.dthOperatorId not in (getSyncOperatorsForRecharge()):
5050
            __activate_recharge_txn_asynchronously(recharge_order,rechargeType,deviceNumber,strProviderCode,plan)
5047
            __activate_recharge_txn_asynchronously(recharge_order,rechargeType,deviceNumber,strProviderCode,plan)
5051
    retStatus, retCode, spiceTID, description, aggTID, providerTID = RechargeService.rechargeDevice(recharge_order.id, rechargeType, strProviderCode, deviceNumber, recharge_order.totalAmount, plan, '' ,RechargeMode._NAMES_TO_VALUES.get('SYNC'))
5048
    retStatus, retCode, spiceTID, description, aggTID, providerTID = RechargeService.rechargeDevice(recharge_order.id, rechargeType, strProviderCode, deviceNumber, recharge_order.totalAmount, plan, '' ,RechargeMode._NAMES_TO_VALUES.get('SYNC'))
5052
    recharge_order.spiceTID = spiceTID
5049
    recharge_order.spiceTID = spiceTID
5053
    recharge_order.responseTimestamp = datetime.datetime.now()
5050
    recharge_order.responseTimestamp = datetime.datetime.now()
5054
    recharge_order.description = description
5051
    recharge_order.description = description
Line 6088... Line 6085...
6088
    strProviderCode = get_provider_code(rechargeTransaction.operatorId)
6085
    strProviderCode = get_provider_code(rechargeTransaction.operatorId)
6089
    if rechargeTransaction.deviceType == 1:
6086
    if rechargeTransaction.deviceType == 1:
6090
        rtype = 'MTP'
6087
        rtype = 'MTP'
6091
    else:
6088
    else:
6092
        rtype = 'RCH'
6089
        rtype = 'RCH'
6093
    if rechargeTransaction.operatorId in (getAsyncOperatorsForRecharge()):
6090
    if rechargeTransaction.operatorId not in (getSyncOperatorsForRecharge()):
6094
        rechargeMode = RechargeMode._NAMES_TO_VALUES.get('ASYNC')
6091
        rechargeMode = RechargeMode._NAMES_TO_VALUES.get('ASYNC')
6095
    else:
6092
    else:
6096
        rechargeMode = RechargeMode._NAMES_TO_VALUES.get('SYNC')
6093
        rechargeMode = RechargeMode._NAMES_TO_VALUES.get('SYNC')
6097
    retStatus, retCode, spiceTID, description, aggTID, providerTID = RechargeService.rechargeDevice(rechargeTransaction.id, rtype, strProviderCode, rechargeTransaction.deviceNum, rechargeTransaction.amount, rechargeTransaction.plan, store.hotspotId, rechargeMode)
6094
    retStatus, retCode, spiceTID, description, aggTID, providerTID = RechargeService.rechargeDevice(rechargeTransaction.id, rtype, strProviderCode, rechargeTransaction.deviceNum, rechargeTransaction.amount, rechargeTransaction.plan, store.hotspotId, rechargeMode)
6098
    rechargeTransaction.spiceTID = spiceTID
6095
    rechargeTransaction.spiceTID = spiceTID