1 00:00:00,150 --> 00:00:05,460 Bien, ahora vamos a calcular el total de la línea o importe que sería el precio del producto por la 2 00:00:05,460 --> 00:00:06,000 cantidad. 3 00:00:06,330 --> 00:00:07,290 Entonces nos vamos. 4 00:00:07,380 --> 00:00:09,420 Y en factura bajamos. 5 00:00:09,600 --> 00:00:16,710 Y un método public bar donar un float porque el tipo de dato del precio el producto es del tipo flotante. 6 00:00:16,780 --> 00:00:18,480 Entonces float calcular importe. 7 00:00:21,880 --> 00:00:24,240 Bien, vamos a retornar entonces la cantidad. 8 00:00:26,930 --> 00:00:33,530 Multiplicado por el precio, el producto punto jet precio. 9 00:00:35,990 --> 00:00:40,100 Así que está perfecto la cantidad del tipo entero, pero el precio del producto del tipo flop. 10 00:00:40,250 --> 00:00:41,840 Así que retornamos un flop. 11 00:00:42,320 --> 00:00:42,890 Sé que está bien. 12 00:00:43,020 --> 00:00:44,540 Hoy calculamos el total de la línea. 13 00:00:44,630 --> 00:00:47,510 La cantidad del producto que se ha comprar por el precio. 14 00:00:47,690 --> 00:00:47,960 Bien. 15 00:00:48,080 --> 00:00:50,270 Lo siguiente calcular el total de la factura. 16 00:00:50,390 --> 00:00:54,220 Entonces la idea de iterar en el arreglo de ítem factura por cada ítem. 17 00:00:54,650 --> 00:00:57,200 Ir sumando cada importe. 18 00:00:57,410 --> 00:00:58,280 Y eso sería todo. 19 00:00:59,120 --> 00:01:01,070 No vamos a factura por acá. 20 00:01:01,070 --> 00:01:08,790 Al final public también mi motivo auto float calcular total. 21 00:01:11,480 --> 00:01:16,430 Pero lo primero es tener una variable local del método del tipo float total. 22 00:01:16,880 --> 00:01:25,010 La inicializamos en cero 0,0 F porque en el tipo flotante bien usamos un for para recorrer. 23 00:01:25,100 --> 00:01:27,770 Puede ser un for común y corriente o un foreach. 24 00:01:28,710 --> 00:01:30,950 Yo voy a usar un for each item factura. 25 00:01:32,660 --> 00:01:36,860 Item 2 punto el origen de nuestro arreglo. 26 00:01:37,030 --> 00:01:37,670 10. 27 00:01:37,780 --> 00:01:39,440 Punto items. 28 00:01:42,740 --> 00:01:45,460 Total, vamos sumando más igual. 29 00:01:46,520 --> 00:01:49,340 Ítem por cada uno calcular, importe. 30 00:01:53,330 --> 00:01:58,010 Retornamos al total, pero hay un detalle que hay que tener cuidado, porque en factura colocamos que 31 00:01:58,010 --> 00:02:01,380 puede tener un máximo de dos elementos la cantidad de ítems. 32 00:02:01,580 --> 00:02:07,690 Pero puede que se hayan comprado tres producto y van a ver nueve elementos del arreglo que están null 33 00:02:07,790 --> 00:02:08,450 vacíos. 34 00:02:08,640 --> 00:02:11,870 Y la idea es sumar solamente los elementos que sean instancias. 35 00:02:11,990 --> 00:02:14,750 Es decir, que tengan algún item, alguna compra. 36 00:02:15,170 --> 00:02:19,490 Entonces, por eso tenemos que validar que sea distinto en uno o si no van a hacer un error porque es 37 00:02:19,600 --> 00:02:20,000 null. 38 00:02:20,210 --> 00:02:23,570 Al tratar de invocar este método va a lanzar un null pointer. 39 00:02:24,170 --> 00:02:25,520 Bueno, y tenemos dos forma. 40 00:02:25,610 --> 00:02:30,240 Primero, validar que la instancia item sea instancia de item factura. 41 00:02:30,410 --> 00:02:34,370 Entonces al ser instancia ya no es null, o bien validar que sea igual a NULL. 42 00:02:34,640 --> 00:02:40,070 Entonces, si se cumple esta condición, hacemos un continue, es decir, continuamos en la siguiente 43 00:02:40,070 --> 00:02:42,200 iteración y evitamos la suma. 44 00:02:42,410 --> 00:02:43,630 Entonces acá univ. 45 00:02:44,240 --> 00:02:52,200 Recuerden si ítem es igual a null continui y listo. 46 00:02:52,250 --> 00:02:55,100 Continuamos con el siguiente elemento y no sumamos. 47 00:02:55,350 --> 00:02:58,670 Entonces evitamos esta invocación de método en el nulo. 48 00:02:58,820 --> 00:03:00,830 Evitamos el error en un grupo interceptor. 49 00:03:01,130 --> 00:03:05,540 Bien, esto acá sería equivalente a lo voy a cortar porque es mejor dejarlo así, pero igual. 50 00:03:05,810 --> 00:03:08,450 Otra alternativa es colocar si es distinto. 51 00:03:08,600 --> 00:03:15,170 Paréntesis item instance instanceof de item factura. 52 00:03:16,160 --> 00:03:20,480 Entonces si item no es instancia, audite en factura, entonces continuamos. 53 00:03:20,630 --> 00:03:21,950 Es porque significa que nulo. 54 00:03:22,370 --> 00:03:25,010 Incluso acá mismo nos dice que es redundante. 55 00:03:25,160 --> 00:03:29,420 Es mejor y más simple chequear si el null si el nulo se fijan. 56 00:03:30,400 --> 00:03:33,450 Y acá puedo reemplazar con un null check. 57 00:03:33,740 --> 00:03:35,720 Y llegamos a lo mismo que teníamos antes. 58 00:03:35,930 --> 00:03:38,430 Item es igual a null continue. 59 00:03:38,730 --> 00:03:45,830 El líder no va siempre yendo con mejores práctica, con buenas prácticas y así tener un código más legible 60 00:03:45,890 --> 00:03:51,290 y más simple no va recomendando bien qué otro método podemos tener en factura por acá. 61 00:03:51,620 --> 00:03:52,520 Generad detalla 62 00:03:55,280 --> 00:03:56,560 va a retornar un string. 63 00:04:00,230 --> 00:04:05,930 Bien, como acá tenemos que concatenar bastante, es mucho mejor y optimizado recomendado utilizar un 64 00:04:05,930 --> 00:04:08,120 Stream Builder en vez de concatenar con el más. 65 00:04:08,180 --> 00:04:10,460 Por qué vamos a usar un for por cada item? 66 00:04:10,640 --> 00:04:15,020 Vamos a concatenar los datos de cada compra, de cada detalle. 67 00:04:15,110 --> 00:04:15,680 Se fijan? 68 00:04:15,770 --> 00:04:31,870 Entonces es mejor String Builder se ve igual New String Builder y comenzamos factura número dos punto 69 00:04:32,030 --> 00:04:32,840 un espacio. 70 00:04:33,230 --> 00:04:37,610 Bueno, podríamos concatenar un cierto con el folio, por ejemplo folio se fijan. 71 00:04:38,570 --> 00:04:40,640 Pero no, en realidad estamos usando String Builder. 72 00:04:40,910 --> 00:04:45,160 Entonces, en vez de hacer esto con el más, usemos solamente el Extrem Builder. 73 00:04:45,470 --> 00:04:47,180 No es necesario tener que concatenar. 74 00:04:47,280 --> 00:04:51,560 Entonces ese punto append y acá colocamos folio. 75 00:04:52,100 --> 00:04:56,150 Entonces vamos agregando, anexando los datos de la factura. 76 00:04:56,270 --> 00:04:57,300 El detalla bien. 77 00:04:57,320 --> 00:04:58,700 También podríamos colocar punto y coma. 78 00:04:58,790 --> 00:05:04,430 No acepto ese punto happen para seguir concatenado, por ejemplo con el cliente. 79 00:05:04,610 --> 00:05:12,800 Mostrar el nombre cliente 2 punto espacio se fijan, pero tampoco porque mejor es mucho mejor. 80 00:05:13,890 --> 00:05:16,620 Invocar el método happen de forma encadenada. 81 00:05:16,710 --> 00:05:19,110 Por lo tanto, quito el punto y coma de acá. 82 00:05:19,440 --> 00:05:20,910 Quito el S.V. 83 00:05:21,810 --> 00:05:28,140 Se fijan porque el método happen, cada llamada ratón nadis retorna la misma instancia del String Builder. 84 00:05:28,260 --> 00:05:34,740 Acá lo vemos entonces como retorna el mismo objeto, simplemente con el punto happen concatenados, 85 00:05:34,740 --> 00:05:36,870 punto happen y así vamos agregando. 86 00:05:37,230 --> 00:05:38,550 Te dejan entonces acá? 87 00:05:38,940 --> 00:05:39,530 Perfecto. 88 00:05:39,790 --> 00:05:42,300 Ahora la idea es que salte una línea. 89 00:05:42,510 --> 00:05:48,900 Podríamos usar el caracter n se fijan para bajar o saltar una línea LEDE que muestre factura número 90 00:05:48,900 --> 00:05:56,610 tanto salto línea o nueva línea cliente igual se pegan y como el happen retorna la misma instancia, 91 00:05:56,640 --> 00:05:57,840 simplemente bajamos. 92 00:05:58,050 --> 00:06:00,600 Punto happen y volvemos a concatenar. 93 00:06:00,690 --> 00:06:10,980 En este caso cliente disputo cliente punto get nombre ya si se fijan. 94 00:06:11,580 --> 00:06:12,750 Esto lo podemos dejar acanto. 95 00:06:13,050 --> 00:06:16,170 Y así bajamos y concatenados incluso la misma línea. 96 00:06:16,200 --> 00:06:20,800 Podríamos colocar el RUT o NIF happen. 97 00:06:21,720 --> 00:06:27,780 Entonces en vez de bajar una línea con el N simplemente un tabulador para que realice una tabulación, 98 00:06:27,840 --> 00:06:39,570 un espacio grande NIF dos espacio bajamos punto happen cliente punto get NIF. 99 00:06:39,960 --> 00:06:46,050 Después pues la descripción por ejemplo punto happen y acá bajamos. 100 00:06:46,890 --> 00:06:47,670 Nueva línea. 101 00:06:49,260 --> 00:06:51,390 Descripción un espacio. 102 00:06:52,410 --> 00:06:56,520 Punto happen, punto descripción. 103 00:06:58,190 --> 00:07:01,550 Punto happen yusa to Linnea. 104 00:07:02,510 --> 00:07:03,000 Una anual. 105 00:07:03,350 --> 00:07:09,200 Bien, ya tenemos el número factura, el detalle cliente con el nombre, con el NIF, la descripción 106 00:07:09,200 --> 00:07:11,780 de la factura, con una nueva línea y saltar una línea. 107 00:07:11,830 --> 00:07:17,420 Entonces lo siguiente Mostrar por ejemplo cada línea, cada detalle de la factura nombre, producto, 108 00:07:17,420 --> 00:07:23,090 por ejemplo, que se está comprando la cantidad, el precio, el importe, el total de cada línea y 109 00:07:23,150 --> 00:07:24,800 abajo al final el gran total. 110 00:07:24,920 --> 00:07:31,010 Y también podría mostrar la columna, por ejemplo, que diga el nombre o el Heidy del producto nombre 111 00:07:31,010 --> 00:07:32,600 producto, la cantidad total. 112 00:07:32,750 --> 00:07:34,220 Incluso lo podríamos hacer ahora. 113 00:07:34,430 --> 00:07:41,660 Por ejemplo, acá bajamos una línea punto append y acá vamos a tener un string primero un nuevo salto 114 00:07:41,660 --> 00:07:44,090 línea N para que haya una separación. 115 00:07:44,180 --> 00:07:50,720 Voy a colocar gato para indicar que es el identificador o el Heidy talamos un espacio, el nombre, 116 00:07:52,100 --> 00:07:54,560 nombre, otro espacio, tabulación. 117 00:07:54,710 --> 00:08:03,400 El precio lo podríamos abreviar con símbolo, peso, otra tabulación, la cantidad por ejemplo cantidad, 118 00:08:03,410 --> 00:08:07,250 punto para que no sea tan grande el nombre del campo o de la columna. 119 00:08:07,520 --> 00:08:13,700 Otra tabulación total y al final un salto línea, una nueva línea de Bejan. 120 00:08:13,790 --> 00:08:16,160 Entonces con todo esto en un solo string. 121 00:08:16,440 --> 00:08:22,160 Yo ahora sé que si la próxima clase continuamos con las líneas, pero antes porque acá marca error, 122 00:08:22,340 --> 00:08:24,690 vamos a dejar el rotor del string. 123 00:08:24,950 --> 00:08:33,080 Entonces retrón, ese punto tu string puntico está molesto por ahora también recuerden que si queremos 124 00:08:33,080 --> 00:08:37,960 ordenar el código lo podemos hacer en código acá reforma código. 125 00:08:38,090 --> 00:08:39,590 Entonces ordena esto acá. 126 00:08:39,650 --> 00:08:41,180 Continuamos en la siguiente clase.