This repository has been archived on 2024-11-28. You can view files and clone it, but cannot push or open issues or pull requests.
Miguelo_FactuGES/Proveedores/HistorialFacturacionProveedores.pas
2007-06-25 15:19:31 +00:00

450 lines
14 KiB
ObjectPascal

{
===============================================================================
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.