Beispiel #1
0
def push_agent_data(request):

    if request.method == POST:

        success = True
        message = ''
        agent = request.data.get('agent', None)
        address = request.data.get('address', None)
        lic = request.data.get('licence', None)
        region = request.data.get('region', None)
        employee = None

        rm = None
        rsm = None
        ram = None
        bm = None
        dm = None
        adm = None
        dept = None
        branch = None

        try:
            region = Region.objects.get(code=region['code'])
        except Region.DoesNotExist:
            if region.get('code', False) and region.get('name', False):
                region = Region.objects.create(code=region['code'],
                                               name=region['name'])
            pass

        if region:
            try:
                branch = Branch.objects.get(code__in=['HQ', 'RO'])
            except Branch.DoesNotExist:
                pass

        try:
            rm = Employee.objects.get(
                commission_code__icontains=agent['rm_code']
            ) if agent['rm_code'] else None
        except Employee.DoesNotExist:
            pass
        try:
            rsm = Employee.objects.get(
                commission_code__icontains=agent['rsm_code']
            ) if agent['rsm_code'] else None
        except Employee.DoesNotExist:
            pass
        try:
            ram = Employee.objects.get(
                commission_code__icontains=agent['ram_code']
            ) if agent['ram_code'] else None
        except Employee.DoesNotExist:
            pass
        try:
            bm = Employee.objects.get(
                commission_code__icontains=agent['bm_code']
            ) if agent['bm_code'] else None
        except Employee.DoesNotExist:
            pass
        try:
            dm = Employee.objects.get(
                commission_code__icontains=agent['dm_code']
            ) if agent['dm_code'] else None
        except Employee.DoesNotExist:
            pass
        try:
            adm = Employee.objects.get(
                commission_code__icontains=agent['adm_code']
            ) if agent['adm_code'] else None
        except Employee.DoesNotExist:
            pass

        try:
            with transaction.atomic():

                employees = Employee.objects.filter(
                    commission_code=agent['code'])
                if employees.count() == 1:
                    employee = employees.first()
                elif employees.count() > 1:
                    success = False
                    message = 'Duplicate employees exist under this code [%s] - fix your shit' % agent[
                        'code']
                elif employees.count() < 1:
                    employee = Employee()

                employee.commission_code = agent['code']
                employee.first_name = agent['name']
                employee.last_name = agent['surname']
                employee.id_number = agent['id_number']

                roles = agent['role']

                employee.email = agent['email']
                employee.region = region
                employee.save()

        except IntegrityError as e:
            success = False
            message = 'Employee could not be saved on elopsys. Detail: %s' % e.message
        print 'Agents updated'
        return JsonResponse({
            'success': success,
            'message': message
        },
                            status=200,
                            content_type='application/json')