{
===============================================================================
  Copyright (©) 2001. Rodax Software.
===============================================================================
  Los contenidos de este fichero son propiedad de Rodax Software titular del
  copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado,
  en su totalidad o en parte, con el permiso escrito de Rodax Software, o de
  acuerdo con los términos y condiciones establecidas en el acuerdo/contrato
  bajo el que se suministra.
  -----------------------------------------------------------------------------
  Web:  www.rodax-software.com
===============================================================================
  Fecha primera versión: 01-10-2001
  Versión actual: 1.0.1
  Fecha versión actual: 30-10-2001
===============================================================================
  Modificaciones:

    Fecha         Comentarios
    ---------------------------------------------------------------------------
    30-10-2001    Se ha cambiado la etiqueta 'Estado de almacén' por 'Material
                  de almacén'.
    30-10-2001    Se ha cambiado la etiqueta 'Estado de almacén de obra' por
                  'Material de obra'.
    30-10-2001    Se ha cambiado la etiqueta 'Almacenes de obra' por 'Obras'.
===============================================================================
}

unit BarraObras;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  RDXFRAME, RdxBotones, ExtCtrls, RdxBarras, RdxPaneles, Tipos, pngimage,
  StdCtrls;

type
  TfrBarraObras = class(TRdxFrame)
    Panel2: TPanel;
    pnlBarraLateral: TPanel;
    imgFondo: TImage;
    bEstadoAlmacenObra: TRdxBotonLateral;
    bAlmacenObra: TRdxBotonLateral;
    bHistoricoObras: TRdxBotonLateral;
    bHistoricoMovimientos: TRdxBotonLateral;
    pnlTitulo: TPanel;
    eTitulo: TLabel;
    imgSombra: TImage;
    shSeparador: TShape;
    Panel1: TPanel;
    procedure bAlmacenObraClick(Sender: TObject);
    procedure bHistoricoObrasClick(Sender: TObject);
    procedure bEstadoAlmacenObraClick(Sender: TObject);
    procedure bHistoricoMovimientosClick(Sender: TObject);
    procedure bInstaladoresClick(Sender: TObject);
    procedure bAlbaranesInstaladorClick(Sender: TObject);
  protected
    FCodigoAlmacen : Variant;
    procedure FreeContenido; override;
  public
    constructor Create (AOwner: TComponent); override;
  end;

var
  frBarraObras: TfrBarraObras;

implementation
{$R *.DFM}
uses
  Almacenes, ArticulosAlmacen, MovimientoAlmacenes, HistoricoMovimientos,
  ArticulosObraHistorica, RdxFrameAlmacenes,
  RdxFrameArticulosAlmacen, RdxFrameHistoricoMovimientos,
  RdxFrameArticulosObraHistorica, Configuracion, AlbaranesInstaladores,
  Instaladores;


constructor TfrBarraObras.Create (AOwner: TComponent);
begin
  inherited Create(AOwner);
  FCodigoAlmacen := NULL;
  Entidad := entAlmacenObra;
  ConfigurarBarraLateral(Self, Self.Entidad);
  Contenido := TfrArticulosAlmacen.Create(Self);
  Contenido.Entidad := entArticulosAlmacenObra;
  Contenido.Visible := True;
end;

procedure TfrBarraObras.bAlmacenObraClick(Sender: TObject);
begin
  Contenido := TfrAlmacenes.Create(Self);
  {Preguntamos si el cambio de contenido se ha producido realmente, porque
   sino no ponemos nada al contenido porque realmente el contenido anterior
   no se ha liberado, bien porque al salir la pregunta de tratarcambios se
   ha contestado cancelar y por tanto continuar la operacion que se estubiese
   haciendo}
  if (Contenido is TRdxFrameAlmacenes) then
  begin
    Contenido.Entidad := entAlmacenObra;
    Contenido.Visible := True;
  end;
end;

procedure TfrBarraObras.bEstadoAlmacenObraClick(Sender: TObject);
var
  EntidadAnterior : TRdxEntidad;
begin
  EntidadAnterior := Contenido.Entidad;

  Contenido := TfrArticulosAlmacen.Create(Self);
  if (Contenido is TRdxFrameArticulosAlmacen) then
  begin
    Contenido.Entidad := entArticulosAlmacenObra;
    if EntidadAnterior = entAlmacenObra then
      (Contenido as TfrArticulosAlmacen).CodigoAlmacen := FCodigoAlmacen;
    Contenido.Visible := True;
  end;
end;

procedure TfrBarraObras.bHistoricoObrasClick(Sender: TObject);
begin
  Contenido := TfrArticulosObraHistorica.Create(Self);
  Contenido.Visible := True;
end;

procedure TfrBarraObras.FreeContenido;
begin
   if (Contenido is TRdxFrameAlmacenes) then
     FCodigoAlmacen := (Contenido as TRdxFrameAlmacenes).CodigoAlmacen;
   if (Contenido is TRdxFrameArticulosAlmacen) then
     FCodigoAlmacen := (Contenido as TRdxFrameArticulosAlmacen).CodigoAlmacen;
   inherited;
end;

procedure TfrBarraObras.bHistoricoMovimientosClick(Sender: TObject);
begin
  Contenido := TfrHistoricoMovimientos.Create(Self);
  Contenido.Entidad := entAlmacenObra;
  if (Contenido is TRdxFrameHistoricoMovimientos) then
    (Contenido as TfrHistoricoMovimientos).CodigoAlmacen := FCodigoAlmacen;
end;

procedure TfrBarraObras.bInstaladoresClick(Sender: TObject);
begin
  Contenido := TfrInstaladores.Create(Self);
end;

procedure TfrBarraObras.bAlbaranesInstaladorClick(Sender: TObject);
begin
  inherited;
  Contenido := TfrAlbaranesInstaladores.Create(Self);
end;

end.
