Saltar navegación

Activa JavaScript para disfrutar de los vídeos de la Mediateca.

Clase 15-01-24 - 5 - Contenido educativo

Ajuste de pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 16 de enero de 2024 por Raquel G.

6 visualizaciones

Descargar la transcripción

A ver, esto sería, vamos a ver, tendríamos que fijar bien, efectivamente, 00:00:00
cuáles son las situaciones. Si descripción es clave primaria, habría solo uno, 00:00:06
que se llamara así. Entonces, haríamos un nuevo array de ítems, que es lo que 00:00:11
imagino que te hablas planteado, con una posición menos, ¿verdad? 00:00:16
ítems pedido. 00:00:21
¿Qué hago yo? 00:00:24
New item, con ítems pedido, punto, blend. 00:00:26
Claro, entonces ahora, ¿qué tenemos que hacer? Copiar uno en otro, pero saltándonos 00:00:42
el que no queremos copiar. Entonces, ahora recorreríamos este de aquí. 00:00:47
ítems pedido, punto, blend. Incrementando y. 00:01:07
Vale, entonces ahora, si ítems pedido, punto, getDescripción, resulta que es 00:01:14
distinta, resulta que es distinta de la que tengo que eliminar, que es distinta 00:01:26
de Descripción, es distinta de Descripción. Pues entonces, esa sí tienes que copiarla. 00:01:41
Tienes que copiarla, ¿dónde? Donde toque dentro de Auxiliar. 00:01:47
Entonces, Auxiliar, tendría un índice IJ, también que empieza en cero. 00:01:52
Pero no se le incrementa siempre, se le incrementa solo cuando ha habido copia. 00:02:00
IJ++ igual a ítems pedido de I. Y ahora ya, efectivamente, ítems pedido se queda 00:02:05
sustituido por el nuevo. Entonces, te haces uno con una posición menos. 00:02:19
Vale, pero estamos partiendo de la base, efectivamente, que todo eso habría que 00:02:29
acordarlo con el resto de programadores que están trabajando con esto, que la 00:02:33
descripción es única y que solo va a haber uno. Por eso estoy disminuyéndole el uno, solo. 00:02:37
Entonces, vas copiando en este, solo aquellos cuya descripción no sea igual a esta. 00:02:43
Entonces, te saltas las que es igual, te saltas. Y ahora ya, una vez que tienes el 00:02:53
Aux, que es el bueno, este que sustituya a este de aquí. 00:02:57
Sería una forma de plantearlo, pero todo esto son decisiones de diseño, de acuerdos 00:03:04
de desarrolladores, que cuando eliminamos un ítem lo que queremos es que la raíz 00:03:08
siga igual, pero que en esa posición haya nul. Pues se hace eso. 00:03:12
Lo que pasa es que luego el resto de métodos que se hagan, pues claro, tienen que 00:03:16
tener eso en cuenta. Se le importa es entender un poco las posibilidades que hay 00:03:19
y lo que hacemos, lo que estamos haciendo. Vale, bueno, pues entonces, ¿con qué 00:03:28
estábamos? Con que si tenemos una propiedad FIBA que puede cambiar, tiene sentido ya 00:03:35
añadir aquí una funcionalidad para fijar el IVA, para fijarlo. 00:03:42
Bueno, pues nada, vamos a poner aquí un método. Tiene sentido, ¿verdad? 00:03:50
Donde le pasamos un nuevo IVA y ya está, ahí venga. 00:03:55
Y esta propiedad estática de aquí, igual a esta que le hemos pasado. 00:04:08
Pues nada, ya está y aquí voy. Bueno, entonces con esto simplemente para fijar 00:04:23
esa propiedad y cuando le demos un valor, ese valor es que se queda compartido 00:04:33
para todos, ¿vale? Entonces podríamos hacer un método también que fuera 00:04:38
devolver precio con IVA, que sería este mismo, pero sumándole el porcentaje 00:04:49
del IVA. Vamos a hacerlo para que nos quede una aplicación más completa. 00:04:54
Pues venga, devolver precio total con IVA. Venga, vamos a devolver precio total 00:05:02
con IVA. Pues será esta misma suma, pero a la que le sumamos el IVA, 00:05:12
que será suma por IVA entre 100, ¿no? Suma por IVA entre 100 es el IVA 00:05:18
y se lo sumo al precio final. De nuevo, este paréntesis no me hace falta 00:05:33
porque las multiplicaciones y divisiones tienen prioridad respecto a las sumas. 00:05:52
Bueno, si queda más claro el código. Vale, ya tenemos algunos métodos en pedido 00:05:56
para hacer cosas. Vamos a hacer un main para verlo un poquito más claro 00:06:02
antes de seguir con más cosas. Vamos a hacer un main para verlo un poco 00:06:12
más claro y ya está. Pues venga, nuestra aplicación main, esta ya es la aplicación 00:06:17
de gestión, la aplicación de gestión. Pues como es una aplicación ya de gestión 00:06:21
que va a usar ya nuestro cliente, con este ya nos juntaríamos y le diríamos 00:06:25
a ver, ¿cómo quieres comunicarte con la aplicación? Interfaz gráfica, 00:06:29
consola. Pues la opción de interfaz gráfica nos la daríamos porque no sabemos 00:06:33
hacer interfaz gráfica. Así que le daremos la opción. Pues con una consola, 00:06:38
un menú de consola. ¿Qué opciones quieres hacer? Pues crear pedido, añadir ítem, 00:06:43
eliminar ítem, todo eso quieres hacer. Pues venga, vamos a hacerla desde cero 00:06:48
haciendo un menú. Entonces como vamos a hacer un menú, pues va a hacer falta 00:06:52
un escáner. Y esta ya es nuestro main. Este ya es nuestro main. La aplicación 00:06:57
principal con su vista, etc. Pues nada, lo de siempre. Aquí pondríamos 00:07:11
las funcionalidades. Venga, pues una funcionalidad natural que seguramente 00:07:18
van a pedir es crear pedido. Pues ala, venga. Crear pedido. Ala. Otra 00:07:23
funcionalidad, vamos a hacerlo de tal forma que añadir un ítem a un pedido. 00:07:38
Pues venga, añadir un ítem. Otra funcionalidad, devolver el precio de un 00:07:42
pedido. Mostrar el precio de un pedido. Vamos a hacer otra que sea mostrar 00:07:55
precio de un pedido con IVA. Vamos a poner, ya que tenemos el método eliminar 00:08:06
ítem, vamos a ponerle eliminar ítem también. Añadir ítem a pedido. Ahora 00:08:21
cambio los numeritos para que quede eliminar ítem. Con lo cual este quedaría 00:08:33
4 y 5. Vale, para comprobar que las cosas vayan bien, vamos a añadir una opción 00:08:43
que sea mostrar todos los ítems de un pedido. Y así vamos viendo si el añadir, 00:08:48
eliminar, etcétera, está bien hecho. Vamos a añadir una sexta funcionalidad 00:08:53
que sea mostrar elementos de un pedido. Pues esta aplicación ya solo con la clase 00:09:00
pedido, ni siquiera le hemos metido los clientes todavía para añadir pedidos 00:09:13
a clientes, etcétera. Solamente con esa clase pedido y con lo poco que tiene, 00:09:16
ya es una aplicación que puede manejar muchas cosas. Añade ítems, crea pedidos, 00:09:21
muestra lo que cuestan, ya puede hacer muchas cosas a través de una consola de 00:09:26
opciones. Tengo una interfaz gráfica, pero da igual. Vale, ya puede hacer un montón 00:09:31
de cosas de gestión. Cuando le añadamos los clientes podrá hacer muchísimas 00:09:36
más. Vamos a ponerle un salir y ahora vamos a completar la estructura del menú 00:09:41
leyendo la opción. Y ahora ya mi suite. En el caso de que la opción sea la 1, 00:09:52
pues bla, bla, bla. Y así con todas. 00:10:14
La 1, la 2, la 3, la 4, la 5, la 6, la 7, la 8, la 9, la 10, la 11, la 12, la 13, la 00:10:20
14, la 15, la 16, la 17, la 18, la 19, la 20, la 21, la 22, la 23, la 24, la 25, la 26, la 27, la 28, 00:10:49
nos falta cerrar el while, que se cierra aquí, mientras la opción sea diferente de la de salir, que es la 7. 00:11:27
Ahora ya tengo la estructura de mi aplicación, y ya esto en realidad es una aplicación que hace cosas, 00:11:37
que ya le puede servir a alguien para llevar el control de los pedidos, 00:11:43
solamente con esta clase y esos métodos, ya le puede servir a alguien para llevar el control de los pedidos. 00:11:49
¿Qué ocurre? Que cuando la aplicación se cierre, todos los pedidos que haya desaparecen, porque estaban en RAM, 00:11:56
claro, pero es que para eso vendría la otra parte, que es ver cómo hacer para guardarlos en más ruedas, 00:12:03
pero eso ya es el futuro. 00:12:10
Venga, vámonos a la primera opción, crear pedido. 00:12:14
Vamos a hacer la opción para que crea uno el pedido, con código y descripción, 00:12:18
pero sin ítems, luego los ítems se irán añadiendo según le vayamos dando la opción 2. 00:12:24
Pues entonces, aquí en esta opción 1 habría que, los pedidos que se caracterizan por código y descripción, 00:12:32
porque el IVA no es una propiedad de cada pedido, el IVA es una propiedad general, 00:12:44
que por cierto deberíamos incluirla como opción, fijar el IVA, que no lo he puesto. 00:12:49
Deberíamos incluir una opción que es fijar el IVA que uno quiere. 00:12:53
La de salir se me queda en la 8, con lo cual me falta aquí un caso 7. 00:13:04
Bueno, pues entonces, vamos a hacer la 1, vamos a crear un pedido, 00:13:23
para crear un pedido vamos a pedir solamente el código y la descripción de ese pedido. 00:13:28
El IVA se fijará con la opción fijar IVA, porque esa va por libre, 00:13:34
esa no es de un pedido en concreto que yo estoy creando, 00:13:40
esa es un IVA común para todos, que ya hay una opción en el menú, fijar IVA, ya lo fijaré ahí. 00:13:43
Y los ítems pedido hemos dicho que ya los iremos dando con las sucesivas opciones 2. 00:13:48
Vamos a crear solamente el pedido con los dos valores, entonces habría que decirle aquí, 00:13:56
introduzca código, introduzca descripción, introduzca código, que era entero ¿verdad? 00:14:02
Luego introduzca descripción, como la descripción es un string y esto es un número, 00:14:16
vamos ya a ahorrarnos problemitas poniendo esto, porque después de un número leer un string ya sabemos que nos da problemas. 00:14:30
¿Qué código era un string? ¿Me estás diciendo? Ah, vale, vale, vale. 00:14:41
Código efectivamente era un string, entonces esto es un string, con lo cual esto es un next line y este sobra. 00:14:46
Introduzca código, ahora introduzca descripción, introduzca descripción, string, pues descripción por ejemplo. 00:14:58
Y ahora con estos dos valores ya podemos crear un objeto pedido, ahora veremos a quien se lo asignamos, 00:15:24
porque tenemos un constructor que recibe dos parámetros ¿verdad? 00:15:30
Tenemos un constructor pedido que recibe código y descripción que está aquí y crea un objeto pedido, 00:15:37
con los ítems por ahora vacíos, con los ítems por ahora en un array así, un array que no tiene nada todavía, existe pero de cero posiciones. 00:15:46
Vale, pues ya está, pero la pregunta es ¿oye y este pedido a quien se lo asignamos? ¿verdad? 00:15:57
Aquí vendría la pregunta, ¿quién recibe esto? Un objeto pedido, está claro, un objeto pedido recibe esto, ¿pero quién? 00:16:09
¿Qué pongo aquí? P1, P2, P7, entonces ¿qué pasa? Cada vez que yo doy al menú y creo un pedido nuevo, voy a sobreescribir el anterior, 00:16:18
porque fijaos si yo pongo esto, se supone que esta es una aplicación para ir generando diferentes pedidos, 00:16:28
diferentes ¿no? Entonces, cada vez que yo llame a la opción 1, crea un pedido nuevo, pero con el sobreescribo el que tenía antes, 00:16:35
mal asunto ¿no? Yo lo que quiero es generar pedidos distintos cada vez uno, no pisar cada vez que me vea crear pedido, 00:16:45
pisar el anterior, no quiero eso, quiero diferentes pedidos, es decir, mi aplicación va a trabajar con muchos pedidos 00:16:54
y cada vez que creo uno nuevo, será uno más de ese muchos, ¿verdad? Uno más de ese muchos. 00:17:04
Luego vamos a lo de siempre, si yo quiero guardar muchos pedidos, muchos de algo, pues tendría que poner una colección, 00:17:09
un array, lo que sea, claro, pues eso es lo primero que tengo que pensar, oye, ¿dónde van a ir los pedidos que yo creo? 00:17:20
¿Dónde van a ir? Ah, vale, vale, es que necesitas un array aquí para guardar tus pedidos, ojo, entonces para simplificar las cosas 00:17:28
vamos a decidir, voy a hacer un array de 100 y voy a asumir que la aplicación no va a tener nunca más de 100, 00:17:40
y así no me complico con lo de ir ampliando el array, irlo no ampliando, venga, pues vamos a hacer un array aquí de 100, 00:17:46
por ejemplo, que tampoco ocupa tanto, y en este array voy a ir metiendo los diferentes pedidos según yo le vaya de la opción 1, 00:17:54
cada vez que yo le dé a la opción 1, cada vez que yo le dé a la opción 1, se creará un pedido, pero que se guardará en la posición del array que toque, 00:18:04
en la que toque, ¿cuál toca? Bueno, pues voy a dejar una variable ahí para que cumpla esa función, la inicializo a cero, esta variable inicializa a cero, 00:18:15
y cuando me da la opción 1, guardo el pedido en la que toca, que es la cero, y la dejo incrementada, esto no es pésimo pedidos, claro, 00:18:31
la dejo incrementada para que la siguiente vez que alguien dé a la opción 1, se guarda en la siguiente, y así, estructura habitual, típica, 00:18:44
en mi menú, creo un pedido cada vez, y ese pedido va guardándose en posiciones consecutivas, que ejecuto el menú y doy a la opción 1 7 veces, 00:18:53
pues 7 pedidos dentro de mi array, los 93 restantes no tienen nada, que doy a la opción 1 uno más, pues el siguiente pedido irá a 8, y así, 00:19:03
lo que está claro es que mi aplicación tiene que tener un sitio para guardarlos todos, pues venga, un array, aquí lo tenemos, 00:19:15
vale, entendido esto que hemos hecho aquí, vale, pues la opción 1 ya estaría, ya está, la opción 1 ya está, es crear un pedido y que vaya a la posición del array que toca, 00:19:24
vale, vamos a ver la opción 2, vamos a añadir ahora ya un ítem a un pedido concreto, que me diga, vamos a añadir la opción 2, vale, 00:19:40
entonces para la opción 2, que datos tengo que pedir, tengo que pedir, de cada ítem, su descripción, su cantidad y su precio unitario, eso está claro, 00:19:56
pero es que además tendré que decir de todos los pedidos que tienes, que descripción, cuál es al que le quieres añadir ese ítem, 00:20:07
pero tienes muchos en un array, necesitas esos datos, los datos del ítem, el código que en nuestro caso es descripción porque no tenemos un código, 00:20:15
en el ítem no, ah no, perdona, perdona, estamos buscando el pedido, el código, efectivamente, el código, entonces tienes que pedir, 00:20:27
código del pedido que vas a añadir el ítem y luego ya los datos del ítem, esos serán los 4 datos que hagan falta, esos son los 4 datos que hay que pedir, 00:20:34
vale, entonces pues venga, aquí vamos a pedirlos, copiando aquí, vale, introduzca código del pedido al que vamos a añadir el ítem, 00:20:43
pues venga, como esta variable code ya está declarada, la reutilizo, yo la quito ahí, y ahora ya los datos del ítem, ya tengo el código del pedido, 00:20:59
los datos del ítem son descripción, cantidad y precio unitario, pues venga, introduzca descripción del ítem, lo guardamos aquí en esta variable, 00:21:07
introduzca cantidad del ítem, pues venga, en una variable, entera, cantidad, es que un ítem tiene las 3, o sea, un ítem va, todo el objeto ítem tiene descripción, 00:21:18
cuántos quieres y cuánto cuesta cada uno, toda esa información va asociada a un objeto ítem, toda esa, o sea, no es añadir una unidad a uno concreto, 00:21:41
que se podría hacer también, pero entonces habría que hacer un método que sumara uno a esto, pero ahora es otra cosa, es añadir un ítem entero, añadir bolis, 00:21:51
7 bolis que cuestan 4 cada uno, todo de golpe, añadir un ítem a un pedido, entonces hay que pedir las 3 cositas, el código del pedido está acá, 00:21:59
descripción del ítem, cantidad del ítem que es un entero, luego así, y ahora nos falta el precio unitario del ítem, pues con toda esta información, 00:22:09
ahora ya, tendríamos que recorrer el array, y cuando encontremos el pedido, cuyo código es ese, le añadimos el ítem este, y se acabó, ya está, pues venga, vamos a recorrer el array, 00:22:30
desde i igual a 0, mientras i sea menor que, no toda la longitud del array, no toda, los 100, ahí no pongo punto len, porque si no serían los 100, 00:22:44
ahí pongo solo los que tengo rellenos, que lo tengo en la variable, en esta, en pos, pos es la que he ido incrementando cada vez que agrego un pedido nuevo, 00:23:01
cada vez que agrego un pedido nuevo, pos, se va quedando con la cantidad de pedidos que tengo, entonces esto irá así, pues ahora ya, si pedidos de i, punto get descripción, 00:23:10
get código, es igual que el código del pedido al que le tengo que añadir el ítem, es igual que, pues ya estoy, entonces es pedidos de i al que le tengo que añadir el ítem, 00:23:27
pues entonces ya hago, pedidos de i, punto add ítem, y era un objeto ítem con valores anteriores, para eso tengo el constructor, un nuevo ítem al que le paso los tres valores, 00:23:49
descripción, cantidad y precio unidad, y me falta importar ítem, ya está, este sería el código del caso dos, este, 00:24:02
leo el código del pedido que me va a servir ahora para buscarlo aquí por código en el array, y ahora leo los datos del ítem que me van a servir para crear el objeto ítem, 00:24:29
con el constructor, y ahora recorro el array solamente hasta las posiciones que tiene pedido relleno, solo hasta esas, que están en pos, solo hasta esas, 00:24:40
y ahora cuando encuentro el pedido cuyo código es ese, cuando lo encuentro, le añado a través del método añadir ítem, le añado el ítem construido a partir de los valores que acabo de leer, 00:24:52
con el método, y ya está, precio unidad, que es el significado de la propiedad, aquí claro hay que revisar los next line, next scene, porque los he ido poniendo a capón, 00:25:06
y cada vez que leemos un número, y así, entonces vamos a parar aquí, 00:25:22
para que me dé tiempo a subir los proyectos y las grabaciones, y en este rato ir continuando el resto de opciones del menú, 00:25:51
llamando a los métodos a ver como las, pues cada opción del menú como la haría, será pidiendo lo que haya que pedir por el scan, y luego llamar a los métodos que toquen, 00:25:58
Si, tengo ahora mismo dos, tengo el de entidades y el main, por eso tengo aquí en los imports, de ítem y pedido, porque main está en otro paquete. 00:26:08
Subido por:
Raquel G.
Licencia:
Todos los derechos reservados
Visualizaciones:
6
Fecha:
16 de enero de 2024 - 12:50
Visibilidad:
Público
Centro:
IES ROSA CHACEL
Relación de aspecto:
1.78:1
Resolución:
1280x720 píxeles
Tamaño:
503.57 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid