Rev 9416 | 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)mrp = Field(Float)nlcP = Field(Float)vatDiff = Field(Float)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 = Falseif t_line_item.availableQuantity:self.availableQuantity = t_line_item.availableQuantityif t_line_item.reservedQuantity:self.reservedQuantity = t_line_item.reservedQuantityif t_line_item.avgSales:self.avgSales = t_line_item.avgSalesif t_line_item.minStockLevel:self.minStockLevel = t_line_item.minStockLevelif t_line_item.numberOfDaysStock:self.numberOfDaysStock = t_line_item.numberOfDaysStockif t_line_item.rtoOrders:self.rtoOrders = t_line_item.rtoOrdersif t_line_item.suggestedQuantity:self.suggestedQuantity = t_line_item.suggestedQuantityif t_line_item.numberOfDaysInStock:self.numberOfDaysInStock = t_line_item.numberOfDaysInStockif t_line_item.lastXdaysSale:self.lastXdaysSale = t_line_item.lastXdaysSaleif t_line_item.previouslyOrderedQty:self.previouslyOrderedQty = t_line_item.previouslyOrderedQtyif t_line_item.mrp:self.mrp = t_line_item.mrpself.nlcP = t_line_item.nlcPself.vatDiff = t_line_item.vatDiffdef 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.previouslyOrderedQtyt_line_item.mrp = self.mrpt_line_item.nlcP = self.nlcPt_line_item.vatDiff = self.vatDiffreturn t_line_item