| 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 |
|