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

216 lines
6.4 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 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;
public
constructor Create(AOwner: TComponent); 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;
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 := (FController.Nuevo as IBizCliente);
FController.Ver(ACliente);
Cliente := ACliente;
end;
procedure TfrViewDatosYSeleccionCliente.actVerContactoExecute(Sender: TObject);
begin
inherited;
FController.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 := '';
end;
function TfrViewDatosYSeleccionCliente.GetCliente: IBizCliente;
begin
Result := FCliente;
end;
function TfrViewDatosYSeleccionCliente.GetController: IClientesController;
begin
Result := FController;
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
FController := 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.