Tecsitel_FactuGES2/Source/Modulos/Contactos/Views/uViewContacto.pas
david 7c35d651bc Ticket #91 -> En las obras, poner la dirección del cliente como dirección de la obra.
Ticket #92 -> Considerar la dirección fiscal de un cliente como dirección a elegir.

git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@552 0c75b7a4-871f-7646-8a2f-f78d34cc349f
2008-09-03 09:21:08 +00:00

313 lines
9.6 KiB
ObjectPascal

unit uViewContacto;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewBase, ExtCtrls, StdCtrls, Buttons, DB, uDADataTable,
DBCtrls, Grids, DBGrids, uBizContactos, Mask, ComCtrls, uCustomView,
JvComponent, JvFormAutoSize, cxControls, cxContainer, cxEdit, cxTextEdit,
cxDBEdit, dxLayoutControl, dxLayoutLookAndFeels, cxMemo, cxHyperLinkEdit,
ImgList, ActnList, PngImageList, PngSpeedButton, uDAInterfaces, uContactosController,
cxGraphics, cxMaskEdit, cxDropDownEdit;
type
IViewContacto = interface(IViewBase)
['{5FCFD172-5F8A-4639-B479-1CF0061526B5}']
function GetController : IContactosController;
procedure SetController (const Value : IContactosController);
property Controller : IContactosController read GetController
write SetController;
function GetContacto: IBizContacto;
procedure SetContacto(const Value: IBizContacto);
property Contacto: IBizContacto read GetContacto write SetContacto;
end;
TfrViewContacto = class(TfrViewBase, IViewContacto)
dsContacto: TDADataSource;
dxLayoutControlContactoGroup_Root: TdxLayoutGroup;
dxLayoutControlContacto: TdxLayoutControl;
dxLayoutControlContactoGroup1: TdxLayoutGroup;
dxLayoutControlContactoGroup2: TdxLayoutGroup;
dxLayoutControlContactoGroup3: TdxLayoutGroup;
dxLayoutControlContactoGroup4: TdxLayoutGroup;
dxLayoutControlContactoGroup5: TdxLayoutGroup;
dxLayoutControlContactoGroup6: TdxLayoutGroup;
dxLayoutControlContactoGroup7: TdxLayoutGroup;
dxLayoutControlContactoGroup9: TdxLayoutGroup;
dxLayoutControlContactoItem1: TdxLayoutItem;
eCalle: TcxDBTextEdit;
dxLayoutControlContactoItem2: TdxLayoutItem;
cbProvincia: TcxDBComboBox;
dxLayoutControlContactoItem3: TdxLayoutItem;
cbPoblacion: TcxDBComboBox;
dxLayoutControlContactoItem4: TdxLayoutItem;
eCodigoPostal: TcxDBTextEdit;
eObservaciones: TcxDBMemo;
dxLayoutControlContactoItem8: TdxLayoutItem;
dxLayoutControlContactoItem9: TdxLayoutItem;
eTlfParticular: TcxDBTextEdit;
dxLayoutControlContactoItem10: TdxLayoutItem;
eTlfTrabajo: TcxDBTextEdit;
dxLayoutControlContactoItem11: TdxLayoutItem;
eTlfMovil: TcxDBTextEdit;
dxLayoutControlContactoItem12: TdxLayoutItem;
eFax: TcxDBTextEdit;
dxLayoutControlContactoItem13: TdxLayoutItem;
eNombre: TcxDBTextEdit;
dxLayoutControlContactoItem14: TdxLayoutItem;
eNIFCIF: TcxDBTextEdit;
dxLayoutControlContactoItem7: TdxLayoutItem;
eMailTrabajo: TcxDBHyperLinkEdit;
ActionList1: TActionList;
actMandarCorreoParticular: TAction;
actMandarCorreoTrabajo: TAction;
actVerPaginaWeb: TAction;
dxLayoutControlContactoItem6: TdxLayoutItem;
eMailParticular: TcxDBHyperLinkEdit;
dxLayoutControlContactoGroup110: TdxLayoutGroup;
dxLayoutControlContactoItem5: TdxLayoutItem;
ePaginaWeb: TcxDBHyperLinkEdit;
ImageList1: TPngImageList;
PngSpeedButton1: TPngSpeedButton;
dxLayoutControlContactoItem15: TdxLayoutItem;
PngSpeedButton2: TPngSpeedButton;
dxLayoutControlContactoItem17: TdxLayoutItem;
PngSpeedButton3: TPngSpeedButton;
dxLayoutControlContactoItem18: TdxLayoutItem;
dxLayoutControlContactoGroup12: TdxLayoutGroup;
dxLayoutControlContactoGroup13: TdxLayoutGroup;
dxLayoutControlContactoGroup11: TdxLayoutGroup;
dxLayoutControlContactoItem25: TdxLayoutItem;
eReferencia: TcxDBTextEdit;
dxLayoutControlContactoGroup16: TdxLayoutGroup;
dxLayoutControlContactoItem167: TdxLayoutItem;
ePersonaContacto: TcxDBTextEdit;
dxLayoutControlContactoGroup10: TdxLayoutGroup;
procedure eMailTrabajoPropertiesEditValueChanged(Sender: TObject);
procedure actMandarCorreoParticularExecute(Sender: TObject);
procedure actMandarCorreoTrabajoExecute(Sender: TObject);
procedure actVerPaginaWebExecute(Sender: TObject);
procedure actMandarCorreoParticularUpdate(Sender: TObject);
procedure actMandarCorreoTrabajoUpdate(Sender: TObject);
procedure actVerPaginaWebUpdate(Sender: TObject);
procedure eMailTrabajoPropertiesValidate(Sender: TObject;
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
procedure eProvinciaPropertiesInitPopup(Sender: TObject);
procedure cbPoblacionPropertiesInitPopup(Sender: TObject);
protected
FContacto: IBizContacto;
FController : IContactosController;
FProvincias : TStringList;
FPoblaciones : TStringList;
procedure CargarProvincias;
procedure CargarPoblaciones;
function GetContacto: IBizContacto; virtual;
procedure SetContacto(const Value: IBizContacto); virtual;
function GetController : IContactosController; virtual;
procedure SetController (const Value : IContactosController); virtual;
public
constructor Create(AOwner : TComponent); override;
destructor Destroy; override;
property Controller : IContactosController read GetController
write SetController;
property Contacto: IBizContacto read GetContacto write SetContacto;
end;
implementation
{$R *.dfm}
uses
uProvinciasPoblacionesController, uStringsUtils;
type
THackcxDBHyperLinkEdit = class(TcxDBHyperLinkEdit);
{ TfrViewContactos }
{
******************************* TfrViewContacto ********************************
}
procedure TfrViewContacto.actMandarCorreoParticularExecute(Sender: TObject);
begin
inherited;
THackcxDBHyperLinkEdit(eMailParticular).DoStart;
end;
procedure TfrViewContacto.actMandarCorreoParticularUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := (Length(eMailParticular.Text) > 0)
end;
procedure TfrViewContacto.actMandarCorreoTrabajoExecute(Sender: TObject);
begin
inherited;
THackcxDBHyperLinkEdit(eMailTrabajo).DoStart;
end;
procedure TfrViewContacto.actMandarCorreoTrabajoUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := (Length(eMailTrabajo.Text) > 0)
end;
procedure TfrViewContacto.actVerPaginaWebExecute(Sender: TObject);
begin
inherited;
THackcxDBHyperLinkEdit(ePaginaWeb).DoStart;
end;
procedure TfrViewContacto.actVerPaginaWebUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := (Length(ePaginaWeb.Text) > 0)
end;
procedure TfrViewContacto.CargarPoblaciones;
var
i : integer;
AID : Integer;
begin
AID := StrToInt(FProvincias.Values[cbProvincia.Text]);
with TProvinciasPoblacionesController.Create do
try
FPoblaciones := DarListaPoblaciones(AID);
with cbPoblacion.Properties.Items do
begin
BeginUpdate;
try
Clear;
for i := 0 to FPoblaciones.Count - 1 do
Add(FPoblaciones.Names[i]);
finally
EndUpdate;
end;
end;
finally
Free;
end;
end;
procedure TfrViewContacto.CargarProvincias;
var
i : integer;
begin
with TProvinciasPoblacionesController.Create do
try
FProvincias := DarListaProvincias;
with cbProvincia.Properties.Items do
begin
BeginUpdate;
try
Clear;
for i := 0 to FProvincias.Count - 1 do
Add(FProvincias.Names[i]);
finally
EndUpdate;
end;
end;
finally
Free;
end;
end;
procedure TfrViewContacto.cbPoblacionPropertiesInitPopup(Sender: TObject);
begin
inherited;
ShowHourglassCursor;
try
FreeANDNIL(FPoblaciones);
if not Assigned(FProvincias) then
CargarProvincias;
if not EsCadenaVacia(cbProvincia.Text) and (FProvincias.IndexOfName(cbProvincia.Text) <> -1) then
CargarPoblaciones
finally
HideHourglassCursor;
end;
end;
constructor TfrViewContacto.Create(AOwner : TComponent);
begin
inherited;
FProvincias := NIL;
FPoblaciones := NIL;
end;
destructor TfrViewContacto.Destroy;
begin
if Assigned(FProvincias) then
FreeANDNIL(FProvincias);
if Assigned(FPoblaciones) then
FreeANDNIL(FPoblaciones);
inherited;
end;
procedure TfrViewContacto.eMailTrabajoPropertiesEditValueChanged(Sender: TObject);
begin
inherited;
if not VarIsNull((Sender as TcxDBHyperLinkEdit).EditValue) then
(Sender as TcxDBHyperLinkEdit).EditValue := StringReplace((Sender as TcxDBHyperLinkEdit).EditValue, (Sender as TcxDBHyperLinkEdit).Properties.Prefix, '', []);
end;
procedure TfrViewContacto.eMailTrabajoPropertiesValidate(Sender: TObject;
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
begin
inherited;
if not VarIsNull(DisplayValue) then
DisplayValue := StringReplace(DisplayValue, (Sender as TcxDBHyperLinkEdit).Properties.Prefix, '', []);
end;
procedure TfrViewContacto.eProvinciaPropertiesInitPopup(Sender: TObject);
begin
inherited;
ShowHourglassCursor;
try
if not Assigned(FProvincias) then
CargarProvincias;
finally
HideHourglassCursor;
end;
end;
function TfrViewContacto.GetContacto: IBizContacto;
begin
Result := FContacto;
end;
function TfrViewContacto.GetController: IContactosController;
begin
Result := FController;
end;
procedure TfrViewContacto.SetContacto(const Value: IBizContacto);
begin
FContacto := Value;
if Assigned(FContacto) then
begin
dsContacto.DataTable := FContacto.DataTable;
end
else begin
dsContacto.DataTable := NIL;
end;
end;
procedure TfrViewContacto.SetController(const Value: IContactosController);
begin
FController := Value;
end;
initialization
RegisterClass(TfrViewContacto);
finalization
UnRegisterClass(TfrViewContacto);
end.