Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Comprobar en un while not eof si tiene stock un producto (https://www.clubdelphi.com/foros/showthread.php?t=51263)

Petolansa 11-12-2007 04:05:15

Comprobar en un while not eof si tiene stock un producto
 
Buenas gente, aca de nuevo, saca vez que reviso mi programa me doy cuenta que me falta algo, queria saber como comprobar si un producto que aggrege a una tabla temporal o unos productos, tienen stock en el momento que me los plasma en el dbgrid.

Se me ocurrio algo asi, pero me parce que es una burrada porque no anda.

Código Delphi [-]
while not mdtemporal.Eof do
begin
if mdtemporalcodigo.Value=dmzingueria.Stockprocod.Value and mdtemporalcantidad.Value <
dmzingueria.StockPROSTKACT.Value then showmessage ('Este producto esta bajo de Stock')
else
showmessage('Producto Agregado con exito');
end;
mdtemporal.Next;
end;

Quiero recorrer la tabla temporal y quiero hacer que cuando el codigo del producto de mi tabla temporal es igual al codigo del producto de mi tabla de stock y la cantidad de mi tabla temporal es mayor a la de mi prostockactual me diga que este producto esta bajo de stock, y ni se me ocurrio como agregarle la descripcion al cartelido y no si es posible.
La idea es que agrege todos los priodcutos que quiero y cuando le de procesar que seria el paso intermedio al de ir al form de dorma de pago me compruebe si hay stock.
si no me explique bien me avisan y doy mas datos.

Saludos!:)

marcoszorrilla 11-12-2007 07:12:14

Yo lo que haría es, en la tabla productos, añadir el campo, Existencias y punto pedido.

Cada vez que haces una venta te tendrá que restar estas de la tabla Productos, campo existencias, de esta manera, con tan solo consultar un producto sabrás la existencias que tienes en ese momento, sin tener que recorrer la tabla, aunqu ésta sea temporal. El punto pedido sería para que te avisara que productos son necesario reponer por ser sus existencias insuficientes.

Un Saludo.

Petolansa 11-12-2007 19:08:01

Buen consejo, lo que hago es cuando va a buscar el articulo a agregar coloreo la fila del dbgrid si el stock esta bajo el minimo o en 0.
Otra cosa que me esta matando, me pasa que cuando quiero pasar datos entres queryes o tablas temporales no se como comprobar si el producto ya existe en esa tabla. O sea quiero que cuando selecciono un pdoducto, comprobarn si esta, si esta que me muestre un mensaje que diga, ese producto ya existe, sino que me lo agrege. Como seria si quiero pasar uno y com seria si quiero pasar varios datos juntos.
Estuve intentando lo siguiente, que obviamente no funciona.
En este caso es una nota de credito, que lo que hago es ir agregando los productos que se va a realizar la devolucion de mercaderia.

Código Delphi [-]
WHILE NOT mddevolucion.eof do
  begin
  if mddevolucioncodipro.Value:=query2codipro.Value
    then showmessage('Producto ya existe');
  else
    mddevolucion.Append;
    mddevolucioncodipro.Value:=query2codipro.Value;
    mddevolucioncantidad.Value:=query2cantidad.Value;
    mddevolucionconcepto.Value:=query2concepto.Value;
    mddevolucionprecio.Value:=query2precio.Value;
    mddevolucionprecioneto.Value:=query2precioneto.Value;
    mddevolucion.Next;
  end;

end.

Esto me da expression must be boolean y me salta que es showmessage.

Saludos! Espero puedan ayudarme:)

marcoszorrilla 11-12-2007 21:15:52

Haz los cambios que ves:(punto y coma en rojo, quitar).
Código Delphi [-]
WHILE NOT mddevolucion.eof do
  begin
  if mddevolucioncodipro.Value:=query2codipro.Value
    then showmessage('Producto ya existe');
  else
begin
    mddevolucion.Append;
    mddevolucioncodipro.Value:=query2codipro.Value;
    mddevolucioncantidad.Value:=query2cantidad.Value;
    mddevolucionconcepto.Value:=query2concepto.Value;
    mddevolucionprecio.Value:=query2precio.Value;
    mddevolucionprecioneto.Value:=query2precioneto.Value;
    mddevolucion.Next;
