Esempio n. 1
0
def create_qualification_by_emp(id):
    if not request.json:
        abort(400)
    #check if there is empty field comming up
    if not all(
            len(str(val).strip()) >= 1 for key, val in request.json.items()):
        abort(411)
    #clean up the values
    qual = {
        key: val.strip() if isinstance(val, str) else val
        for key, val in request.json.items()
    }
    #insert
    print(qual)
    qual['employee_id'] = id
    #######################
    qual['start_date'] = '03-jan-2018'
    qual['end_date'] = '05-jan-2020'
    ###############
    try:
        print(id)
        db_session.add(Qualification(**qual))
        db_session.commit()
    except IntegrityError as e:
        return fatal_error_envelop()
    except Exception as e:
        return fatal_error_envelop()
    else:
        return record_created_envelop(request.json)
Esempio n. 2
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.')
Esempio n. 3
0
def create_training_by_emp(id):
    if not request.json:
        abort(400)
    #check if there is empty field comming up

    #check if there is no registration number and registration body

    trs = {
        key: val.strip() if isinstance(val, str) else val
        for key, val in request.json.items()
    }
    #insert
    ###################################
    #trs['start_date'] = '01-feb-2012'
    #trs['end_date'] = '03-feb-2005'
    ##########################
    print(id)
    trs['employee_id'] = id
    try:

        db_session.add(Training(**trs))
        db_session.commit()
    except IntegrityError as e:
        return record_exists_envelop()
    except Exception as e:
        return fatal_error_envelop()
    else:
        return record_created_envelop(request.json)
Esempio n. 4
0
def create_certification_by_emp(id):
    if not request.json:
        abort(400)
    #check if there is empty field comming up

    cert = {
        key: val.strip() if isinstance(val, str) else val
        for key, val in request.json.items()
    }
    #insert
    cert['employee_id'] = id
    ###################################
    #cert['expiry_date'] = '04-mar-2012'
    #cert['last_renewal_date'] = '03-mar-2017'
    ################################
    try:

        db_session.add(Certification(**cert))
        db_session.commit()
    except IntegrityError as e:
        return record_exists_envelop()
    except Exception as e:
        return fatal_error_envelop()
    else:
        return record_created_envelop(request.json)
Esempio n. 5
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))
Esempio n. 6
0
def create_employee_extra(id):
    #cheek to see if ther is json
    if not request.json:
        abort(400)
    #if there is json,  if there are required fields
    required_keys = set(col.name for col in EmployeeExtra.__mapper__.columns) - {'id', 'employee_id'}
    
    
    #keys from the rquest object
    result = request.json.keys() - required_keys
    
    #if there is extra remaining keys , abort
    if result:
        return extra_keys_envelop('keys not accepeted %r' % result)
    
    #check to see if there are any valuekjdhflkjadsfaklsdhfkajsds less than 1
    if not all(len(str(val).strip())>=1 for val in request.json.values()):
        return length_require_envelop()
    #clearn up the dictionary
    json_vals = {key : val.strip() if isinstance(val, str) else val for key, val in request.json.items()}
    
    #try to insert to database
    try:
        db_session.add(EmployeeExtra(**json_vals, employee_id=id))
        db_session.commit()
    except IntegrityError as e:
        
        return record_exists_envelop()
    except Exception as e:
        raise e
        return fatal_error_envelop()
    else:
        return record_created_envelop(request.json) 
Esempio n. 7
0
def update_employee(id):
    '''This i iwill user the raw sql query because this would be easier to reason about'''

    if not request.json:
        abort(400)
    
    if not all(len(str(val).strip()) >= 1 for key, val in request.json.items()):
        abort(411)

    if 'age' not in request.json or 'retirement_age' not in request.json:
        return jsonify({'message' : 'please send both the age and retirement_age'})
        abort(400)
    age = request.json['age']
    retirement_age = request.json['retirement_age']
    #first check about the age
    if int(age) > int(retirement_age) or int(age) < 18:
        return record_not_updated_env('Age cannot be more than retirement age or less than 18')
    
    #clean up the data
    data = {key : val.strip() if isinstance(val, str) else val for key, val in request.json.items()}

    #prepate the sql query
    inner = ', '.join('{} = {!r}'.format(key, val) for key, val in data.items())
    query = '''UPDATE employees SET {}, updated_at=Now() where id={}'''.format(inner, id)

    #try to executre
    with engine.connect() as con:
        try:
            con.execute(query)
        except IntegrityError as e:
            return record_exists_envelop()
        except Exception as e:
            return fatal_error_envelop()
        else:
            return record_updated_envelop(request.json)
Esempio n. 8
0
def create_emp_cat_ranks():
    if not request.json:
        abort(400)
    if not 'name' in request.json.keys():
        abort(401)
    
    if len(request.json['name'].strip()) < 2:
        abort(411)
    

    #if everything is fine
    name = request.json['name'].replace(' ', '').lower().strip()
    display_name = request.json['name'].strip()

    #put to db
    try:
        rank = EmployeeCategoryRank(name=name, display_name=display_name)
        db_session.add(rank)
        db_session.commit()
    except IntegrityError as e:
        return record_exists_envelop()
    except Exception as e:
        return fatal_error_envelop()
    else:
        return record_created_envelop(request.json)
Esempio n. 9
0
def create_emp_position():
    if not request.json:
        abort(401)
    required_fields = set(col.name for col in EmployeePosition.__mapper__.columns) - {'id', 'emp_pos_title_display_name', 'del_flag'}
    
    extra_fields = set(request.json) - required_fields
    if extra_fields:
        return extra_keys_envelop('Unknown Keys : %s' % ', '.join(key for key in extra_fields))
    
    _required = required_fields - set(request.json)

    if _required:
       return missing_keys_envelop('Required Keys : %s' % ', '.join(key for key in _required))
    
    #check to see if there is any blank 

    if not all(len(val.strip()) >= 1 for key, val in request.json.items() if isinstance(val, str)):
        return length_require_envelop()
    #inject 
    
    request.json['emp_pos_title_display_name'] = request.json['emp_pos_title']
    request.json['emp_pos_title'] = request.json['emp_pos_title'].lower().strip()
    #initiate the dession
    try:
        e_type = EmployeePosition(**request.json)
        db_session.add(e_type)
        db_session.commit()
    except IntegrityError as e:
        return record_exists_envelop()
    except Exception as e:
        return fatal_error_envelop()
    else:
        return record_created_envelop(request.json)
Esempio n. 10
0
        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()
Esempio n. 11
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 ''
        })
Esempio n. 12
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))
Esempio n. 13
0
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()
Esempio n. 14
0
def create_emp_cat(rank_id):
    if not request.json:
        abort(400)
    if not 'name' in request.json.keys():
        abort(401)

    if len(request.json['name'].strip()) < 2:
        abort(411)

    #strip down the values
    display_name = request.json['name'].strip()
    name = display_name.lower()
    emp_cat_rank_id = rank_id

    #try to put onto database
    try:
        cat = EmployeeCategory(name=name,
                               display_name=display_name,
                               emp_cat_rank_id=emp_cat_rank_id)
        db_session.add(cat)
        db_session.commit()
    except IntegrityError as e:
        return record_exists_envelop()
    except Exception as e:
        return fatal_error_envelop()
    else:
        return record_created_envelop(request.json)
Esempio n. 15
0
def update_division(d_id):

    json_request = dict(copy.deepcopy(request.json))

    facility_display_name = request.json.get('facility_name', None)
    if facility_display_name is not None:

        facility_name = facility_display_name.strip().replace(' ', '').lower()
        json_request['facility_name'] = facility_name
        json_request['facility_display_name'] = facility_display_name.strip()

    inner = ', '.join('{:s} = {!r}'.format(key, val)
                      for key, val in json_request.items())
    query = '''UPDATE branches SET {:s} where id = {:d}'''.format(inner, d_id)

    with engine.connect() as con:
        try:
            con.execute(query)
        except IntegrityError as e:
            return record_exists_envelop()
        except Exception as e:
            raise
            return fatal_error_envelop()
        else:
            return record_updated_envelop(json_request)
Esempio n. 16
0
 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()
Esempio n. 17
0
def create_certification_by_emp(id):
    if not request.json:
        abort(400)
    #check if there is empty field comming up
    if not all(
            len(str(val).strip()) >= 1 for key, val in request.json.items()):
        abort(411)

    #check if there is no registration number and registration body
    result = {'regulatory_body', 'registration_number'} - set(
        request.json.keys())
    if result:
        return keys_require_envelop(
            '"regulatory_body" and "regstration_number" is required')
    #clean up the values
    cert = {
        key: val.strip() if isinstance(val, str) else val
        for key, val in request.json.items()
    }
    #insert
    cert['employee_id'] = id
    ###################################
    cert['expiry_date'] = '04-mar-2012'
    cert['last_renewal_date'] = '03-mar-2017'
    ################################
    try:

        db_session.add(Certification(**cert))
        db_session.commit()
    except IntegrityError as e:
        return record_exists_envelop()
    except Exception as e:
        return fatal_error_envelop()
    else:
        return record_created_envelop(request.json)
Esempio n. 18
0
def create_division(t_id):
    if not request.json:
        abort(400)
    if not all(
            len(val.strip()) >= 1
            for val in request.json.values() if isinstance(val, unicode)):
        return length_require_envelop()

    _result = {'name', 'code'} - set(request.json.keys())
    if _result:
        return keys_require_envelop('Key: %r is require' % ', '.join(_result))

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

    #inject the id
    request.json['division_type_id'] = t_id
    try:
        db_session.add(Division(**request.json))
        db_session.commit()
    except IntegrityError:
        return record_exists_envelop()
    except Exception:
        return fatal_error_envelop()
    else:
        return record_created_envelop(request.json)
Esempio n. 19
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)
Esempio n. 20
0
def create_division_types():
    if not request.json:
        abort(400)
    #empty check
    if not all(
            len(val.strip()) >= 1
            for val in request.json.values() if isinstance(val, unicode)):
        return length_require_envelop()

    _result = {'name'} - set(request.json.keys())
    if _result:
        return keys_require_envelop('key : name is required')

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

    try:
        db_session.add(DivisionTypeSetup(**request.json))
        db_session.commit()
    except IntegrityError:
        return record_exists_envelop()
    except Exception:
        return fatal_error_envelop()
    else:
        return record_created_envelop(request.json)
Esempio n. 21
0
def update_empextra_by_emp(emp_id, ex_id):
    if not request.json:
        abort(400)
    #check to see if there is any empty values
    if not all(len(str(val).strip()) for val in request.json.values()):
        abort(411)
    #check to see if the request has the right type of keys
    result = set(request.json.keys()) - set(
        col.name for col in EmployeeExtra.__mapper__.columns)
    if result:

        return extra_keys_envelop('Keys: {!r} not accepted'.format(', '.join(
            r for r in result)))

    #clearn up the values for string
    #generator expression
    cleaned_json = ((key, val.strip()) if isinstance(val, str) else (key, val)
                    for key, val in request.json.items())
    #this means that it has extra set of keys that is not necessary
    #make the custom query
    inner = ', '.join('{:s} = {!r}'.format(key, val)
                      for key, val in cleaned_json)
    query = '''UPDATE employee_extra SET {:s} WHERE id = {:d}'''.format(
        inner, ex_id)

    #try to executre
    with engine.connect() as con:
        try:
            con.execute(query)
        except IntegrityError as e:
            return record_exists_envelop()
        except Exception as e:
            return fatal_error_envelop()
        else:
            return record_updated_envelop(request.json)
Esempio n. 22
0
def create_province():
    if not request.json:
        abort(400)
    if not set(request.json.keys()) == {'name', 'province_code', 'region_id'}:
        return jsonify({'message': 'missing keys'})

    #lower case the facility name
    display_name = request.json['name'].strip()
    name = request.json['name'].replace(' ', '').lower().strip()
    province_code = request.json['province_code'].upper().strip()
    region_id = request.json['region_id']
    #insert into the database
    try:
        dis = Province(name=name,
                       display_name=display_name,
                       province_code=province_code,
                       region_id=region_id)
        db_session.add(dis)
        db_session.commit()
    except IntegrityError as ie:
        return record_exists_envelop()
    except Exception as e:
        print(e)
        return fatal_error_envelop()

    else:
        return record_created_envelop(request.json)
Esempio n. 23
0
def create_training_by_emp(id):
    if not request.json:
        abort(400)
    #check if there is empty field comming up
    if not all(
            len(str(val).strip()) >= 1 for key, val in request.json.items()):
        abort(411)

    #check if there is no registration number and registration body
    result = {'name'} - set(request.json.keys())
    if result:
        return keys_require_envelop('key : "name" is required')
    #clean up the values
    trs = {
        key: val.strip() if isinstance(val, str) else val
        for key, val in request.json.items()
    }
    #insert
    ###################################
    trs['start_date'] = '01-feb-2012'
    trs['end_date'] = '03-feb-2005'
    ##########################
    print(id)
    trs['employee_id'] = id
    try:
        print(id)
        db_session.add(Training(**trs))
        db_session.commit()
    except IntegrityError as e:
        return record_exists_envelop()
    except Exception as e:
        return fatal_error_envelop()
    else:
        return record_created_envelop(request.json)
Esempio n. 24
0
def create_employee_type():

    if not request.json:
        abort(400)

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

    if len(request.json['name'].strip()) < 2:
        abort(411)

    #clear up the values
    display_name = request.json['name'].strip()
    name = display_name.lower()

    try:
        e_type = EmployeeType(name=name, display_name=display_name)
        db_session.add(e_type)
        db_session.commit()
    except IntegrityError as e:
        return record_exists_envelop()
    except Exception as e:
        return fatal_error_envelop()
    else:
        return record_created_envelop(request.json)
Esempio n. 25
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)
Esempio n. 26
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()
Esempio n. 27
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()
Esempio n. 28
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()
Esempio n. 29
0
def get_facilities():
    
    try:
        facilities = db_session.query(FacilityType).order_by(FacilityType.name).all()
        gen_exp = (dict(name = f.display_name, id=f.id) for f in facilities)
        return records_json_envelop(list(gen_exp))
    except Exception as e:
        return fatal_error_envelop()
Esempio n. 30
0
def get_users():
    try:
        users = db_session.query(User).filter(User.user_name != 'admin').all()
    except NoResultFound as e:
        return record_notfound_envelop()
    except Exception as e:
        return fatal_error_envelop()
    else:
        return records_json_envelop(list(user.to_dict() for user in users))