Foros del Web » Programando para Internet » PHP »

Como hago esto

Estas en el tema de Como hago esto en el foro de PHP en Foros del Web. Buenos dias Amigos. Yo tengo una variable que es cantidad y tengo otra que es existencia a existencia le voy a restar la cantidad que ...
  #1 (permalink)  
Antiguo 15/01/2013, 10:59
 
Fecha de Ingreso: abril-2010
Mensajes: 108
Antigüedad: 14 años, 7 meses
Puntos: 2
Como hago esto

Buenos dias Amigos.

Yo tengo una variable que es cantidad y tengo otra que es existencia a existencia le voy a restar la cantidad que tengo en la variable, pero si cantidad es mayor que existencia entonces que me lo descuente del siguiente registro hasta completar la cantidad que le estoy indicando

por ejemplo

cantidad 100
Primer registro 35
encontro 35 los agarro y quedo en cero
en el siguiente registro otros 35
los agarro y los dejo en cero
Siguiente registro 200
de ahi solo agarro 30 para completar los 100 que yo necesito

Gracias si me pudieran dar una idea

Att

Jarlis Pereira
  #2 (permalink)  
Antiguo 15/01/2013, 11:14
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 13 años, 6 meses
Puntos: 76
Respuesta: Como hago esto

hola

prueba este script y me cuentas

Código PHP:
Ver original
  1. $cantidad = 100;
  2. $arreglito = array(35,35,200);
  3. for($i = 0 ;$i < count($arreglito);$i++)
  4. {
  5.     if(empty($cant_ant))
  6.     {
  7.         $cant_ant = $arreglito[$i];
  8.         $cantidad_resto = $cantidad - $cant_ant;
  9.         $salida["existencia"] = $cant_ant;
  10.         $salida["cantidad_restante"] = $cantidad_resto;
  11.         $output[] = $salida;
  12.  
  13.     }
  14.     else
  15.     {
  16.         if($arreglito[$i] < $cantidad_resto)
  17.         {
  18.             $cantidad_resto = $cantidad_resto - $arreglito[$i];
  19.             $salida["existencia"] = $arreglito[$i];
  20.             $salida["cantidad_restante"] = $cantidad_resto;
  21.             $output[] = $salida;
  22.         }
  23.         else
  24.         {
  25.             $cantidad_resto = $cantidad_resto;
  26.             $salida["existencia"] = $arreglito[$i];
  27.             $salida["cantidad_restante"] = $cantidad_resto;
  28.             $output[] = $salida;
  29.         }
  30.     }
  31. }
  32. var_dump($output);


Es una idea, espero te pueda guiar para hacer lo que exactamente necesitas, porque igual no entendi muy bien el caso
  #3 (permalink)  
Antiguo 15/01/2013, 11:32
 
Fecha de Ingreso: abril-2010
Mensajes: 108
Antigüedad: 14 años, 7 meses
Puntos: 2
Respuesta: Como hago esto

Gracias por tu repuesta

Fijate que no me funciono,

Cada uno de estos datos viene de una consulta de base de datos
cantidad 100
Primer registro 35
encontro 35 los agarro y quedo en cero
en el siguiente registro otros 35
los agarro y los dejo en cero
Siguiente registro 200
de ahi solo agarro 30 para completar los 100 que yo necesito
  #4 (permalink)  
Antiguo 15/01/2013, 11:38
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 13 años, 6 meses
Puntos: 76
Respuesta: Como hago esto

por ejemplo , viene cantidad 100, viene el primero registro que es 35 , tu dices que los agarro, cierto? y quedo en cero ? que quedo en cero ???? ,
  #5 (permalink)  
Antiguo 15/01/2013, 11:48
 
Fecha de Ingreso: abril-2010
Mensajes: 108
Antigüedad: 14 años, 7 meses
Puntos: 2
Respuesta: Como hago esto

Si
pero los otros 70 que hacen falta tiene que descontarlo del siguiente regristro y asi sugesibamente hasta completar los 100 que le estoy pidiendo.... las cantidades varian yo las tengo en una variables
  #6 (permalink)  
Antiguo 15/01/2013, 12:07
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 13 años, 6 meses
Puntos: 76
Respuesta: Como hago esto

