Foros del Web » Programando para Internet » PHP »

Inventario

Estas en el tema de Inventario en el foro de PHP en Foros del Web. Hola a todos estoy trabajando en un proyecto de un inventario para un granero en php y resulta que tengo un código que me descuenta ...
  #1 (permalink)  
Antiguo 01/04/2016, 09:47
 
Fecha de Ingreso: abril-2016
Ubicación: Bogota
Mensajes: 16
Antigüedad: 8 años, 7 meses
Puntos: 0
Pregunta Inventario

Hola a todos estoy trabajando en un proyecto de un inventario para un granero en php y resulta que tengo un código que me descuenta la cantidad de stock en el inventario cada vez que utilizo un producto, lo que quiero hacer es poder descontar a varios productos no solo a uno como se hace si alguien sabe se los agradezco miren este es el código:

<?PHP





$idproducto=$_POST["idproducto"];
$result=("SELECT descripcion,stock FROM articulos WHERE id_articulo = $idproducto");


$producto=$_POST["producto"];
$cantidad=$_POST["cantidad"];
$materiaprima=$_POST["materiaprima"];
$idproducto=$_POST["idproducto"];
$opr=$_POST["opr"];
$porcentaje=$_POST["porcentaje"];

mysql_query("INSERT INTO nota(id_nota, producto, cantidad, materiaprima, operaciones, porcentaje, id_articulo)VALUES(NULL, '$producto', '$cantidad', '$materiaprima', '$opr', '$porcentaje', '$idproducto')");

if(isset($_POST["idproducto"])) {
$idproducto = $_POST["idproducto"];
$porcentaje= $_POST["porcentaje"];
// obtengo la cantidad de stock del producto
$query = mysql_query("SELECT stock FROM articulo WHERE id_articulo = $idproducto");
list($stock) = mysql_fetch_row($query);
// verifico que sea menor o igual el pedido al stock
if($porcentaje > $stock) {
echo "La cantidad es superior a lo que hay en la tienda";
header('location: resultado_salida.php');
exit();
}else{ // actualizo la db con los datos nuevos!
mysql_query("UPDATE articulo SET stock = stock - $porcentaje WHERE id_articulo = $idproducto");
echo "La Nota de Produccion se ha realizado con exito";

header('location: resultado_nota.php');
exit();
}
}


/*mysql_query();

//CONSULTO LA EXISTENCIA DE PRODUCTOS
$sq=mysql_query("select stock from articulo where id_articulo = '".$idproducto[$i]."'") or die("Problemas en el select:".mysql_error());
$reg=mysql_fetch_array($sq);
$cant=$reg['stock']-$cantidad[$i];

//CONSULTO LA EXISTENCIA DEL PRODUCTO Y LA ACTUALIZO
mysql_query("update articulos set stock = '".mysql_real_escape_string($cant[$i])."' where id_articulo = '".$idproducto[$i]."'") or die(mysql_error());
*/

?>
  #2 (permalink)  
Antiguo 01/04/2016, 10:01
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 9 años, 5 meses
Puntos: 263
Respuesta: Inventario

como estas enviando la variable, de manera sencilla o en arreglo???

name="producto" ó name="producto[]"
__________________
[email protected]
HITCEL
  #3 (permalink)  
Antiguo 01/04/2016, 11:18
 
Fecha de Ingreso: abril-2016
Ubicación: Bogota
Mensajes: 16
Antigüedad: 8 años, 7 meses
Puntos: 0
Respuesta: Inventario

hola xfxstudios mandando la variable de manera sencilla gracias por tu ayuda
  #4 (permalink)  
Antiguo 01/04/2016, 11:39
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 9 años, 5 meses
Puntos: 263
Respuesta: Inventario

Cita:
lo que quiero hacer es poder descontar a varios productos no solo a uno como se hace si alguien sabe se los agradezco miren este es el código:
en este caso vas a tener que cambiar la logica o al menos mostrar el formulario de donde recoges los datos, pues para actualizar varios productos al mismo tiempo necesitaras enviar la variable coo un arreglo y claro crear los items dinamicamente en tu form
__________________
[email protected]
HITCEL
  #5 (permalink)  
Antiguo 03/04/2016, 10:23
 
Fecha de Ingreso: abril-2016
Ubicación: Bogota
Mensajes: 16
Antigüedad: 8 años, 7 meses
Puntos: 0
Respuesta: Inventario

Entiendo pero tienes algún ejemplo con el que me puedas ayudar por que no tengo ni idea como hacer ese arreglo esta es mi unica salvacion si puedes, te agradezco o me lo envíes al correo [email protected].
  #6 (permalink)  
Antiguo 03/04/2016, 11:24
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 11 meses
Puntos: 39
Respuesta: Inventario

2.3 Los usuarios no pueden publicar mensajes para insinuar o instruir a otro(s) miembro(s) para que revisen su cuenta de correo electrónico, su buzón de mensajes privados, o para indicarles de alguna manera que tienen un nuevo mensaje privado o de correo electrónico, con el objeto de solicitar u ofrecer una respuesta con respecto al tema en cuestión. Tampoco está permitido enviar publicidad u ofertas de servicios no solicitados a través de mensajes privados y/o correo electrónico a otros usuarios de Foros del Web.
  #7 (permalink)  
Antiguo 03/04/2016, 12:27
 
Fecha de Ingreso: abril-2016
Ubicación: Bogota
Mensajes: 16
Antigüedad: 8 años, 7 meses
Puntos: 0
Respuesta: Inventario

Cita:
Iniciado por rodocoyote15 Ver Mensaje
2.3 Los usuarios no pueden publicar mensajes para insinuar o instruir a otro(s) miembro(s) para que revisen su cuenta de correo electrónico, su buzón de mensajes privados, o para indicarles de alguna manera que tienen un nuevo mensaje privado o de correo electrónico, con el objeto de solicitar u ofrecer una respuesta con respecto al tema en cuestión. Tampoco está permitido enviar publicidad u ofertas de servicios no solicitados a través de mensajes privados y/o correo electrónico a otros usuarios de Foros del Web.
Ok pero alguien me puede ayudar ya no tengo idea como hacerlo
  #8 (permalink)  
Antiguo 03/04/2016, 12:49
 
Fecha de Ingreso: septiembre-2015
Mensajes: 142
Antigüedad: 9 años, 2 meses
Puntos: 13
Respuesta: Inventario

osea quieres que al sacar productos , por ejemplo si quieres sacar 3 productos por ejemplo :

5 de algo , 10 de algo mas , y 3 de algo mas.
lo mas normal seria que te carge un form ,

producto 1 [cantidad actual] [cantidad de salida]
producto 2
producto 3
producto 4

asi seria una forma , lo malo es que te mostraría todo los productos , otra opción seria crear items dinamicamentes en tu formulario

otra también seria
una lista de tus productos con checkboxes seleccionas cuales van de salida , y con ajax te traes el formulario resultante

así me imagino yo :C
  #9 (permalink)  
Antiguo 04/04/2016, 05:50
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 9 años, 5 meses
Puntos: 263
Respuesta: Inventario

Bueno en terminos generales te dejo un ejemplo para que implementes o adaptes:

Primero imagino que debe funcionar como si facturaras, es decir, deberia de ir creando lineas dinamicamente a medida que vas agregando productos:

Ese es un ejemplo básico de la función para generar lineas, pero hay muchas otras maneras, aqui un ejemplo:

https://jsfiddle.net/xfxstudios/xj6j42vc/


luego necesitamos atrapar ese arreglo en php ya que los nombres van de esta manera articulo[] para ello te dejo este otro ejemplo:

Código PHP:
Ver original
  1. $cuenta = count($_POST['articulos']);
  2.  
  3. $noProcede = array();
  4.  
  5. for($i=0; $i < $cuenta; $i++)
  6.     {
  7.  
  8.     //preparamos las variables
  9.     $arti = $_POST['articulo'][$i];
  10.     $cant = $_POST['cantidad'][$i];
  11.  
  12.     //consultamos el stock
  13.     $consulta = $db->query("SELECT articulo,stock FROM productos WHERE articulo = '$arti' ");
  14.     $r_arti = $consulta->fetch_assoc();
  15.  
  16.     if($cant > $r_arti["stock"])
  17.         {
  18.         //si el stock es mayor cargamos el producto en un array y lo eliminamos de la presente consulta (no probado, realiza tus pruebas)
  19.         $noProcede['articulo'] = $arti;
  20.         unset($arti[$i]);
  21.         unset($cant[$i]);
  22.        
  23.         }else
  24.         {
  25.         //si no es mayor lo actualizamos
  26.  
  27.         $actu = $db->query("UPDATE productos SET stock = stock-$cant WHERE articulo = '$arti'");
  28.  
  29.         }
  30.  
  31.  
  32.  
  33.     }
  34.  
  35.     //AQUI COLOCAS EL RESTO DEL CODIGO QUE NECESITES PARA PROCESAR Y MOSTRAR LOS ARTICULOS NO PROCESADOS QUE ESTAN EN EL ARRAY Y TODO LO DEMAS
