Пример #1
0
def edit_employee(request,id):
	userprofile=UserProfile.objects.get(user=request.user)
	try:
		employee=Employee.objects.get(pk=id)
	except Employee.DoesNotExist:
		raise Http404

	try:
		action=Action.objects.get(is_leave=False,status=1,update_log__employee=employee)
		messages.success(request, 'An update action is already pending')
		return redirect(reverse('action',args=(action.pk,)))
	except Action.DoesNotExist:
		pass



	form=EmployeeEditForm(initial={'new_name':employee.name,'new_dept':employee.dept
	,'new_email':employee.email,'new_is_active':employee.is_active})
	context={
	'employee':employee,
	'form':form,
	'user_type':userprofile.user_type
	}
	if request.method=='POST':
		form = EmployeeEditForm(request.POST)
		if form.is_valid():
			new_name=form.cleaned_data['new_name']
			new_dept=form.cleaned_data['new_dept']
			new_email=form.cleaned_data['new_email']
			new_is_active=form.cleaned_data['new_is_active']
			note=form.cleaned_data['note']
			if(new_name==employee.name and new_dept==employee.dept and
		 	new_email==employee.email and new_is_active==employee.is_active):
		 		messages.error(request,'No details updated')
		 		context['form']=form
		 	else:
			 	action=Action(note=note,is_leave=False)
			 	action.save()
			 	update=EmployeeUpdateLog(action=action,employee=employee,new_name=new_name,new_dept=new_dept,
			 	new_email=new_email,new_is_active=new_is_active,old_name=employee.name,old_dept=employee.dept,
			 	old_email=employee.email,old_is_active=employee.is_active)
			 	update.save()
				messages.success(request, 'Employee details update sent for approval')
				return redirect(reverse('action',args=(action.pk,)))
			
		else:
			messages.error(request,'Please correct incorrect fields')
			context['form']=form
		return render(request,'leave/edit_employee.html',context)
	
	else:	
		return render(request,'leave/edit_employee.html',context)
Пример #2
0
def manage_leave(request):
    if request.method == 'POST':
        leave_type = request.POST.get('leave_type', '')
        action_type = request.POST.get('action_type', '')
        days = request.POST.get('count', '')
        note = request.POST.get('note', '')
        try:
            leave_type = int(leave_type)
            action_type = int(action_type)
            days = int(days)
        except ValueError:
            messages.error(request, "Invalid Inputs")
            return redirect(reverse('employees'))

        if 1 <= leave_type <= 2 and (action_type == -1
                                     or action_type == 1) and days >= 0:
            count = 0
            employees = request.POST.getlist('check[]')
            action = Action(note=note, )
            action.save()

            for pk in employees:
                try:
                    employee = Employee.objects.get(pk=pk)
                except Employee.DoesNotExist:
                    pass
                else:
                    if action_type == -1 and not employee.isLeaveLeft(
                            days, leave_type):
                        pass
                    else:

                        TransactionLog().AdminTransaction(
                            action, employee, leave_type, days, action_type,
                            note)
                        count = count + 1

            if count:
                messages.success(
                    request, "Leave Credit/Debit of " + str(count) +
                    " employees sent for approval")
                action.count = count
                action.save()
            else:
                messages.error(request, "Error. No employee selected")
                action.delete()

        else:
            messages.error(request, "Invalid Action")

        return redirect(reverse('employees'))
    else:
        raise PermissionDenied
Пример #3
0
def new_employee(request):
    userprofile = UserProfile.objects.get(user=request.user)

    context = {
        'user_type': userprofile.user_type,
    }
    if request.method == 'POST':
        form = EmployeeNewForm(request.POST)
        code = form.data['code']

        try:
            employee = Employee.objects.filter(is_active=False).get(code=code)
            messages.success(
                request,
                'Employee code already exists ,Please update details Here')
            return redirect(reverse('edit_employee', args=(employee.pk, )))
        except Employee.DoesNotExist:
            if form.is_valid():

                new_employee = form.save()
                note = "Adding new employee"
                action = Action(note=note, is_leave=False)
                action.save()
                update = EmployeeUpdateLog(action=action,
                                           is_new=True,
                                           employee=new_employee,
                                           new_name=new_employee.name,
                                           new_dept=new_employee.dept,
                                           new_email=new_employee.email,
                                           new_is_active=True,
                                           old_name=new_employee.name,
                                           old_dept=new_employee.dept,
                                           old_email=new_employee.email,
                                           old_is_active=False)
                update.save()
                messages.success(
                    request, 'Request to add new employee sent for approval')
                return redirect(reverse('action', args=(action.pk, )))
            else:
                messages.error(request, 'Please correct incorrect fields')
                context['form'] = form
        return render(request, 'leave/new_employee.html', context)

    else:
        context['form'] = EmployeeNewForm()
        return render(request, 'leave/new_employee.html', context)
