Subversion Repositories SmartDukaan

Rev

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

Rev 6527 Rev 6537
Line 24... Line 24...
24
 
24
 
25
'''
25
'''
26
This class is for only data transfer. Never used outside this module.
26
This class is for only data transfer. Never used outside this module.
27
'''
27
'''
28
class _DeliveryEstimateObject:
28
class _DeliveryEstimateObject:
29
    def __init__(self, delivery_time, reliability, provider_id, codAllowed, otgAvailable):
29
    def __init__(self, delivery_time, delivery_delay, provider_id, codAllowed, otgAvailable):
30
        self.delivery_time = delivery_time
30
        self.delivery_time = delivery_time
31
        self.reliability = reliability
31
        self.delivery_delay = delivery_delay
32
        self.provider_id = provider_id
32
        self.provider_id = provider_id
33
        self.codAllowed = codAllowed
33
        self.codAllowed = codAllowed
34
        self.otgAvailable = otgAvailable
34
        self.otgAvailable = otgAvailable
35
    
35
    
36
def initialize(dbname="logistics", db_hostname="localhost"):
36
def initialize(dbname="logistics", db_hostname="localhost"):
Line 45... Line 45...
45
 
45
 
46
def __cache_delivery_estimate_table():
46
def __cache_delivery_estimate_table():
47
    delivery_estimates = DeliveryEstimate.query.all()
47
    delivery_estimates = DeliveryEstimate.query.all()
48
    for delivery_estimate in delivery_estimates:
48
    for delivery_estimate in delivery_estimates:
49
        delivery_estimate_cache[delivery_estimate.destination_pin, delivery_estimate.provider_id]\
49
        delivery_estimate_cache[delivery_estimate.destination_pin, delivery_estimate.provider_id]\
50
        =delivery_estimate.delivery_time, delivery_estimate.reliability
50
        =delivery_estimate.delivery_time, delivery_estimate.delivery_delay
51
 
51
 
52
def __cache_serviceable_location_details_table():
52
def __cache_serviceable_location_details_table():
53
    serviceable_locations = ServiceableLocationDetails.query.filter(or_("exp!=0","cod!=0"))
53
    serviceable_locations = ServiceableLocationDetails.query.filter(or_("exp!=0","cod!=0"))
54
    for serviceable_location in serviceable_locations:
54
    for serviceable_location in serviceable_locations:
55
        try:
55
        try:
Line 79... Line 79...
79
    
79
    
80
    if not provider_id:
80
    if not provider_id:
81
        raise LogisticsServiceException(101, "No provider assigned for pincode: " + str(destination_pin))
81
        raise LogisticsServiceException(101, "No provider assigned for pincode: " + str(destination_pin))
82
    try:
82
    try:
83
        delivery_time = delivery_estimate_cache[destination_pin, provider_id][0]
83
        delivery_time = delivery_estimate_cache[destination_pin, provider_id][0]
84
        reliability = delivery_estimate_cache[destination_pin, provider_id][1]
84
        delivery_delay = delivery_estimate_cache[destination_pin, provider_id][1]
85
        delivery_estimate = _DeliveryEstimateObject(delivery_time, reliability, provider_id, codAllowed, otgAvailable)
85
        delivery_estimate = _DeliveryEstimateObject(delivery_time, delivery_delay, provider_id, codAllowed, otgAvailable)
86
        return delivery_estimate
86
        return delivery_estimate
87
    except Exception as ex:
87
    except Exception as ex:
88
        print ex
88
        print ex
89
        raise LogisticsServiceException(103, "No Logistics partner listed for this destination pincode and the primary warehouse")
89
        raise LogisticsServiceException(103, "No Logistics partner listed for this destination pincode and the primary warehouse")
90
 
90