This repository has been archived on 2024-11-29. You can view files and clone it, but cannot push or open issues or pull requests.
Tecsitel_FactuGES/Frames/Contadores.pas
2007-06-21 15:47:20 +00:00

203 lines
8.4 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.1
Fecha versión actual: 28-09-2004
===============================================================================
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
===============================================================================
}
unit contadores;
interface
type
TContador = (contAlbaranesCliente,
contAlbaranesProveedor,
contAlbaranesInstalador,
contAlmacenes,
contArticulos,
contClientes,
contFacturasCliente,
contFacturasProveedor,
contInstaladores,
contFabricantes,
contMovimientos,
contPedidosProveedor,
contPresupuestosCliente,
contProveedores);
TRegistroContador = record
CodigoEmpresa : variant;
CodigoTabla : variant;
Tabla : Variant; // <-- Mejor 'Contador' o 'Entidad'
EsComun : Boolean;
Longitud : Variant;
Seriado : Variant;
Dia : Boolean;
Mes : Boolean;
Ano : Boolean;
ContDia : Variant;
ContMes : Variant;
ContAno : Variant;
Contador : Integer; // <-- Mejor 'Valor'
end;
const
//Nombre de las tablas con las que están relacionados los contadores
NombreTablasContadores : array [TContador] of String = (
('ALBARANESCLIENTE'), //contAlbaranesCliente
('ALBARANESPROVEEDOR'), //contAlbaranesProveedor
('ALBARANESINSTALADOR'), //contAlbaranesInstalador
('ALMACENES'), //contAlmacenes
('ARTICULOS'), //contArticulos
('CLIENTES'), //contClientes
('FACTURASCLIENTE'), //contFacturasCliente
('FACTURASPROVEEDOR'), //contFacturasProveedor
('INSTALADORES'), //contInstaladores
('FABRICANTES'), //contFabricantes
('MOVIMIENTOS'), //contMovimientos
('PEDIDOSPROVEEDOR'), //contPedidosProveedor
('PRESUPUESTOSCLIENTE'), //contPresupuestosCliente
('PROVEEDORES') //contProveedores
);
procedure InicializarContador (lContador : TContador; var RegistroContador : TRegistroContador);
implementation
uses
StrFunc;
const
// Seriados de los contadores
SeriadoContadores : array [TContador] of String = (
('ALB'), //contAlbaranesCliente
('ALP'), //contAlbaranesProveedor
('ALI'), //contAlbaranesInstalador
(''), //contAlmacenes
(''), //contArticulos
(''), //contClientes
('FAC'), //contFacturasCliente
('FAP'), //contFacturasProveedor
(''), //contInstaladores
(''), //contFabricantes
(''), //contMovimientos
('PED'), //contPedidosProveedor
('PRE'), //contPresupuestosCliente
('') //contProveedores
);
// Longitudes de los contadores
LongitudContadores : array [TContador] of Integer = (
(12), //contAlbaranesCliente
(12), //contAlbaranesProveedor
(12), //contAlbaranesInstalador
(-1), //contAlmacenes
(10), //contArticulos
(10), //contClientes
(12), //contFacturasCliente
(12), //contFacturasProveedor
(10), //contInstaladores
(10), //contFabricantes
(12), //contMovimientos
(12), //contPedidosProveedor
(12), //contPresupuestosCliente
(10) //contProveedores
);
DiaContadores : array [TContador] of Boolean = (
(False), //contAlbaranesCliente
(False), //contAlbaranesProveedor
(False), //contAlbaranesInstalador
(False), //contAlmacenes
(False), //contArticulos
(False), //contClientes
(False), //contFacturasCliente
(False), //contFacturasProveedor
(False), //contInstaladores
(False), //contFabricantes
(False), //contMovimientos
(False), //contPedidosProveedor
(False), //contPresupuestosCliente
(False) //contProveedores
);
MesContadores : array [TContador] of Boolean = (
(False), //contAlbaranesCliente
(False), //contAlbaranesProveedor
(False), //contAlbaranesInstalador
(False), //contAlmacenes
(False), //contArticulos
(False), //contClientes
(False), //contFacturasCliente
(False), //contFacturasProveedor
(False), //contInstaladores
(False), //contFabricantes
(False), //contMovimientos
(False), //contPedidosProveedor
(True), //contPresupuestosCliente
(False) //contProveedores
);
AnoContadores : array [TContador] of Boolean = (
(True), //contAlbaranesCliente
(True), //contAlbaranesProveedor
(TRue), //contAlbaranesInstalador
(False), //contAlmacenes
(False), //contArticulos
(False), //contClientes
(True), //contFacturasCliente
(True), //contFacturasProveedor
(False), //contInstaladores
(False), //contFabricantes
(False), //contMovimientos
(True), //contPedidosProveedor
(True), //contPresupuestosCliente
(False) //contProveedores
);
tcComunes = [contArticulos, contClientes, contInstaladores, contFabricantes, contMovimientos,
contProveedores];
procedure InicializarContador (lContador : TContador; var RegistroContador : TRegistroContador);
begin
with RegistroContador do
begin
Tabla := NombreTablasContadores[lContador];
EsComun := (lContador in tcComunes);
if (LongitudContadores[lContador] = -1) then
Longitud := NULL
else
Longitud := LongitudContadores[lContador];
if EsCadenaVacia(Seriado) then
Seriado := SeriadoContadores[lContador];
Dia := DiaContadores[lContador];
Mes := MesContadores[lContador];
Ano := AnoContadores[lContador];
ContDia := NULL;
ContMes := NULL;
ContAno := NULL;
Contador := 0;
end;
end;
end.