Пример #4
0
def manage_leave(request):
	if request.method=='POST':
		leave_type=request.POST.get('leave_type','')
		action_type=request.POST.get('action_type','')
		days=request.POST.get('count','')
		note=request.POST.get('note','')
		try :
			leave_type=int(leave_type)
			action_type=int(action_type)
			days=int(days)
		except ValueError:
			messages.error(request,"Invalid Inputs")
			return redirect(reverse('employees'))


		
		if 1<= leave_type <=2 and (action_type==-1 or action_type==1) and days>=0:
			count=0
			employees=request.POST.getlist('check[]')
			action=Action(note=note,)
			action.save()

			for pk in employees:
				try:
					employee=Employee.objects.get(pk=pk)
				except Employee.DoesNotExist:
					pass
				else:
					if action_type==-1 and not employee.isLeaveLeft(days,leave_type):
						pass
					else:
						
						TransactionLog().AdminTransaction(action,employee,leave_type,days,action_type,note)
						count=count+1


			if count:
				messages.success(request,"Leave Credit/Debit of "+str(count)+" employees sent for approval")
				action.count=count
				action.save()
			else:
				messages.error(request,"Error. No employee selected")
				action.delete()
		

		else:
			messages.error(request,"Invalid Action")

		return redirect(reverse('employees'))
	else:
		raise PermissionDenied
Пример #5
0
def new_employee(request):
    userprofile = UserProfile.objects.get(user=request.user)
    context = {
        'user_type': UserProfile.user_type,
    }
    if request.method == 'POST':
        form = EmployeeNewForm(request.POST)
        qci_id = form.data['qci_id']
        try:
            employee = Employee.objects.filter(is_active=False).get(
                qci_id=qci_id)
            messages.success(request,
                             'Employee Id already exits,upload details here')
            return redirect(reverse('edit_employee', args=(employee.pk, )))
        except Employee.DoesNotExist:
            if form.is_valid():
                new_employee = form.save()
                note = "Adding new Employee"
                action = Action(note=note, is_leave=False)
                action.save()
                update = EmployeeUpdateLog(action=action,
                                           is_new=True,
                                           employee=new_employee,
                                           new_name=new_employee.name,
                                           new_dept=new_employee.dept,
                                           new_email=new_employee.email,
                                           new_is_active=True)
                update.save()
                messages.success(request, 'New Employee is going to be added')
                return redirect(reverse('action', args=(action.pk, )))
            else:
                messages.error(request, 'Please correct,Incorrect fields')
                context['form'] = form
        return redirect(request, 'leave/new_employee.html', context)
    else:
        context['form'] = EmployeeNewForm()
        return render(request, 'leave/new_employee.html', context)
Пример #6
0
def new_employee(request):
	userprofile=UserProfile.objects.get(user=request.user)

	context={
	'user_type':userprofile.user_type,
	}
	if request.method=='POST':
		form = EmployeeNewForm(request.POST)
		code=form.data['code']
		
		try:
			employee=Employee.objects.filter(is_active=False).get(code=code)
			messages.success(request, 'Employee code already exists ,Please update details Here')
			return redirect(reverse('edit_employee',args=(employee.pk,)))
		except Employee.DoesNotExist:
			if form.is_valid():
					
					new_employee=form.save()
					note="Adding new employee"
					action=Action(note=note,is_leave=False)
				 	action.save()
				 	update=EmployeeUpdateLog(action=action,is_new=True,employee=new_employee,new_name=new_employee.name,
				 	new_dept=new_employee.dept,new_email=new_employee.email,new_is_active=True,
				 	old_name=new_employee.name,old_dept=new_employee.dept,
				 	old_email=new_employee.email,old_is_active=False)
				 	update.save()
					messages.success(request, 'Request to add new employee sent for approval')
					return redirect(reverse('action',args=(action.pk,)))
			else:
				messages.error(request,'Please correct incorrect fields')
				context['form']=form
		return render(request,'leave/new_employee.html',context)
	
	
	else:	
		context['form']=EmployeeNewForm()
		return render(request,'leave/new_employee.html',context)
Пример #7
0
def edit_employee(request, id):
    userprofile = UserProfile.objects.get(user=request.user)
    try:
        employee = Employee.objects.get(pk=id)
    except Employee.DoesNotExist:
        raise Http404

    try:
        action = Action.objects.get(is_leave=False,
                                    status=1,
                                    update_log__employee=employee)
        messages.success(request, 'An update action is already pending')
        return redirect(reverse('action', args=(action.pk, )))
    except Action.DoesNotExist:
        pass

    form = EmployeeEditForm(
        initial={
            'new_name': employee.name,
            'new_dept': employee.dept,
            'new_email': employee.email,
            'new_is_active': employee.is_active
        })
    context = {
        'employee': employee,
        'form': form,
        'user_type': userprofile.user_type
    }
    if request.method == 'POST':
        form = EmployeeEditForm(request.POST)
        if form.is_valid():
            new_name = form.cleaned_data['new_name']
            new_dept = form.cleaned_data['new_dept']
            new_email = form.cleaned_data['new_email']
            new_is_active = form.cleaned_data['new_is_active']
            note = form.cleaned_data['note']
            if (new_name == employee.name and new_dept == employee.dept
                    and new_email == employee.email
                    and new_is_active == employee.is_active):
                messages.error(request, 'No details updated')
                context['form'] = form
            else:
                action = Action(note=note, is_leave=False)
                action.save()
                update = EmployeeUpdateLog(action=action,
                                           employee=employee,
                                           new_name=new_name,
                                           new_dept=new_dept,
                                           new_email=new_email,
                                           new_is_active=new_is_active,
                                           old_name=employee.name,
                                           old_dept=employee.dept,
                                           old_email=employee.email,
                                           old_is_active=employee.is_active)
                update.save()
                messages.success(request,
                                 'Employee details update sent for approval')
                return redirect(reverse('action', args=(action.pk, )))

        else:
            messages.error(request, 'Please correct incorrect fields')
            context['form'] = form
        return render(request, 'leave/edit_employee.html', context)

    else:
        return render(request, 'leave/edit_employee.html', context)