Пример #1
0
def retrieveSfdcContactHistory(user_id=None, company_id=None, job_id=None, run_type=None, sinceDateTime=None): #needs to be changed - satya
    try:
        #delete later
        #job_id_new = job_id
        #job_id = ObjectId("56a690e98afb006883048e7e")

        #set variables
        sfdc = Salesforce()
        #for leads
        if run_type == 'initial':
            contacts = TempData.objects(Q(record_type='contact') & Q(source_system='sfdc') & Q(job_id=job_id)) #Q(job_id=job_id) & 
        else:
            contacts = TempDataDelta.objects(Q(record_type='contact') & Q(source_system='sfdc') & Q(job_id=job_id)) #Q(job_id=job_id) & 
        
        contactListTemp = list(contacts)
        if not contactListTemp:
            print 'no contacts found'
            return
        contactList = [i['source_record'] for i in contactListTemp]
 
        batch_size = 500  #10 Activity Types at a time
        activitiesList = []
        
        for i in range(0, len(contactList), batch_size):
            contact_list = '('
            for lead in contactList[i:i+batch_size]:
                contact_list += '\'' + lead['Id'] + '\'' + ', '
            contact_list = contact_list[:-2]
            contact_list += ')'
            activitiesList.extend(sfdc.get_history_for_contact(user_id, company_id, contact_list, _str_from_date(sinceDateTime)))
        
        print 'got back history for SFDC contacts ' + str(len(activitiesList))
        #delete later
        #job_id = job_id_new
        saveSfdcContactHistory(user_id=user_id, company_id=company_id, activityList=activitiesList, job_id=job_id, run_type=run_type)
        
        try:
            message = 'Contact history retrieved from Salesforce'
            notification = Notification()
            #notification.company_id = company_id
            notification.owner = user_id
            notification.module = 'Contacts'
            notification.type = 'Background task' 
            notification.method = os.path.basename(__file__)
            notification.message = message
            notification.success = True
            notification.read = False
            notification.save()
        except Exception as e:
            send_notification(dict(
                 type='error',
                 success=False,
                 message=str(e)
                ))    
        return contactList
    except Exception as e:
        print 'exception while retrieving SFDC contact history: ' + str(e)
        send_notification(dict(type='error', success=False, message=str(e)))