unit uEditorAgente;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  uEditorContacto, ImgList, PngImageList, StdActns, ActnList, TBX,
  TB2Item, TB2Dock, TB2Toolbar, ComCtrls, JvExControls, JvComponent,
  JvNavigationPane, uViewAgente, uBizContactos, DB, uDADataTable,
  JvFormAutoSize, uDAScriptingProvider, uDACDSDataTable, uCustomView,
  uViewBase, JvAppStorage, JvAppRegistryStorage,
  JvFormPlacement, ExtCtrls, pngimage, JvComponentBase, uViewContacto, StdCtrls,

  uIEditorAgente, TBXStatusBars, JvExComCtrls, JvStatusBar, uViewEmpleado,
  uViewDireccionesEntrega, uViewDetallesGenerico,
  uViewContactoDatosBancarios, dxLayoutLookAndFeels, uViewAgenteComisiones,
  uDAInterfaces, uViewContactoListaDatosBancarios,
  uViewPersonalContacto, cxControls, cxContainer, cxEdit, cxLabel, 
  dxGDIPlusClasses;

type
  TfEditorAgente = class(TfEditorContacto, IEditorAgente)
    actGruposCliente: TAction;
    TBXItem7: TTBXItem;
    pagDescuentos: TTabSheet;
    TBXSubmenuItem2: TTBXSubmenuItem;
    TBXSubmenuItem3: TTBXSubmenuItem;
    TBXItem33: TTBXItem;
    TBXSeparatorItem6: TTBXSeparatorItem;
    actDocumentosPresupuestos: TAction;
    actDocumentosAlbaranes: TAction;
    actDocumentosFacturas: TAction;
    TBXSubmenuItem8: TTBXSubmenuItem;
    TBXItem34: TTBXItem;
    TBXItem35: TTBXItem;
    TBXItem36: TTBXItem;
    TBXItem37: TTBXItem;
    TBXItem38: TTBXItem;
    TBXItem39: TTBXItem;
    TBXItem40: TTBXItem;
    actDocumentosRecibos: TAction;
    TBXItem41: TTBXItem;
    frViewAgente1: TfrViewAgente;
    frViewAgenteComisiones1: TfrViewAgenteComisiones;
    procedure FormShow(Sender: TObject);
    procedure actGruposClienteExecute(Sender: TObject);
    procedure actDocumentosFacturasExecute(Sender: TObject);
    procedure actDocumentosPresupuestosExecute(Sender: TObject);
    procedure actDocumentosAlbaranesExecute(Sender: TObject);
    procedure actDocumentosRecibosExecute(Sender: TObject);
  protected
    procedure EliminarInterno; override;
    procedure SetContacto(const Value: IBizContacto); override;
  public
    constructor Create(AOwner: TComponent); override;
    procedure PonerTitulos(const ATitulo: string = ''); override;
  end;

implementation

uses
  uEditorItem, uEditorBase, uDataModuleUsuarios, uEditorDBItem,
  uGruposClienteController, uBizGruposCliente, uEditorDBBase, uDialogUtils,
  uClientesController, uAgentesController;


{$R *.dfm}

procedure TfEditorAgente.actDocumentosAlbaranesExecute(Sender: TObject);
begin
  inherited;
  (FController as IClientesController).VerAlbaranesDeCliente(IBizCliente(FContacto));
end;

procedure TfEditorAgente.actDocumentosFacturasExecute(Sender: TObject);
begin
  inherited;
  (FController as IClientesController).VerFacturasDeCliente(IBizCliente(FContacto));
end;

procedure TfEditorAgente.actDocumentosPresupuestosExecute(Sender: TObject);
begin
  inherited;
  (FController as IClientesController).VerPresupuestosDeCliente(IBizCliente(FContacto));
end;

procedure TfEditorAgente.actDocumentosRecibosExecute(Sender: TObject);
begin
  inherited;
  (FController as IClientesController).VerRecibosDeCliente(IBizCliente(FContacto));
end;

procedure TfEditorAgente.actGruposClienteExecute(Sender: TObject);
var
  AGruposController : IGruposClienteController;
  AGrupos : IBizGrupoCliente;
begin
  AGruposController := TGruposClienteController.Create;
  try
    AGrupos := (AGruposController.BuscarTodos as IBizGrupoCliente);
    AGruposController.VerTodos(AGrupos);
  finally
    AGrupos := NIL;
    AGruposController := NIL;
  end;
end;

constructor TfEditorAgente.Create(AOwner: TComponent);
begin
  inherited;
  ViewContacto := frViewAgente1;
end;

procedure TfEditorAgente.EliminarInterno;
begin
  if (ShowConfirmMessage('¿Desea borrar este agente?', '') = IDYES) then
    inherited;
end;

procedure TfEditorAgente.FormShow(Sender: TObject);
begin
  inherited;
  pgPaginas.ActivePageIndex := 0;
end;

procedure TfEditorAgente.PonerTitulos(const ATitulo: string);
var
  FTitulo : String;
begin
  if Assigned(Contacto) then
  begin
    if Contacto.EsNuevo then
      FTitulo := 'Nuevo agente'
    else
      FTitulo := 'Agente';
  end;

  inherited PonerTitulos(FTitulo);
end;

procedure TfEditorAgente.SetContacto(const Value: IBizContacto);
begin
  inherited;
  if Assigned(Contacto) then
     frViewAgenteComisiones1.dsDetalles.DataTable := (Contacto as IBizAgente).Comisiones.DataTable
  else
    frViewAgenteComisiones1.dsDetalles.DataTable := NIL;
end;

end.
