Club Delphi  
    FTP   CCD     Enlaces   Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Desplegado
  #1  
Antiguo 17-02-2011
hondaalberto hondaalberto is offline
Miembro
 
Registrado: sep 2010
Ubicación: República Dominicana
Posts: 66
hondaalberto Va por buen camino
Como Incrementar Secuencialmente un Numero de Comprobante Fiscal en sql server

Buenas Noches Amigos

Necesito que por favor me ayuden a resolver lo siguiente: me han solicitado para un programa de Facturación desarrollado en Delphi 7 el cual utiliza como base de datos Sql Server Que al Crear un Documento Nuevo de Factura de Ventas se le debe asignar un número secuencia de Comprobante fiscal el cual tiene la siguiente estructura:
A010010010100000001(el cual esta compuesto por 19 caracteres de los cuales los ultimos 8 numeros son secuenciales, los demas caracteres anteriores siempre seran los mismos).

Lo que necesito es incrementar en uno(1) esta secuencia cada vez que generen una nueva factura y guardar este nuevo número de comprobante fiscal en la base de datos el cual representara el último Número de Comprobantes fiscal Emitido.

Ej:A010010010100000001
A010010010100000002
A010010010100000003...

Muchas GRacias de antemano por la ayuda que puedan brindarme...

Última edición por hondaalberto fecha: 17-02-2011 a las 05:06:02.
Responder Con Cita
  #2  
Antiguo 17-02-2011
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 534
olbeup Va por buen camino
Hola hondaalberto,
Lo que tienes que hacer es crear una base de datos con dos campos:

Cita:
Base de Datos: Facturas
Campos:
IDFACTURA int IDENTITY(1,1)
SERIE varchar(11)
Cuando se incremente un registro el IDFACTURA incrementará en 1.
Para mostrar en pantalla A010010010100000001, lo único que tienes que hacer es con el comando FormatFloat lo juntas todo.
Eje.
Código Delphi [-]
var
  FacturaStr: String;
begin

  FacturaStr := FieldByName('SERIE').AsString + FormatFloat('00000000', FieldByName('IDFACTURA').AsInteger);
end;
Espero que te sirva.
Un Saludo
Responder Con Cita
  #3  
Antiguo 17-02-2011
hondaalberto hondaalberto is offline
Miembro
 
Registrado: sep 2010
Ubicación: República Dominicana
Posts: 66
hondaalberto Va por buen camino
Muchas Gracias por responder olbeup, muy buena respuesta,

Pero Creo que me falto algo por especificar en el primer mensaje y es lo siguiente;

El sistema tiene una tabla en donde se guardan los numeros de serie de los comprobantes Fiscal, los cuales los autoriza una institucion del Gobierno, estos son guardados en la base de datos con la siguiente estructura:

Tabla Numeros de Serie:
Num_Inicial Num_Final Ultimo_Num_Utilizado

A010010010100000001 A010010010100000050 A010010010100000012

Entonces cuando se hace una nueva factura de ventas al numero que hay almacenado en el campo último número utilizado es al que debo hacerle el incremento en uno(1) para asignar ese nuevo numero a la nueva factura emitida y guardar el nuevo nuevo en el campo último utilizado.

Ej: a la Nueva Factura que se emita le corresponderia el número A010010010100000013 que es igual a A010010010100000012+1.

Gracias de Antemano

Última edición por hondaalberto fecha: 17-02-2011 a las 16:35:37.
Responder Con Cita
  #4  
Antiguo 18-02-2011
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 534
olbeup Va por buen camino
Lo único que tienes que hacer es crear un nuevo campo que se llama IDFACTURAULTIMA, donde IDFACTURAULTIMA = (IDFACTURA -1), en SQL SERVER hay una variable que se llama @IDENTITY que es el valor de (IDFACTURA) que ha tomado en tu ordenador, independientemente de los demás ordenadores que estén realizando facturas, éste número que te ha dado, lo actualizas en el IDFACTURAULTIMA.
EJ.
Código SQL [-]
INSERT INTO Facturas (SERIE) VALUES ('A0100100101')

UPDATE Facturas
  SET IDFACTURAULTIMA = (@IDENTITY -1)
Lo bueno que tiene SQL SERVER, es que puedes introducir más de una secuencia SQL SERVER.

Espero que te sirva.
Un saludo.
Responder Con Cita
Respuesta


Herramientas
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
ncf Numero de comprobante fiscal jandj Varios 2 19-12-2012 22:48:04
Cómo incrementar fecha meses/dias con SQL/Firebird 2.1 Tcmn Firebird e Interbase 2 11-10-2010 21:00:46
conocer el numero de licencias en SQL Server sinalocarlos MS SQL Server 2 12-01-2007 19:12:52
Impresora Fiscal y Delphi 5 como? guiweb Varios 0 20-07-2006 19:41:37
Inserción de comprobante Ulises Providers 0 25-07-2003 05:15:13


La franja horaria es GMT +2. Ahora son las 10:14:54.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi