Bienvenido a los foros %s

Foro comunidad hispana Dolibarr

Identificarse Registrarse

Desglose Base Imponible en factura

Cuestiones sobre cómo utilizar Dolibarr, ayudas sobre las funcionalidades o cualquier cuestión que no está relacionada con un error.
Bonhd
Novato
Mensajes: 31
Registrado: Jue, 23/07/2015, 09:44

Desglose Base Imponible en factura

Mensaje por Bonhd »

Hola a todos.
Estoy intentando que me aparezcan las distintas bases imponibles en una factura (Dolibarr ya desglosa los distintos IVAs).
Siguiendo un código que apuntó Cisaweb (muchisimas gracias por cierto) en el post:
viewtopic.php?f=40&t=873&p=10269&hilit=base+imponible#p10269
y haciendole unos cambios he conseguido que me dé las bases imponibles (pondré el código más abajo) pero me sale con descuadres de céntimos porque no he sido capaz de averiguar el cálculo de cada línea y que sume cada línea correspondiente a cada tipo de IVA.
Así que he hecho una chapuza.
He visto que "$tvaval" es el valor resultante de cada IVA.
Y he visto que "$tvakey" es el valor de IVA.
Así que le he echado valor y he dividido uno entre otro y multiplicado por 100 ( $tvaval / $tvakey*100) y ha sonado la flauta (pero no del todo bien).
Como $tvaval y $tvakey vienen configurados con dos decimales, la depreciación del redondeo hace que al final haya errores de céntimos.

A ver si alguien puede echarme una "manita".
Gracias.




Aquí tenéis el código que pertenece al archivo pdf_crabe.modules.php
Éste trocito de código está despues de " // Total HT " a partir de la línea 1033

// Total HT
/*
* $pdf->SetFillColor(255,255,255);
$pdf->SetXY($col1x, $tab2_top + 0);
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("TotalHT"), 0, 'L', 1);

$total_ht = ($conf->multicurrency->enabled && $object->mylticurrency_tx != 1 ? $object->multicurrency_total_ht : $object->total_ht);
$pdf->SetXY($col2x, $tab2_top + 0);
$pdf->MultiCell($largcol2, $tab2_hl, price($sign * ($total_ht + (! empty($object->remise)?$object->remise:0)), 0, $outputlangs), 0, 'R', 1);
*/

// Experimento Bases imponibles desglosadas
foreach($this->tva as $tvakey => $tvaval)
{
if ($tvakey != 0) // On affiche pas taux 0
{
$this->atleastoneratenotnull++;

$index++;
$pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);

$tvacompl='';
if (preg_match('/\*/',$tvakey))
{
$tvakey=str_replace('*','',$tvakey);
$tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")";
}
$totalvat =$outputlangs->transnoentities("TotalHT").' ';
$totalvat.=vatrate($tvakey,1).$tvacompl;
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $totalvat, 0, 'L', 1);

$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
$pdf->MultiCell($largcol2, $tab2_hl, price($sign * ($tvaval/$tvakey*100 + (! empty($object->remise)?$object->remise:0)), 0, $outputlangs), 0, 'R', 1);
}
}