microbiano
24-12-2010, 15:14:45
bueno como comente hace unos dias estoy en actualizacion de un pequeño punto de venta y quiero actualizar el form de facturacion, para ello utilizo un TStringGrid como detalle de factura pero la verdad es engorroso mostrar informacion en el ya lo he hecho de hecho funciona, pero he oido que todo este codigo se podria evitar si pudiera crear una tabla temporal con el componente JVMemorydataset de l aJEDi, ya logre crear la tabla y agregar elementos, pero no se como interactuar con ellos y como afectaria a mi base de produstos.
ongo el codigo que utilizo para llegar en Tsgrind Grid espero algun consejo pero de antamno muchas gracias
procedure TFfactura.txtcodigoExit(Sender: TObject);
var
wprecio_total:Double;
i:Integer;
{variables para modificaciones}
wcodigomodificar,wdescripcionmodificar:string;
wventa_totalmodificada:Double;
wdescuentomodificar,wpreciomodificar:Double;
wtotalmodificar:Double;
wOK:Boolean;
begin
wcodigobarras:=Trim(Ffactura.txtcodigo.Text);
if wcodigobarras<>'' then
begin
For i:=1 to Ffactura.SGFact.RowCount-1 do
if Ffactura.SGFact.Cells[0,i] = Trim(wcodigobarras) then
begin
wOK:=True;
{codigo para cuando el registro ya existe en el detalle de la factura}
if wOK=True then
begin
{tomo los registros que existen en el flexgrid de acuerdo al registro que voy agregar}
wcantidadmodificar:=StrToFloat(SGFact.Cells[2,i]);//tomo el valor de la cantidad que tengo en el flexgrid
wpreciomodificar:=StrToFloat(Ffactura.SGFact.Cells[3,i]);//paso el valor del precio a la variablde de precio
wcodigomodificar:=Ffactura.SGFact.Cells[0,i]; //tomo el codigo de barras
wdescripcionmodificar:=Ffactura.SGFact.Cells[1,i]; //tomo la descripcion
if (wcantidadmodificar<=0) and (wdescuento_considerar=0) then
begin
Ffactura.SGFact.Cells[0,cuenta] := wcodigobarras;//agrego codigo de wcodigobarras
Ffactura.SGFact.Cells[1,Cuenta]:=wdescripcionmodificar;
Ffactura.wprecio_venta:=wprecio_venta;//StrToFloat(FieldByname('precioventa').AsVariant);//pongo el precio de venta en la variable de precio
Ffactura.SGFact.Cells[2,Cuenta]:=FloatToStr(wcantidad_venta+1);
Ffactura.SGFact.Cells[3,Cuenta]:=FloatToStr(Ffactura.wprecio_venta);//pongo el precio del articulo con formato de miles
//Ffactura.SGFact.Cells[3,Cuenta]:=FormatFloat('###,###,###,##0.00', StrToFloat(Ffactura.SGFact.Cells[3,Cuenta]));
Ffactura.SGFact.Cells[4,Cuenta]:='0.00';//pongo descuento igual a cero
//pongo las variables de cantidad y descuento en numero para poder realizar operaciones
wcantidad_venta:=1;
wdescuento_considerar:=0;
wimporte_del_descuento:=((wprecio_venta*wdescuento_considerar)/100);
wprecio_con_descuento:=(wprecio_venta-wimporte_del_descuento);
wventa_total_importe:=(wcantidad_venta * wprecio_con_descuento);
SGFact.Cells[5,Cuenta]:=FloatToStr(wventa_total_importe);
//Ffactura.SGFact.Cells[5,Cuenta]:=FormatFloat('###,###,###,##0.00', StrToFloat(Ffactura.SGFact.Cells[5,Cuenta]));
//calculo totales
calcula_totales;
wcantidad_venta:=0;
wdescuento_considerar:=0;
Ffactura.txtcodigo.Text:='';
ffactura.txtcodigo.SetFocus;
Cuenta:=Cuenta+1;
exit;
end;
if (wcantidad_venta>=1) and (wdescuento_considerar=0) then
begin
Ffactura.SGFact.Cells[0,cuenta] := wcodigobarras;//agrego codigo de wcodigobarras
Ffactura.SGFact.Cells[1,Cuenta]:=wdescripcionmodificar;//(FieldByname('nombre').AsString);//agrego nombre del producto
Ffactura.wprecio_venta:=wprecio_venta;//StrToFloat(FieldByname('precioventa').AsVariant);//pongo el precio de venta en la variable de precio
Ffactura.SGFact.Cells[2,Cuenta]:=FloatToStr(wcantidad_venta+1);
Ffactura.SGFact.Cells[3,Cuenta]:=FloatToStr(Ffactura.wprecio_venta);//pongo el precio del articulo con formato de miles
//Ffactura.SGFact.Cells[3,Cuenta]:=FormatFloat('###,###,###,##0.00', StrToFloat(Ffactura.SGFact.Cells[3,Cuenta]));
Ffactura.SGFact.Cells[4,Cuenta]:='0.00';//pongo descuento igual a cero
//pongo las variables de cantidad y descuento en numero para poder realizar operaciones
//wcantidad_venta:=1;
wdescuento_considerar:=0;
wimporte_del_descuento:=((wprecio_venta*wdescuento_considerar)/100);
wprecio_con_descuento:=(wprecio_venta-wimporte_del_descuento);
wventa_total_importe:=(wcantidad_venta * wprecio_con_descuento);
SGFact.Cells[5,Cuenta]:=FloatToStr(wventa_total_importe);
//Ffactura.SGFact.Cells[5,Cuenta]:=FormatFloat('###,###,###,##0.00', StrToFloat(Ffactura.SGFact.Cells[5,Cuenta]));
//calculo totales
calcula_totales;
wcantidad_venta:=0;
wdescuento_considerar:=0;
Ffactura.txtcodigo.Text:='';
ffactura.txtcodigo.SetFocus;
Cuenta:=Cuenta+1;
exit;
end;
if (wcantidad_venta>=1) and (wdescuento_considerar>0) then
begin
Ffactura.SGFact.Cells[0,cuenta] := wcodigobarras;//agrego codigo de wcodigobarras
Ffactura.SGFact.Cells[1,Cuenta]:=wdescripcionmodificar;//(FieldByname('nombre').AsString);//agrego nombre del producto
Ffactura.wprecio_venta:=wprecio_venta;//StrToFloat(FieldByname('precioventa').AsVariant);//pongo el precio de venta en la variable de precio
Ffactura.SGFact.Cells[2,Cuenta]:=FloatToStr(wcantidad_venta);
Ffactura.SGFact.Cells[3,Cuenta]:=FloatToStr(Ffactura.wprecio_venta);//pongo el precio del articulo con formato de miles
//Ffactura.SGFact.Cells[3,Cuenta]:=FormatFloat('###,###,###,##0.00', StrToFloat(Ffactura.SGFact.Cells[3,Cuenta]));
Ffactura.SGFact.Cells[4,Cuenta]:=FloatToStr(wdescuento_considerar);
//pongo las variables de cantidad y descuento en numero para poder realizar operaciones
//wcantidad_venta:=1;
wimporte_del_descuento:=((wprecio_venta*wdescuento_considerar)/100);
wprecio_con_descuento:=(wprecio_venta-wimporte_del_descuento);
wventa_total_importe:=(wcantidad_venta * wprecio_con_descuento);
SGFact.Cells[5,Cuenta]:=FloatToStr(wventa_total_importe);
//Ffactura.SGFact.Cells[5,Cuenta]:=FormatFloat('###,###,###,##0.00', StrToFloat(Ffactura.SGFact.Cells[5,Cuenta]));
//calculo totales
calcula_totales;
wcantidad_venta:=0;
wdescuento_considerar:=0;
Ffactura.txtcodigo.Text:='';
ffactura.txtcodigo.SetFocus;
Cuenta:=Cuenta+1;
exit;
end;
Exit;
end;
end;
{verifico la informacion del resultado para ver si agrego por primera vez el producto}
if wOK=False then
begin
if wcodigobarras<>'' then
begin
with Fmodulo.Qry_Temp do
begin
Close;
sql.clear;
SQL.Add('select * from articulo');
SQL.Add('where codigobarras=:Pcodigobarras');
Parameters.ParamByName('pcodigobarras').Value:=Trim(wcodigobarras);
try
open;
if not Fmodulo.Qry_Temp.IsEmpty then
begin
while not Fmodulo.Qry_Temp.Eof do
begin
If Cuenta > 1 then SGFact.RowCount := SGFact.RowCount + 1;
if (wcantidad_venta<=0) and (wdescuento_considerar=0) then
begin
Ffactura.SGFact.Cells[0,cuenta] := wcodigobarras;//agrego codigo de wcodigobarras
Ffactura.SGFact.Cells[1,Cuenta]:=(FieldByname('nombre').AsString);//agrego nombre del producto
Ffactura.wprecio_venta:=StrToFloat(FieldByname('precioventa').AsVariant);//pongo el precio de venta en la variable de precio
Ffactura.SGFact.Cells[2,Cuenta]:='1';
Ffactura.SGFact.Cells[3,Cuenta]:=FloatToStr(Ffactura.wprecio_venta);//pongo el precio del articulo con formato de miles
//Ffactura.SGFact.Cells[3,Cuenta]:=FormatFloat('###,###,###,##0.00', StrToFloat(Ffactura.SGFact.Cells[3,Cuenta]));
Ffactura.SGFact.Cells[4,Cuenta]:='0.00';//pongo descuento igual a cero
//pongo las variables de cantidad y descuento en numero para poder realizar operaciones
wcantidad_venta:=1;
wdescuento_considerar:=0;
wimporte_del_descuento:=((wprecio_venta*wdescuento_considerar)/100);
wprecio_con_descuento:=(wprecio_venta-wimporte_del_descuento);
wventa_total_importe:=(wcantidad_venta * wprecio_con_descuento);
SGFact.Cells[5,Cuenta]:=FloatToStr(wventa_total_importe);
//Ffactura.SGFact.Cells[5,Cuenta]:=FormatFloat('###,###,###,##0.00', StrToFloat(Ffactura.SGFact.Cells[5,Cuenta]));
//calculo totales
calcula_totales;
wcantidad_venta:=0;
wdescuento_considerar:=0;
Ffactura.txtcodigo.Text:='';
ffactura.txtcodigo.SetFocus;
Cuenta:=Cuenta+1;
exit;
end;
if (wcantidad_venta>=1) and (wdescuento_considerar=0) then
begin
Ffactura.SGFact.Cells[0,cuenta] := wcodigobarras;//agrego codigo de wcodigobarras
Ffactura.SGFact.Cells[1,Cuenta]:=(FieldByname('nombre').AsString);//agrego nombre del producto
Ffactura.wprecio_venta:=StrToFloat(FieldByname('precioventa').AsVariant);//pongo el precio de venta en la variable de precio
Ffactura.SGFact.Cells[2,Cuenta]:=FloatToStr(wcantidad_venta);
Ffactura.SGFact.Cells[3,Cuenta]:=FloatToStr(Ffactura.wprecio_venta);//pongo el precio del articulo con formato de miles
//Ffactura.SGFact.Cells[3,Cuenta]:=FormatFloat('###,###,###,##0.00', StrToFloat(Ffactura.SGFact.Cells[3,Cuenta]));
Ffactura.SGFact.Cells[4,Cuenta]:='0.00';//pongo descuento igual a cero
//pongo las variables de cantidad y descuento en numero para poder realizar operaciones
//wcantidad_venta:=1;
wdescuento_considerar:=0;
wimporte_del_descuento:=((wprecio_venta*wdescuento_considerar)/100);
wprecio_con_descuento:=(wprecio_venta-wimporte_del_descuento);
wventa_total_importe:=(wcantidad_venta * wprecio_con_descuento);
SGFact.Cells[5,Cuenta]:=FloatToStr(wventa_total_importe);
//Ffactura.SGFact.Cells[5,Cuenta]:=FormatFloat('###,###,###,##0.00', StrToFloat(Ffactura.SGFact.Cells[5,Cuenta]));
//calculo totales
calcula_totales;
wcantidad_venta:=0;
wdescuento_considerar:=0;
Ffactura.txtcodigo.Text:='';
ffactura.txtcodigo.SetFocus;
Cuenta:=Cuenta+1;
exit;
end;
if (wcantidad_venta>=1) and (wdescuento_considerar>0) then
begin
Ffactura.SGFact.Cells[0,cuenta] := wcodigobarras;//agrego codigo de wcodigobarras
Ffactura.SGFact.Cells[1,Cuenta]:=(FieldByname('nombre').AsString);//agrego nombre del producto
Ffactura.wprecio_venta:=StrToFloat(FieldByname('precioventa').AsVariant);//pongo el precio de venta en la variable de precio
Ffactura.SGFact.Cells[2,Cuenta]:=FloatToStr(wcantidad_venta);
Ffactura.SGFact.Cells[3,Cuenta]:=FloatToStr(Ffactura.wprecio_venta);//pongo el precio del articulo con formato de miles
//Ffactura.SGFact.Cells[3,Cuenta]:=FormatFloat('###,###,###,##0.00', StrToFloat(Ffactura.SGFact.Cells[3,Cuenta]));
Ffactura.SGFact.Cells[4,Cuenta]:=FloatToStr(wdescuento_considerar);
//pongo las variables de cantidad y descuento en numero para poder realizar operaciones
//wcantidad_venta:=1;
wimporte_del_descuento:=((wprecio_venta*wdescuento_considerar)/100);
wprecio_con_descuento:=(wprecio_venta-wimporte_del_descuento);
wventa_total_importe:=(wcantidad_venta * wprecio_con_descuento);
SGFact.Cells[5,Cuenta]:=FloatToStr(wventa_total_importe);
//Ffactura.SGFact.Cells[5,Cuenta]:=FormatFloat('###,###,###,##0.00', StrToFloat(Ffactura.SGFact.Cells[5,Cuenta]));
//calculo totales
calcula_totales;
wcantidad_venta:=0;
wdescuento_considerar:=0;
Ffactura.txtcodigo.Text:='';
ffactura.txtcodigo.SetFocus;
Cuenta:=Cuenta+1;
exit;
end;
Next;
end;
end
else
begin
Application.MessageBox('No existe Producto en almacén'+CHR(13)+'con el Código de Barras proporcionado.','Error de Búsqueda',MB_TASKMODAL+ MB_ICONERROR);
Ffactura.txtcodigo.Text:='';
Ffactura.txtcodigo.SetFocus;
Exit;
end;
except
on E:EOleException do
begin
MessageDlg(Format('Error: %s Codigo: %d', [E.Message, E.ErrorCode]), mtError, [mbOK], 0);
end;
end;
end;
end;
Exit;
end;
end;
end;
ongo el codigo que utilizo para llegar en Tsgrind Grid espero algun consejo pero de antamno muchas gracias
procedure TFfactura.txtcodigoExit(Sender: TObject);
var
wprecio_total:Double;
i:Integer;
{variables para modificaciones}
wcodigomodificar,wdescripcionmodificar:string;
wventa_totalmodificada:Double;
wdescuentomodificar,wpreciomodificar:Double;
wtotalmodificar:Double;
wOK:Boolean;
begin
wcodigobarras:=Trim(Ffactura.txtcodigo.Text);
if wcodigobarras<>'' then
begin
For i:=1 to Ffactura.SGFact.RowCount-1 do
if Ffactura.SGFact.Cells[0,i] = Trim(wcodigobarras) then
begin
wOK:=True;
{codigo para cuando el registro ya existe en el detalle de la factura}
if wOK=True then
begin
{tomo los registros que existen en el flexgrid de acuerdo al registro que voy agregar}
wcantidadmodificar:=StrToFloat(SGFact.Cells[2,i]);//tomo el valor de la cantidad que tengo en el flexgrid
wpreciomodificar:=StrToFloat(Ffactura.SGFact.Cells[3,i]);//paso el valor del precio a la variablde de precio
wcodigomodificar:=Ffactura.SGFact.Cells[0,i]; //tomo el codigo de barras
wdescripcionmodificar:=Ffactura.SGFact.Cells[1,i]; //tomo la descripcion
if (wcantidadmodificar<=0) and (wdescuento_considerar=0) then
begin
Ffactura.SGFact.Cells[0,cuenta] := wcodigobarras;//agrego codigo de wcodigobarras
Ffactura.SGFact.Cells[1,Cuenta]:=wdescripcionmodificar;
Ffactura.wprecio_venta:=wprecio_venta;//StrToFloat(FieldByname('precioventa').AsVariant);//pongo el precio de venta en la variable de precio
Ffactura.SGFact.Cells[2,Cuenta]:=FloatToStr(wcantidad_venta+1);
Ffactura.SGFact.Cells[3,Cuenta]:=FloatToStr(Ffactura.wprecio_venta);//pongo el precio del articulo con formato de miles
//Ffactura.SGFact.Cells[3,Cuenta]:=FormatFloat('###,###,###,##0.00', StrToFloat(Ffactura.SGFact.Cells[3,Cuenta]));
Ffactura.SGFact.Cells[4,Cuenta]:='0.00';//pongo descuento igual a cero
//pongo las variables de cantidad y descuento en numero para poder realizar operaciones
wcantidad_venta:=1;
wdescuento_considerar:=0;
wimporte_del_descuento:=((wprecio_venta*wdescuento_considerar)/100);
wprecio_con_descuento:=(wprecio_venta-wimporte_del_descuento);
wventa_total_importe:=(wcantidad_venta * wprecio_con_descuento);
SGFact.Cells[5,Cuenta]:=FloatToStr(wventa_total_importe);
//Ffactura.SGFact.Cells[5,Cuenta]:=FormatFloat('###,###,###,##0.00', StrToFloat(Ffactura.SGFact.Cells[5,Cuenta]));
//calculo totales
calcula_totales;
wcantidad_venta:=0;
wdescuento_considerar:=0;
Ffactura.txtcodigo.Text:='';
ffactura.txtcodigo.SetFocus;
Cuenta:=Cuenta+1;
exit;
end;
if (wcantidad_venta>=1) and (wdescuento_considerar=0) then
begin
Ffactura.SGFact.Cells[0,cuenta] := wcodigobarras;//agrego codigo de wcodigobarras
Ffactura.SGFact.Cells[1,Cuenta]:=wdescripcionmodificar;//(FieldByname('nombre').AsString);//agrego nombre del producto
Ffactura.wprecio_venta:=wprecio_venta;//StrToFloat(FieldByname('precioventa').AsVariant);//pongo el precio de venta en la variable de precio
Ffactura.SGFact.Cells[2,Cuenta]:=FloatToStr(wcantidad_venta+1);
Ffactura.SGFact.Cells[3,Cuenta]:=FloatToStr(Ffactura.wprecio_venta);//pongo el precio del articulo con formato de miles
//Ffactura.SGFact.Cells[3,Cuenta]:=FormatFloat('###,###,###,##0.00', StrToFloat(Ffactura.SGFact.Cells[3,Cuenta]));
Ffactura.SGFact.Cells[4,Cuenta]:='0.00';//pongo descuento igual a cero
//pongo las variables de cantidad y descuento en numero para poder realizar operaciones
//wcantidad_venta:=1;
wdescuento_considerar:=0;
wimporte_del_descuento:=((wprecio_venta*wdescuento_considerar)/100);
wprecio_con_descuento:=(wprecio_venta-wimporte_del_descuento);
wventa_total_importe:=(wcantidad_venta * wprecio_con_descuento);
SGFact.Cells[5,Cuenta]:=FloatToStr(wventa_total_importe);
//Ffactura.SGFact.Cells[5,Cuenta]:=FormatFloat('###,###,###,##0.00', StrToFloat(Ffactura.SGFact.Cells[5,Cuenta]));
//calculo totales
calcula_totales;
wcantidad_venta:=0;
wdescuento_considerar:=0;
Ffactura.txtcodigo.Text:='';
ffactura.txtcodigo.SetFocus;
Cuenta:=Cuenta+1;
exit;
end;
if (wcantidad_venta>=1) and (wdescuento_considerar>0) then
begin
Ffactura.SGFact.Cells[0,cuenta] := wcodigobarras;//agrego codigo de wcodigobarras
Ffactura.SGFact.Cells[1,Cuenta]:=wdescripcionmodificar;//(FieldByname('nombre').AsString);//agrego nombre del producto
Ffactura.wprecio_venta:=wprecio_venta;//StrToFloat(FieldByname('precioventa').AsVariant);//pongo el precio de venta en la variable de precio
Ffactura.SGFact.Cells[2,Cuenta]:=FloatToStr(wcantidad_venta);
Ffactura.SGFact.Cells[3,Cuenta]:=FloatToStr(Ffactura.wprecio_venta);//pongo el precio del articulo con formato de miles
//Ffactura.SGFact.Cells[3,Cuenta]:=FormatFloat('###,###,###,##0.00', StrToFloat(Ffactura.SGFact.Cells[3,Cuenta]));
Ffactura.SGFact.Cells[4,Cuenta]:=FloatToStr(wdescuento_considerar);
//pongo las variables de cantidad y descuento en numero para poder realizar operaciones
//wcantidad_venta:=1;
wimporte_del_descuento:=((wprecio_venta*wdescuento_considerar)/100);
wprecio_con_descuento:=(wprecio_venta-wimporte_del_descuento);
wventa_total_importe:=(wcantidad_venta * wprecio_con_descuento);
SGFact.Cells[5,Cuenta]:=FloatToStr(wventa_total_importe);
//Ffactura.SGFact.Cells[5,Cuenta]:=FormatFloat('###,###,###,##0.00', StrToFloat(Ffactura.SGFact.Cells[5,Cuenta]));
//calculo totales
calcula_totales;
wcantidad_venta:=0;
wdescuento_considerar:=0;
Ffactura.txtcodigo.Text:='';
ffactura.txtcodigo.SetFocus;
Cuenta:=Cuenta+1;
exit;
end;
Exit;
end;
end;
{verifico la informacion del resultado para ver si agrego por primera vez el producto}
if wOK=False then
begin
if wcodigobarras<>'' then
begin
with Fmodulo.Qry_Temp do
begin
Close;
sql.clear;
SQL.Add('select * from articulo');
SQL.Add('where codigobarras=:Pcodigobarras');
Parameters.ParamByName('pcodigobarras').Value:=Trim(wcodigobarras);
try
open;
if not Fmodulo.Qry_Temp.IsEmpty then
begin
while not Fmodulo.Qry_Temp.Eof do
begin
If Cuenta > 1 then SGFact.RowCount := SGFact.RowCount + 1;
if (wcantidad_venta<=0) and (wdescuento_considerar=0) then
begin
Ffactura.SGFact.Cells[0,cuenta] := wcodigobarras;//agrego codigo de wcodigobarras
Ffactura.SGFact.Cells[1,Cuenta]:=(FieldByname('nombre').AsString);//agrego nombre del producto
Ffactura.wprecio_venta:=StrToFloat(FieldByname('precioventa').AsVariant);//pongo el precio de venta en la variable de precio
Ffactura.SGFact.Cells[2,Cuenta]:='1';
Ffactura.SGFact.Cells[3,Cuenta]:=FloatToStr(Ffactura.wprecio_venta);//pongo el precio del articulo con formato de miles
//Ffactura.SGFact.Cells[3,Cuenta]:=FormatFloat('###,###,###,##0.00', StrToFloat(Ffactura.SGFact.Cells[3,Cuenta]));
Ffactura.SGFact.Cells[4,Cuenta]:='0.00';//pongo descuento igual a cero
//pongo las variables de cantidad y descuento en numero para poder realizar operaciones
wcantidad_venta:=1;
wdescuento_considerar:=0;
wimporte_del_descuento:=((wprecio_venta*wdescuento_considerar)/100);
wprecio_con_descuento:=(wprecio_venta-wimporte_del_descuento);
wventa_total_importe:=(wcantidad_venta * wprecio_con_descuento);
SGFact.Cells[5,Cuenta]:=FloatToStr(wventa_total_importe);
//Ffactura.SGFact.Cells[5,Cuenta]:=FormatFloat('###,###,###,##0.00', StrToFloat(Ffactura.SGFact.Cells[5,Cuenta]));
//calculo totales
calcula_totales;
wcantidad_venta:=0;
wdescuento_considerar:=0;
Ffactura.txtcodigo.Text:='';
ffactura.txtcodigo.SetFocus;
Cuenta:=Cuenta+1;
exit;
end;
if (wcantidad_venta>=1) and (wdescuento_considerar=0) then
begin
Ffactura.SGFact.Cells[0,cuenta] := wcodigobarras;//agrego codigo de wcodigobarras
Ffactura.SGFact.Cells[1,Cuenta]:=(FieldByname('nombre').AsString);//agrego nombre del producto
Ffactura.wprecio_venta:=StrToFloat(FieldByname('precioventa').AsVariant);//pongo el precio de venta en la variable de precio
Ffactura.SGFact.Cells[2,Cuenta]:=FloatToStr(wcantidad_venta);
Ffactura.SGFact.Cells[3,Cuenta]:=FloatToStr(Ffactura.wprecio_venta);//pongo el precio del articulo con formato de miles
//Ffactura.SGFact.Cells[3,Cuenta]:=FormatFloat('###,###,###,##0.00', StrToFloat(Ffactura.SGFact.Cells[3,Cuenta]));
Ffactura.SGFact.Cells[4,Cuenta]:='0.00';//pongo descuento igual a cero
//pongo las variables de cantidad y descuento en numero para poder realizar operaciones
//wcantidad_venta:=1;
wdescuento_considerar:=0;
wimporte_del_descuento:=((wprecio_venta*wdescuento_considerar)/100);
wprecio_con_descuento:=(wprecio_venta-wimporte_del_descuento);
wventa_total_importe:=(wcantidad_venta * wprecio_con_descuento);
SGFact.Cells[5,Cuenta]:=FloatToStr(wventa_total_importe);
//Ffactura.SGFact.Cells[5,Cuenta]:=FormatFloat('###,###,###,##0.00', StrToFloat(Ffactura.SGFact.Cells[5,Cuenta]));
//calculo totales
calcula_totales;
wcantidad_venta:=0;
wdescuento_considerar:=0;
Ffactura.txtcodigo.Text:='';
ffactura.txtcodigo.SetFocus;
Cuenta:=Cuenta+1;
exit;
end;
if (wcantidad_venta>=1) and (wdescuento_considerar>0) then
begin
Ffactura.SGFact.Cells[0,cuenta] := wcodigobarras;//agrego codigo de wcodigobarras
Ffactura.SGFact.Cells[1,Cuenta]:=(FieldByname('nombre').AsString);//agrego nombre del producto
Ffactura.wprecio_venta:=StrToFloat(FieldByname('precioventa').AsVariant);//pongo el precio de venta en la variable de precio
Ffactura.SGFact.Cells[2,Cuenta]:=FloatToStr(wcantidad_venta);
Ffactura.SGFact.Cells[3,Cuenta]:=FloatToStr(Ffactura.wprecio_venta);//pongo el precio del articulo con formato de miles
//Ffactura.SGFact.Cells[3,Cuenta]:=FormatFloat('###,###,###,##0.00', StrToFloat(Ffactura.SGFact.Cells[3,Cuenta]));
Ffactura.SGFact.Cells[4,Cuenta]:=FloatToStr(wdescuento_considerar);
//pongo las variables de cantidad y descuento en numero para poder realizar operaciones
//wcantidad_venta:=1;
wimporte_del_descuento:=((wprecio_venta*wdescuento_considerar)/100);
wprecio_con_descuento:=(wprecio_venta-wimporte_del_descuento);
wventa_total_importe:=(wcantidad_venta * wprecio_con_descuento);
SGFact.Cells[5,Cuenta]:=FloatToStr(wventa_total_importe);
//Ffactura.SGFact.Cells[5,Cuenta]:=FormatFloat('###,###,###,##0.00', StrToFloat(Ffactura.SGFact.Cells[5,Cuenta]));
//calculo totales
calcula_totales;
wcantidad_venta:=0;
wdescuento_considerar:=0;
Ffactura.txtcodigo.Text:='';
ffactura.txtcodigo.SetFocus;
Cuenta:=Cuenta+1;
exit;
end;
Next;
end;
end
else
begin
Application.MessageBox('No existe Producto en almacén'+CHR(13)+'con el Código de Barras proporcionado.','Error de Búsqueda',MB_TASKMODAL+ MB_ICONERROR);
Ffactura.txtcodigo.Text:='';
Ffactura.txtcodigo.SetFocus;
Exit;
end;
except
on E:EOleException do
begin
MessageDlg(Format('Error: %s Codigo: %d', [E.Message, E.ErrorCode]), mtError, [mbOK], 0);
end;
end;
end;
end;
Exit;
end;
end;
end;