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