Subversion Repositories SmartDukaan

Rev

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

Rev 6567 Rev 6591
Line 22... Line 22...
22
from shop2020.model.v1 import order
22
from shop2020.model.v1 import order
23
from shop2020.model.v1.order.impl import DataService, RechargeService
23
from shop2020.model.v1.order.impl import DataService, RechargeService
24
from shop2020.model.v1.order.impl.DataService import Transaction, LineItem, \
24
from shop2020.model.v1.order.impl.DataService import Transaction, LineItem, \
25
    Order, BatchNoGenerator, InvoiceIDGenerator, TransactionRequiringExtraProcessing, \
25
    Order, BatchNoGenerator, InvoiceIDGenerator, TransactionRequiringExtraProcessing, \
26
    OrderInventory, Alert, PaymentSettlement, EBSSettlementSummary, \
26
    OrderInventory, Alert, PaymentSettlement, EBSSettlementSummary, \
27
    CodVerificationAgent, Attribute, RechargeVoucherTracker, EmiScheme,\
27
    CodVerificationAgent, Attribute, RechargeVoucherTracker, EmiScheme, \
28
    MiscCharges
28
    MiscCharges, BlockedIpRange, DeniedIpAddress
29
from shop2020.model.v1.order.impl.model.MobileRechargeOrder import \
29
from shop2020.model.v1.order.impl.model.MobileRechargeOrder import \
30
    MobileRechargeOrder
30
    MobileRechargeOrder
31
from shop2020.model.v1.order.impl.model.ReturnOrder import ReturnOrder
31
from shop2020.model.v1.order.impl.model.ReturnOrder import ReturnOrder
32
from shop2020.thriftpy.alert.ttypes import MonitoredEntity, EntityType
32
from shop2020.thriftpy.alert.ttypes import MonitoredEntity, EntityType
33
from shop2020.thriftpy.logistics.ttypes import DeliveryType, PickUpType
33
from shop2020.thriftpy.logistics.ttypes import DeliveryType, PickUpType
Line 3649... Line 3649...
3649
    deviceNumberInfo.operatorId = providerId
3649
    deviceNumberInfo.operatorId = providerId
3650
    if provider:
3650
    if provider:
3651
        deviceNumberInfo.operatorName = provider.name
3651
        deviceNumberInfo.operatorName = provider.name
3652
    return deviceNumberInfo
3652
    return deviceNumberInfo
3653
 
3653
 
3654
def validate_recharge(rechargeType, deviceNumber, userSelectedProviderId):
3654
def validate_recharge(rechargeType, deviceNumber, userSelectedProviderId, clientAddress):
-
 
3655
    
-
 
3656
    addressComponents = clientAddress.split('.')
-
 
3657
    n = 3
-
 
3658
    addressNumber = 0
-
 
3659
    for addressComponent in addressComponents :
-
 
3660
        addressNumber = addressNumber + (int(addressComponent) * pow(256, n))
-
 
3661
        n = n-1
-
 
3662
    matchingRow = BlockedIpRange.query.filter(BlockedIpRange.start <= addressNumber).filter(BlockedIpRange.end >= addressNumber).first()
-
 
3663
    #if a match is found then check if date has expired.
-
 
3664
    if matchingRow :
-
 
3665
        #if expiredOn is None that means this range is permanently blocked.
-
 
3666
        if matchingRow.expiredOn is None:
-
 
3667
            deniedIpAddress = DeniedIpAddress()
-
 
3668
            deniedIpAddress.ip = clientAddress
-
 
3669
            deniedIpAddress.deniedOn = datetime.datetime.now()
-
 
3670
            deniedIpAddress.deviceNumber = deviceNumber
-
 
3671
            deniedIpAddress.rechargeType = rechargeType
-
 
3672
            session.commit()
-
 
3673
            return "Oops! There seems to be a problem. Please try after some time."
-
 
3674
        else :
-
 
3675
            #if expired is not None and the blockage is still not expired then block the ip.
-
 
3676
            if matchingRow.expiredOn > datetime.datetime.now():
-
 
3677
                deniedIpAddress = DeniedIpAddress()
-
 
3678
                deniedIpAddress.ip = clientAddress
-
 
3679
                deniedIpAddress.deniedOn = datetime.datetime.now()
-
 
3680
                deniedIpAddress.deviceNumber = deviceNumber
-
 
3681
                deniedIpAddress.rechargeType = rechargeType
-
 
3682
                session.commit()
-
 
3683
                return "Oops! There seems to be a problem. Please try after some time."
-
 
3684
        
-
 
3685
    
3655
    deviceNumberInfo = get_service_provider_for_device(rechargeType, deviceNumber)
3686
    deviceNumberInfo = get_service_provider_for_device(rechargeType, deviceNumber)
3656
    if deviceNumberInfo.operatorId == -1:
3687
    if deviceNumberInfo.operatorId == -1:
3657
        return "Oops! There seems to be a problem. Please try after some time."
3688
        return "Oops! There seems to be a problem. Please try after some time."
3658
    circle = TelecomCircle.query.filter_by(code = deviceNumberInfo.circleCode).first()
3689
    circle = TelecomCircle.query.filter_by(code = deviceNumberInfo.circleCode).first()
3659
    if circle:
3690
    if circle: