This repository has been archived on 2024-12-02. You can view files and clone it, but cannot push or open issues or pull requests.
FactuGES/Empresas/Empresa.pas
2007-06-26 08:08:27 +00:00

849 lines
23 KiB
ObjectPascal

{
===============================================================================
Copyright (©) 2002. Rodax Software.
===============================================================================
Los contenidos de este fichero son propiedad de Rodax Software titular del
copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado,
en su totalidad o en parte, con el permiso escrito de Rodax Software, o de
acuerdo con los términos y condiciones establecidas en el acuerdo/contrato
bajo el que se suministra.
-----------------------------------------------------------------------------
Web: www.rodax-software.com
===============================================================================
Fecha primera versión: 03-11-2002
Versión actual: 1.0.0
Fecha versión actual: 03-11-2002
===============================================================================
Modificaciones:
Fecha Comentarios
---------------------------------------------------------------------------
===============================================================================
}
unit Empresa;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
RdxBotones, StdCtrls, RdxMemo, RdxComboBox, RdxCampos, ExtCtrls,
RdxTitulos, ComCtrls, RdxCheckBox, Grids, DBGrids, RdxPaneles,
RdxBarras, Db, RdxFrame, RdxDBFrame, RdxFrameEmpresas, RXDBCtrl,
RdxPageControl, IB, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxEdit, cxDBData, cxGridLevel, cxClasses, cxControls, cxGridCustomView,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid,
cxGridCardView, cxGridDBCardView, RxMemDS, Configuracion, cxMemo,
cxDBEdit, cxContainer, cxTextEdit, cxMaskEdit, cxButtonEdit, AdvPanel,
cxImage, cxDropDownEdit, cxLookupEdit, cxDBLookupEdit, cxDBLookupComboBox,
IBCustomDataSet, cxCalendar, TablaTrimestres, cxSpinEdit,
TablaLibros, RdxEmpresaActiva, TablaEmpresas;
type
TfrEmpresa = class(TRdxFrameEmpresas)
pnlCuerpo: TPanel;
brDoble: TRdxBarraInferior;
bGuardar: TRdxBoton;
bCancelar: TRdxBoton;
brSimple: TRdxBarraInferior;
bSalir: TRdxBoton;
pnlTitulo: TRdxPanelTituloOperacion;
dsEmpresas: TDataSource;
pnlDatos: TAdvPanel;
eNIFCIF: TLabel;
eNombre: TLabel;
eCorreo: TLabel;
Label1: TLabel;
Label2: TLabel;
NIF: TcxDBTextEdit;
Nombre: TcxDBTextEdit;
Correo: TcxDBTextEdit;
Web: TcxDBTextEdit;
NombreComercial: TcxDBTextEdit;
dsLibros: TDataSource;
dsTrimestres: TDataSource;
RdxPagesControl1: TRdxPagesControl;
pagDirecciones: TTabSheet;
pagValores: TTabSheet;
pagLogo: TTabSheet;
bExaminar: TRdxBoton;
Logotipo: TcxDBImage;
eTrimestre: TLabel;
cbxTrimestres: TcxComboBox;
Label3: TLabel;
cbxLibros: TcxComboBox;
Label5: TLabel;
IvaDefecto: TcxDBSpinEdit;
Label4: TLabel;
validezdefecto: TcxDBSpinEdit;
Label7: TLabel;
Label6: TLabel;
Ano: TcxSpinEdit;
GroupBox1: TGroupBox;
eDireccion: TLabel;
Calle1: TcxTextEdit;
eProvincia: TLabel;
Provincia1: TcxTextEdit;
eNumero: TLabel;
Numero1: TcxTextEdit;
eCodigoPostal: TLabel;
CodigoPostal1: TcxTextEdit;
ePoblacion: TLabel;
Poblacion1: TcxTextEdit;
eTelefono: TLabel;
Telefono1: TcxTextEdit;
eFax: TLabel;
Fax1: TcxTextEdit;
GroupBox2: TGroupBox;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Calle2: TcxTextEdit;
Provincia2: TcxTextEdit;
Numero2: TcxTextEdit;
CodigoPostal2: TcxTextEdit;
Poblacion2: TcxTextEdit;
Telefono2: TcxTextEdit;
Fax2: TcxTextEdit;
Label15: TLabel;
IntervaloPagosCli: TcxDBSpinEdit;
Label16: TLabel;
procedure bAceptarClick(Sender: TObject);
procedure bCancelarClick(Sender: TObject);
procedure bSalirClick(Sender: TObject);
procedure bExaminarClick(Sender: TObject);
procedure GridBotonPoblacionClick(Sender: TObject; AButtonIndex: Integer);
procedure GridBotonProvinciaClick(Sender: TObject; AButtonIndex: Integer);
private
FListaTrimestres: TListaTrimestres;
FListaTiposLibro: TListaLibros;
FCodigoProvincia : Variant;
FCodigoPoblacion : Variant;
FListaDirecciones : TListaDireccionesEmpresa;
procedure ProvinciaSetText(Sender: TField; const Text: String);
function crearElementosAsociados: boolean;
procedure AsignarValoresDefecto;
procedure GuardarDirecciones;
procedure BorrarDirecciones;
procedure CargarDirecciones;
procedure LimpiarDirecciones;
function EsVaciaDir1 : Boolean;
function EsVaciaDir2 : Boolean;
protected
procedure ActivarModoAnadir; override;
procedure ActivarModoModificar; override;
procedure ActivarModoConsultar; override;
procedure ActivarModoEliminar; override;
function AnadirDatos : Boolean; override;
function ModificarDatos : Boolean; override;
function EliminarDatos : Boolean; override;
function CancelarAnadir : Boolean; override;
function CancelarModificar : Boolean; override;
function CancelarEliminar : Boolean; override;
function ComprobarDatos : Boolean; override;
procedure VerModal; override;
procedure SetCodigoProvincia (Value : Variant); virtual;
procedure SetCodigoPoblacion (Value : Variant); virtual;
procedure FreeContenido; override;
procedure BuscarEmpresa; override;
procedure CambiarModo(ModoAnterior, Modo : TRdxModo); override;
public
property CodigoProvincia : Variant read FCodigoProvincia write SetCodigoProvincia;
property CodigoPoblacion : Variant read FCodigoPoblacion write SetCodigoPoblacion;
constructor Create (AOwner : TComponent); override;
destructor Destroy; override;
published
property TablaEmpresas;
property CodigoEmpresa;
end;
var
frEmpresa: TfrEmpresa;
implementation
{$R *.DFM}
uses
RdxFrameVendedores, Mensajes, Provincias, Entidades, Poblaciones, Variants,
Vendedores, BaseDatos, RdxFrameProvincias, RdxFramePoblaciones, TablaProvincias,
StrFunc, TablaPoblaciones, Excepciones, IBErrorCodes, TablaVendedores,
Literales, Constantes, Framework;
constructor TfrEmpresa.Create (AOwner : TComponent);
var
i : integer;
begin
inherited Create(AOwner);
FCodigoProvincia := NULL;
FCodigoPoblacion := NULL;
FListaDirecciones := NIL;
Entidad := entEmpresas;
BaseDatos := dmBaseDatos.BD;
Transaccion := dmBaseDatos.Transaccion;
TablaEmpresas := TIBDataSet.Create(Self);
dsEmpresas.DataSet := TablaEmpresas;
with TablaEmpresas do
begin
Database := BaseDatos;
Transaction := Transaccion;
SelectSQL.Assign(dmTablaEmpresas.sqlConsultar);
InsertSQL.Assign(dmTablaEmpresas.sqlInsertar);
ModifySQL.Assign(dmTablaEmpresas.sqlModificar);
DeleteSQL.Assign(dmTablaEmpresas.sqlEliminar);
RefreshSQL.Assign(dmTablaEmpresas.sqlConsultar);
end;
FListaTrimestres := TListaTrimestres.Create(tlcTriDefecto);
cbxTrimestres.ItemIndex := FListaTrimestres.cargarLista(cbxTrimestres.Properties.Items);
FListaTiposLibro := TListaLibros.Create(tltDefecto);
cbxLibros.ItemIndex := FListaTiposLibro.cargarLista(cbxLibros);
bCancelar.Cancel := True;
bSalir.Cancel := True;
end;
procedure TfrEmpresa.bSalirClick(Sender: TObject);
begin
try
Rollback;
CloseFrame;
except
on E : EIBError do
TratarExcepcion(E);
on E : Exception do
TratarExcepcion(E);
end;
end;
procedure TfrEmpresa.bAceptarClick(Sender: TObject);
begin
if (RealizarOperacion) then
CloseFrame;
end;
function TfrEmpresa.AnadirDatos : boolean;
begin
Result := False;
try
GuardarDirecciones;
TablaEmpresas.FieldByName('CODIGOTRIMESTRE').AsString := dmTablaTrimestres.darCodigoTrimestre(Ano.Value, cbxTrimestres.ItemIndex);
TablaEmpresas.FieldByName('LIBRODEFECTO').AsString := FListaTiposLibro.Items[cbxLibros.ItemIndex].Codigo;
TablaEmpresas.Post;
//Creamos los trimestres y libros para la nueva empresa
if (crearElementosAsociados) then
begin
CodigoEmpresa := TablaEmpresas.FieldByName('CODIGO').AsString;
Commit;
TablaEmpresas.Close;
Result := True;
end
else
begin
VerMensajeFmt(msgCliCodCliRepetido, [CodigoEmpresa]);
TablaEmpresas.Edit;
end;
except
on E : EIBError do begin
if E.IBErrorCode = isc_unique_key_violation then
begin
VerMensajeFmt(msgCliCodCliRepetido, [CodigoEmpresa]);
TablaEmpresas.Edit;
end
else
TratarExcepcion(E);
end;
on E : Exception do
TratarExcepcion(E);
end;
end;
function TfrEmpresa.ModificarDatos : boolean;
begin
Result := False;
try
TablaEmpresas.FieldByName('CODIGOTRIMESTRE').AsString := dmTablaTrimestres.darCodigoTrimestre(Ano.Value, cbxTrimestres.ItemIndex);
TablaEmpresas.FieldByName('LIBRODEFECTO').AsString := FListaTiposLibro.Items[cbxLibros.ItemIndex].Codigo;
TablaEmpresas.Post;
GuardarDirecciones;
//Creamos los trimestres y libros para la nueva empresa
if (crearElementosAsociados) then
begin
Commit;
TablaEmpresas.Close;
//Refrescamos la empresa activa en el caso de se la empresa modificada
if (EmpresaActiva.Codigo = CodigoEmpresa) then
EmpresaActiva.refrescar;
Result := True;
end
else
begin
VerMensajeFmt(msgCliCodCliRepetido, [CodigoEmpresa]);
TablaEmpresas.Edit;
end;
except
on E : EIBError do
TratarExcepcion(E);
on E : Exception do
TratarExcepcion(E);
end;
end;
function TfrEmpresa.EliminarDatos : boolean;
begin
Result := False;
if (VerMensajePregunta(msgEmpBorrarEmp) <> IDYES) then
Exit;
try
TablaEmpresas.Delete;
Commit;
TablaEmpresas.Close;
Result := True;
except
on E : EIBError do
begin
case E.IBErrorCode of
isc_lock_conflict : VerMensajeFmt(msgCliCliBloqueado, [CodigoEmpresa]);
else
TratarExcepcion(E);
end;
end;
on E : Exception do
TratarExcepcion(E);
end;
end;
procedure TfrEmpresa.ActivarModoAnadir;
var
CodNuevo : Variant;
begin
dsEmpresas.AutoEdit := True;
cbxTrimestres.Properties.ReadOnly := False;
Ano.Properties.ReadOnly := False;
cbxLibros.Properties.ReadOnly := False;
Ano.Text := dmBaseDatos.DarAno;
try
CodNuevo := dmTablaEmpresas.DarNuevoCodigo;
with TablaEmpresas do
begin
Close;
Prepare;
Open;
//FieldByName('PROVINCIA').OnSetText := ProvinciaSetText;
Insert;
FieldByName('CODIGO').AsString := CodNuevo;
FieldByName('FECHAALTA').AsDateTime := dmBaseDatos.DarFecha;
FieldByName('USUARIO').AsString := dmBaseDatos.Usuario;
FieldByName('IVADEFECTO').AsString := CTE_IVA_DEFECTO;
FieldByName('VALIDEZDEFECTO').AsInteger := CTE_VAL_DEFECTO;
FieldByName('INTERVALOPAGOSCLI').AsInteger := CTE_INT_DEFECTO;
//Asignamos trimestre actual
cbxTrimestres.Text := dmTablaTrimestres.DarDescripcionTrimestreActual;
end;
LimpiarDirecciones;
// Visible := True;
// NombreComercial.SetFocus;
except
on E : EIBError do
TratarExcepcion(E);
on E : Exception do
TratarExcepcion(E);
end;
end;
procedure TfrEmpresa.ActivarModoModificar;
begin
dsEmpresas.AutoEdit := True;
cbxTrimestres.Properties.ReadOnly := False;
Ano.Properties.ReadOnly := False;
cbxLibros.Properties.ReadOnly := False;
try
with TablaEmpresas do
begin
Prepare;
Open;
//FieldByName('PROVINCIA').OnSetText := ProvinciaSetText;
if RecordCount = 0 then
begin
VerMensajeFmt(msgCliNoExisteCli, [CodigoEmpresa]);
CancelarModificar;
CloseFrame;
Exit;
end;
// Bloquear el Empresa
Edit;
Post;
Edit;
//Asignamos los valores por defecto
AsignarValoresDefecto;
end;
// Visible := True;
// NIF.SetFocus;
except
on E : EIBError do
begin
case E.IBErrorCode of
isc_lock_conflict : begin
VerMensajeFmt(msgCliCliBloqueado, [CodigoEmpresa]);
CancelarModificar;
CloseFrame;
Exit;
end
else
TratarExcepcion(E);
end;
end;
on E : Exception do
TratarExcepcion(E);
end;
end;
procedure TfrEmpresa.ActivarModoConsultar;
begin
dsEmpresas.AutoEdit := False;
//Asignamos los valores por defecto
AsignarValoresDefecto;
cbxTrimestres.Properties.ReadOnly := True;
Ano.Properties.ReadOnly := True;
cbxLibros.Properties.ReadOnly := True;
try
with TablaEmpresas do
begin
Prepare;
Open;
if RecordCount = 0 then
begin
VerMensajeFmt(msgCliNoExisteCli, [CodigoEmpresa]);
CancelarModificar;
CloseFrame;
Exit;
end;
end;
// Visible := True;
// NombreComercial.SetFocus;
except
on E : EIBError do
TratarExcepcion(E);
on E : Exception do
TratarExcepcion(E);
end;
end;
procedure TfrEmpresa.ActivarModoEliminar;
begin
dsEmpresas.AutoEdit := False;
//Asignamos los valores por defecto
AsignarValoresDefecto;
cbxTrimestres.Properties.ReadOnly := True;
Ano.Properties.ReadOnly := True;
cbxLibros.Properties.ReadOnly := True;
try
with TablaEmpresas do
begin
Prepare;
Open;
if RecordCount = 0 then
begin
VerMensajeFmt(msgCliNoExisteCli, [CodigoEmpresa]);
CancelarModificar;
CloseFrame;
Exit;
end;
end;
// Visible := True;
// NombreComercial.SetFocus;
except
on E : EIBError do
TratarExcepcion(E);
on E : Exception do
TratarExcepcion(E);
end;
end;
procedure TfrEmpresa.BuscarEmpresa;
begin
if Transaccion = NIL then
exit;
try
TablaEmpresas.Close;
LimpiarDirecciones;
// Buscar la fila a tratar si es necesario
if not esCadenaVacia(CodigoEmpresa) then
begin
TablaEmpresas.Params.ByName('CODIGO').AsString := CodigoEmpresa;
if Assigned(FListaDirecciones) then
FListaDirecciones.Free;
FListaDirecciones := TListaDireccionesEmpresa.Create(CodigoEmpresa);
CargarDirecciones;
end;
TablaEmpresas.Prepare;
TablaEmpresas.Open;
except
on E : EIBError do
TratarExcepcion(E);
on E : Exception do
TratarExcepcion(E);
end;
end;
function TfrEmpresa.CancelarAnadir: Boolean;
begin
Result := False;
try
RollBack;
TablaEmpresas.Close;
Result := True;
except
on E : EIBError do
TratarExcepcion(E);
on E : Exception do
TratarExcepcion(E);
end;
end;
function TfrEmpresa.CancelarEliminar: Boolean;
begin
Result := False;
try
RollBack;
TablaEmpresas.Close;
Result := True;
except
on E : EIBError do
TratarExcepcion(E);
on E : Exception do
TratarExcepcion(E);
end;
end;
function TfrEmpresa.CancelarModificar: Boolean;
begin
Result := False;
try
RollBack;
TablaEmpresas.Close;
Result := True;
except
on E : EIBError do
TratarExcepcion(E);
on E : Exception do
TratarExcepcion(E);
end;
end;
destructor TfrEmpresa.Destroy;
begin
if Assigned(FListaDirecciones) then
FListaDirecciones.Free;
TablaEmpresas.Close;
TablaEmpresas.UnPrepare;
TablaEmpresas.Free;
FListaTrimestres.Free;
FListaTrimestres := Nil;
FListaTiposLibro.Free;
FListaTiposLibro := Nil;
inherited;
end;
procedure TfrEmpresa.FreeContenido;
begin
if (ContenidoModal is TRdxFrameEmpresas) then begin
CodigoEmpresa := (ContenidoModal as TRdxFrameEmpresas).CodigoEmpresa;
ActivarModo;
end;
if (ContenidoModal is TRdxFrameProvincias) then
CodigoProvincia := (ContenidoModal as TRdxFrameProvincias).CodigoProvincia;
if (ContenidoModal is TRdxFramePoblaciones) then begin
CodigoProvincia := (ContenidoModal as TRdxFramePoblaciones).CodigoProvincia;
CodigoPoblacion := (ContenidoModal as TRdxFramePoblaciones).CodigoPoblacion;
end;
inherited FreeContenido;
end;
procedure TfrEmpresa.SetCodigoPoblacion(Value: Variant);
begin
if (not EsCadenaVacia(Value)) then
begin
FCodigoPoblacion := Value;
// Poblacion.DataBinding.Field.AsString := dmTablaPoblaciones.darNombrePoblacion(FCodigoProvincia, FCodigoPoblacion);
end;
end;
procedure TfrEmpresa.SetCodigoProvincia(Value: Variant);
begin
if (not EsCadenaVacia(Value)) then
begin
FCodigoProvincia := Value;
// Provincia.DataBinding.Field.AsString := dmTablaProvincias.DarNombreProvincia(FCodigoProvincia);
end;
end;
procedure TfrEmpresa.VerModal;
begin
if (ContenidoModal is TRdxFramePoblaciones) then
(ContenidoModal as TRdxFramePoblaciones).CodigoProvincia := CodigoProvincia;
inherited;
end;
procedure TfrEmpresa.bCancelarClick(Sender: TObject);
begin
if (TratarCambios = IDOK) then
CloseFrame;
end;
procedure TfrEmpresa.GridBotonPoblacionClick(Sender: TObject; AButtonIndex: Integer);
begin
{ if (esCadenaVacia(CodigoProvincia)) then begin
VerMensaje(msgSinProvincia);
Provincia.setFocus;
Exit;
end;
CodigoProvincia := CodigoProvincia;
CaptionModal := Format(msgListaPoblaciones, [dmTablaProvincias.darNombreProvincia(CodigoProvincia)]);
WidthModal := 280;
HeightModal := 460;
ContenidoModal := TfrPoblaciones.Create(Self);}
end;
function TfrEmpresa.ComprobarDatos: Boolean;
begin
Result := False;
if Length(Trim(NombreComercial.Text)) = 0 then
begin
VerMensajeFmt(msgEmpFaltaAlgo,[msgEmpNombreComercial]);
NombreComercial.SetFocus;
exit;
end;
Result := True;
end;
procedure TfrEmpresa.GridBotonProvinciaClick(Sender: TObject; AButtonIndex: Integer);
begin
CaptionModal := msgListaProvincias;
WidthModal := 280;
HeightModal := 460;
ContenidoModal := TfrProvincias.Create(Self);
end;
procedure TfrEmpresa.bExaminarClick(Sender: TObject);
begin
Logotipo.LoadFromFile;
end;
procedure TfrEmpresa.ProvinciaSetText(Sender: TField;
const Text: String);
begin
FCodigoProvincia := dmTablaProvincias.DarCodigoProvincia(Text);
Sender.AsString := Text;
end;
procedure TfrEmpresa.CambiarModo(ModoAnterior, Modo: TRdxModo);
begin
inherited;
end;
function TfrEmpresa.crearElementosAsociados: boolean;
begin
Result := (dmTablaLibros.crearLibros(TablaEmpresas.FieldByName('CODIGO').AsVariant)
AND dmTablaTrimestres.crearTrimestres(TablaEmpresas.FieldByName('CODIGO').AsVariant, Ano.Value));
end;
procedure TfrEmpresa.AsignarValoresDefecto;
var
i : Integer;
begin
//Asignamos el trimestre por defecto
cbxTrimestres.Text := dmTablaTrimestres.darDescripcionTrimestre(TablaEmpresas.FieldByName('CODIGOTRIMESTRE').AsString);
Ano.Text := FormatDateTime('yyyy', dmTablaTrimestres.darAnoTrimestre(CodigoEmpresa, TablaEmpresas.FieldByName('CODIGOTRIMESTRE').AsString));
//Asignamos libro por defecto
i := 0;
while ((FListaTiposLibro.Items[i].Codigo <> TablaEmpresas.FieldByName('LIBRODEFECTO').AsString)
and (i < FListaTiposLibro.Count - 1)) do inc (i);
if (FListaTiposLibro.Items[i].Codigo = TablaEmpresas.FieldByName('LIBRODEFECTO').AsString) then
cbxLibros.ItemIndex := i;
end;
procedure TfrEmpresa.CargarDirecciones;
begin
with FListaDirecciones do
begin
if Count > 0 then
begin
Calle1.Text := Items[0].Calle;
Numero1.Text := Items[0].Numero;
Provincia1.Text := Items[0].Provincia;
Poblacion1.Text := Items[0].Poblacion;
CodigoPostal1.Text := Items[0].CodigoPostal;
Telefono1.Text := Items[0].Telefono;
Fax1.Text := Items[0].Fax;
end;
if Count > 1 then
begin
Calle2.Text := Items[1].Calle;
Numero2.Text := Items[1].Numero;
Provincia2.Text := Items[1].Provincia;
Poblacion2.Text := Items[1].Poblacion;
CodigoPostal2.Text := Items[1].CodigoPostal;
Telefono2.Text := Items[1].Telefono;
Fax2.Text := Items[1].Fax;
end;
end;
end;
procedure TfrEmpresa.GuardarDirecciones;
var
Dir1,
Dir2 : TDatosDireccionEmpresa;
NumDirecciones : Integer;
begin
if FListaDirecciones = Nil then
exit;
Dir1 := TDatosDireccionEmpresa.Create;
Dir2 := TDatosDireccionEmpresa.Create;
try
while (FListaDirecciones.Count > 0) do
begin
FListaDirecciones.Items[0].Eliminar;
FListaDirecciones.Delete(0);
end;
NumDirecciones := 0;
if not EsVaciaDir1 then
begin
NumDirecciones := NumDirecciones + 1;
Dir1.CodigoEmpresa := FCodigoEmpresa;
Dir1.CodigoDireccion := NumDirecciones - 1;
Dir1.Calle := Calle1.Text;
Dir1.Numero := Numero1.Text;
Dir1.Provincia := Provincia1.Text;
Dir1.Poblacion := Poblacion1.Text;
Dir1.CodigoPostal := CodigoPostal1.Text;
Dir1.Telefono := Telefono1.Text;
Dir1.Fax := Fax1.Text;
Dir1.SalvarDatos;
end;
if not EsVaciaDir2 then
begin
NumDirecciones := NumDirecciones + 1;
Dir2.CodigoEmpresa := FCodigoEmpresa;
Dir2.CodigoDireccion := NumDirecciones - 1;
Dir2.Calle := Calle2.Text;
Dir2.Numero := Numero2.Text;
Dir2.Provincia := Provincia2.Text;
Dir2.Poblacion := Poblacion2.Text;
Dir2.CodigoPostal := CodigoPostal2.Text;
Dir2.Telefono := Telefono2.Text;
Dir2.Fax := Fax2.Text;
Dir2.SalvarDatos;
end;
finally
Dir1.Free;
Dir2.Free;
end;
{ with FListaDirecciones do
begin
if not EsVaciaDir1 then
begin
end;}
end;
procedure TfrEmpresa.LimpiarDirecciones;
begin
Calle1.Text := '';
Numero1.Text := '';
Provincia1.Text := '';
Poblacion1.Text := '';
CodigoPostal1.Text := '';
Telefono1.Text := '';
Fax1.Text := '';
Calle2.Text := '';
Numero2.Text := '';
Provincia2.Text := '';
Poblacion2.Text := '';
CodigoPostal2.Text := '';
Telefono2.Text := '';
Fax2.Text := '';
end;
function TfrEmpresa.EsVaciaDir1: Boolean;
begin
if EsCadenaVacia(Calle1.Text) and EsCadenaVacia(Numero1.Text) and
EsCadenaVacia(Provincia1.Text) and EsCadenaVacia(Poblacion1.Text) and
EsCadenaVacia(CodigoPostal1.Text) and EsCadenaVacia(Telefono1.Text) and
EsCadenaVacia(Fax1.Text) then
Result := True
else
Result := False;
end;
function TfrEmpresa.EsVaciaDir2: Boolean;
begin
if EsCadenaVacia(Calle2.Text) and EsCadenaVacia(Numero2.Text) and
EsCadenaVacia(Provincia2.Text) and EsCadenaVacia(Poblacion2.Text) and
EsCadenaVacia(CodigoPostal2.Text) and EsCadenaVacia(Telefono2.Text) and
EsCadenaVacia(Fax2.Text) then
Result := True
else
Result := False;
end;
procedure TfrEmpresa.BorrarDirecciones;
begin
end;
end.