def create_employee(request):
	"""Create Employee"""
	username = request.POST['username']
	password = request.POST['password']
	confirm_password = request.POST['confirm_password']
	first_name = request.POST['first_name']
	last_name  = request.POST['last_name']

	# TODO: Add password verification

	u = User.objects.create_user(username=username,
	                             password=password,
	                             email=username,
	                             first_name=first_name,
	                             last_name=last_name)

	# Add the user ot the Employee group
	groupid, group = Group.objects.get_or_create(name="Employee")
	u.groups.add(groupid)

	# Create the Employee
	e = Employee(user=u)
	e.save()

	user = auth.authenticate(username=username, password=password)

	if user is not None:
	    if user.is_active:
	        auth.login(request, user)
	        return HttpResponseRedirect(reverse('employee:home'))

	return HttpResponseRedirect(reverse('employee:home'))
Exemple #2
0
def import_csv_data(request):
    """
    Import csv data and save it to database
    """

    csv.register_dialect('myDialect',
                         quoting=csv.QUOTE_ALL,
                         skipinitialspace=True)

    csv_file = request.POST['csv_file']

    # read the line to edit
    with open(csv_file, 'r') as readFile:
        reader = csv.reader(readFile)
        lines = list(reader)
        size = len(lines)

        records_added = 0

        # to exclude the headings, dont read the first line
        for i in range(1, size):
            # read data in each row
            for line in lines:
                record = Employee(first_name=line[0],
                                  last_name=line[1],
                                  email=line[2],
                                  phone=line[3],
                                  department=line[4],
                                  employee_id=line[5])
                record.save()
                records_added += 1  #number of records saved

    readFile.close()
Exemple #3
0
def getEmployee(request):
	employee = []
	employeeObject = None
	status = 200
	if(request.method.lower() == "get"):
		print("get method")
		employeeObject = Employee.objects.all()
		for o in employeeObject:
			employee.append({
				"id": o.id,
				"name": o.name,
				"age": o.age,
				"address": o.address
			})
	elif (request.method.lower() == "post"):
		print("post method")
		data = json.loads(request.body)
		employee = Employee(name=data["name"], age=data["age"], address=data["address"])
		employee.save()
		employee = [{
			"id": employee.id,
			"name": employee.name,
			"age": employee.age,
			"address": employee.address
		}]
		status = 201
	else:
		print("don't know what's going on", request.method)
	return response.success(data=list(employee), status=status, hint=None)
Exemple #4
0
    def create(self, validated_data):
        """
        Função para criar dados do usuário na API
        """
        list_company = list()
        try:
            address = Address.objects.create(**validated_data['address'])
            del validated_data['address']
        except KeyError:
            raise ParameterInvalid()

        try:
            for company in validated_data['company']:
                list_company.append(Company.objects.get(id=company['id']))
            del validated_data['company']
        except KeyError:
            raise ParameterInvalid()
        except Company.DoesNotExist:
            raise CompanyNonexistent()

        employee = Employee(**validated_data)
        employee.address = address
        employee.save()

        employee.company.set(list_company)
        return employee
def employee(request):
    # return HttpResponse("this is employee page")
    if request.method == 'POST':
        employee_id = request.POST.get('employee_id')
        name = request.POST.get('name')
        # date_of_birth = request.POST.get('date_of_birth')
        department = request.POST.get('department')
        # school = request.POST.get('school')
        university_mail = request.POST.get('university_mail')
        phone_no = request.POST.get('phone_no')
        # date_of_joining = request.POST.get('date_of_joining')
        photo = request.FILES.get('photo')
        # id_proof_no = request.POST.get('id_proof_no')
        # id_type = request.POST.get('id_type')
        # id_photo = request.POST.get('id_photo')
        employee = Employee(
            employee_id=employee_id,
            name=name,
            department=department,
            university_mail=university_mail,
            phone_no=phone_no,
            photo=photo,
        )
        employee.save()
        messages.success(request, "Employee added to the database.")
    em = Employee.objects.all()
    return render(request, 'employee/employee.html', {'em': em})
Exemple #6
0
def display(request):
    ename = request.POST.get("ename")
    eid = request.POST.get("eid")
    esal = request.POST.get("esal")
    design = request.POST.get("design")
    ob = Employee(ename=ename, eid=eid, esal=esal, design=design)
    ob.save()
    return getEmployee(request)
Exemple #7
0
def emp_register(request):  #saves reg detail to db
    fname = request.POST.get("first")
    email = request.POST.get("email")
    uname = request.POST.get("username")
    pwd = request.POST.get("pwd")
    sal = request.POST.get("salary")
    obj = Employee(first=fname, email=email, uname=uname, pwd=pwd, sal=sal)
    obj.save()
    print("object saved")
    return render(request, "login.html")
def EmployeAdd(request):
	data = { 
		"added": False,
		"message":"",
		"employee":None
		}

	if request.method == "POST":
		input_data = request.POST
		print(input_data)

		if "id" in request.GET:

			if request.GET["id"] != "":
				# update
				emp = Employee.objects.get(
						id=request.GET["id"]
						)
				emp.name = input_data["name"]
				emp.email = input_data["email"]
				emp.address = input_data["address"]
				emp.phone = input_data["phone"]
				emp.save()
			
			else:
				# Add 
				emp = Employee.objects.filter(
						email=input_data["email"]
						)
				if emp:
					data["message"] = "The email already exists"
				else:
					emp = Employee(
							name=input_data["name"],
							email=input_data["email"],
							address=input_data["address"],
							phone=input_data["phone"],
						)
					emp.save()
					data["added"] = True

	if "id" in request.GET:
		try:
			data["employee"] = Employee.objects.get(
					id=request.GET["id"]
					)
		except:
			pass
	return render(request, "employee-add.html", data)
Exemple #9
0
def employeeInsert(request):
    emp = Employee()
    emp.ename = request.POST['ename']
    emp.emailid = request.POST['emailid']
    emp.password = request.POST['password']
    emp.department_id = request.POST['dept']
    emp.mobno = request.POST['mobno']
    emp.save()
    return HttpResponse(render(
        request,
        'employee/Login.html',
    ))
Exemple #10
0
    def handle(self, *args, **kwargs):
        """Create 'total' dummy employees in database."""
        no_of_employees = kwargs['total']

        if no_of_employees < 1:
            self.stdout.write(
                "Can not create -ive or zero number of employees.")

        else:
            name_set = self.get_n_unique_names(no_of_employees)

            existing_phones = Employee.objects.all().values_list(
                'phone_number', flat=True)

            phone_set = self.get_n_unique_numbers(
                no_of_employees, existing_phones=existing_phones)
            employee_list = []

            for i in range(no_of_employees):
                employee = Employee(
                    **{
                        'name': name_set[i],
                        'gender': 'M',
                        'phone_number': phone_set[i],
                        'address': DUMMY_ADDRESS_MARKER
                    })
                employee_list.append(employee)

            Employee.objects.bulk_create(employee_list)
            self.stdout.write("Dummy employees created successfully.")
Exemple #11
0
def update_employee_from_from_csv(doc):
    employee = Employee.objects.filter(
        profile__hr_id=doc['hr_id']).order_by('id').first()
    if employee:
        employee.name = doc['name']
        employee.profile['email'] = doc['email']
        employee.profile['phone'] = doc.get('phone', '').replace('-', '')
        employee.profile['title'] = doc['title']
        employee.save()
        return False, True, False

    employee = Employee.objects.filter(
        profile__email=doc['email']).order_by('id').first()
    if employee:
        employee.name = doc['name']
        employee.profile['hr_id'] = doc['hr_id']
        employee.profile['phone'] = doc.get('phone', '').replace('-', '')
        employee.profile['title'] = doc['title']
        employee.save()
        return False, False, True

    employee = Employee(name=doc['name'],
                        profile={
                            'hr_id': doc['hr_id'],
                            'phone': doc['phone'],
                            'title': doc['title']
                        },
                        members=[])
    employee.save()
    return True, False, False
Exemple #12
0
    def post(self, request):
        try:
            data = json.loads(request.body)
            if Employee.objects.filter(account=data['account']).exists():
                return JsonResponse({"message": "ACCOUNT_EXISTS"}, status=400)
            # password encryption
            password = data['password'].encode('utf-8')
            password_crypt = bcrypt.hashpw(password,
                                           bcrypt.gensalt()).decode('utf-8')
            rrn_encrypted = encrypt_utils.encrypt(
                data['rrn'], my_settings.SECRET.get('random')).decode('utf-8')
            additional_infos = ['post_num', 'address', 'detailed_address']

            for index in range(0, len(additional_infos)):
                if additional_infos[index] in data:
                    additional_infos[index] = data[additional_infos[index]]
                else:
                    additional_infos[index] = None
            # insert record
            new_employee = Employee(
                auth=Auth.objects.get(id=5),
                account=data['account'],
                password=password_crypt,
                name_kor=data['name_kor'],
                name_eng=data['name_eng'],
                rrn=rrn_encrypted,
                mobile=data['mobile'],
                post_num=additional_infos[0],
                address=additional_infos[1],
                detailed_address=additional_infos[2],
                profile_image=
                'https://freepikpsd.com/wp-content/uploads/2019/10/default-profile-image-png-1-Transparent-Images.png'
            )
            new_employee.save()
            EmployeeDetail(employee=Employee.objects.get(
                id=new_employee.id)).save()

            return JsonResponse({"message": "SIGNUP_SUCCESS"}, status=201)

        except KeyError as e:
            return JsonResponse({'message': f'KEY_ERROR:{e}'}, status=400)
        except ValueError as e:
            return JsonResponse({"message": f"VALUE_ERROR:{e}"}, status=400)
