{ =============================================================================== 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: 26-02-2003 Versión actual: 1.0.3 Fecha versión actual: 04-02-2005 =============================================================================== Modificaciones: Fecha Comentarios --------------------------------------------------------------------------- 30-01-2004 Se utiliza el trimestre por defecto. 30-03-2004 Se ha eliminado el atributo SERIE (P8 MULTIEMPRESA) 04-02-2005 Se elimnina la separación entre el informe resumen facturas e historial facturas quedando un único informe desde el que acceder a ambos. =============================================================================== } unit HistorialFacturacionProveedores; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, RdxFrame, RdxTitulos, cxDropDownEdit, cxCalendar, cxDBEdit, RdxBotones, RdxPaneles, RdxBarras, cxMaskEdit, cxButtonEdit, cxControls, cxContainer, cxEdit, cxTextEdit, StdCtrls, AdvPanel, ExtCtrls, Configuracion, cxCheckBox, cxSpinEdit, InformeHistorialFacturacionProveedores, VistaPrevia, TablaProveedores, TablaTrimestres, RdxRadioButton, RdxShape, Entidades, InformeResumenFacturacionProveedores; type TfrHistorialFacturacionProveedores = class(TRdxFrame) pnlTitulo: TRdxPanelTituloOperacion; pnlCuerpo: TPanel; pnlProveedor: TAdvPanel; e1: TLabel; pnlVistaPrevia: TPanel; Label2: TLabel; cbCantidadMin: TcxCheckBox; CantidadMinima: TcxSpinEdit; NombreProvIni: TcxButtonEdit; NombreProvFin: TcxButtonEdit; RdxShape1: TRdxShape; rbTrimestre: TRdxRadioButton; cbxTrimestres: TcxComboBox; rbFechas: TRdxRadioButton; FechaInicial: TcxDateEdit; eFechaFin: TLabel; FechaFinal: TcxDateEdit; cbAgrupar: TcxCheckBox; procedure cbCantidadMinClick(Sender: TObject); procedure cbCantidadMinPropertiesChange(Sender: TObject); procedure FechaIniPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); procedure FechaFinPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); procedure CantidadMinimaPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); procedure NombreProvIniPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); procedure NombreProvFinPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); procedure NombreProvIniPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure NombreProvFinPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure cbxTrimestresPropertiesEditValueChanged(Sender: TObject); procedure rbTrimestreClick(Sender: TObject); procedure rbFechasClick(Sender: TObject); procedure cbAgruparPropertiesChange(Sender: TObject); private FVistaPrevia : TfrVistaPrevia; FInforme : TdmInformeHistorialFacturacionProveedores; FInforme2 : TdmInformeResumenFacturacionProveedores; FProveedorIni : TDatosProveedor; FProveedorFin : TDatosProveedor; FCodigoProveedorAux : Variant; FListaTrimestres : TListaTrimestres; FAgrupado : Boolean; procedure SetAgrupado(const Value: Boolean); protected property Agrupado: Boolean read FAgrupado write SetAgrupado; procedure VerModal; override; procedure FreeContenido; override; function CloseFrame : Boolean; override; function CambiarEntidad(EntidadAnterior, Entidad : TRdxEntidad): Boolean; override; public constructor Create(AOwner : TComponent); override; destructor Destroy; override; end; var frHistorialFacturacionProveedores: TfrHistorialFacturacionProveedores; implementation {$R *.dfm} { TfrHistorialFacturacionProveedores } uses Literales, Mensajes, DateFunc, StrFunc, DateUtils, InformeBase, Proveedores, RdxFrameProveedores, cxDateUtils; constructor TfrHistorialFacturacionProveedores.Create(AOwner: TComponent); var NombreAux : String; begin inherited Create(AOwner); Entidad := entHistorialFacturacionProveedores; FAgrupado := True; FProveedorIni := TDatosProveedor.Create; FProveedorFin := TDatosProveedor.Create; FechaInicial.Date := DarDiaInicioMesDat; FechaFinal.Date := DarDiaFinalMesDat; NombreAux := dmTablaProveedores.DarNombreProvMin; FProveedorIni.Codigo := ''; FProveedorIni.Nombre := NombreAux; FProveedorIni.ObtenerDatos; NombreProvIni.EditingText := FProveedorIni.Nombre; NombreAux := dmTablaProveedores.DarNombreProvMax; FProveedorFin.Codigo := ''; FProveedorFin.Nombre := NombreAux; FProveedorFin.ObtenerDatos; NombreProvFin.EditingText := FProveedorFin.Nombre; FVistaPrevia := TfrVistaPrevia.Create(Self); FVistaPrevia.Parent := pnlVistaPrevia; FInforme := TdmInformeHistorialFacturacionProveedores.Create(Self); with FInforme do begin Preview := FVistaPrevia.Preview; NombreIni := FProveedorIni.Nombre; NombreFin := FProveedorFin.Nombre; //FechaFacIni := FechaIni.Date; //FechaFacFin := FechaFin.Date; if cbCantidadMin.Checked then ImporteMinimo := CantidadMinima.Value else ImporteMinimo := NULL; //Previsualizar; end; FInforme2 := TdmInformeResumenFacturacionProveedores.Create(Self); with FInforme2 do begin Preview := FVistaPrevia.Preview; NombreIni := FProveedorIni.Nombre; NombreFin := FProveedorFin.Nombre; //FechaFacIni := FechaIni.Date; //FechaFacFin := FechaFin.Date; if cbCantidadMin.Checked then ImporteMinimo := CantidadMinima.Value else ImporteMinimo := NULL; //Previsualizar; end; FListaTrimestres := TListaTrimestres.Create(tlcTriTodos); cbxTrimestres.ItemIndex := FListaTrimestres.cargarLista(cbxTrimestres.Properties.Items); end; destructor TfrHistorialFacturacionProveedores.Destroy; begin FInforme.Free; FInforme := Nil; FInforme2.Free; FInforme2 := Nil; FProveedorIni.Free; FProveedorIni := Nil; FProveedorFin.Free; FProveedorFin := Nil; FListaTrimestres.Free; FListaTrimestres := Nil; inherited; end; procedure TfrHistorialFacturacionProveedores.cbCantidadMinClick( Sender: TObject); begin CantidadMinima.Enabled := cbCantidadMin.Checked; end; procedure TfrHistorialFacturacionProveedores.cbCantidadMinPropertiesChange( Sender: TObject); begin if cbCantidadMin.Checked then begin FInforme.ImporteMinimo := CantidadMinima.Value; FInforme2.ImporteMinimo := CantidadMinima.Value; end else begin FInforme.ImporteMinimo := NULL; FInforme2.ImporteMinimo := NULL; end; if Agrupado then FInforme.Previsualizar else FInforme2.Previsualizar; end; procedure TfrHistorialFacturacionProveedores.VerModal; begin if (ContenidoModal is TRdxFrameProveedores) then (ContenidoModal as TRdxFrameProveedores).CodigoProveedor := FCodigoProveedorAux; inherited; end; procedure TfrHistorialFacturacionProveedores.FreeContenido; begin if (ContenidoModal is TRdxFrameProveedores) then FCodigoProveedorAux := (ContenidoModal as TRdxFrameProveedores).CodigoProveedor; inherited; end; procedure TfrHistorialFacturacionProveedores.FechaIniPropertiesValidate( Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); var ADate : TDateTime; begin try if DisplayValue > FechaFinal.Date then begin ErrorText := msgFechasMal; Error := True; Exit; end; TextToDateEx(DisplayValue, ADate); FInforme.FechaFacIni := ADate; FInforme2.FechaFacIni := ADate; if Agrupado then FInforme.Previsualizar else FInforme2.Previsualizar; except Error := True; ErrorText := msgFechaNoValida; end; end; procedure TfrHistorialFacturacionProveedores.FechaFinPropertiesValidate( Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); var ADate : TDateTime; begin try if DisplayValue < FechaInicial.Date then begin ErrorText := msgFechasMal; Error := True; Exit; end; TextToDateEx(DisplayValue, ADate); FInforme.FechaFacFin := ADate; FInforme2.FechaFacFin := ADate; if Agrupado then FInforme.Previsualizar else FInforme2.Previsualizar; except Error := True; ErrorText := msgFechaNoValida; end; end; procedure TfrHistorialFacturacionProveedores.CantidadMinimaPropertiesValidate( Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); begin if cbCantidadMin.Checked then begin FInforme.ImporteMinimo := DisplayValue; FInforme2.ImporteMinimo := DisplayValue; end else begin FInforme.ImporteMinimo := NULL; FInforme2.ImporteMinimo := NULL; end; if Agrupado then FInforme.Previsualizar else FInforme2.Previsualizar; end; procedure TfrHistorialFacturacionProveedores.NombreProvIniPropertiesValidate( Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); begin if AnsiCompareText(DisplayValue, NombreProvFin.Text) > 0 then begin ErrorText := msgProvIniMayor; Error := True; Exit; end; FProveedorIni.Nombre := DisplayValue; FProveedorIni.Codigo := ''; FInforme.NombreIni := FProveedorIni.Nombre; FInforme2.NombreIni := FProveedorIni.Nombre; if Agrupado then FInforme.Previsualizar else FInforme2.Previsualizar; end; procedure TfrHistorialFacturacionProveedores.NombreProvFinPropertiesValidate( Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); begin if AnsiCompareText(DisplayValue, NombreProvIni.Text) < 0 then begin ErrorText := msgProvIniMayor; Error := True; Exit; end; FProveedorFin.Nombre := DisplayValue; FProveedorFin.Codigo := ''; FInforme.NombreFin := FProveedorFin.Nombre; FInforme2.NombreFin := FProveedorFin.Nombre; if Agrupado then FInforme.Previsualizar else FInforme2.Previsualizar; end; procedure TfrHistorialFacturacionProveedores.NombreProvIniPropertiesButtonClick( Sender: TObject; AButtonIndex: Integer); begin ContenidoModal := TfrProveedores.Create(Self); if FCodigoProveedorAux <> Null then begin FProveedorIni.Codigo := FCodigoProveedorAux; FProveedorIni.ObtenerDatos; NombreProvIni.EditingText := FProveedorIni.Nombre; PostMessage(NombreProvIni.Handle,WM_KEYDOWN,VK_RETURN,0); end; end; procedure TfrHistorialFacturacionProveedores.NombreProvFinPropertiesButtonClick( Sender: TObject; AButtonIndex: Integer); begin ContenidoModal := TfrProveedores.Create(Self); if FCodigoProveedorAux <> Null then begin FProveedorFin.Codigo := FCodigoProveedorAux; FProveedorFin.ObtenerDatos; NombreProvFin.EditingText := FProveedorFin.Nombre; PostMessage(NombreProvFin.Handle,WM_KEYDOWN,VK_RETURN,0); end; end; procedure TfrHistorialFacturacionProveedores.cbxTrimestresPropertiesEditValueChanged( Sender: TObject); var FCodigoTrimestre : String; begin FCodigoTrimestre := FListaTrimestres.getCodItem(cbxTrimestres.ItemIndex); FechaInicial.Date := dmTablaTrimestres.darFechaIniTrimestre(FCodigoTrimestre); FechaFinal.Date := dmTablaTrimestres.darFechaFinTrimestre(FCodigoTrimestre); FInforme.FechaFacIni := FechaInicial.Date; FInforme.FechaFacFin := FechaFinal.Date; FInforme2.FechaFacIni := FechaInicial.Date; FInforme2.FechaFacFin := FechaFinal.Date; if Agrupado then FInforme.Previsualizar else FInforme2.Previsualizar; end; procedure TfrHistorialFacturacionProveedores.rbTrimestreClick( Sender: TObject); begin cbxTrimestres.Enabled := True; FechaInicial.Enabled := False; FechaFinal.Enabled := False; cbxTrimestresPropertiesEditValueChanged(Sender); end; procedure TfrHistorialFacturacionProveedores.rbFechasClick( Sender: TObject); begin cbxTrimestres.Enabled := False; FechaInicial.Enabled := True; FechaFinal.Enabled := True; end; function TfrHistorialFacturacionProveedores.CloseFrame: Boolean; begin FInforme.Preview := NIL; FInforme2.Preview := NIL; (FVistaPrevia as TRdxFrame).CloseFrame; Result := inherited CloseFrame; end; function TfrHistorialFacturacionProveedores.CambiarEntidad(EntidadAnterior, Entidad: TRdxEntidad): Boolean; begin inherited CambiarEntidad(EntidadAnterior, Entidad); ConfigurarFrame(Self, Self.Entidad); end; procedure TfrHistorialFacturacionProveedores.cbAgruparPropertiesChange( Sender: TObject); begin Agrupado := not Agrupado; end; procedure TfrHistorialFacturacionProveedores.SetAgrupado( const Value: Boolean); begin FAgrupado := Value; if Agrupado then FInforme.Previsualizar else FInforme2.Previsualizar; end; end.