git-svn-id: https://192.168.0.254/svn/Proyectos.AlonsoYSal_FactuGES2/trunk@6 40301925-124e-1c4e-b97d-170ad7a8785b
259 lines
7.8 KiB
ObjectPascal
259 lines
7.8 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;
|
||
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);
|
||
function GetMsgElegirCliente: String;
|
||
procedure SetMsgElegirCliente(const Value: String);
|
||
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, uDialogUtils;
|
||
|
||
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);
|
||
var
|
||
ACliente : IBizCliente;
|
||
|
||
begin
|
||
if not Assigned(Cliente) then
|
||
ShowErrorMessage('No se ha indicado un cliente', 'El contrato no tiene ning<6E>n cliente asociado a mostrar.')
|
||
else begin
|
||
Controller.Ver(Cliente);
|
||
|
||
if (Application.MessageBox('<27>Desea recargar los datos del cliente en el documento?', 'Atenci<63>n', MB_YESNO) = IDYES) then
|
||
begin
|
||
ACliente := (Controller.Buscar(Cliente.ID) as IBizCliente);
|
||
if Assigned(ACliente) then
|
||
Self.Cliente := ACliente;
|
||
ACliente := Nil;
|
||
end;
|
||
end;
|
||
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.
|