{
===============================================================================
  Copyright (©) 2003. 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: 14-06-2003
  Versión actual: 1.0.0
  Fecha versión actual: 14-06-2003
===============================================================================
  Modificaciones:

    Fecha         Comentarios
    ---------------------------------------------------------------------------
===============================================================================
}

unit ImprimirPresupuestosCliente;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  RDXFRAME, StdCtrls, RdxComboBox, RdxBotones, RdxCampos,
  ExtCtrls, RdxBarras, RdxTitulos, Configuracion, InformePresupuestoCliente,
  Grids, DBGrids, RdxPaneles, RdxRadioButton, VistaPreviaPresupuestos, AdvPanel,
  cxDBEdit, cxControls, cxContainer, cxEdit, cxTextEdit, cxMaskEdit,
  cxButtonEdit, cxDropDownEdit, cxCalendar;

type
  TfrImprimirPresupuestosCliente = class(TRdxFrame)
    pnlTitulo: TRdxPanelTituloOperacion;
    pnlVistaPrevia: TPanel;
    pnlCuerpo: TPanel;
    pnlProveedor: TAdvPanel;
    eCodigo: TLabel;
    eCodigoCliente: TLabel;
    eNombre: TLabel;
    eFecha: TLabel;
    eNIFCIF: TLabel;
    CodCliente: TcxTextEdit;
    NIFCIF: TcxTextEdit;
    Nombre: TcxTextEdit;
    Codigo: TcxButtonEdit;
    FechaPresupuesto: TcxDateEdit;
    Label1: TLabel;
    Documento: TcxTextEdit;
    procedure bCancelarClick(Sender: TObject);
    procedure CodFacturaButtonClick(Sender: TObject);
    procedure bImprimirClick(Sender: TObject);
    procedure CodigoPropertiesButtonClick(Sender: TObject;
      AButtonIndex: Integer);
  private
    FCodigoPresupuesto : Variant;
    FInformePresupuesto : TdmInformePresupuestoCliente;
    FVistaPrevia : TfrVistaPreviaPresupuestos;
    procedure SetCodigoPresupuesto (Value : Variant);
    procedure DarDatosPresupuesto;
  protected
    procedure FreeContenido; override;
    function CloseFrame : Boolean; override;
  public
    constructor Create(AOwner : TComponent); override;
    destructor Destroy; override;
  published
    property CodigoPresupuesto : Variant read FCodigoPresupuesto write SetCodigoPresupuesto;
  end;

var
  frImprimirPresupuestosCliente: TfrImprimirPresupuestosCliente;

implementation

{$R *.DFM}

uses
  Variants, RdxFramePresupuestos, Entidades, PresupuestosClientes,
  Clientes, TablaPresupuestos, Mensajes, StrFunc, InformeBase,
  BaseDatos, TablaDocumentos;

constructor TfrImprimirPresupuestosCliente.Create(AOwner : TComponent);
begin
  inherited Create(AOwner);
  FCodigoPresupuesto := NULL;
  FVistaPrevia := TfrVistaPreviaPresupuestos.Create(Self);
  FVistaPrevia.Parent := pnlVistaPrevia;
  FInformePresupuesto := TdmInformePresupuestoCliente.Create(Self);
  FInformePresupuesto.VistaPrevia := FVistaPrevia;
  FInformePresupuesto.Preview := FVistaPrevia.Preview;
end;

procedure TfrImprimirPresupuestosCliente.bCancelarClick(Sender: TObject);
begin
  CloseFrame;
end;

procedure TfrImprimirPresupuestosCliente.FreeContenido;
begin
  if (ContenidoModal is TRdxFramePresupuestos) then
    CodigoPresupuesto := (ContenidoModal as TRdxFramePresupuestos).CodigoPresupuesto;
  inherited FreeContenido;
end;

procedure TfrImprimirPresupuestosCliente.CodFacturaButtonClick(Sender: TObject);
begin
  ContenidoModal := TfrPresupuestosClientes.Create(Self);
  CodigoPresupuesto := FCodigoPresupuesto;
end;

procedure TfrImprimirPresupuestosCliente.SetCodigoPresupuesto(Value: Variant);
begin
  if EsCadenaVacia(Value) then
    Exit;
  FCodigoPresupuesto := Value;
  DarDatosPresupuesto;
  FInformePresupuesto.CodigoPresupuesto := CodigoPresupuesto;
  FInformePresupuesto.Entidad := dmTablaDocumentos.DarEntidadDocumento(entPresupuestoCliente, Documento.Text);
  FInformePresupuesto.Previsualizar;
end;

destructor TfrImprimirPresupuestosCliente.Destroy;
begin
  FInformePresupuesto.VistaPrevia := Nil;
  FInformePresupuesto.Free;
  inherited;
end;

procedure TfrImprimirPresupuestosCliente.bImprimirClick(Sender: TObject);
begin
  FInformePresupuesto.Imprimir;
end;

procedure TfrImprimirPresupuestosCliente.DarDatosPresupuesto;
var
  DatosPresupuesto : TDatosPresupuesto;
begin
  DatosPresupuesto := TDatosPresupuesto.Create(FCodigoPresupuesto);
  try
    Codigo.Text := DatosPresupuesto.Codigo;
    FechaPresupuesto.Date := DatosPresupuesto.FechaPresupuesto;
    CodCliente.Text := DatosPresupuesto.CodigoCliente;
    NIFCIF.Text := DatosPresupuesto.NIFCIF;
    Nombre.Text := DatosPresupuesto.Nombre;
    Documento.Text := DatosPresupuesto.CodigoDocumento;
  finally
    DatosPresupuesto.Free;
  end;
end;

function TfrImprimirPresupuestosCliente.CloseFrame: Boolean;
begin
  FInformePresupuesto.Preview := NIL;
  (FVistaPrevia as TRdxFrame).CloseFrame;
  Result := inherited CloseFrame;
end;

procedure TfrImprimirPresupuestosCliente.CodigoPropertiesButtonClick(
  Sender: TObject; AButtonIndex: Integer);
begin
  ContenidoModal := TfrPresupuestosClientes.Create(Self);
end;

end.
