Comunidad PHPeros
Lenguajes => PHP => Mensaje iniciado por: Rastrillox en 08 de Diciembre de 2012, 05:40:38 am
-
Buenas a todos,
Hoy he venido aquí para intentar de solucionar un pequeño problema, duda o enredo como uds quieran decirle.
Bueno estoy intentando hacer una pequeña aplicación donde una persona pueda comprar sus libros o programas, es una pequeña practica que estoy haciedo. todo va bien hasta ese punto, le he sumado el % de IVA. Okey, quize aplicarle un pequeño descuento dependiendo la cantidad de libros que compres..
aquí viene el problema, no tengo la minima idea de como restarle el % de descuento.
//Obtenemos los datos del formulario.
$actionqty = $_POST['actionqty'];
$photoqty = $_POST['photoqty'];
$netbeanqty = $_POST['netbeanqty'];
$find = $_POST['find'];
//Comprobamos si no hay campos vacios.
if(empty($actionqty) && empty($photoqty) && empty($netbeanqty)){
echo '¡No puedes dejar todos los campos en blanco!';
}
else{
//Precio de los articulos.
define('ACTIONPRICE', 100);
define('PHOTOPRICE', 250);
define('NETPRICE',32);
//Cantida y monto.
$totalqty = $actionqty + $photoqty + $netbeanqty;
$totalamount = $actionqty * ACTIONPRICE + $photoqty * PHOTOPRICE + $netbeanqty * NETPRICE;
//Aplicamos el descuenti sí pasan de "X" cantidad.
if($actionqty<10){
$decuento = 0;
}
elseif($actionqty>=10 && $actionqty<=30){
$descuento = 10;
}
elseif($actionqty>=35 && $actionqty<=60){
$descuento = 15;
}
//Photoshop descuentos.
if($photoqty<5){
$decuento = 0;
}
elseif($photoqty>=5 && $photoqty<=15){
$descuento = 5;
}
elseif($photoqty>=20 && $photoqty<=32){
$descuento = 10;
}
//Mostramos los datos.
echo '<b><h4> >>> Proceso de compra <<< </h4></b>';
echo $actionqty.' ActionScript <br/>';
echo $photoqty.' PotoShop <br/>';
echo $netbeanqty.' Netbeans <br/>';
echo 'Cantidad total de libros: '.$totalqty.'<br/>';
//Precio sin IVA.
echo '<em>Monto total: £'.number_format($totalamount, 2).' Sin iva</em><br/>';
//Precio con IVA.
$taxrate = 0.10; // Local Taxrate
$totalamount = $totalamount * (1 + $taxrate);
$totalamount = number_format($totalamount,2);
echo '<em>Monto total: £'.$totalamount.' Con iva</em><br/>';
}
Disculpen, quizás le resulte algo sencillo a ustedes, pero recuerden que recién inicie de nuevo a este mundo.
-
Hola Rastrillox.
Por la programación entiendo que el descuento se aplica sólo a los libros que se compren en X cantidad. Sólo tienes que definir los intervalos (ya lo hiciste), pero hazlo con una variable por producto:
Al final solo divides esa variable entre 100 y el conciente lo multiplicas por por el monto total de ese producto; lo que obtengas se lo restas al monto total de ese producto...
$PhotohopConDescuento = $MontoTotalDePhotoshop - ($MontoTotalDePhotoshop * ($descuentoParaPhotshop / 100));
Dos consejos:
1. No involucres nombres de productos ni escribas código que no sea flexible... Porque cuando tu cliente te pida que agreges un producto más será mucho trabajo para ti. en ese caso mejor usa arrays y lo automatizas todo, por ejemplo: si despues agregan un libro de Microsoft. NET tendrás que volver a escribir la variable $descuentoParaNET y todo lo que implica, o mejor aún, si puedes usar base de datos te ahorrarás mas trabajo en el futuro.
2. Pregúntale a tu cliente sobre que monto se aplica el descuento, si ya con IVA o sin IVA; en cambos casos no es la misma cantidad.
Saludos.
-
Muchas Gracias!
Tomare tus consejos sobre usar Arrays!
Ahi te doy (k+)