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

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

unit InformePagoCliente;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, InformeBase, FR_IBXDB, FR_Shape, FR_DSet, FR_DBSet, FR_Class,
  DB, IBCustomDataSet, IBQuery, RdxEmpresaActiva;

type
  TdmInformePagoCliente = class(TdmInformeBase)
    TablaCab: TfrDBDataSet;
    TablaPagosCliente: TIBQuery;
  private
    FCodigoPago : Variant;
    function DarTextoDireccion(Index : Integer) : String;
    function DarTextoTelefonos(Index : Integer) : String;
  protected
    procedure RellenarBanda(Band: TfrBand); override;
    procedure PrepararConsultas; override;
  public
    constructor Create(AOwner: TComponent); override;
  published
    property CodigoPago : variant read FCodigoPago write FCodigoPago;
  end;

var
  dmInformePagoCliente: TdmInformePagoCliente;

implementation

{$R *.dfm}

uses
  Types, StrFunc, BaseDatos, TablaEmpresas;

{ TdmInformePagoCliente }

constructor TdmInformePagoCliente.Create(AOwner: TComponent);
begin
  inherited;
  FNombreInforme := 'InformePagoCliente.frf';
end;

function TdmInformePagoCliente.DarTextoDireccion(Index: Integer): String;
var
  CadenaAux : String;
begin
  with TListaDireccionesEmpresa(EmpresaActiva.Direcciones).Items[Index] do
  begin
    CadenaAux := Calle;

    if (not EsCadenaVacia(Numero)) then
      CadenaAux := CadenaAux + ', ' + Numero;
    if (not EsCadenaVacia(CodigoPostal)) then
      CadenaAux := CadenaAux + ' · ' + CodigoPostal;
    if (not EsCadenaVacia(Provincia)) then
      CadenaAux := CadenaAux + ' ' + Provincia;
    Result := CadenaAux;
  end;
end;

function TdmInformePagoCliente.DarTextoTelefonos(Index: Integer): String;
var
  CadenaAux : String;
begin
  with TListaDireccionesEmpresa(EmpresaActiva.Direcciones).Items[Index] do
  begin
    CadenaAux := '';
    if (not EsCadenaVacia(Telefono)) then
      CadenaAux := 'Telf. ' + Telefono;
    if (not EsCadenaVacia(Fax)) then
      CadenaAux := CadenaAux + ' Fax ' + Fax;
    Result := CadenaAux;
  end;
end;

procedure TdmInformePagoCliente.PrepararConsultas;
begin
  inherited;

  with TablaPagosCliente do
  begin
    Database := FBaseDatos;
    Transaction := FTransaccion;
    SQL.Clear;
    SQL.Add('select * from PAGOSCLIENTE ');
    SQL.Add('where CODIGO = :CODIGO');
    ParamByName('CODIGO').AsString := FCodigoPago;
    Prepare;
  end;
end;

procedure TdmInformePagoCliente.RellenarBanda(Band: TfrBand);
var
  iCont : Integer;
  iDir : Integer;  
  Objeto : TfrView;
  CadenaAux : String;
begin
  with Band do
  begin
     for iCont := 0 to Objects.Count - 1 do
      begin
        Objeto := Objects[iCont];

        if ((Objeto is TfrMemoView) and
            ((Objeto.Name = 'DatosEmpresa1') or (Objeto.Name = 'DatosEmpresa2'))) then
        begin
          with (Objeto as TfrMemoView) do
          begin
            Font.Name := 'Arial';
            Prop['LINESPACING'] := 1;
            Prop['GAPX'] := 0;
            Prop['GAPY'] := 0;
            Memo.Clear;
            for iDir := 0 to (EmpresaActiva.Direcciones.Count - 1) do
            begin
              Memo.Add(DarTextoDireccion(iDir));
              Memo.Add(DarTextoTelefonos(iDir));
              Memo.Add(#151 + #151);
            end;
            CadenaAux := '';
            if not EsCadenaVacia(EmpresaActiva.Web) then
              CadenaAux := EmpresaActiva.Web;
            if not EsCadenaVacia(EmpresaActiva.Correo) then
            begin
              if not EsCadenaVacia(CadenaAux) then
                CadenaAux := CadenaAux + ' · ';
              CadenaAux := CadenaAux + EmpresaActiva.Correo;
            end;
            CadenaAux := '';
            if (not EsCadenaVacia(EmpresaActiva.NifCif)) then
              CadenaAux := '   NIF: ' + EmpresaActiva.NifCif;
            Memo.Add(EmpresaActiva.Nombre + CadenaAux);
          end;
        end;

        if ((Objeto is TfrPictureView) and (Pos('Logotipo', Objeto.Name) > 0)) then
        begin
          with (Objeto as TfrPictureView), EmpresaActiva do
            Picture.Assign(EmpresaActiva.Logotipo);
        end;
      end;
  end;
end;

end.
