unit uEditorEmpleado;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  uEditorContacto, JvAppStorage, JvAppRegistryStorage, JvComponentBase,
  JvFormPlacement, DB, uDADataTable, ImgList, PngImageList, StdActns, ActnList,
  ComCtrls, TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, JvExControls,
  JvComponent, JvNavigationPane, uCustomView, uViewBase, uViewContacto,
  uViewEmpleado, uBizContactos,
  uIEditorEmpleado, pngimage, TBXStatusBars, JvExComCtrls, JvStatusBar,
  uViewDetallesGenerico, uViewContactoDatosBancarios, dxLayoutLookAndFeels,
  dxLayoutControl, cxContainer, cxEdit, cxTextEdit, cxMemo, cxDBEdit, cxControls,
  uDAInterfaces, uViewContactoListaDatosBancarios, uViewPersonalContacto;

type
  TfEditorEmpleado = class(TfEditorContacto, IEditorEmpleado)
    frViewEmpleado1: TfrViewEmpleado;
    pagFormacion: TTabSheet;
    pagExperiencia: TTabSheet;
    dxLayoutControl1Group_Root: TdxLayoutGroup;
    dxLayoutControl1: TdxLayoutControl;
    dxLayoutControl1Item1: TdxLayoutItem;
    eFormacionBasica: TcxDBMemo;
    dxLayoutControl1Group1: TdxLayoutGroup;
    dxLayoutControl1Item2: TdxLayoutItem;
    eFormacionComplementaria: TcxDBMemo;
    dxLayoutControl1Group2: TdxLayoutGroup;
    dxLayoutControl1Item3: TdxLayoutItem;
    eFormacionRecibida: TcxDBMemo;
    dxLayoutControl1Group3: TdxLayoutGroup;
    dxLayoutControl2: TdxLayoutControl;
    eExperiencia: TcxDBMemo;
    dxLayoutGroup1: TdxLayoutGroup;
    dxLayoutGroup3: TdxLayoutGroup;
    dxLayoutItem1: TdxLayoutItem;
    actGruposEmpleado: TAction;
    procedure actGruposEmpleadoExecute(Sender: TObject);
   protected
    procedure EliminarInterno; override;
    procedure ImprimirInterno; override;
    procedure PrevisualizarInterno; override;
    procedure SetContacto(const Value: IBizContacto); override;
  public
    constructor Create(AOwner: TComponent); override;
    procedure PonerTitulos(const ATitulo: string = ''); override;
  end;

implementation

uses
  uEditorDBItem, uDialogUtils, uGruposEmpleadoController, uBizGruposEmpleado,
  uEmpleadosController;

{$R *.dfm}

{ TfEditorEmpleado }

procedure TfEditorEmpleado.actGruposEmpleadoExecute(Sender: TObject);
var
  AGruposController : IGruposEmpleadoController;
  AGrupos : IBizGrupoEmpleado;
begin
  AGruposController := TGruposEmpleadoController.Create;
  try
    AGrupos := (AGruposController.BuscarTodos as IBizGrupoEmpleado);
    AGruposController.VerTodos(AGrupos);
  finally
    AGrupos := NIL;
    AGruposController := NIL;
  end;
end;

constructor TfEditorEmpleado.Create(AOwner: TComponent);
begin
  inherited;
  ViewContacto := frViewEmpleado1;
end;

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

procedure TfEditorEmpleado.ImprimirInterno;
var
  AFichas: IBizEmpleado;
begin
  AFichas := Nil;
  AFichas := (Contacto as IBizEmpleado);

  if Assigned(AFichas) then
    (FController as IEmpleadosController).Print(AFichas);
end;

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

  inherited PonerTitulos(FTitulo);
end;

procedure TfEditorEmpleado.PrevisualizarInterno;
var
  AFichas: IBizEmpleado;
begin
  AFichas := Nil;
  AFichas := (Contacto as IBizEmpleado);

  if Assigned(AFichas) then
    (FController as IEmpleadosController).Preview(AFichas);
end;

procedure TfEditorEmpleado.SetContacto(const Value: IBizContacto);
begin
  inherited;
end;

end.
