unit uVendedoresController;

interface

uses
  uCustomEditor,
  uContactosController, uBizContactos,
  uIEditorVendedores, uIEditorVendedor, uIDataModuleContactos, uIDataModuleVendedores;

type
  IVendedoresController = interface(IContactosController)
  end;

  TVendedoresController = class(TContactosController, IVendedoresController)
  public
    constructor Create; override;

    function Buscar(const ID: Integer): IBizContacto; override;
    function BuscarTodos: IBizContacto; override;
    function Nuevo : IBizContacto; override;
    procedure Ver(AContacto : IBizContacto); override;
    procedure VerTodos(AContactos: IBizContacto); override;
  end;

implementation

uses
  SysUtils, cxControls, Dialogs, uDataModuleVendedores, uEditorRegistryUtils,
  uDataTableUtils, uDADataTable, DB, schContactosClient_Intf;

{ TVendedoresController }

function TVendedoresController.Buscar(const ID: Integer): IBizContacto;
begin
  Result := (FDataModule as IDataModuleVendedores).GetItem(ID);
  FiltrarEmpresa(Result);
end;

function TVendedoresController.BuscarTodos: IBizContacto;
begin
  Result := (FDataModule as IDataModuleVendedores).GetItems;
  FiltrarEmpresa(Result);
end;

constructor TVendedoresController.Create;
begin
  inherited;
  FDataModule := TDataModuleVendedores.Create(Nil);
end;

function TVendedoresController.Nuevo: IBizContacto;
var
  AContacto : IBizVendedor;
begin
  AContacto := (FDataModule as IDataModuleVendedores).NewItem;
  FiltrarEmpresa(AContacto);  
  AContacto.DataTable.Active := True;
  AContacto.Insert;
  Result := AContacto;
end;

procedure TVendedoresController.Ver(AContacto: IBizContacto);
var
  AEditor : IEditorVendedor;
begin
  CreateEditor('EditorVendedor', IEditorVendedor, AEditor);
  with AEditor do
  begin
    Contacto := AContacto;
    Controller := Self;
    ShowModal;
  end;
end;

procedure TVendedoresController.VerTodos(AContactos: IBizContacto);
var
  AEditor : IEditorVendedores;
begin
  CreateEditor('EditorVendedores', IEditorVendedores, AEditor);
  with AEditor do
  begin
    Contactos := AContactos;
    Controller := Self;
    ShowEmbedded;
  end;
end;

end.
