Subversion Repositories SmartDukaan

Rev

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

Rev 15782 Rev 17697
Line 4... Line 4...
4
This script is used to load item details in the catalog database.
4
This script is used to load item details in the catalog database.
5
It's now mostly used for Accessories since they come in huge numbers.
5
It's now mostly used for Accessories since they come in huge numbers.
6
 
6
 
7
@author: Chandranshu
7
@author: Chandranshu
8
'''
8
'''
9
from elixir import *
-
 
10
from shop2020.thriftpy.model.v1.catalog.ttypes import Item
-
 
11
import csv
-
 
12
import datetime
-
 
13
from datetime import timedelta
9
from datetime import timedelta
14
import optparse
10
from elixir import *
15
import xlrd
-
 
16
from shop2020.clients.CatalogClient import CatalogClient
11
from shop2020.clients.CatalogClient import CatalogClient
17
from shop2020.clients.InventoryClient import InventoryClient
12
from shop2020.clients.InventoryClient import InventoryClient
-
 
13
from shop2020.thriftpy.model.v1.catalog.ttypes import Item
18
from shop2020.thriftpy.model.v1.inventory.ttypes import VendorItemPricing
14
from shop2020.thriftpy.model.v1.inventory.ttypes import VendorItemPricing
19
from shop2020.utils.Utils import to_java_date
-
 
20
from shop2020.utils.EmailAttachmentSender import mail
15
from shop2020.utils.EmailAttachmentSender import mail
-
 
16
from shop2020.utils.Utils import to_java_date
-
 
17
import csv
-
 
18
import datetime
-
 
19
import optparse
21
import time
20
import time
-
 
21
import traceback
-
 
22
import xlrd
22
 
23
 
23
if __name__ == '__main__' and __package__ is None:
24
if __name__ == '__main__' and __package__ is None:
24
    import sys
25
    import sys
25
    import os
26
    import os
26
    sys.path.insert(0, os.getcwd())
27
    sys.path.insert(0, os.getcwd())
Line 33... Line 34...
33
    num_rows = sheet.nrows
34
    num_rows = sheet.nrows
34
    updatedOn = to_java_date(datetime.datetime.now())
35
    updatedOn = to_java_date(datetime.datetime.now())
35
    cclient = CatalogClient().get_client()
36
    cclient = CatalogClient().get_client()
36
    prodClient = CatalogClient("catalog_service_server_host_prod").get_client()
37
    prodClient = CatalogClient("catalog_service_server_host_prod").get_client()
37
    iclient = InventoryClient().get_client()
38
    iclient = InventoryClient().get_client()
38
    rowsleft = [750,789,795,805,811,817,823,829,835,841,847,853,859,865,871,877,883,889,895,901,907,913,919,925,931,937,943,949,955,961,967,973,979,985,991,997,1003,1009,1015,1021,1027,1033,1039,1045,1051,1057,1063,1069,1075,1081,1087,1093,1099,1105,1111,1117,1123,1129,1135,1141,1147,1153,1159,1165,1171,1177,1183,1189,1195,1201,1207,1213,1219,1225,1231,1237,1243,1249,1255,1261,1267,1273,1279,1285,1291,1297,1303,1309,1315,1321,1327,1333,1339,1345,1351,1357,1363,1369,1375,1381,1387,1393,1399,1405,1411,1417,1423,1429,1435,1441,1447,1453,1459,1465,1471,1477,1483,1489,1495,1501,1507,1513,1519,1525,1531,1537,1543,1549,1555,1561,1567,1573,1579,1585,1591,1597,1603,1609,1615,1621,1627,1633,1639,1645,1651,1657,1663,1669,1675,1681,1687,1693,1699,1705,1711,1717,1723,1729,1735,1741,1747,1753,1759,1765,1771,1777,1783,1789,1795,1801,1807,1813,1819,1825,1831,1837,1843,1849,1855,1861,1867,1873,1879,1885,1891,1897,1903,1909,1915,1921,1927,1933,1939,1945,1951,1957,1963,1969,1975,1981,1987,1993,1999,2005,2011,2017,2023,2029,2035,2041,2047,2053,2059,2065,2071,2077,2083,2089,2095,2101,2107,2113,2119,2125,2131,2137,2143,2149,2155,2161,2167,2173,2179,2185,2191,2197,2203,2209,2215,2221,2227,2233,2239]
-
 
