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, cxCheckBox, cxSpinEdit, Grids, DBGrids, uDAInterfaces; type IViewCliente = interface(IViewContacto) ['{C06F4653-1745-4B7E-A3DC-102B2F23238E}'] end; TfrViewCliente = class(TfrViewContacto, IViewCliente) dxLayoutControlContactoItem24: TdxLayoutItem; eNombreComercial: TcxDBTextEdit; dxLayoutControlContactoItem26: TdxLayoutItem; cbClienteBloqueado: TcxDBCheckBox; dxLayoutControlContactoGroup18: TdxLayoutGroup; dxLayoutControlContactoItem19: TdxLayoutItem; cbGrupoCliente: TcxDBComboBox; dxLayoutControlContactoItem16: TdxLayoutItem; eBloqueo: TcxDBTextEdit; actBloqueoCliente: TAction; dxLayoutControlContactoItem22: TdxLayoutItem; eCodigoAsignado: TcxDBTextEdit; dxLayoutControlContactoGroup8: TdxLayoutGroup; dxLayoutControlContactoItem20: TdxLayoutItem; cbFelicitacion: TcxDBCheckBox; 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 eNIFCIFPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); protected FGrupoController: IGruposClienteController; procedure SetContacto(const Value: IBizContacto); override; end; implementation {$R *.dfm} uses uCIFNIFUtils, uBizGruposCliente; { TfrViewCliente } procedure TfrViewCliente.actBloqueoClienteExecute(Sender: TObject); begin inherited; eBloqueo.Enabled := cbClienteBloqueado.Checked; 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.CustomViewCreate(Sender: TObject); begin inherited; FGrupoController := TGruposClienteController.Create; end; procedure TfrViewCliente.CustomViewDestroy(Sender: TObject); begin FGrupoController := NIL; inherited; end; procedure TfrViewCliente.eNIFCIFPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); begin inherited; if not EsCif(DisplayValue) then Application.MessageBox('El NIF/CIF introducido no es correcto', 'Atención', MB_OK); end; procedure TfrViewCliente.SetContacto(const Value: IBizContacto); begin inherited; if Assigned(FContacto) then eBloqueo.Enabled := cbClienteBloqueado.Checked; end; end.