Exemple #13
0
def schedule_week(sunday):
    saturday = sunday + timedelta(days=6)
    ssws = models.SSW.objects.filter(date__gte=sunday).filter(
        date__lte=saturday)
    schedule_sm_week(sunday, ssws)
    schedule_sunday(sunday)
    schedule_asm_week(sunday, ssws)
    reps = Employee.reps()
    for rep in reps:
        schedule_rep_week(rep, sunday, ssws)
Exemple #14
0
def update_employee(doc):
    employee = Employee.objects.filter(
        profile__agilecrm=doc['id']).order_by('id').first()
    if not employee:
        employee = Employee(profile={'agilecrm': doc['id']}, members=[])
    employee.name = doc['name']
    employee.profile['email'] = doc.get('email')
    employee.profile['phone'] = doc.get('phone', '').replace('-', '')
    employee.save()
    return employee
Exemple #15
0
def profiledata(request):
    if request.method == 'POST':
        if Employee.objects.filter(eid_id=request.user.id).exists():
            print("already Exists")
            return redirect('/editprofile')
        else:
            phone = request.POST['phone']
            address = request.POST['address']
            dept = request.POST['dept']
            upload_file = request.FILES['pic']
            eid = request.user.id
            emp = Employee(eid_id=eid,
                           dept=dept,
                           phone=phone,
                           address=address,
                           pic=upload_file)
            emp.save()
        return redirect('/profile')
    else:
        return redirect('/edit_profile.html')
Exemple #16
0
def mysqldb(request):
    #添加操作
    employee = Employee(name='乔峰', sex='男', addr='契丹', age=30)
    employee.save()

    #删除操作
    #第一种方式
    employee1 = Employee.objects.get(id=1)
    employee1.delete()
    # 第二种方式
    Employee.objects.filter(id=2).delete()

    #第三种方式
    Employee.objects.all().delete()

    #更新操作
    #第一种方式
    employee2 = Employee.objects.get(id=2)
    employee2.name = "段誉"
    employee2.save()
    #第二种方式
    Employee.objects.filter(id=3).update(name='虚竹')

    #修改所有的列
    Employee.objects.all().update(name='乔峰')

    #获取操作
    #
    employees = Employee.objects.all()
    for employee in employees:
        print('{0},{1},{2},{3}'.format(employee.name, employee.sex,
                                       employee.age, employee.addr))

    #单个取出QuerySet
    emfilter = Employee.objects.filter(id=7)
    for em in emfilter:
        print(em.name)
    #单个取出object
    emget = Employee.objects.get(id=9)
    print(emget.name)
    return render(request, 'index.html')
Exemple #17
0
def add_employee(request):
    '''
    creating new employee
    '''
    account = get_object_or_404(Account, user=request.user)
    company = get_object_or_404(Company, account=account)
    account_plan = get_object_or_404(Account_Plan,
                                     account=account,
                                     is_active=True)
    if request.method == 'GET':
        logger.info("new employee to be added")
        return render(request, 'account/new_employee.html')
    if request.method == 'POST':
        # verifying account plan before create a new object
        number_employee = Employee.objects.all().filter(
            company=company, is_active=True).count()
        if number_employee < account_plan.plan.employee:
            logger.info('adding new employee')
            username = request.POST['username']
            password = request.POST['password']
            # user info
            firstName = request.POST['first_name']
            lastName = request.POST['last_name']
            # picture = request.POST['picture']
            email = request.POST['email']
            phone = request.POST['phone']

            # saving user info
            user = User.objects.create_user(username, email, password)
            user.last_name = lastName
            user.first_name = firstName
            user.save()
            employee = Employee(user=user, phone=phone, company=company)
            employee.save()
            return redirect(add_employee)
        else:
            context = {
                'message':
                "You have reached the maximum number of employees. Contact support if you want to change your account plan"
            }
            return render(request, 'account/new_employee.html', context)
Exemple #18
0
def index(request):
    employees_list = Employee.get_employees()

    page = request.GET.get('page', 1)

    paginator = Paginator(employees_list, 10)
    try:
        employees = paginator.page(page)
    except PageNotAnInteger:
        employees = paginator.page(1)
    except EmptyPage:
        employees = paginator.page(paginator.num_pages)

    return render(request, 'index.html', {"employees": employees})
