{
===============================================================================
  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 InformeDetalleBeneficiosContrato;

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;

type
  TdmInformeDetalleBeneficiosContrato = class(TdmInformeBase)
    dsTablaFacturasProveedor: TfrDBDataSet;
    TablaFacturasProveedor: TIBQuery;
    dsTablaFacturasCliente: TfrDBDataSet;
    TablaFacturasCliente: TIBQuery;
    TablaObrasGastos: TIBQuery;
    dsTablaObrasGastos: TfrDBDataSet;
  private
    FCodigoContrato : Variant;
    FNIFCIF : Variant;
    FNombre : Variant;
    FImporteTotal : Variant;    
  protected
    procedure RellenarCabecera(Band: TfrBand); override;
    procedure PrepararConsultas; override;
  public
    constructor Create(AOwner: TComponent); override;
  published
    property CodigoContrato : variant read FCodigoContrato write FCodigoContrato;
    property NIFCIF : variant read FNIFCIF write FNIFCIF;
    property Nombre : variant read FNombre write FNombre;
    property ImporteTotal : variant read FImporteTotal write FImporteTotal;
  end;

var
  dmInformeDetalleBeneficiosContrato: TdmInformeDetalleBeneficiosContrato;

implementation

{$R *.dfm}

uses
  Types, StrFunc, BaseDatos, Constantes, mensajes, RdxEmpresaActiva;

{ TdmInformeListadoBeneficiosClientes }

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

procedure TdmInformeDetalleBeneficiosContrato.PrepararConsultas;
begin
  inherited;

  with TablaFacturasProveedor do
  begin
    Database := FBaseDatos;
    Transaction := FTransaccion;
    with SQL do
    begin
      Clear;
      Add('select det.codigofactura, fac.fechafactura, fac.nifcif, fac.nombre,');
      Add('fac.importetotal, det.importe, det.codigocontrato');
      Add('from detallesfacturasprovcontratos det, facturasproveedor fac');
      Add('where fac.codigoempresa = det.codigoempresa');
      Add(' and fac.codigo = det.codigofactura');
      Add(' and det.codigocontrato = :CODIGOCONTRATO');
//      Add(' and fac.codigoempresa = :CODIGOEMPRESA');
    end;
    ParamByName('CODIGOCONTRATO').AsString := FCodigoContrato;
//    ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
    Prepare;
  end;

  with TablaObrasGastos do
  begin
    Database := FBaseDatos;
    Transaction := FTransaccion;
    with SQL do
    begin
      Clear;
      Add('select CODIGOCONTRATO, CODIGO, FECHAALTA, USUARIO,');
      Add('FECHA, DESCRIPCION, IMPORTE ');
      Add('from OBRASGASTOS ');
      Add('WHERE CODIGOCONTRATO = :CODIGOCONTRATO');
      Add('order by FECHA, CODIGO');
    end;
    ParamByName('CODIGOCONTRATO').AsString := FCodigoContrato;
    Prepare;
  end;

  with TablaFacturasCliente do
  begin
    Database := FBaseDatos;
    Transaction := FTransaccion;
    with SQL do
    begin
      Clear;
      Add('select codigo, fechafactura, nifcif, nombre, importetotal, codigocontrato ');
      Add('from facturascliente ');
//      Add('WHERE (CODIGOEMPRESA = :CODIGOEMPRESA) AND ');
      Add('WHERE (codigocontrato = :CODIGOCONTRATO)');
      Add('order by CODIGO');
    end;
    ParamByName('CODIGOCONTRATO').AsString := FCodigoContrato;
//    ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
    Prepare;
  end;
end;

procedure TdmInformeDetalleBeneficiosContrato.RellenarCabecera(Band: TfrBand);
var
  iCont : Integer;
  Objeto : TfrView;
begin
  inherited;
  with Band do
  begin
     for iCont := 0 to Objects.Count - 1 do
      begin
        Objeto := Objects[iCont];
        if (Objeto is TfrMemoView) then
        begin
          if (Objeto.Name = 'Empresa') then
          begin
            with (Objeto as TfrMemoView) do
            begin
              Memo.Clear;
              Memo.Add('Empresa: ' + EmpresaActiva.NombreComercial);
              Memo.Add('');
              Memo.Add('Código contrato: ' + CodigoContrato + '           Importe contrato: ' + ImporteTotal);
              Memo.Add('NIF/CIF: ' + NIFCIF);
              Memo.Add('Nombre: ' + Nombre);
            end;
          end;
        end;
      end;
  end;
end;

end.