__________________
[email protected]
HITCEL
  #10 (permalink)  
Antiguo 04/04/2016, 14:57
 
Fecha de Ingreso: abril-2016
Ubicación: Bogota
Mensajes: 16
Antigüedad: 8 años, 7 meses
Puntos: 0
Exclamación Respuesta: Inventario

Lo siento no me acepta la funcion en php me genera este error 'Parse error: syntax error, unexpected '[' in C:\wamp\www\' .php on line 70
CÓDIGO:
<?php
Código Javascript:
Ver original
  1. var con = 1;
  2. function cargaProd()
  3. {
  4. var linea = '<tr><td>'+con+'</td><td><input type="text" name="articulo[]" placeholder=" Articulo" class="form-control"/></td><td><input type="text" name="cantidad[]" placeholder="Cantidad" class="form-control"/></td></tr>';
  5.  
  6. $('#listaArticulos tr:last').after(linea);
  7.  
  8. con = con+1
  9.  
  10. }
?>


Y si la pongo dentro de las etiquetas <script>

CÓDIGO:
<script>
Código Javascript:
Ver original
  1. var con = 1;
  2. function cargaProd()
  3. {
  4. var linea = '<tr><td>'+con+'</td><td><input type="text" name="articulo[]" placeholder=" Articulo" class="form-control"/></td><td><input type="text" name="cantidad[]" placeholder="Cantidad" class="form-control"/></td></tr>';
  5.  
  6. $('#listaArticulos tr:last').after(linea);
  7.  
  8. con = con+1
  9.  
  10. }
</script>

No me muestra los campos ayuda ya no se que hacer
  #11 (permalink)  
Antiguo 04/04/2016, 15:02
 
Fecha de Ingreso: abril-2016
Ubicación: Bogota
Mensajes: 16
Antigüedad: 8 años, 7 meses
Puntos: 0
Pregunta Respuesta: Inventario

En la pagina se ve muy mal con el código java mostrándose en pantalla con las etiquetas <script></script> y con php no me acepta la variable var
  #12 (permalink)  
Antiguo 04/04/2016, 16:00
 
Fecha de Ingreso: abril-2016
Ubicación: Bogota
Mensajes: 16
Antigüedad: 8 años, 7 meses
Puntos: 0
Pregunta Respuesta: Inventario

En la pagina se ve muy mal con el código java mostrándose en pantalla con las etiquetas <script></script> y con php no me acepta la variable var
  #13 (permalink)  
Antiguo 04/04/2016, 16:12
 
Fecha de Ingreso: abril-2016
Ubicación: Bogota
Mensajes: 16
Antigüedad: 8 años, 7 meses
Puntos: 0
Respuesta: Inventario

Cita:
Iniciado por sonystar_17 Ver Mensaje
osea quieres que al sacar productos , por ejemplo si quieres sacar 3 productos por ejemplo :

5 de algo , 10 de algo mas , y 3 de algo mas.
lo mas normal seria que te carge un form ,

producto 1 [cantidad actual] [cantidad de salida]
producto 2
producto 3
producto 4

asi seria una forma , lo malo es que te mostraría todo los productos , otra opción seria crear items dinamicamentes en tu formulario

otra también seria
una lista de tus productos con checkboxes seleccionas cuales van de salida , y con ajax te traes el formulario resultante

así me imagino yo :C
Hola amigo pero como cargo ese formulario??
  #14 (permalink)  
Antiguo 04/04/2016, 23:10
 
Fecha de Ingreso: septiembre-2015
Mensajes: 142
Antigüedad: 9 años, 2 meses
Puntos: 13
Respuesta: Inventario

hola , el ejemplo que te dio xfxstudios funciona correctamente amigo

Código HTML:
Ver original
  1.    
  2.    <script type="text/javascript" src="jquery.js"></script>
  3.    <script>
  4.     var con = 1;
  5. function cargaProd()
  6. {
  7. var linea = '<tr><td>'+con+'</td><td><input type="text" name="articulo[]" placeholder=" Articulo" class="form-control"/></td><td><input type="text" name="cantidad[]" placeholder="Cantidad" class="form-control"/></td></tr>';
  8.  
  9. $('#listaArticulos tr:last').after(linea);
  10.  
  11. con = con+1
  12.  
  13. }
  14.    
  15.     </script>
  16.  
  17.  

simplemente carga el script así
ya luego en el body agregar un form
y dentro lo otro que corresponde al jsfiddle que te paso xfxstudios y veras que funciona correctamente.

no probé el código en php pero a simple vista se ve que es correcto aunque creo que el

Código PHP:
Ver original
  1. unset($arti[$i]);
  2. unset($cant[$i]);
  3.  
  4. debería ser sin [$i]

igual prueba el código de xfxstudios , y si posteas tu código es de mayor ayuda para ver el error

Última edición por sonystar_17; 04/04/2016 a las 23:28
  #15 (permalink)  
Antiguo 05/04/2016, 15:36
 
Fecha de Ingreso: abril-2016
Ubicación: Bogota
Mensajes: 16
Antigüedad: 8 años, 7 meses
Puntos: 0
Respuesta: Inventario

hola hasta ahora me ha funcionado de maravilla pero en la ultima parte del código dice //AQUI COLOCAS EL RESTO DEL CÓDIGO QUE NECESITES PARA PROCESAR Y MOSTRAR LOS ARTÍCULOS NO PROCESADOS QUE ESTÁN EN EL ARRAY Y TODO LO DEMÁS No entiendo a que se refiere de que resto de código se esta refiriendo
codigo php:
$cuenta = count($_POST['articulos']);

$noProcede = array();

for($i=0; $i < $cuenta; $i++)
{

//preparamos las variables
$arti = $_POST['articulo'][$i];
$cant = $_POST['cantidad'][$i];

//consultamos el stock
$consulta = $db->query("SELECT articulo,stock FROM productos WHERE articulo = '$arti' ");
$r_arti = $consulta->fetch_assoc();

if($cant > $r_arti["stock"])
{
//si el stock es mayor cargamos el producto en un array y lo eliminamos de la presente consulta (no probado, realiza tus pruebas)
$noProcede['articulo'] = $arti;
unset($arti[$i]);
unset($cant[$i]);

}else
{
//si no es mayor lo actualizamos

$actu = $db->query("UPDATE productos SET stock = stock-$cant WHERE articulo = '$arti'");

}



}

//AQUI COLOCAS EL RESTO DEL CODIGO QUE NECESITES PARA PROCESAR Y MOSTRAR LOS ARTICULOS NO PROCESADOS QUE ESTAN EN EL ARRAY Y TODO LO DEMAS
  #16 (permalink)  
Antiguo 05/04/2016, 15:54
 
Fecha de Ingreso: abril-2016
Ubicación: Bogota
Mensajes: 16
Antigüedad: 8 años, 7 meses
Puntos: 0
Respuesta: Inventario

Este es el ultimo codgigo php donde se reciben en variables todo lo escrito en la pagina anterior y donde se hace el proceso en un arreglo cuando se escoge mas de un producto y su cantidad para hacerle el descuento pero no funciona que es lo que hace falta o cual es mi falla gracias Código PHP:
<?PHP

$producto=$_POST["producto"];
$cantidad=$_POST["cantidad"];
$materiaprima=$_POST["materiaprima"];
$opr=$_POST["opr"];

$cuenta = count($_POST['articulos']);

$noProcede = array();

for($i=0; $i < $cuenta; $i++)
{

//preparamos las variables
$articulo = $_POST['articulo'][$i];
$cantidades = $_POST['cantidades'][$i];

//consultamos el stock
$consulta = $db->query("SELECT articulo,stock FROM articulo WHERE descripcion = '$articulo' ");
$r_arti = $consulta->fetch_assoc();

if($cantidades > $r_arti["stock"])
{
//si el stock es mayor cargamos el producto en un array y lo eliminamos de la presente consulta (no probado, realiza tus pruebas)
$noProcede['articulo'] = $articulo;
unset($articulo[$i]);
unset($cantidades[$i]);

echo "La cantidad es superior a lo que hay en la tienda";
header('location: resultado_salida.php');
exit();
}else
{
//si no es mayor lo actualizamos

$actu = $db->query("UPDATE articulo SET stock = stock-$cant WHERE descripcion = '$arti'");

echo "La Nota de Produccion se ha realizado con exito";

header('location: resultado_nota.php');
exit();

}



}
mysql_query("INSERT INTO nota(id_nota, producto, cantidad, materiaprima, operaciones, porcentaje, id_articulo)VALUES(NULL, '$producto', '$cantidad', '$materiaprima', '$opr', '$porcentaje', '$idproducto')");
?>
  #17 (permalink)  
Antiguo 05/04/2016, 15:58
 
Fecha de Ingreso: abril-2016
Ubicación: Bogota
Mensajes: 16
Antigüedad: 8 años, 7 meses
Puntos: 0
Respuesta: Inventario

Perdón me estoy respondiendo yo mismo miren este es el problema :

Notice: Undefined index: articulos in C:\wamp\www\almacendeinventario\recibirnota.php on line 19
Notice: Undefined index: idproducto in C:\wamp\www\almacendeinventario\recibirnota.php on line 60
Notice: Undefined index: idproducto in C:\wamp\www\almacendeinventario\recibirnota.php on line 69
Notice: Undefined index: porcentaje in C:\wamp\www\almacendeinventario\recibirnota.php on line 71

Gracias por su paciencia
  #18 (permalink)  
Antiguo 05/04/2016, 17:03
 
Fecha de Ingreso: septiembre-2015
Mensajes: 142
Antigüedad: 9 años, 2 meses
Puntos: 13
Respuesta: Inventario

puedes poner tu formulario ? revisa el nombre de los campos en tu formulario por ningún lado se ve que declares esta variable : idproducto ni esta porcentaje.

pastea tu formulario también , con tu código completo así es mas sencillo saber cual es el problema.

una recomendación es usar :


seleccionas el código que colocaras , y se ve mucho mejor así es mas fácil para todos.
  #19 (permalink)  
Antiguo 06/04/2016, 15:07
 
Fecha de Ingreso: abril-2016
Ubicación: Bogota
Mensajes: 16
Antigüedad: 8 años, 7 meses
Puntos: 0
Respuesta: Inventario

Código HTML:
Ver original
  1. <form id="form2" name="form2" method="post" action="recibirnota.php">
  2.   <p align="center">&nbsp;</p>
  3. <br /><br />
  4.   <p align="center" class="Estilo1"><div class="alert alert-info">
  5. <h1>Nota de Producción</h1>
  6. </div>
  7.  
  8. <br>
  9. </p>
  10.   <p align="center" class="Estilo1">&nbsp;</p>
  11. <center><table width="37%" border="1" align="center" bgcolor="#CCCCCC">
  12.     <tr>
  13.       <td width="50%"><div align="right"><strong>Nombre del Producto </strong> </div></td>
  14.       <td width="50%">
  15.  
  16.         <div align="left">
  17.           <input name="producto" type="text" id="producto" />
  18.         </div>          </td></tr>
  19.     <tr>
  20.       <td><div align="right"><strong>Cantidad</strong></div></td>
  21.       <td>
  22.         <div align="left">
  23.           <input name="cantidad" type="text" id="cantidad" />
  24.           </div></td></tr>
  25.     <tr>
  26.       <td> <div align="right"><strong>Materia Prima</strong></div></td>
  27.       <td>
  28.         <div align="left">
  29.           <input name="materiaprima"  type="text" id="materiaprima" />
  30.           </div></td></tr>
  31.     <tr>
  32.       <td><div align="right"><strong>Operaciones</strong></div></td>
  33.       <td>
  34.         <p align="left">
  35.           <input name="opr"  type="text" id="opr" />
  36.           <br />
  37.           </p></td>
  38.     </tr>
  39.     <tr>
  40.       <td>
  41.         <div align="right"><strong>Características </strong></div></td>
  42.       <td>
  43.         <div align="left">
  44.           <input name="caract"  type="text" id="caract" />
  45.           </div></td></tr>
  46.     <tr>
  47.       <td><div align="right"><strong>Id_Producto-Materia Prima </strong></div></td>
  48.       <td><input name="idproducto" type="text" id="idproducto" />      </td>
  49.     </tr>
  50.     <tr>
  51.       <td>
  52.         <div align="right"><strong>Porcentaje-cantidad de materia prima </strong>
  53.             </label>
  54.         </div></td>
  55.       <td>
  56.         <div align="left">
  57.           <input name="porcentaje" type="text" id="porcentaje" />
  58.           </div></td></tr>
  59.     <tr>
  60.       <td colspan="2"><div align="center"><table class="table table-striped">
  61. <button type="button" name="crea" onClick="cargaProd();" class="btn btn-primary" )>
  62. Nueva Linea</button>
  63.   <tbody id="listaArticulos">
  64.   <tr>
  65.     <td></td>
  66.     <td></td>
  67.     <td></td>
  68.   </tr>
  69.   </tbody>
  70. </table></div>        <div align="center"></div>        <div align="center"></div></td>
  71.       </tr>
  72.     <tr>
  73.       <td><input type="submit" name="Submit" value="Enviar" /></td>
  74.       <td><input type="reset" name="Submit2" value="Restablecer" /></td>
  75.     </tr>
  76.    
  77.   </table>
  78.  
  79. </center>
  80. </form>
