| Line 1091... |
Line 1091... |
| 1091 |
client = TransactionClient().get_client()
|
1091 |
client = TransactionClient().get_client()
|
| 1092 |
|
1092 |
|
| 1093 |
#Gets physical orders in the last day
|
1093 |
#Gets physical orders in the last day
|
| 1094 |
orders = client.getPhysicalOrders(to_java_date(cartAdditionStartDate), to_java_date(oosDate))
|
1094 |
orders = client.getPhysicalOrders(to_java_date(cartAdditionStartDate), to_java_date(oosDate))
|
| 1095 |
rtoOrders = client.getAllOrders([20], 0, 0, 0)
|
1095 |
rtoOrders = client.getAllOrders([20], 0, 0, 0)
|
| 1096 |
orderCountByItemId = {}
|
1096 |
orderCountByItemIdSourceId = {}
|
| 1097 |
rtoOrderCountByItemId = {}
|
1097 |
rtoOrderCountByItemIdSourceId = {}
|
| 1098 |
|
1098 |
|
| 1099 |
for order in orders:
|
1099 |
for order in orders:
|
| 1100 |
if orderCountByItemId.has_key(order.lineitems[0].item_id):
|
1100 |
if not orderCountByItemIdSourceId.has_key(order.lineitems[0].item_id):
|
| - |
|
1101 |
orderCountByItemIdSourceId[order.lineitems[0].item_id] = {}
|
| - |
|
1102 |
|
| - |
|
1103 |
if orderCountByItemIdSourceId[order.lineitems[0].item_id].has_key(order.source):
|
| 1101 |
orderCountByItemId[order.lineitems[0].item_id] = orderCountByItemId[order.lineitems[0].item_id] + 1
|
1104 |
orderCountByItemIdSourceId[order.lineitems[0].item_id][order.source] = order.source[order.lineitems[0].item_id][order.source] + 1
|
| 1102 |
else:
|
1105 |
else:
|
| 1103 |
orderCountByItemId[order.lineitems[0].item_id] = 1
|
1106 |
orderCountByItemIdSourceId[order.lineitems[0].item_id][order.source] = 1
|
| - |
|
1107 |
|
| 1104 |
|
1108 |
|
| 1105 |
for order in rtoOrders:
|
1109 |
for order in rtoOrders:
|
| 1106 |
if rtoOrderCountByItemId.has_key(order.lineitems[0].item_id):
|
1110 |
if not rtoOrderCountByItemIdSourceId.has_key(order.lineitems[0].item_id):
|
| - |
|
1111 |
rtoOrderCountByItemIdSourceId[order.lineitems[0].item_id] = {}
|
| - |
|
1112 |
|
| - |
|
1113 |
if rtoOrderCountByItemIdSourceId[order.lineitems[0].item_id].has_key(order.source):
|
| 1107 |
rtoOrderCountByItemId[order.lineitems[0].item_id] = rtoOrderCountByItemId[order.lineitems[0].item_id] + 1
|
1114 |
rtoOrderCountByItemIdSourceId[order.lineitems[0].item_id][order.source] = rtoOrderCountByItemIdSourceId[order.lineitems[0].item_id][order.source] + 1
|
| 1108 |
else:
|
1115 |
else:
|
| 1109 |
rtoOrderCountByItemId[order.lineitems[0].item_id] = 1
|
1116 |
rtoOrderCountByItemIdSourceId[order.lineitems[0].item_id][order.source] = 1
|
| - |
|
1117 |
|
| 1110 |
|
1118 |
|
| 1111 |
for itemId, status in oosStatusMap.iteritems():
|
1119 |
for itemId, status in oosStatusMap.iteritems():
|
| - |
|
1120 |
total_order_count = 0
|
| - |
|
1121 |
total_rto_count = 0
|
| - |
|
1122 |
for sid in (1,3,6,7,8):
|
| - |
|
1123 |
if OOSStatus.query.filter_by(item_id = itemId, date = oosDate, sourceId = sid).first() is None:
|
| - |
|
1124 |
oosStatus = OOSStatus()
|
| - |
|
1125 |
oosStatus.item_id = itemId
|
| - |
|
1126 |
oosStatus.date = oosDate
|
| - |
|
1127 |
oosStatus.is_oos = status
|
| - |
|
1128 |
oosStatus.sourceId = sid
|
| - |
|
1129 |
order_count = 0
|
| - |
|
1130 |
rto_count = 0
|
| - |
|
1131 |
if status == False:
|
| - |
|
1132 |
if orderCountByItemIdSourceId.has_key(itemId) and orderCountByItemIdSourceId[itemId].has_key(sid):
|
| - |
|
1133 |
order_count = orderCountByItemIdSourceId[itemId][sid]
|
| - |
|
1134 |
if rtoOrderCountByItemIdSourceId.has_key(itemId) and rtoOrderCountByItemIdSourceId[itemId].has_key(sid):
|
| - |
|
1135 |
rto_count = rtoOrderCountByItemIdSourceId[itemId][sid]
|
| - |
|
1136 |
oosStatus.num_orders = order_count
|
| - |
|
1137 |
oosStatus.rto_orders = rto_count
|
| - |
|
1138 |
total_order_count = total_order_count + order_count
|
| - |
|
1139 |
total_rto_count = total_rto_count + rto_count
|
| - |
|
1140 |
else:
|
| - |
|
1141 |
print "OOS Status already exists for ItemID:"+str(itemId) " and SourceID " + str(sid)
|
| - |
|
1142 |
|
| 1112 |
if OOSStatus.query.filter_by(item_id = itemId, date = oosDate).first() is None:
|
1143 |
if OOSStatus.query.filter_by(item_id = itemId, date = oosDate, sourceId = 0).first() is None:
|
| 1113 |
oosStatus = OOSStatus()
|
1144 |
oosStatus = OOSStatus()
|
| 1114 |
oosStatus.item_id = itemId
|
1145 |
oosStatus.item_id = itemId
|
| 1115 |
oosStatus.date = oosDate
|
1146 |
oosStatus.date = oosDate
|
| 1116 |
oosStatus.is_oos = status
|
1147 |
oosStatus.is_oos = status
|
| 1117 |
order_count = 0
|
1148 |
oosStatus.sourceId = 0
|
| 1118 |
rto_count = 0
|
- |
|
| 1119 |
if status == False:
|
- |
|
| 1120 |
if orderCountByItemId.has_key(itemId):
|
- |
|
| 1121 |
order_count = orderCountByItemId[itemId]
|
- |
|
| 1122 |
if rtoOrderCountByItemId.has_key(itemId):
|
- |
|
| 1123 |
rto_count = rtoOrderCountByItemId[itemId]
|
- |
|
| 1124 |
oosStatus.num_orders = order_count
|
1149 |
oosStatus.num_orders = total_order_count
|
| 1125 |
oosStatus.rto_orders = rto_count
|
1150 |
oosStatus.rto_orders = total_rto_count
|
| 1126 |
session.commit()
|
- |
|
| 1127 |
else:
|
1151 |
else:
|
| 1128 |
print "OOS Status already exists for ItemID:"+str(itemId)
|
1152 |
print "OOS Status already exists for ItemID:"+str(itemId) " and SourceID " + str(sid)
|
| 1129 |
"""raise InventoryServiceException(101, "OOS Status already exists for ItemID:"+str(itemId) + " & Date:"+oosDate)"""
|
1153 |
session.commit()
|
| 1130 |
|
1154 |
|
| 1131 |
def get_oos_statuses_for_x_days_for_item(itemId, days):
|
1155 |
def get_oos_statuses_for_x_days_for_item(itemId, sourceId, days):
|
| 1132 |
timestamp = datetime.datetime.now()
|
1156 |
timestamp = datetime.datetime.now()
|
| 1133 |
timestamp = timestamp - datetime.timedelta(days = days)
|
1157 |
timestamp = timestamp - datetime.timedelta(days = days)
|
| 1134 |
return OOSStatus.query.filter_by(item_id = itemId).filter(OOSStatus.date > timestamp).all()
|
1158 |
return OOSStatus.query.filter_by(item_id = itemId).filter_by(sourceId = sourceId).filter(OOSStatus.date > timestamp).all()
|
| 1135 |
|
1159 |
|
| 1136 |
def get_non_zero_item_stock_purchase_params():
|
1160 |
def get_non_zero_item_stock_purchase_params():
|
| 1137 |
return ItemStockPurchaseParams.query.filter(or_("numOfDaysStock!=0","minStockLevel!=0"))
|
1161 |
return ItemStockPurchaseParams.query.filter(or_("numOfDaysStock!=0","minStockLevel!=0"))
|
| 1138 |
|
1162 |
|
| 1139 |
def get_last_n_day_sale_for_item(itemId, numberOfDays):
|
1163 |
def get_last_n_day_sale_for_item(itemId, numberOfDays):
|