Exemple #19
0
def Register_Employee_View(request):
    if request.method =="POST":
            employee_first_name = request.POST['employee_first_name']
            employee_last_name = request.POST['employee_last_name']
            employee_email = request.POST['employee_email']
            employee_joining_date = request.POST['employee_joining_date']
            employee_department = request.POST['employee_department']
            employee_password = request.POST['employee_password']
            employee_confirm_password = request.POST['employee_confirm_password']
            employee_id = request.POST['employee_id']
            employee_phone = request.POST['employee_phone']
            
            # employee_role = Group.objects.get(name=request.POST['employee_role'])
            try:
                if(employee_password==employee_confirm_password):
                    user = User.objects.create_user(email=employee_email,password=employee_password)
                    user.is_staff=False
                    user.full_name = employee_first_name+' '+employee_last_name
                    user.is_active=True
                    user.is_employee=True
                    user.save()
                    register_employee = Employee(user=user,employee_first_name=employee_first_name,employee_last_name=employee_last_name,employee_email=employee_email,employee_joining_date=employee_joining_date,employee_department=employee_department,employee_id=employee_id,employee_phone=employee_phone)
                    register_employee.save()
                    # messages.success(request,"Employee Registered Successfully!")
                    sweetify.success(request, 'Employee Registered Successfully!', button='Ok', timer=3000)

                else:
                    messages.error(request," Confirm password and password does not match!")
            except IntegrityError as e:
                messages.error(request,"Email Already Registered!")
            
            
            return redirect('/administration/all_employee')
    else:
        groups=Group.objects.all()
        return render(request,'administration/employees.html',{'groups':groups})
    def update(self, instance: Employee, validated_data):

        user_account: User = User.objects.get(pk=instance.user_id)
        user_account.first_name = validated_data['first_name']
        user_account.last_name = validated_data['last_name']
        user_account.save()

        instance.phone_number = validated_data['phone_number']
        instance.job_position_id = validated_data['job_position_id']
        instance.is_resource = validated_data['is_resource']
        instance.status = validated_data['status']
        instance.save()

        return instance
Exemple #21
0
def sunday_list(sunday):
    order = list()
    employee_list = Employee.employee_list()
    employee_count = len(employee_list)
    delta = timedelta(days=7)
    day = sunday - delta
    sm = Position.store_manager()
    while len(order) < employee_count:
        qs = models.Shift.objects.filter(date=day)
        if qs.count() == 0:
            break
        for s in qs:
            if s.employee.position != sm:
                order.insert(0, s.employee)
        day = day - delta
    if len(order) < employee_count:
        if len(order) == 0:
            order = employee_list
        else:
            for emp in employee_list:
                if emp not in order:
                    order.insert(0, emp)
    return order
Exemple #22
0
def register():
    form = RegisterForm()
    if form.validate_on_submit():
        salt = bcrypt.gensalt()
        hashed_password = bcrypt.hashpw(form.password.data, salt)
        fullname = form.fullname.data
        ssn = form.ssn.data
        email = form.email.data
        DOB = form.DOB.data
        job_title = form.job_title.data
        username = form.username.data
        password = hashed_password
        if job_title == 'Maneger' or job_title == 'maneger':
            is_admin = True
        else:
            is_admin = False
        live = True
        employee = Employee(fullname,ssn,email,DOB,job_title,username,password,is_admin,live)
        db.session.add(employee)
        db.session.commit()
        flash ("Employee is added")
        return redirect('/addEmployees')
        
    return render_template('addEmployees.html', form=form)
Exemple #23
0
def save_employee(request):
    files = request.FILES.getlist('photo', [])
    if len(files) > 0:
        file = files[0]
        path = os.path.join(MEDIA_ROOT, 'images', file.name)
        with open(path, 'wb+') as f:
            f.write(file.file.read())

    params = request.POST

    if params.get('id', None) is None:
        employee = Employee()
    else:
        employee = Employee.objects.get(id=params.get('id'))

    if len(files) > 0:
        employee.photo = f"/media/images/{file.name}"
    elif params['photo'] != 'null':
        employee.photo = f"{params['photo']}"
    else:
        employee.photo = f'/media/images/default.png'
    employee.name = params['name']
    employee.lastname = params['lastname']
    employee.position = params['position']
    employee.birthday = params['birthday'] if params[
        'birthday'] != '' and params['birthday'] != 'null' else None
    employee.remote = True if params['remote'] == 'true' else False
    employee.city = params['city']
    employee.street = params['street']
    employee.house = params['house']
    employee.flat = params['flat']

    employee.save()
    return JsonResponse({}, status=201)
Exemple #24
0
 def delete(self, request, pk, format=None):
     Employee = self.get_object(pk)
     Employee.delete()
     return Response(status=status.HTTP_204_NO_CONTENT)
