git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES2/trunk@226 b2cfbe5a-eba1-4a0c-8b32-7feea0a119f2
263 lines
8.7 KiB
ObjectPascal
263 lines
8.7 KiB
ObjectPascal
unit uViewCliente;
|
||
|
||
interface
|
||
|
||
uses
|
||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||
Dialogs, uViewContacto, DB, uDADataTable, DBCtrls,
|
||
StdCtrls, Mask, ExtCtrls, uCustomView,
|
||
uViewBase, JvComponent, JvFormAutoSize, cxControls, uBizContactos,
|
||
cxContainer, cxEdit, cxTextEdit, cxDBEdit, dxLayoutLookAndFeels,
|
||
dxLayoutControl, cxMemo, cxHyperLinkEdit, ImgList, ActnList, Buttons,
|
||
PngSpeedButton, PngImageList, cxGraphics, cxMaskEdit, cxDropDownEdit,
|
||
cxLookupEdit, cxDBLookupEdit, cxDBLookupComboBox, uGruposClienteController,
|
||
uTiposClienteController, cxCheckBox, cxSpinEdit, Grids, DBGrids, uDAInterfaces,
|
||
uViewDatosYSeleccionClienteBase, uViewDatosYSeleccionCentral;
|
||
|
||
type
|
||
IViewCliente = interface(IViewContacto)
|
||
['{C06F4653-1745-4B7E-A3DC-102B2F23238E}']
|
||
end;
|
||
|
||
TfrViewCliente = class(TfrViewContacto, IViewCliente)
|
||
dxLayoutControlContactoItem24: TdxLayoutItem;
|
||
eNombreComercial: TcxDBTextEdit;
|
||
dxLayoutControlContactoItem26: TdxLayoutItem;
|
||
cbClienteBloqueado: TcxDBCheckBox;
|
||
dxLayoutControlContactoGroup18: TdxLayoutGroup;
|
||
actBloqueoCliente: TAction;
|
||
dxLayoutControlContactoItem22: TdxLayoutItem;
|
||
eCodigoAsignado: TcxDBTextEdit;
|
||
dxLayoutControlContactoGroup8: TdxLayoutGroup;
|
||
dxLayoutControlContactoItem20: TdxLayoutItem;
|
||
cbFelicitacion: TcxDBCheckBox;
|
||
dxLayoutControlContactoItem29: TdxLayoutItem;
|
||
dxLayoutControlContactoItem48: TdxLayoutItem;
|
||
dxLayoutControlContactoGroup30: TdxLayoutGroup;
|
||
cxDBCheckBox1: TcxDBCheckBox;
|
||
Label1: TLabel;
|
||
cbRapel: TcxDBCheckBox;
|
||
Label2: TLabel;
|
||
eMailAdministracion: TcxDBHyperLinkEdit;
|
||
PngSpeedButton4: TPngSpeedButton;
|
||
actMandarCorreoAdministracion: TAction;
|
||
dxLayoutControlContactoItem30: TdxLayoutItem;
|
||
cbTipoCliente: TcxDBComboBox;
|
||
dxLayoutControlContactoItem31: TdxLayoutItem;
|
||
cbSEPA: TcxDBCheckBox;
|
||
dxLayoutControlContactoGroup17: TdxLayoutGroup;
|
||
dxLayoutControlContactoGroup19: TdxLayoutGroup;
|
||
dxLayoutControlContactoItem32: TdxLayoutItem;
|
||
frViewDatosYSeleccionCentral1: TfrViewDatosYSeleccionCentral;
|
||
dxLayoutControlContactoItem33: TdxLayoutItem;
|
||
eBloqueo: TcxDBTextEdit;
|
||
dxLayoutControlContactoItem34: TdxLayoutItem;
|
||
cbGrupoCliente: TcxDBComboBox;
|
||
|
||
procedure cbGrupoClientePropertiesInitPopup(Sender: TObject);
|
||
procedure cbGrupoClientePropertiesValidate(Sender: TObject;
|
||
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
|
||
procedure CustomViewCreate(Sender: TObject);
|
||
procedure CustomViewDestroy(Sender: TObject);
|
||
procedure actBloqueoClienteExecute(Sender: TObject);
|
||
procedure actMandarCorreoAdministracionExecute(Sender: TObject);
|
||
procedure eMailAdministracionPropertiesEditValueChanged(Sender: TObject);
|
||
procedure eMailAdministracionPropertiesValidate(Sender: TObject;
|
||
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
|
||
procedure actMandarCorreoAdministracionUpdate(Sender: TObject);
|
||
procedure eNIFCIFPropertiesValidate(Sender: TObject;
|
||
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
|
||
procedure cbTipoClientePropertiesInitPopup(Sender: TObject);
|
||
procedure cbTipoClientePropertiesValidate(Sender: TObject;
|
||
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
|
||
procedure OnCentralChanged(Sender: TObject);
|
||
protected
|
||
FGrupoController: IGruposClienteController;
|
||
FTipoController: ITiposClienteController;
|
||
procedure SetContacto(const Value: IBizContacto); override;
|
||
end;
|
||
|
||
implementation
|
||
|
||
{$R *.dfm}
|
||
|
||
uses
|
||
uValidacionUtils, uBizGruposCliente, uBizTiposCliente;
|
||
|
||
type
|
||
THackcxDBHyperLinkEdit = class(TcxDBHyperLinkEdit);
|
||
|
||
{ TfrViewCliente }
|
||
|
||
procedure TfrViewCliente.actBloqueoClienteExecute(Sender: TObject);
|
||
begin
|
||
inherited;
|
||
eBloqueo.Enabled := cbClienteBloqueado.Checked;
|
||
end;
|
||
|
||
procedure TfrViewCliente.actMandarCorreoAdministracionExecute(Sender: TObject);
|
||
begin
|
||
inherited;
|
||
THackcxDBHyperLinkEdit(eMailAdministracion).DoStart;
|
||
end;
|
||
|
||
procedure TfrViewCliente.actMandarCorreoAdministracionUpdate(Sender: TObject);
|
||
begin
|
||
inherited;
|
||
(Sender as TAction).Enabled := (Length(eMailAdministracion.Text) > 0)
|
||
end;
|
||
|
||
procedure TfrViewCliente.cbGrupoClientePropertiesInitPopup(Sender: TObject);
|
||
begin
|
||
inherited;
|
||
with cbGrupoCliente.Properties.Items do
|
||
begin
|
||
BeginUpdate;
|
||
try
|
||
Clear;
|
||
AddStrings(FGrupoController.DarListaGruposCliente);
|
||
finally
|
||
EndUpdate;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
procedure TfrViewCliente.cbGrupoClientePropertiesValidate(Sender: TObject;
|
||
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
|
||
var
|
||
AGrupo : IBizGrupoCliente;
|
||
begin
|
||
inherited;
|
||
with (Sender as TcxDBComboBox) do
|
||
begin
|
||
if (Length(DisplayValue) > 0) and (DisplayValue <> (Contacto as IBizCliente).GRUPO_CLIENTE) then
|
||
if Properties.LookupItems.IndexOf(DisplayValue) < 0 then
|
||
begin
|
||
Properties.LookupItems.BeginUpdate;
|
||
AGrupo := FGrupoController.BuscarTodos;
|
||
AGrupo.DataTable.Active := True;
|
||
try
|
||
FGrupoController.Anadir(AGrupo);
|
||
AGrupo.DESCRIPCION := DisplayValue;
|
||
FGrupoController.Guardar(AGrupo);
|
||
Properties.LookupItems.Add(DisplayValue);
|
||
finally
|
||
Properties.LookupItems.EndUpdate;
|
||
AGrupo := NIL;
|
||
end;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
procedure TfrViewCliente.cbTipoClientePropertiesInitPopup(Sender: TObject);
|
||
begin
|
||
with cbTipoCliente.Properties.Items do
|
||
begin
|
||
BeginUpdate;
|
||
try
|
||
Clear;
|
||
AddStrings(FTipoController.DarListaTiposCliente);
|
||
finally
|
||
EndUpdate;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
procedure TfrViewCliente.cbTipoClientePropertiesValidate(Sender: TObject;
|
||
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
|
||
var
|
||
ATipo : IBizTipoCliente;
|
||
begin
|
||
inherited;
|
||
with (Sender as TcxDBComboBox) do
|
||
begin
|
||
if (Length(DisplayValue) > 0) and (DisplayValue <> (Contacto as IBizCliente).TIPO_CLIENTE) then
|
||
if Properties.LookupItems.IndexOf(DisplayValue) < 0 then
|
||
begin
|
||
Properties.LookupItems.BeginUpdate;
|
||
ATipo := FTipoController.BuscarTodos;
|
||
ATipo.DataTable.Active := True;
|
||
try
|
||
FTipoController.Anadir(ATipo);
|
||
ATipo.DESCRIPCION := DisplayValue;
|
||
FTipoController.Guardar(ATipo);
|
||
Properties.LookupItems.Add(DisplayValue);
|
||
finally
|
||
Properties.LookupItems.EndUpdate;
|
||
ATipo := NIL;
|
||
end;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
procedure TfrViewCliente.CustomViewCreate(Sender: TObject);
|
||
begin
|
||
inherited;
|
||
FGrupoController := TGruposClienteController.Create;
|
||
FTipoController := TTiposClienteController.Create;
|
||
end;
|
||
|
||
procedure TfrViewCliente.CustomViewDestroy(Sender: TObject);
|
||
begin
|
||
FGrupoController := NIL;
|
||
FTipoController := NIL;
|
||
inherited;
|
||
end;
|
||
|
||
procedure TfrViewCliente.eMailAdministracionPropertiesEditValueChanged(
|
||
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 TfrViewCliente.eMailAdministracionPropertiesValidate(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 TfrViewCliente.eNIFCIFPropertiesValidate(Sender: TObject;
|
||
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
|
||
begin
|
||
inherited;
|
||
if not EsNIFCIF(DisplayValue) then
|
||
Application.MessageBox('El NIF/CIF introducido no es correcto', 'Atenci<63>n', MB_OK);
|
||
end;
|
||
|
||
procedure TfrViewCliente.OnCentralChanged(Sender: TObject);
|
||
begin
|
||
if Assigned(FContacto) then
|
||
begin
|
||
FContacto.Edit;
|
||
(FContacto as IBizCliente).ID_CENTRAL := frViewDatosYSeleccionCentral1.ID_Cliente;
|
||
end;
|
||
end;
|
||
|
||
procedure TfrViewCliente.SetContacto(const Value: IBizContacto);
|
||
var
|
||
ACentral : IBizContacto;
|
||
begin
|
||
inherited;
|
||
|
||
if Assigned(FContacto) then
|
||
begin
|
||
eBloqueo.Enabled := cbClienteBloqueado.Checked;
|
||
|
||
if not (FContacto as IBizCliente).ID_CENTRALIsNull then
|
||
begin
|
||
ACentral := FController.Buscar((FContacto as IBizCliente).ID_CENTRAL);
|
||
if Assigned(ACentral) then
|
||
begin
|
||
frViewDatosYSeleccionCentral1.Cliente := (ACentral as IBizCliente);
|
||
end;
|
||
end;
|
||
frViewDatosYSeleccionCentral1.OnClienteChanged := OnCentralChanged;
|
||
end;
|
||
end;
|
||
|
||
end.
|