Ver Mensaje Individual
  #10  
Antiguo 05-07-2011
Dens Dens is offline
Miembro
 
Registrado: ago 2010
Posts: 20
Reputación: 0
Dens Va por buen camino
Cita:
Empezado por lusinpa Ver Mensaje
Ok me encuentro haciendo una aplicacion web para realizando pedidos por internet , los productos son almacenados en el sistema A2 que es por donde ellos realizan la ventas y todo tipo tipo de operaciones en dicho sistema pormedio de sus vendedores o via telefonica.

Realice la conexion por medio del conector odbc lo que me parecio algo muy sencillo y estudie todas sus sintasis para poder manejarlas de la aplicacion web, no utilizo el vcl que todo el mundo nombra ya que no tengo problemas para vizualizar las tablas y tengo un manejador de base de datos que permite ver la estructuras y datos de las tablas.

Yo cree la interfaz mostre los departamentos al selecionar un departamento muestra todos los productos de dicho departamento y le agregue la opción al seleccionar el producto se esta cargando n el carrito de compras.

pero para yo poder realizar un pedido satisfactorio debo mostrar cliente que pueda vr cual es el precio y la existencia de ese producto. y bueno eh estado buscando la tabla donde se almacena los precios y la existencia o por lo menos los precio del producto, ya que alli se manejan varios precios.

buscando por internet pude analizar que los precios y la exsitencia se encuetran en la tabla Sfixed y puedo ver que tiene tres campos Blob yo pense que tiene que estar en la el campo FX_COSTOS y viendo tus comentrio pude ver que estaba en lo correcto.

bueno que te parece estoy parado por no poder simplemente leer el los precio y la existencia es mi primera interaccion con esta base de datos.

Si me puedes ayudar en algo te lo agradeceria de pana y lo que necesites de programacion web enviame un correo que yo con gusto te resolvere.

Hola viejo, bueno parami esto ha sido todo un dolor de cabeza por que tampoco acostumbro a trabajar con este tipo de base de datos, pero en fin.

contestando tus dudas, efectivamente en el campo fx_costos estan los precios, de las existencias no tengo ni idea por que en este proyecto no necesite meterme con existencias ya que estoy trabajando con puro servicios.



//Registro para almacenar los costos y precios de inventario
//en un BlobField;
RegUnPrecio = Record
PorcUtil ,
PorcUtilEx : Boolean;
Utilidad ,
UtilidadEx ,
SinImpuesto ,
MtoImpuesto1 ,
MtoImpuesto2 ,
TotalPrecio ,
TotalPrecioEx: Currency;
TipoRound : Byte;
end;

RegDePrecios = Array[1..6] of RegUnPrecio;

//Este registro se guarda en un campo Blob llamado FX_COSTOS
//del Archivo SFixed.Dat
RegCostos = Record
CodeCompra : String[50]; //Utilizado en el modulo de compras y el generador de reportes solo ejecucion
VImpuesto1 ,
VImpuesto2 : Boolean; //Impuestos Activados
CostoAnteriorBs ,
CostoAnteriorEx ,
CostoActualBs ,
CostoActualEx ,
CostoPromedioBs ,
CostoPromedioEx ,
MImpuesto1 ,
MImpuesto2 : Currency;
PorcentImp1 ,
Exento1 ,
PorcentImp2 ,
Exento2 : Boolean;
FechaVencimiento: TDateTime; //Lo uso en el modulo de compras para incluir el vencimiento
NumeroDeLote : String[42]; //y el numero de lote de los productos con costos por lote
CostoReferencia : Double; //Costo de referencia para aumentar los precios
Precios : RegDePrecios;
end;


//A CONTINUACION UN EJEMPLO DE COMO LEER UN CAMPO BLOB QUE CONTIENE COSTOS Y PRECIOS

if FX_FIXED.FindKey('B',XXXXX); Codigo del producto
if OkR then
begin
SourceField :=FX_FIXED.FindField('FX_COSTOS');
Try
BlobStreamData :=TDBISAMBlobStream.Create(TBlobField(SourceField),bmRead);
BlobStreamData.Seek(0,0);
BlobStreamData.Read(CostosProducto,SizeOf(CostosProducto)); //CostosProducto : RegCostos
Finally
BlobStreamData.Free;
end;
end;


esta es la estructura de la tabla fixed para delphi, pero supongo que para php tendra el mismo principio.
la idea es convertir el campo del registro que llamaste en un stream
para que puedas acceder a los multiples contenidos dentro de este campo, es como un campo matricia, (OJO yo te estoy diciendo lo que yo entendi, hace 15 horas me estaba partiendo el coco mendandole a todo el mundo).

SourceField :=FX_FIXED.FindField('FX_COSTOS'); //este es el campo del registro que llamamos al hacer la consulta

// aqui utilizamos blobstream.create para convertir en stream el campo BlobStreamData:=TDBISAMBlobStream.Create(TBlobField(SourceField),bmRead);
BlobStreamData.Seek(0,0);
BlobStreamData.Read(CostosProducto,SizeOf(CostosProducto));aqui le decimos que lea el record de arriba que se llama regcostors //CostosProducto : RegCostos


costosproducto es una variable tipo regcostos
regcostos es el record donde se van a almacenar los "campos" que estas sacando de esecampo (fx_costos) el cual contiene un campo llamado precios que es el que te interesa,este campo es de tipo regdeprecios que es un array que contiene los 6 precios, 6 costos etc

RegDePrecios = Array[1..6] of RegUnPrecio;

corrijanme si me equivoco por favor.

para sacar el precio debes acceder a la variable costosproducto.precios[1].totalprecio o

PorcUtil ,
PorcUtilEx : Boolean;
Utilidad ,
UtilidadEx ,
SinImpuesto ,
MtoImpuesto1 ,
MtoImpuesto2 ,
TotalPrecio ,
TotalPrecioEx: Currency; cualquiera de estos valores que estaran dentro del array precio

RegDePrecios = Array[1..6] of RegUnPrecio;
Precios : RegDePrecios;


en sintesis hermano esa esla estructura dela tabla que me dio el personal de soporte de a2, a mi me funciono en delphi pero tuve que sentarme a analizarla bien , explora esecodigo y trata de llevarlo a php investigando cual es la funcion para hacer blobstream. y bueno lo de los records no se como sera en php.

un saludo y espero que te sirva de algo, cualquiercosa escribe yo ando conectado hoy todo el dia por que estoy matando este sistemita.

Última edición por Dens fecha: 05-07-2011 a las 23:37:57.
Responder Con Cita