Subversion Repositories SmartDukaan

Rev

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

Rev 3849 Rev 3872
Line 17... Line 17...
17
import sys
17
import sys
18
from shop2020.utils.Utils import log_entry, to_py_date, log_risky_flag
18
from shop2020.utils.Utils import log_entry, to_py_date, log_risky_flag
19
from sqlalchemy import desc, asc
19
from sqlalchemy import desc, asc
20
from sqlalchemy.orm.exc import MultipleResultsFound, NoResultFound
20
from sqlalchemy.orm.exc import MultipleResultsFound, NoResultFound
21
from shop2020.model.v1.catalog.impl.CategoryManager import CategoryManager
21
from shop2020.model.v1.catalog.impl.CategoryManager import CategoryManager
22
from sqlalchemy.sql.expression import and_, distinct, func
22
from sqlalchemy.sql.expression import and_, or_, distinct, func
23
from string import Template
23
from string import Template
24
from shop2020.clients.HelperClient import HelperClient
24
from shop2020.clients.HelperClient import HelperClient
25
 
25
 
26
def initialize():
26
def initialize():
27
    DataService.initialize()
27
    DataService.initialize()
Line 1147... Line 1147...
1147
            item.mrp = sip.mrp
1147
            item.mrp = sip.mrp
1148
    except:
1148
    except:
1149
        print "No source pricing"
1149
        print "No source pricing"
1150
    return item
1150
    return item
1151
 
1151
 
-
 
1152
def search_items(search_terms, offset, limit):
-
 
1153
    query = Item.query
-
 
1154
    
-
 
1155
    query_clause = []
-
 
1156
    
-
 
1157
    search_terms = ['%' + search_term + '%' for search_term in search_terms]
-
 
1158
    
-
 
1159
    for search_term in search_terms:
-
 
1160
        query_clause.append(Item.brand.like(search_term))
-
 
1161
        query_clause.append(Item.model_number.like(search_term))
-
 
1162
        query_clause.append(Item.model_name.like(search_term))
-
 
1163
 
-
 
1164
    query = query.filter(or_(*query_clause))
-
 
1165
    
-
 
1166
    query = query.order_by(Item.product_group, Item.brand, Item.model_number, Item.model_name).offset(offset)
-
 
1167
    if limit:
-
 
1168
        query = query.limit(limit)
-
 
1169
    items = query.all()
-
 
1170
    return items
-
 
1171
 
-
 
1172
def get_search_result_count(search_terms):
-
 
1173
    query = Item.query
-
 
1174
    
-
 
1175
    query_clause = []
-
 
1176
    
-
 
1177
    search_terms = ['%' + search_term + '%' for search_term in search_terms]
-
 
1178
    
-
 
1179
    for search_term in search_terms:
-
 
1180
        query_clause.append(Item.brand.like(search_term))
-
 
1181
        query_clause.append(Item.model_number.like(search_term))
-
 
1182
        query_clause.append(Item.model_name.like(search_term))
-
 
1183
 
-
 
1184
    query = query.filter(or_(*query_clause))
-
 
1185
    
-
 
1186
    return query.count()
-
 
1187
 
1152
def close_session():
1188
def close_session():
1153
    if session.is_active:
1189
    if session.is_active:
1154
        print "session is active. closing it."
1190
        print "session is active. closing it."
1155
        session.close()
1191
        session.close()
1156
 
1192