Subversion Repositories SmartDukaan

Rev

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

Rev 15309 Rev 15312
Line 20... Line 20...
20
import string
20
import string
21
import traceback
21
import traceback
22
import urllib
22
import urllib
23
import urllib2
23
import urllib2
24
import uuid
24
import uuid
-
 
25
import re
25
alphalist = list(string.uppercase)
26
alphalist = list(string.uppercase)
26
alphalist.remove('O')
27
alphalist.remove('O')
27
numList = ['1','2','3','4','5','6','7','8','9']
28
numList = ['1','2','3','4','5','6','7','8','9']
28
codesys = [alphalist, alphalist, numList, numList, numList]
29
codesys = [alphalist, alphalist, numList, numList, numList]
-
 
30
CONTACT_PRIORITY = ['sms', 'called', 'ringing']
29
 
31
 
30
 
32
 
31
def getNextCode(codesys, code=None):
33
def getNextCode(codesys, code=None):
32
    if code is None:
34
    if code is None:
33
        code = []
35
        code = []
Line 640... Line 642...
640
                fetchInfo.last_action = 'disposition'
642
                fetchInfo.last_action = 'disposition'
641
                fetchInfo.last_action_time = last_disposition.created
643
                fetchInfo.last_action_time = last_disposition.created
642
            fetchInfo.retailer_id = retailer.id
644
            fetchInfo.retailer_id = retailer.id
643
            session.commit()
645
            session.commit()
644
            
646
            
645
            otherContacts = session.query(RetailerContacts).filter_by(retailer_id=retailer.id).all() 
647
            otherContacts = [r for r, in session.query(RetailerContacts.mobile_number).filter_by(retailer_id=retailer.id).order_by(RetailerContacts.contact_type).all()] 
646
            if retailer is None:
648
            if retailer is None:
647
                resp.body = "{}"
649
                resp.body = "{}"
648
            else:
650
            else:
649
                resp.body = json.dumps(todict(getRetailerObj(retailer, otherContacts)), encoding='utf-8')
651
                resp.body = json.dumps(todict(getRetailerObj(retailer, otherContacts)), encoding='utf-8')
650
            
652
            
Line 850... Line 852...
850
            session.commit()
852
            session.commit()
851
        finally:
853
        finally:
852
            session.close()
854
            session.close()
853
            
855
            
854
def addContactToRetailer(agentId, retailerId, mobile, callType, contactType):
856
def addContactToRetailer(agentId, retailerId, mobile, callType, contactType):
855
    retailerContacts = session.query(RetailerContacts).filter_by(retailer_id=retailerId).filter_by(mobile_number=mobile).first()
857
    retailerContact = session.query(RetailerContacts).filter_by(retailer_id=retailerId).filter_by(mobile_number=mobile).first()
856
    if retailerContacts is None:
858
    if retailerContact is None:
857
        retailerContact = RetailerContacts()
859
        retailerContact = RetailerContacts()
858
        retailerContact.retailer_id = retailerId
860
        retailerContact.retailer_id = retailerId
859
        retailerContact.agent_id = agentId
861
        retailerContact.agent_id = agentId
860
        retailerContact.call_type = callType
862
        retailerContact.call_type = callType
861
        retailerContact.contact_type = contactType
863
        retailerContact.contact_type = contactType
862
        retailerContact.mobile_number = mobile
864
        retailerContact.mobile_number = mobile
-
 
865
    else:
-
 
866
        if CONTACT_PRIORITY.index(retailerContact.contact_type) > CONTACT_PRIORITY.index(callType):
-
 
867
            retailerContact.contact_type = callType
-
 
868
            
-
 
869
        
863
        
870
        
864
class Login():
871
class Login():
865
    
872
    
866
    def on_get(self, req, resp, agentId, role):
873
    def on_get(self, req, resp, agentId, role):
867
        try:
874
        try:
Line 994... Line 1001...
994
        otherContacts1.append(retailer.contact2)
1001
        otherContacts1.append(retailer.contact2)
995
    obj.address = retailer.address_new if retailer.address_new is not None else retailer.address
1002
    obj.address = retailer.address_new if retailer.address_new is not None else retailer.address
996
    obj.contact1 = otherContacts1[0]
1003
    obj.contact1 = otherContacts1[0]
997
    obj.contact2 = None if len(otherContacts1)==1 else otherContacts1[1]
1004
    obj.contact2 = None if len(otherContacts1)==1 else otherContacts1[1]
998
    obj.scheduled = (retailer.call_priority is not None)
1005
    obj.scheduled = (retailer.call_priority is not None)
-
 
1006
    obj.status = retailer.status
999
    return obj
1007
    return obj
1000
 
1008
 
1001
def make_tiny(code):
1009
def make_tiny(code):
1002
    url = 'https://play.google.com/store/apps/details?id=com.saholic.profittill&referrer=utm_source%3D0%26utm_medium%3DCRM%26utm_term%3D001%26utm_campaign%3D' + code
1010
    url = 'https://play.google.com/store/apps/details?id=com.saholic.profittill&referrer=utm_source%3D0%26utm_medium%3DCRM%26utm_term%3D001%26utm_campaign%3D' + code
1003
    request_url = ('http://tinyurl.com/api-create.php?' + urlencode({'url':url}))
1011
    request_url = ('http://tinyurl.com/api-create.php?' + urlencode({'url':url}))
Line 1011... Line 1019...
1011
        try:
1019
        try:
1012
            jsonReq = json.loads(req.stream.read(), encoding='utf-8')
1020
            jsonReq = json.loads(req.stream.read(), encoding='utf-8')
1013
            lgr.info( "Request in Search----\n"  + str(jsonReq))
1021
            lgr.info( "Request in Search----\n"  + str(jsonReq))
1014
            contact=jsonReq.get('searchTerm')
1022
            contact=jsonReq.get('searchTerm')
1015
            if(searchType=="number"):
1023
            if(searchType=="number"):
-
 
1024
                retailer_ids = session.query(RetailerContacts.retailer_id).filter_by(mobile_number=contact).all()
-
 
1025
                retailer_ids = [r for r, in retailer_ids]    
1016
                anotherCondition = or_(Retailers.contact1==contact,Retailers.contact2==contact)
1026
                anotherCondition = or_(Retailers.contact1==contact,Retailers.contact2==contact, Retailers.id.in_(retailer_ids))
-
 
1027
            else:
-
 
1028
                m = re.match("(.*?)(\d{6})(.*?)", contact)
1017
            elif(searchType=="counter"):
1029
                if m is not None:
-
 
1030
                    pin = m.group(2)
-
 
1031
                    contact = m.group(1) if m.group(1) != '' else m.group(3)
1018
                #retailer_ids = list(session.query(RetailerContacts.retailer_id).filter_by(mobile_number=contact).all())    
1032
                    anotherCondition = and_(Retailers.title.ilike('%%%s%%'%(contact)), Retailers.pin==pin))
-
 
1033
                else:
1019
                anotherCondition = Retailers.title.ilike('%%%s%%'%(contact))
1034
                    anotherCondition = Retailers.title.ilike('%%%s%%'%(contact))
1020
            
1035
            
1021
            searchUser = session.query(Retailers).filter(Retailers.modified != None).filter(anotherCondition).all()
1036
            retailers = session.query(Retailers).filter(anotherCondition).all()
1022
            if searchUser is None:
1037
            if retailers is None:
1023
                resp.body = json.dumps("{}")
1038
                resp.body = json.dumps("{}")
1024
            else:    
1039
            else:
-
 
1040
                for retailer in retailers:
-
 
1041
                    otherContacts = [r for r, in session.query(RetailerContacts.mobile_number).filter_by(retailer_id=retailer.id).order_by(RetailerContacts.contact_type).all()]    
1025
                resp.body = json.dumps({"Retailers":[todict(getRetailerObj(user)) for user in searchUser]}, encoding='utf-8')
1042
                    resp.body = json.dumps({"Retailers":[todict(getRetailerObj(retailer, otherContacts)) for retailer in retailers]}, encoding='utf-8')
-
 
1043
            return
1026
        finally:
1044
        finally:
1027
            session.close()
1045
            session.close()
1028
 
1046
 
1029
 
1047
 
1030
#def update_pin():
1048
#def update_pin():
1031
    
1049
    
1032
    
1050
    
1033
class Mock(object):
1051
class Mock(object):
1034
    pass
1052
    pass
1035
 
1053
 
1036
def main():
1054
def tagActivatedReatilers():
1037
    retailerIds = session.query(RetailerLinks.retailer_id).all()
1055
    retailerIds = [r for  r, in session.query(RetailerLinks.retailer_id).all()]
-
 
1056
    session.close()
1038
    for retailerId in retailerIds:
1057
    for retailerId in retailerIds:
1039
        (retailerId,) = retailerId
-
 
1040
        isActivated(retailerId)
1058
        isActivated(retailerId)
-
 
1059
    session.close()
-
 
1060
def main():
-
 
1061
    tagActivatedReatilers()
1041
    
1062
    
1042
if __name__ == '__main__':
1063
if __name__ == '__main__':
1043
    main()
1064
    main()
1044
        
1065
        
1045
1066