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, cxCalendar; 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; dxLayoutControlContactoItem21: TdxLayoutItem; eFechaIngreso: TcxDBDateEdit; dxLayoutControlContactoGroup14: TdxLayoutGroup; dxLayoutControlContactoItem23: TdxLayoutItem; cbEmpresa: 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 cbEmpresaPropertiesInitPopup(Sender: TObject); protected FGrupoController: IGruposClienteController; procedure SetContacto(const Value: IBizContacto); override; end; implementation {$R *.dfm} uses uBizGruposCliente, uFactuGES_App, uBizEmpresas; { TfrViewCliente } procedure TfrViewCliente.actBloqueoClienteExecute(Sender: TObject); begin inherited; eBloqueo.Enabled := cbClienteBloqueado.Checked; end; procedure TfrViewCliente.cbEmpresaPropertiesInitPopup(Sender: TObject); var AEmpresas: IBizEmpresa; begin inherited; AEmpresas := AppFactuGES.EmpresasController.BuscarTodos; AEmpresas.DataTable.Active := True; with cbEmpresa.Properties.Items do begin BeginUpdate; try Clear; while not AEmpresas.Datatable.eof do begin Add(AEmpresas.NOMBRE); AEmpresas.DataTable.Next; end; AEmpresas.DataTable.First; finally AEmpresas := NIL; EndUpdate; end; end; 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.SetContacto(const Value: IBizContacto); begin inherited; if Assigned(FContacto) then eBloqueo.Enabled := cbClienteBloqueado.Checked; end; end.