27/03/2008, 10:56
|
| | Fecha de Ingreso: enero-2005 Ubicación: Barcelona (España)
Mensajes: 134
Antigüedad: 20 años Puntos: 0 | |
Re: Usar método de una superclase A ver, con la pregunta que he hecho no resuelvo mis dudas. Para preguntar también hay que saber...
Os cuento mi problema a ver si alguien me puedo ayudar:
Estoy haciendo una práctica, de una administración de una pizzeria en la que guardamos información de las pizzas y de sus ingredientes, de esta manera:
Pizza 4 Estaciones:
1- Tomate: 50 gr
2- Cebolla: 20 gr
3- Salchichas: 20 gr
Pizza Margarita:
1- Tomate: 50 gr
2- Mozzarella: 35 gr
etc
El número que hay en los ingredientes es el orden de los mismos, que es importante, y debe ser ese y no otro. en la administración podemos modificar ese orden.
Tengo 3 clases / tablas: Pizza, Ingrediente y Composicion (que es la tabla de relacion Pizza / Ingrediente y que tiene el atributo Orden)
En el formulario donde añado un ingrediente a una pizza no puedo decir cual es el orden del ingrediente. El método composicion->save() busca el siguiente numero de orden libre y lo añade automaticamente. Si añadieramos un ingrediente a la primera pizza, le asignaría el orden 4. Hasta aquí todo ok.
¿Qué pasa si elimino un ingrediente de una pizza? Si tengo 1, 2 ,3 y 4 ingredientes y elimino digamos el 2, la lista de ingredientes debería reordenarse (1, 2 y 3). Vale, tengo un método pizza->reordenarIngredientes() que hace esta función. El problema viene cuando guardo la pizza con sus ingredientes. Llega un momento que se invoca al método composicion->save() y como he explicado en el párrafo anterior, lo que hace es buscar el primer orden libre, no empieza desde el 1. Por ejemplo, si tengo la pizza:
Pizza 4 Estaciones:
1- Tomate: 50 gr
2- Cebolla: 20 gr
3- Salchichas: 20 gr
Y borro el ingrediente de orden 2 obtengo esto:
Pizza 4 Estaciones:
4- Tomate: 50 gr
5- Salchichas: 20 gr
A ver si alguien me puede echar un cable. Perdonad por el rollo que os he pegao |