Calcular dos veces el IVA diferentes al realizar una compra php

Como se puede al realizar una compra, calcular un IVA para un extranjero y otro para los españoles, tengo en mi web un registro de usuarios, y he creado unas tablas donde marca el país de cada usuario, lo tengo todo montado a la perfección, me calcula el IVA, siempre del 18 %, y quiero que los que compre de fuera no les cobren IVA, es muy sencillo, supongo que habrá que crear una variable, que contenga dos datos, pero la duda como hago que se relacionen el país con el IVA.

1 respuesta

Respuesta
1

Primero que todo tendrías que crear la variable $iva dentro de un if y la variable $país (no se si uses lista desplegable)

if ($país=="españa") {

$iva=0.18; // o 18% como tu quieras

} else { $iva=0; }

No se si sea eso lo que necesites, después vendría el calculo que haces normalmente.

buenas, si que utilizo lista, por lo tanto, si en vez de españa, pongo el numero del valor del país de la base de datos, valdría?

después, tengo creado dos tablas una de usuarios y otra de país, ya que el país lo tengo como lista, y los subo yo todos los países desde la base de datos, así se hace menos pesado, la cosa seria si poniendo el país pero de la tabla país, se combina con la de usuarios n?

Es que soy estudiante de php, y voy haciendo poco a poco, saludos!

Claro que si, para eso se utilizan las relaciones, también puedes usar el código del país ej: 001, los nombres solo eran de ejemplo, si me dejas ver las tablas de usuarios y país te podría ayudar un poco mas con el codigo

el código de la tabla usuario es este:

Estructura de tabla para la tabla `tblusuarios`
--
CREATE TABLE IF NOT EXISTS `tblusuarios` (
`idUsuario` int(11) NOT NULL AUTO_INCREMENT,
`strNombre` varchar(50) DEFAULT NULL,
`strApellidos` varchar(50) DEFAULT NULL,
`strFecha` varchar(20) DEFAULT NULL,
`strPais` varchar(50) DEFAULT NULL,
`strCiudad` varchar(50) DEFAULT NULL,
`strPostal` varchar(20) DEFAULT NULL,
`strDireccion` varchar(100) DEFAULT NULL,
`strId` varchar(50) DEFAULT NULL,
`intPlataforma` int(11) DEFAULT NULL,
`intActivo` int(11) DEFAULT NULL,
`strEmail` varchar(100) DEFAULT NULL,
`strPassword` varchar(50) DEFAULT NULL,
`fchData` datetime DEFAULT NULL,
`strImagen` varchar(50) DEFAULT NULL,
PRIMARY KEY (`idUsuario`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=36 ;

por eso mi duda es relacionar el iva con el país según el usuario, muchas gracias y saludos!

Primero tendrías que sacar el país de la persona que se loggea, lo mas seguro es que estés tomando el id (me corriges si no es así) y voy a suponer que lo guardas en una variable que se llama $id para tener siempre en cuenta la persona que acaba de ingresar, entonces esa parte seria mas o menos así:

$sql="select strPais from tblusuarios wher idUsuario='".$id."' limit 1; //el limit sobra pero por si acaso

$consulta=mysql_query($sql, $tuvariabledeconexion);

$rse=mysql_fetch_array($consulta));
$rse["idpaciente"]

y seguiría la validación del iva:

if ($rse["strPais"]=="España") { // o como lo quieras poner, si me das un ejemplo de como llenas este campo mejor

$iva=18%;

} else { $iva=0; }

ahora viene el calculo que vayas a hacer con el iva

$operación=($valor*$iva)+$valor // o como sea la operación

Por favor cuéntame que dudas tienes, o si no fui muy claro para ayudarte mejor y enviame los datos para hacerlo mas fácil, me avisas cualquier cosa

esta es la página donde quiero que se muestra el IVA, donde pone Impuestos, la duda es, de todo el código que me has puesto, exactamente como lo pongo? lo e entendido perfectamente y solo es donde colocarlo, por eso te e puesto la pagina, saludos!

<?phpinclude_once 'common.php';?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html lang="<?php echo($lang); ?>" xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo($lang); ?>"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title><?php echo PAGE_TITLE_GALERIA; ?></title><meta name="description" content="<?php echo PAGE_DESCRIPTION_GALERIA; ?>" /><meta name="keywords" content="<?php echo PAGE_KEYWORDS_GALERIA ?>" /><meta name="robots" content="index, follow, noarchive" /><link rel="stylesheet" type="text/css" href="css/style.css" /><link rel="shortcut icon" href="favicon.ico" /><script src="js/jquery-1.4.2.min.js" type="text/javascript"></script><script type="text/javascript" src="js/simpleCart.js"></script><script type="text/javascript">simpleCart.email = "[email protected]";simpleCart.checkoutTo = PayPal;// simpleCart.merchantId = "118575326044237";// simpleCart.checkoutTo = GoogleCheckout;// simpleCart.currency = USD;// simpleCart.currency = GBP;simpleCart.currency = EUR;// simpleCart.taxRate = 0.18;// simpleCart.shippingFlatRate = 5.25;simpleCart.shippingQuantityRate = 20.00;/* CartItem.prototype.shipping = function(){if( this.size ){switch( this.size.toLowerCase() ){case 'small':return this.quantity * 10.00;case 'medium':return this.quantity * 12.00;case 'large':return this.quantity * 15.00;case 'bull':return 45.00;default:return this.quantity * 5.00;}}};*/simpleCart.cartHeaders = ["Thumb_image_noHeader" ,"Name_noHeader", "decrement_noHeader", "increment_noHeader", "Quantity_noHeader", "Total_noHeader", "remove_noHeader"];</script></head><body class="blau"><div id="header"><div id="logo"><a href="index.php" title="<?php echo PAGE_TITLE_HOME; ?>"><img src="imageflow/pedro-molina_<?php echo($lang); ?>.png" alt="<?php echo PAGE_TITLE_HOME; ?>" border="0" /></a></div><div id="lang"><a href="index.php" class="transition"><?php echo INICIO; ?></a></div></div><div id="text_principal"><?php echo PAGE_TEXT_PRINCIPAL_GALERIA; ?></div><?php$id=($_GET['id']);$f=($_GET['f']);$n=($_GET['n']);$m=($_GET['m']);$p=($_GET['p']);$e=($_GET['e']);?><div id="imatges"><table id="giclee" border="0"><tr><td width="50%" align="center" valign="middle"><img id="quadre" src="quadres/<?php echo "$f"; ?>/galería/<?php echo "$n"; ?>.jpg" border="0" /></td><td width="50%" id="dades">NÚMERO DE REFERENCIA: aquí cantidad total//</span></td></tr></table></div></div></body></html>

es decir, que hay se muestre si es español, ponga el 18 por ciento, si no es español que no ponga nada, luego el total esta mas abajo, ahora mismo lo tengo sin impuestos, a si que aparece que impuestos 0, y el total solo suma la cantidad del producto, si fuera español ponga 18 por ciento y se sume la cantidad mas abajo, muchas gracias!

Por cierto tienes web o algo, lo digo porque te podría poner como colaborador, y así la gente te conoce ;)

perdona se ve muy mal organizado el código, si quieres te paso la foto, o el archivo, saludos!

Tus variables están algo inconclusas, seria bueno que me enviaras el pantallazo de la pagina que va antes que esta y de esta también (código), porque si esta bastante desordenado

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas