Bien, ahora vamos a calcular el total de la línea o importe que sería el precio del producto por la
cantidad.
Entonces nos vamos.
Y en factura bajamos.
Y un método public bar donar un float porque el tipo de dato del precio el producto es del tipo flotante.
Entonces float calcular importe.
Bien, vamos a retornar entonces la cantidad.
Multiplicado por el precio, el producto punto jet precio.
Así que está perfecto la cantidad del tipo entero, pero el precio del producto del tipo flop.
Así que retornamos un flop.
Sé que está bien.
Hoy calculamos el total de la línea.
La cantidad del producto que se ha comprar por el precio.
Bien.
Lo siguiente calcular el total de la factura.
Entonces la idea de iterar en el arreglo de ítem factura por cada ítem.
Ir sumando cada importe.
Y eso sería todo.
No vamos a factura por acá.
Al final public también mi motivo auto float calcular total.
Pero lo primero es tener una variable local del método del tipo float total.
La inicializamos en cero 0,0 F porque en el tipo flotante bien usamos un for para recorrer.
Puede ser un for común y corriente o un foreach.
Yo voy a usar un for each item factura.
Item 2 punto el origen de nuestro arreglo.
10.
Punto items.
Total, vamos sumando más igual.
Ítem por cada uno calcular, importe.
Retornamos al total, pero hay un detalle que hay que tener cuidado, porque en factura colocamos que
puede tener un máximo de dos elementos la cantidad de ítems.
Pero puede que se hayan comprado tres producto y van a ver nueve elementos del arreglo que están null
vacíos.
Y la idea es sumar solamente los elementos que sean instancias.
Es decir, que tengan algún item, alguna compra.
Entonces, por eso tenemos que validar que sea distinto en uno o si no van a hacer un error porque es
null.
Al tratar de invocar este método va a lanzar un null pointer.
Bueno, y tenemos dos forma.
Primero, validar que la instancia item sea instancia de item factura.
Entonces al ser instancia ya no es null, o bien validar que sea igual a NULL.
Entonces, si se cumple esta condición, hacemos un continue, es decir, continuamos en la siguiente
iteración y evitamos la suma.
Entonces acá univ.
Recuerden si ítem es igual a null continui y listo.
Continuamos con el siguiente elemento y no sumamos.
Entonces evitamos esta invocación de método en el nulo.
Evitamos el error en un grupo interceptor.
Bien, esto acá sería equivalente a lo voy a cortar porque es mejor dejarlo así, pero igual.
Otra alternativa es colocar si es distinto.
Paréntesis item instance instanceof de item factura.
Entonces si item no es instancia, audite en factura, entonces continuamos.
Es porque significa que nulo.
Incluso acá mismo nos dice que es redundante.
Es mejor y más simple chequear si el null si el nulo se fijan.
Y acá puedo reemplazar con un null check.
Y llegamos a lo mismo que teníamos antes.
Item es igual a null continue.
El líder no va siempre yendo con mejores práctica, con buenas prácticas y así tener un código más legible
y más simple no va recomendando bien qué otro método podemos tener en factura por acá.
Generad detalla
va a retornar un string.
Bien, como acá tenemos que concatenar bastante, es mucho mejor y optimizado recomendado utilizar un
Stream Builder en vez de concatenar con el más.
Por qué vamos a usar un for por cada item?
Vamos a concatenar los datos de cada compra, de cada detalle.
Se fijan?
Entonces es mejor String Builder se ve igual New String Builder y comenzamos factura número dos punto
un espacio.
Bueno, podríamos concatenar un cierto con el folio, por ejemplo folio se fijan.
Pero no, en realidad estamos usando String Builder.
Entonces, en vez de hacer esto con el más, usemos solamente el Extrem Builder.
No es necesario tener que concatenar.
Entonces ese punto append y acá colocamos folio.
Entonces vamos agregando, anexando los datos de la factura.
El detalla bien.
También podríamos colocar punto y coma.
No acepto ese punto happen para seguir concatenado, por ejemplo con el cliente.
Mostrar el nombre cliente 2 punto espacio se fijan, pero tampoco porque mejor es mucho mejor.
Invocar el método happen de forma encadenada.
Por lo tanto, quito el punto y coma de acá.
Quito el S.V.
Se fijan porque el método happen, cada llamada ratón nadis retorna la misma instancia del String Builder.
Acá lo vemos entonces como retorna el mismo objeto, simplemente con el punto happen concatenados,
punto happen y así vamos agregando.
Te dejan entonces acá?
Perfecto.
Ahora la idea es que salte una línea.
Podríamos usar el caracter n se fijan para bajar o saltar una línea LEDE que muestre factura número
tanto salto línea o nueva línea cliente igual se pegan y como el happen retorna la misma instancia,
simplemente bajamos.
Punto happen y volvemos a concatenar.
En este caso cliente disputo cliente punto get nombre ya si se fijan.
Esto lo podemos dejar acanto.
Y así bajamos y concatenados incluso la misma línea.
Podríamos colocar el RUT o NIF happen.
Entonces en vez de bajar una línea con el N simplemente un tabulador para que realice una tabulación,
un espacio grande NIF dos espacio bajamos punto happen cliente punto get NIF.
Después pues la descripción por ejemplo punto happen y acá bajamos.
Nueva línea.
Descripción un espacio.
Punto happen, punto descripción.
Punto happen yusa to Linnea.
Una anual.
Bien, ya tenemos el número factura, el detalle cliente con el nombre, con el NIF, la descripción
de la factura, con una nueva línea y saltar una línea.
Entonces lo siguiente Mostrar por ejemplo cada línea, cada detalle de la factura nombre, producto,
por ejemplo, que se está comprando la cantidad, el precio, el importe, el total de cada línea y
abajo al final el gran total.
Y también podría mostrar la columna, por ejemplo, que diga el nombre o el Heidy del producto nombre
producto, la cantidad total.
Incluso lo podríamos hacer ahora.
Por ejemplo, acá bajamos una línea punto append y acá vamos a tener un string primero un nuevo salto
línea N para que haya una separación.
Voy a colocar gato para indicar que es el identificador o el Heidy talamos un espacio, el nombre,
nombre, otro espacio, tabulación.
El precio lo podríamos abreviar con símbolo, peso, otra tabulación, la cantidad por ejemplo cantidad,
punto para que no sea tan grande el nombre del campo o de la columna.
Otra tabulación total y al final un salto línea, una nueva línea de Bejan.
Entonces con todo esto en un solo string.
Yo ahora sé que si la próxima clase continuamos con las líneas, pero antes porque acá marca error,
vamos a dejar el rotor del string.
Entonces retrón, ese punto tu string puntico está molesto por ahora también recuerden que si queremos
ordenar el código lo podemos hacer en código acá reforma código.
Entonces ordena esto acá.
Continuamos en la siguiente clase.