| Line 131... |
Line 131... |
| 131 |
.filter(MarketplaceItems.source==OrderSource.FLIPKART).filter(MarketplaceItems.autoDecrement==True).all()
|
131 |
.filter(MarketplaceItems.source==OrderSource.FLIPKART).filter(MarketplaceItems.autoDecrement==True).all()
|
| 132 |
inventory_client = InventoryClient().get_client()
|
132 |
inventory_client = InventoryClient().get_client()
|
| 133 |
global inventoryMap
|
133 |
global inventoryMap
|
| 134 |
inventoryMap = inventory_client.getInventorySnapshot(0)
|
134 |
inventoryMap = inventory_client.getInventorySnapshot(0)
|
| 135 |
for autoDecrementItem in autoDecrementItems:
|
135 |
for autoDecrementItem in autoDecrementItems:
|
| 136 |
if not autoDecrementItem.risky:
|
136 |
# if not autoDecrementItem.risky:
|
| 137 |
markReasonForMpItem(autoDecrementItem,'Item is not risky',Decision.AUTO_DECREMENT_FAILED)
|
137 |
# markReasonForMpItem(autoDecrementItem,'Item is not risky',Decision.AUTO_DECREMENT_FAILED)
|
| 138 |
continue
|
138 |
# continue
|
| 139 |
if math.ceil(autoDecrementItem.proposedSellingPrice) >= autoDecrementItem.ourSellingPrice:
|
139 |
if math.ceil(autoDecrementItem.proposedSellingPrice) >= autoDecrementItem.ourSellingPrice:
|
| 140 |
markReasonForMpItem(autoDecrementItem,'Proposed SP greater than or equal to current SP',Decision.AUTO_DECREMENT_FAILED)
|
140 |
markReasonForMpItem(autoDecrementItem,'Proposed SP greater than or equal to current SP',Decision.AUTO_DECREMENT_FAILED)
|
| 141 |
continue
|
141 |
continue
|
| 142 |
if autoDecrementItem.proposedSellingPrice < autoDecrementItem.lowestPossibleSp:
|
142 |
if autoDecrementItem.proposedSellingPrice < autoDecrementItem.lowestPossibleSp:
|
| 143 |
markReasonForMpItem(autoDecrementItem,'Proposed SP less than lowest possible SP',Decision.AUTO_DECREMENT_FAILED)
|
143 |
markReasonForMpItem(autoDecrementItem,'Proposed SP less than lowest possible SP',Decision.AUTO_DECREMENT_FAILED)
|
| Line 163... |
Line 163... |
| 163 |
avgSalePerDay = (itemSaleMap.get(autoDecrementItem.item_id))[2]
|
163 |
avgSalePerDay = (itemSaleMap.get(autoDecrementItem.item_id))[2]
|
| 164 |
try:
|
164 |
try:
|
| 165 |
daysOfStock = (float(totalAvailability-totalReserved))/avgSalePerDay
|
165 |
daysOfStock = (float(totalAvailability-totalReserved))/avgSalePerDay
|
| 166 |
except ZeroDivisionError,e:
|
166 |
except ZeroDivisionError,e:
|
| 167 |
daysOfStock = float("inf")
|
167 |
daysOfStock = float("inf")
|
| 168 |
if daysOfStock<2:
|
168 |
if daysOfStock<2 and autoDecrementItem.risky:
|
| 169 |
markReasonForMpItem(autoDecrementItem,'Our stock is not enough',Decision.AUTO_DECREMENT_FAILED)
|
169 |
markReasonForMpItem(autoDecrementItem,'Our stock is not enough',Decision.AUTO_DECREMENT_FAILED)
|
| 170 |
continue
|
170 |
continue
|
| 171 |
|
171 |
|
| 172 |
if autoDecrementItem.competitiveCategory == CompetitionCategory.PREF_BUT_NOT_CHEAP:
|
172 |
if autoDecrementItem.competitiveCategory == CompetitionCategory.PREF_BUT_NOT_CHEAP:
|
| 173 |
avgSaleLastTwoDay = (itemSaleMap.get(autoDecrementItem.item_id))[6]
|
173 |
avgSaleLastTwoDay = (itemSaleMap.get(autoDecrementItem.item_id))[6]
|