Subversion Repositories SmartDukaan

Rev

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