Subversion Repositories SmartDukaan

Rev

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

Rev 9640 Rev 9665
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):