Subversion Repositories SmartDukaan

Rev

Rev 6726 | Rev 7075 | 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, Order as T_Order, Alert as T_Alert, OrderStatus, DelayReason, \
    PaymentSettlement as T_PaymentSettlement, CODVerificationAgent as T_CODVerificationAgent, \
    Attribute as T_Attribute, EmiScheme as T_EmiScheme
from shop2020.utils.Utils import to_java_date
from shop2020.model.v1.order.impl.DataService import Alert, Transaction

def to_t_transaction(transaction):
    t_transaction = T_Transaction()
    t_transaction.id = transaction.id
    t_transaction.createdOn = to_java_date(transaction.createdOn)
    t_transaction.transactionStatus = transaction.status
    t_transaction.statusDescription = transaction.status_message
    t_transaction.customer_id = transaction.customer_id
    t_transaction.shoppingCartid = transaction.shopping_cart_id
    t_transaction.coupon_code = transaction.coupon_code
    t_transaction.sessionSource = transaction.session_source
    t_transaction.sessionStartTime = to_java_date(transaction.session_start_time)
    t_transaction.firstSource = transaction.first_source
    t_transaction.firstSourceTime = to_java_date(transaction.first_source_start_time)
    t_transaction.orders = []
    #populate orders
    for order in transaction.orders:
        t_order = to_t_order(order)
        t_transaction.orders.append(t_order)
    return t_transaction

def to_t_order(order):
    t_order = T_Order()
    t_order.id = order.id
    t_order.warehouse_id = order.warehouse_id
    t_order.logistics_provider_id = order.logistics_provider_id
    if order.doa_logistics_provider_id is not None:
        t_order.doa_logistics_provider_id = order.doa_logistics_provider_id
    t_order.airwaybill_no = order.airwaybill_no
    t_order.tracking_id = order.tracking_id
    t_order.expected_delivery_time = to_java_date(order.expected_delivery_time)
    t_order.promised_delivery_time = to_java_date(order.promised_delivery_time)
    t_order.expected_shipping_time = to_java_date(order.expected_shipping_time)
    t_order.promised_shipping_time = to_java_date(order.promised_shipping_time)
    t_order.courier_delivery_time = to_java_date(order.courier_delivery_time)
    t_order.customer_id = order.customer_id
    t_order.customer_name = order.customer_name
    t_order.customer_mobilenumber = order.customer_mobilenumber
    t_order.customer_pincode = order.customer_pincode
    t_order.customer_address1 = order.customer_address1
    t_order.customer_address2 = order.customer_address2
    t_order.customer_city = order.customer_city
    t_order.customer_state = order.customer_state
    t_order.customer_email = order.customer_email    
    t_order.status = order.status 
    t_order.statusDescription = order.statusDescription
    t_order.total_amount = order.total_amount
    t_order.gvAmount = order.gvAmount
    t_order.total_weight = order.total_weight
    t_order.created_timestamp = to_java_date(order.created_timestamp)
    t_order.invoice_number = order.invoice_number
    t_order.billed_by = order.billed_by
    t_order.accepted_timestamp = to_java_date(order.accepted_timestamp)
    t_order.billing_timestamp = to_java_date(order.billing_timestamp)
    t_order.shipping_timestamp = to_java_date(order.shipping_timestamp)
    t_order.delivery_timestamp = to_java_date(order.delivery_timestamp)
    t_order.outofstock_timestamp = to_java_date(order.outofstock_timestamp)
    t_order.verification_timestamp = to_java_date(order.verification_timestamp)
    t_order.jacket_number = order.jacket_number
    t_order.receiver = order.receiver
    t_order.batchNo = order.batchNo
    t_order.serialNo = order.serialNo
    t_order.doaFlag = order.doaFlag
    t_order.pickupRequestNo = order.pickupRequestNo
    t_order.cod = order.cod
    t_order.originalOrderId = order.originalOrderId
    if order.delay_reason:
        t_order.delayReason = DelayReason._NAMES_TO_VALUES[order.delay_reason]
    t_order.delayReasonText = order.delayReasonText
    t_order.transactionId = order.transaction_id
    t_order.lineitems = []
    for lineitem in order.lineitems:
        t_lineitem = to_t_lineitem(lineitem)
        t_order.lineitems.append(t_lineitem)
    if order.reship_timestamp:
        t_order.reship_timestamp = to_java_date(order.reship_timestamp)
    if order.refund_timestamp:
        t_order.refund_timestamp = to_java_date(order.refund_timestamp)
    if order.doa_auth_timestamp:
        t_order.doa_auth_timestamp = to_java_date(order.doa_auth_timestamp)
    if order.new_order_id:
        t_order.new_order_id = order.new_order_id
    t_order.pickup_timestamp = to_java_date(order.pickup_timestamp)
    t_order.previousStatus = order.previousStatus
    t_order.vendorId = order.vendorId
    t_order.refundReason = order.refund_reason
    t_order.fulfilmentWarehouseId = order.fulfilmentWarehouseId
    t_order.vendorPaid = order.vendor_paid
    if order.purchase_order_id:
        t_order.purchaseOrderId = order.purchase_order_id
    if order.received_return_timestamp:
        t_order.received_return_timestamp = to_java_date(order.received_return_timestamp)
    if order.first_dlvyatmp_timestamp:
        t_order.first_attempt_timestamp = to_java_date(order.first_dlvyatmp_timestamp)
    t_order.orderType = order.orderType
    t_order.pickupStoreId = order.pickupStoreId
    t_order.logisticsCod = not order.pickupStoreId and order.cod
    t_order.otg = order.otg
    t_order.insurer = order.insurer
    t_order.insuranceAmount = order.insuranceAmount
    return t_order

