git-svn-id: https://192.168.0.254/svn/Proyectos.Miguelo_FactuGES/trunk@4 172823e9-465a-9d4b-80ba-0a9f016f4eb1
450 lines
14 KiB
ObjectPascal
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.
|