Exemple #25
0
def schedule_asm_week(sunday, ssws):
    asm = Employee.asm()
    year, week, weekday = sunday.isocalendar()
    delta_day = timedelta(days=1)
    monday = sunday + delta_day
    tuesday = monday + delta_day
    wednesday = tuesday + delta_day
    thursday = wednesday + delta_day
    friday = thursday + delta_day
    saturday = friday + delta_day
    works_sunday = models.Shift.objects.filter(date=sunday,
                                               employee=asm).exists()

    leaves = Leave.objects.filter(Q(employee=asm), Q(date__gte=sunday),
                                  Q(date__lte=saturday))
    l_sun = leaves.filter(date=monday).exists()
    l_mon = leaves.filter(date=monday).exists()
    l_tues = leaves.filter(date=tuesday).exists()
    l_wed = leaves.filter(date=wednesday).exists()
    l_thur = leaves.filter(date=thursday).exists()
    l_fri = leaves.filter(date=friday).exists()
    l_sat = leaves.filter(date=saturday).exists()

    # monday
    if not l_mon:
        mon_shift = models.Shift.mid(monday, asm)
    # tuesday
    if not l_tues:
        tues_shift = models.Shift.open(tuesday, asm)
    # wednesday
    if not l_wed:
        wed_shift = models.Shift.open(wednesday, asm)
    # thursday
    if not l_thur:
        thur_shift = models.Shift.close(thursday, asm)
    # friday
    if not l_fri:
        fri_shift = models.Shift.close(friday, asm)

    if ssws.exists():
        if ssws.filter(date=friday).exists():
            tuesday_count = models.Shift.objects.filter(date=tuesday).count()
            if tuesday_count == 2 and not l_tues:
                tues_shift.delete()
                tues_shift = None
            else:
                if wed_shift:
                    wed_shift.delete()
                    wed_shift = None
            if not l_fri:
                if fri_shift:
                    fri_shift.delete()
                    fri_shift = None
                fri_shift = models.Shift.open(friday, asm)
            if not l_sat:
                sat_shift = models.Shift.close(saturday, asm)
            if works_sunday:
                if tues_shift:
                    tues_shift.delete()
                    tues_shift = None
                elif wed_shift:
                    wed_shift.delete()
                    wed_shift = None
                elif mon_shift:
                    mon_shift.delete
                    mon_shift = None
    else:
        sat_count = models.Shift.objects.filter(date=saturday).count()
        if sat_count == 0 and not l_sat:
            if randint(0, 100) % 2 == 0 and tues_shift:
                tues_shift.delete()
                tues_shift = None
            else:
                if wed_shift:
                    wed_shift.delete()
                    wed_shift = None
            sat_shift = models.Shift.open(saturday, asm)
        if works_sunday:
            if fri_shift:
                fri_shift.delete()
                fri_shift = None
            elif thur_shift:
                thur_shift.delete()
                thur_shift = None
            elif mon_shift:
                mon_shift.delete
                mon_shift = None
Exemple #26
0
    def _create_employees(self):
        grade_09 = Grade.objects.get(grade_no=9)
        grade_05 = Grade.objects.get(grade_no=5)
        grade_03 = Grade.objects.get(grade_no=3)
        lecturer = Designation.objects.get(name='Lecturer')
        associate_professor = Designation.objects.get(name='Associate Professor')
        professor = Designation.objects.get(name='Professor')
        dept_cse = Department.objects.get(acronym='CSE')

        group_admin = Group.objects.get(name='admin')
        group_accountant = Group.objects.get(name='accountant')

        today = date.today()

        employee_1 = Employee(first_name='Dr. Fazlul Hasan', last_name='Siddiqui', username='******',is_staff=True, is_superuser=True,
                 email='*****@*****.**', category='t', grade=grade_05, designation=associate_professor,
                 department=dept_cse, gender='m', dob=today)
        employee_1.set_password('1234')
        employee_1.save()
        employee_1.groups.add(group_admin)
        employee_1.groups.add(group_accountant)

        employee_2 = Employee(first_name='Sabah Binte', last_name='Noor', username='******', password='******',
        email='*****@*****.**', is_staff=True, is_superuser=True, category='t', grade=grade_09, designation=lecturer,
                         department=dept_cse, gender='f', dob=today.replace(year=1991, month=6, day=30))

        employee_2.set_password('1234')
        employee_2.save()
        employee_2.groups.add(group_admin)
        employee_2.groups.add(group_accountant)

        employee_3 = Employee(first_name='Dr. Mohammad Abul', last_name='Kashem', username='******', password='******',
                 email='*****@*****.**', category='t', grade=grade_03,
                 designation=professor, department=dept_cse, gender='m', dob=today)
        employee_3.set_password('1234')
        employee_3.save()

        employee_3 = Employee(first_name='Dr. Mohammad Nasim', last_name='Akhter', username='******', password='******',
                 email='*****@*****.**', category='t', grade=grade_03, designation=professor,
                 department=dept_cse, gender='m', dob=today)
        employee_3.set_password('1234')
        employee_3.save()

        employee_3 = Employee(first_name='Dr. Mohammad Abdur', last_name='Rouf', username='******', password='******',
                 email='*****@*****.**', category='t', grade=grade_03, designation=professor,
                 department=dept_cse, gender='m', dob=today)
        employee_3.set_password('1234')
        employee_3.save()
        employee_3 = Employee(first_name='Dr. Md. Obaidur', last_name='Rahman', username='******', password='******',
                 email='*****@*****.**', category='t', grade=grade_05, designation=associate_professor,
                 department=dept_cse, gender='m', dob=today)
        employee_3.set_password('1234')
        employee_3.save()
Exemple #27
0
def schedule_sm_week(sunday, ssws):
    seed(datetime.now().microsecond)
    sm = Employee.store_manager()

    year, week, weekday = sunday.isocalendar()
    delta_day = timedelta(days=1)
    monday = sunday + delta_day
    tuesday = monday + delta_day
    wednesday = tuesday + delta_day
    thursday = wednesday + delta_day
    friday = thursday + delta_day
    saturday = friday + delta_day

    leaves = Leave.objects.filter(Q(employee=sm), Q(date__gte=sunday),
                                  Q(date__lte=saturday))
    l_sun = leaves.filter(date=monday).exists()
    l_mon = leaves.filter(date=monday).exists()
    l_tues = leaves.filter(date=tuesday).exists()
    l_wed = leaves.filter(date=wednesday).exists()
    l_thur = leaves.filter(date=thursday).exists()
    l_fri = leaves.filter(date=friday).exists()
    l_sat = leaves.filter(date=saturday).exists()

    # monday
    if not l_mon:
        mon_shift = models.Shift.open(monday, sm)
    # tuesday
    if not l_tues:
        tues_shift = models.Shift.close(tuesday, sm)
    # wednesday
    if not l_wed:
        wed_shift = models.Shift.close(wednesday, sm)
    # thursday
    if not l_thur:
        thur_shift = models.Shift.mid(thursday, sm)
    #friday
    if not l_fri:
        fri_shift = models.Shift.open(friday, sm)
    if ssws.filter(date=friday).exists():
        if week % 2 == 0 and not l_tues:
            if tues_shift:
                tues_shift.delete()
                tues_shift = None
            elif wed_shift:
                wed_shift.delete()
                wed_shift = None
        else:
            if wed_shift:
                wed_shift.delete()
                wed_shift = None
            elif tues_shift:
                tues_shift.delete()
                tues_shift = None
        if thur_shift:
            thur_shift.delete()
            thur_shift = None
        if fri_shift:
            fri_shift.delete()
            fri_shift = None
        if not l_thur:
            thur_shift = models.Shift.close(thursday, sm)
        if not l_fri:
            fri_shift = models.Shift.mid(friday, sm)
        if not l_sat:
            sat_shift = models.Shift.open(saturday, sm)
    else:
        # work every other saturday
        if not l_sat:
            if week % 2 == 0:
                if week % 4 == 0:
                    if thur_shift:
                        thur_shift.delete()
                        thur_shift = None
                    sat_shift = models.Shift.mid(saturday, sm)
                else:
                    fri_shift.delete()
                    fri_shift = None
                    sat_shift = models.Shift.open(saturday, sm)
    if ssws.filter(date=sunday).exists():
        if not l_sun:
            if week % 2 == 0:
                if tues_shift:
                    tues_shift.delete()
            else:
                if wed_shift:
                    wed_shift.delete()
            sun_shift = models.Shift.sunday(sunday, sm)
 def seed(self):
     waiter = Employee()
     waiter.employee_role = "WAITER"
     waiter.email = "*****@*****.**"
     waiter.set_password("gazerocker")
     waiter.first_name = "Kristina"
     waiter.last_name = "Grujic"
     waiter.is_staff = False
     waiter.is_superuser = False
     waiter.is_confirmed = True
     waiter.works_in = Restaurant.objects.get(id=1)
     waiter.save()
