This repository has been archived on 2024-11-28. You can view files and clone it, but cannot push or open issues or pull requests.
LuisLeon_FactuGES2/Source/Modulos/Contactos/Views/uViewCliente.pas

263 lines
8.7 KiB
ObjectPascal
Raw Permalink Blame History

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.