Subversion Repositories SmartDukaan

Rev

Rev 477 | Rev 494 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
412 ashish 1
'''
2
Created on 05-Aug-2010
3
 
4
@author: ashish
5
'''
483 rajveer 6
from shop2020.thriftpy.logistics.ttypes import Shipment, LogisticsInfo
442 rajveer 7
from shop2020.logistics.service.impl.DataAccessor import add_empty_AWBs, get_empty_AWB,\
8
    get_provider, get_shipment_info, get_shipments, get_todays_shipments, initialize,\
477 rajveer 9
    get_providers, create_shipment, update_shipment_status, get_logistics_estimation, add_delivery_estimate,\
483 rajveer 10
    add_pincode_warehouse_mapping, get_logistics_info
442 rajveer 11
from shop2020.logistics.service.impl.Converters import to_t_provider,\
472 rajveer 12
    to_t_shipment, to_t_shipmentstatusinfo, to_t_shipmentupdate, to_t_itemLogistics
442 rajveer 13
 
14
from shop2020.utils.Utils import log_entry, to_py_date
472 rajveer 15
 
412 ashish 16
class LogisticsServiceHandler:
17
 
442 rajveer 18
    def __init__(self):
19
        initialize()
483 rajveer 20
 
21
    def getLogisticsInfo(self, destination_pincode, sku_id):
22
        """
23
        Parameters:
24
         - destination_pincode
25
         - sku_id
26
        """
27
        warehouse_id, provider_id, airway_billno, delivery_time = get_logistics_info(destination_pincode, sku_id)
28
        logistics_info = LogisticsInfo()
29
        logistics_info.airway_billno = airway_billno
30
        logistics_info.warehouse_id = warehouse_id
31
        logistics_info.delivery_estimate = delivery_time
32
        logistics_info.provider_id = provider_id
33
        return logistics_info
34
 
412 ashish 35
    def addEmptyAWBs(self, numbers, provider_id):
36
        """
37
        Parameters:
38
         - numbers
39
         - provider_id
40
        """
442 rajveer 41
        add_empty_AWBs(numbers, provider_id)
412 ashish 42
 
43
    def getEmptyAWB(self, provider_id):
44
        """
45
        Parameters:
46
         - provider_id
47
        """
442 rajveer 48
        return get_empty_AWB(provider_id)
412 ashish 49
 
442 rajveer 50
    def getProviders(self):
51
        """
52
        Parameters:
53
        """
54
        log_entry(self, "all providers requested")
55
 
56
        providers = get_providers()
57
        ret_providers = []
58
        for provider in providers:
59
            if provider:
60
                ret_providers.append(to_t_provider(provider))
61
        return ret_providers
62
 
412 ashish 63
 
64
    def getProvider(self, provider_id):
65
        """
66
        Parameters:
67
         - provider_id
68
        """
442 rajveer 69
        return to_t_provider(get_provider(provider_id))
412 ashish 70
 
442 rajveer 71
    def createShipment(self, shipment):
72
        """
73
        Parameters:
74
         - shipment
75
        """
76
        return create_shipment(shipment)
77
 
78
 
79
    def updateShipmentStatus(self, awb, shipment_update):
80
        """
81
        Parameters:
82
         - awb
83
         - shipment_update
84
        """
85
        return update_shipment_status(awb, shipment_update)
86
 
87
 
412 ashish 88
    def getShipmentInfo(self, awb):
89
        """
90
        Parameters:
91
         - awb
92
        """
442 rajveer 93
        return to_t_shipmentstatusinfo(get_shipment_info(awb))
412 ashish 94
 
95
    def getShipments(self, warehouse_id, from_date, to_date, provider_id):
96
        """
97
        Parameters:
98
         - warehouse_id
99
         - from_date
100
         - to_date
101
         - provider_id
102
        """
442 rajveer 103
        log_entry(self, "all shipments requested")
104
 
105
        from_datetime = to_py_date(from_date)
106
        to_datetime = to_py_date(to_date)
107
 
108
        shipments = get_shipments(warehouse_id, from_datetime, to_datetime, provider_id)
109
        ret_shipments = []
110
        for shipment in shipments:
111
            if shipment:
112
                ret_shipments.append(to_t_shipment(shipment))
113
        return ret_shipments
412 ashish 114
 
472 rajveer 115
    def getLogisticsEstimation(self, itemId, destination_pin, provider_id):
116
        """
117
        Parameters:
118
         - itemId
119
         - destination_pin
120
        """
121
 
477 rajveer 122
        delivery_estimate, warehouse_id = get_logistics_estimation(itemId, destination_pin, provider_id)
472 rajveer 123
        items_in_inventory = 100
477 rajveer 124
        return to_t_itemLogistics(delivery_estimate, items_in_inventory, warehouse_id)
442 rajveer 125
 
477 rajveer 126
    def addDeliveryEstimate(self, warahouse_id, destination_pin, provider_id, delivery_time, reliability):
472 rajveer 127
        """
128
        Parameters:
129
         - warahouse_id
130
         - destination_pin
131
         - provider_id
132
         - delivery_time
133
        """
477 rajveer 134
        add_delivery_estimate(warahouse_id, destination_pin, provider_id, delivery_time, reliability)
472 rajveer 135
 
477 rajveer 136
    def addPincodeWarehouseMapping(self, pincode, warehouse_id, warehouse_pin):
137
        """
138
        Parameters:
139
         - pincode
140
         - warehouse_id
141
         - warehouse_name
142
        """
143
        add_pincode_warehouse_mapping(pincode, warehouse_id, warehouse_pin)
144
 
412 ashish 145
    def getTodaysShipments(self, warehouse_id, provider_id):
146
        """
147
        Parameters:
148
         - warehouse_id
149
         - provider_id
150
        """
442 rajveer 151
 
152
        log_entry(self, "all shipments requested for today")
153
 
154
        shipments = get_todays_shipments(warehouse_id, provider_id)
155
        ret_shipments = []
156
        for shipment in shipments:
157
            if shipment:
158
                ret_shipments.append(to_t_shipment(shipment))
159
        return ret_shipments
160
 
161
'''
412 ashish 162
        shipments = []
163
        i = 0
164
        while i < 100:
165
            shipment = Shipment()
166
            shipment.warehouse_name = "Seattle"
167
            shipment.awb="1234"+str(i)
168
            shipment.destination="JP"
169
            shipment.origin = "US"
170
            shipment.recepient_address = "1, Microsoft Way, Redmond"
171
            shipment.recepient_name = "Steve Balmer"
172
            shipment.recepient_phone = "+14356368790"
173
            shipment.recepient_pincode = "110001"
174
            shipment.shipment_contents = "iPhone 4G"
175
            shipment.shipment_weight = "300 gms"
176
            shipments.append(shipment)
177
            i = i+1
178
        return shipments
472 rajveer 179
        '''
180
 
442 rajveer 181