Exemple #29
0
def register(request):
    if request.method == 'POST':
        user_type = request.POST['user_type']
        first_name = request.POST['first_name']
        last_name = request.POST['last_name']
        username = request.POST['username']
        password = request.POST['password']
        password2 = request.POST['password2']
        email = request.POST['email']
        apartment_no = request.POST['apartment_no']
        street = request.POST['street']
        city = request.POST['city']
        zip_code = request.POST['zip_code']
        age = request.POST['age']
        if (password != password2):
            messages.error(request, 'Password did not match')
            return redirect('register')
        if user_type == 'JobSeeker':
            resume = request.POST['resume']
            jobseekers = Jobseeker.objects.all()
            for jobseeker1 in jobseekers:
                if jobseeker1.username == username:
                    messages.error(
                        request,
                        'This jobseeker exist in the in the system. Choose another username'
                    )
                    return redirect('register')
            jobseeker = Jobseeker()
            jobseeker.username = username
            jobseeker.password = password
            jobseeker.e_mail = email
            jobseeker.name = first_name + ' ' + last_name
            jobseeker.user_type = user_type
            jobseeker.password = password
            jobseeker.password2 = password2
            jobseeker.e_mail = email
            jobseeker.apartment_no = apartment_no
            jobseeker.city = city
            jobseeker.street = street
            jobseeker.zip_code = zip_code
            jobseeker.age = age
            jobseeker.resume = resume
            jobseeker.save()
        if user_type == 'HR':
            company_name = request.POST['company_name']
            hr = HR()
            hr.username = username
            hr.password = password
            hr.e_mail = email
            hr.name = first_name + ' ' + last_name
            hr.user_type = user_type
            hr.apartment_no = apartment_no
            hr.city = city
            hr.street = street
            hr.zip_code = zip_code
            hr.age = age
            hr.company_name = company_name
            hr.save()
        if user_type == 'Employee':
            position = request.POST['position']
            salary = request.POST['salary']
            resume = request.POST['resume']
            employee = Employee()
            employee.username = username
            employee.password = password
            employee.e_mail = email
            employee.name = first_name + ' ' + last_name
            employee.user_type = user_type
            employee.apartment_no = apartment_no
            employee.city = city
            employee.street = street
            employee.zip_code = zip_code
            employee.age = age
            employee.position = position
            employee.salary = salary
            employee.resume = resume
            employee.save()
        messages.success(request, 'Registration Successfull!!')
        return redirect('login')
    else:
        return render(request, 'accounts/register.html')
