Hola de nuevo chicos!
La verdad es que me trae trabajo esta funcion que quiero hacer.
Es verdad que el codigo que me plantea
abimaelrc me devuelve lo que yo quiero PERO haciendo una nueva consulta a la bd, y no es mi prioridad lanzar consultas a saco a mi bd, ya que tendría que hacer lo mismo para los descuentos, totales, etc... es por ese motivo que como ya tengo un recordset donde saco los valores anteriores, quiero sacar también los del IVA.
He conseguido un codigo que casi me funciona, pero necesito que me aconsejeis como hasta ahora estais haciendo de maravilla.
Lo que estoy intentando con este codigo es crear una factura. Una factura puede tener asociados mas de un albarán y un albarán mas de un detalle.
Hasta aqui he conseguido hacer el bucle gracias también a otro post que puse y me ayudó
abimaelrc de nuevo.
Los calculos que tengo que hacer siempre son dentro de los detalles del albarán, es decir, que el total de los descuentos es la suma de cada uno de los descuentos de cada uno de los detalles, y así con los demás. Pero el iva es el más complicado porque cada detalle puede tener varios IVAs aplicados a su detalle, es por eso que necesito crear algo que me contenga el tipo de IVA y sus totales.
Supongamos que ya estamos dentro del bucle que me recorre cada uno de los detalles de cada albarán que tiene la factura.
Este es el codigo que tengo:
Código PHP:
if ($contador==0){
$arrayIVA[0][0]=$resultDND->fields['percent_iva'];
$arrayIVA[0][1]=$resultDND->fields['amount_iva'];
}else{
for ($i=0;$i<count($arrayIVA);$i++){
for($j=0;$j<count($arrayIVA[$i]&&$chivato);$j++){
if ($arrayIVA[$i][0] == $resultDND->fields['percent_iva']){
// Tenemos que insertar un nuevo valor
$arrayIVA[$i][] = $resultDND->fields['amount_iva'];
$chivato = true;
}
}
}
// si llegamos aqui y no lo hemos encontrado tenemos que insertar el nuevo tipo de iva y su cantidad en el array
if (!$chivato){
// Insertamos un nuevo
$arrayIVA[][0] = $resultDND->fields['percent_iva'];
$arrayIVA[][1] = $resultDND->fields['amount_iva'];
}
}
$contador++;
$chivato=false;
Los valores que tengo para esa factura son:
Albarán 2
__Detalle 1
____Precio = 70
____Cantidad = 1
____%Dto = 0
____dto = 0
____%IVA = 16
____IVA = 11
____Total = 81
Albarán 7
__Detalle 1
____Precio = 10000
____-Cantidad = 5
____%Dto = 0
____dto = 0
____%IVA = 16
____IVA = 8000
____Total = 58000
__Detalle 2
____Precio = 10000
____Cantidad = 5
____%Dto = 0
____dto = 0
____%IVA = 7
____IVA = 3500
____Total = 53500
__Detalle 3
____Precio = 70
____Cantidad = 1
____%Dto = 0
____dto = 0
____%IVA = 16
____IVA = 11
____Total = 81
__Detalle 4
____Precio = 200
____Cantidad = 1
____%Dto = 0
____dto = 0
____%IVA = 4
____IVA = 11
____Total = 208
El resultado que obtengo con mi código es el siguiente
Código:
Array
__[0][0] = 16
__[0][1] = 8000
__[0][2] = 11
__[0][3] = 11
Array
__[1][0] = 7
Array
__[2][0] =
Array
__[3][0] = 4
Array
__[4][0] =
No entiendo porqué en la posición [2][0] y [4][0] están vacías y porqué no está la [1][1] con su respectivo valor (3500 del detalle 2 del albarán 7) al igual que el [3][1] que su valor tendría que ser 11.
Perdón por el rollo, necesito deshaogarme con el codigo este.
Gracias de nuevo!