Subversion Repositories SmartDukaan

Rev

Rev 9804 | Rev 9862 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 9804 Rev 9861
Line 30... Line 30...
30
from sqlalchemy.sql.functions import count
30
from sqlalchemy.sql.functions import count
31
import calendar
31
import calendar
32
import datetime
32
import datetime
33
import sys
33
import sys
34
import threading
34
import threading
-
 
35
import math
35
 
36
 
36
to_addresses = ["khushal.bhatia@shop2020.in", "chaitnaya.vats@shop2020.in", "chandan.kumar@shop2020.in"]
37
to_addresses = ["khushal.bhatia@shop2020.in", "chaitnaya.vats@shop2020.in", "chandan.kumar@shop2020.in"]
37
mail_user = "cnc.center@shop2020.in"
38
mail_user = "cnc.center@shop2020.in"
38
mail_password = "5h0p2o2o"
39
mail_password = "5h0p2o2o"
39
skippedItems = { 175 : [27, 2160, 2175, 2163, 2158, 7128, 26, 2154],
40
skippedItems = { 175 : [27, 2160, 2175, 2163, 2158, 7128, 26, 2154],
Line 1130... Line 1131...
1130
 
1131
 
1131
    for itemId, status in oosStatusMap.iteritems():
1132
    for itemId, status in oosStatusMap.iteritems():
1132
        total_order_count = 0 
1133
        total_order_count = 0 
1133
        total_rto_count = 0
1134
        total_rto_count = 0
1134
        for sid in (1,3,6,7,8):
1135
        for sid in (1,3,6,7,8):
1135
            #if OOSStatus.query.filter_by(item_id = itemId, date = oosDate, sourceId = sid).first() is None:
-
 
1136
            oosStatus = OOSStatus()
1136
            oosStatus = OOSStatus()
1137
            oosStatus.item_id = itemId
1137
            oosStatus.item_id = itemId
1138
            oosStatus.date = oosDate
1138
            oosStatus.date = oosDate
1139
            oosStatus.sourceId  = sid
1139
            oosStatus.sourceId  = sid
1140
            order_count = 0
1140
            order_count = 0
Line 1148... Line 1148...
1148
            oosStatus.is_oos = status
1148
            oosStatus.is_oos = status
1149
            if oosStatus.is_oos and order_count > 0:
1149
            if oosStatus.is_oos and order_count > 0:
1150
                oosStatus.is_oos = False
1150
                oosStatus.is_oos = False
1151
            total_order_count = total_order_count + order_count
1151
            total_order_count = total_order_count + order_count
1152
            total_rto_count = total_rto_count + rto_count
1152
            total_rto_count = total_rto_count + rto_count
1153
            #else:
-
 
1154
            #    print "OOS Status already exists for ItemID:"+str(itemId) + " and SourceID " + str(sid) 
-
 
1155
            
-
 
1156
        #if OOSStatus.query.filter_by(item_id = itemId, date = oosDate, sourceId = 0).first() is None:
-
 
1157
        oosStatus = OOSStatus()
1153
        oosStatus = OOSStatus()
1158
        oosStatus.item_id = itemId
1154
        oosStatus.item_id = itemId
1159
        oosStatus.date = oosDate
1155
        oosStatus.date = oosDate
1160
        oosStatus.sourceId  = 0
1156
        oosStatus.sourceId  = 0
1161
        oosStatus.num_orders = total_order_count
1157
        oosStatus.num_orders = total_order_count
Line 1165... Line 1161...
1165
        oosStatus.is_oos = status
1161
        oosStatus.is_oos = status
1166
        if oosStatus.is_oos and order_count > 0:
1162
        if oosStatus.is_oos and order_count > 0:
1167
            oosStatus.is_oos = False
1163
            oosStatus.is_oos = False
1168
        
1164
        
1169
        session.commit()
1165
        session.commit()
1170
        #else:
-
 
1171
        #print "OOS Status already exists for ItemID:"+str(itemId) + " and SourceID " + str(sid)
-
 
1172
    
1166
    
-
 
1167
    
-
 
1168
    itemCountMap = {}
-
 
1169
    oosDate = oosDate - datetime.timedelta(days = 1) - datetime.timedelta(hours = 1)
-
 
1170
    lines = session.query(OOSStatus.item_id, func.sum(OOSStatus.num_orders)/func.count(OOSStatus.num_orders)).filter(OOSStatus.date >= oosDate).filter(OOSStatus.sourceId == 1).filter(OOSStatus.is_oos == 0).group_by(OOSStatus.item_id).all()
-
 
1171
    for line in lines:
-
 
1172
        item_id = line[0]
-
 
1173
        quantity = math.ceil(max(1,3*int(line[1])))
-
 
1174
        itemCountMap[item_id] = quantity
-
 
1175
    cl = CatalogClient().get_client()
-
 
1176
    cl.updateItemHoldInventory(itemCountMap)
1173
                
1177
                
1174
def get_oos_statuses_for_x_days_for_item(itemId, sourceId, days):
1178
def get_oos_statuses_for_x_days_for_item(itemId, sourceId, days):
1175
    timestamp = datetime.datetime.now()
1179
    timestamp = datetime.datetime.now()
1176
    timestamp = timestamp - datetime.timedelta(days = days)
1180
    timestamp = timestamp - datetime.timedelta(days = days)
1177
    return OOSStatus.query.filter_by(item_id = itemId).filter_by(sourceId = sourceId).filter(OOSStatus.date > timestamp).all()
1181
    return OOSStatus.query.filter_by(item_id = itemId).filter_by(sourceId = sourceId).filter(OOSStatus.date > timestamp).all()