end;

  end;

end.

Un Saludo.

Petolansa 11-12-2007 21:43:26

Gracias marcos, saque el punto y la coma y agregue el begin despues del else, epro me sigue tirando type of expression must be BOOLEAN, le lo dan entre el the y el showmessage. Porque es esto??

Saludos!:)

marcoszorrilla 11-12-2007 21:45:22

Quita los dos puntos que ves en rojo.
Código Delphi [-]
WHILE NOT mddevolucion.eof do
  begin
  if mddevolucioncodipro.Value:=query2codipro.Value
    then showmessage('Producto ya existe');
  else
begin
    mddevolucion.Append;
    mddevolucioncodipro.Value:=query2codipro.Value;
    mddevolucioncantidad.Value:=query2cantidad.Value;
    mddevolucionconcepto.Value:=query2concepto.Value;
    mddevolucionprecio.Value:=query2precio.Value;
    mddevolucionprecioneto.Value:=query2precioneto.Value;
    mddevolucion.Next;
end;

  end;

end.
Un Sludo.

egostar 11-12-2007 21:47:02

Cita:

Empezado por Petolansa (Mensaje 251909)
Gracias marcos, saque el punto y la coma y agregue el begin despues del else, epro me sigue tirando type of expression must be BOOLEAN, le lo dan entre el the y el showmessage. Porque es esto??

Saludos!:)

El problema es que un if nunca debe de hacer la comparación con := , solo es =.
if mddevolucioncodipro.Value = query2codipro.Value

Salud OS

Caral 11-12-2007 21:56:27

Hola
Código Delphi [-]
WHILE NOT mddevolucion.eof do
  begin
  if mddevolucioncodipro.Value  =  query2codipro.Value then
     showmessage('Producto ya existe');
  end
  else
begin
    mddevolucion.Append;
    mddevolucioncodipro.Value:=query2codipro.Value;
    mddevolucioncantidad.Value:=query2cantidad.Value;
    mddevolucionconcepto.Value:=query2concepto.Value;
    mddevolucionprecio.Value:=query2precio.Value;
    mddevolucionprecioneto.Value:=query2precioneto.Value;
    mddevolucion.Next;
end;
end.
Saludos

Petolansa 11-12-2007 22:04:34

Gracias egostar y Caral, era eso:D.
Saludos!:)

marcoszorrilla 11-12-2007 22:07:25

No es por nada, pero ya lo había dicho.


Un Saludo.

egostar 11-12-2007 22:49:40

Cita:

Empezado por marcoszorrilla (Mensaje 251927)
No es por nada, pero ya lo había dicho.


Un Saludo.

Muy cierto, nos ganaste por una nariz, pero fuiste tan veloz que no apareciste en la foto :D:D:D

Salud OS

marcoszorrilla 11-12-2007 22:57:52

Hablando de narices, me recuerda el ínclito Don Francisco de Quevedo y Villegas:
Cita:

A una nariz


Érase un hombre a una nariz pegado,
érase una nariz superlativa,
érase una nariz sayón y escriba,
érase un peje espada muy barbado.

Era un reloj de sol mal encarado,
érase una alquitara pensativa,
érase un elefante boca arriba,
era Ovidio Nasón más narizado.

Érase un espolón de una galera,
érase una pirámide de Egipto,
las doce Tribus de narices era.

Érase un naricísimo infinito,
muchísimo nariz, nariz tan fiera
que en la cara de Anás fuera delito.
Un Saludo.

egostar 11-12-2007 23:03:14

Pues que decir, realmente disfruto tu sapiensa amigo marcoszorrilla. ;)

Salud OS

marcoszorrilla 12-12-2007 07:05:11

Cita:

“Sapienso, luego existo”, podría
El bueno de René dijo:

"Cogito ergo sum" , "Je pense donc je suis".

Pero me gustó el "sapienso".

Un Saludo desde la glándula pineal.


La franja horaria es GMT +2. Ahora son las 10:57:47.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi