| Line 10... |
Line 10... |
| 10 |
from shop2020.clients.InventoryClient import InventoryClient
|
10 |
from shop2020.clients.InventoryClient import InventoryClient
|
| 11 |
from shop2020.config.client.ConfigClient import ConfigClient
|
11 |
from shop2020.config.client.ConfigClient import ConfigClient
|
| 12 |
from shop2020.model.v1.catalog.impl import DataService
|
12 |
from shop2020.model.v1.catalog.impl import DataService
|
| 13 |
from shop2020.model.v1.catalog.impl.CategoryManager import CategoryManager
|
13 |
from shop2020.model.v1.catalog.impl.CategoryManager import CategoryManager
|
| 14 |
from shop2020.model.v1.catalog.impl.Convertors import to_t_item, to_t_source, \
|
14 |
from shop2020.model.v1.catalog.impl.Convertors import to_t_item, to_t_source, \
|
| 15 |
to_t_brand_info, to_t_private_deal, to_t_exclusive_affiliate_item_info
|
15 |
to_t_brand_info, to_t_private_deal
|
| 16 |
from shop2020.model.v1.catalog.impl.DataService import Item, ItemChangeLog, \
|
16 |
from shop2020.model.v1.catalog.impl.DataService import Item, ItemChangeLog, \
|
| 17 |
Category, EntityIDGenerator, SimilarItems, ProductNotification, Source, \
|
17 |
Category, EntityIDGenerator, SimilarItems, ProductNotification, Source, \
|
| 18 |
SourceItemPricing, AuthorizationLog, VoucherItemMapping, CategoryVatMaster, \
|
18 |
SourceItemPricing, AuthorizationLog, VoucherItemMapping, CategoryVatMaster, \
|
| 19 |
OOSTracker, EntityTag, ItemInsurerMapping, Insurer, Banner, BannerMap, \
|
19 |
OOSTracker, EntityTag, ItemInsurerMapping, Insurer, Banner, BannerMap, \
|
| 20 |
FreebieItem, BrandInfo, Amazonlisted, StorePricing, ItemVatMaster, \
|
20 |
FreebieItem, BrandInfo, Amazonlisted, StorePricing, ItemVatMaster, \
|
| Line 22... |
Line 22... |
| 22 |
ProductFeedSubmit, MarketplaceItems, MarketPlaceItemPrice, \
|
22 |
ProductFeedSubmit, MarketplaceItems, MarketPlaceItemPrice, \
|
| 23 |
SourcePercentageMaster, SourceItemPercentage, FlipkartItem, \
|
23 |
SourcePercentageMaster, SourceItemPercentage, FlipkartItem, \
|
| 24 |
MarketPlaceUpdateHistory, SourceCategoryPercentage, MarketPlaceHistory, \
|
24 |
MarketPlaceUpdateHistory, SourceCategoryPercentage, MarketPlaceHistory, \
|
| 25 |
PrivateDeals, AmazonOutOfSync, PrivateDealsPriceComparison, \
|
25 |
PrivateDeals, AmazonOutOfSync, PrivateDealsPriceComparison, \
|
| 26 |
SourceReturnPercentage, CompetitorPricing, CompetitorPricingRequest, \
|
26 |
SourceReturnPercentage, CompetitorPricing, CompetitorPricingRequest, \
|
| 27 |
AmazonPromotion, ExclusiveAffiliateItemInfo, OutboundAffiliateMaster
|
27 |
AmazonPromotion, ExclusiveAffiliateItemInfo, OutboundAffiliateMaster, HsItem
|
| 28 |
from shop2020.thriftpy.model.v1.catalog.ttypes import status, ItemShippingInfo, \
|
28 |
from shop2020.thriftpy.model.v1.catalog.ttypes import status, ItemShippingInfo, \
|
| 29 |
ItemType, PremiumType, FreebieItem as t_FreebieItem, \
|
29 |
ItemType, PremiumType, FreebieItem as t_FreebieItem, \
|
| 30 |
StorePricing as tStorePricing, CatalogServiceException, BannerType, InsurerType, \
|
30 |
StorePricing as tStorePricing, CatalogServiceException, BannerType, InsurerType, \
|
| 31 |
Banner as t_banner, CompetitorPricing as TCompetitorPricing, AmazonPromotionType
|
31 |
Banner as t_banner, CompetitorPricing as TCompetitorPricing, AmazonPromotionType
|
| 32 |
from shop2020.thriftpy.model.v1.inventory.ttypes import VatType, \
|
32 |
from shop2020.thriftpy.model.v1.inventory.ttypes import VatType, \
|
| 33 |
InventoryServiceException, IgnoredInventoryUpdateItems, SnapdealInventoryItem
|
33 |
InventoryServiceException, IgnoredInventoryUpdateItems, SnapdealInventoryItem
|
| - |
|
34 |
from shop2020.thriftpy.utils.ttypes import UserSmsInfo, SmsType
|
| 34 |
from shop2020.thriftpy.model.v1.order.ttypes import OrderSource
|
35 |
from shop2020.thriftpy.model.v1.order.ttypes import OrderSource
|
| 35 |
from shop2020.utils import EmailAttachmentSender
|
36 |
from shop2020.utils import EmailAttachmentSender
|
| 36 |
from shop2020.utils.EmailAttachmentSender import mail
|
37 |
from shop2020.utils.EmailAttachmentSender import mail
|
| 37 |
from shop2020.utils.Utils import to_py_date, log_risky_flag
|
38 |
from shop2020.utils.Utils import to_py_date, log_risky_flag, to_java_date
|
| 38 |
from sqlalchemy import desc, asc
|
39 |
from sqlalchemy import desc, asc
|
| 39 |
from sqlalchemy.sql.expression import or_, distinct, func, and_
|
40 |
from sqlalchemy.sql.expression import or_, distinct, func, and_
|
| 40 |
from sqlalchemy.sql.functions import now
|
41 |
from sqlalchemy.sql.functions import now
|
| 41 |
from string import Template
|
42 |
from string import Template
|
| 42 |
import datetime
|
43 |
import datetime
|
| 43 |
import math
|
44 |
import math
|
| 44 |
import sys
|
45 |
import sys
|
| 45 |
import threading
|
46 |
import threading
|
| 46 |
import urllib2
|
47 |
import urllib2
|
| - |
|
48 |
from shop2020.clients.UserClient import UserClient
|
| 47 |
|
49 |
|
| 48 |
sourceId = int(ConfigClient().get_property("sourceid"))
|
50 |
sourceId = int(ConfigClient().get_property("sourceid"))
|
| 49 |
to_addresses = ["khushal.bhatia@shop2020.in", "chandan.kumar@shop2020.in", "chaitnaya.vats@shop2020.in",'manoj.kumar@shop2020.in']
|
51 |
to_addresses = ["khushal.bhatia@shop2020.in", "chandan.kumar@shop2020.in", "chaitnaya.vats@shop2020.in",'manoj.kumar@shop2020.in']
|
| 50 |
to_store_addresses = ["rajveer.singh@shop2020.in"]
|
52 |
to_store_addresses = ["rajveer.singh@shop2020.in"]
|
| 51 |
mail_user = "cnc.center@shop2020.in"
|
53 |
mail_user = "cnc.center@shop2020.in"
|
| Line 1216... |
Line 1218... |
| 1216 |
helper_client = HelperClient().get_client()
|
1218 |
helper_client = HelperClient().get_client()
|
| 1217 |
helper_client.saveUserEmailForSending([email], "", "Product requested by you is available now.", html, str(itemId), "ProductNotification", [], [],sourceId)
|
1219 |
helper_client.saveUserEmailForSending([email], "", "Product requested by you is available now.", html, str(itemId), "ProductNotification", [], [],sourceId)
|
| 1218 |
except Exception as e:
|
1220 |
except Exception as e:
|
| 1219 |
print e
|
1221 |
print e
|
| 1220 |
print sys.exc_info()[0]
|
1222 |
print sys.exc_info()[0]
|
| - |
|
1223 |
|
| - |
|
1224 |
try:
|
| - |
|
1225 |
user_client = UserClient().get_client()
|
| - |
|
1226 |
user = user_client.getUserByEmail(email)
|
| - |
|
1227 |
if user is not None and user.id !=-1:
|
| - |
|
1228 |
if user.mobileNumber is not None:
|
| - |
|
1229 |
mobileNo = user.mobileNumber
|
| - |
|
1230 |
elif user.default_address_id is not None:
|
| - |
|
1231 |
defaultAddress = user_client.getAddressById(user.default_address_id)
|
| - |
|
1232 |
mobileNo = defaultAddress.mobileNumber
|
| - |
|
1233 |
else:
|
| - |
|
1234 |
print 'Sms not sent for email id- ', email
|
| - |
|
1235 |
mobileNo = None
|
| - |
|
1236 |
if mobileNo is not None:
|
| - |
|
1237 |
helper_client = HelperClient().get_client()
|
| - |
|
1238 |
helper_client.saveUserSmsForSending(user.id, mobileNo, "Dear, Customer, Product "+ product +" requested by you is now available at Saholic.com. Limited Stocks", SmsType.SERVICE_ALERT)
|
| - |
|
1239 |
userSmsInfo = helper_client.getUserSmsInfo(user.id);
|
| - |
|
1240 |
if userSmsInfo and mobileNo == userSmsInfo.mobileNo:
|
| - |
|
1241 |
userSmsInfo.dailyCount = userSmsInfo.dailyCount +1
|
| - |
|
1242 |
userSmsInfo.weeklyCount = userSmsInfo.weeklyCount +1
|
| - |
|
1243 |
helper_client.updateUserSmsInfo(userSmsInfo)
|
| - |
|
1244 |
elif userSmsInfo and mobileNo != userSmsInfo.mobileNo:
|
| - |
|
1245 |
userSmsInfo.updateTimestamp = to_java_date(datetime.datetime.now())
|
| - |
|
1246 |
userSmsInfo.mobileNo = mobileNo
|
| - |
|
1247 |
userSmsInfo.dailyCount = 1
|
| - |
|
1248 |
userSmsInfo.weeklyCount = 1
|
| - |
|
1249 |
helper_client.updateUserSmsInfo(userSmsInfo)
|
| - |
|
1250 |
else:
|
| - |
|
1251 |
userSmsInfo = UserSmsInfo()
|
| - |
|
1252 |
userSmsInfo.userId = user.id
|
| - |
|
1253 |
userSmsInfo.mobileNo = mobileNo
|
| - |
|
1254 |
userSmsInfo.createdTimestamp = to_java_date(datetime.datetime.now())
|
| - |
|
1255 |
userSmsInfo.updateTimestamp = to_java_date(datetime.datetime.now())
|
| - |
|
1256 |
helper_client.addUserSmsInfo(userSmsInfo);
|
| - |
|
1257 |
|
| - |
|
1258 |
except Exception as e:
|
| - |
|
1259 |
print e
|
| - |
|
1260 |
print sys.exc_info()[0]
|
| 1221 |
|
1261 |
|
| 1222 |
def get_all_sources():
|
1262 |
def get_all_sources():
|
| 1223 |
sources = Source.query.all()
|
1263 |
sources = Source.query.all()
|
| 1224 |
return [to_t_source(source) for source in sources]
|
1264 |
return [to_t_source(source) for source in sources]
|
| 1225 |
|
1265 |
|
| Line 2842... |
Line 2882... |
| 2842 |
return AmazonOutOfSync.get_by(item_id=itemId)
|
2882 |
return AmazonOutOfSync.get_by(item_id=itemId)
|
| 2843 |
|
2883 |
|
| 2844 |
def get_all_private_deals_comparison():
|
2884 |
def get_all_private_deals_comparison():
|
| 2845 |
return session.query(PrivateDealsPriceComparison,Item).join((Item,PrivateDealsPriceComparison.item_id==Item.id)).all()
|
2885 |
return session.query(PrivateDealsPriceComparison,Item).join((Item,PrivateDealsPriceComparison.item_id==Item.id)).all()
|
| 2846 |
|
2886 |
|
| - |
|
2887 |
'''
|
| - |
|
2888 |
def get_all_deal_tags():
|
| - |
|
2889 |
return session.query(DealTag).all()
|
| - |
|
2890 |
|
| - |
|
2891 |
def get_active_tags_for_item(itemId):
|
| - |
|
2892 |
return session.query(ItemTag).filter(ItemTag.itemId == itemId).filter(ItemTag.status == True).all()
|
| - |
|
2893 |
|
| - |
|
2894 |
def get_item_tag_for_item(itemId, tagId):
|
| - |
|
2895 |
tag = session.query(ItemTag).filter(ItemTag.itemId == itemId).filter(ItemTag.tagId == tagId).first()
|
| - |
|
2896 |
if tag:
|
| - |
|
2897 |
return tag
|
| - |
|
2898 |
else:
|
| - |
|
2899 |
return None
|
| - |
|
2900 |
|
| - |
|
2901 |
def get_all_item_tags_by_item_id(itemId):
|
| - |
|
2902 |
tag_list = []
|
| - |
|
2903 |
tag_list.append(session.query(ItemTag).filter(ItemTag.itemId == itemId).filter(ItemTag.status == True).first())
|
| - |
|
2904 |
return tag_list
|
| - |
|
2905 |
|
| - |
|
2906 |
def add_update_item_tag(itemTag, makeStatusInactive):
|
| - |
|
2907 |
if itemTag is None:
|
| - |
|
2908 |
raise CatalogServiceException(109, "Item Tag not found")
|
| - |
|
2909 |
|
| - |
|
2910 |
exist_tag = get_item_tag_for_item(itemTag.itemId, itemTag.tagId)
|
| - |
|
2911 |
if makeStatusInactive :
|
| - |
|
2912 |
for tag in get_active_tags_for_item(itemTag.itemId):
|
| - |
|
2913 |
tag.status = False
|
| - |
|
2914 |
session.commit()
|
| - |
|
2915 |
return True
|
| - |
|
2916 |
else:
|
| - |
|
2917 |
if exist_tag:
|
| - |
|
2918 |
exist_tag.startDate = to_py_date(itemTag.startDate)
|
| - |
|
2919 |
if itemTag.endDate:
|
| - |
|
2920 |
exist_tag.endDate = to_py_date(itemTag.endDate)
|
| - |
|
2921 |
else:
|
| - |
|
2922 |
exist_tag.endDate = None
|
| - |
|
2923 |
exist_tag.status = True
|
| - |
|
2924 |
session.commit()
|
| - |
|
2925 |
return True
|
| - |
|
2926 |
else:
|
| - |
|
2927 |
tag = ItemTag()
|
| - |
|
2928 |
tag.itemId = itemTag.itemId
|
| - |
|
2929 |
tag.tagId = itemTag.tagId
|
| - |
|
2930 |
tag.startDate = to_py_date(itemTag.startDate)
|
| - |
|
2931 |
if itemTag.endDate:
|
| - |
|
2932 |
tag.endDate = to_py_date(itemTag.endDate)
|
| - |
|
2933 |
tag.status = True
|
| - |
|
2934 |
session.commit()
|
| - |
|
2935 |
return True
|
| - |
|
2936 |
|
| - |
|
2937 |
return False
|
| - |
|
2938 |
'''
|
| - |
|
2939 |
|
| 2847 |
def get_all_snapdeal_marketplaceItem():
|
2940 |
def get_all_snapdeal_marketplaceItem():
|
| 2848 |
return session.query(SnapdealItem,MarketplaceItems,Item).join((MarketplaceItems,SnapdealItem.item_id==MarketplaceItems.itemId)).join((Item,SnapdealItem.item_id==Item.id)).filter(MarketplaceItems.source==OrderSource.SNAPDEAL).all()
|
2941 |
return session.query(SnapdealItem,MarketplaceItems,Item).join((MarketplaceItems,SnapdealItem.item_id==MarketplaceItems.itemId)).join((Item,SnapdealItem.item_id==Item.id)).filter(MarketplaceItems.source==OrderSource.SNAPDEAL).all()
|
| 2849 |
|
2942 |
|
| 2850 |
def get_all_flipkart_marketplaceItem():
|
2943 |
def get_all_flipkart_marketplaceItem():
|
| 2851 |
return session.query(FlipkartItem,MarketplaceItems,Item).join((MarketplaceItems,FlipkartItem.item_id==MarketplaceItems.itemId)).join((Item,FlipkartItem.item_id==Item.id)).filter(MarketplaceItems.source==OrderSource.FLIPKART).all()
|
2944 |
return session.query(FlipkartItem,MarketplaceItems,Item).join((MarketplaceItems,FlipkartItem.item_id==MarketplaceItems.itemId)).join((Item,FlipkartItem.item_id==Item.id)).filter(MarketplaceItems.source==OrderSource.FLIPKART).all()
|
| Line 3014... |
Line 3107... |
| 3014 |
def get_all_items_to_list_on_fbg():
|
3107 |
def get_all_items_to_list_on_fbg():
|
| 3015 |
return Amazonlisted.query.filter(Amazonlisted.isFbg==False).filter(or_(Amazonlisted.fbgtaxCode!=None,Amazonlisted.fbgtaxCode!="")).all()
|
3108 |
return Amazonlisted.query.filter(Amazonlisted.isFbg==False).filter(or_(Amazonlisted.fbgtaxCode!=None,Amazonlisted.fbgtaxCode!="")).all()
|
| 3016 |
|
3109 |
|
| 3017 |
def get_all_fbg_listed_items():
|
3110 |
def get_all_fbg_listed_items():
|
| 3018 |
return Amazonlisted.query.filter(Amazonlisted.isFbg==True).all()
|
3111 |
return Amazonlisted.query.filter(Amazonlisted.isFbg==True).all()
|
| - |
|
3112 |
|
| - |
|
3113 |
def add_hs_item(hsItems):
|
| - |
|
3114 |
for hsItem in hsItems:
|
| - |
|
3115 |
hs_item = HsItem.get_by(hsItemId = hsItem.hsItemId)
|
| - |
|
3116 |
if hs_item is None:
|
| - |
|
3117 |
hs_item = HsItem()
|
| - |
|
3118 |
hs_item.addedBy = hsItem.addedBy
|
| - |
|
3119 |
hs_item.addedTimestamp = to_py_date(hsItem.addedTimestamp)
|
| - |
|
3120 |
hs_item.defaultWarehouseId = hsItem.defaultWarehouseId
|
| - |
|
3121 |
hs_item.hsItemId = hsItem.hsItemId
|
| - |
|
3122 |
hs_item.hsProductId = hsItem.hsProductId
|
| - |
|
3123 |
hs_item.itemId = hsItem.itemId
|
| - |
|
3124 |
hs_item.listingPrice = hsItem.listingPrice
|
| - |
|
3125 |
session.commit()
|
| - |
|
3126 |
|
| - |
|
3127 |
def update_hs_item(hsItem):
|
| - |
|
3128 |
hs_item = HsItem.get_by(hsItemId = hsItem.hsItemId)
|
| - |
|
3129 |
hs_item.addedBy = hsItem.addedBy
|
| - |
|
3130 |
hs_item.addedTimestamp = to_py_date(hsItem.addedTimestamp)
|
| - |
|
3131 |
hs_item.defaultWarehouseId = hsItem.defaultWarehouseId
|
| - |
|
3132 |
hs_item.itemId = hsItem.itemId
|
| - |
|
3133 |
hs_item.listingPrice = hsItem.listingPrice
|
| - |
|
3134 |
session.commit()
|
| - |
|
3135 |
|
| - |
|
3136 |
def get_hs_item(hs_ItemId):
|
| - |
|
3137 |
hsItem = HsItem.get_by(hsItemId = hs_ItemId)
|
| - |
|
3138 |
return hsItem
|
| 3019 |
|
3139 |
|