{
===============================================================================
  Copyright (©) 2001. 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: 09-09-2002
  Versión actual: 1.0.0
  Fecha versión actual: 21-06-2004
===============================================================================
  Modificaciones:

    Fecha         Comentarios
    ---------------------------------------------------------------------------
    21-06-2004    p272. Adaptación a multiempresa.
===============================================================================
}

unit InformeListadoContabilidad;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  InformeBase, IBDatabase, Db, FR_DSet, FR_DBSet, IBCustomDataSet, IBQuery,
  FR_IBXDB, FR_Shape, FR_Class, StrFunc, frOLEExl, frXMLExl, frRtfExp,
  frTXTExp;

type
  TdmInformeListadoContabilidad = class(TdmInformeBase)
    TablaFacturasProv: TIBQuery;
    frdsTablaFacturasProv: TfrDBDataSet;
    TablaFacturasCli: TIBQuery;
    frdsTablaFacturasCli: TfrDBDataSet;
  private
    FFechaIni: Variant;
    FFechaFin: Variant;
    procedure InformeGetParametersText(Memo : TStringList);
  protected
    procedure PrepararConsultas; override;
  public
    constructor Create(AOwner: TComponent); override;
  published
    property FechaIni : Variant read FFechaIni write FFechaIni;
    property FechaFin : Variant read FFechaFin write FFechaFin;
  end;

var
  dmInformeListadoContabilidad: TdmInformeListadoContabilidad;

implementation

{$R *.DFM}

uses
  RdxEmpresaActiva, Literales;

{ TdmInformeListadoContabilidad }

constructor TdmInformeListadoContabilidad.Create(AOwner: TComponent);
begin
  inherited;
  FFechaIni := NULL;
  FFechaFin := NULL;
  FNombreInforme := 'ListadoContabilidad.frf';
  OnGetParametersText := InformeGetParametersText;
end;

procedure TdmInformeListadoContabilidad.InformeGetParametersText(
  Memo: TStringList);
begin
  with Memo do
    Add(SysUtils.Format(msgInfIntervaloFec, [FFechaIni, FFechaFin]))
end;

procedure TdmInformeListadoContabilidad.PrepararConsultas;
begin
  with TablaFacturasProv do
  begin
    Database := FBaseDatos;
    Transaction := FTransaccion;
    SQL.Clear;
    SQL.Add('select CODIGOPROVEEDOR, NIFCIF, NOMBRE, ');
    SQL.Add('BASEIMPONIBLE, IMPORTEIVA, IMPORTETOTAL, ');
    SQL.Add('cast(''01.''||EXTRACT (MONTH FROM FECHAALTA)||''.''||EXTRACT (YEAR FROM FECHAALTA) as DATE) as MES ');
    SQL.Add('from FACTURASPROVEEDOR ');
    SQL.Add('where FECHAALTA between :FECHAINI and :FECHAFIN ');
    SQL.Add('and CODIGOEMPRESA = :CODIGOEMPRESA ');
    SQL.Add('order by 7, NOMBRE ');
    ParamByName('FECHAINI').AsDate := FFechaIni;
    ParamByName('FECHAFIN').AsDate := FFechaFin;
    ParambyName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
    Prepare;
  end;

  with TablaFacturasCli do
  begin
    Database := FBaseDatos;
    Transaction := FTransaccion;
    SQL.Clear;
    SQL.Add('select CODIGOCLIENTE, NIFCIF, NOMBRE, ');
    SQL.Add('BASEIMPONIBLE, IMPORTEIVA, IMPORTETOTAL, ');
    SQL.Add('cast(''01.''||EXTRACT (MONTH FROM FECHAALTA)||''.''||EXTRACT (YEAR FROM FECHAALTA) as DATE) as MES ');
    SQL.Add('from FACTURASCLIENTE ');
    SQL.Add('where FECHAALTA between :FECHAINI and :FECHAFIN ');
    SQL.Add('and CODIGOEMPRESA = :CODIGOEMPRESA ');
    SQL.Add('order by 7, NOMBRE ');
    ParamByName('FECHAINI').AsDate := FFechaIni;
    ParamByName('FECHAFIN').AsDate := FFechaFin;
    ParambyName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
    Prepare;
  end;
end;

end.
