AbetoDesign_FactuGES2/Source/Modulos/Contactos/Views/uViewDatosYSeleccionCliente.pas

246 lines
7.3 KiB
ObjectPascal

unit uViewDatosYSeleccionCliente;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewBase, StdCtrls, cxControls, cxContainer, cxEdit, cxLabel,
cxDBLabel, ExtCtrls, DB, uDADataTable, uBizContactos,
ComCtrls, ToolWin, ActnList, ImgList, PngImageList, cxTextEdit, cxDBEdit,
pngimage, JvExControls, JvComponent, JvButton, JvTransparentButton, Mask,
DBCtrls,
uClientesController, dxLayoutControl, Buttons, uDAInterfaces;
type
IViewDatosYSeleccionCliente = interface(IViewBase)
['{BCC2B36B-4A19-4981-B69A-56E258A898F0}']
function GetController: IClientesController;
procedure SetController(Value: IClientesController);
property Controller: IClientesController read GetController write SetController;
function GetCliente: IBizCliente;
procedure SetCliente(Value: IBizCliente);
property Cliente: IBizCliente read GetCliente write SetCliente;
function GetID_Cliente: integer;
procedure SetID_Cliente(const Value: integer);
property ID_Cliente: integer read GetID_Cliente write SetID_Cliente;
function GetOnClienteChanged : TNotifyEvent;
procedure SetOnClienteChanged (const Value : TNotifyEvent);
property OnClienteChanged : TNotifyEvent read GetOnClienteChanged
write SetOnClienteChanged;
function GetMsgElegirCliente: String;
procedure SetMsgElegirCliente(const Value: String);
property MsgElegirCliente : String read GetMsgElegirCliente
write SetMsgElegirCliente;
end;
TfrViewDatosYSeleccionCliente = class(TfrViewBase, IViewDatosYSeleccionCliente)
DADataSource: TDADataSource;
ActionList1: TActionList;
actElegirContacto: TAction;
actAnadirContacto: TAction;
actVerContacto: TAction;
PngImageList: TPngImageList;
dxLayoutControl1Group_Root: TdxLayoutGroup;
dxLayoutControl1: TdxLayoutControl;
dxLayoutControl1Item1: TdxLayoutItem;
edtlNombre: TcxDBTextEdit;
dxLayoutControl1Item2: TdxLayoutItem;
edtNIFCIF: TcxDBTextEdit;
dxLayoutControl1Item3: TdxLayoutItem;
edtCalle: TcxDBTextEdit;
dxLayoutControl1Item4: TdxLayoutItem;
edtPoblacion: TcxDBTextEdit;
dxLayoutControl1Item5: TdxLayoutItem;
edtProvincia: TcxDBTextEdit;
dxLayoutControl1Item6: TdxLayoutItem;
edtCodigoPostal: TcxDBTextEdit;
Button1: TBitBtn;
dxLayoutControl1Item7: TdxLayoutItem;
Button2: TBitBtn;
dxLayoutControl1Item8: TdxLayoutItem;
Button3: TBitBtn;
dxLayoutControl1Item9: TdxLayoutItem;
dxLayoutControl1Group1: TdxLayoutGroup;
dxLayoutControl1Group2: TdxLayoutGroup;
procedure actElegirContactoExecute(Sender: TObject);
procedure actAnadirContactoExecute(Sender: TObject);
procedure actVerContactoExecute(Sender: TObject);
procedure actVerContactoUpdate(Sender: TObject);
private
FController : IClientesController;
FCliente : IBizCliente;
FOnClienteChanged : TNotifyEvent;
FMsgElegirCliente: String;
function GetMsgElegirCliente: String;
procedure SetMsgElegirCliente(const Value: String);
protected
function GetController: IClientesController;
procedure SetController(Value: IClientesController);
function GetCliente: IBizCliente;
procedure SetCliente(Value: IBizCliente);
function GetOnClienteChanged : TNotifyEvent;
procedure SetOnClienteChanged (const Value : TNotifyEvent);
procedure SetReadOnly(Value: Boolean); override;
function GetID_Cliente: integer;
procedure SetID_Cliente(const Value: integer);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
property Controller: IClientesController read GetController write SetController;
property Cliente: IBizCliente read GetCliente write SetCliente;
property OnClienteChanged : TNotifyEvent read GetOnClienteChanged write SetOnClienteChanged;
property MsgElegirCliente : String read GetMsgElegirCliente write SetMsgElegirCliente;
property ID_Cliente: integer read GetID_Cliente write SetID_Cliente;
end;
implementation
{$R *.dfm}
uses
uDataModuleClientes, Math, uCustomView;
procedure TfrViewDatosYSeleccionCliente.actElegirContactoExecute(Sender: TObject);
var
ACliente : IBizCliente;
begin
inherited;
ACliente := (Controller.ElegirContacto(Controller.BuscarTodos, FMsgElegirCliente, False) as IBizCliente);
if Assigned(ACliente) then
begin
Self.Update;
ShowHourglassCursor;
try
Cliente := ACliente;
finally
HideHourglassCursor;
end;
end;
ACliente := Nil;
end;
procedure TfrViewDatosYSeleccionCliente.actAnadirContactoExecute(
Sender: TObject);
var
ACliente : IBizCliente;
begin
inherited;
ACliente := (Controller.Nuevo as IBizCliente);
Controller.Ver(ACliente);
Cliente := ACliente;
end;
procedure TfrViewDatosYSeleccionCliente.actVerContactoExecute(Sender: TObject);
begin
inherited;
Controller.Ver(Cliente);
end;
procedure TfrViewDatosYSeleccionCliente.actVerContactoUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := (Length(edtlNombre.Text) > 0);
end;
constructor TfrViewDatosYSeleccionCliente.Create(AOwner: TComponent);
begin
inherited;
FMsgElegirCliente := '';
FController := NIL;
end;
destructor TfrViewDatosYSeleccionCliente.Destroy;
begin
FController := NIL;
inherited;
end;
function TfrViewDatosYSeleccionCliente.GetCliente: IBizCliente;
begin
Result := FCliente;
end;
function TfrViewDatosYSeleccionCliente.GetController: IClientesController;
begin
if not Assigned(FController) then
FController := TClientesController.Create;
Result := FController;
end;
function TfrViewDatosYSeleccionCliente.GetID_Cliente: integer;
begin
Result := -1;
if Assigned(FCliente) then
Result := FCliente.ID;
end;
function TfrViewDatosYSeleccionCliente.GetMsgElegirCliente: String;
begin
Result := FMsgElegirCliente;
end;
procedure TfrViewDatosYSeleccionCliente.SetCliente(Value: IBizCliente);
begin
FCliente := Value;
if Assigned(FCliente) then
begin
DADataSource.DataTable := FCliente.DataTable;
if not FCliente.DataTable.Active then
FCliente.DataTable.Active := True;
end
else
DADataSource.DataTable := NIL;
if Assigned(FOnClienteChanged) then
FOnClienteChanged(Self);
end;
procedure TfrViewDatosYSeleccionCliente.SetController(Value: IClientesController);
begin
if Assigned(FController) then
FController := NIL;
FController := Value;
end;
procedure TfrViewDatosYSeleccionCliente.SetID_Cliente(const Value: integer);
begin
Self.Cliente := IBizCliente(Controller.Buscar(Value));
end;
procedure TfrViewDatosYSeleccionCliente.SetMsgElegirCliente(
const Value: String);
begin
FMsgElegirCliente := Value;
end;
function TfrViewDatosYSeleccionCliente.GetOnClienteChanged: TNotifyEvent;
begin
Result := FOnClienteChanged;
end;
procedure TfrViewDatosYSeleccionCliente.SetOnClienteChanged(
const Value: TNotifyEvent);
begin
FOnClienteChanged := Value;
end;
procedure TfrViewDatosYSeleccionCliente.SetReadOnly(Value: Boolean);
begin
inherited;
if ReadOnly then
begin
actAnadirContacto.Enabled := False;
actElegirContacto.Enabled := False;
end;
end;
end.