Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
104 ashish 1
'''
2
Created on 29-Mar-2010
3
 
4
@author: ashish
5
'''
6
 
7
from shop2020.thriftpy.model.v1.order.ttypes import Transaction as T_Transaction,\
483 rajveer 8
    LineItem as T_LineItem, PaymentInfo, Payment, Order as T_Order, Alert as T_Alert
104 ashish 9
from shop2020.utils.Utils import to_java_date
10
from shop2020.utils import OrderStatus
483 rajveer 11
from shop2020.model.v1.order.impl.DataService import Alerts
12
 
104 ashish 13
from shop2020.utils.OrderStatus import get_t_status
14
 
15
def to_t_transaction(transaction):
16
    t_transaction = T_Transaction()
17
    t_transaction.id = transaction.id
483 rajveer 18
    t_transaction.createdOn = to_java_date(transaction.createdOn)
19
    t_transaction.transactionStatus = OrderStatus.get_t_status(transaction.status)
20
    t_transaction.statusDescription = transaction.status_message
21
    t_transaction.customer_id = transaction.customer_id
22
    t_transaction.shoppingCartid = transaction.shopping_cart_id
23
    t_transaction.orders = []
24
    #populate orders
25
    for order in transaction.orders:
26
        t_order = to_t_order(order)
27
        t_transaction.orders.append(t_order)
28
 
29
    return t_transaction
30
 
31
def to_t_order(order):
32
    t_order = T_Order()
33
    t_order.id = order.id
34
    t_order.warehouse_id = order.warehouse_id
35
    t_order.logistics_provider_id = order.logistics_provider_id
36
    t_order.airwaybill_no = order.airwaybill_no
37
    t_order.tracking_id = order.tracking_id
38
    t_order.expected_delivery_time = to_java_date(order.expected_delivery_time)
39
    t_order.customer_id = order.customer_id
40
    t_order.customer_name = order.customer_name
41
    t_order.customer_mobilenumber = order.customer_mobilenumber
42
    t_order.customer_pincode = order.customer_pincode
43
    t_order.customer_address = order.customer_address
669 chandransh 44
    t_order.customer_city = order.customer_city
45
    t_order.customer_state = order.customer_state
483 rajveer 46
    t_order.customer_email = order.customer_email    
494 rajveer 47
    t_order.status = OrderStatus.get_t_status(order.status) 
483 rajveer 48
    t_order.statusDescription = order.statusDescription
49
    t_order.total_amount = order.total_amount
50
    t_order.total_weight = order.total_weight
51
    t_order.created_timestamp = to_java_date(order.created_timestamp)
52
    t_order.invoice_number = order.invoice_number
53
    t_order.billed_by = order.billed_by
54
    t_order.accepted_timestamp = order.accepted_timestamp
55
    t_order.billing_timestamp = order.billing_timestamp
56
    t_order.shipping_timestamp = order.shipping_timestamp
57
    t_order.delivery_timestamp = order.delivery_timestamp
642 chandransh 58
    t_order.jacket_number = order.jacket_number
483 rajveer 59
    t_order.lineitems = []
60
    for lineitem in order.lineitems:
61
        t_lineitem = to_t_lineitem(lineitem)
62
        t_order.lineitems.append(t_lineitem)
63
 
64
    return t_order
65
 
66
def to_t_lineitem(lineitem):
67
    t_lineitem = T_LineItem()
68
    t_lineitem.id = lineitem.id
69
    t_lineitem.sku_id = lineitem.sku_id
70
    t_lineitem.unit_weight = lineitem.unit_weight
71
    t_lineitem.unit_price = lineitem.unit_price
72
    t_lineitem.total_price = lineitem.total_price
73
    t_lineitem.total_weight = lineitem.total_weight 
669 chandransh 74
    t_lineitem.quantity = lineitem.quantity
75
    t_lineitem.color = lineitem.color
483 rajveer 76
    t_lineitem.model_number = lineitem.model_number
77
    t_lineitem.model_name = lineitem.model_name 
78
    t_lineitem.extra_info = lineitem.extra_info
79
    t_lineitem.brand = lineitem.brand
80
    return t_lineitem
81
 
82
def to_t_payment_info(payments):
83
    t_payment_info = PaymentInfo()
84
    if payments:
85
        payment_map = {}
86
        for payment in payments:
87
            t_payment_info.id = payment.id
