Tecsitel_FactuGES2/Source/Modulos/Contactos/Controller/uDireccionesContactoController.pas

122 lines
3.3 KiB
ObjectPascal

unit uDireccionesContactoController;
interface
uses
Windows, Forms, Classes, Controls, Contnrs, SysUtils, uDADataTable,
uBizContactos, uBizDireccionesContacto, uIDataModuleContactos;
type
IDireccionesContactoController = interface
['{9B6CB172-F32C-414F-A0E2-99920CAF88FB}']
procedure CopiarDireccionFiscal(AContacto: IBizContacto; ADireccion: IBizDireccionesContacto; AAnadir : Boolean = True);
procedure Ver(ADireccion : IBizDireccionesContacto);
function Localizar(ADirecciones: IBizDireccionesContacto; const ID : Integer): Boolean;
end;
TDireccionesContactoController = class(TInterfacedObject, IDireccionesContactoController)
private
FDataModule : IDataModuleContactos;
public
procedure CopiarDireccionFiscal(AContacto: IBizContacto; ADireccion: IBizDireccionesContacto; AAnadir : Boolean = True);
procedure Ver(ADireccion : IBizDireccionesContacto);
function Localizar(ADirecciones: IBizDireccionesContacto; const ID : Integer): Boolean;
constructor Create; virtual;
destructor Destroy; override;
end;
implementation
{ TDireccionesContactoController }
uses
uDataModuleContactos, schContactosClient_Intf, uIEditorDireccionContacto,
uEditorRegistryUtils, cxControls;
procedure TDireccionesContactoController.CopiarDireccionFiscal(
AContacto: IBizContacto; ADireccion: IBizDireccionesContacto;
AAnadir: Boolean);
begin
if not Assigned(AContacto) then
raise Exception.Create ('Contacto no asignado (CopiarDireccionFiscal)');
if not Assigned(ADireccion) then
raise Exception.Create ('Dirección no asignada (CopiarDireccionFiscal)');
if AAnadir then
ADireccion.DataTable.Insert
else
ADireccion.DataTable.Edit;
try
with ADireccion do
begin
NOMBRE := 'Dirección de entrega';
CALLE := AContacto.CALLE;
POBLACION := AContacto.POBLACION;
PROVINCIA := AContacto.PROVINCIA;
CODIGO_POSTAL := AContacto.CODIGO_POSTAL;
TELEFONO := AContacto.TELEFONO_1;
EMAIL := AContacto.EMAIL_1;
end;
finally
ADireccion.DataTable.Post;
end;
end;
constructor TDireccionesContactoController.Create;
begin
inherited;
FDataModule := TDataModuleContactos.Create(Nil);
end;
destructor TDireccionesContactoController.Destroy;
begin
FDataModule := Nil;
inherited;
end;
function TDireccionesContactoController.Localizar(
ADirecciones: IBizDireccionesContacto; const ID: Integer): Boolean;
begin
Result := True;
ShowHourglassCursor;
try
with ADirecciones.DataTable do
begin
DisableControls;
First;
if not Locate(fld_DireccionesContactoID, ID, []) then
Result := False;
EnableControls;
end;
finally
HideHourglassCursor;
end;
end;
procedure TDireccionesContactoController.Ver(
ADireccion: IBizDireccionesContacto);
var
AEditor : IEditorEditorDireccion;
begin
AEditor := NIL;
ShowHourglassCursor;
try
CreateEditor('EditorDireccion', IEditorEditorDireccion, AEditor);
if Assigned(AEditor) then
with AEditor do
begin
Direccion := ADireccion;
Controller := Self;
ShowModal;
Release;
end;
finally
AEditor := NIL;
HideHourglassCursor;
end;
end;
end.