Código Javascript:
Ver original
  1. <script>
  2. var con = 1;
  3. function cargaProd()
  4. {
  5. var linea = '<tr><td>'+con+'</td><td><input type="text" name="idproducto[]" placeholder=" Articulo" class="form-control"/></td><td><input type="text" name="porcentaje[]" placeholder="Cantidad" class="form-control"/></td></tr>';
  6.  
  7. $('#listaArticulos tr:last').after(linea);
  8.  
  9. con = con+1
  10.  
  11. }
  12. </script>

Código PHP:
Ver original
  1. $producto=$_POST["producto"];
  2. $cantidad=$_POST["cantidad"];
  3. $materiaprima=$_POST["materiaprima"];
  4. $opr=$_POST["opr"];
  5.  
  6. $cuenta = "";//la puse asi por que me generaba error como método post
  7.  
  8. $noProcede = array();
  9.  
  10. for($i=0; $i < $cuenta; $i++)
  11.     {
  12.  
  13.     //preparamos las variables en los campos de texto se declararon como idproducto y porcentaje
  14.     $idproducto = $_POST['idproducto'][$i];
  15.     $porcentaje = $_POST['porcentaje'][$i];
  16.  
  17.     //consultamos el stock la descripcion es el nombre del articulo por eso en la consulta aparece descripción
  18.  
  19.     $consulta = $db->query("SELECT descripcion,stock FROM articulo WHERE descripcion = '$idproducto' ");
  20.     $r_arti = $consulta->fetch_assoc();
  21.  
  22.     if($porcentaje > $r_arti["stock"])
  23.         {
  24.         //si el stock es mayor cargamos el producto en un array y lo eliminamos de la presente consulta (no probado, realiza tus pruebas)
  25.         $noProcede['articulo'] = $idproducto;
  26.         unset($idproducto[$i]);
  27.         unset($porcentaje[$i]);
  28.        
  29.         echo "La cantidad es superior a lo que hay en la tienda";
  30.             header('location: resultado_salida.php');
  31.         exit();
  32.         }else
  33.         {
  34.         //si no es mayor lo actualizamos
  35.  
  36.         $actu = $db->query("UPDATE articulo SET stock = stock-$porcentaje WHERE descripcion = '$idproducto'");
  37.        
  38.            echo "La Nota de Produccion se ha realizado con exito";
  39.    
  40.             header('location: resultado_nota.php');
  41.         exit();
  42.  
  43.         }
  44.  
  45.  
  46.  
  47.     }
  48. //para que me quede registrada la información en una BD
  49.   mysql_query("INSERT INTO nota(id_nota, producto, cantidad, materiaprima, operaciones, porcentaje, id_articulo)VALUES(NULL, '$producto', '$cantidad', '$materiaprima', '$opr', '$porcentaje', '$idproducto')");

el formulario no esta enviando la información de lo que se escribe en los campos de texto creados por la función cargar producto. que genial seria si se llevara acabo este proyecto al 100%
  #20 (permalink)  
Antiguo 06/04/2016, 17:48
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 9 años, 5 meses
Puntos: 263
Respuesta: Inventario

Esta linea le falta el multipart:

<form id="form2" name="form2" method="post" action="recibirnota.php">

Asi:

<form id="form2" name="form2" method="post" action="recibirnota.php" enctype="multipart/form-data">

esto no lo entendi:

$cuenta = "";//la puse asi por que me generaba error como método post

en tal caso deberia de ser algo asi, ya que cuentas un campo que se repita por ejemplo articulo[]:
Código PHP:
Ver original
  1. $cuenta = count($_POST['AQUI EL CAMPO REPETIDO']);
__________________
[email protected]
HITCEL
  #21 (permalink)  
Antiguo 06/04/2016, 17:48
 
Fecha de Ingreso: septiembre-2015
Mensajes: 142
Antigüedad: 9 años, 2 meses
Puntos: 13
Respuesta: Inventario

revisa bien el código de xfxstudios funciona correctamente bro

No entiendo realmente tu formulario :

tienes en la tabla esto : Nombre del Producto , Cantidad

pero eso es necesario ? si el formulario dinámico te crea esas dos inputs por cada producto que quieras.