Exemple #30
0
def updateEmployeeView(request, pk):
    required_jobRoll = JobRoll.objects.get(id=pk)
    required_employee = get_object_or_404(Employee,
                                          pk=required_jobRoll.emp_id.id)
    emp_form = EmployeeForm(instance=required_employee)
    files_formset = Employee_Files_inline(instance=required_employee)
    depandance_formset = Employee_depandance_inline(instance=required_employee)
    # filter the user fk list to show the company users only.
    emp_form.fields['user'].queryset = User.objects.filter(
        company=request.user.company)
    jobroll_form = JobRollForm(user_v=request.user, instance=required_jobRoll)

    payment_form = Employee_Payment_formset(instance=required_employee)
    get_employee_salary_structure = ""
    employee_element_qs = Employee_Element.objects.filter(
        emp_id=required_employee, end_date__isnull=True)
    employee_has_structure = False
    files = Employee_File.objects.filter(emp_id=required_employee)

    try:
        employee_salary_structure = EmployeeStructureLink.objects.get(
            employee=required_employee, end_date__isnull=True)
        employee_has_structure = True
        get_employee_salary_structure = employee_salary_structure.salary_structure
    except EmployeeStructureLink.DoesNotExist:
        employee_has_structure = False

    employee_element_form = EmployeeElementForm()

    if request.method == 'POST':
        jobroll_form = JobRollForm(request.user,
                                   request.POST,
                                   instance=required_jobRoll)
        emp_form = EmployeeForm(request.POST,
                                request.FILES,
                                instance=required_employee)
        payment_form = Employee_Payment_formset(request.POST,
                                                instance=required_employee)
        files_formset = Employee_Files_inline(request.POST,
                                              request.FILES,
                                              instance=required_employee)
        depandance_formset = Employee_depandance_inline(
            request.POST, instance=required_employee)

        if EmployeeStructureLink.DoesNotExist:
            emp_link_structure_form = EmployeeStructureLinkForm(request.POST)
        else:
            emp_link_structure_form = EmployeeStructureLinkForm(
                request.POST, instance=employee_salary_structure)

        employee_element_form = EmployeeElementForm(request.POST)
        old_obj = Employee(
            emp_number=required_employee.emp_number,
            emp_name=required_employee.emp_name,
            address1=required_employee.address1,
            address2=required_employee.address2,
            phone=required_employee.phone,
            mobile=required_employee.mobile,
            date_of_birth=required_employee.date_of_birth,
            hiredate=required_employee.hiredate,
            email=required_employee.email,
            picture=required_employee.picture,
            is_active=required_employee.is_active,
            identification_type=required_employee.identification_type,
            id_number=required_employee.id_number,
            place_of_birth=required_employee.place_of_birth,
            nationality=required_employee.nationality,
            field_of_study=required_employee.field_of_study,
            education_degree=required_employee.education_degree,
            gender=required_employee.gender,
            social_status=required_employee.social_status,
            military_status=required_employee.military_status,
            religion=required_employee.religion,
            insured=required_employee.insured,
            insurance_number=required_employee.insurance_number,
            insurance_date=required_employee.insurance_date,
            insurance_salary=required_employee.insurance_salary,
            has_medical=required_employee.has_medical,
            medical_number=required_employee.medical_number,
            medical_date=required_employee.medical_date,
            emp_start_date=required_employee.emp_start_date,
            emp_end_date=date.today(),
            created_by=required_employee.created_by,
            creation_date=required_employee.creation_date,
            last_update_by=required_employee.last_update_by,
            last_update_date=required_employee.last_update_date,
            enterprise_id=required_employee.enterprise_id,
            user_id=required_employee.user_id,
            emp_type=required_employee.emp_type,
            terminationdate=required_employee.terminationdate,
        )
        old_obj.save()
        if emp_form.is_valid() and jobroll_form.is_valid(
        ) and payment_form.is_valid() and files_formset.is_valid(
        ) and depandance_formset.is_valid():
            emp_obj = emp_form.save(commit=False)
            print(emp_form)
            emp_obj.created_by = request.user
            emp_obj.last_update_by = request.user
            emp_obj.save()
            #
            job_obj = jobroll_form.save(commit=False)
            job_obj.emp_id_id = emp_obj.id
            job_obj.created_by = request.user
            job_obj.last_update_by = request.user
            job_obj.save()
            #
            payment_form = Employee_Payment_formset(request.POST,
                                                    instance=emp_obj)
            emp_payment_obj = payment_form.save(commit=False)
            for x in emp_payment_obj:
                x.created_by = request.user
                x.last_update_by = request.user
                x.save()
            #
            files_obj = files_formset.save(commit=False)
            for file_obj in files_obj:
                file_obj.created_by = request.user
                file_obj.last_update_by = request.user
                file_obj.emp_id = emp_obj
                file_obj.save()
            #
            depandances_obj = depandance_formset.save(commit=False)
            for depandance_obj in depandances_obj:
                depandance_obj.created_by = request.user
                depandance_obj.last_update_by = request.user
                depandance_obj.emp_id = emp_obj
                depandance_obj.save()
            #
            """
            emp_element_obj = employee_element_form.save(commit=False)
            emp_element_obj.emp_id = required_employee
            emp_element_obj.created_by = request.user
            emp_element_obj.last_update_by = request.user
            emp_element_obj.save()
            """
            user_lang = to_locale(get_language())

            if user_lang == 'ar':
                success_msg = ' {},تم تسجيل الموظف'.format(required_employee)
            else:
                success_msg = 'Employee {}, has been created successfully'.format(
                    required_employee)
            return redirect('employee:list-employee')

        elif not emp_form.is_valid():
            messages.error(request, emp_form.errors)
        elif not jobroll_form.is_valid():
            messages.error(request, jobroll_form.errors)
        elif not payment_form.is_valid():
            messages.error(request, payment_form.errors)
        elif not files_formset.is_valid():
            messages.error(request, files_formset.errors)
        elif not depandance_formset.is_valid():
            messages.error(request, depandance_formset.errors)

    myContext = {
        "page_title": _("update employee"),
        "emp_form": emp_form,
        "jobroll_form": jobroll_form,
        "payment_form": payment_form,
        "required_employee": required_employee,
        "employee_element_qs": employee_element_qs,
        "employee_has_structure": employee_has_structure,
        "employee_element_form": employee_element_form,
        "get_employee_salary_structure": get_employee_salary_structure,
        "emp": pk,
        "required_jobRoll": required_jobRoll,
        "flage": 1,
        "files_formset": files_formset,
        "depandance_formset": depandance_formset,
    }
    return render(request, 'create-employee.html', myContext)
Exemple #31
0
 def get_order(self, obj: Employee):
     return obj.get_order()
    def post(self, request):
        form = AddEmployeeForm(request.POST)
        data = dict(form=form)
        if form.is_valid():
            data = form.cleaned_data

            employee = Employee()
            employee.email = data['email']
            employee.first_name = data['first_name']
            employee.last_name = data['last_name']
            employee.shoe_size = data['shoe_size']
            employee.clothes_size = data['clothes_size']
            employee.role = data['role']

            chars = "ABCDEFGHJKLMNPQRSTUVWXYZ23456789"

            password = "".join([chars[ord(c) % len(chars)] for c in urandom(8)])
            employee.set_password(password)
            employee.is_confirmed = True

            restaurant = Restaurant.objects.filter(manager=request.user)[0]

            employee.works_in = restaurant

            employee.save()

            employee.send_email("Login details - Restaurant booking online",
                                "Your login details :\n E-mail : " + employee.email +
                                "\n Password : "******"\n You can login now " +
                                get_current_site(request).domain + "\n Restaurant booking online")

            employee.save()

        return render(request, self.template_name, dict(form=form))