hum pero probaste el codigo que te pase ??? creo que hace lo que tu dices., faltaria validar que si la cantidad ya es 0 entonces se detenga el bucle
  #7 (permalink)  
Antiguo 15/01/2013, 12:10
 
Fecha de Ingreso: abril-2010
Mensajes: 108
Antigüedad: 14 años, 7 meses
Puntos: 2
Respuesta: Como hago esto

Como seria entonces para validar si la cantidad es igual a cero para que se detenga el bucle
disculpa esque soy nuevo en esto de php
  #8 (permalink)  
Antiguo 15/01/2013, 15:17
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 13 años, 6 meses
Puntos: 76
Respuesta: Como hago esto

hola

prueba este ejemplo:

Código PHP:
Ver original
  1. $cantidad = 150;
  2. $arreglito = array(35,35,45,500);
  3. for($i = 0 ;$i < count($arreglito);$i++)
  4. {
  5.     if(empty($cant_ant))
  6.     {
  7.         $cant_ant = $arreglito[$i];
  8.         $cantidad_resto = $cantidad - $cant_ant;
  9.         $salida["existencia"] = $cant_ant;
  10.         $salida["cantidad_restante"] = $cantidad_resto;
  11.         $output[] = $salida;
  12.  
  13.     }
  14.     else
  15.     {
  16.         if($arreglito[$i] < $cantidad_resto)
  17.         {
  18.             $cantidad_resto = $cantidad_resto - $arreglito[$i];
  19.             $salida["existencia"] = $arreglito[$i];
  20.             $salida["cantidad_restante"] = $cantidad_resto;
  21.             $output[] = $salida;
  22.         }
  23.         else if($cantidad_resto > 0)
  24.         {
  25.             $cantidad_resto = $cantidad_resto;
  26.             $salida["existencia"] = $arreglito[$i];
  27.             $salida["cantidad_restante"] = $cantidad_resto;
  28.             $output[] = $salida;
  29.             $cantidad_resto = 0;
  30.         }
  31.         else
  32.         {  
  33.             break;
  34.         }
  35.     }
  36. }
  37. var_dump($output);
  #9 (permalink)  
Antiguo 16/01/2013, 11:58
 
Fecha de Ingreso: abril-2010
Mensajes: 108
Antigüedad: 14 años, 7 meses
Puntos: 2
Como hago esto con if

Buenos dias amigos, tengo este problema.
Yo tengo este codigo y la verdad todo me funciona exelente pero tengo este problema que lo voy a explicar donde tengo el error en la parte de abajo

@$checks=$_REQUEST['valorcheck'];
if(is_array($checks)):
for($i=0;$i<count($checks);$i++):
//echo $checks[$i]."Numero de Pedido"."<br />";
$pedido_coti = $checks[$i];//."<br />";
//para sacar las pedidos de las cotizaciones
$sql = "select * from Cotizaciones where NoDocumento =".$pedido_coti;
$result = mssql_query($sql);

while($consulta = mssql_fetch_array($result)){
//echo $consulta['NoCotizacion']."Numero de Cotizacion"."<br />";
$coti=$consulta['NoCotizacion'];

}

/////////aqui verifico en la tabla de DetalleCotizaciones
$sql2 = "select * from DetalleCotizaciones where NoCotizacion =".$coti;
$result2 = mssql_query($sql2);

while($consulta2 = mssql_fetch_array($result2)){
//echo $consulta2['Cantidad']."Cantidad"."<br />";
//echo $consulta2['NoProducto']."Numero de Producto"."<br />";
$cantidad_pro = $consulta2['Cantidad'];//."<br />";
$cod_pro = $consulta2['NoProducto'];
$sql3 = "select MIN(FechaVencimiento) as fecha, NoProducto, min(NoLote) as lote from Lotes where NoProducto =".$cod_pro." and Cantidad <>0 group by NoProducto";
$result3 = mssql_query($sql3);
//}

while($consulta3 = mssql_fetch_array($result3)){

//echo $consulta3['fecha']."<br />";

//echo $consulta3['lote'];//."<br />";
$num_lote = $consulta3['lote'];//."<br />";


$sql4 = "select * from ExistenciasLotes where NoProducto =".$cod_pro." and NoLote =".$num_lote."and Existencia <>0";

$result4 = mssql_query($sql4);

while($consulta4 = mssql_fetch_array($result4)){

//echo $consulta4['NoLote']."Numero de lote"."<br />";
//echo $consulta4['NoProducto']."Este es el producto con lote y fecha proxima a vencer"."<br />";
//echo $consulta4['Existencia']."Existencia"."<br />";
$num_lote = $consulta4['NoLote'];
$existen = $consulta4['Existencia'];

$total = $existen - $cantidad_pro;

if ($existen>$cantidad_pro)
{
$sql5 ="Update ExistenciasLotes Set Existencias='$total'Where NoProdcuto=".$cod_pro."and NoLote =".$num_lote;

}
else
{
Bueno como ustedes miraran todo esto viene de las consultas de la base de datos
$existen = $consulta4['Existencia']; esto es la existencia actual en un lote con fecha proximamente a vencer
$cantidad_pro = $consulta2['Cantidad']; esta es la cantidad que estoy solicitando en el pedido.
Lo que hace todo esto es que va y consulta los productos con fechas mas antiguas o proxima a vencer ejemplo
$total = $existen - $cantidad_pro;
Todo bien pero el problema que tengo es que si la cantidad que estoy pidiendo en el pedido es mayor a la de existencia entonces tiene que ir al siguiente registro y completar la cantidad que lo estoy pidiendo, claro que siempre tiene que escojer el producto con fecha mas antigua esto lo tiene que hacer las veces necesarias hasta completar la cantidad que le estoy pidiendo
claro si en un registro en contro 10 tiene que agarrar esos dias y dejarlo en 0 y seguir con el siguiente registro hasta completar la cantidad.
arriba tengo esto con un if pero no se si es asi

gracias espero que me ayuden

Att
Jarlis Pereira


}
  #10 (permalink)  
Antiguo 17/01/2013, 09:46
 
Fecha de Ingreso: abril-2010
Mensajes: 108
Antigüedad: 14 años, 7 meses
Puntos: 2
Validar valor negativo

Buenos dias amigos.

yo tengo estas variables
$existencia = $consulta4['Existencia'];
$cantidad_solicitada = $consulta2['Cantidad'];

Cantidad existente es el valor que tengo en un campo de mi tabla y cantidad solicitada es lo que estoy pidiendo.

Lo que yo quiero hacer es que ala hora de restar $existencia-$cantidad_solicitada
no me acepte negativos por ejemplo.
existencia 10
cantidad_solicitada 50
Entonces tiene que dejarme en 0 agarrar esos 10 de ese registro y continuar en el siguiente tegistro hasta completar los 50 que estoy pidiendo

Gracias

Att
Jarlis Pereira
  #11 (permalink)  
Antiguo 17/01/2013, 09:54
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Validar valor negativo

Con un if() lo puedes realizar.

Saludos.
  #12 (permalink)  
Antiguo 17/01/2013, 09:59
 
Fecha de Ingreso: abril-2010
Mensajes: 108
Antigüedad: 14 años, 7 meses
Puntos: 2
Respuesta: Validar valor negativo

El problema es que no se como agregarlo yo tengo esto if ($existen>$cantidad_pro)

como le agrego lo demas
gracias
  #13 (permalink)  
Antiguo 17/01/2013, 10:13
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Validar valor negativo

No, obviamente tienes que validar la resta, te lo dejo en pseudocódigo:
Código:
si ( (cantidadExistente - cantidadPedida) < 0) 
    imprime error, no hay suficiente producto para surtir
fin si
  #14 (permalink)  
Antiguo 17/01/2013, 10:19
 
Fecha de Ingreso: abril-2010
Mensajes: 108
Antigüedad: 14 años, 7 meses
Puntos: 2
Respuesta: Validar valor negativo

Ok gracias

pero el problema es que si solo hay 10 pues tengo que agarrar esos 10 y pasar al siguiente registro hasta completar lo que le estoy pidiendo

Gracias

Etiquetas: negativo, registro, sql, tabla, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:10.