EspañolEnglish (United Kingdom)

"Web Joomla a medida para tu empresa..."

rss facebook twitter delicious digg youtube vimeo linkedin
14
Dic
2009
Subtotal en Virtuemart PDF Imprimir E-mail
Escrito por kim1   

Trabajando para un cliente al que he desarrollado un template y algunas modificaciones para Virtuemart me he encontrado con el problema de que este magnífico programa para Joomla! nos muestra (en caso de haber escogido que los detalles del producto muestren los precios con iva) el subtotal de la factura como si se tratase del total, vamos no tiene demasiado sentido que nos muestre el subtotal más los impuestos igual al total siendo el subtotal ya la suma de este y los impuestos.

No podemos aplicar sobre las variables que arrojan estos datos reglas aritmeticas ya que sus valores incorporan el símbolo de la moneda y no son numeros sino cadenas de texto.

La solución es limpiar esas cadenas de carácteres no numéricos para realizar la sustracción de subtotal - impuestos. Antes de que empiece el código en sí escribiremos en components/com_virtuemart/themes/default/templates/basket/basket_b2c.html.php:

$subtotal = str_replace('€', '', $subtotal_display);
$tax = str_replace('$euro;', '', $tax_display);

Cambiamostodo el bucle foreach para mostrar los precios sin el porcentaje de IVA:

<?php foreach( $product_rows as $product ) { ?>
 <tr valign="top">
 <td><?php echo $product['product_name'] . $product['product_attributes'] ?></td>
 <td><?php echo $product['product_sku'] ?></td>
 <?php
 $price         = str_replace('&euro;', '', $product['product_price']);
 $percent    = 16;
 $discount_value = ($price / 100) * $percent;
 $final_price = $price - $discount_value;
 ?>
 <td align="right"><?php echo number_format($final_price, 2); ?></td>
 <td><?php echo $product['update_form'] ?>
 <?php echo $product['delete_form'] ?>
 </td>
 <td align="right"><?php echo number_format($final_price, 2); ?></td>
 </tr>
<?php } ?>

Y en unas lineas mas abajo aplicamos el total restandole los impuestos:

<td colspan="3" align="right"><?php echo "&euro; " . ($subtotal - $tax) ?></td>

Para ser consecuentes deberemos aplicar estos cambios tambien en components/com_virtuemart/themes/default/templates/order_emails/confirmation_email.tpl.php de forma que el mail de confirmación muestre los mismos resultados.


blog comments powered by Disqus