Subversion Repositories SmartDukaan

Rev

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

Rev 477 Rev 483
Line 5... Line 5...
5
'''
5
'''
6
 
6
 
7
from shop2020.logistics.service.impl import DataService
7
from shop2020.logistics.service.impl import DataService
8
from shop2020.logistics.service.impl.DataService import AWB, Provider, Shipment,\
8
from shop2020.logistics.service.impl.DataService import AWB, Provider, Shipment,\
9
    ShipmentUpdate, DeliveryEstimate, PincodeWarehouseMapping
9
    ShipmentUpdate, DeliveryEstimate, PincodeWarehouseMapping
-
 
10
from shop2020.thriftpy.logistics.ttypes import LogisticsServiceException
10
from shop2020.utils.Utils import log_entry, to_py_date, to_java_date
11
from shop2020.utils.Utils import log_entry, to_py_date, to_java_date
11
from elixir import session
12
from elixir import session
12
import datetime
13
import datetime
13
 
14
 
14
def initialize():
15
def initialize():
15
    log_entry("initialize@DataAccessor", "Initializing data service")
16
    log_entry("initialize@DataAccessor", "Initializing data service")
16
    DataService.initialize()
17
    DataService.initialize()
17
 
18
 
-
 
19
def get_logistics_info(destination_pincode, sku_id):
-
 
20
    query = PincodeWarehouseMapping.query.filter_by(pincode = destination_pincode)
-
 
21
    try:
-
 
22
        mapping = query.one()
-
 
23
    except:
-
 
24
        raise LogisticsServiceException(101, "no warehouse assigned to pincode")
-
 
25
    warehouse_id = mapping.warehouse_id
-
 
26
    warehouse_pincode = mapping.warehouse_pin
-
 
27
 
-
 
28
    query = DeliveryEstimate.query.filter_by(source_pin = warehouse_pincode)
-
 
29
    query = query.filter_by(destination_pin = destination_pincode)
-
 
30
    try: 
-
 
31
        delivery_estimate = query.one()
-
 
32
    except:
-
 
33
        raise LogisticsServiceException(102, "no provider to deliver to destination pincode")
-
 
34
    provider_id = delivery_estimate.provider_id
-
 
35
    airway_billno = get_empty_AWB(provider_id)
-
 
36
    
-
 
37
    query = query.filter_by(provider_id = provider_id)
-
 
38
    
-
 
39
    return warehouse_id, provider_id, airway_billno, delivery_estimate.delivery_time 
-
 
40
 
18
def get_provider_by_id(provider_id):
41
def get_provider_by_id(provider_id):
19
    query = Provider.query.filter_by(id=provider_id)
42
    query = Provider.query.filter_by(id=provider_id)
20
    try:
43
    try:
21
        return query.one()
44
        return query.one()
22
    except:
45
    except: