Pràctica ASI-C3-IAIG: HRM: Orange HRM II

De Wikijoan
Dreceres ràpides: navegació, cerca

Contingut

Objectius

Aprofundiràs en l'aplicació OrangeHRM per a la gestió de Recursos Humans d'una empresa o organització.

Desenvolupament

Anem a veure uns quants exemples de què es pot fer amb OrangeHRM

1. Mòdul Temps

Forma part de la responsabilitat del departament de RRHH el definir hores d'entrada i de sortida; definir la flexibilitat per acomplir aquests horaris; definir el procediment per tal que els empleats registrin l'hora de sortida; i fer assabentar als usuaris dels incompliments dels horaris.

El primer que s'ha de fer és el registre de les entrades i les sortides. La mateixa aplicació ho permet fer (pestanya Temps), on introdueixes l'hora d'entrada i l'hora de sortida. Ens hem d'imaginar que a la recepció de l'empresa hi ha un terminal on l'usuari s'ha de logar i l'horari queda registrat.

Evidentment, aquest sistema no és el més pràctic. Un sistema electrònic basat en targeta magnètica seria més pràctic. Anem a pensar com hauria de ser el sistema.

  1. un lector de targeta magnètica. En la targeta hi ha codificat la informació de l'empleat.
  2. un microcontrolador (sistema electrònic autònom) registra el valor llegit, i ho envia a l'ordinador via port USB/sèrie
  3. una aplicació (software) que corre en el terminal de recepció rep la informació que li arriba del microcontrolador. Aquest software està programat amb qualsevol llenguatge de programació que permeti atacar a una base de dades MySQL (és a dir, tots els normals: C, C++, VB, Java, Perl, Python,...). Per tant, es fa un INSERT INTO hs_hr_attendance...

Per tant, veiem com es fa necessari saber accedir directament a la base de dades mysql. Aquest és un exemple típic de com podem adaptar la nostra aplicació amb noves funcionalitats.

per veure les teves entrades i sortides només cal fer:

select * from hs_hr_attendance;

mysql> desc hs_hr_attendance;
+----------------+---------------+------+-----+---------+-------+
| Field          | Type          | Null | Key | Default | Extra |
+----------------+---------------+------+-----+---------+-------+
| attendance_id  | int(11)       | NO   | PRI | NULL    |       | 
| employee_id    | int(11)       | NO   |     | NULL    |       | 
| punchin_time   | datetime      | YES  |     | NULL    |       | 
| punchout_time  | datetime      | YES  |     | NULL    |       | 
| in_note        | varchar(250)  | YES  |     | NULL    |       | 
| out_note       | varchar(250)  | YES  |     | NULL    |       | 
| timestamp_diff | int(11)       | NO   |     | NULL    |       | 
| status         | enum('0','1') | YES  |     | NULL    |       | 
+----------------+---------------+------+-----+---------+-------+

Amb anglès, punch és l'acció de picar una targeta, com feien els revisors del metro, bus o cinema antigament. Ara, tots els sistemes de control de presència són automàtics i electrònics, però la paraula queda.

Quan entres (punch in), es fa un insert en la taula hs_hr_attendance:

insert into hs_hr_attendance(attendance_id,employee_id,punchin_time,punchout_time,status) values(214,'0009','2011-01-18 9:34',NULL,1);

i quan surts (punch out) es fa un update de la mateixa fila:

update hs_hr_attendance set punchout_time='2011-01-18 16:52' where attendance_id=214;

Imaginem que l'horari d'entrada i de sortida per a tots els treballadors és les 9,30 i les 17h. Si vulguéssim fer un informe dels usuaris que han entrat més tard de les 9,30 (en la franja de matí) podríem fer servir aquestes selects (l'alumne ha de ficar informació que validi aquests resultats):

select * from hs_hr_attendance where (hour(punchin_time)=9 and minute(punchin_time)>30) and (hour(punchin_time)<12);

select employee_id,count(*) from hs_hr_attendance where (hour(punchin_time)=9 and minute(punchin_time)>30) and (hour(punchin_time)<12) group by employee_id;

select hs_hr_employee.employee_id,emp_lastname, emp_firstname, count(*) from hs_hr_attendance, hs_hr_employee 
where hs_hr_attendance.employee_id=hs_hr_employee.employee_id 
and (hour(punchin_time)=9 and minute(punchin_time)>30) and (hour(punchin_time)<12) 
group by employee_id,emp_lastname, emp_firstname;

Una select interessant seria calcular els minuts acumulats d'arribar tard per mes i per usuari.

Com a conclusió, la informació per avisar/controlar/sancionar els empleats està a la base de dades, però això no es pot implementar en l'aplicació doncs la manera de procedir és propi de cada empresa.

Imaginem que per Nadal l'empleat que ha acumulat més minuts de retard a l'hora d'entrar ha de convidar a cava. Sabries trobar qui és aquesta persona?

2. Fer informes

Fixa't en la manera flexible com es poden definir els idiomes. Crea l'informe angles_XX, de manera que puguis consultar de manera ràpida els empleats que tenen coneixement d'anglès.

3. Assignació de permisos

Per assignar un permís, per exemple una baixa mèdica, hauràs d'entrar com a Admin. A Asignar Permiso pot donar una baixa a un dels teus usuaris. Escull un dia d'inici i un dia de final. Ara pots entrar amb el teu usuari (asi2aXX) i veure que efectivament el permís està donat. Quina és la taula on es guarda aquesta informació?

4. Camps personalitzats

Volem registrar en la informació personal (PIM) dels empleats la seva preferència de cara al proper lot de Nadal. Ens interessa recopilar la informació per poder fer la comanda.

El professor crearà un custom field (Administrador > Custom Field)

Els camps personalitzats (custom fields) es guarden en la taula hs_hr_custom_fields.

select * from hs_hr_custom_fields;

L'alumne entrarà en els seus dos usuaris i dins la informació PIM podrà editar la seva preferència.

PIM > Custom pots escollir la teva preferència per al lot de Nadal

Feina: Fer una select. Fés un recompte de quantes persones han escollit cadascun dels productes per al lot de Nadal. El resultat haurà de ser del tipus:

pernil    15
cava       9
lot patés 18

Pista: dins la taula d'empleats hi ha espai per emmagatzemar 10 camps personalitzats.

Entrega

Entrega en el Moodle les tasques encomanades.

Recursos

Durarda

3 hores



creat per Joan Quintana Compte, novembre 2009

Eines de l'usuari
Espais de noms
Variants
Accions
Navegació
Institut Jaume Balmes
Màquines recreatives
CNC
Informàtica musical
joanillo.org Planet
Eines