예제 #1
0
def update_emp_relativetype(id):
    if not request.json:
        abort(400)
    #check to see if there is any empty values
    if not all(
            len(str(val).strip()) >= 1
            for val in request.json.values() if isinstance(val, str)):
        abort(411)
    #check to see if the request has the right type of keys

    #clearn up the values for string
    #generator expression
    cleaned_json = dict(
        (key, val.strip()) if isinstance(val, str) else (key, val)
        for key, val in request.json.items())
    if 'name' in cleaned_json:
        cleaned_json['display_name'] = cleaned_json['name']
        cleaned_json['name'] = cleaned_json['name'].strip().lower()

    #try to executre

    try:
        db_session.query(EmployeeRelativeType).filter(
            EmployeeRelativeType.id == id).update(cleaned_json)
        db_session.commit()
    except IntegrityError as e:
        return record_exists_envelop()
    except Exception as e:
        return fatal_error_envelop()
    else:
        return record_updated_envelop(request.json)
예제 #2
0
파일: users.py 프로젝트: RobusGauli/hris_28
def add_password_policy():
    if not request.json:
        return abort(400)

    db_fields = set(col.name for col in PasswordPolicy.__mapper__.columns)

    extra_keys = set(request.json.keys()) - (db_fields - {'id'})
    if extra_keys:
        return jsonify({
            'Message':
            'Extra Keys : %r' % ', '.join(col for col in extra_keys)
        })

    try:
        _bool_mapper = lambda s: 0 if s == 'false' else 1
        _json = {
            key: _bool_mapper(val) if val in ('true', 'false') else val
            for key, val in request.json.items()
        }
        db_session.query(PasswordPolicy).filter(
            PasswordPolicy.id == 1).update(_json)
        db_session.commit()
    except NoResultFound as e:
        abort(404)
    except Exception as e:
        abort(500)
    else:
        return record_updated_envelop(request.json)
예제 #3
0
def update_agencytype(id):
    if not request.json:
        abort(400)
    #check to see if ther eis empty field
    if not all(len(val.strip()) >= 1 for val in request.json.values()\
                                            if isinstance(val, str)):
        return length_require_envelop()

    if 'name' in request.json:
        request.json['display_name'] = request.json['name'].strip()
        request.json['name'] = request.json['name'].lower().strip()

    if 'code' in request.json:
        request.json['code'] = request.json['code'].strip()

    try:
        db_session.query(AgencyType).filter(AgencyType.id == id).update(
            request.json)
        db_session.commit()
    except IntegrityError:
        return record_exists_envelop()
    except Exception:
        return fatal_error_envelop()
    else:
        return record_updated_envelop(request.json)
예제 #4
0
def update_rank(id):
    if not request.json:
        abort(400)
    
    if 'name' in request.json:
        request.json['display_name'] = request.json['name']
        request.json['name'] = request.json['name'].lower().strip()
    
    #now try to update the facilty name
    

    try:
        db_session.query(EmployeeCategoryRank).filter(EmployeeCategoryRank.id==id).update(request.json)
        
        db_session.commit()
    except NoResultFound as e:
        abort(404)
    except IntegrityError as e:
        return record_exists_envelop()
    except Exception as e:
        raise
        abort(500)

    else:
        return record_updated_envelop(request.json)
예제 #5
0
def delete_facility_type(f_id):
    if not request.json:
        abort(401)

    try:
        db_session.query(FacilityType).filter(FacilityType.id == f_id).update(
            {'del_flag': True})
        db_session.commit()
    except NoResultFound as e:
        return record_notfound_envelop()
    else:
        return record_deleted_envelop()
예제 #6
0
def update_employee_education(e_id, id):
    if not request.json:
        abort(400)
    try:
        db_session.query(EmployeeEducation).filter(
            EmployeeEducation.id == id).update(request.json)
        db_session.commit()
    except IntegrityError:
        return record_exists_envelop()
    except Exception:
        return fatal_error_envelop()
    else:
        return record_updated_envelop(request.json)
예제 #7
0
def update_institute(id):
    if not request.json:
        abort(400)
    try:
        db_session.query(Institute).filter(Institute.id == id).update(
            request.json)
        db_session.commit()
    except IntegrityError:
        return record_exists_envelop()
    except Exception:
        return fatal_error_envelop()
    else:
        return record_updated_envelop(request.json)
예제 #8
0
def update_qualification_by_emp(emp_id, q_id):
    #this is me
    if not request.json:
        abort(400)
    try:
        db_session.query(Qualification).filter(
            Qualification.id == q_id).update(request.json)
        db_session.commit()
    except IntegrityError:
        return record_exists_envelop()
    except Exception:
        return fatal_error_envelop()
    else:
        return record_updated_envelop(request.json)
예제 #9
0
def update_lang_by_emp(id, l_id):
    if not request.json:
        abort(400)

    try:
        db_session.query(EmployeeLanguage).filter(
            EmployeeLanguage.id == l_id).update(request.json)
        db_session.commit()
    except IntegrityError:
        return record_exists_envelop()
    except Exception:
        return fatal_error_envelop()
    else:
        return record_updated_envelop(request.json)
예제 #10
0
def update_qualificationnames(id):
    if not request.json:
        abort(400)

    try:
        db_session.query(QualificationName).filter(
            QualificationName.id == id).update(request.json)
        db_session.commit()
    except IntegrityError:
        return record_exists_envelop()
    except Exception:
        return fatal_error_envelop()
    else:
        return record_updated_envelop(request.json)
예제 #11
0
def update_user(u_id):
    if not request.json:
        abort(400)
    if not request.args.get('action') == 'update_role':

        if 'password' not in request.json.keys():
            return missing_keys_envelop()
        try:
            user = db_session.query(User).filter(User.id == u_id).one()
            if user is None:
                return record_notfound_envelop()
            hashed_pass = hash_password(request.json['password'].encode())
            old_hashed_pass = user.password
            if old_hashed_pass == hashed_pass:
                return jsonify({
                    'message': 'Please dont\'t use old password',
                    'status': 'fail'
                })
            else:
                user.password = hashed_pass
                db_session.add(user)
                db_session.commit()

        except NoResultFound as e:
            return record_notfound_envelop()
        except Exception as e:
            return fatal_error_envelop()
        else:
            return record_updated_envelop('Password updated Successfully.')

    #update the role

    if 'role_id' not in request.json:
        return missing_keys_envelop()
    try:
        user = db_session.query(User).filter(User.id == u_id).one()
        if user is None:
            return record_notfound_envelop()
        user.role_id = int(request.json['role_id'])
        db_session.add(user)
        db_session.commit()
    except NoResultFound as e:
        return record_notfound_envelop()
    except Exception as e:
        raise
        return fatal_error_envelop()

    else:
        return record_updated_envelop('Role updated successfully.')
예제 #12
0
def get_facilitytypes():
    try:
        fts = db_session.query(FacilityType).all()
    except NoResultFound:
        return record_notfound_envelop()
    else:
        return records_json_envelop(list(ft.to_dict() for ft in fts))
예제 #13
0
def get_facilitytype(id):
    try:
        ft = db_session.query(FacilityType).filter(FacilityType.id == id).one()
    except NoResultFound:
        return record_notfound_envelop()
    else:
        return record_json_envelop(ft.to_dict())
예제 #14
0
def get_agencytypes():
    try:
        ats = db_session.query(AgencyType).all()
    except NoResultFound:
        return record_notfound_envelop()
    else:
        return records_json_envelop(list(a.to_dict() for a in ats))
예제 #15
0
파일: auth.py 프로젝트: RobusGauli/hris_28
        def wrapper(*args, **kwargs):

            if 'Token' not in request.headers:

                return unauthorized_envelop()
            try:
                decoded = decode_access_token(request.headers['Token'])
                print(decoded)
                if decoded is None:
                    return unauthorized_envelop()
            except Exception as e:
                raise e
                return unauthorized_envelop()
            else:
                user_name = decoded['user_name']
                try:
                    user = db_session.query(User).filter(
                        User.user_name == user_name).one()
                    role = user.role
                    role = role.to_dict()[key]
                except NoResultFound as e:
                    return record_notfound_envelop()
                except Exception as e:
                    return fatal_error_envelop()

                if role != 'N':
                    return func(*args, **kwargs)
                else:
                    print('as')
                    return unauthorized_envelop()
예제 #16
0
파일: auth.py 프로젝트: RobusGauli/hris_27
        def wrapper(*args, **kwargs):

            if 'Token' not in request.headers:

                return unauthorized_envelop()
            try:
                decoded = decode_access_token(request.headers['Token'])
                print(decoded)
                if decoded is None:
                    return unauthorized_envelop()
            except Exception as e:
                raise e
                return unauthorized_envelop()
            else:
                role_id = decoded['role_id']
                user_name = decoded['user_name']
                if role_id not in current_app.config:
                    roles = db_session.query(Role).all()
                    roles = [role.to_dict() for role in roles]
                    for role in roles:
                        current_app.config[role['id']] = role

                role = current_app.config[role_id][key]
                print('role is ', role)
                if role != 'N':
                    return func(*args, **kwargs)
                else:
                    print('as')
                    return unauthorized_envelop()
예제 #17
0
def get_employee(id):
    try:
        emp = db_session.query(Employee).filter(Employee.id == id).one()
    except NoResultFound as e:
        return record_notfound_envelop()
    except Exception as e:
        return fatal_error_envelop()
    else:
        return jsonify({
            'first_name':
            emp.first_name if emp.first_name else '',
            'middle_name':
            emp.middle_name if emp.middle_name else '',
            'last_name':
            emp.last_name if emp.last_name else '',
            'sex':
            emp.sex if emp.sex else '',
            'date_of_birth':
            str(emp.date_of_birth) if emp.date_of_birth else '',
            'address_one':
            emp.address_one if emp.address_one else '',
            'address_two':
            emp.address_two if emp.address_two else '',
            'village':
            emp.village if emp.village else '',
            'llg':
            emp.llg if emp.llg else '',
            'district':
            emp.district if emp.district else '',
            'province':
            emp.province if emp.province else '',
            'region':
            emp.region if emp.region else '',
            'country':
            emp.country if emp.country else '',
            'email_address':
            emp.email_address if emp.email_address else '',
            'contact_number':
            emp.contact_number if emp.contact_number else '',
            'alt_contact_number':
            emp.alt_contact_number if emp.alt_contact_number else '',
            'age':
            emp.age if emp.age else '',
            'retirement_age':
            emp.retirement_age if emp.retirement_age else '',
            'employement_number':
            emp.employement_number if emp.employement_number else '',
            'salary_step':
            emp.salary_step if emp.salary_step else '',
            'date_of_commencement':
            str(emp.date_of_commencement) if emp.date_of_commencement else '',
            'contract_end_date':
            emp.contract_end_date if emp.contract_end_date else '',
            'id':
            emp.id if emp.id else '',
            'user_id':
            emp.user_id if emp.user_id else '',
            'employee_branch_id':
            emp.employee_branch_id if emp.employee_branch_id else ''
        })
예제 #18
0
def get_qualifications_by_emp(id):
    try:
        qls = db_session.query(Qualification).filter(
            Qualification.employee_id == id).all()
    except NoResultFound as e:
        return record_notfound_envelop()
    except Exception as e:
        return fatal_error_envelop()
    else:
        quals = ({
            'id':
            q.id,
            'name':
            q.qualification_name.name if q.qualification_name else '',
            'institute_name':
            q.institute_name if q.institute_name else '',
            'city':
            q.city if q.city else '',
            'state':
            q.state if q.state else '',
            'province':
            q.province if q.province else '',
            'country':
            q.country if q.country else '',
            'start_date':
            str(q.start_date) if q.start_date else '',
            'end_date':
            str(q.end_date) if q.end_date else '',
            'qualification_name_id':
            q.qualification_name_id,
            'qualification_name':
            q.qualification_name.name if q.qualification_name else ''
        } for q in qls)
        return records_json_envelop(list(quals))
예제 #19
0
def get_divpositions_by_facdiv(f_id):

    try:
        if 'position_title' not in request.args:
            dvs = db_session.query(DivisionPosition).filter(
                DivisionPosition.fac_div_id == f_id).all()
        else:
            dvs = db_session.query(DivisionPosition).filter(DivisionPosition.fac_div_id == f_id).\
                                                filter(DivisionPosition.position_title==request.args['position_title']).all()

    except NoResultFound:
        return record_notfound_envelop()
    except Exception:
        return fatal_error_envelop()
    else:
        return records_json_envelop(list(dv.to_dict() for dv in dvs))
예제 #20
0
def get_empextras_by_emp(id):
    try:
        trs = db_session.query(EmployeeExtra).filter(
            EmployeeExtra.employee_id == id).all()
    except NoResultFound as e:
        return record_notfound_envelop()
    except Exception as e:
        return fatal_error_envelop()
    else:
        trs = ({
            'id':
            q.id,
            'ref_name':
            q.ref_name if q.ref_name else '',
            'ref_address':
            q.ref_address if q.ref_address else '',
            'ref_contact_number':
            q.ref_contact_number if q.ref_contact_number else '',
            'emp_father_name':
            q.emp_father_name if q.emp_father_name else '',
            'emp_mother_name':
            q.emp_mother_name if q.emp_mother_name else '',
            'emp_single':
            q.emp_single if q.emp_single else '',
            'emp_wife_name':
            q.emp_wife_name if q.emp_wife_name else '',
            'emp_num_of_children':
            q.emp_num_of_children if q.emp_num_of_children else ''
        } for q in trs)
        return records_json_envelop(list(trs))
예제 #21
0
def update_certification_by_emp(emp_id, c_id):
    if not request.json:
        abort(400)

    #try to executre

    try:
        db_session.query(Certification).filter(
            Certification.id == c_id).update(dict(cleaned_json))
        db_session.commit()
    except IntegrityError as e:
        return record_exists_envelop()
    except Exception as e:
        return fatal_error_envelop()
    else:
        return record_updated_envelop(request.json)
예제 #22
0
def update_rank(id):
    if not request.json:
        abort(400)

    if 'name' not in request.json.keys():
        abort(401)

    #now try to update the facilty name
    name = request.json['name'].lower().strip()
    display_name = request.json['name'].strip()

    try:
        rank = db_session.query(EmployeeCategoryRank).filter(
            EmployeeCategoryRank.id == id).one()
        rank.name = name
        rank.display_name = display_name
        db_session.add(rank)
        db_session.commit()
    except NoResultFound as e:
        abort(404)
    except IntegrityError as e:
        return record_exists_envelop()
    except Exception as e:

        abort(500)

    else:
        return record_updated_envelop(request.json)
예제 #23
0
def update_emp_category(id):
    if not request.json:
        abort(400)

    name = request.json.get('name', None)
    emp_cat_rank_id = request.json.get('emp_cat_rank_id', None)

    #now try to update the facilty name
    if name is not None:
        name = request.json['name'].lower().strip()
        display_name = request.json['name'].strip()

    try:
        cat = db_session.query(EmployeeCategory).filter(
            EmployeeCategory.id == id).one()
        if name is not None:
            cat.name = name
            cat.display_name = display_name
        if emp_cat_rank_id is not None:
            cat.emp_cat_rank_id = emp_cat_rank_id
        db_session.add(cat)
        db_session.commit()
    except NoResultFound as e:
        abort(404)
    except IntegrityError as e:
        return record_exists_envelop()
    except Exception as e:

        abort(500)
    else:
        return record_updated_envelop(request.json)
예제 #24
0
def update_emp_type(id):
    if not request.json:
        abort(400)

    name = request.json.get('name', None)

    #now try to update the facilty name
    if name is not None:
        name = request.json['name'].lower().strip()
        display_name = request.json['name'].strip()

    try:
        typ = db_session.query(EmployeeType).filter(
            EmployeeType.id == id).one()
        if name is not None:
            typ.name = name
            typ.display_name = display_name

        db_session.add(typ)
        db_session.commit()
    except NoResultFound as e:
        abort(404)
    except IntegrityError as e:
        return record_exists_envelop()
    except Exception as e:

        abort(500)
    else:
        return record_updated_envelop(request.json)
예제 #25
0
파일: auth.py 프로젝트: RobusGauli/hris_new
def handle_branch(branch, emp_branch_id, role_id, user_name, func, *args,
                  **kwargs):
    print('hdnle branch callsed')
    if ROLES_PERMISSION[role_id]['permission_two'] == True:
        return func(*args, **kwargs)
    else:
        print('asdasdasdasdasdasd')
        #go ahead and check the permission that if he can edit for his/her own branch or not
        if ROLES_PERMISSION[role_id]['permission_four'] == True:
            try:
                user = db_session.query(User).filter(
                    User.user_name == user_name).one()
                emp = user.employee
                if emp is None:
                    return unauthorized_envelop()
            except NoResultFound as e:
                return record_notfound_envelop()
            except Exception as e:
                return fatal_error_envelop()
            else:
                print('yeasdsadsad')
                employee_branch_id = emp.employee_branch_id
                print(employee_branch_id, emp_branch_id)
                if employee_branch_id == emp_branch_id:
                    print('yeahs')
                    return func(*args, **kwargs)
                else:
                    return unauthorized_envelop()
        else:
            return unauthorized_envelop()
예제 #26
0
파일: auth.py 프로젝트: RobusGauli/hris_new
 def wrapper(*args, **kwargs):
     if 'Token' not in request.headers:
         return unauthorized_envelop()
     try:
         decoded = decode_access_token(request.headers.get('token'))
         if decoded is None:
             return unauthorized_envelop()
     except Exception as e:
         return unauthorized_envelop()
     else:
         #role_id = decoded['role_id']
         user_name = decoded['user_name']
         try:
             user = db_session.query(User).filter(
                 User.user_name == user_name).one()
             role = user.role
             role = role.to_dict()[key]
         except NoResultFound as e:
             return record_notfound_envelop()
         except Exception as e:
             return fatal_error_envelop()
         else:
             if role == 'W' or role == 'E':
                 return func(*args, **kwargs)
             else:
                 return unauthorized_envelop()
예제 #27
0
def update_region(id):
    if not request.json:
        abort(400)

    if 'name' not in request.json.keys():
        abort(401)

    #now try to update the facilty name
    name = request.json['name'].replace(' ', '').lower().strip()
    display_name = request.json['name'].strip()

    try:
        facility = db_session.query(Region).filter(Region.id == id).one()
        facility.name = name
        facility.display_name = display_name
        db_session.add(facility)
        db_session.commit()
    except NoResultFound as e:
        abort(404)
    except IntegrityError as e:
        return record_exists_envelop()
    except Exception as e:

        abort(500)
    else:
        return record_updated_envelop(request.json)
예제 #28
0
def get_llg():

    try:
        llgs = db_session.query(LLG).order_by(LLG.name).all()
        gen_exp = (dict(name=f.display_name, id=f.id) for f in llgs)
        return records_json_envelop(list(gen_exp))
    except Exception as e:
        return fatal_error_envelop()
예제 #29
0
def get_regions():

    try:
        provinces = db_session.query(Region).order_by(Region.name).all()
        gen_exp = (dict(name=f.display_name, id=f.id) for f in provinces)
        return records_json_envelop(list(gen_exp))
    except Exception as e:
        return fatal_error_envelop()
예제 #30
0
def get_districts():

    try:
        districts = db_session.query(District).order_by(District.name).all()
        gen_exp = (dict(name=f.display_name, id=f.id) for f in districts)
        return records_json_envelop(list(gen_exp))
    except Exception as e:
        return fatal_error_envelop()