39
    rowsdone = [750,789,795,805,811,823,829,835,841,847,859,865,871,877,883,895,901,907,913,919,931,937,943,949,955,967,973,979,985,991,1003,1009,1015,1021,1027,1039,1045,1051,1057,1063,1075,1081,1087,1093,1099,1111,1117,1123,1129,1135,1147,1153,1159,1165,1171,1183,1189,1195,1201,1207,1219,1225,1231,1237,1243,1255,1261,1267,1273,1279,1291,1297,1303,1309,1315,1327,1333,1339,1345,1351,1363,1369,1375,1381,1387,1399,1405,1411,1417,1423,1435,1441,1447,1453,1459,1471,1477,1483,1489,1495,1507,1513,1519,1525,1531,1543,1549,1555,1561,1567,1579,1585,1591,1597,1603,1615,1621,1627,1633,1639,1651,1657,1663,1669,1675,1687,1693,1699,1705,1711,1723,1729,1735,1741,1747,1759,1765,1771,1777,1783,1795,1801,1807,1813,1819,1831,1837,1843,1849,1855,1867,1873,1879,1885,1891,1903,1909,1915,1921,1927,1939,1945,1951,1957,1963,1975,1981,1987,1993,1999,2011,2017,2023,2029,2035,2047,2053,2059,2065,2071,2083,2089,2095,2101,2107,2119,2125,2131,2137,2143,2155,2161,2167,2173,2179,2191,2197,2203,2209,2215,2227,2233,2239,817,853,889,925,997,1033,1069,1105,1141,1213,1249,1285,1321,1357,1429,1465,1501,1537,1573,1645,1681,1717,1753,1789,1861,1897,1933,1969,2005,2077,2113,2149,2185,2221,1177,1193,1609,1825,2041,1393]
39
 
40
    tcategories = cclient.getAllCategories()
40
    tcategories = cclient.getAllCategories()
41
    parent_category_ids = [] 
41
    parent_category_ids = [] 
42
    categoryMap = {}
42
    categoryMap = {}
43
    #0-Delhi 1-Maha 2-Blr 3-Ggn 4-Rajasthan 5-Telangana 6-Gujarat
43
    #0-Delhi 1-Maha 2-Blr 3-Ggn 4-Rajasthan 5-Telangana 6-Gujarat
44
    
44
    
Line 50... Line 50...
50
        if tcategory.id not in parent_category_ids:
50
        if tcategory.id not in parent_category_ids:
51
            categoryMap[tcategory.label] = tcategory.id
51
            categoryMap[tcategory.label] = tcategory.id
52
        
52
        
53
    message = ""
53
    message = ""
54
    for rownum in range(1, num_rows):
54
    for rownum in range(1, num_rows):
55
        if rownum not in rowsleft:
-
 
56
            continue
-
 
57
        if rownum in rowsdone:
-
 
58
            continue
-
 
59
            
-
 
60
        states = {}
55
        states = {}
61
        try:
56
        try:
62
            product_group, category_name, brand, model_number, model_name, color, mrp, sp, mop, dp, tp, nlc, start_date, preferred_vendor, risky, weight, item_type, states[0], states[3], states[1], states[2]  = sheet.row_values(rownum)[0:21]
57
            product_group, category_name, brand, model_number, model_name, color, mrp, sp, mop, dp, tp, nlc, start_date, preferred_vendor, risky, weight, item_type, states[0], states[3], states[1], states[2]  = sheet.row_values(rownum)[0:21]
63
            if isinstance(model_number, float):
58
            if isinstance(model_number, float):
64
                model_number = str(int(model_number))
59
                model_number = str(int(model_number))
Line 68... Line 63...
68
            item.productGroup = product_group
63
            item.productGroup = product_group
69
            item.brand = brand
64
            item.brand = brand
70
            item.modelNumber = model_number
65
            item.modelNumber = model_number
71
            item.modelName = model_name
66
            item.modelName = model_name
72
            item.color = color
67
            item.color = color
-
 
68
            try:
73
            item.mrp = round(mrp)
69
                item.mrp = round(mrp)
-
 
70
            except:
-
 
71
                pass
74
            #if item is risky
72
            #if item is risky
75
            if categoryMap.has_key(category_name.strip()):
73
            if categoryMap.has_key(category_name.strip()):
76
                item.category = categoryMap[category_name.strip()]
74
                item.category = categoryMap[category_name.strip()]
77
                item.itemStatus = 8
75
                item.itemStatus = 8
78
            else:
76
            else:
Line 83... Line 81...
83
            item.preferredVendor = preferred_vendor
81
            item.preferredVendor = preferred_vendor
84
            item.risky = int(risky)
82
            item.risky = int(risky)
85
            item.weight = weight
83
            item.weight = weight
86
            item.updatedOn = updatedOn
84
            item.updatedOn = updatedOn
87
            item.type = int(item_type)
85
            item.type = int(item_type)
88
            for key,val in states.iteritems():
86
            for key in states.keys():
-
 
87
                val = states[key]
-
 
88
                if val !='':
89
                states[key] = val*100
89
                    states[key] = val*100
-
 
90
                else:
-
 
91
                    del states[key]
90
                
92
                
91
            for c in (1,2,3,4,5):
93
            for c in (1,2,3,4,5):
92
                print "itemid", item.id
94
                print "itemid", item.id
93
                try:
95
                try:
94
                    item_id = cclient.addItem(item)
96
                    item_id = cclient.addItem(item)