| 4503 |
mandeep.dh |
1 |
'''
|
|
|
2 |
Created on 29-Jul-2011
|
|
|
3 |
|
|
|
4 |
@author: Chandranshu
|
|
|
5 |
'''
|
|
|
6 |
from elixir.entity import Entity
|
|
|
7 |
from elixir.fields import Field
|
|
|
8 |
from elixir.options import using_options, using_table_options
|
|
|
9 |
from elixir.relationships import ManyToOne
|
|
|
10 |
from shop2020.thriftpy.purchase.ttypes import LineItem as TLineItem
|
|
|
11 |
from shop2020.utils.Utils import to_java_date
|
|
|
12 |
from sqlalchemy.types import Integer, String, Float, DateTime, Boolean
|
|
|
13 |
import datetime
|
|
|
14 |
|
|
|
15 |
|
|
|
16 |
class LineItem(Entity):
|
|
|
17 |
'''
|
|
|
18 |
classdocs
|
|
|
19 |
'''
|
|
|
20 |
purchaseOrder = ManyToOne("PurchaseOrder", primary_key=True)
|
|
|
21 |
itemId = Field(Integer, primary_key=True, autoincrement=False)
|
|
|
22 |
productGroup = Field(String(100))
|
|
|
23 |
brand = Field(String(100))
|
|
|
24 |
modelNumber = Field(String(50))
|
|
|
25 |
modelName = Field(String(50))
|
|
|
26 |
color = Field(String(20))
|
|
|
27 |
itemNumber = Field(String(20))
|
|
|
28 |
quantity = Field(Float)
|
|
|
29 |
unfulfilledQuantity = Field(Float)
|
|
|
30 |
createdAt = Field(DateTime)
|
|
|
31 |
unitPrice = Field(Float)
|
| 7672 |
rajveer |
32 |
nlc = Field(Float)
|
| 4503 |
mandeep.dh |
33 |
fulfilled = Field(Boolean)
|
| 6821 |
amar.kumar |
34 |
availableQuantity = Field(Integer)
|
|
|
35 |
reservedQuantity = Field(Integer)
|
|
|
36 |
avgSales = Field(Float)
|
|
|
37 |
minStockLevel = Field(Integer)
|
|
|
38 |
numberOfDaysStock = Field(Integer)
|
|
|
39 |
suggestedQuantity = Field(Integer)
|
|
|
40 |
numberOfDaysInStock = Field(Integer)
|
| 8182 |
amar.kumar |
41 |
rtoOrders = Field(Integer)
|
| 6880 |
amar.kumar |
42 |
lastXdaysSale = Field(String(50))
|
|
|
43 |
previouslyOrderedQty = Field(Integer)
|
| 9416 |
amar.kumar |
44 |
mrp = Field(Float)
|
| 12357 |
manish.sha |
45 |
nlcP = Field(Float)
|
|
|
46 |
vatDiff = Field(Float)
|
| 21844 |
amit.gupta |
47 |
igstRate = Field(Float)
|
|
|
48 |
sgstRate = Field(Float)
|
|
|
49 |
cgstRate = Field(Float)
|
|
|
50 |
hsnCode = Field(String(12))
|
| 25112 |
amit.gupta |
51 |
invoicePrice = Field(Float)
|
| 4503 |
mandeep.dh |
52 |
using_options(shortnames=True)
|
|
|
53 |
using_table_options(mysql_engine="InnoDB")
|
|
|
54 |
|
|
|
55 |
def __init__(self, purchase_order, t_line_item):
|
|
|
56 |
'''
|
|
|
57 |
Constructor
|
|
|
58 |
'''
|
|
|
59 |
self.purchaseOrder = purchase_order
|
|
|
60 |
self.itemId = t_line_item.itemId
|
|
|
61 |
self.productGroup = t_line_item.productGroup
|
|
|
62 |
self.brand = t_line_item.brand
|
|
|
63 |
self.modelNumber = t_line_item.modelNumber
|
|
|
64 |
self.modelName = t_line_item.modelName
|
|
|
65 |
self.color = t_line_item.color
|
|
|
66 |
self.itemNumber = t_line_item.itemNumber
|
|
|
67 |
self.quantity = t_line_item.quantity
|
| 5450 |
mandeep.dh |
68 |
self.unfulfilledQuantity = t_line_item.unfulfilledQuantity
|
| 4503 |
mandeep.dh |
69 |
self.createdAt = datetime.datetime.now()
|
|
|
70 |
self.unitPrice = t_line_item.unitPrice
|
| 7672 |
rajveer |
71 |
self.nlc = t_line_item.nlc
|
| 4503 |
mandeep.dh |
72 |
self.fulfilled = False
|
| 9416 |
amar.kumar |
73 |
if t_line_item.availableQuantity:
|
|
|
74 |
self.availableQuantity = t_line_item.availableQuantity
|
|
|
75 |
if t_line_item.reservedQuantity:
|
|
|
76 |
self.reservedQuantity = t_line_item.reservedQuantity
|
|
|
77 |
if t_line_item.avgSales:
|
|
|
78 |
self.avgSales = t_line_item.avgSales
|
|
|
79 |
if t_line_item.minStockLevel:
|
|
|
80 |
self.minStockLevel = t_line_item.minStockLevel
|
|
|
81 |
if t_line_item.numberOfDaysStock:
|
|
|
82 |
self.numberOfDaysStock = t_line_item.numberOfDaysStock
|
|
|
83 |
if t_line_item.rtoOrders:
|
|
|
84 |
self.rtoOrders = t_line_item.rtoOrders
|
|
|
85 |
if t_line_item.suggestedQuantity:
|
|
|
86 |
self.suggestedQuantity = t_line_item.suggestedQuantity
|
|
|
87 |
if t_line_item.numberOfDaysInStock:
|
|
|
88 |
self.numberOfDaysInStock = t_line_item.numberOfDaysInStock
|
|
|
89 |
if t_line_item.lastXdaysSale:
|
|
|
90 |
self.lastXdaysSale = t_line_item.lastXdaysSale
|
|
|
91 |
if t_line_item.previouslyOrderedQty:
|
|
|
92 |
self.previouslyOrderedQty = t_line_item.previouslyOrderedQty
|
|
|
93 |
if t_line_item.mrp:
|
|
|
94 |
self.mrp = t_line_item.mrp
|
| 12357 |
manish.sha |
95 |
self.nlcP = t_line_item.nlcP
|
|
|
96 |
self.vatDiff = t_line_item.vatDiff
|
| 21844 |
amit.gupta |
97 |
self.cgstRate = t_line_item.cgstRate
|
|
|
98 |
self.sgstRate = t_line_item.sgstRate
|
|
|
99 |
self.igstRate = t_line_item.igstRate
|
|
|
100 |
self.hsnCode = t_line_item.hsnCode
|
| 4503 |
mandeep.dh |
101 |
|
|
|
102 |
def to_thrift_object(self):
|
|
|
103 |
t_line_item = TLineItem()
|
|
|
104 |
t_line_item.orderId = self.purchaseOrder.id
|
|
|
105 |
t_line_item.itemId = self.itemId
|
|
|
106 |
#TODO: Fetch the next 5 items from the catalog service
|
|
|
107 |
t_line_item.productGroup = self.productGroup
|
|
|
108 |
t_line_item.brand = self.brand
|
|
|
109 |
t_line_item.modelNumber = self.modelNumber
|
|
|
110 |
t_line_item.modelName = self.modelName
|
|
|
111 |
t_line_item.color = self.color
|
|
|
112 |
t_line_item.itemNumber = self.itemNumber
|
|
|
113 |
t_line_item.quantity = self.quantity
|
| 6882 |
amar.kumar |
114 |
if t_line_item.quantity < 0:
|
|
|
115 |
t_line_item.quantity = 0
|
| 4503 |
mandeep.dh |
116 |
t_line_item.unfulfilledQuantity = self.unfulfilledQuantity
|
|
|
117 |
t_line_item.createdAt = to_java_date(self.createdAt)
|
| 6837 |
amar.kumar |
118 |
t_line_item.unitPrice = self.unitPrice
|
| 7672 |
rajveer |
119 |
t_line_item.nlc = self.nlc
|
| 4503 |
mandeep.dh |
120 |
t_line_item.fulfilled = self.fulfilled
|
| 6821 |
amar.kumar |
121 |
t_line_item.availableQuantity = self.availableQuantity
|
|
|
122 |
t_line_item.reservedQuantity = self.reservedQuantity
|
|
|
123 |
t_line_item.avgSales = self.avgSales
|
|
|
124 |
t_line_item.minStockLevel = self.minStockLevel
|
|
|
125 |
t_line_item.numberOfDaysStock = self.numberOfDaysStock
|
|
|
126 |
t_line_item.suggestedQuantity = self.suggestedQuantity
|
|
|
127 |
t_line_item.numberOfDaysInStock = self.numberOfDaysInStock
|
| 8182 |
amar.kumar |
128 |
t_line_item.rtoOrders = self.rtoOrders
|
| 6857 |
amar.kumar |
129 |
t_line_item.lastXdaysSale = self.lastXdaysSale
|
| 6880 |
amar.kumar |
130 |
t_line_item.previouslyOrderedQty = self.previouslyOrderedQty
|
| 9416 |
amar.kumar |
131 |
t_line_item.mrp = self.mrp
|
| 12357 |
manish.sha |
132 |
t_line_item.nlcP = self.nlcP
|
|
|
133 |
t_line_item.vatDiff = self.vatDiff
|
| 21844 |
amit.gupta |
134 |
t_line_item.sgstRate = self.sgstRate
|
|
|
135 |
t_line_item.hsnCode = self.hsnCode
|
|
|
136 |
t_line_item.cgstRate = self.cgstRate
|
|
|
137 |
t_line_item.igstRate = self.igstRate
|
|
|
138 |
t_line_item.sgstRate = self.sgstRate
|
| 25112 |
amit.gupta |
139 |
t_line_item.invoicePrice = self.invoicePrice
|
| 4503 |
mandeep.dh |
140 |
return t_line_item
|