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

266 lines
8.0 KiB
ObjectPascal

unit uViewDatosYSeleccionProveedor;
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,
uProveedoresController, dxLayoutControl, Buttons, uDAInterfaces;
type
IViewDatosYSeleccionProveedor = interface(IViewBase)
['{EE8C51BD-618D-4211-A247-6FA9BD8EBFD9}']
function GetController: IProveedoresController;
procedure SetController(Value: IProveedoresController);
property Controller: IProveedoresController read GetController write SetController;
function GetProveedor: IBizProveedor;
procedure SetProveedor(Value: IBizProveedor);
property Proveedor: IBizProveedor read GetProveedor write SetProveedor;
function GetID_Proveedor: integer;
procedure SetID_Proveedor(const Value: integer);
property ID_Proveedor: integer read GetID_Proveedor write SetID_Proveedor;
function GetOnProveedorChanged : TNotifyEvent;
procedure SetOnProveedorChanged (const Value : TNotifyEvent);
property OnProveedorChanged : TNotifyEvent read GetOnProveedorChanged
write SetOnProveedorChanged;
function GetMsgElegirProveedor: String;
procedure SetMsgElegirProveedor(const Value: String);
property MsgElegirProveedor : String read GetMsgElegirProveedor
write SetMsgElegirProveedor;
end;
TfrViewDatosYSeleccionProveedor = class(TfrViewBase, IViewDatosYSeleccionProveedor)
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 : IProveedoresController;
FProveedor : IBizProveedor;
FOnProveedorChanged : TNotifyEvent;
FMsgElegirProveedor : String;
protected
function GetController: IProveedoresController;
procedure SetController(Value: IProveedoresController);
function GetProveedor: IBizProveedor;
procedure SetProveedor(Value: IBizProveedor);
function GetOnProveedorChanged : TNotifyEvent;
procedure SetOnProveedorChanged (const Value : TNotifyEvent);
function GetMsgElegirProveedor: String;
procedure SetMsgElegirProveedor(const Value: String);
procedure SetReadOnly(Value: Boolean); override;
function GetID_Proveedor: integer;
procedure SetID_Proveedor(const Value: integer);
procedure ElegirProveedorInternal; virtual;
procedure VerFichaProveedorInternal; virtual;
procedure NuevoProveedorInternal; virtual;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
property MsgElegirProveedor : String read GetMsgElegirProveedor write SetMsgElegirProveedor;
property Controller: IProveedoresController read GetController write SetController;
property Proveedor: IBizProveedor read GetProveedor write SetProveedor;
property ID_Proveedor: integer read GetID_Proveedor write SetID_Proveedor;
property OnProveedorChanged : TNotifyEvent read GetOnProveedorChanged write SetOnProveedorChanged;
end;
implementation
{$R *.dfm}
uses
uDataModuleProveedores, Math;
procedure TfrViewDatosYSeleccionProveedor.actElegirContactoExecute(Sender: TObject);
begin
inherited;
ElegirProveedorInternal;
end;
procedure TfrViewDatosYSeleccionProveedor.actAnadirContactoExecute(
Sender: TObject);
begin
inherited;
NuevoProveedorInternal
end;
procedure TfrViewDatosYSeleccionProveedor.actVerContactoExecute(Sender: TObject);
begin
inherited;
VerFichaProveedorInternal;
end;
procedure TfrViewDatosYSeleccionProveedor.actVerContactoUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := (Length(edtlNombre.Text) > 0);
end;
constructor TfrViewDatosYSeleccionProveedor.Create(AOwner: TComponent);
begin
inherited;
FMsgElegirProveedor := '';
FController := NIL;
end;
destructor TfrViewDatosYSeleccionProveedor.Destroy;
begin
FController := NIL;
inherited;
end;
procedure TfrViewDatosYSeleccionProveedor.ElegirProveedorInternal;
var
AProveedor : IBizProveedor;
begin
inherited;
AProveedor := (Controller.ElegirContacto(Controller.BuscarTodos,
FMsgElegirProveedor, False) as IBizProveedor);
if Assigned(AProveedor) then
begin
Self.Update;
ShowHourglassCursor;
try
Proveedor := AProveedor;
finally
HideHourglassCursor;
end;
end;
end;
function TfrViewDatosYSeleccionProveedor.GetProveedor: IBizProveedor;
begin
Result := FProveedor;
end;
procedure TfrViewDatosYSeleccionProveedor.NuevoProveedorInternal;
var
AProveedor : IBizProveedor;
begin
inherited;
AProveedor := (Controller.Nuevo as IBizProveedor);
Controller.Ver(AProveedor);
Proveedor := AProveedor;
end;
function TfrViewDatosYSeleccionProveedor.GetController: IProveedoresController;
begin
if not Assigned(FController) then
FController := TProveedoresController.Create;
Result := FController;
end;
function TfrViewDatosYSeleccionProveedor.GetID_Proveedor: integer;
begin
Result := -1;
if Assigned(FProveedor) then
Result := FProveedor.ID;
end;
function TfrViewDatosYSeleccionProveedor.GetMsgElegirProveedor: String;
begin
Result := FMsgElegirProveedor;
end;
procedure TfrViewDatosYSeleccionProveedor.SetProveedor(Value: IBizProveedor);
begin
FProveedor := Value;
if Assigned(FProveedor) then
begin
DADataSource.DataTable := FProveedor.DataTable;
if not FProveedor.DataTable.Active then
FProveedor.DataTable.Active := True;
end
else
DADataSource.DataTable := NIL;
if Assigned(FOnProveedorChanged) then
FOnProveedorChanged(Self);
end;
procedure TfrViewDatosYSeleccionProveedor.SetReadOnly(Value: Boolean);
begin
inherited;
if (csLoading in Self.ComponentState) then
Exit;
actAnadirContacto.Enabled := not ReadOnly;
actElegirContacto.Enabled := not ReadOnly;
end;
procedure TfrViewDatosYSeleccionProveedor.VerFichaProveedorInternal;
begin
Controller.Ver(Proveedor);
end;
procedure TfrViewDatosYSeleccionProveedor.SetController(Value: IProveedoresController);
begin
if Assigned(FController) then
FController := NIL;
FController := Value;
end;
procedure TfrViewDatosYSeleccionProveedor.SetID_Proveedor(const Value: integer);
begin
Self.Proveedor := IBizProveedor(Controller.Buscar(Value));
end;
procedure TfrViewDatosYSeleccionProveedor.SetMsgElegirProveedor(
const Value: String);
begin
FMsgElegirProveedor := Value;
end;
function TfrViewDatosYSeleccionProveedor.GetOnProveedorChanged: TNotifyEvent;
begin
Result := FOnProveedorChanged;
end;
procedure TfrViewDatosYSeleccionProveedor.SetOnProveedorChanged(
const Value: TNotifyEvent);
begin
FOnProveedorChanged := Value;
end;
end.