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

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

unit ImprimirPedidosProveedor;

interface

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

type
  TfrImprimirPedidosProveedor = class(TRdxFrame)
    pnlTitulo: TRdxPanelTituloOperacion;
    pnlVistaPrevia: TPanel;
    pnlCuerpo: TPanel;
    pnlProveedor: TAdvPanel;
    eCodigo: TLabel;
    eCodigoCliente: TLabel;
    eNombre: TLabel;
    eFecha: TLabel;
    eNIFCIF: TLabel;
    CodProveedor: TcxTextEdit;
    NIFCIF: TcxTextEdit;
    FechaPedido: TcxTextEdit;
    Nombre: TcxTextEdit;
    Codigo: TcxButtonEdit;
    procedure bCancelarClick(Sender: TObject);
    procedure CodFacturaButtonClick(Sender: TObject);
    procedure bImprimirClick(Sender: TObject);
    procedure CodigoPropertiesButtonClick(Sender: TObject;
      AButtonIndex: Integer);
  private
    FCodigoPedido : Variant;
    FInformePedido : TdmInformePedidoProveedor;
    FVistaPrevia : TfrVistaPrevia;
    procedure SetCodigoPedido (Value : Variant);
    procedure DarDatosPedido;
  protected
    procedure FreeContenido; override;
    function CloseFrame : Boolean; override;
  public
    constructor Create(AOwner : TComponent); override;
    destructor Destroy; override;
  published
    property CodigoPedido : Variant read FCodigoPedido write SetCodigoPedido;
  end;

var
  frImprimirPedidosProveedor: TfrImprimirPedidosProveedor;

implementation

{$R *.DFM}

uses
  Variants, Entidades,
  Clientes, TablaPedidosProveedor,Mensajes, StrFunc, InformeBase, BaseDatos,
  RdxFramePedidosProveedor, PedidosProveedores, RdxEmpresaActiva;

constructor TfrImprimirPedidosProveedor.Create(AOwner : TComponent);
begin
  inherited Create(AOwner);
  FCodigoPedido := NULL;
  FVistaPrevia := TfrVistaPrevia.Create(Self);
  FVistaPrevia.Parent := pnlVistaPrevia;
  FInformePedido := TdmInformePedidoProveedor.Create(Self);
  FInformePedido.Preview := FVistaPrevia.Preview;
end;

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

procedure TfrImprimirPedidosProveedor.FreeContenido;
begin
  if (ContenidoModal is TRdxFramePedidosProveedor) then
    CodigoPedido := (ContenidoModal as TRdxFramePedidosProveedor).CodigoPedido;
  inherited FreeContenido;
end;

procedure TfrImprimirPedidosProveedor.CodFacturaButtonClick(Sender: TObject);
begin
  ContenidoModal := TfrPedidosProveedores.Create(Self);
  CodigoPedido := FCodigoPedido;
end;

procedure TfrImprimirPedidosProveedor.SetCodigoPedido(Value: Variant);
begin
  if EsCadenaVacia(Value) then
    Exit;
  if FCodigoPedido <> Value then
  begin
    FCodigoPedido := Value;
    DarDatosPedido;
    FInformePedido.CodigoPedido := CodigoPedido;
    FInformePedido.Previsualizar;
  end;
end;

destructor TfrImprimirPedidosProveedor.Destroy;
begin
  FInformePedido.Free;
  inherited;
end;

procedure TfrImprimirPedidosProveedor.bImprimirClick(Sender: TObject);
begin
  FInformePedido.Imprimir;
end;

procedure TfrImprimirPedidosProveedor.DarDatosPedido;
var
  DatosPedido : TDatosPedidoProveedor;
begin
  DatosPedido := TDatosPedidoProveedor.Create;
  try
    DatosPedido.Codigo := FCodigoPedido;
    DatosPedido.CodigoEmpresa := EmpresaActiva.Codigo;
    if dmTablaPedidosProveedor.DarDatosPedido(DatosPedido) then
    begin
      Codigo.Text := DatosPedido.Codigo;
      FechaPedido.Text := DatosPedido.FechaEmision;
      CodProveedor.Text := DatosPedido.CodigoProveedor;
      NIFCIF.Text := DatosPedido.NIFCIF;
      Nombre.Text := DatosPedido.Nombre;
    end
  finally
    DatosPedido.Free;
  end;
end;

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

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

end.
