contador de factura en cliente/servidor
En realidad eso lo haria el manejador de base de datos, te explico
Suponiendo que son facturas de papel, y se van a imprimir desde una sola máquina (ojo, digo imprimir, no crear).
Tu campo numero lo haces autoincremental, luego desde las pc, creas un encabezado de factura, el servidor va a recibir todas las peticiones de crear un encabezado de facura y aunque paresca que se hacen al mismo tiempo, en realidad hay una cola de transacciones, luego para recuperar el número correcto para cada computadora, haces una consulta con datos que acabas de insertar, por ejemplo
seleccionar la clave de facturas donde hora, fecha, caja, cliente... (entre otros datos dependiendo de que información se pueda repetir por transaccion), con esto obtienes el numero generado por una computadora en especifico, ya que tienes el numero haces la insercion del detalle de la factura con el numero correspondiente, y ya un servicio de impresion se encarga de imprimir en el orden correcto para evitar que se corra el numero del papel con el del sistema.
Otra opcion es, en este caso para MySql, del cual se que funciona, no se para otros manejadores de base de datos, es lo siguiente, hay una funcion (no la recuerdo ahorita) que te regresa el último numero autoincremental generado por una sesión, asi, si hay inserciones simultaneas evitas que un numero se vaya al pc equivocado, pues obtienes el mayor que generó la pc, no el mayor que hay en la tabla