88
            t_payment = Payment()
89
            t_payment.merchant_tx_id = payment.merchant_tx_id
90
            t_payment.bank_tx_id = payment.bank_tx_id
91
            t_payment.mode = payment.mode
92
            t_payment.amount = payment.amount
93
            t_payment.status = payment.status
94
            t_payment.description = payment.status_message
95
            t_payment.submissionTimestamp = to_java_date(payment.start_time)
96
            t_payment.completionTimestamp = to_java_date(payment.finish_time)
97
            payment_map[t_payment.submissionTimestamp] = t_payment
98
        t_payment_info.payments = payment_map
99
 
100
    return t_payment_info
101
 
102
def to_t_alert(alert):
103
    t_alert = T_Alert()
104
    t_alert.id = alert.id
105
    t_alert.comment = alert.comment
106
    try:
107
        t_alert.time_set = to_java_date(alert.time_set)
108
    except:
109
        pass
110
    try:
111
        t_alert.time_unset = to_java_date(alert.time_unset)
112
    except:
113
        pass
114
    t_alert.order_id = alert.order_id
115
    t_alert.type = alert.type
116
    return t_alert
117
 
118
 
119
"""
120
def to_t_transaction(transaction):
121
    t_transaction = T_Transaction()
122
    t_transaction.id = transaction.id
358 ashish 123
    t_transaction.warehouse_id = transaction.warehouse_id
104 ashish 124
    t_transaction.createdOn = to_java_date(transaction.createdOn)
125
    t_transaction.transactionStatus = OrderStatus.get_t_status(transaction.status)
194 ashish 126
    t_transaction.statusDescription = transaction.status_message
132 ashish 127
    t_transaction.expectedDeliveryTime = to_java_date(transaction.expected_delivery_time)
128
    t_transaction.customer_id = transaction.customer_id
129
    t_transaction.shoppingCartid = transaction.shopping_cart_id
130
    t_transaction.orderInfo = to_t_order_info(transaction.lineitems)
131
    t_transaction.shipmentInfo = to_t_shipment_info(transaction.shipments)
132
    t_transaction.billingInfo = to_t_billing_info(transaction.lineitems)
133
    t_transaction.paymentInfo = to_t_payment_info(transaction.payments)
358 ashish 134
 
132 ashish 135
    #populate order info
104 ashish 136
 
137
    return t_transaction
138
 
132 ashish 139
def to_t_payment_info(payments):
140
    t_payment_info = PaymentInfo()
141
    if payments:
142
        payment_map = {}
143
        for payment in payments:
144
            t_payment_info.id = payment.id
145
            t_payment = Payment()
146
            t_payment.merchant_tx_id = payment.merchant_tx_id
147
            t_payment.bank_tx_id = payment.bank_tx_id
148
            t_payment.mode = payment.mode
149
            t_payment.amount = payment.amount
150
            t_payment.status = payment.status
151
            t_payment.description = payment.status_message
194 ashish 152
            t_payment.submissionTimestamp = to_java_date(payment.start_time)
153
            t_payment.completionTimestamp = to_java_date(payment.finish_time)
132 ashish 154
            payment_map[t_payment.submissionTimestamp] = t_payment
155
        t_payment_info.payments = payment_map
156
 
157
    return t_payment_info
158
 
159
def to_t_billing_info(lineitems):
160
    t_billing_info = BillingInfo()
161
    if lineitems:
162
        billed_items = []
163
        billings = []
164
        for item in lineitems:
165
            #each item has a billing
166
            t_billing_info.id = item.transaction.id 
167
            billing = item.billing
168
            if billing:
169
                if billed_items.count(billing.id) == 0:
170
                    billed_items.append(billing.id)
171
                    billings.append(to_t_billing(billing))
172
        t_billing_info.billings = billings
173
    return t_billing_info
174
 
175
def to_t_order_info(lineitems):
176
    t_order_info = T_OrderInfo()
177
    if lineitems:
178
        line_item_list = []
179
        for lineitem in lineitems:
180
            t_order_info.id = lineitem.transaction.id
181
            line_item_list.append(to_t_lineitem(lineitem))
182
        t_order_info.lineitems = line_item_list
183
    return t_order_info
184
 
185
def to_t_shipment_info(shipments):
186
    shipment_info = ShipmentInfo()
187
    if shipments:
188
        shipment_list = []
189
        for shipment in shipments:
190
            shipment_info.id = shipment.transaction.id
191
            shipment_list.append(to_t_shipment(shipment))
192
        shipment_info.shipments = shipment_list
193
    return shipment_info
194
 
104 ashish 195
def to_t_billing(billing):
196
    t_billing = T_Billing()
197
    t_billing.id = billing.id
198
    t_billing.billNumber = billing.bill_number
199
    t_billing.generatedBy = billing.generated_by
132 ashish 200
    try:
201
        t_billing.generatedTimestamp = to_java_date(billing.created_on)
202
    except:
203
        print "date not found"
194 ashish 204
    t_billing.lineItem = []
205
    if billing.line_item:
206
        for item in billing.line_item:
207
            t_billing.lineItem.append(to_t_lineitem(item))
208
 
132 ashish 209
    return t_billing
210
 
104 ashish 211
def to_t_lineitem(lineitem):
212
    t_line_item = T_LineItem()
194 ashish 213
    try:
214
        t_line_item.id = lineitem.id
215
    except:
216
        t_line_item.id = 0
132 ashish 217
    if lineitem.item_info:
218
        t_line_item.item = to_t_item_info(lineitem.item_info)
219
 
104 ashish 220
    t_line_item.addedOn = to_java_date(lineitem.added_on)
221
    t_line_item.additionalInfo = {}
222
    if lineitem.additional_info:
223
        for k,v in lineitem.additional_info.iteritems():
224
            t_line_item.additionalInfo[k] = v
225
    return t_line_item
226
 
132 ashish 227
def to_t_item_info(item_info):
228
    t_item = Item()
229
    t_item.id = item_info.line_item.item_id
230
    t_item.price = item_info.price
231
    t_item.weight = item_info.weight
232
    return t_item
233
 
104 ashish 234
def to_t_shipment(shipment):
235
    t_shipment = T_Shipment()
236
    t_shipment.id = shipment.id
237
    t_shipment.address = shipment.address
238
    t_shipment.airwayBillNo = shipment.airway_bill_no
239
    try:
240
        t_shipment.deliveryTimestamp = to_java_date(shipment.delivery_time)
241
    except:
242
        print "no delivery timestamp"
243
    t_shipment.insurance = shipment.insurance_value
244
    t_shipment.provider = shipment.provider
245
    t_shipment.value = shipment.declared_value
246
    try:
247
        t_shipment.shipmentTimestamp = to_java_date(shipment.shipment_time)
248
    except:
249
        print "no shipment timestamp"
250
    t_shipment.status = get_t_status(shipment.status)
251
    t_shipment.weight = shipment.weight
252
    t_shipment.trackingId = shipment.tracking_id
253
 
254
    t_shipment.lineItems = []
194 ashish 255
    if shipment.lineitems:
256
        for line_item in shipment.lineitems:
104 ashish 257
            t_shipment.lineItems.append(to_t_lineitem(line_item))
258
    return t_shipment
132 ashish 259
 
304 ashish 260
def to_t_alert(alert):
261
    t_alert = T_Alert()
262
    t_alert.id = alert.id
263
    t_alert.comment = alert.comment
264
    try:
265
        t_alert.time_set = to_java_date(alert.time_set)
266
    except:
267
        pass
268
    try:
269
        t_alert.time_unset = to_java_date(alert.time_unset)
270
    except:
271
        pass
272
    t_alert.transaction_id = alert.transaction_id
273
    t_alert.type = alert.type
274
    return t_alert
275
 
276
def to_t_extra_item_info(extra_item_info, transaction_id):
277
 
278
    extra_order_info = T_ExtraOrderInfo()
279
    if not extra_item_info:
280
        extra_order_info.id = 2
281
        extra_order_info.model_name = "N 72"
282
        extra_order_info.sku_id = 34
283
        extra_order_info.transaction_id = transaction_id
284
        extra_order_info.vendor_info = "Nokia"
285
        extra_order_info.colour = "Black"
286
        return extra_order_info
287
 
288
    extra_order_info.id = extra_item_info.id
289
    extra_order_info.model_name = extra_item_info.model
290
    extra_order_info.vendor_info = extra_item_info.vendor
291
    extra_order_info.transaction_id = extra_item_info.transaction_id
292
    extra_order_info.sku_id = extra_item_info.sku_id
483 rajveer 293
    return extra_order_info
294
"""