def to_t_lineitem(lineitem):
    t_lineitem = T_LineItem()
    t_lineitem.id = lineitem.id
    t_lineitem.item_id = lineitem.item_id
    t_lineitem.productGroup = lineitem.productGroup
    t_lineitem.brand = lineitem.brand
    t_lineitem.model_number = lineitem.model_number
    t_lineitem.color = lineitem.color
    t_lineitem.model_name = lineitem.model_name
    t_lineitem.extra_info = lineitem.extra_info
    t_lineitem.unit_weight = lineitem.unit_weight
    t_lineitem.unit_price = lineitem.unit_price
    t_lineitem.total_price = lineitem.total_price
    t_lineitem.transfer_price = lineitem.transfer_price
    t_lineitem.total_weight = lineitem.total_weight 
    t_lineitem.quantity = lineitem.quantity
    t_lineitem.item_number = lineitem.item_number
    t_lineitem.serial_number = lineitem.serial_number
    t_lineitem.dealText = lineitem.dealText
    t_lineitem.warrantry_expiry_timestamp = to_java_date(lineitem.warranty_expiry_timestamp)
    t_lineitem.vatRate = lineitem.vatRate
    
    return t_lineitem

def to_t_alert(alert):
    t_alert = T_Alert()
    t_alert.id = alert.id
    t_alert.description = alert.description
    try:
        t_alert.timestamp = to_java_date(alert.timestamp)
    except:
        pass
    t_alert.type = alert.type
    t_alert.status = alert.status
    return t_alert

def to_t_payment_settlement(payment_settlement):
    t_payment_settlement = T_PaymentSettlement()
    
    if payment_settlement:
        t_payment_settlement.referenceId = payment_settlement.referenceId
        t_payment_settlement.paymentGatewayId = payment_settlement.paymentGatewayId
        t_payment_settlement.settlementDate = to_java_date(payment_settlement.settlementDate)
        t_payment_settlement.serviceTax = payment_settlement.serviceTax
        t_payment_settlement.otherCharges = payment_settlement.otherCharges
        t_payment_settlement.netCollection = payment_settlement.netCollection
    return t_payment_settlement

def to_t_verification_agent(codVerificationAgent):
    t_verification_agent = T_CODVerificationAgent()
    
    if codVerificationAgent:
        t_verification_agent.orderId = codVerificationAgent.orderId
        t_verification_agent.agentEmailId = codVerificationAgent.verificationAgent
    return t_verification_agent    

def to_t_attribute(attribute):
    t_attribute = T_Attribute() 
    if attribute:
        t_attribute.name = attribute.name
        t_attribute.value = attribute.value
    return t_attribute

def to_t_emi_scheme(emi_scheme):
    t_emi_scheme = T_EmiScheme()
    if emi_scheme:
        t_emi_scheme.id = emi_scheme.id
        t_emi_scheme.bankId = emi_scheme.bankId
        t_emi_scheme.bankName = emi_scheme.bankName
        t_emi_scheme.gatewayId = emi_scheme.gatewayId
        t_emi_scheme.tenure = emi_scheme.tenure
        t_emi_scheme.tenureDescription = emi_scheme.tenureDescription
        t_emi_scheme.minAmount = emi_scheme.minAmount
        t_emi_scheme.chargeType = emi_scheme.chargeType
        t_emi_scheme.chargeValue = emi_scheme.chargeValue
    return t_emi_scheme