Subversion Repositories SmartDukaan

Rev

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