Projecte: BOM - Llista de Materials

De Wikijoan
Dreceres ràpides: navegació, cerca

Contingut

Introducció

Una fàbrica de cotxes com la SEAT no fabrica totes les peces, sinó que més aviat ensambla les peces que compra als seus proveïdors. La llista de materials que necessites per fabricar un cotxe (o qualsevol producte) es diu BOM (Bill of Materials).

En una fàbrica com la SEAT és molt important la logística de la cadena de proveïment per tal de no quedar-se sense stock de qualsevol dels productes necessaris per fer el vehicle. A més, el preu del producte final té molt a veure amb la suma dels preus dels materials que es fan servir per construir-lo. El departament de compres és el que s'encarrega de negociar amb els proveïdors els preus i els terminis d'entrega, de manera que la cadena de producció no es quedi sense subministrament.

En aquesta pràctica hauràs de pensar en una empresa on venguis uns productes, i per realitzar aquests productes necessites un proveïment de materials. Per exemple:

  1. fàbrica de cotxes. Cada model de cotxe consta de peces.
  2. agència de viatges: Cada viatge consta d'excursions, hotels,...
  3. restaurant de pizzes: cada pizza consta d'ingredients.
  4. Venda d'ordinadors: cada ordinador és el resultat d'ensamblar diferents components.
  5. ...

Desenvolupament. Projecte BOM (Bill of Materials)

1. La base de dades BOM consta de les següents taules, que donaran suport al problema que plantegem:

PRODUCTE (id_producte, producte, preu)
MATERIAL (id_material, material, preu)
BOM(id_bom, id_producte, id_material, quantitat)

Has d'introduir a la base de dades els materials base (matèries primeres). Per exemple, en el cas d'un restaurant de pizzes, els materials a utilitzar per fer les pizzes són els ingredients:

INSERT INTO MATERIAL VALUES (1,'ceba',0.23);
INSERT INTO MATERIAL VALUES (2,'pebrot',0.35);
INSERT INTO MATERIAL VALUES (3,'enciam',0.34);
INSERT INTO MATERIAL VALUES (4,'tomàquet',0.54);
INSERT INTO MATERIAL VALUES (5,'pebre',0.30);
INSERT INTO MATERIAL VALUES (6,'oives verdes',1.24);
INSERT INTO MATERIAL VALUES (7,'olives negres',1.35);
INSERT INTO MATERIAL VALUES (8,'tonyina',2.05);
INSERT INTO MATERIAL VALUES (9,'formatge cabra',3.23);
INSERT INTO MATERIAL VALUES (10,'formatge emmental',1.32);
INSERT INTO MATERIAL VALUES (11,'cansalada',0.44);
INSERT INTO MATERIAL VALUES (12,'ou dur',0.86);

NOTA: l'alumne no pot utilitzar l'exemple de les pizzes i els ingredients. Aquest és l'exemple del professor. Si no teniu idees, consolteu al professor.

2. En la pagina producte.php, crea el següent formulari:

Material: Com a mínim un producte consta d'un material, i cada material consta de tres camps: material, quantitat i preu.

Per anar afegint materials, farem servir el signe + tal com féiem en l'exemple dels contactes i mails que ja vam veure.

3. El formulari ha de tenir una funcionalitat i experiència d'usuari correcte. El valor del preu total s'ha d'actualitzar correctament; En el camp quantitat només hi podem ficar un número; etc.

4. Omplim la base de dades. Fem inserts en les taules PRODUCTE I BOM.

5. En la pàgina informe.php, tens una llista desplegable de tots els productes que hi ha a la base de dades (lectura de la taula PRODUCTE). Quan seleccionis un producte, hauràs de fer un informe (taula HTML) de tots els materials de què consta el productes (material, quantita, preu), i el preu final del producte.

Base de dades

/*
CREATE DATABASE BOM DEFAULT CHARACTER SET utf8;
MATERIAL (id_material (PK), material, preu)
PRODUCTE (id_producte (PK), producte, preu)
BOM(id_bom(PK), id_producte(FK), id_material(FK), quantitat)

*/

DROP TABLE BOM;
DROP TABLE PRODUCTE;
DROP TABLE MATERIAL;

CREATE TABLE MATERIAL (
id_material smallint primary key,
material varchar(20) not null,
preu decimal(5,2) not null
);

CREATE TABLE PRODUCTE (
id_producte smallint primary key,
producte varchar(20) not null,
preu decimal(5,2) not null
);

CREATE TABLE BOM (
id_bom smallint primary key,
id_producte smallint REFERENCES PRODUCTE,
id_material smallint REFERENCES MATERIAL,
quantitat smallint
);

INSERT INTO MATERIAL VALUES (1,'ceba',0.23);
INSERT INTO MATERIAL VALUES (2,'pebrot',0.35);
INSERT INTO MATERIAL VALUES (3,'enciam',0.34);
INSERT INTO MATERIAL VALUES (4,'tomàquet',0.54);
INSERT INTO MATERIAL VALUES (5,'pebre',0.30);
INSERT INTO MATERIAL VALUES (6,'oives verdes',1.24);
INSERT INTO MATERIAL VALUES (7,'olives negres',1.35);
INSERT INTO MATERIAL VALUES (8,'tonyina',2.05);
INSERT INTO MATERIAL VALUES (9,'formatge cabra',3.23);
INSERT INTO MATERIAL VALUES (10,'formatge emmental',1.32);
INSERT INTO MATERIAL VALUES (11,'cansalada',0.44);
INSERT INTO MATERIAL VALUES (12,'ou dur',0.86);

Entrega

Entrega el projecte al Classroom dins del termini previst. Abans de fer l'entrega ensenya el projecte al professor.

Solucions parcials

versió 1 a 5

Fitxer:BOM.zip


creat per Joan Quintana Compte, gener 2018

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