Rev 483 | Rev 642 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
'''Created on 29-Mar-2010@author: ashish'''from shop2020.thriftpy.model.v1.order.ttypes import Transaction as T_Transaction,\LineItem as T_LineItem, PaymentInfo, Payment, Order as T_Order, Alert as T_Alertfrom shop2020.utils.Utils import to_java_datefrom shop2020.utils import OrderStatusfrom shop2020.model.v1.order.impl.DataService import Alertsfrom shop2020.utils.OrderStatus import get_t_statusdef to_t_transaction(transaction):t_transaction = T_Transaction()t_transaction.id = transaction.idt_transaction.createdOn = to_java_date(transaction.createdOn)t_transaction.transactionStatus = OrderStatus.get_t_status(transaction.status)t_transaction.statusDescription = transaction.status_messaget_transaction.customer_id = transaction.customer_idt_transaction.shoppingCartid = transaction.shopping_cart_idt_transaction.orders = []#populate ordersfor order in transaction.orders:t_order = to_t_order(order)t_transaction.orders.append(t_order)return t_transactiondef to_t_order(order):t_order = T_Order()t_order.id = order.idt_order.warehouse_id = order.warehouse_idt_order.logistics_provider_id = order.logistics_provider_idt_order.airwaybill_no = order.airwaybill_not_order.tracking_id = order.tracking_idt_order.expected_delivery_time = to_java_date(order.expected_delivery_time)t_order.customer_id = order.customer_idt_order.customer_name = order.customer_namet_order.customer_mobilenumber = order.customer_mobilenumbert_order.customer_pincode = order.customer_pincodet_order.customer_address = order.customer_addresst_order.customer_email = order.customer_emailt_order.status = OrderStatus.get_t_status(order.status)t_order.statusDescription = order.statusDescriptiont_order.total_amount = order.total_amountt_order.total_weight = order.total_weightt_order.created_timestamp = to_java_date(order.created_timestamp)t_order.invoice_number = order.invoice_numbert_order.billed_by = order.billed_byt_order.accepted_timestamp = order.accepted_timestampt_order.billing_timestamp = order.billing_timestampt_order.shipping_timestamp = order.shipping_timestampt_order.delivery_timestamp = order.delivery_timestampt_order.lineitems = []for lineitem in order.lineitems:t_lineitem = to_t_lineitem(lineitem)t_order.lineitems.append(t_lineitem)return t_orderdef to_t_lineitem(lineitem):t_lineitem = T_LineItem()t_lineitem.id = lineitem.idt_lineitem.sku_id = lineitem.sku_idt_lineitem.unit_weight = lineitem.unit_weightt_lineitem.unit_price = lineitem.unit_pricet_lineitem.total_price = lineitem.total_pricet_lineitem.total_weight = lineitem.total_weightt_lineitem.quantity = lineitem.quantityt_lineitem.model_number = lineitem.model_numbert_lineitem.model_name = lineitem.model_namet_lineitem.extra_info = lineitem.extra_infot_lineitem.brand = lineitem.brandreturn t_lineitemdef to_t_payment_info(payments):t_payment_info = PaymentInfo()if payments:payment_map = {}for payment in payments:t_payment_info.id = payment.idt_payment = Payment()t_payment.merchant_tx_id = payment.merchant_tx_idt_payment.bank_tx_id = payment.bank_tx_idt_payment.mode = payment.modet_payment.amount = payment.amountt_payment.status = payment.statust_payment.description = payment.status_messaget_payment.submissionTimestamp = to_java_date(payment.start_time)t_payment.completionTimestamp = to_java_date(payment.finish_time)payment_map[t_payment.submissionTimestamp] = t_paymentt_payment_info.payments = payment_mapreturn t_payment_infodef to_t_alert(alert):t_alert = T_Alert()t_alert.id = alert.idt_alert.comment = alert.commenttry:t_alert.time_set = to_java_date(alert.time_set)except:passtry:t_alert.time_unset = to_java_date(alert.time_unset)except:passt_alert.order_id = alert.order_idt_alert.type = alert.typereturn t_alert"""def to_t_transaction(transaction):t_transaction = T_Transaction()t_transaction.id = transaction.idt_transaction.warehouse_id = transaction.warehouse_idt_transaction.createdOn = to_java_date(transaction.createdOn)t_transaction.transactionStatus = OrderStatus.get_t_status(transaction.status)t_transaction.statusDescription = transaction.status_messaget_transaction.expectedDeliveryTime = to_java_date(transaction.expected_delivery_time)t_transaction.customer_id = transaction.customer_idt_transaction.shoppingCartid = transaction.shopping_cart_idt_transaction.orderInfo = to_t_order_info(transaction.lineitems)t_transaction.shipmentInfo = to_t_shipment_info(transaction.shipments)t_transaction.billingInfo = to_t_billing_info(transaction.lineitems)t_transaction.paymentInfo = to_t_payment_info(transaction.payments)#populate order inforeturn t_transactiondef to_t_payment_info(payments):t_payment_info = PaymentInfo()if payments:payment_map = {}for payment in payments:t_payment_info.id = payment.idt_payment = Payment()t_payment.merchant_tx_id = payment.merchant_tx_idt_payment.bank_tx_id = payment.bank_tx_idt_payment.mode = payment.modet_payment.amount = payment.amountt_payment.status = payment.statust_payment.description = payment.status_messaget_payment.submissionTimestamp = to_java_date(payment.start_time)t_payment.completionTimestamp = to_java_date(payment.finish_time)payment_map[t_payment.submissionTimestamp] = t_paymentt_payment_info.payments = payment_mapreturn t_payment_infodef to_t_billing_info(lineitems):t_billing_info = BillingInfo()if lineitems:billed_items = []billings = []for item in lineitems:#each item has a billingt_billing_info.id = item.transaction.idbilling = item.billingif billing:if billed_items.count(billing.id) == 0:billed_items.append(billing.id)billings.append(to_t_billing(billing))t_billing_info.billings = billingsreturn t_billing_infodef to_t_order_info(lineitems):t_order_info = T_OrderInfo()if lineitems:line_item_list = []for lineitem in lineitems:t_order_info.id = lineitem.transaction.idline_item_list.append(to_t_lineitem(lineitem))t_order_info.lineitems = line_item_listreturn t_order_infodef to_t_shipment_info(shipments):shipment_info = ShipmentInfo()if shipments:shipment_list = []for shipment in shipments:shipment_info.id = shipment.transaction.idshipment_list.append(to_t_shipment(shipment))shipment_info.shipments = shipment_listreturn shipment_infodef to_t_billing(billing):t_billing = T_Billing()t_billing.id = billing.idt_billing.billNumber = billing.bill_numbert_billing.generatedBy = billing.generated_bytry:t_billing.generatedTimestamp = to_java_date(billing.created_on)except:print "date not found"t_billing.lineItem = []if billing.line_item:for item in billing.line_item:t_billing.lineItem.append(to_t_lineitem(item))return t_billingdef to_t_lineitem(lineitem):t_line_item = T_LineItem()try:t_line_item.id = lineitem.idexcept:t_line_item.id = 0if lineitem.item_info:t_line_item.item = to_t_item_info(lineitem.item_info)t_line_item.addedOn = to_java_date(lineitem.added_on)t_line_item.additionalInfo = {}if lineitem.additional_info:for k,v in lineitem.additional_info.iteritems():t_line_item.additionalInfo[k] = vreturn t_line_itemdef to_t_item_info(item_info):t_item = Item()t_item.id = item_info.line_item.item_idt_item.price = item_info.pricet_item.weight = item_info.weightreturn t_itemdef to_t_shipment(shipment):t_shipment = T_Shipment()t_shipment.id = shipment.idt_shipment.address = shipment.addresst_shipment.airwayBillNo = shipment.airway_bill_notry:t_shipment.deliveryTimestamp = to_java_date(shipment.delivery_time)except:print "no delivery timestamp"t_shipment.insurance = shipment.insurance_valuet_shipment.provider = shipment.providert_shipment.value = shipment.declared_valuetry:t_shipment.shipmentTimestamp = to_java_date(shipment.shipment_time)except:print "no shipment timestamp"t_shipment.status = get_t_status(shipment.status)t_shipment.weight = shipment.weightt_shipment.trackingId = shipment.tracking_idt_shipment.lineItems = []if shipment.lineitems:for line_item in shipment.lineitems:t_shipment.lineItems.append(to_t_lineitem(line_item))return t_shipmentdef to_t_alert(alert):t_alert = T_Alert()t_alert.id = alert.idt_alert.comment = alert.commenttry:t_alert.time_set = to_java_date(alert.time_set)except:passtry:t_alert.time_unset = to_java_date(alert.time_unset)except:passt_alert.transaction_id = alert.transaction_idt_alert.type = alert.typereturn t_alertdef to_t_extra_item_info(extra_item_info, transaction_id):extra_order_info = T_ExtraOrderInfo()if not extra_item_info:extra_order_info.id = 2extra_order_info.model_name = "N 72"extra_order_info.sku_id = 34extra_order_info.transaction_id = transaction_idextra_order_info.vendor_info = "Nokia"extra_order_info.colour = "Black"return extra_order_infoextra_order_info.id = extra_item_info.idextra_order_info.model_name = extra_item_info.modelextra_order_info.vendor_info = extra_item_info.vendorextra_order_info.transaction_id = extra_item_info.transaction_idextra_order_info.sku_id = extra_item_info.sku_idreturn extra_order_info"""