{
===============================================================================
  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: 08-11-2003
  Versión actual: 1.0.0
  Fecha versión actual: 08-11-2003
===============================================================================
  Modificaciones:

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

unit ImprimirContratosCliente;

interface

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

type
  TfrImprimirContratosCliente = 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;
    FechaContrato: TcxDateEdit;
    Label1: TLabel;
    Documento: TcxTextEdit;
    procedure bCancelarClick(Sender: TObject);
    procedure CodFacturaButtonClick(Sender: TObject);
    procedure bImprimirClick(Sender: TObject);
    procedure CodigoPropertiesButtonClick(Sender: TObject;
      AButtonIndex: Integer);
  private
    FCodigoContrato : Variant;
    FInformeContrato : TdmInformeContratoCliente;
    FVistaPrevia : TfrVistaPrevia;
    procedure SetCodigoContrato (Value : Variant);
    procedure DarDatosContrato;
  protected
    procedure FreeContenido; override;
    function CloseFrame : Boolean; override;
  public
    constructor Create(AOwner : TComponent); override;
    destructor Destroy; override;
  published
    property CodigoContrato : Variant read FCodigoContrato write SetCodigoContrato;
  end;

var
  frImprimirContratosCliente: TfrImprimirContratosCliente;

implementation

{$R *.DFM}

uses
  Variants, RdxFrameContratos, Entidades, ContratosClientes,
  Clientes, TablaContratos, Mensajes, StrFunc, InformeBase,
  BaseDatos, TablaDocumentos;

constructor TfrImprimirContratosCliente.Create(AOwner : TComponent);
begin
  inherited Create(AOwner);
  FCodigoContrato := NULL;
  FVistaPrevia := TfrVistaPrevia.Create(Self);
  FVistaPrevia.Parent := pnlVistaPrevia;
  FInformeContrato := TdmInformeContratoCliente.Create(Self);
  FInformeContrato.Preview := FVistaPrevia.Preview;
end;

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

procedure TfrImprimirContratosCliente.FreeContenido;
begin
  if (ContenidoModal is TRdxFrameContratos) then
    CodigoContrato := (ContenidoModal as TRdxFrameContratos).CodigoContrato;
  inherited FreeContenido;
end;

procedure TfrImprimirContratosCliente.CodFacturaButtonClick(Sender: TObject);
begin
  ContenidoModal := TfrContratosClientes.Create(Self);
  CodigoContrato := FCodigoContrato;
end;

procedure TfrImprimirContratosCliente.SetCodigoContrato(Value: Variant);
begin
  if EsCadenaVacia(Value) then
    Exit;
  FCodigoContrato := Value;
  DarDatosContrato;
  FInformeContrato.CodigoContrato := CodigoContrato;
  FInformeContrato.Entidad := dmTablaDocumentos.DarEntidadDocumento(entContratoCliente, Documento.Text);
  FInformeContrato.Previsualizar;
end;

destructor TfrImprimirContratosCliente.Destroy;
begin
  FInformeContrato.Free;
  inherited;
end;

procedure TfrImprimirContratosCliente.bImprimirClick(Sender: TObject);
begin
  FInformeContrato.Imprimir;
end;

procedure TfrImprimirContratosCliente.DarDatosContrato;
var
  DatosContrato : TDatosContrato;
begin
  DatosContrato := TDatosContrato.Create(FCodigoContrato);
  try
    Codigo.Text := DatosContrato.Codigo;
    FechaContrato.Date := DatosContrato.FechaContrato;
    CodCliente.Text := DatosContrato.CodigoCliente;
    NIFCIF.Text := DatosContrato.NIFCIF;
    Nombre.Text := DatosContrato.Nombre;
    Documento.Text := DatosContrato.CodigoDocumento;
  finally
    DatosContrato.Free;
  end;
end;

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

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

end.
