Sistema de Gestión de Negocios "Hexa"
Base de datos de conocimiento.
| Doc. Ref. 28243 Título: Ejemplo de creación automática de contadores para prefijos de documentos Autor: Hexa Última actualización: 15/03/2024#contador #prefijo #numero #factura #albaran #pedido #contrato #cliente #proveedor |
Ejemplo de creación automática de contadores para prefijos de documentos
Los documentos de Hexa (pedidos, facturas, albaranes, etc. están codificados por la combinación de un "Prefijo" alfanumérico que determina su "serie", y un número que se va incrementando. Esta numeración se realiza mediante contadores configurados que mantienen el valor numérico del siguiente documento a generar.
Existe un contador básico para cada tipo de documento que se utiliza "por defecto" cuando no hay una parametrización diferente. Si existen varios contadores para un tipo de documento, al generarse uno a partir de él, se intentará usar el mismo contador para el documento de destino (por ejemplo la facturación de un albarán). Si no existe, se utilizará el contador básico.
En el caso en que se quiera escoger el contador en función de diferentes criterios, la forma más práctica es utilizar el evento "XDoc.FAPContadorEspecial" que permite decidir el contador a utlizar en función de las circunstancias. Se podría especificar, por ejemplo, que se use un contador para facturas según el país del destinatario de la factura.
El siguiente ejemplo muestra un script que genera contadores según el año y mes de la factura generada. Por ejemplo las de marzo de 2024 se numerarán desde 24/03-1 en adelante.
Function Main (Criterio, Orden, Opciones)
FechaDestino = fpc.igu (Opciones, "FechaDestino", true)
Destino = fpc.igu (Opciones, "Destino", true)
If IsDate (FechaDestino) Then
Fecha = CDate (FechaDestino)
Prefijo = Right ("" & year (Fecha),2) & "/" & Right ("0" & month(Fecha),2)
If Destino="Factura" Then
If Not Obd.ExisteContador ("Factura" & Prefijo) Then BD.Introduce "Contador", "Codigo, Numero, Prefijo", "'Factura" & Prefijo & "',1,'" & Prefijo & "'"
Main = Prefijo
End If
If Destino="FacturaProveedor" Then
If Not Obd.ExisteContador ("FacturaProveedor" & Prefijo) Then BD.Introduce "Contador", "Codigo, Numero, Prefijo", "'FacturaProveedor" & Prefijo & "',1,'" & Prefijo & "'"
Main = Prefijo
End If
Else
Main = ""
End If
End Function
En el script se puede observar que el evento envía la fecha y el tipo de documento. El dato a devolver ("Main") es el prefijo que forzamos para el documento creado. Si no se espcifica nada, Hexa usará el prefijo que tenga configurado por defecto.
Es importante recordar que, si se decide como prefijo un contador que no existe, Hexa lo crea automáticamente en la tabla "Contador" y lo inicia al número 1.
