548 lines
15 KiB
ObjectPascal
548 lines
15 KiB
ObjectPascal
|
|
{
|
|||
|
|
===============================================================================
|
|||
|
|
Copyright (<EFBFBD>) 2002. Rodax Software.
|
|||
|
|
===============================================================================
|
|||
|
|
Los contenidos de este fichero son propiedad de Rodax Software titular del
|
|||
|
|
copyright. Este fichero s<EFBFBD>lo podr<EFBFBD> ser copiado, distribuido y utilizado,
|
|||
|
|
en su totalidad o en parte, con el permiso escrito de Rodax Software, o de
|
|||
|
|
acuerdo con los t<EFBFBD>rminos y condiciones establecidas en el acuerdo/contrato
|
|||
|
|
bajo el que se suministra.
|
|||
|
|
-----------------------------------------------------------------------------
|
|||
|
|
Web: www.rodax-software.com
|
|||
|
|
===============================================================================
|
|||
|
|
Fecha primera versi<EFBFBD>n: 03-11-2002
|
|||
|
|
Versi<EFBFBD>n actual: 1.0.0
|
|||
|
|
Fecha versi<EFBFBD>n actual: 03-11-2002
|
|||
|
|
===============================================================================
|
|||
|
|
Modificaciones:
|
|||
|
|
|
|||
|
|
Fecha Comentarios
|
|||
|
|
---------------------------------------------------------------------------
|
|||
|
|
===============================================================================
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
unit TablaEmpresas;
|
|||
|
|
|
|||
|
|
interface
|
|||
|
|
|
|||
|
|
uses
|
|||
|
|
//Generales
|
|||
|
|
SysUtils, Classes, Controls, IBSQL, cxGridDBTableView, cxCustomData, DB,
|
|||
|
|
//Particulares
|
|||
|
|
IBCustomDataSet, Graphics, IBQuery,
|
|||
|
|
|
|||
|
|
//Aplicacion
|
|||
|
|
Framework, StrFunc, Entidades, Constantes, BaseDatos;
|
|||
|
|
|
|||
|
|
type
|
|||
|
|
TDatosDireccionEmpresa = class(TObjeto)
|
|||
|
|
protected
|
|||
|
|
procedure ObtenerDatos; override;
|
|||
|
|
public
|
|||
|
|
CodigoEmpresa : Integer;
|
|||
|
|
CodigoDireccion : Integer;
|
|||
|
|
Calle : String;
|
|||
|
|
Numero : String;
|
|||
|
|
CodigoPostal : String;
|
|||
|
|
Poblacion : String;
|
|||
|
|
Provincia : String;
|
|||
|
|
Telefono : String;
|
|||
|
|
Fax : String;
|
|||
|
|
procedure SalvarDatos;
|
|||
|
|
procedure Eliminar;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
TListaDireccionesEmpresa = class(TListaObjetos)
|
|||
|
|
private
|
|||
|
|
FCodigoEmpresa : Integer;
|
|||
|
|
function GetDireccion(Index: Integer): TDatosDireccionEmpresa;
|
|||
|
|
protected
|
|||
|
|
procedure ObtenerLista; override;
|
|||
|
|
public
|
|||
|
|
property Items[Index: Integer] : TDatosDireccionEmpresa read GetDireccion;
|
|||
|
|
constructor Create(CodigoEmpresa : Integer);
|
|||
|
|
destructor Destroy; override;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
|
|||
|
|
TDatosEmpresa = class(TObjeto)
|
|||
|
|
private
|
|||
|
|
FDirecciones : TListaDireccionesEmpresa;
|
|||
|
|
protected
|
|||
|
|
procedure ObtenerDatos; override;
|
|||
|
|
public
|
|||
|
|
Codigo : Integer;
|
|||
|
|
FechaAlta : String;
|
|||
|
|
Usuario : String;
|
|||
|
|
Nombre : String;
|
|||
|
|
NifCif : String;
|
|||
|
|
Correo : String;
|
|||
|
|
Web : String;
|
|||
|
|
NombreComercial : String;
|
|||
|
|
CodigoTrimestre : String;
|
|||
|
|
IvaDefecto : String;
|
|||
|
|
ValidezDefecto : Variant;
|
|||
|
|
IntervaloPagosCli : Real;
|
|||
|
|
LibroDefecto : String;
|
|||
|
|
Logotipo : TPicture;
|
|||
|
|
property Direcciones : TListaDireccionesEmpresa read FDirecciones;
|
|||
|
|
constructor Create; overload;
|
|||
|
|
constructor Create(CodigoEmpresa : Integer); overload;
|
|||
|
|
destructor Destroy; override;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
TdmTablaEmpresas = class(TDataModule)
|
|||
|
|
private
|
|||
|
|
procedure IniciarSQL;
|
|||
|
|
|
|||
|
|
public
|
|||
|
|
sqlInsertar : TStrings;
|
|||
|
|
sqlModificar : TStrings;
|
|||
|
|
sqlConsultar : TStrings;
|
|||
|
|
sqlEliminar : TStrings;
|
|||
|
|
sqlGrid : TStrings;
|
|||
|
|
|
|||
|
|
function DarNuevoCodigo : String;
|
|||
|
|
constructor Create (AOwner : TComponent); override;
|
|||
|
|
destructor Destroy; override;
|
|||
|
|
procedure InicializarGridEmpresas(var vGrid: TcxGridDBTableView);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
var
|
|||
|
|
dmTablaEmpresas: TdmTablaEmpresas;
|
|||
|
|
|
|||
|
|
implementation
|
|||
|
|
|
|||
|
|
{$R *.DFM}
|
|||
|
|
|
|||
|
|
uses
|
|||
|
|
Literales;
|
|||
|
|
|
|||
|
|
constructor TdmTablaEmpresas.Create (AOwner : TComponent);
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
sqlInsertar := TStringList.Create;
|
|||
|
|
sqlModificar := TStringList.Create;
|
|||
|
|
sqlConsultar := TStringList.Create;
|
|||
|
|
sqlEliminar := TStringList.Create;
|
|||
|
|
sqlGrid := TStringList.Create;
|
|||
|
|
IniciarSQL;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
destructor TdmTablaEmpresas.Destroy;
|
|||
|
|
begin
|
|||
|
|
sqlInsertar.Free;
|
|||
|
|
sqlModificar.Free;
|
|||
|
|
sqlConsultar.Free;
|
|||
|
|
sqlEliminar.Free;
|
|||
|
|
sqlGrid.Free;
|
|||
|
|
inherited;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TdmTablaEmpresas.IniciarSQL;
|
|||
|
|
begin
|
|||
|
|
with sqlInsertar do
|
|||
|
|
begin
|
|||
|
|
Add('INSERT INTO EMPRESAS (CODIGO, FECHAALTA, USUARIO, NOMBRE, NIFCIF, ');
|
|||
|
|
Add('CORREO, WEB, LOGOTIPO, NOMBRECOMERCIAL, CODIGOTRIMESTRE, IVADEFECTO, ');
|
|||
|
|
Add('VALIDEZDEFECTO, INTERVALOPAGOSCLI, LIBRODEFECTO) ');
|
|||
|
|
|
|||
|
|
Add('VALUES (:CODIGO, :FECHAALTA, :USUARIO, :NOMBRE, :NIFCIF, ');
|
|||
|
|
Add(':CORREO, :WEB, :LOGOTIPO, :NOMBRECOMERCIAL, :CODIGOTRIMESTRE, :IVADEFECTO, ');
|
|||
|
|
Add(':VALIDEZDEFECTO, :INTERVALOPAGOSCLI, :LIBRODEFECTO)');
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
with sqlModificar do
|
|||
|
|
begin
|
|||
|
|
Add('UPDATE EMPRESAS SET');
|
|||
|
|
Add('NOMBRE = :NOMBRE, ');
|
|||
|
|
Add('NIFCIF = :NIFCIF, ');
|
|||
|
|
{ Add('CALLE = :CALLE, ');
|
|||
|
|
Add('NUMERO = :NUMERO, ');
|
|||
|
|
Add('CODIGOPOSTAL = :CODIGOPOSTAL, ');
|
|||
|
|
Add('POBLACION = :POBLACION, ');
|
|||
|
|
Add('PROVINCIA = :PROVINCIA, ');
|
|||
|
|
Add('TELEFONO = :TELEFONO, ');
|
|||
|
|
Add('FAX = :FAX, ');}
|
|||
|
|
Add('CORREO = :CORREO, ');
|
|||
|
|
Add('WEB = :WEB, ');
|
|||
|
|
Add('LOGOTIPO = :LOGOTIPO, ');
|
|||
|
|
Add('NOMBRECOMERCIAL = :NOMBRECOMERCIAL, ');
|
|||
|
|
Add('CODIGOTRIMESTRE = :CODIGOTRIMESTRE, ');
|
|||
|
|
Add('IVADEFECTO = :IVADEFECTO, ');
|
|||
|
|
Add('VALIDEZDEFECTO = :VALIDEZDEFECTO, ');
|
|||
|
|
Add('INTERVALOPAGOSCLI = :INTERVALOPAGOSCLI, ');
|
|||
|
|
Add('LIBRODEFECTO = :LIBRODEFECTO ');
|
|||
|
|
Add('WHERE (CODIGO = :CODIGO)');
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
with sqlEliminar do
|
|||
|
|
begin
|
|||
|
|
Add('delete from EMPRESAS ');
|
|||
|
|
Add('where CODIGO = :CODIGO');
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
with sqlConsultar do
|
|||
|
|
begin
|
|||
|
|
Add('select * from EMPRESAS ');
|
|||
|
|
Add('where CODIGO = :CODIGO');
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
with sqlGrid do
|
|||
|
|
begin
|
|||
|
|
Add('select CODIGO, NIFCIF, LOGOTIPO, NOMBRECOMERCIAL');
|
|||
|
|
Add('from EMPRESAS ');
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TdmTablaEmpresas.DarNuevoCodigo : String;
|
|||
|
|
var
|
|||
|
|
oSQL : TIBSQL;
|
|||
|
|
begin
|
|||
|
|
Result := '0';
|
|||
|
|
|
|||
|
|
oSQL := TIBSQL.Create(Self);
|
|||
|
|
with oSQL do
|
|||
|
|
begin
|
|||
|
|
Database := dmBaseDatos.BD;
|
|||
|
|
Transaction := dmBaseDatos.Transaccion;
|
|||
|
|
SQL.Add('select max(CODIGO) + 1 ');
|
|||
|
|
SQL.Add('from EMPRESAS ');
|
|||
|
|
try
|
|||
|
|
Prepare;
|
|||
|
|
ExecQuery;
|
|||
|
|
if not esCadenaVacia(Fields[0].AsString) then
|
|||
|
|
Result := Fields[0].AsString;
|
|||
|
|
finally
|
|||
|
|
Close;
|
|||
|
|
Transaction := NIL;
|
|||
|
|
Free;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TdmTablaEmpresas.InicializarGridEmpresas (var vGrid: TcxGridDBTableView);
|
|||
|
|
var
|
|||
|
|
Columna : TcxGridDBColumn;
|
|||
|
|
begin
|
|||
|
|
with vGrid do begin
|
|||
|
|
OptionsView.Footer := True;
|
|||
|
|
|
|||
|
|
{Columna CODIGO}
|
|||
|
|
Columna := CreateColumn;
|
|||
|
|
Columna.DataBinding.FieldName := 'CODIGO';
|
|||
|
|
Columna.Caption := 'C<>digo';
|
|||
|
|
Columna.Width := tamColCodigo;
|
|||
|
|
Columna.Options.Filtering := False;
|
|||
|
|
Columna.Visible := False;
|
|||
|
|
{Columna NIFCIF}
|
|||
|
|
Columna := CreateColumn;
|
|||
|
|
Columna.DataBinding.FieldName := 'NIFCIF';
|
|||
|
|
Columna.Caption := 'NIF/CIF';
|
|||
|
|
Columna.Width := tamColNIFCIF;
|
|||
|
|
Columna.Options.Filtering := False;
|
|||
|
|
with TcxGridDBTableSummaryItem(DataController.Summary.FooterSummaryItems.Add) do
|
|||
|
|
try
|
|||
|
|
try
|
|||
|
|
BeginUpdate;
|
|||
|
|
Column := Columna;
|
|||
|
|
FieldName := Columna.DataBinding.FieldName;
|
|||
|
|
Format := 'Total: 0 empresas';
|
|||
|
|
Kind := skCount;
|
|||
|
|
finally
|
|||
|
|
EndUpdate;
|
|||
|
|
end;
|
|||
|
|
except
|
|||
|
|
DataController.Summary.FooterSummaryItems.Delete(DataController.Summary.FooterSummaryItems.Count-1);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
{Columna NOMBRECOMERCIAL}
|
|||
|
|
Columna := CreateColumn;
|
|||
|
|
Columna.DataBinding.FieldName := 'NOMBRECOMERCIAL';
|
|||
|
|
Columna.Caption := 'Nombre comercial';
|
|||
|
|
Columna.Width := tamColNombre;
|
|||
|
|
Columna.Options.Filtering := False;
|
|||
|
|
Columna.SortOrder := soAscending;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
{ TDatosEmpresa }
|
|||
|
|
|
|||
|
|
constructor TDatosEmpresa.Create(CodigoEmpresa: Integer);
|
|||
|
|
begin
|
|||
|
|
inherited Create;
|
|||
|
|
Codigo := CodigoEmpresa;
|
|||
|
|
// Recuperar los datos de la empresa
|
|||
|
|
ObtenerDatos;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
constructor TDatosEmpresa.Create;
|
|||
|
|
begin
|
|||
|
|
inherited Create;
|
|||
|
|
FDirecciones := TListaDireccionesEmpresa.Create(Codigo);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
destructor TDatosEmpresa.Destroy;
|
|||
|
|
begin
|
|||
|
|
if Assigned(FDirecciones) then
|
|||
|
|
begin
|
|||
|
|
FDirecciones.Free;
|
|||
|
|
FDirecciones := NIL;
|
|||
|
|
end;
|
|||
|
|
inherited;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TDatosEmpresa.ObtenerDatos;
|
|||
|
|
var
|
|||
|
|
oSQL : TIBQuery;
|
|||
|
|
Stream : TIBDSBlobStream;
|
|||
|
|
begin
|
|||
|
|
if EsCadenaVacia(Codigo) then
|
|||
|
|
raise Exception.Create(msgCliFaltaCli);
|
|||
|
|
|
|||
|
|
oSQL := TIBQuery.Create(dmTablaEmpresas);
|
|||
|
|
with oSQL do
|
|||
|
|
begin
|
|||
|
|
Database := dmBaseDatos.BD;
|
|||
|
|
Transaction := dmBaseDatos.Transaccion;
|
|||
|
|
SQL.Add('select * ');
|
|||
|
|
SQL.Add('from EMPRESAS ');
|
|||
|
|
SQL.Add('where CODIGO = :CODIGO');
|
|||
|
|
ParamByName('CODIGO').AsInteger := Codigo;
|
|||
|
|
|
|||
|
|
try
|
|||
|
|
Prepare;
|
|||
|
|
Open;
|
|||
|
|
|
|||
|
|
// Compruebo si se han recuperado datos
|
|||
|
|
if (RecordCount > 0) then
|
|||
|
|
begin
|
|||
|
|
Codigo := FieldByName('CODIGO').AsInteger;
|
|||
|
|
FechaAlta := FieldByName('FECHAALTA').AsString;
|
|||
|
|
Usuario := FieldByName('USUARIO').AsString;
|
|||
|
|
Nombre := FieldByName('NOMBRE').AsString;
|
|||
|
|
NifCif := FieldByName('NIFCIF').AsString;
|
|||
|
|
Correo := FieldByName('CORREO').AsString;
|
|||
|
|
Web := FieldByName('WEB').AsString;
|
|||
|
|
NombreComercial := FieldByName('NOMBRECOMERCIAL').AsString;
|
|||
|
|
CodigoTrimestre := FieldByName('CODIGOTRIMESTRE').AsString;
|
|||
|
|
IvaDefecto := FieldByName('IVADEFECTO').AsString;
|
|||
|
|
LibroDefecto := FieldByName('LIBRODEFECTO').AsString;
|
|||
|
|
ValidezDefecto := FieldByName('VALIDEZDEFECTO').AsString;
|
|||
|
|
IntervaloPagosCli := FieldByName('INTERVALOPAGOSCLI').AsFloat;
|
|||
|
|
|
|||
|
|
//En el caso de que tenga logotipo asociado
|
|||
|
|
if not esCadenaVacia(FieldByName('LOGOTIPO').AsVariant) then
|
|||
|
|
begin
|
|||
|
|
Stream := (oSQL.CreateBlobStream(FieldByName('LOGOTIPO'), bmReadWrite) as TIBDSBlobStream);
|
|||
|
|
Logotipo := TPicture.Create;
|
|||
|
|
Logotipo.Bitmap.LoadFromStream(Stream);
|
|||
|
|
Stream.Free;
|
|||
|
|
end;
|
|||
|
|
FDirecciones := TListaDireccionesEmpresa.Create(Codigo);
|
|||
|
|
end;
|
|||
|
|
finally
|
|||
|
|
Close;
|
|||
|
|
Transaction := NIL;
|
|||
|
|
Free;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
{ TDatosDireccionEmpresa }
|
|||
|
|
|
|||
|
|
procedure TDatosDireccionEmpresa.Eliminar;
|
|||
|
|
var
|
|||
|
|
oSQL : TIBQuery;
|
|||
|
|
bEsInsercion : Boolean;
|
|||
|
|
begin
|
|||
|
|
if (EsCadenaVacia(CodigoEmpresa)) or (EsCadenaVacia(CodigoDireccion)) then
|
|||
|
|
raise Exception.CreateFmt(msgEmpFaltaAlgo, ['el c<>digo']);
|
|||
|
|
|
|||
|
|
bEsInsercion := True;
|
|||
|
|
oSQL := TIBQuery.Create(nil);
|
|||
|
|
with oSQL do
|
|||
|
|
begin
|
|||
|
|
Database := dmBaseDatos.BD;
|
|||
|
|
Transaction := dmBaseDatos.Transaccion;
|
|||
|
|
with SQL do
|
|||
|
|
begin
|
|||
|
|
Add('delete from SUCURSALESEMPRESA ');
|
|||
|
|
Add('where CODIGOEMPRESA = :CODIGOEMPRESA and ');
|
|||
|
|
Add('CODIGO = :CODIGO ');
|
|||
|
|
end;
|
|||
|
|
ParamByName('CODIGOEMPRESA').AsInteger := CodigoEmpresa;
|
|||
|
|
ParamByName('CODIGO').AsInteger := CodigoDireccion;
|
|||
|
|
|
|||
|
|
try
|
|||
|
|
Prepare;
|
|||
|
|
ExecSQL;
|
|||
|
|
finally
|
|||
|
|
Close;
|
|||
|
|
Transaction := NIL;
|
|||
|
|
Free;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TDatosDireccionEmpresa.ObtenerDatos;
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
//
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TDatosDireccionEmpresa.SalvarDatos;
|
|||
|
|
var
|
|||
|
|
oSQL : TIBQuery;
|
|||
|
|
bEsInsercion : Boolean;
|
|||
|
|
begin
|
|||
|
|
if (EsCadenaVacia(CodigoEmpresa)) or (EsCadenaVacia(CodigoDireccion)) then
|
|||
|
|
raise Exception.CreateFmt(msgEmpFaltaAlgo, ['el c<>digo']);
|
|||
|
|
|
|||
|
|
bEsInsercion := True;
|
|||
|
|
oSQL := TIBQuery.Create(nil);
|
|||
|
|
with oSQL do
|
|||
|
|
begin
|
|||
|
|
Database := dmBaseDatos.BD;
|
|||
|
|
Transaction := dmBaseDatos.Transaccion;
|
|||
|
|
with SQL do
|
|||
|
|
begin
|
|||
|
|
Add('select CODIGO from SUCURSALESEMPRESA ');
|
|||
|
|
Add('where CODIGOEMPRESA = :CODIGOEMPRESA and ');
|
|||
|
|
Add('CODIGO = :CODIGO ');
|
|||
|
|
end;
|
|||
|
|
ParamByName('CODIGOEMPRESA').AsInteger := CodigoEmpresa;
|
|||
|
|
ParamByName('CODIGO').AsInteger := CodigoDireccion;
|
|||
|
|
|
|||
|
|
try
|
|||
|
|
Prepare;
|
|||
|
|
Open;
|
|||
|
|
|
|||
|
|
// Compruebo si se han recuperado datos
|
|||
|
|
if (RecordCount > 0) then
|
|||
|
|
bEsInsercion := False
|
|||
|
|
else
|
|||
|
|
bEsInsercion := True;
|
|||
|
|
finally
|
|||
|
|
Close;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
with SQL do
|
|||
|
|
begin
|
|||
|
|
Clear;
|
|||
|
|
if bEsInsercion then begin
|
|||
|
|
Add('insert into SUCURSALESEMPRESA ( ');
|
|||
|
|
Add('CODIGOEMPRESA, CODIGO, FECHAALTA, USUARIO, ');
|
|||
|
|
Add('CALLE, NUMERO, CODIGOPOSTAL, POBLACION, ');
|
|||
|
|
Add('PROVINCIA, TELEFONO, FAX) ');
|
|||
|
|
Add('values ( ');
|
|||
|
|
Add(':CODIGOEMPRESA, :CODIGO, CURRENT_DATE, ');
|
|||
|
|
Add('CURRENT_USER, :CALLE, :NUMERO, ');
|
|||
|
|
Add(':CODIGOPOSTAL, :POBLACION, :PROVINCIA, ');
|
|||
|
|
Add(':TELEFONO, :FAX) ');
|
|||
|
|
end
|
|||
|
|
else begin
|
|||
|
|
Add('update SUCURSALESEMPRESA set ');
|
|||
|
|
Add('CALLE = :CALLE, ');
|
|||
|
|
Add('NUMERO = :NUMERO, ');
|
|||
|
|
Add('CODIGOPOSTAL = :CODIGOPOSTAL, ');
|
|||
|
|
Add('POBLACION = :POBLACION, ');
|
|||
|
|
Add('PROVINCIA = :PROVINCIA, ');
|
|||
|
|
Add('TELEFONO = :TELEFONO, ');
|
|||
|
|
Add('FAX = :FAX ');
|
|||
|
|
Add('WHERE (CODIGOEMPRESA = :CODIGOEMPRESA) AND (CODIGO = :CODIGO) ');
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
ParamByName('CODIGOEMPRESA').AsInteger := CodigoEmpresa;
|
|||
|
|
ParamByName('CODIGO').AsInteger := CodigoDireccion;
|
|||
|
|
ParamByName('CALLE').AsString := Calle;
|
|||
|
|
ParamByName('NUMERO').AsString := Numero;
|
|||
|
|
ParamByName('CODIGOPOSTAL').AsString := CodigoPostal;
|
|||
|
|
ParamByName('POBLACION').AsString := Poblacion;
|
|||
|
|
ParamByName('PROVINCIA').AsString := Provincia;
|
|||
|
|
ParamByName('TELEFONO').AsString := Telefono;
|
|||
|
|
ParamByName('FAX').AsString := Fax;
|
|||
|
|
|
|||
|
|
try
|
|||
|
|
Prepare;
|
|||
|
|
ExecSQL;
|
|||
|
|
finally
|
|||
|
|
Close;
|
|||
|
|
Transaction := NIL;
|
|||
|
|
Free;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
{ TListaDireccionesEmpresa }
|
|||
|
|
|
|||
|
|
constructor TListaDireccionesEmpresa.Create(CodigoEmpresa: Integer);
|
|||
|
|
begin
|
|||
|
|
inherited Create;
|
|||
|
|
FCodigoEmpresa := CodigoEmpresa;
|
|||
|
|
ObtenerLista;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
destructor TListaDireccionesEmpresa.Destroy;
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TListaDireccionesEmpresa.GetDireccion(
|
|||
|
|
Index: Integer): TDatosDireccionEmpresa;
|
|||
|
|
begin
|
|||
|
|
Result := TDatosDireccionEmpresa(FLista.Items[Index]);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TListaDireccionesEmpresa.ObtenerLista;
|
|||
|
|
var
|
|||
|
|
oSQL : TIBQuery;
|
|||
|
|
FDireccion : TDatosDireccionEmpresa;
|
|||
|
|
begin
|
|||
|
|
if EsCadenaVacia(FCodigoEmpresa) then
|
|||
|
|
raise Exception.CreateFmt(msgEmpFaltaAlgo, ['el c<>digo']);
|
|||
|
|
|
|||
|
|
oSQL := TIBQuery.Create(nil);
|
|||
|
|
with oSQL do
|
|||
|
|
begin
|
|||
|
|
Database := dmBaseDatos.BD;
|
|||
|
|
Transaction := dmBaseDatos.Transaccion;
|
|||
|
|
SQL.Add('select CODIGO, CALLE, NUMERO, CODIGOPOSTAL, POBLACION, ');
|
|||
|
|
SQL.Add('PROVINCIA, TELEFONO, FAX ');
|
|||
|
|
SQL.Add('from SUCURSALESEMPRESA ');
|
|||
|
|
SQL.Add('where CODIGOEMPRESA = :CODIGOEMPRESA ');
|
|||
|
|
SQL.Add('order by CODIGO');
|
|||
|
|
ParamByName('CODIGOEMPRESA').AsInteger := FCodigoEmpresa;
|
|||
|
|
|
|||
|
|
try
|
|||
|
|
Prepare;
|
|||
|
|
Open;
|
|||
|
|
|
|||
|
|
// Compruebo si se han recuperado datos
|
|||
|
|
while not EOF do
|
|||
|
|
begin
|
|||
|
|
FDireccion := TDatosDireccionEmpresa.Create;
|
|||
|
|
with FDireccion do
|
|||
|
|
begin
|
|||
|
|
CodigoEmpresa := FCodigoEmpresa;
|
|||
|
|
CodigoDireccion := FieldByName('CODIGO').AsInteger;
|
|||
|
|
Calle := FieldByName('CALLE').AsString;
|
|||
|
|
Numero := FieldByName('NUMERO').AsString;
|
|||
|
|
CodigoPostal := FieldByName('CODIGOPOSTAL').AsString;
|
|||
|
|
Poblacion := FieldByName('POBLACION').AsString;
|
|||
|
|
Provincia := FieldByName('PROVINCIA').AsString;
|
|||
|
|
Telefono := FieldByName('TELEFONO').AsString;
|
|||
|
|
Fax := FieldByName('FAX').AsString;
|
|||
|
|
end;
|
|||
|
|
Add(FDireccion);
|
|||
|
|
Next;
|
|||
|
|
end;
|
|||
|
|
finally
|
|||
|
|
Close;
|
|||
|
|
Free;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
end.
|