Subversion Repositories SmartDukaan

Rev

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

Rev 6524 Rev 6531
Line 3... Line 3...
3
 
3
 
4
@author: ashish
4
@author: ashish
5
'''
5
'''
6
from elixir import *
6
from elixir import *
7
from functools import partial
7
from functools import partial
-
 
8
from shop2020.clients.CatalogClient import CatalogClient
8
from shop2020.clients.TransactionClient import TransactionClient
9
from shop2020.clients.TransactionClient import TransactionClient
9
from shop2020.model.v1.inventory.impl import DataService
10
from shop2020.model.v1.inventory.impl import DataService
-
 
11
from shop2020.model.v1.inventory.impl.Convertors import to_t_warehouse, \
-
 
12
    to_t_itemidwarehouseid
10
from shop2020.model.v1.inventory.impl.DataService import Warehouse, \
13
from shop2020.model.v1.inventory.impl.DataService import Warehouse, \
11
    ItemInventoryHistory, CurrentInventorySnapshot, VendorItemPricing, \
14
    ItemInventoryHistory, CurrentInventorySnapshot, VendorItemPricing, \
12
    VendorItemMapping, Vendor, MissedInventoryUpdate, BadInventorySnapshot, \
15
    VendorItemMapping, Vendor, MissedInventoryUpdate, BadInventorySnapshot, \
13
    VendorItemProcurementDelay, VendorHolidays, ItemAvailabilityCache,\
16
    VendorItemProcurementDelay, VendorHolidays, ItemAvailabilityCache, \
14
    CurrentReservationSnapshot,Ignoredinventoryupdateitems
17
    CurrentReservationSnapshot, IgnoredInventoryUpdateItems
15
from shop2020.thriftpy.model.v1.inventory.ttypes import InventoryServiceException, \
18
from shop2020.thriftpy.model.v1.inventory.ttypes import \
16
    HolidayType, InventoryType, WarehouseType
19
    InventoryServiceException, HolidayType, InventoryType, WarehouseType
17
from shop2020.thriftpy.model.v1.order.ttypes import AlertType
20
from shop2020.thriftpy.model.v1.order.ttypes import AlertType
-
 
21
from shop2020.thriftpy.purchase.ttypes import PurchaseServiceException
18
from shop2020.utils import EmailAttachmentSender
22
from shop2020.utils import EmailAttachmentSender
19
from shop2020.utils.EmailAttachmentSender import mail
23
from shop2020.utils.EmailAttachmentSender import mail
-
 
24
from shop2020.utils.Utils import to_py_date
20
from sqlalchemy.orm.exc import MultipleResultsFound, NoResultFound
25
from sqlalchemy.orm.exc import MultipleResultsFound, NoResultFound
21
from sqlalchemy.sql.expression import and_, func
26
from sqlalchemy.sql.expression import and_, func, distinct
-
 
27
from sqlalchemy.sql.functions import count
22
import calendar
28
import calendar
23
import datetime
29
import datetime
24
import sys
30
import sys
25
import threading
31
import threading
26
from shop2020.clients.CatalogClient import CatalogClient
-
 
27
from shop2020.utils.Utils import to_py_date
-
 
28
 
32
 
29
to_addresses = ["chaitnaya.vats@shop2020.in", "chandan.kumar@shop2020.in"]
33
to_addresses = ["chaitnaya.vats@shop2020.in", "chandan.kumar@shop2020.in"]
30
mail_user = "cnc.center@shop2020.in"
34
mail_user = "cnc.center@shop2020.in"
31
mail_password = "5h0p2o2o"
35
mail_password = "5h0p2o2o"
32
skippedItems = { 175 : [27, 2160, 2175, 2163, 2158, 7128, 26, 2154],
36
skippedItems = { 175 : [27, 2160, 2175, 2163, 2158, 7128, 26, 2154],
Line 80... Line 84...
80
        ds_warehouse.vendorString = warehouse.vendorString
84
        ds_warehouse.vendorString = warehouse.vendorString
81
    session.commit()
85
    session.commit()
82
    return ds_warehouse.id
86
    return ds_warehouse.id
83
 
87
 
84
def get_ignored_items(warehouse_id): 
88
def get_ignored_items(warehouse_id): 
85
    Ignored_inventory_items = Ignoredinventoryupdateitems.query.filter_by(warehouse_id=warehouse_id).all()
89
    Ignored_inventory_items = IgnoredInventoryUpdateItems.query.filter_by(warehouse_id=warehouse_id).all()
86
    negativeItems = []
90
    negativeItems = []
87
    for Ignored_inventory_item in Ignored_inventory_items:
91
    for Ignored_inventory_item in Ignored_inventory_items:
88
        try:
92
        try:
89
            item_id = Ignored_inventory_item.item_id
93
            item_id = Ignored_inventory_item.item_id
90
            negativeItems.append(item_id)
94
            negativeItems.append(item_id)
Line 108... Line 112...
108
    for item_key, quantity in availability.iteritems():
112
    for item_key, quantity in availability.iteritems():
109
        try:
113
        try:
110
            vendor_item_mapping = VendorItemMapping.query.filter_by(vendor=vendor, item_key=item_key).one();
114
            vendor_item_mapping = VendorItemMapping.query.filter_by(vendor=vendor, item_key=item_key).one();
111
            item_id = vendor_item_mapping.item_id
115
            item_id = vendor_item_mapping.item_id
112
        except:
116
        except:
113
            continue 
117
            continue  
114
        295960 
-
 
115
        try:
118
        try:
116
            item_inventory_history = ItemInventoryHistory()
119
            item_inventory_history = ItemInventoryHistory()
117
            item_inventory_history.warehouse = warehouse
120
            item_inventory_history.warehouse = warehouse
118
            item_inventory_history.item_id = item_id
121
            item_inventory_history.item_id = item_id
119
            item_inventory_history.timestamp = time
122
            item_inventory_history.timestamp = time
Line 898... Line 901...
898
    if source_id == 1:
901
    if source_id == 1:
899
        client = CatalogClient("catalog_service_server_host_master", "catalog_service_server_port").get_client()
902
        client = CatalogClient("catalog_service_server_host_master", "catalog_service_server_port").get_client()
900
        return client.getItem(item_id)
903
        return client.getItem(item_id)
901
    if source_id == 2:
904
    if source_id == 2:
902
        client = CatalogClient("catalog_service_server_host_hotspot", "catalog_service_server_port").get_client()
905
        client = CatalogClient("catalog_service_server_host_hotspot", "catalog_service_server_port").get_client()
903
        return client.getItem(item_id)
-
 
904
906
        return client.getItem(item_id)
-
 
907
 
-
 
908
def get_monitored_warehouses_for_vendors(vendorIds):
-
 
909
    w = []
-
 
910
    for wh in Warehouse.query.filter_by(isAvailabilityMonitored = 1).all():
-
 
911
        if wh.vendor.id in (vendorIds):
-
 
912
            w.append(to_t_warehouse(wh).id)
-
 
913
    return w
-
 
914
def get_ignored_warehouseids_and_itemids():
-
 
915
    iw = []
-
 
916
    for i in IgnoredInventoryUpdateItems.query.all():
-
 
917
        iw.append(to_t_itemidwarehouseid(i)) 
-
 
918
    return iw
-
 
919
def insert_item_to_ignore_inventory_update_list(item_id,warehouse_id):
-
 
920
    try:
-
 
921
        ds_warehouse=IgnoredInventoryUpdateItems()
-
 
922
        ds_warehouse.item_id=item_id
-
 
923
        ds_warehouse.warehouse_id=warehouse_id
-
 
924
        session.commit()
-
 
925
        return True
-
 
926
    except:
-
 
927
        return False       
-
 
928
def delete_item_from_ignore_inventory_update_list(item_id,warehouse_id):
-
 
929
    try:
-
 
930
        session.query(IgnoredInventoryUpdateItems).filter_by(item_id=item_id,warehouse_id=warehouse_id).delete()
-
 
931
        session.commit()
-
 
932
        return True
-
 
933
    except:
-
 
934
        return False           
-
 
935
    
-
 
936
def get_all_ignored_inventoryupdate_items_count():
-
 
937
    return  session.query(func.count(distinct(IgnoredInventoryUpdateItems.item_id))).scalar()
-
 
938
 
-
 
939
def get_ignored_inventoryupdate_itemids(offset=0,limit=None):
-
 
940
    itemIds = session.query(distinct(IgnoredInventoryUpdateItems.item_id))
-
 
941
    '''if limit is not None:
-
 
942
        itemIds = itemIds.limit(limit)'''
-
 
943
    print itemIds.all()
-
 
944
    return [id for (id, ) in itemIds.all()]
-
 
945
        
-
 
946
905
947