Ver Mensaje Individual
  #3 (permalink)  
Antiguo 22/05/2008, 10:11
gerkin
 
Fecha de Ingreso: enero-2008
Mensajes: 84
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Ayuda con sesiones

Hola carxl, aca te pongo la funcion que trabaja con el arreglo de session que esta en otro archivo y que es llamado desde la pagina a la que le agrego el archivo que mostre antes, esa funcion, se llama con un boton.

Function Agregar_Producto($Arreglo,$Mje){


$Tabla = "";

$res = mysql_query("select * from Productos where Categoria = '".$Arreglo['Categoria']."' AND Medida = '".$Arreglo['Medida']."'");
//Obtengo el registro de la tabla productos correspondiente al nombre del producto seleccionado en el formulario
session_start();
if(!($fila=mysql_fetch_array($res)) && (!is_array($_SESSION['Linea_Pedidos'])))
{

$Tabla .= "<h1 align='center' class='Error'>No se ha seleccionado ningun producto para agregar</h1>";

return $Tabla;
exit();
}
if(is_array($fila))
{

$Linea_Pedido = new Linea_Pedido($fila['idProducto'],$fila['Categoria'],$fila['Medida'],$fila['Descripcion'],$fila['Precio'],$fila['idProducto'],$Arreglo['Cantidad'],(($fila['Precio'])*($Arreglo['Cantidad'])),0,0);

//Instancio un objeto de la clase Linea_pedido iniciandolo con los datos del producto que se selecciona en el form

session_start();
//en en la variable de sesion Linea_Peidos se va almacenando los productos que se van solicitando
if(!is_array($_SESSION['Linea_Pedidos'])){

if(($Arreglo['Cantidad'] > $fila['Stock']))
{

$Tabla .= "<h1 align='center' class='Mensaje'>El stock es insuficiente. En deposito hay ".$fila['Stock']." unidades</h1>";
$Tabla .= "<br>";
if($Arreglo['Presupuesto'] == "si")
{
$_SESSION['Linea_Pedidos'][0] = $Linea_Pedido;
}
}else{
$_SESSION['Linea_Pedidos'][0] = $Linea_Pedido;
}
}else{
//Si no esta vacio agrago el objeto en el arreglo
$Agregado = False;
//Primero verifico si el objeto a agregar no esta ya agregado, de ser asi, solo debo incrementar la propiedad cantidad y la propiedad Subtotal. Para verificarlo, se recorre el array para buscar un objeto que sea igual al que se desea ingresar

Foreach($_SESSION['Linea_Pedidos'] as $Indice => $Valor){
if($Valor->idProducto == $Linea_Pedido->idProducto)
{
$Agregado = True;
if(!($fila['Stock']>=($Valor->Cantidad + $Linea_Pedido->Cantidad)))
{
$Tabla .= "<h1 align='center' class='Mensaje'>El stock es insuficiente. En deposito hay ".$fila['Stock']." unidades</h1>";
$Tabla .= "<br>";

if($Arreglo['Presupuesto'] == "si")
{
$Valor->Cantidad += $Linea_Pedido->Cantidad;
$Valor->SubTotal = ($Valor->Cantidad)*($Valor->Precio);
}
}else{
$Valor->Cantidad += $Linea_Pedido->Cantidad;
$Valor->SubTotal = ($Valor->Cantidad)*($Valor->Precio);
}
}
}
if(!$Agregado)
{
if(($Arreglo['Cantidad'] > $fila['Stock']))
{
$Tabla .= "<h1 align='center' class='Mensaje'>El stock es insuficiente. En deposito hay ".$fila['Stock']." unidades</h1>";
$Tabla .= "<br>";
if($Arreglo['Presupuesto'] == "si")
{
array_push($_SESSION['Linea_Pedidos'],$Linea_Pedido);
}
}else{
array_push($_SESSION['Linea_Pedidos'],$Linea_Pedido);
}

}

}

}
session_start();
if(is_array($_SESSION['Linea_Pedidos']))
{
if($Mje != "")
{
$Tabla .= $Mje;
}
$Tabla .= "<table width='70%' border='3' align='center' cellpadding='0' cellspacing='0' bordercolor='#33CCFF'>";
$Tabla .= "<tr>";
$Tabla .= "<th width='21%' scope='col'>Producto</th>";
$Tabla .= "<th width = '21%' scope='col'>Medida</th>";
$Tabla .= "<th width='23%' scope='col'>Descripcion</th>";
$Tabla .= "<th width='29%' scope='col'>Precio Unitario </th>";
$Tabla .= "<th width='15%' scope='col'>Cantidad</th>";
$Tabla .= "<th width='14%' scope='col'>Subtotal</th>";
$Tabla .= "</tr>";

$Total = 0;

Foreach($_SESSION['Linea_Pedidos'] as $Indice => $Valor){

$Tabla .= "<TR><TD align = 'center'>".$Valor->Categoria."</TD><TD align = 'center'>".$Valor->Medida."</TD><TD align = 'center'>".$Valor->Descripcion."</TD><TD align = 'center'>".$Valor->Precio."</td><td align = 'center'>".$Valor->Cantidad."</td><td align = 'center'>".$Valor->SubTotal."</td><td align = center><a href = '#Productos_Pedidos' onclick = xajax_Quitar_Producto(".$Valor->idLinea_Pedido.")><img src='Iconos/delete_16x16.gif'></a></TD></tr>";
$Total += $Valor->SubTotal;
}
$Tabla .= "<tr>";
$Tabla .= "<td align = 'right' scope='col'></td>";
$Tabla .= "<td align = 'right' scope='col'></td>";
$Tabla .= "<td align = 'right' scope='col'></td>";
$Tabla .= "<td align = 'right' scope='col'></td>";
$Tabla .= "<th align = 'center' scope='col'>Total</th>";
$Tabla .= "<td align = 'center' scope='col'>".$Total."</td>";
$Tabla .= "</tr>";
$Tabla .= "</TABLE>";
}

return $Tabla;

}