Ver Mensaje Individual
  #6  
Antiguo 22-03-2007
Avatar de BlackDaemon
BlackDaemon BlackDaemon is offline
Miembro
 
Registrado: dic 2006
Ubicación: Bolivia - Santa Cruz
Posts: 206
Reputación: 18
BlackDaemon Va por buen camino
Bueno pues.. he estado toda la tarde en esto y lo que avancé fue hacer la tabla respectiva para los precios.. ya que manejan 6 precios distintos hice mi tabla de esta manera.. agregué un campo para Código de Barras.. por que con el tiempo creo que se manejarán así todo.

TABLA DE TARIFAS

Código SQL [-]
CREATE TABLE `tarifas` (
  `CodigoBarra` varchar(20) NOT NULL,
  `CodProducto` varchar(20) NOT NULL,
  `TipoTarifa` varchar(20) NOT NULL,
  `Precio` double NOT NULL,
  KEY `CodigoBarra` (`CodigoBarra`),
  KEY `CodProducto` (`CodProducto`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Bueno una ves creeada la tabla tuve que modificar la parte de AGREGAR PRODUCTOS .. donde antes ahí se ponían los precios y era con una simple tabla de conectar unos DBEdits a cada campo de la tabla PRODUCTOS.. los DBEdits correspondían a cada precio.. osea eran 6.
Ahora.. los precios los agrego de esta forma..
A mi parecer esta una chapucera.. por que soy nuevo en esto pero me andá bién y eso me hace sentir bién.. pero creo que se podría mejorar..
Aquí les dejo el código del botón que agrega los los precios en la nueva TABLA

Código Delphi [-]
procedure TFrmAgregarProductos.SBGuardarClick(Sender: TObject);
begin
with DM.ZQPrecios do
begin
  Close;
  SQL.Clear;

  SQL.Add('INSERT INTO `tarifas` ( `CodigoBarra` , `CodProducto` , `TipoTarifa` , `Precio` )');
  SQL.Add('VALUES (:CB, :CP, :TT1, :P1), ');
  SQL.Add('(:CB, :CP, :TT2, :P2), ');
  SQL.Add('(:CB, :CP, :TT3, :P3), ');
  SQL.Add('(:CB, :CP, :TT4, :P4), ');
  SQL.Add('(:CB, :CP, :TT5, :P5), ');
  SQL.Add('(:CB, :CP, :TT6, :P6)');

  // Si, asignamos los parámetros xDD
  ParamByName('CB').AsString := ECodigoBarra.Text;
  ParamByName('CP').AsString := ECodProducto.Text;
  ParamByName('TT1').AsString := 'Precio1';
  ParamByName('TT2').AsString := 'Precio2';
  ParamByName('TT3').AsString := 'Precio3';
  ParamByName('TT4').AsString := 'Precio4';
  ParamByName('TT5').AsString := 'Precio5';
  ParamByName('TT6').AsString := 'Precio6';

  ParamByName('P1').AsString := EPrecio1.Text;
  ParamByName('P2').AsString := EPrecio2.Text;
  ParamByName('P3').AsString := EPrecio3.Text;
  ParamByName('P4').AsString := EPrecio4.Text;
  ParamByName('P5').AsString := EPrecio5.Text;
  ParamByName('P6').AsString := EPrecio6.Text;
  // Ejecutamos e insertamos todos los valores asignados
  ExecSQL;

end;

  DM.ZTAlmacen.Post; -->  Este agrega las demas descripciones pero a la tabla PRODUCTOS.. lo de arriba a la nueva tabla TARIFAS

end;

Bueno.. esa parte ya la arreglé con eso.. PERO tengo unas dudas ahora.. cuando se realize una búqueda de un producto y quiero que me lo muestre en un DBGrid como lo tendría que hacer ?? por ej

Código SQL [-]
SELECT * FROM productos WHERE codproducto = :codigo

Bueno en primer lugar no tendré para hacer búsquedas por Código de producto ni por Codigo de barras.. por que ya esos datos los guardo en otra tabla.. ahora podría buscar por CATEGORIA o DESCRIPCION del produto.. peroooo ya no me mostraría el codigo de barras, código de producto NI los precios :S por que estarán en otra tabla.
Y si realizo la búsqueda en la tabla TARIFAS, ahí podré buscar por códigos pero tampoco me mostrarán las descripciones ni las cantidades disponibles que eso se guarda en la TABLA productos.. en fin son dudas que tengo y que con eso ya se fregó gran parte de mi programa.. pero si es por el BIEN estoy de acuerdo en solucionar esas partes ... de las búsquedas etc.
o para hacer las búsquedas tendría que llamar a las 2 TABLAS ?? a la PRODUCTOS y TARIFAS ?? como sería eso son SQL ?

Código SQL [-]
SELECT * FROM productos, tarifas

si es así no habrá problemas..

Ahora seguiré probando el código para actualizar toda la fila de PRECIOS

pero hasta el momento como voy ?? está bién lo que hago ??

ahh una cosa mas.. que he estado pensando cuando uno agrega un producto indicas que si es Und, Pza, Doc == Unidad, Pieza, Docena
bueno eso donde cumple su función sería a la hora de agregar los produtos al StringGrid verdad ?? si es Docena pues multiplicar el precio de la Unidad por 12 supongo.. pero creo que mes estoy pasando a otro punto, pero igual quería saber por si puedo hacer algo ahora o eso luego.

bueno saludos

salud!!

Última edición por BlackDaemon fecha: 22-03-2007 a las 01:56:53.
Responder Con Cita