Post on 05-Feb-2021
PROJECTE FI DE CARRERA
TÍTOL: Aplicació de gestió (ERP) de menjadors en centres
educatius
AUTOR: Arnau Timoneda Heredia
TITULACIÓ: Enginyeria Tècnica en Informàtica de Gestió
DIRECTOR: Jordi Esteve Cusiné
DEPARTAMENT: Llenguatges i Sistemes Informàtics
DATA: 27 de Gener de 2011
TÍTOL: Aplicació de gestió (ERP) de menjadors en centres educatius
COGNOMS: Timoneda Heredia NOM: Arnau TITULACIÓ: Enginyeria Tècnica en Informàtica ESPECIALITAT: Gestió PLA: 92
DIRECTOR: Jordi Esteve Cusiné DEPARTAMENT: Llenguatges i Sistemes Informàtics
QUALIFICACIÓ DEL PFC
TRIBUNAL
PRESIDENT SECRETARI VOCAL
DATA DE LECTURA:
Aquest Projecte té en compte aspectes mediambientals: x Sí No
PROJECTE FI DE CARRERA RESUM (màxim 50 línies)
El projecte de final de carrera pretén crear un aplicatiu per a poder gestionar el menjador d’un centre educatiu mitjançant la tecnologia OpenERP, que és un ERP (Planificació de Recursos Empresarials) molt potent, lliure i multiplataforma amb client tant d’escriptori com web. OpenERP funciona a través de mòduls, aquests mòduls són modificables per a poder satisfer les necessitats específiques de cada organització, això fa que sigui molt flexible a l’hora de plantejar tot tipus de problemes, es preveu crear i aprofitar tots els mòduls necessaris per a crear la solució. L’aplicatiu s’encarregarà de controlar els alumnes que es queden a dinar al menjador del centre educatiu, tant si aquests són usuaris habituals o esporàdics del servei. Gestionarà també la facturació mensual del servei per cada alumne tenint en compte el tipus d’ús que fa l’alumne del menjador, del tutor/s legal i si l’alumne disposa d’algun tipus de beca atorgada pel Consell Comarcal.
Paraules clau (màxim 10):
OpenERP ERP PostgreSQL Python
XML Facturació Alumne Participació
Assistent
Aplicació de gestió (ERP) de menjadors en centres educatius
4
Aplicació de gestió (ERP) de menjadors en centres educatius
5
Agraïments
Vull agrair aquest projecte a les següents persones:
Al meu tutor Jordi Esteve, per la implicació i la dedicació que ha mostrat per el projecte.
Al meu company Alfons Toledo, per totes les hores que hem passat junts durant la carrera i perquè sense
ell mai hagués començat a fer-la.
Al meu company Jesús Escribano, per donar-me més d’un cop de mà en els inicis del projecte, i per tenir tanta paciència.
Als meus pares per donar-me el luxe d’estudiar tot el que he volgut i per aguantar-me sempre que ha
calgut, us estimo molt.
A la meva xicota Sonia, per haver-me aguantat tot aquest temps, per estimar-me com m’estima i per fer la meva vida una mica més agradable.
Aplicació de gestió (ERP) de menjadors en centres educatius
6
Aplicació de gestió (ERP) de menjadors en centres educatius
7
Índex
1. Introducció. ..................................................................................................................................... 11 1.1 Objectius. .................................................................................................................................................. 11 1.2 Justificació. ............................................................................................................................................... 11 1.2.1 Justificació personal. ........................................................................................................................................ 11 1.2.2 Justificació del projecte. ................................................................................................................................. 12
2. Definició del problema. ............................................................................................................... 13 2.1 Softwares per gestió de centres educatius. ................................................................................... 14 2.1.1 SAGA. ...................................................................................................................................................................... 14 2.1.2 FET. ......................................................................................................................................................................... 15 2.1.3 Intraweb. .............................................................................................................................................................. 15 2.1.4 Tutoria. .................................................................................................................................................................. 15 2.1.5 SIESTTA. ................................................................................................................................................................ 15 2.1.6 SchoolTool. .......................................................................................................................................................... 15 2.1.7 OpenERP-‐School. ............................................................................................................................................... 16
2.2 Conceptes. ................................................................................................................................................ 16 2.2.1 Contacte/Alumne. ............................................................................................................................................. 16 2.2.2 Participació. ......................................................................................................................................................... 16 2.2.3 Vacances. .............................................................................................................................................................. 17 2.2.4 Factures. ................................................................................................................................................................ 17 2.2.5 Descomptes. ........................................................................................................................................................ 17
3. Avaluació de les tecnologies. ..................................................................................................... 19 3.1 ERP. ............................................................................................................................................................. 19 3.1.1 ERPs de codi obert. .......................................................................................................................................... 20 3.1.1.1 Compiere. ........................................................................................................................................................................ 21 3.1.1.2 Fisterra. ............................................................................................................................................................................ 21 3.1.1.3 Openbravo. ..................................................................................................................................................................... 21 3.1.1.4 FacturaLUX. .................................................................................................................................................................... 21 3.1.1.5 OpenERP. ......................................................................................................................................................................... 21 3.1.1.6 OpenBluelab. ................................................................................................................................................................. 21 3.1.1.7 Project Open. ................................................................................................................................................................. 21
3.2 Escollir un ERP. ....................................................................................................................................... 22 3.3 OpenERP. .................................................................................................................................................. 22 3.3.1 Introducció. ......................................................................................................................................................... 22 3.3.2 Tipus d’arxius. .................................................................................................................................................... 25 3.3.2.1 Camps. .............................................................................................................................................................................. 26 3.3.2.2 Vistes. ................................................................................................................................................................................ 27
3.3.3 Altres tipus d’arxiu. .......................................................................................................................................... 27 4. Planificació inicial. ........................................................................................................................ 29 4.1 Desglossament de tasques. ................................................................................................................. 29 4.2 Anàlisi econòmic. ................................................................................................................................... 30
5. Anàlisi i especificació. .................................................................................................................. 33 5.1 Anàlisi de requeriments. ..................................................................................................................... 33 5.1.1 Requeriments referents a les participacions dels alumnes. ........................................................... 33 5.1.2 Requeriments referents als tipus de menús. ........................................................................................ 33 5.1.3 Requeriments referents als productes. ................................................................................................... 33 5.1.4 Requeriments referents a configuracions de menjadors. ............................................................... 34 5.1.5 Requeriments referents a alumnes/tutors. ........................................................................................... 34 5.1.6 Requeriments referents a la facturació. .................................................................................................. 34 5.1.7 Requeriments referents als descomptes. ............................................................................................... 34 5.1.8 Requeriments referits a les vacances. ...................................................................................................... 34
Aplicació de gestió (ERP) de menjadors en centres educatius
8
5.1.9 Requeriments no funcionals. ........................................................................................................................ 35 5.2 Model conceptual. ................................................................................................................................. 35 5.2.1 Glossari de conceptes. ..................................................................................................................................... 35
5.3 Casos d’ús del sistema. ........................................................................................................................ 38 5.3.1 Diagrama de casos d’ús. .................................................................................................................................. 38 5.3.2 Casos d’ús. ............................................................................................................................................................. 39 5.3.2.1 Crear nova participació. ............................................................................................................................................ 39 5.3.2.2 Modificar vacances. ..................................................................................................................................................... 42 5.3.2.3 Esborrar configuració de menjador. ................................................................................................................... 44 5.3.2.4 Assistent consultar dies. ........................................................................................................................................... 46 5.3.2.5 Assistent crear participacions. ............................................................................................................................... 47 5.3.2.6 Assistent agrupar. ........................................................................................................................................................ 51
6. Disseny. ............................................................................................................................................ 55 6.1 Aprofitament de mòduls per al nostre problema. ..................................................................... 55 6.2 Model de components. ......................................................................................................................... 58 6.2.1 Visibilitats d’atribut. ......................................................................................................................................... 58 6.2.2 Visibilitats de paràmetre. ............................................................................................................................... 59 6.2.3 Visibilitats locals. ............................................................................................................................................... 59
6.3 Diagrames de col·laboració. .............................................................................................................. 60 6.3.1 Cas d’ús Crear nova participació. ................................................................................................................ 60 6.3.1.1 seleccionaEstudiant(estudiant). ........................................................................................................................... 61 6.3.1.2 crearParticipació(d:day). ......................................................................................................................................... 61 6.3.1.3 afegirDades(dades). .................................................................................................................................................... 62 6.3.1.4 fi_crea_participació(). ................................................................................................................................................ 63
6.3.2 Cas d’ús Modificar període de vacances. ................................................................................................. 64 6.3.2.1 seleccionarPeriode(període). ................................................................................................................................. 64 6.3.2.2 modificarPeriode(dades). ........................................................................................................................................ 65 6.3.2.3 fi_modificar_periode(). .............................................................................................................................................. 66
7. Implementació. .............................................................................................................................. 67 7.1 Versions OpenERP. ............................................................................................................................... 67 7.2 Mòduls desenvolupats. ........................................................................................................................ 67 7.2.1 Menjador Escolar (menjador_escolar). .................................................................................................... 67 7.2.2 Holidays (holidays). .......................................................................................................................................... 67
7.3 Model. ........................................................................................................................................................ 68 7.3.1 Objecte Student. ................................................................................................................................................. 69 7.3.2 Objecte dining_hall_day. ................................................................................................................................. 70
7.4 Vista. .......................................................................................................................................................... 71 7.4.1 Vista formulari d’estudiant. .......................................................................................................................... 71 7.4.2 Vista arbre de discount. .................................................................................................................................. 73 7.4.3 Vista calendari de participacions. ............................................................................................................... 73 7.4.4 Accions. .................................................................................................................................................................. 74 7.4.5 Menús. .................................................................................................................................................................... 75 7.4.6 Dreceres. ................................................................................................................................................................ 75
7.5 Controlador (Lògica del Mòdul). ...................................................................................................... 75 7.6 Implementació d’altres recursos. .................................................................................................... 78 7.6.1 Assistents (Wizards). ....................................................................................................................................... 78 7.6.2 Dreceres. ................................................................................................................................................................ 79 7.6.3 Introducció de dades automàticament. ................................................................................................... 79 7.6.4 Permisos. ............................................................................................................................................................... 79
8. Test i jocs de proves. .................................................................................................................... 81 9. Planificació final i anàlisi econòmica ..................................................................................... 83 9.1 Planificació final. ................................................................................................................................... 83 9.1.1 Comparació planificació inicial – planificació final. ............................................................................ 85
Aplicació de gestió (ERP) de menjadors en centres educatius
9
9.2 Anàlisi Econòmica. ................................................................................................................................ 86 10. Conclusions. .................................................................................................................................. 89 10.1 Conclusions tècniques. ...................................................................................................................... 89 10.2 Conclusions personals. ...................................................................................................................... 89 10.3 Possibles ampliacions. ...................................................................................................................... 90 10.4 Anàlisi d’ambientalització. .............................................................................................................. 90 10.5 Anàlisi d’accessibilitat. ...................................................................................................................... 90
Annex I: Manual d’usuari ................................................................................................................ 91 1. Manual d’usuari. ....................................................................................................................................... 91 1.1 Instal·lació del client OpenERP. ...................................................................................................................... 91 1.2 Execució del client. ............................................................................................................................................... 91 1.3 Utilització mòduls. ................................................................................................................................................ 93 1.3.1 Estudiants. .......................................................................................................................................................................... 93 1.3.2 Configuració de menjadors. ........................................................................................................................................ 99 1.3.3 Tipus de menús. ............................................................................................................................................................... 99 1.3.4 Configuració de Descomptes. .................................................................................................................................. 100 1.3.5 Menús diaris. .................................................................................................................................................................. 100 1.3.6 Assistent Consultar participacions. ...................................................................................................................... 101 1.3.7 Veure totes les participacions. ................................................................................................................................ 101 1.3.8 Vacances. .......................................................................................................................................................................... 102
Annex II: Manual d’administrador ............................................................................................. 103 1. Manual d’administrador. .................................................................................................................... 103 1.1 Instal·lació del servidor OpenERP. ............................................................................................................. 103 1.2 Execució del servidor. ....................................................................................................................................... 104 1.3 Creació d’una base de dades. ......................................................................................................................... 104 1.4 Instal·lació de mòduls. ...................................................................................................................................... 106 1.5 Creació d’usuaris. ............................................................................................................................................... 110
Annex III: Programes usats .......................................................................................................... 113 Bibliografia. ....................................................................................................................................... 115
Aplicació de gestió (ERP) de menjadors en centres educatius
10
Aplicació de gestió (ERP) de menjadors en centres educatius
11
1. Introducció.
L’últim pas que ha de fer un estudiant per ser enginyer és el Projecte de Final de Carrera. Aquí és on
l’estudiant ha de posar en pràctica tots els coneixements adquirits durant els anys d’estudi.
A diferencia dels problemes proposats i realitzats a les classes, el Projecte de Final de Carrera és el més
proper a la realitat del que l’alumne s’ha trobat arribat en aquest punt. Això també vol dir que aquest
problema no sol tenir les limitacions dels problemes realitzats a classe.
1.1 Objectius.
Amb aquest PFC es volen aconseguir els següents objectius:
• Fer un anàlisi complet del problema de la gestió de menjadors escolars a partir dels requisits
suggerits per el director d’un centre educatiu.
• Familiaritzar-nos en el àmbit dels ERP (Planificació de Recursos Empresarials) ja que aquesta
tecnologia és molt present, i cada dia més, en la gestió de moltes empreses.
• Aprendre els llenguatges utilitzats per OpenERP per ampliar coneixements que podrien ser
perfectament una sortida professional.
• Dissenyar una solució software que doni solució a l’anàlisi realitzat..
• Implementar la solució software dissenyada.
• Testejar, provar i corregir els errors de l’aplicació desenvolupada.
• Redactar la memòria i els manuals corresponents per l’ús de l’aplicació.
• Usar, sempre que l’ocasió ho permeti, el màxim d’aplicacions lliures, d’aquesta manera
minimitzarem els costos de desenvolupament.
1.2 Justificació.
1.2.1 Justificació personal.
Quan va arribar l’hora de pensar en el PFC no sabia ben bé sobre el que podria fer. Gràcies al que va ser
el meu professor d’EDAL (Estructures de Dades i Algoritmes) Jordi Esteve, em van arribar dues
propostes de PFC.
La primera proposta era fer un TPV (Terminal Punt de Venta) per a un supermercat, i l’altre proposta era
una implementació amb OpenERP del menjador del centre, i com ell estava en contacte amb el director
Aplicació de gestió (ERP) de menjadors en centres educatius
12
d’un centre educatiu, em podria aconseguir uns requisits sobre el que necessitaven i així poder encarar el
projecte sobre aquest tema.
Després d’estudiar les dues opcions no em va costar gaire decidir-me, la possibilitat de que el projecte per
l’escola fos sobre un problema real va ser el que em va fer acabar de decidir tan ràpid.
1.2.2 Justificació del projecte.
L’A.M.P.A és l’associació de mares i pares d’un centre educatiu, són entitats de dret privat i el seu
objectiu fonamental és la representació dels interessos dels pares, mares o tutors legals d’alumnes dels
centres educatius.
Josep Maria Esteve Gibert, és director del CE Jacint Verdaguer i també part activa del A.M.P.A del
mateix centre, ens ha explicat el descontrol que hi ha al centre a l’hora de gestionar el menjador. Els
alumnes que es queden a dinar són apuntats en uns papers a mà que es passen a la cuina on en prenen nota
per saber les quantitats i varietats que han de cuinar.
A final de mes s’han de facturar els menjadors reunint tots els ‘paperets’ de tots els alumnes inscrits
durant el mes, s’ha de diferenciar entre els alumnes esporàdics dels alumnes habituals (tenen un preu
diferent), s’ha de saber quin o quins són els tutors legals de cada alumne per poder dividir les factures i
fins hi tot s’han de generar unes altres factures perquè hi ha alumnes que tenen una beca del Consell
Comarcal i paguen part dels costos del menjador depenent la situació de l’alumne.
A tot això s’ha d’afegir també apuntar les baixes, siguin pel motiu que siguin, perquè si un alumne que
estava inscrit per un dia resulta que al final no assisteix, se li ha de restar l’import del menjador d’aquell
dia però no el de monitoratge.
Existeix una empresa (Tecnoba S.l) desenvolupant una aplicació anomenada OpenERP-School que és una
aplicació per gestionar completament un Centre Educatiu. Aquesta aplicació no contempla la gestió de
menjadors i aquest és també un dels motius principals per l’elecció d’aquest PFC.
Aplicació de gestió (ERP) de menjadors en centres educatius
13
2. Definició del problema.
El problema ve degut a la falta de programari de gestió d’escoles que permeti gestionar la totalitat d’un
centre educatiu.
Un dels objectius és crear una eina on es pugui gestionar tota la informació del centre de manera més
eficient i productiva. A llarg termini, s’espera reunir els mòduls necessaris per la gestió completa d’un
centre educatiu, no només el menjadors sinó també la gestió d’alumnes, professors, cursos, assignatures,
etc. Tot en la mateixa aplicació de gestió.
Actualment els centres educatius que es volen informatitzar tenen un ventall d’aplicacions per triar no
gaire ampli, algunes d’aquestes aplicacions són propietàries i altres són lliures. Cadascuna d’aquestes
aplicacions està especialitzada en una secció de la gestió del centre, però cap aplicació de les existents és
completa per a totes les funcions d’un centre educatiu, per tant, si un centre vol estar totalment
informatitzat, ha de fer ús de més d’una aplicació.
Això fa que la gestió del centre sigui més complicada, ja que requereix més especialització dels usuaris
del sistema, més possibilitats d’errors (humans i errors del sistema), instal·lació i manteniment del
programari, etc.
A la següent taula es poden apreciar algunes de les diferents aplicacions existents i els camps que toca
cadascuna:
Aplicació de gestió (ERP) de menjadors en centres educatius
14
SAGA FET Intraweb Tutoria
SIESTTA SchoolTool
OpenERP-School
Gestió Acadèmica Gestió de faltes x x x x x x Incidències x x x x x x Avaluació d’alumnat x x x x En projecte Accés als pares x x x x Plataforma educativa x Gestió de recursos x x En
desenvolupament Gestió documental x x Agendes compartides x x x x x x Generador d’horaris x En projecte Gestió d’esdeveniments x Gestió de Menjadors PFC d’Arnau
Timoneda Gestió de professorat i PAS x En
desenvolupament Gestió d’absències i baixes de professorat En
desenvolupament Plataforma A.M.P.A En
desenvolupament Gestió Econòmica
Pressupostos x x Gestió de Rebuts x x Gestió de compres-vendes x x Comptabilitat x x Altres Client Web x x x x x x Client d'Escriptori x x Client per a PDA x x x En projecte Importació dades SAGA O x x x Importació / exportació dades FET O x Enllaç amb Moodle x x x Integració de Jclic x Interfície en català x x x x x x x Possibilitat d’adaptació/Personalització x x x x x x
Possibles funcionalitats a implementar
CRM x Gestió de projectes x Gestió de Qualitat x Bussines Inteligence (BI) x
Il·lustració 1 - Taula comparativa de diferents programaris per gestió de centres educatius. (Pere Ramon
Erro, Tecnoba).
2.1 Programaris per gestió de centres educatius. 2.1.1 SAGA.
Aplicació de gestió (ERP) de menjadors en centres educatius
15
Aplicació desenvolupada per el Laboratori de Càlcul de la Facultat d’Informàtica de Barcelona de la
Universitat Politècnica de Catalunya (LCFIB) amb la col·laboració del Laboratori de Modelització i
Anàlisi de la Informació (LIAM).
És una aplicació per gestió de centres docents públics que permet la gestió de diferents camps com
matrícules, avaluacions, distribució de currículums, emissió d’informes i certificats oficials, gestió
econòmica dels centres i donar suport dels processos administratius.
2.1.2 FET.
És una aplicació per organitzar horaris dels professors i dels alumnes d’un centre educatiu. La principal
funció és la de gestionar l’ús de les aules, ajustar el nombre d’hores de treball, disponibilitat de despatxos.
Permet dissenyar un pla d’activitats i horaris i alhora controlar la seva execució permetent realitzar canvis
durant el curs.
2.1.3 Intraweb.
Intraweb és una eina que proporciona un mecanisme de comunicació interna i externa d’un centre i que
aporta diverses solucions als problemes més habituals que poden sorgir en un centre educatiu. És
accessible a través d’internet i fàcil de gestionar però no abarca totes les àrees possibles d’un centre.
2.1.4 Tutoria.
Aquesta aplicació permet facilitar les tasques dels tutors. Gestiona incidències, avaluacions i enviament
de SMS. Permet l’accés des de PDA i la comunicació entre tutors, pares i professors. Té la opció
d’importació de dades des del SAGA.
2.1.5 SIESTTA.
Aplicatiu de gestió d’alumnes i tutories. Gestiona les faltes d’assistència, els retards i observacions. Els
professors poden registrar tota la informació que es genera a l’aula. Té accés via web i permet als pares
consultar les dades acadèmiques dels seus fills. També permet la creació d’informes.
2.1.6 SchoolTool.
És una eina que gestiona les funcionalitats bàsiques com el registre d’alumnes, l’assistència, mediació de
rendiment escolar, generador d’horaris, gestió d’equips, grups, classes etc. Està compost per tres mòduls
principals que són: SchoolTool Calendar per a la gestió d’horaris, SchoolBell que és un calendari per
organitzacions petites i l’SchoolTool 2006 que és el sistema d’administració d’alumnes.
Aplicació de gestió (ERP) de menjadors en centres educatius
16
2.1.7 OpenERP-School.
Aplicació en desenvolupament per la empresa Tecnoba S.L que pretén en un futur pròxim crear una eina
de gestió total d’un centre educatiu. Actualment l’aplicació s’està usant en dos centres educatius del país i
està en estat de desenvolupament i millora constant.
L’objectiu a llarg termini és vol una aplicació única per poder gestionar totalment un centre educatiu
qualsevol, amb una aplicació lliure, intuïtiva, àgil i fàcil d’usar.
En aquest PFC ens centrarem en la gestió de menjadors, que és una part de la gestió acadèmic, que no
resol cap de les aplicacions existents.
2.2 Conceptes. 2.2.1 Contacte/Alumne.
Els alumnes són una part molt important en els centres educatius. D’ells s’ha de guardar molta informació
important per poder gestionar el centre educatiu. Si això li afegim la gestió del menjador, encara
necessitarem més de dades de cada alumne.
Per a la gestió de menjadors necessitem tenir a la base de dades la informació corresponent de cada
alumne perquè aquest rebi un servei adequat a les seves necessitats. Aquesta informació són els dies en
que l’alumne farà us del servei de menjador del centre, saber si és al·lèrgic o intolerant a algun aliment, si
la seva religió no li permet consumir alguns aliments determinats i el pare/mare/tutor(s) legal(s) de qui es
fa càrrec de l’alumne per a poder facturar el servei.
Un alumne pot demanar per un dia concret fer ús del menjador, però també en pot anul·lar la inscripció ja
feta anteriorment.
2.2.2 Participació.
La participació és la constància de que un alumne fa ús del menjador del centre educatiu en un dia en
concret.
A una participació haurem de guardar l’alumne que en fa ús, el dia, un petit comentari per la dieta
d’aquell dia, el tipus de menú que consumirà, un booleà per saber si aquell dia s’ha consumit aquell menú
o no i un enllaç al tipus de producte que és per a final de mes poder-ne fer la factura corresponent.
Aplicació de gestió (ERP) de menjadors en centres educatius
17
2.2.3 Vacances.
En aquest projecte les vacances es defineixen amb períodes (interval amb una data d’inici i una altre de fi)
i tots els dies compresos dins d’aquests períodes es consideren dies de festa.
2.2.4 Factures.
Les factures són els informes que es creen a final de mes per a cada alumne.
Una factura conté: l’alumne que ha fet ús del servei de menjador del centre i el pare/mare/tutor legal de
l’alumne que es farà càrrec d’abonar l’import de la factura.
Pot ser que un alumne tingui més d’una factura a final de mes, depenent de la seva situació familiar, del
nombre de persones que han de pagar la factura i de si l’alumne té atorgada una beca del Consell
Comarcal.
2.2.5 Descomptes.
Es considera Participació Periòdica el fet que un alumne sigui habitual al menjador, que en faci ús cada
dia o gairebé. En aquest cas, se’ls aplica un descompte per ser habituals.
Els descomptes són la manera de gestionar les Participacions Periòdiques. Un descompte té un número
mínim de dies que representa el límit de dies que s’ha de quedar un alumne al menjador perquè se li
apliqui el descompte i un número que indica, en tant per cent, el descompte que se li aplicarà en cas que
compleixi el límit inferior els dies de menjador.
Aplicació de gestió (ERP) de menjadors en centres educatius
18
Aplicació de gestió (ERP) de menjadors en centres educatius
19
3. Avaluació de les tecnologies. Un cop estudiat el problema a fons, cal buscar la solució més eficaç tenint en compte aspectes com el
sistema operatiu on haurà d’aplicar-se la solució, quin tipus d’aplicació serà, quin sistema de base de
dades es farà servir, el tipus de servidor que s’utilitzarà i en quin llenguatge de programació es
desenvoluparà l’aplicació.
3.1 ERP.
Un ERP (Planificació de Recursos Empresarials) es podria definir com un sistema o programari
administratiu per a la gestió de totes les àrees d’una organització, mitjançant processos transparents i en
temps real en una base de dades relacional.
Les àrees de gestió més importants per una organització solen ser:
• Comptabilitat i finances.
• CRM: Gestió de la Relació amb els Clients.
• Producció, Gestió de serveis i entrega.
• Compres i Vendes.
• Logística i Gestió de proveïdors.
• Projectes i Gestió de Recursos Humans.
• Màrqueting.
Il·lustració 2 – Esquema de les àrees de gestió més importants d’un ERP
Aplicació de gestió (ERP) de menjadors en centres educatius
20
Un ERP es caracteritza per estar format per diferents parts integrals en una mateixa aplicació. La
diferencia entre un ERP i una eina de gestió és bàsicament que l’ERP integra totes les parts de la gestió
de l’organització.
Els objectius principals que un ERP ha d’oferir són:
• Automatitzar, simplificar i optimitzar processos que es realitzen de forma manual, amb els
conseqüents estalvis de temps d’operació, millorar productivitat i augment de la competitivitat
de l’organització.
• Integrar totes les àrees d’una organització de manera que aquesta tingui més control sobre
l’organització establint llaços amb els diferents departaments facilitant el procés de control i
auditoria.
• Crear una base de dades centralitzada en la que es registren, processen i controlen totes les
funcions realitzades a l’organització independentment de la ubicació geogràfica, preservant la
integritat de les dades.
Tot i els grans avantatges que ofereix la implantació d’un ERP a una organització, també pot suposar
algun inconvenient:
• Cost: És un dels inconvenients més importants, el gran cost de capacitació, implementació,
suport, configuració, etc.
• Temps i complexitat de la implementació: La implementació d’un sistema ERP és un procés
intensiu en l’ús del temps, i això pot afectar l’eficiència temporal de les operacions de
l’organització.
• Personal: Un sistema ERP automatitza moltes tasques executades per persones, si aquestes no
estan ben entrenades i no tenen habilitat pel funcionament del sistema ERP, la organització se’n
veurà afectada.
• Complexitat per integrar la informació externa: La dificultat per integrar la informació en els
ERP es produeix perquè les organitzacions tenen sistemes independents de diferents proveïdors
que tenen una estructura de dades no compatible amb els de l’ERP.
3.1.1 ERPs de codi obert.
Farem una petita pinzellada amb una curta descripció als principals ERPs de codi obert que podem
trobar.
Aplicació de gestió (ERP) de menjadors en centres educatius
21
3.1.1.1 Compiere.
És un ERP + CRM (Custommer Relationship Managment en anglès) amb interfície Windows i Web.
Està fet completament en Java amb base de dades Oracle. Com molts altres ERPs lliures, es pot afegir
mòduls per ampliacions.
3.1.1.2 Fisterra.
És un projecte que pretén crear un ERP genèric fet amb programari lliure. En la actualitat suporta
administració de clients, facturació, gestió de stock i de pagament i punts de venta. La implementació fa
servir Gnome SDK i PostgreSQL.
3.1.1.3 Openbravo.
És una aplicació de codi obert de gestió d’organitzacions tipus ERP destinat a petites i mitjanes empreses.
L’estructura de dades està basat originalment en Compiere. Està escrita en java i s’executa sobre Apache i
Tomcat amb suport a bases de dades PostgreSQL i Oracle.
3.1.1.4 FacturaLUX.
És un ERP orientat a l’administració, gestió comercial, finances i en general a qualsevol tipus d’aplicació
on es treballi amb grans bases de dades i processos administratius. FacturaLUX ofereix mòduls des de la
gestió financera i comercial fins a l’adaptació a processos complexes de producció. La interfície gràfica
es basa en la llibreria Qt i treballa amb bases de dades Postgres i MySQL.
3.1.1.5 OpenERP.
És un programari ERP amb llicència GPL. Inicialment desenvolupat a Bèlgica. És multiplataforma, té
client per a Windows, Mac OS i GNU/Linux i un altre client web (per usar l’aplicació des de qualsevol
navegador), i un servidor que es pot instal·lar en Windows i Linux.
3.1.1.6 OpenBluelab.
Potent aplicació que proporciona a l’organització totes les eines necessàries per planificar els seus
recursos. Està desenvolupat en Java, PHP i Ajax i actualment només es troba en anglès.
3.1.1.7 Project Open.
Aplicació de gestió (ERP) de menjadors en centres educatius
22
És un complet i complex ERP orientat a projectes molt configurable. No està pensat per empreses que
produeixen o fabriquen bens físics sinó per empreses de serveis (consultoria, publicitat, IT, sistemes de
programari, etc)
3.2 Escollir un ERP.
OpenERP-School és un projecte actual que està desenvolupant un grup de programadors i que pretén
adaptar OpenERP a l’entorn dels centres educatius per gestionar tot un centre des d’una mateixa
aplicació.
El fet que aquest grup estigui desenvolupant el projecte en OpenERP és el motiu principal pel qual hem
escollit OpenERP per a desenvolupar el PFC. Ens hem posat en contacte amb aquest grup de
programadors i hem decidit que jo m’encarregaria de fer un mòdul per a la completa gestió dels
menjadors d’un centre educatiu amb l’ERP OpenERP.
Altres motius que m’han ajudat a decidir-me són la flexibilitat que ofereix OpenERP a l’hora d’usar i
modificar mòduls ja existents i la curta corba d’aprenentatge que té aquesta tecnologia.
3.3 OpenERP.
3.3.1 Introducció.
OpenERP és un complet sistema de gestió d’organitzacions que cobreix les necessitats de les àrees de
comptabilitat, vendes, compres, magatzem i inventari, entre moltes altres.
Suporta múltiples monedes, companyies i comptabilitats, també incorpora funcionalitats de gestió de
documents per agilitzar la col·laboració entre departaments i equips dins l’organització. Permet treballar
remotament mitjançant una interfície web des d’un ordinador connectat a Internet o amb clients
d’escriptori (hi ha versions per Windows, Linux i Mac).
OpenERP és potent, simple i flexible, disposa de més de 500 mòduls, 114 dels quals són oficials, i molts
més extra i desenvolupats per la comunitat.
S’integra amb coneguts programaris comercials per facilitar la feina, algun d’aquests programaris són:
• Visualització d’informes amb Adobe Reader (PDF) o similars
• Importació/Exportació de Microsoft Office o OpenOffice
Aplicació de gestió (ERP) de menjadors en centres educatius
23
• Importació/Exportació a Excel (CSV)
Permet treballar amb diferents idiomes, i l’envolta una gran comunitat que treballa constantment en la
creació de nous mòduls i ofereix ajuda entre els membres per resoldre alguns problemes.
Com hem comentat a la seva definició, OpenERP treballa en arquitectura client-servidor permetent així
centralitzar les dades. Aquesta arquitectura consisteix en que un client realitza peticions a un altre
programa (servidor) que li dona respostes. Aquesta idea es pot aplicar executant el client-servidor a la
mateixa màquina, però s’aprofita més en un sistema distribuït a través d’una xarxa d’ordinadors.
Il·lustració 3 – Arquitectura Client-Servidor en OpenERP
OpenERP usa l’esquema Model-Vista-Controlador (MVC). El MVC és un estil d’arquitectura de
programari que separa les dades d’una aplicació, la interfície d’usuari i la lògica de control en tres
components diferents:
• Model: És la representació específica de la informació amb la que el sistema treballa. OpenERP
utilitza un diccionari Python que es mapeja automàticament sobre una base de dades
PostgreSQL.
• Vista: La vista presenta el model en un format adequat per interactuar amb l’usuari. Per crear
les vistes a OpenERP es fan servir arxius XML.
Aplicació de gestió (ERP) de menjadors en centres educatius
24
• Controlador: El controlador és l’encarregat de respondre a les accions i interaccions que fa
l’usuari amb la vista.
Il·lustració 4 – Representació Model-Vista-Controlador
OpenERP divideix les diferents tasques de gestió d’una organització en diferents mòduls. Cada mòdul
és la solució a unes necessitats concretes. N’hi han que afegeixen més característiques extra a mòduls
ja existents, quan això passa diem que el mòdul que afegeix noves característiques depèn del mòdul
que rep aquestes noves característiques.
Quan s’instal·la OpenERP, automàticament s’instal·la el mòdul base. Aquest inclou les principals
necessitats que pot tenir una organització com la gestió de contactes, empreses, usuaris, missatgeria
interna, etc. Quan es vol instal·lar un mòdul que depèn d’un altre, que en aquell moment no es troba
instal·lat, aquest mòdul s’instal·la automàticament.
Aplicació de gestió (ERP) de menjadors en centres educatius
25
Il·lustració 5 – Esquema dels principals mòduls d’OpenERP i les seves dependències.
A l’hora d’encarar un problema amb OpenERP, el que hem de fer primer és buscar si existeix algun
mòdul que ens solucioni total o parcialment el problema. Un cop hem fet això, depenent del resultat
tenim tres vies:
• Aprofitar un mòdul existent que satisfà completament el problema.
• Heretar funcionalitats dels mòduls existents per adequar-los a les nostres necessitats.
• Crear un nou mòdul.
3.3.2 Tipus d’arxius. Un mòdul és una carpeta amb tots els arxius necessaris per al seu funcionament. Aquests arxius contenen
el model, la lògica del controlador i les vistes per aquell mòdul.
Aplicació de gestió (ERP) de menjadors en centres educatius
26
Els diferents tipus d’arxius són els següents:
• __init__.py: És un arxiu que conté el nom dels altres arxius .py del mòdul que contenen els
models i la lògica.
• __terp__.py: Aquest arxiu en Python conté una descripció del mòdul, l’autor del mòdul, les vistes
que ha de carregar, els mòduls dels qual depèn, la versió, etc.
• nom_mòdul.py: Arxiu que conté els models i la lògica del mòdul en Python.
• nom_mòdul_view.xml: Arxiu que conté les vistes en XML del mòdul.
• /security: Dins d’aquesta carpeta hi ha un arxiu CSV on es defineixen les regles d’accés
(permisos) de grups i permisos d’usuari.
• /wizard: En aquesta carpeta hi han els assistents del mòdul. Actualment, amb la nova manera
d’implementar wizards, podem prescindir d’aquesta carpeta i afegir els arxius dels wizards a la
carpeta principal del mòdul.
• /reports: Carpeta que conté els informes del mòdul.
• /i18n: En aquesta carpeta hi han les traduccions del mòdul. Les traduccions es guarden en format
.po. El nom de la carpeta fa servir un mètode d’abreviació de noms on posem la primera lletra de
la paraula seguit del nombre de lletres de la paraula (menys dos, de la primera i última lletra que
sí surten en el nom) i la última lletra de la paraula. Així, i18n és l’abreviació de la paraula
internationalization.
3.3.2.1 Camps.
En els arxius .py que contenen els models i la lògica del mòdul es troben definits els diferents objectes.
Per OpenERP un objecte o model és un recurs necessari per la gestió de l’organització.
Dins d’aquests objectes es poden definir diferents tipus de camps. Aquests camps poden ser:
• Camps normals: integer, char, boolean, float, time, date, datetime, binary, selection, reference.
• Camps relacionals: one2many, many2one, many2many.
• Camps funcionals: són camps que es calculen a partir d’altres.
Un cop definits els camps, si instal·lem el mòdul, la base de dades crea una taula amb el nom que hem
especificat a l’objecte, i amb cadascún dels camps definits dins la taula.
Aplicació de gestió (ERP) de menjadors en centres educatius
27
Els objectes, a més de camps també tenen funcions (mètodes). Hi han funcions bàsiques predefinides
com, per exemple la creació, la escriptura i la eliminació de dades. Tot i això, és possible redefinir
aquestes funcions si es vol que facin alguna acció més.
3.3.2.2 Vistes.
Per a que l’usuari pugui veure els camps descrits als models o objectes, s’han de definir als arxius de la
vista en llenguatge XML. Hi ha varies vistes diferents disponibles a OpenERP, les més importants són:
• Vista arbre (tree): Mostra les dades en forma de arbre o llista. En aquesta vista es poden definir
alguns camps per poder filtrar les dades.
• Vista formulari (form): Aquesta vista ens permet crear o modificar els registres.
• Vista calendari (calendar): És una vista on mostra un calendari amb les dades sobre els recursos
ordenats per data.
• Vista gràfica (graph): Mostra un gràfic de barres o pastís calculat a partir de les dades.
3.3.3 Altres tipus d’arxiu.
A més dels arxius descrits anteriorment, existeixen altres tipus d’arxius. Aquests arxius són:
• Assistents (wizards): Els assistents són accions que seqüencialment ajuden al usuari a realitzar
determinades tasques. Dins dels assistents es poden definir objectes, però aquests objectes no es
guardaran a la base de dades ja que s’executen en memòria i l’únic que se’n guarda son els
resultats.
• Informes (reports): Són plantilles per realitzar informes personalitzats amb les dades que ens
convinguin. Aquests informes es generen en format HTML, PDF, OpenOffice o XML.
• Fluxos de treball (workflows): Determinen l’estat dels diferents recursos i les seves transicions.
Aplicació de gestió (ERP) de menjadors en centres educatius
28
Aplicació de gestió (ERP) de menjadors en centres educatius
29
4. Planificació inicial.
4.1 Desglossament de tasques.
Abans de començar a desenvolupar el projecte, s’ha de fer una planificació inicial per tenir una estimació
aproximada del temps que ens ocuparà. Per fer una bona planificació, és convenient desglossar tot el
projecte en tasques analitzant el temps de cadascuna, assenyalant quines tasques són més prioritàries i
ordenar-les de manera que es vegi clar quines tasques s’han de fer primer i que ens permetin començar les
següents.
Les tasques principals d’aquest projecte, i el temps assignat a cadascuna d’elles ens deixen la següent
planificació:
1. Anàlisi del problema: Aquesta etapa del projecte té una estimació de temps de dues setmanes. En
aquesta etapa s’analitza el problema i s’estudien les possibles solucions per determinar els passos
a seguir per completar el projecte de manera eficaç.
2. Estudi de les tecnologies: El temps estimat per aquesta etapa és de tres setmanes. Per poder
realitzar la implementació cal un coneixement bàsic de les tecnologies que es faran servir.
Aquestes tecnologies són: OpenERP, PostgreSQL, Python i XML.
3. Implementació: Temps estimat de nou setmanes. En aquesta etapa s’implementa la solució
estudiada en la fase d’anàlisi mitjançant els coneixements adquirits en la fase d’estudi de les
tecnologies. Per poder començar aquesta etapa s’han d’haver completat les etapes una i dues.
4. Test i proves: Aquesta etapa té un temps estimat de tres setmanes. Una vegada acabada la fase
d’implementació, es comença la fase de testig, on es provarà el programari amb dades i casos
reals. Del resultat d’aquestes proves sorgeixen noves millores i correccions d’errors que
s’implementaran en la següent fase.
5. Correccions: Temps aproximant de quatre setmanes. En aquesta fase es corregiran els errors
detectats durant la fase anterior i s’implementaran totes les millores que s’hagin aportat durant el
testeig.
6. Migració de les dades: Aquesta etapa té un temps estimat de tres setmanes. Durant aquesta etapa
es migraran totes les dades del sistema antic al nou sistema OpenERP per tal de deixar a punt per
l’ús la aplicació.
Aplicació de gestió (ERP) de menjadors en centres educatius
30
7. Redacció de la memòria: Temps estimat de 3 setmanes. En aquesta etapa es desenvoluparà la
memòria del PFC juntament amb els manuals necessaris per al seu ús.
Il·lustració 6 – Diagrama de GANTT amb totes les etapes del PFC.
4.2 Anàlisi econòmic.
El cost previst del projecte serà el cost dels recursos humans que siguin necessaris per desenvolupar-los.
Considerem que els costos de maquinari, material d’oficina, llicències de programari, etc són zero perquè
ja disposem d’ells i perquè s’utilitzaran eines informàtiques lliures pel desenvolupament de tot el projecte.
El projecte té el començament els últims dies de l’agost del 2010 i s’estima una data de finalització cap a
la primera setmana de Gener, però tenint en compte que la data d’entrega és del 27 de gener i les vacances
de Nadal, estimem la finalització del projecte pel 24 de gener. Durant aquest temps, es preveu un horari
de treball de 6 hores diàries i 5 dies per setmana.
Sumant les setmanes de cada etapa i tenint en compte el número d’hores treballades per dia, obtenim que
necessitarem 810 hores per finalitzar el projecte.
Els recursos humans per realitzar el projecte es preveuen de la següent manera:
• Analista: És el que s’encarregarà de dur a terme les etapes d’anàlisi del problema i estudi de les
tecnologies. El sou s’estima que és de 30.000 euros bruts l’any.
• Programador: És el que s’encarregarà de les etapes d’implementació de l’aplicació, de les
correccions i d’una part de les proves. El seu sou s’estima a 20.000 euros bruts l’any.
• Tècnic informàtic: És el que s’encarregarà de la part de la migració de les dades i el seu sou
s’estima a 16.000 euros bruts l’any.
• Redactor: S’encarregarà de la redacció de la memòria i els manuals d’usuari. El seu sou
aproximat és de 15.000 euros bruts l’any.
Per calcular el preu hora de cost farem servir la següent fórmula:
Preu hora cost = (sou brut anual*1,35) / (45*40)
On l’1,35 representa l’increment per la seguretat social de l’organització, el 45 són les setmanes
treballades durant l’any i el 40 són les hores treballades per setmana.
Aplicació de gestió (ERP) de menjadors en centres educatius
31
Amb la anterior fórmula obtenim els següents preus per hora de cada recurs humà:
• Analista: 22,5 €/h.
• Programador: 15 €/h.
• Tècnic informàtic: 12 €/h.
• Redactor: 11,25 €/h.
Un cop fet el desglossament en tasques, el càlcul dels costos previstos i les hores invertides obtenim que
el cost del projecte és de 11993€. La següent taula mostra el desglossament d’hores i cost segons el perfil
del recurs humà:
Il·lustració 7 – Previsió inicial dels costos de cada etapa.
Aplicació de gestió (ERP) de menjadors en centres educatius
32
Aplicació de gestió (ERP) de menjadors en centres educatius
33
5. Anàlisi i especificació.
5.1 Anàlisi de requeriments.
Dividirem l’anàlisi de requeriments segons l’objecte que es tracti, d’aquesta manera podrem agrupar els
requeriments en nou grups: participacions, tipus de menús, productes, configuracions de menjador,
alumnes, facturació, descomptes, vacances i els requeriments no funcionals.
Els requeriments de cada grup són els següents:
5.1.1 Requeriments referents a les participacions dels alumnes.
• R.1.1.- Crear nova participació per un alumne.
• R.1.2.- Crear participacions durant un interval de temps només en els dies seleccionats amb el
tipus de menú indicat per als alumnes seleccionats.
• R.1.3.- Modificar participació.
• R.1.4.- Esborrar participació.
• R.1.5.- Marcar una participació com a no consumida.
• R.1.6.- Consultar participacions d’un alumne en concret.
• R.1.7.- Consultar participacions d’avui.
• R.1.8.- Consultar participacions d’un dia en concret.
• R.1.9.- Consultar participacions d’un alumne en concret de tots els dies a partir d’avui.
• R.1.10.- Consultar totes les participacions.
5.1.2 Requeriments referents als tipus de menús.
• R.2.1.- Crear nou tipus de menú.
• R.2.2.- Modificar un tipus de menú.
• R.2.3.- Esborrar un tipus de menú.
• R.2.4.- Consultar els tipus de menús.
5.1.3 Requeriments referents als productes.
• R.3.1.- Crear nou producte de categoria menjador.
• R.3.2.- Modificar un producte de categoria menjador.
• R.3.3.- Esborrar un producte de categoria menjador.
• R.3.4.- Consultar productes de tipus menjador.
Aplicació de gestió (ERP) de menjadors en centres educatius
34
5.1.4 Requeriments referents a configuracions de menjadors.
• R.4.1.- Crear un nou objecte de configuració de menjador.
• R.4.2.- Modificar un objecte de configuració de menjador.
• R.4.3.- Esborrar un objecte de configuració de menjador.
• R.4.4.- Consultar els objectes de configuració de menjador.
• R.4.5.- Canviar el producte per defecte al crear participacions.
• R.4.6.- Canviar el producte de monitoratge per defecte al facturar les participacions.
• R.4.7.- Activar/Desactivar configuració de menjador.
5.1.5 Requeriments referents a alumnes/tutors.
• R.5.1.- Crear un nou alumne/tutor.
• R.5.2.- Modificar un alumne/tutor.
• R.5.3.- Esborrar un alumne/tutor.
• R.5.4.- Consultar els alumnes/tutor.
• R.5.5.- Marcar un contacte com a alumne.
5.1.6 Requeriments referents a la facturació.
• R.6.1.- Crear les factures del alumnes seleccionats.
• R.6.2.- Modificar una factura.
• R.6.3.- Esborrar una factura.
• R.6.4.- Consultar les factures.
• R.6.5.- Crear una única factura de les empreses que tinguin varies factures.
5.1.7 Requeriments referents als descomptes.
• R.7.1.- Crear un nou descompte.
• R.7.2.- Modificar un descompte.
• R.7.3.- Esborrar un descompte.
• R.7.4.- Consultar els descomptes.
• R.7.5.- Activar/Desactivar descomptes.
5.1.8 Requeriments referits a les vacances.
Aplicació de gestió (ERP) de menjadors en centres educatius
35
• R.8.1.- Crear un nou període de vacances.
• R.8.2.- Modificar un període de vacances.
• R.8.3.- Esborrar un període de vacances.
• R.8.4.- Consultar els períodes de vacances.
5.1.9 Requeriments no funcionals.
• El sistema ha de guardar tota la informació en una mateixa base de dades.
• Que el sistema sigui accessible des de diferents usuaris i llocs alhora.
• El sistema ha de ser just el que l’usuari necessita, una eina fàcil intuïtiva, amb les funcions
necessàries per complir els requisits i no més del compte.
5.2 Model conceptual.
El model conceptual del sistema és on podrem veure cada concepte del projecte, quines relacions
existeixen entre els conceptes i quin tipus de relació és.
Abans de mostrar el model conceptual veurem un glossari de conceptes que defineix que és cada un i ens
farà més entenedor el model.
5.2.1 Glossari de conceptes.
• Alumne: És un alumne d’un centre educatiu. Un alumne guarda les seves participacions al
menjador del centre.
• Participació: Representa l’ús del menjador del centre que fa un alumne en un dia en concret.
• Descompte: És la representació de les “participacions periòdiques”. Quan un alumne es queda
habitualment al menjador se li aplica un descompte.
• Organització: És el destinatari de les factures, són els pares dels alumnes o en algun cas, poden
ser empreses que paguen les factures com, per exemple, el Consell Comarcal.
• Menú: És el tipus de menú d’una participació, es fa servir per saber si algun alumne se li ha de
fer un menjar en especial.
• Responsable/tutor: És la persona responsable de l’alumne, solen ser els pares que es representen
com a empreses ja que són els que acaben pagant la factura (menys en el cas del Consell
Comarcal).
• Factura: És un document associat a una organització i a un o més alumnes. És on es guarden els
usos que ha fet l’alumne del menjador en un mes en concret i que es cobraran a l‘organització.
Aplicació de gestió (ERP) de menjadors en centres educatius
36
• Línia de factura: Cadascuna de les línies d’una factura indica quin alumne és el que ha fet ús del
producte indicat, en quina quantitat i el valor que ha de pagar l’organització lligada a la factura de
la línia.
• Vacances: Representa un període on no hi pot haver cap participació, a no ser que aquestes
s’hagin entrat manualment.
• Dia de festa: És cadascun dels dies de dins d’un interval de temps de vacances.
Aplicació de gestió (ERP) de menjadors en centres educatius
37
Il·lustració 8 – Model conceptual
Aplicació de gestió (ERP) de menjadors en centres educatius
38
5.3 Casos d’ús del sistema.
5.3.1 Diagrama de casos d’ús.
En aquest apartat veurem el diagrama de casos d’ús. Per simplificar el diagrama hem usat el terme CRUD
per englobar els quatre casos d’ús bàsics que ofereix cada objecte. CRUD és un acrònim de Crear,
Obtenir, Actualitzar i Esborrar (Create, Retrieve, Update i Delete en anglès).
Il·lustració 9 – Diagrama del model de casos d’ús.
Aplicació de gestió (ERP) de menjadors en centres educatius
39
En el model de casos d’ús podem contemplar totes les interaccions disponibles amb el sistema des de
qualsevol tipus d’usuari. En la il·lustració 9 podem veure el diagrama de casos d’ús segons els conceptes
apareguts en el model conceptual.
Els actors són els usuaris finals de l’aplicació, els que interactuen amb el sistema, i en el nostre cas hem
definit els següents actors:
• Administrador: És l’encarregat d’administrar el nostre sistema, té tots els permisos i accés total a
l’aplicació.
• Professor: És qualsevol professor que imparteix classe en el centre, té accés només a les
participacions per poder apuntar alumnes d’última hora o baixes en el servei de menjador.
• Responsable econòmic/AMPA: És l’encarregat financer de l’A.M.P.A, la seva feina és controlar
que durant el curs tot vagi bé, gestionar els productes, els menús, els descomptes, generar
factures, controlar les participacions, etc.
• Personal de cuina: Són els responsables del funcionament de la cuina del centre, els cuiners, els
cambrers, etc. Tenen accés l’assistent de consultar dia, per poder fer la previsió del servei del dia
i poder controlar el nombre d’alumnes que es queden a dinar i els diferents tipus de menús que
han de preparar.
Com es pot comprovar, la base dels casos d’ús són els CRUD, són els més repetits i els més usats. També
són els que més s’assemblen i és per això que només mostrarem un exemple de CRUD per la seva
semblança.
5.3.2 Casos d’ús.
5.3.2.1 Crear nova participació.
Cas d’ús: Crear nova participació
Actors: Administrador, Professor i Responsable
econòmic/A.M.P.A
Tipus: Primari
Descripció: La finalitat d’aquest cas d’ús és crear una nova
participació per un alumne seleccionat.
Requeriments: R.1.1.- Crear nova participació per alumne.
Curs normal d’esdeveniments:
Aplicació de gestió (ERP) de menjadors en centres educatius
40
Usuari Sistema
1. L’usuari prem el botó “Estudiants”.
2. El sistema mostra la vista arbre de tots els
estudiants.
3. L’usuari selecciona un estudiant de la llista
amb doble clic.
4. El sistema mostra la vista formulari de
l’estudiant seleccionat.
5. L’usuari selecciona la pestanya “Menjador” de
l’estudiant.
6. El sistema mostra la vista de la pestanya
“Menjador” de l’estudiant.
7. L’usuari prem el botó “Crear una nova
entrada”.
8. El sistema mostra el formulari de nova
participació.
9. L’usuari omple el formulari amb les dades
obligatòries: ‘Dia’.
10. L’usuari introdueix si ho creu necessari les
altres dades del formulari: ‘comment’,
‘menuType’ i ‘consumed’.
11. L’usuari prem el botó “Accepta”
12. El sistema posa la participació al camp
participacions de l’estudiant i torna a mostrar el
formulari de nova participació.
13. L’usuari repeteix els passos 9, 10 i 11 fins que
ha acabat d’introduir totes les participacions que
vulgui.
14. Quan ja ha acabat, l’usuari prem el botó
“Cancel·la” del formulari nova participació.
15. El sistema tanca el formulari i mostra
l’estudiant.
16. L’usuari prem el botó “Desa”.
Aplicació de gestió (ERP) de menjadors en centres educatius
41
17. El sistema guarda totes les participacions
introduïdes a la base de dades.
Curs alternatiu dels esdeveniments:
3. Si no existeix cap estudiant, l’usuari n’haurà de crear un.
17. Si el sistema troba que alguna de les participacions introduïdes ja existeix, no la guarda a la base
de dades.
Contractes del sistema:
• seleccionarEstudiant(e:estudiant)
o Precondició:
⇒ No hi ha cap estudiant actiu.
⇒ L’estudiant (e) existeix al sistema.
o Postcondició:
⇒ Hi ha un estudiant (e) actiu al sistema.
• crearParticipació(d:day)
o Precondició:
⇒ Hi ha un estudiant (e) actiu al sistema.
o Postcondició:
⇒ Hi ha un estudiant (e) actiu al sistema.
⇒ Hi ha una nova participació (p) al sistema amb day = d i que està associada a
l’estudiant e.
⇒ Hi ha una participació (p) activa al sistema.
• afegirAltresDades(dades)
o Precondició:
⇒ Hi ha un estudiant (e) actiu al sistema.
⇒ Hi ha una participació (p) activa al sistema.
⇒ Les dades que es volen introduir són vàlides per a la participació p.
o Postcondició:
⇒ Hi ha un estudiant (e) actiu al sistema.
⇒ Hi ha una participació (p) activa al sistema.
⇒ Les dades introduïdes s’han associat a la participació activa p.
• fi_crear_participació()
o Precondició:
⇒ Hi ha un estudiant (e) actiu al sistema.
Aplicació de gestió (ERP) de menjadors en centres educatius
42
⇒ Hi ha una participació (p) activa al sistema.
o Postcondició:
⇒ Hi ha un estudiant (e) actiu al sistema.
⇒ El sistema conté una participació p.
⇒ No hi ha cap participació activa.
Diagrama de seqüència.
Il·lustració 10 – Crear nova participació.
5.3.2.2 Modificar vacances.
Cas d’ús: Modificar vacances.
Actors: Administrador i Responsable econòmic/A.M.P.A
Tipus: Primari
Descripció: Amb aquest cas d’ús el que es vol fer és modificar
un període de vacances ja existent.
Requeriments: R.8.2.- Modificar un període de vacances.
R.8.4.- Consultar un període de vacances.
Curs normal d’esdeveniments:
Aplicació de gestió (ERP) de menjadors en centres educatius
43
Usuari Sistema
1. L’usuari prem el botó “Vacances”.
2. El sistema mostra la vista arbre de tots els
períodes de vacances existents al sistema.
3. L’usuari selecciona un període de vacances de la
llista amb doble clic.
4. El sistema mostra la vista formulari del període
de vacances seleccionat.
5. L’usuari modifica les dades desitjades del
formulari.
6. L’usuari prem el botó “Desa”
7. El sistema modifica les dades noves del període
de vacances introduïdes per l’usuari.
Curs alternatiu dels esdeveniments:
7. El sistema retorna un missatge d’error si l’entrar les dades i prémer el botó “Desa” la data de
finalització és més petita que la data d’inici.
7. El sistema retorna un missatge d’error si al guardar les dades introduïdes troba que se solapen dos
períodes de vacances diferents.
Contractes del sistema:
• seleccionarPeriode(pv:període vacances)
o Precondició
⇒ No hi ha cap període de vacances actiu.
⇒ El període de vacances (pv) existeix al sistema.
o Postcondició
⇒ Hi ha un període de vacances (pv) actiu al sistema.
• modificarPeriode(dades)
o Precondició
⇒ Hi ha un període de vacances (pv) actiu al sistema.
⇒ Les dades que es volen introduir són vàlides per al període de vacances pv.
o Postcondició
Aplicació de gestió (ERP) de menjadors en centres educatius
44
⇒ Hi ha un període de vacances (pv) actiu al sistema.
⇒ Les dades introduïdes s’han associat al període de vacances actiu (pv).
• fi_modificació_Període()
o Precondició
⇒ Hi ha un període de vacances (pv) actiu al sistema.
o Postcondició
⇒ Hi ha un període de vacances (pv) al sistema que alguna de les seves dades ha
estat modificada.
⇒ No hi ha cap període de vacances actiu.
Diagrama de seqüència:
Il·lustració 11 – Modificar vacances.
5.3.2.3 Esborrar configuració de menjador.
Cas d’ús: Modificar Esborrar configuració de menjador.
Actors: Administrador i Responsable econòmic/A.M.P.A
Tipus: Primari
Aplicació de gestió (ERP) de menjadors en centres educatius
45
Descripció: Amb aquest cas d’ús el que es vol fer és eliminar
una configuració de menjador del sistema.
Requeriments: R.4.3.- Esborrar un objecte de configuració de
menjador.
R.4.4.- Consultar un objecte de configuració de
menjador.
Curs normal d’esdeveniments:
Usuari Sistema
1. L’usuari prem el botó “Configuració de
menjador” del menú Configuració.
2. El sistema mostra la vista arbre de tots els
objectes de configuració de menjador del sistema
existents.
3. L’usuari selecciona un objecte de configuració
de menjador de la llista.
4. L’usuari prem el botó “Elimina”.
5. El sistema esborra de la base de dades l’objecte
de configuració de menjador indicat.
Curs alternatiu dels esdeveniments:
5. El sistema retorna un missatge d’error si l’objecte de configuració de menjador que es vol esborrar és
el que està actualment actiu.
Contractes del sistema:
• esborrarConfiguracióMenjador(cm: configuració menjador)
o Precondició
⇒ La configuració menjador cm existeix al sistema.
⇒ La configuració menjador cm té en el booleà “active” un valor de False.
o Postcondició
⇒ No existeix en el sistema la configuració menjador cm.
Aplicació de gestió (ERP) de menjadors en centres educatius
46
Diagrama de seqüència:
Il·lustració 12 – Esborrar configuració menjador.
5.3.2.4 Assistent consultar dies.
Cas d’ús: Assistent consultar dies.
Actors: Administrador, Responsable econòmic/A.M.P.A i
Personal de cuina
Tipus: Primari
Descripció: La finalitat d’aquest cas d’ús és de crear un llistat
de totes les participacions al menjador del centre
del dia seleccionat per l’usuari
Requeriments: R.1.7.- Consultar participacions d’un dia en
concret.
Curs normal d’esdeveniments:
Usuari Sistema
1. L’usuari prem el botó “Consultar dies”
2. El sistema mostra la vista formulari de l’assistent
on ha d’escollir el dia.
3. L’usuari selecciona el dia del que vol consultar
les participacions.
Aplicació de gestió (ERP) de menjadors en centres educatius
47
4. L’usuari prem el botó “Accepta”.
5. El sistema mostra un llistat amb totes les
participacions del dia indicat per l’usuari.
Curs alternatiu dels esdeveniments:
Contractes del sistema:
• consultarParticipacions(d:day)
o Precondició:
⇒ El dia (d) és un dia vàlid pel sistema.
o Postcondició:
⇒ La capa de presentació del sistema ha presentat una vista amb tots els objectes
participació a mostrar.
Diagrama de seqüència:
Il·lustració 13 – Consultar participacions.
5.3.2.5 Assistent crear participacions.
Aplicació de gestió (ERP) de menjadors en centres educatius
48
Cas d’ús: Assistent crear participacions.
Actors: Administrador i Responsable econòmic/A.M.P.A
Tipus: Primari
Descripció: La finalitat d’aquest cas d’ús és de crear
automàticament participacions de varis alumnes
alhora i durant un període de temps.
Requeriments: R.1.2.- Crear participacions durant un interval de
temps només en els dies seleccionats amb el tipus
de menú indicat per als alumnes seleccionats.
Curs normal d’esdeveniments:
Usuari Sistema
1. L’usuari prem el botó “Estudiants”.
2. El sistema mostra la vista arbre de tots els
estudiants.
3. L’usuari selecciona tots els estudiants els quals
vol crear participacions.
4. L’usuari prem el botó “Afegeix part. periòdica”
del menú accions.
5. El sistema mostra la vista formulari de l’assistent
per crear participacions.
6. L’usuari introdueix la data d’inici i la data de fi
del període.
7. L’usuari introdueix altres dades que no són
obligatòries si ho vol.
8. L’usuari prem el botó “Accepta”
9. El sistema crea, per a cada alumne seleccionat,
una participació per cada dia seleccionat de dins
del període de temps que ha indicat l’usuari, amb
les dades associades.
Aplicació de gestió (ERP) de menjadors en centres educatius
49
Curs alternatiu dels esdeveniments:
5. Per defecte, el formulari mostrat té activat els següents booleans: dilluns, dimarts, dimecres, dijous,
divendres i consumit.
8. El sistema mostra un missatge d’error si la data d’inici és més gran que la data actual.
8. El sistema mostra un missatge d’error si la data d’inici és més gran que la data final.
9. Si el sistema troba que alguna de les participacions introduïdes ja existeix, o que coincideix amb algun
dia de festa, no la guarda a la base de dades.
Contractes del sistema:
• assistentParticipacions(le:llista estudiants)
o Precondició
⇒ No hi ha cap estudiant actiu.
⇒ No hi ha cap participació activa.
o Postcondició
⇒ Hi han estudiants actius (le).
⇒ No hi ha cap participació activa.
• afegirDades(di:data inici, df:data final, dades)
o Precondició
⇒ Hi han estudiants actius.
⇒ No hi ha cap participació activa.
⇒ Les dades que es volen introduir són vàlides.
o Postcondició
⇒ Hi han estudiants actius.
⇒ No hi ha cap participació activa.
⇒ Hi han unes dades en memòria que s’associaran a les participacions que es
crearan pels alumnes seleccionats (le).
• crearParticipacions(d:day)
o Precondició
⇒ Hi han estudiants actius.
⇒ No hi ha participació activa.
o Postcondició
⇒ Hi han estudiants actius.
Aplicació de gestió (ERP) de menjadors en centres educatius
50
⇒ Hi ha una participació activa amb un dia d que és troba dins de l’interval
data_inici (di) i data fi (df) i que està lligada a un estudiant de la llista le.
• fi_crear_participació()
o Precondició
⇒ Hi han estudiants actius.
⇒ Hi ha una participació activa.
o Postcondició
⇒ Hi han estudiants actius.
⇒ Hi ha una nova participació al sistema lligada a un estudiant de la llista l.
• fi_assistent_participacions()
o Precondició
⇒ Hi han estudiants actius.
⇒ No hi ha cap participació activa.
o Postcondició
⇒ No hi han estudiants actius.
⇒ Existeixen al sistema noves participacions per a tots els alumnes de la llista le,
que estan dins dels intervals data inici (di) i data fi (df).
Diagrama de seqüència:
En el diagrama de seqüència d’aquest cas d’ús trobem dos bucles seguits, el primer és el que tractarà
l’estudiant i el segon el de les participacions, per tant, per cada alumne que anem recorrent s’aniran creant
les participacions que estan lligades a l’estudiant.
Aplicació de gestió (ERP) de menjadors en centres educatius
51
Il·lustració 14 – Assistent crear participacions.
5.3.2.6 Assistent agrupar.
Cas d’ús: Assistent agrupar factures
Actors: Administrador, Responsable econòmic/A.M.P.A.
Tipus: Primari
Descripció: La finalitat d’aquest cas d’ús és agrupar totes les
factures d’una mateixa organització/Responsable
Alumne en una de sola.
Requeriments: R.6.4.- Consultar les factures.
R.6.5.- Crear una única factura de les empreses que
tinguin varies factures.
Curs normal d’esdeveniments:
Usuari Sistema
1. L’usuari prem el botó “Factures” del menú de
comptabilitat i finances.
Aplicació de gestió (ERP) de menjadors en centres educatius
52
2. El sistema mostra la vista arbre de totes les
factures existents al sistema.
3. L’usuari selecciona les factures que vulgui
agrupar.
4. L’usuari prem el botó “Agrupa factures” del
menú d’accions.
5. El sistema mostra un missatge de verificació
preguntant si l’usuari està segur del que vol fer.
6. L’usuari prem el botó “Accepta”.
7. El sistema agrupa per empreses les factures i en
crea una de sola
8. El sistema mostra una vista llista amb les
factures resultants.
Curs alternatiu dels esdeveniments:
7. Si no hi ha cap organització que tingui més d’una factura, el resultat seran les mateixes factures
inicials.
7. Si hi ha algun alumne dels seleccionats que no té cap pare associat, el sistema retorna un error
demanant que se li assigni una organització a aquell alumne.
Contractes del sistema:
• assistentAgruparFactures(lf: llista de factures)
o Precondició:
⇒ No hi han factures actives al sistema.
⇒ lf és un conjunt de factures existents al sistema.
o Postcondició:
⇒ La llista de factures lf s’ha substituït per una altre llista més curta on una
organització només surt en una factura.
Aplicació de gestió (ERP) de menjadors en centres educatius
53
Diagrama de seqüència:
Il·lustració 15 – Assistent agrupar factures.
Aplicació de gestió (ERP) de menjadors en centres educatius
54
Aplicació de gestió (ERP) de menjadors en centres educatius
55
6. Disseny.
La carpeta addons del servidor d’openERP conté més de 120 mòduls oficials per gestionar una
organització. A aquests 120 mòduls se li han de sumar 350 mòduls extra més que aporten més
funcionalitats als 120 oficials.
Hi han mòduls que es poden aprofitar completament per satisfer una necessitat concreta. També ens
podem trobar un mòdul que ens aporta una solució parcial a la necessitat, per poder aprofitar-lo cal
adaptar-lo segons les necessitats. I finalment, sinó trobem cap mòdul per resoldre la nostra necessitat,
haurem de crear un mòdul nou nosaltres mateixos.
Depenent de la necessitat a satisfer haurem d’optar per una de les tres vies possibles.
Necessitat Quina solució trobem en els mòduls existents? Solució
Necessitat
Total Aprofitem el mòdul
Parcial Adaptem el mòdul mitjançant l’herència
Cap Creem un mòdul nou
6.1 Aprofitament de mòduls per al nostre problema.
Durant la fase d’estudi de les tecnologies s’han mirat els mòduls disponibles d’OpenERP per mirar de
trobar els mòduls que puguin satisfer les nostres necessitats. Dels requisits extrets en l’anàlisi i l’estudi
del problema, i de l’estudi dels mòduls, arribem a les següents conclusions sobre els mòduls existents:
• Mòdul base: Aquest mòdul s’instal·la sempre per defecte en qualsevol insta