git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES/trunk@4 b68bf8ae-e977-074f-a058-3cfd71dd8f45
437 lines
14 KiB
ObjectPascal
437 lines
14 KiB
ObjectPascal
{
|
|
===============================================================================
|
|
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: 01-10-2001
|
|
Versión actual: 1.0.7
|
|
Fecha versión actual: 07-01-2005
|
|
===============================================================================
|
|
Modificaciones:
|
|
|
|
Fecha Comentarios
|
|
---------------------------------------------------------------------------
|
|
09-10-2001 Al pulsar la tecla ESC se activa el botón 'Cancelar'. Sólo
|
|
pasa cuando este frame está en una ventana modal.
|
|
|
|
07-04-2002 Se ha adaptado para la transacción única.
|
|
|
|
06-05-2002 Adaptación al grid 'TdxDBGrid'.
|
|
|
|
15-05-2002 P224. Poder cambiar la situación a muchas facturas a la vez.
|
|
|
|
08-04-2003 P263. Agrupar por años las facturas.
|
|
|
|
07-03-2004 Al hacer doble click sobre el grid, se pasará a modificar el
|
|
registro o se seleccionará, dependiendo del modo en el que
|
|
se encuentre la pantalla.
|
|
|
|
07-03-2004 p272. Adaptación a multiempresa.
|
|
|
|
07-01-2005 Arreglo de informes de facturas pendientes y facturas de iva que
|
|
llaman al mismo frame y no cambiaba pero al cambiar entidad solo si funciona.
|
|
===============================================================================
|
|
}
|
|
|
|
unit FacturasProveedores;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
|
RdxFrameFacturasProveedor, RdxBotones, ExtCtrls, RdxPaneles, RdxBarras,
|
|
Grids, DBGrids, RXDBCtrl, Menus, am2000menuitem, RdxFrame, am2000utils,
|
|
am2000popupmenu, am2000, Db, StdCtrls, RdxComboBox, dxCntner, dxTL,
|
|
dxDBCtrl, dxDBGrid;
|
|
|
|
type
|
|
TfrFacturasProveedores = class(TRdxFrameFacturasProveedor)
|
|
BarraFacturas: TRdxBarraSuperior;
|
|
bAnadir: TRdxBotonSuperior;
|
|
bModificar: TRdxBotonSuperior;
|
|
bEliminar: TRdxBotonSuperior;
|
|
bConsultar: TRdxBotonSuperior;
|
|
bBuscar: TRdxBotonSuperior;
|
|
bListar: TRdxBotonMenu;
|
|
pnlCuerpo: TRdxPanel;
|
|
pnlGridFacturas: TPanel;
|
|
dsFacturas: TDataSource;
|
|
menuListar: TPopupMenu2000;
|
|
mnuListadoFacturasPendientes: TMenuItem2000;
|
|
N1: TMenuItem2000;
|
|
mnuListadoIVA: TMenuItem2000;
|
|
brSeleccion: TRdxBarraInferior;
|
|
bSeleccionar: TRdxBoton;
|
|
bCancelarGuardar: TRdxBoton;
|
|
brSimple: TRdxBarraInferior;
|
|
bSalir: TRdxBoton;
|
|
pnlExtra: TRdxBarraSuperior;
|
|
bCambiarSituacion: TRdxBoton;
|
|
gridFacturas: TdxDBGrid;
|
|
N2: TMenuItem2000;
|
|
Listadodefacturasdeproveedor1: TMenuItem2000;
|
|
imgSombra: TImage;
|
|
RdxPanel1: TRdxPanel;
|
|
Label1: TLabel;
|
|
cbxAno: TRdxComboBox;
|
|
procedure bAnadirClick(Sender: TObject);
|
|
procedure bModificarClick(Sender: TObject);
|
|
procedure bEliminarClick(Sender: TObject);
|
|
procedure bConsultarClick(Sender: TObject);
|
|
procedure bBuscarClick(Sender: TObject);
|
|
procedure mnuListadoFacturasPendientesClick(Sender: TObject);
|
|
procedure bSeleccionarClick(Sender: TObject);
|
|
procedure bSalirClick(Sender: TObject);
|
|
procedure bCancelarGuardarClick(Sender: TObject);
|
|
procedure mnuListadoIVAClick(Sender: TObject);
|
|
procedure bCambiarSituacionClick(Sender: TObject);
|
|
procedure gridFacturasRefreshButton(Sender: TObject);
|
|
procedure gridFacturasCustomDrawCell(Sender: TObject; ACanvas: TCanvas;
|
|
ARect: TRect; ANode: TdxTreeListNode; AColumn: TdxTreeListColumn;
|
|
ASelected, AFocused, ANewItemRow: Boolean; var AText: String;
|
|
var AColor: TColor; AFont: TFont; var AAlignment: TAlignment;
|
|
var ADone: Boolean);
|
|
procedure Listadodefacturasdeproveedor1Click(Sender: TObject);
|
|
procedure cbxAnoChange(Sender: TObject);
|
|
procedure gridFacturasDblClick(Sender: TObject);
|
|
private
|
|
FCodigoProveedor : string;
|
|
procedure SetCodigoProveedor(Value : String);
|
|
procedure ActualizarBotones;
|
|
protected
|
|
procedure BuscarFactura; override;
|
|
procedure FreeContenido; override;
|
|
procedure VerModal; override;
|
|
procedure SetContenido (NuevoFrame : TRdxFrame); override;
|
|
public
|
|
constructor Create (AOwner : TComponent); override;
|
|
destructor Destroy; override;
|
|
published
|
|
property CodigoProveedor : String read FCodigoProveedor write SetCodigoProveedor;
|
|
property TablaFacturasProveedor;
|
|
property Entidad;
|
|
end;
|
|
|
|
var
|
|
frFacturasProveedores: TfrFacturasProveedores;
|
|
|
|
implementation
|
|
{$R *.DFM}
|
|
|
|
{ TfrFacturasProveedores }
|
|
|
|
uses
|
|
Tipos, BaseDatos, TablaFacturasProveedor, IBDatabase, Configuracion,
|
|
IBCustomDataSet, Mensajes, FacturaProveedor, BuscarFacturaProveedor,
|
|
ListadoFacturasProvPenIVA, PagarFacturaProveedor, StrFunc, ListadoFacturasProv,
|
|
Constantes, Literales, RdxEmpresaActiva;
|
|
|
|
procedure TfrFacturasProveedores.BuscarFactura;
|
|
begin
|
|
with TablaFacturasProveedor do
|
|
begin
|
|
DisableControls;
|
|
Close;
|
|
ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
|
|
Prepare;
|
|
Open;
|
|
dmTablaFacturasProveedor.InicializarTablaFacturas(@TablaFacturasProveedor);
|
|
ActualizarBotones;
|
|
EnableControls;
|
|
Locate('CODIGO', CodigoFactura, []);
|
|
end;
|
|
end;
|
|
|
|
constructor TfrFacturasProveedores.Create(AOwner: TComponent);
|
|
begin
|
|
inherited Create(AOwner);
|
|
Entidad := entFacturaProveedor;
|
|
ConfigurarFrame(Self, Self.Entidad);
|
|
|
|
BaseDatos := dmBaseDatos.BD;
|
|
Transaccion := dmBaseDatos.Transaccion;
|
|
TablaFacturasProveedor := TIBDataSet.Create(Self);
|
|
dsFacturas.DataSet := TablaFacturasProveedor;
|
|
|
|
with TablaFacturasProveedor do
|
|
begin
|
|
Database := BaseDatos;
|
|
Transaction := Transaccion;
|
|
SelectSQL.Assign(dmTablaFacturasProveedor.sqlConsultarGridFacturas);
|
|
ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
|
|
Prepare;
|
|
Open;
|
|
ActualizarBotones;
|
|
end;
|
|
dmTablaFacturasProveedor.InicializarTablaFacturas(@TablaFacturasProveedor);
|
|
dmTablaFacturasProveedor.InicializarGridFacturas(gridFacturas);
|
|
gridFacturas.GotoFirst;
|
|
|
|
cbxAno.Items := dmTablaFacturasProveedor.DarListaAnos(EmpresaActiva.Codigo, True);
|
|
cbxAno.ItemIndex := 0;
|
|
end;
|
|
|
|
destructor TfrFacturasProveedores.Destroy;
|
|
begin
|
|
TablaFacturasProveedor.Close;
|
|
TablaFacturasProveedor.UnPrepare;
|
|
TablaFacturasProveedor.Free;
|
|
inherited;
|
|
end;
|
|
|
|
procedure TfrFacturasProveedores.FreeContenido;
|
|
begin
|
|
if (Contenido is TRdxFrameFacturasProveedor) then
|
|
CodigoFactura := (Contenido as TRdxFrameFacturasProveedor).CodigoFactura;
|
|
|
|
if (ContenidoModal is TfrPagarFacturaProveedor) then
|
|
CodigoFactura := (ContenidoModal as TfrPagarFacturaProveedor).ListaFacturas.Strings[0];
|
|
|
|
inherited FreeContenido;
|
|
end;
|
|
|
|
procedure TfrFacturasProveedores.SetCodigoProveedor(Value: String);
|
|
begin
|
|
if FCodigoProveedor = Value then
|
|
exit;
|
|
FCodigoProveedor := Value;
|
|
with TablaFacturasProveedor do
|
|
begin
|
|
DisableControls;
|
|
Close;
|
|
SelectSQL.Assign(dmTablaFacturasProveedor.sqlConsultarGridFacturasProv);
|
|
ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
|
|
ParamByName('CODIGOPROVEEDOR').AsString := FCodigoProveedor;
|
|
Prepare;
|
|
Open;
|
|
ActualizarBotones;
|
|
EnableControls;
|
|
dmTablaFacturasProveedor.InicializarTablaFacturas(@TablaFacturasProveedor);
|
|
Locate('CODIGO', CodigoFactura, []);
|
|
end;
|
|
end;
|
|
|
|
procedure TfrFacturasProveedores.bAnadirClick(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
Contenido := TfrFacturaProveedor.Create(Self);
|
|
Contenido.Modo := Anadir;
|
|
Contenido.Visible := True;
|
|
end;
|
|
|
|
procedure TfrFacturasProveedores.bModificarClick(Sender: TObject);
|
|
begin
|
|
CodigoFactura := TablaFacturasProveedor.FieldByName('CODIGO').AsString;
|
|
if UpperCase(TablaFacturasProveedor.FieldByName('SITUACION').AsString) <> 'NO PAGADA' then
|
|
begin
|
|
VerMensaje(mFacturaNoModificar);
|
|
Exit;
|
|
end;
|
|
|
|
Contenido := TfrFacturaProveedor.Create(Self);
|
|
Contenido.Modo := Modificar;
|
|
Contenido.Visible := True;
|
|
end;
|
|
|
|
procedure TfrFacturasProveedores.bEliminarClick(Sender: TObject);
|
|
begin
|
|
CodigoFactura := TablaFacturasProveedor.FieldByName('CODIGO').AsString;
|
|
if UpperCase(TablaFacturasProveedor.FieldByName('SITUACION').AsString) <> 'NO PAGADA' then
|
|
begin
|
|
VerMensaje(mFacturaNoEliminar);
|
|
Exit;
|
|
end;
|
|
|
|
Contenido := TfrFacturaProveedor.Create(Self);
|
|
Contenido.Modo := Eliminar;
|
|
Contenido.Visible := True;
|
|
end;
|
|
|
|
procedure TfrFacturasProveedores.bConsultarClick(Sender: TObject);
|
|
begin
|
|
CodigoFactura := TablaFacturasProveedor.FieldByName('CODIGO').AsString;
|
|
Contenido := TfrFacturaProveedor.Create(Self);
|
|
Contenido.Modo := Consultar;
|
|
Contenido.Visible := True;
|
|
end;
|
|
|
|
procedure TfrFacturasProveedores.bBuscarClick(Sender: TObject);
|
|
begin
|
|
CodigoFactura := TablaFacturasProveedor.FieldByName('CODIGO').AsString;
|
|
Contenido := TfrBuscarFacturaProveedor.Create(Self);
|
|
end;
|
|
|
|
procedure TfrFacturasProveedores.mnuListadoFacturasPendientesClick(Sender: TObject);
|
|
begin
|
|
Contenido := TfrListadoFacturasProvPenIVA.Create(Self);
|
|
Contenido.Entidad := entListadoFacturasProvPendientes;
|
|
end;
|
|
|
|
procedure TfrFacturasProveedores.bSeleccionarClick(Sender: TObject);
|
|
begin
|
|
CodigoFactura := TablaFacturasProveedor.FieldByName('CODIGO').AsString;
|
|
CloseFrame;
|
|
end;
|
|
|
|
procedure TfrFacturasProveedores.bSalirClick(Sender: TObject);
|
|
begin
|
|
CloseFrame;
|
|
end;
|
|
|
|
procedure TfrFacturasProveedores.bCancelarGuardarClick(Sender: TObject);
|
|
begin
|
|
FCodigoFactura := NULL;
|
|
CloseFrame;
|
|
end;
|
|
|
|
procedure TfrFacturasProveedores.mnuListadoIVAClick(Sender: TObject);
|
|
begin
|
|
Contenido := TfrListadoFacturasProvPenIVA.Create(Self);
|
|
Contenido.Entidad := entListadoFacturasProvIVA;
|
|
end;
|
|
|
|
procedure TfrFacturasProveedores.bCambiarSituacionClick(Sender: TObject);
|
|
var
|
|
Situacion : String;
|
|
iAux : Integer;
|
|
begin
|
|
ListaFacturas := dmTablaFacturasProveedor.DarListaFacturas(gridFacturas, @TablaFacturasProveedor);
|
|
if (ListaFacturas = NIL) or (ListaFacturas.Count = 0) then
|
|
exit;
|
|
|
|
// Comprobar que todas las facturas tienen la misma situación
|
|
for iAux := 0 to ListaFacturas.Count - 1 do
|
|
begin
|
|
if iAux = 0 then
|
|
Situacion := dmTablaFacturasProveedor.DarSituacionFactura(EmpresaActiva.Codigo,
|
|
ListaFacturas.Strings[iAux])
|
|
else begin
|
|
if Situacion <> dmTablaFacturasProveedor.DarSituacionFactura(EmpresaActiva.Codigo,
|
|
ListaFacturas.Strings[iAux]) then
|
|
begin
|
|
VerMensaje(msgFacSitDistinta);
|
|
Exit;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
CaptionModal := 'Cambiar situación de factura de proveedor';
|
|
WidthModal := 460;
|
|
HeightModal := 200;
|
|
ModoModal := Pagar;
|
|
EntidadModal := entProveedor;
|
|
ContenidoModal := TfrPagarFacturaProveedor.Create(Self);
|
|
end;
|
|
|
|
procedure TfrFacturasProveedores.VerModal;
|
|
begin
|
|
if (ContenidoModal is TfrPagarFacturaProveedor) then
|
|
(ContenidoModal as TfrPagarFacturaProveedor).ListaFacturas := ListaFacturas;
|
|
|
|
inherited;
|
|
end;
|
|
|
|
procedure TfrFacturasProveedores.ActualizarBotones;
|
|
begin
|
|
if BaseDatos.IsReadOnly then
|
|
begin
|
|
bAnadir.Enabled := False;
|
|
bModificar.Enabled := False;
|
|
bEliminar.Enabled := False;
|
|
bConsultar.Enabled := True;
|
|
bBuscar.Enabled := True;
|
|
bListar.Enabled := True;
|
|
bCambiarSituacion.Enabled := False;
|
|
Exit;
|
|
end;
|
|
|
|
if TablaFacturasProveedor.RecordCount = 0 then
|
|
begin
|
|
bAnadir.Enabled := True;
|
|
bModificar.Enabled := False;
|
|
bEliminar.Enabled := False;
|
|
bConsultar.Enabled := False;
|
|
bBuscar.Enabled := False;
|
|
bListar.Enabled := False;
|
|
bCambiarSituacion.Enabled := False;
|
|
end
|
|
else begin
|
|
bAnadir.Enabled := True;
|
|
bModificar.Enabled := True;
|
|
bEliminar.Enabled := True;
|
|
bConsultar.Enabled := True;
|
|
bBuscar.Enabled := True;
|
|
bListar.Enabled := True;
|
|
bCambiarSituacion.Enabled := True;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrFacturasProveedores.gridFacturasRefreshButton(Sender: TObject);
|
|
begin
|
|
BuscarFactura;
|
|
end;
|
|
|
|
procedure TfrFacturasProveedores.gridFacturasCustomDrawCell(
|
|
Sender: TObject; ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
|
|
AColumn: TdxTreeListColumn; ASelected, AFocused, ANewItemRow: Boolean;
|
|
var AText: String; var AColor: TColor; AFont: TFont;
|
|
var AAlignment: TAlignment; var ADone: Boolean);
|
|
var
|
|
IndiceCol : Integer;
|
|
begin
|
|
if not ASelected then
|
|
begin
|
|
IndiceCol := (Sender as TdxDBGrid).ColumnByFieldName('IMPORTETOTAL').Index;
|
|
if Copy(ANode.Strings[IndiceCol], 0, 1) = '-' then
|
|
AFont.Color := COLOR_ABONO;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrFacturasProveedores.Listadodefacturasdeproveedor1Click(Sender: TObject);
|
|
begin
|
|
Contenido := TfrListadoFacturasProv.Create(Self);
|
|
end;
|
|
|
|
procedure TfrFacturasProveedores.cbxAnoChange(Sender: TObject);
|
|
begin
|
|
if cbxAno.Text = CTE_TODOS then begin
|
|
gridFacturas.Filter.Remove(gridFacturas.FindColumnByFieldName(CTE_ANO));
|
|
gridFacturas.Filter.Clear;
|
|
end
|
|
else begin
|
|
gridFacturas.Filter.Clear;
|
|
gridFacturas.Filter.Add(gridFacturas.FindColumnByFieldName(CTE_ANO), cbxAno.Text, cbxAno.Text);
|
|
end;
|
|
|
|
gridFacturas.SetFocus;
|
|
gridFacturas.GotoFirst;
|
|
//Falta seleccionar tupla
|
|
end;
|
|
|
|
procedure TfrFacturasProveedores.gridFacturasDblClick(Sender: TObject);
|
|
begin
|
|
if Modo = Seleccionar then
|
|
bSeleccionar.Click
|
|
else
|
|
bModificar.Click;
|
|
end;
|
|
|
|
procedure TfrFacturasProveedores.SetContenido(NuevoFrame: TRdxFrame);
|
|
begin
|
|
inherited;
|
|
if (Contenido is TfrListadoFacturasProv) then
|
|
(Contenido as TfrListadoFacturasProv).CodigoProveedor := TablaFacturasProveedor.FieldByName('CODIGOPROVEEDOR').AsString;
|
|
|
|
if (Contenido is TfrListadoFacturasProvPenIVA) then
|
|
(Contenido as TfrListadoFacturasProvPenIVA).CodigoProveedor := TablaFacturasProveedor.FieldByName('CODIGOPROVEEDOR').AsString;
|
|
end;
|
|
|
|
end.
|