Código PHP:
Ver original
  1. $cuenta = count($_POST['productos']); // te cuenta la cantidad de productos que has puesto en los form dinamicos

revisa bien el codigo de
  #22 (permalink)  
Antiguo 07/04/2016, 17:04
 
Fecha de Ingreso: abril-2016
Ubicación: Bogota
Mensajes: 16
Antigüedad: 8 años, 7 meses
Puntos: 0
Respuesta: Inventario

Fatal error: Call to a member function query() on a non-object in C:\wamp\www\almacendeinventario\recibirnota.php on line 40
  #23 (permalink)  
Antiguo 07/04/2016, 17:12
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 9 años, 5 meses
Puntos: 263
Respuesta: Inventario

Cita:
Iniciado por sabiovega24 Ver Mensaje
Fatal error: Call to a member function query() on a non-object in C:\wamp\www\almacendeinventario\recibirnota.php on line 40
Y adivinamos cual es la linea 40 o que tienes alli???

Cuelga el codigo como lo tienes hasta ahora para ver, tanto el del formulario como el php que lo recibe
__________________
[email protected]
HITCEL
  #24 (permalink)  
Antiguo 15/04/2016, 12:59
 
Fecha de Ingreso: abril-2016
Ubicación: Bogota
Mensajes: 16
Antigüedad: 8 años, 7 meses
Puntos: 0
Respuesta: Inventario

Formulario:

Código HTML:
Ver original
  1. <div align="right" class="Estilo1">
  2.    <ul><li></li>
  3.      <li class="Estilo2"><a href="desconectar.php">Cerrar Sesion </a></li>
  4.    </ul>
  5. </div>
  6.  
  7. <form id="form2" name="form2" method="post" action="recibirnota.php" enctype="multipart/form-data">
  8.   <p align="center">&nbsp;</p>
  9. <br /><br />
  10.   <p align="center" class="Estilo1"><div class="alert alert-info">
  11. <h1>Nota de Producción</h1>
  12. </div>
  13.  
  14. <br>
  15. </p>
  16.   <p align="center" class="Estilo1">&nbsp;</p>
  17. <center><table width="37%" border="1" align="center" bgcolor="#CCCCCC">
  18.     <tr>
  19.       <td width="50%"><div align="right"><strong>Nombre del Producto </strong> </div></td>
  20.       <td width="50%">
  21.  
  22.         <div align="left">
  23.           <input name="producto" type="text" id="producto" />
  24.         </div>          </td></tr>
  25.     <tr>
  26.       <td><div align="right"><strong>Cantidad</strong></div></td>
  27.       <td>
  28.         <div align="left">
  29.           <input name="cantidad" type="text" id="cantidad" />
  30.           </div></td></tr>
  31.     <tr>
  32.       <td> <div align="right"><strong>Materia Prima</strong></div></td>
  33.       <td>
  34.         <div align="left">
  35.           <input name="materiaprima"  type="text" id="materiaprima" />
  36.           </div></td></tr>
  37.     <tr>
  38.       <td><div align="right"><strong>Operaciones</strong></div></td>
  39.       <td>
  40.         <p align="left">
  41.           <input name="opr"  type="text" id="opr" />
  42.           <br />
  43.           </p></td>
  44.     </tr>
  45.     <tr>
  46.       <td>
  47.         <div align="right"><strong>Características </strong></div></td>
  48.       <td>
  49.         <div align="left">
  50.           <input name="caract"  type="text" id="caract" />
  51.           </div></td></tr>
  52.     <tr>
  53.       <td><div align="right"><strong>Id_Producto-Materia Prima </strong></div></td>
  54.       <td><input name="idproducto" type="text" id="idproducto" />      </td>
  55.     </tr>
  56.     <tr>
  57.       <td>
  58.         <div align="right"><strong>Porcentaje-cantidad de materia prima </strong>
  59.             </label>
  60.         </div></td>
  61.       <td>
  62.         <div align="left">
  63.           <input name="porcentaje" type="text" id="porcentaje" />
  64.           </div></td></tr>
  65.  <tr>
  66.       <td colspan="2"><div align="center"><table class="table table-striped">
  67. <button type="button" name="crea" onClick="cargaProd();" class="btn btn-primary" )>
  68. Nueva Linea</button>
  69.   <tbody id="listaArticulos">
  70.   <tr>
  71.     <td></td>
  72.     <td></td>
  73.     <td></td>
  74.   </tr>
  75.   </tbody>
  76. </table></div>        <div align="center"></div>        <div align="center"></div></td>
  77.       </tr>
  78.     <tr>
  79.       <td><input type="submit" name="Submit" value="Enviar" /></td>
  80.       <td><input type="reset" name="Submit2" value="Restablecer" /></td>
  81.     </tr>
  82.    
  83.   </table>
  84. [HIGHLIGHT="Javascript"] <script>
  85. var con = 1;
  86. function cargaProd()
  87. {
  88. var linea = '<tr><td>'+con+'</td><td><input type="text" name="articulo[]" placeholder=" Articulo" class="form-control"/></td><td><input type="text" name="cantidad[]" placeholder="Cantidad" class="form-control"/></td></tr>';
  89.  
  90. $('#listaArticulos tr:last').after(linea);
  91.  
  92. con = con+1
  93.  
  94. }
