This repository has been archived on 2024-12-02. You can view files and clone it, but cannot push or open issues or pull requests.
FactuGES/Frames/Contadores.pas
2007-06-26 08:08:27 +00:00

270 lines
12 KiB
ObjectPascal

{
===============================================================================
Copyright (©) 2002. 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: 16-02-2004
Versión actual: 1.0.3
Fecha versión actual: 30-09-2005
===============================================================================
Modificaciones:
Fecha Comentarios
---------------------------------------------------------------------------
28-09-2004 Se ha cambiado la una linea del procedimiento inicializar contador
con el fin de no machacar el campo serie si este ya viene relleno
12-06-2005 Se añade el contador de Tareas
30-09-2005 Se añade contador de albaranes de cliente
===============================================================================
}
unit Contadores;
{Clase que se encarga de toda la gestión de contadores de la aplicación, esta unidad
gunto la unidad RdxGestorContadores sustituirán a la antigua clase contador y sus hijas}
{
Para dar de alta un contador nuevo:
- Añadir contador al tipo enumerado TRdxContadores.
- Añadir el nombre de la tabla con la que se correspondera el contador a TablasContadores.
- Añadir longitud del contador a LongitudContadores.
- Añadir el tipo de contador que es en TipoContadores.
- Añadir en el create del contador las caracteristicas de cada uno.
- Seguir pasos de unidad RdxGestorContadores.
}
interface
uses Framework, RdxEmpresaActiva;
type
//Todos los contadores de la aplicación
TContador = (contProveedores,
contClientes,
contPresupuestosCliente,
contArticulos,
contFacturasProveedor,
contFacturasCliente,
contContratosCliente,
contPagosProveedor,
contPagosCliente,
contCaja,
contBanco,
contArticulosModelo,
contFacturasProforma,
contTareas,
contAlbaranesCliente
);
//Estructura que representa a un contador
TRegistroContador = record
CodigoEmpresa : Variant;
CodigoTabla : Variant;
Tabla : Variant;
EsComun : Boolean;
Longitud : Variant;
Seriado : Variant;
Dia : Boolean;
Mes : Boolean;
Ano : Boolean;
ContDia : Variant;
ContMes : Variant;
ContAno : Variant;
Contador : Integer;
end;
{ public
property CodigoTabla : Variant read FCodigoTabla write FCodigoTabla;
property Tabla : Variant read FTabla write FTabla;
property Comun : Integer read FComun write FComun;
property Longitud : Variant read FLongitud write FLongitud;
property Seriado : Variant read FSeriado write FSeriado;
property Dia : Boolean read FDia write FDia;
property Mes : Boolean read FMes write FMes;
property Ano : Boolean read FAno write FAno;
property ContDia : Variant read FContDia write FContDia;
property ContMes : Variant read FContMes write FContMes;
property ContAno : Variant read FContAno write FContAno;
property Contador : Integer read FContador write FContador;
property CodigoEmpresa : Variant read FCodigoEmpresa write FCodigoEmpresa;
constructor Create(Contador: TRdxContadores);
destructor Destroy; override;
end;
}
const
//Nombre de las tablas con las que están relacionados los contadores
NombreTablasContadores : array [TContador] of String = (
('PROVEEDORES'), //contProveedores
('CLIENTES'), //contClientes
('PRESUPUESTOSCLIENTE'), //contPresupuestosCliente
('ARTICULOS'), //contArticulos
('FACTURASPROVEEDOR'), //contFacturasProveedor
('FACTURASCLIENTE'), //contFacturasCliente
('CONTRATOSCLIENTE'), //contContratosCliente
('PAGOSPROVEEDORES'), //contPagosProveedor
('PAGOSCLIENTE'), //contPagosCliente
('CAJA'), //contCaja
('BANCO'), //contBanco
('ARTICULOSMODELO'), //contArticulosModelo
('FACTURASPROFORMA'), //contFacturasProforma
('TAREAS'), //contTareas
('ALBARANESCLIENTE') //contAlbaranesCliente
);
procedure InicializarContador (lContador : TContador; var RegistroContador : TRegistroContador);
implementation
uses
StrFunc, Variants, BaseDatos;
const
//Longitudes de los contadores
LongitudContadores : array [TContador] of Integer = (
(10), //contProveedores
(10), //contClientes
(12), //contPresupuestosCliente
(10), //contArticulos
(12), //contFacturasProveedor
(12), //contFacturasCliente
(12), //contContratosCliente
(12), //contPagosProveedor
(12), //contPagosCliente
(10), //contCaja
(10), //contBanco
(10), //contArticulosModelo
(12), //contFacturasProforma
(9), //contTareas
(12) //contAlbaranesCliente
);
//Tipo de los contadores
// 1: Comun (Se creara un solo detalle), 0: Multimepresa (Se crearán tantos detalles como empresas haya)
tcComunes = [contProveedores, contClientes, contPresupuestosCliente, contArticulos,
contContratosCliente, contArticulosModelo, contTareas];
// Seriados de los contadores
SeriadoContadores : array [TContador] of String = (
('SERIADO_PROVEEDOR'), //contProveedores
('SERIADO_CLIENTE'), //contClientes
('SERIADO_PRESUPUESTO'), //contPresupuestosCliente
('SERIADO_ARTICULO'), //contArticulos
('SERIADO_FACPROVEEDOR'), //contFacturasProveedor
('SERIADO_FACCLIENTE'), //contFacturasCliente
('SERIADO_CONTRATO'), //contContratosCliente
('SERIADO_PAGPROVEEDOR'), //contPagosProveedor
('SERIADO_PAGCLIENTE'), //contPagosCliente
(''), //contCaja
(''), //contBanco
('SERIADO_ARTMODELO'), //contArticulosModelo
('SERIADO_FACPROFORMA'), //contFacturasProforma
(''), //contTareas
('SERIADO_ALBARANESCLIENTE') //contAlbaranesCliente
);
DiaContadores : array [TContador] of Boolean = (
(False), //contProveedores
(False), //contClientes
(False), //contPresupuestosCliente
(False), //contArticulos
(False), //contFacturasProveedor
(False), //contFacturasCliente
(False), //contContratosCliente
(False), //contPagosProveedor
(False), //contPagosCliente
(False), //contCaja
(False), //contBanco
(False), //contArticulosModelo
(False), //contFacturasProforma
(False), //contTareas
(False) //contAlbaranesCliente
);
MesContadores : array [TContador] of Boolean = (
(False), //contProveedores
(False), //contClientes
(False), //contPresupuestosCliente
(False), //contArticulos
(False), //contFacturasProveedor
(False), //contFacturasCliente
(False), //contContratosCliente
(False), //contPagosProveedor
(False), //contPagosCliente
(False), //contCaja
(False), //contBanco
(False), //contArticulosModelo
(False), //contFacturasProforma
(False), //contTareas
(False) //contAlbaranesCliente
);
AnoContadores : array [TContador] of Boolean = (
(False), //contProveedores
(False), //contClientes
(True), //contPresupuestosCliente
(False), //contArticulos
(True), //contFacturasProveedor
(True), //contFacturasCliente
(True), //contContratosCliente
(False), //contPagosProveedor
(False), //contPagosCliente
(False), //contCaja
(False), //contBanco
(False), //contArticulosModelo
(True), //contFacturasProforma
(True), //contTareas
(True) //contAlbaranesCliente
);
procedure InicializarContador (lContador : TContador; var RegistroContador : TRegistroContador);
begin
with RegistroContador do
begin
Tabla := NombreTablasContadores[lContador];
EsComun := (lContador in tcComunes);
Longitud := LongitudContadores[lContador];
if EsCadenaVacia(Seriado) then
begin
// Seriado := SeriadoContadores[lContador];
case lContador of
contProveedores: Seriado := dmBaseDatos.DarSerieConfiguracion(SeriadoContadores[lContador]);
contClientes: Seriado := dmBaseDatos.DarSerieConfiguracion(SeriadoContadores[lContador]);
contPresupuestosCliente: Seriado := dmBaseDatos.DarSerieConfiguracion(SeriadoContadores[lContador]);
contArticulos: Seriado := dmBaseDatos.DarSerieConfiguracion(SeriadoContadores[lContador]);
contFacturasProveedor:Seriado := dmBaseDatos.DarSerieConfiguracion(SeriadoContadores[lContador]);
contFacturasCliente: Seriado := dmBaseDatos.DarSerieConfiguracion(SeriadoContadores[lContador]);
contContratosCliente: Seriado := dmBaseDatos.DarSerieConfiguracion(SeriadoContadores[lContador]);
contPagosProveedor: Seriado := dmBaseDatos.DarSerieConfiguracion(SeriadoContadores[lContador]);
contPagosCliente: Seriado := dmBaseDatos.DarSerieConfiguracion(SeriadoContadores[lContador]);
contArticulosModelo: Seriado := dmBaseDatos.DarSerieConfiguracion(SeriadoContadores[lContador]);
contFacturasProforma: Seriado := dmBaseDatos.DarSerieConfiguracion(SeriadoContadores[lContador]);
contAlbaranesCliente: Seriado := dmBaseDatos.DarSerieConfiguracion(SeriadoContadores[lContador]);
else Seriado := '';
end;
end;
Dia := DiaContadores[lContador];
Mes := MesContadores[lContador];
Ano := AnoContadores[lContador];
ContDia := NULL;
ContMes := NULL;
ContAno := NULL;
Contador := 0;
end;
end;
end.