Rev 7672 | Rev 12357 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
'''Created on 29-Jul-2011@author: Chandranshu'''from elixir.entity import Entityfrom elixir.fields import Fieldfrom elixir.options import using_options, using_table_optionsfrom elixir.relationships import ManyToOnefrom shop2020.thriftpy.purchase.ttypes import LineItem as TLineItemfrom shop2020.utils.Utils import to_java_datefrom sqlalchemy.types import Integer, String, Float, DateTime, Booleanimport datetimeclass LineItem(Entity):'''classdocs'''purchaseOrder = ManyToOne("PurchaseOrder", primary_key=True)itemId = Field(Integer, primary_key=True, autoincrement=False)productGroup = Field(String(100))brand = Field(String(100))modelNumber = Field(String(50))modelName = Field(String(50))color = Field(String(20))itemNumber = Field(String(20))quantity = Field(Float)unfulfilledQuantity = Field(Float)createdAt = Field(DateTime)unitPrice = Field(Float)nlc = Field(Float)fulfilled = Field(Boolean)availableQuantity = Field(Integer)reservedQuantity = Field(Integer)avgSales = Field(Float)minStockLevel = Field(Integer)numberOfDaysStock = Field(Integer)suggestedQuantity = Field(Integer)numberOfDaysInStock = Field(Integer)rtoOrders = Field(Integer)lastXdaysSale = Field(String(50))previouslyOrderedQty = Field(Integer)using_options(shortnames=True)using_table_options(mysql_engine="InnoDB")def __init__(self, purchase_order, t_line_item):'''Constructor'''self.purchaseOrder = purchase_orderself.itemId = t_line_item.itemIdself.productGroup = t_line_item.productGroupself.brand = t_line_item.brandself.modelNumber = t_line_item.modelNumberself.modelName = t_line_item.modelNameself.color = t_line_item.colorself.itemNumber = t_line_item.itemNumberself.quantity = t_line_item.quantityself.unfulfilledQuantity = t_line_item.unfulfilledQuantityself.createdAt = datetime.datetime.now()self.unitPrice = t_line_item.unitPriceself.nlc = t_line_item.nlcself.fulfilled = Falseself.availableQuantity = t_line_item.availableQuantityself.reservedQuantity = t_line_item.reservedQuantityself.avgSales = t_line_item.avgSalesself.minStockLevel = t_line_item.minStockLevelself.numberOfDaysStock = t_line_item.numberOfDaysStockself.rtoOrders = t_line_item.rtoOrdersself.suggestedQuantity = t_line_item.suggestedQuantityself.numberOfDaysInStock = t_line_item.numberOfDaysInStockself.lastXdaysSale = t_line_item.lastXdaysSaleself.previouslyOrderedQty = t_line_item.previouslyOrderedQtydef to_thrift_object(self):t_line_item = TLineItem()t_line_item.orderId = self.purchaseOrder.idt_line_item.itemId = self.itemId#TODO: Fetch the next 5 items from the catalog servicet_line_item.productGroup = self.productGroupt_line_item.brand = self.brandt_line_item.modelNumber = self.modelNumbert_line_item.modelName = self.modelNamet_line_item.color = self.colort_line_item.itemNumber = self.itemNumbert_line_item.quantity = self.quantityif t_line_item.quantity < 0:t_line_item.quantity = 0t_line_item.unfulfilledQuantity = self.unfulfilledQuantityt_line_item.createdAt = to_java_date(self.createdAt)t_line_item.unitPrice = self.unitPricet_line_item.nlc = self.nlct_line_item.fulfilled = self.fulfilledt_line_item.availableQuantity = self.availableQuantityt_line_item.reservedQuantity = self.reservedQuantityt_line_item.avgSales = self.avgSalest_line_item.minStockLevel = self.minStockLevelt_line_item.numberOfDaysStock = self.numberOfDaysStockt_line_item.suggestedQuantity = self.suggestedQuantityt_line_item.numberOfDaysInStock = self.numberOfDaysInStockt_line_item.rtoOrders = self.rtoOrderst_line_item.lastXdaysSale = self.lastXdaysSalet_line_item.previouslyOrderedQty = self.previouslyOrderedQtyreturn t_line_item