</center>
</form>
[/HIGHLIGHT]

Código PHP:
Ver original
  1. $cuenta = count($_POST['articulo'],[cantidad]});
  2.  
  3. $noProcede = array();
  4.  
  5. for($i=0; $i < $cuenta; $i++)
  6.     {
  7.  
  8.     //preparamos las variables
  9.     $arti = $_POST['articulo'][$i];
  10.     $cant = $_POST['cantidad'][$i];
  11.  $db=0;
  12.     //consultamos el stock
  13.     global $db;
  14.     $consulta = $db->query("SELECT descripcion,stock FROM articulo WHERE descripcion = '$descripcion' ");
  15.     $r_arti = $consulta->fetch_assoc();
  16.  
  17.     if($cant > $r_arti)
  18.         {
  19.         //si el stock es mayor cargamos el producto en un array y lo eliminamos de la presente consulta (no probado, realiza tus pruebas)
  20.         $noProcede['descripcion'] = $arti;
  21.         unset($arti[$i]);
  22.         unset($cantidad[$i]);
  23.        
  24.      
  25.         }else
  26.         {
  27.         //si no es mayor lo actualizamos
  28.  
  29.         $actu = $db->query("UPDATE articulo SET stock = stock-$cant WHERE  descripcion = '$descripcion'");
  30.        
  31.            echo "La Nota de Produccion se ha realizado con exito";
  32.    
  33.             header('location: resultado_nota.php');
  34.         exit();
  35.  
  36.         }
  37.  
  38.  
  39.  
  40.     }
  41.  
  42. $idproducto=$_POST["idproducto"];
  43. $result=("SELECT descripcion,stock FROM articulo WHERE id_articulo = $idproducto");
  44.  
  45.  
  46. $producto=$_POST["producto"];
  47. $cantidad=$_POST["cantidad"];
  48. $materiaprima=$_POST["materiaprima"];
  49. $idproducto=$_POST["idproducto"];
  50. $opr=$_POST["opr"];
  51. $porcentaje=$_POST["porcentaje"];
  52. mysql_query("INSERT INTO nota(id_nota, producto, cantidad, materiaprima, operaciones, porcentaje, id_articulo)VALUES(NULL, '$producto', '$cantidad', '$materiaprima', '$opr', '$porcentaje', '$idproducto')");
  53. ?>
  #25 (permalink)  
Antiguo 15/04/2016, 13:08
 
Fecha de Ingreso: abril-2016
Ubicación: Bogota
Mensajes: 16
Antigüedad: 8 años, 7 meses
Puntos: 0
Respuesta: Inventario

Cita:
Iniciado por xfxstudios Ver Mensaje
Y adivinamos cual es la linea 40 o que tienes alli???

Cuelga el codigo como lo tienes hasta ahora para ver, tanto el del formulario como el php que lo recibe
la linea 40 es en donde estamos haciendo la consulta en un query, aunque la declare como variable global no funciona, me explico: en este paso ($db->query), hay me indica que hay un error que no es un objeto no se como arreglarlo, creo que me tocó dejar el inventario con la operación a un solo producto por que queria que se le pudiera hacer el descuento a todos los productos que se escogieran.
  #26 (permalink)  
Antiguo 15/04/2016, 19:43
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 9 años, 5 meses
Puntos: 263
Respuesta: Inventario

esa es la variable de conexion, $consulta = $db->query y te da ese error porque tu archivo de conexion imagino es distinto, por ende, debes reemplazarla por el correcto o el que estes utilizando, por eso te dije que colocaras el codigo completo para ayudarte mejor
__________________
[email protected]
HITCEL

Etiquetas: inventario, mysql, select, sql
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 21:19.