unit ElegirEmpresa;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComCtrls, ExtCtrls, DBCGrids, StdCtrls, DBCtrls, IBDatabase, Db, IBSQL,
  IBCustomDataSet, IBTable, cxControls, cxContainer, cxEdit, cxImage,
  cxDBEdit, Grids, DBGrids, pngimage, RdxBotones, RdxPaneles,
  RdxBarras, RXCtrls, FthBtns, ActnList, RdxFrame, RdxFrameEmpresas;

type
  TfrElegirEmpresa = class(TRdxFrameEmpresas)
    DBCtrlGrid1: TDBCtrlGrid;
    DBText1: TDBText;
    DBText2: TDBText;
    dsEmpresas: TDataSource;
    pnlBarraSuperior: TRdxGradientePanel;
    imgFondo: TImage;
    brDoble: TRdxBarraInferior;
    bSeleccionar: TRdxBoton;
    bCancelar: TRdxBoton;
    Shape1: TShape;
    Image6: TImage;
    Image1: TImage;
    Label1: TLabel;
    Label2: TLabel;
    bAnadirEmpresa: TRdxBoton;
    FourthStandardButton1: TFourthStandardButton;
    FourthStandardButton2: TFourthStandardButton;
    Acciones: TActionList;
    actAnadir: TAction;
    actModificar: TAction;
    actEliminar: TAction;
    actConsultar: TAction;
    actCancelar: TAction;
    actAbrir: TAction;
    actCerrar: TAction;
    DBImage1: TDBImage;
    procedure actAbrirExecute(Sender: TObject);
    procedure actModificarExecute(Sender: TObject);
    procedure actEliminarExecute(Sender: TObject);
    procedure actAnadirExecute(Sender: TObject);
    procedure RdxFrameEmpresasShow(Sender: TObject);
    procedure actModificarUpdate(Sender: TObject);
  private
    procedure BuscarEmpresa; override;
    procedure FreeContenido; override;
  public
    constructor Create (AOwner : TComponent); override;
    destructor Destroy; override;
  published
    property TablaEmpresas;
    property Entidad;
  end;

var
  frElegirEmpresa: TfrElegirEmpresa;

implementation

{$R *.DFM}

uses
  RdxEmpresaActiva, RdxGestorContadores, Configuracion, BaseDatos, //Tipos,
  TablaEmpresas, Empresa, Variants, Entidades, Mensajes;

{ TfElegirEmpresa }

procedure TfrElegirEmpresa.BuscarEmpresa;
begin
  with TablaEmpresas do
  begin
    DisableControls;
    Close;
    Open;
    EnableControls;
    if EmpresaActiva.Codigo <> -1 then
      Locate('CODIGO', EmpresaActiva.Codigo, [])
    else
      Locate('CODIGO', CodigoEmpresa, []);
  end;
end;

constructor TfrElegirEmpresa.Create(AOwner: TComponent);
begin
  inherited;
  Entidad := entEmpresas;
  ConfigurarVentanaPrincipal(Self);

  BaseDatos := dmBaseDatos.BD;
  Transaccion := dmBaseDatos.Transaccion;
  TablaEmpresas := TIBDataSet.Create(Self);
  dsEmpresas.DataSet := TablaEmpresas;

  with TablaEmpresas do
  begin
    DisableControls;
    Database := BaseDatos;
    Transaction := Transaccion;
    SelectSQL.Assign(dmTablaEmpresas.sqlGrid);
    Prepare;
    EnableControls;
  end;
end;

destructor TfrElegirEmpresa.Destroy;
begin
  TablaEmpresas.Close;
  TablaEmpresas.Unprepare;
  TablaEmpresas.Free;
  inherited;
end;

procedure TfrElegirEmpresa.FreeContenido;
begin
  if (ContenidoModal is TRdxFrameEmpresas) then
    CodigoEmpresa := (ContenidoModal as TRdxFrameEmpresas).CodigoEmpresa;
  inherited FreeContenido;
end;

procedure TfrElegirEmpresa.actAbrirExecute(Sender: TObject);
begin
  EmpresaActiva.Codigo := TablaEmpresas.FieldByName('CODIGO').AsInteger;
  GestorContadores.CodigoEmpresa := TablaEmpresas.FieldByName('CODIGO').AsInteger;
  CloseFrame;
end;

procedure TfrElegirEmpresa.actModificarExecute(Sender: TObject);
var
  ContenidoAux : TRdxFrameEmpresas;
begin
  EntidadModal := entEmpresas;
  ModoModal := Modificar;
  WidthModal := 497;
  HeightModal := 658;
  ContenidoAux := TfrEmpresa.Create(Self);
  ContenidoAux.CodigoEmpresa := TablaEmpresas.FieldByName('CODIGO').AsVariant;
  ContenidoModal := ContenidoAux;
end;

procedure TfrElegirEmpresa.actEliminarExecute(Sender: TObject);
var
  ContenidoAux : TRdxFrameEmpresas;
begin
  EntidadModal := entEmpresas;
  ModoModal := Eliminar;
  WidthModal := 497;
  HeightModal := 640;
  ContenidoAux := TfrEmpresa.Create(Self);
  ContenidoAux.CodigoEmpresa := TablaEmpresas.FieldByName('CODIGO').AsVariant;
  ContenidoModal := ContenidoAux;
end;

procedure TfrElegirEmpresa.actAnadirExecute(Sender: TObject);
begin
  EntidadModal := entEmpresas;
  ModoModal := Anadir;
  WidthModal := 550;
  HeightModal := 640;
  ContenidoModal := TfrEmpresa.Create(Self);
end;

procedure TfrElegirEmpresa.RdxFrameEmpresasShow(Sender: TObject);
begin
  if EmpresaActiva.Codigo <> -1 then
    BuscarEmpresa;
  if TablaEmpresas.IsEmpty then
    VerMensaje('No hay ninguna empresa dada de alta. Pulse en el botón ''Añadir una empresa nueva'' para dar de alta una.');
end;

procedure TfrElegirEmpresa.actModificarUpdate(Sender: TObject);
begin
  (Sender as TAction).Enabled := not TablaEmpresas.IsEmpty;
  DBCtrlGrid1.Enabled := (Sender as TAction).Enabled;
end;

end.
