Subversion Repositories SmartDukaan

Rev

Rev 2687 | Blame | Compare with Previous | Last modification | View Log | RSS feed

'''
Created on 25-Jul-2011

@author: Chandranshu
'''

import datetime

from elixir.entity import Entity
from elixir.fields import Field
from sqlalchemy.types import String, Integer, DateTime, Boolean, Float
from elixir.options import using_options, using_table_options

from shop2020.thriftpy.model.v1.order.ttypes import ReturnOrder as TReturnOrder
from shop2020.utils.Utils import to_java_date

class ReturnOrder(Entity):
    '''
    classdocs
    '''
    orderId = Field(Integer, primary_key=True)
    warehouseId = Field(Integer)
    jacketNumber = Field(Integer)
    invoiceNumber = Field(String(30))
    itemId = Field(Integer)
    productGroup = Field(String(100))
    brand = Field(String(100))
    modelNumber = Field(String(50))
    modelName = Field(String(50))
    color = Field(String(20))
    totalPrice = Field(Float)
    transferPrice = Field(Float)
    processedStatus = Field(Boolean)
    createdAt = Field(DateTime)
    processedAt = Field(DateTime)
    using_options(shortnames=True)
    using_table_options(mysql_engine="InnoDB")

    def __init__(self, order):
        '''
        Constructor
        '''
        self.orderId = order.id
        self.warehouseId = order.warehouse_id
        self.jacketNumber = order.jacket_number
        self.invoiceNumber = order.invoice_number
        
        line_item = order.lineitems[0]
        self.itemId = line_item.item_id
        self.productGroup = line_item.productGroup
        self.brand = line_item.brand
        self.modelNumber = line_item.model_number
        self.modelName = line_item.model_name
        self.color = line_item.color
        self.totalPrice = line_item.total_price
        self.transferPrice = line_item.transfer_price
        self.processedStatus = False
        self.createdAt = datetime.datetime.now()
    
    def to_thrift_object(self):
        '''
        Returns the thrift object corresponding to this ReturnOrder.
        '''
        t_return_order = TReturnOrder()
        t_return_order.orderId = self.orderId
        t_return_order.warehouseId = self.warehouseId
        t_return_order.jacketNumber = self.jacketNumber
        t_return_order.invoiceNumber = self.invoiceNumber
        t_return_order.itemId = self.itemId
        t_return_order.productGroup = self.productGroup
        t_return_order.brand = self.brand
        t_return_order.modelNumber = self.modelNumber
        t_return_order.modelName = self.modelName
        t_return_order.color = self.color
        t_return_order.totalPrice = self.totalPrice
        t_return_order.transferPrice = self.transferPrice
        t_return_order.processedStatus = self.processedStatus
        t_return_order.createdAt = to_java_date(self.createdAt)
        if self.processedAt is not None:
            t_return_order.processedAt = to_java_date(self.processedAt)
        return t_return_order