Visual Basic.NET - Generar Serie y Correlativo de Facturas

 
Vista:
sin imagen de perfil

Generar Serie y Correlativo de Facturas

Publicado por nill frank (14 intervenciones) el 13/05/2015 01:35:53
Doy Muchas Por Estar en Este Maravilloso Grupo, principal Duda Es la de Como Generar Correctamente una Serie y su Correspondiente Correlativo de Control, He Buacado ya Mucho pero ningun Ejmplo o Posible Ayuda ha Logrado Resolver por COmpleto MI Duda, Puesto UQe Algunos Recomiendan Tablas Externas de Control Lo Cual Creo que seria muy bueno Pero Otros dicen que Mejor ceria un Compo Identity en sql-server Peoro bueno Lo que Deseo hacer o el formato es mas menos asi:

001-000001
001-000002
001-000003......,
001-999998,
001-999999,
002-000001,
002-000003,
002-000003,

y asi sucesivamente no se si me podrian ayudar cone esto de antemano muchas Gracias Lo que Puedan Aportar soy Nuevo en el Amplio mundo de la Programacion. Estoy Utilizando VB.net
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de giancarlo
Val: 377
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Generar Serie y Correlativo de Facturas

Publicado por giancarlo (488 intervenciones) el 13/05/2015 19:04:46
si usas identity, tendrias que usar una nueva tabla que t egenere eso, y cuando llegue al limite 999999 resetearlo a cero, pero saldria error ya que generaria nuevamente el 1, ademas necesitas una columna para la serie (001)y el otro correlativo 999999. si se puede generar identity en esa manera o de otra manera desconozco, si llegas encontrar, postealo por aqui.

lo que yo hice: en la tabla de facturas puse los campos serie y correlativo, y con el procedimiento almacenado:
1.agregue una factura, generara el id (identity porsupuesto) y sin factura
2. con el idverifico la factura anterior y veo la serie y correlativo, si el correlativo es 999999 agrega un numero a la serie y el correlativo sera 0, si es diferente, entonces continuara la serie anterior y el correlativo sera el correlativo+1. todo considerando el correlativo anterior
3. actualizo mi campo serie, correlativo y lo concateno para la factura

si hay un identity para ahorrar esto, te agradezco ponerlo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Generar Serie y Correlativo de Facturas

Publicado por markho (21 intervenciones) el 14/05/2015 05:55:38
esta funcion ponerlo en un modulo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Public Sub correlativo(ByVal tablax As String, ByVal camponumerodefactura As String, ByVal cajatexto As TextBox)
	Try
		Dim serie As String
		Dim numero As String
 
 
		Dim sql As String = "SELECT max( " & camponumerodefactura & " ) AS [max] FROM " & tablax & ""
		Dim consulta As New OleDb.OleDbDataAdapter(sql, Cn)
		Dim maxcodigo As New DataTable()
		consulta.Fill(maxcodigo)
		Dim valor As String = String.Empty
		valor = Convert.ToString(maxcodigo.Rows(0)("max"))
 
		serie = Mid(valor, 1, 3)
		numero = Mid(valor, 5, 7)
 
		If valor <> "" Then
 
			If numero = "9999999" Then
				serie = serie + 1
				If Len(serie) = 1 Then serie = "00" & serie
				If Len(serie) = 2 Then serie = "0" & serie
				numero = "0000001"
				If Len(CStr(numero)) = 1 Then numero = "000000" & numero
				If Len(CStr(numero)) = 2 Then numero = "00000" & numero
				If Len(CStr(numero)) = 3 Then numero = "0000" & numero
				If Len(CStr(numero)) = 4 Then numero = "000" & numero
				If Len(CStr(numero)) = 5 Then numero = "00" & numero
				If Len(CStr(numero)) = 6 Then numero = "0" & numero
				cajatexto.Text = serie & "-" & numero
			Else
				numero = numero + 1
				If Len(numero) = 1 Then numero = "000000" & numero
				If Len(numero) = 2 Then numero = "00000" & numero
				If Len(numero) = 3 Then numero = "0000" & numero
				If Len(numero) = 4 Then numero = "000" & numero
				If Len(numero) = 5 Then numero = "00" & numero
				If Len(numero) = 6 Then numero = "0" & numero
				cajatexto.Text = serie & "-" & numero
			End If
		Else
			cajatexto.Text = "001-0000001"
		End If
	Catch ex As Exception
		If Cn.State = ConnectionState.Open Then Cn.Close()
		MsgBox(ex.Message)
	End Try
 
End Sub


y lo llamas en donde quieres grabar el registro

1
2
3
4
5
6
correlativo("TUTABLA", "CAMPONUMERODEFACTURA",txtnumfactura)
 
txtnumfactura = caja de texto sin el "text"
 
insert into .......(........txtnumfactura.text,...........)
msgbox("se grabo correctamente")

ya lo probe y funciona
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Generar Serie y Correlativo de Facturas

Publicado por nill frank (14 intervenciones) el 14/05/2015 16:38:33
Gracias Miles Markho Me Has Dado Mucha Ayuda Ahora SOlo Tenmgo que Adaptarlo , Crees Que Podrias Pasarme le Ejemplo en una Solucion de VIsual Studio por Favor Solo Necesito Ver Operatividad, Sino FUera Mucha Molestia Claro Markho Por Favor y Gracias Nuevamente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Generar Serie y Correlativo de Facturas

Publicado por markho (21 intervenciones) el 14/05/2015 20:31:13
estimado la funcion esta hecho en visual 2008 lo probe y funciona lo unico que tienes que hacer es poner la funcion en un modulo y llamarlo como te explique.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Wilfredo Patricio Castillo
Val: 1.239
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Generar Serie y Correlativo de Facturas

Publicado por Wilfredo Patricio Castillo (720 intervenciones) el 15/05/2015 17:21:03
Lo recomendable sería usar una tabla donde se lleve el control de los correlativo de las facturas.

La serie no tiene porqué incrementarse, ya que si es de Perú, SUNAT asigna una serie única por cada establecimiento y es invariable.

Ahora, si estás haciendo una solución para una empresa que ya está funcionando y va por la factura 002545, que vas a hacer?.

Eso de generar el número en un módulo y llevarlo a una caja de texto mientras llenas la factura, funcionará para un solo usuario, pero si si son varios usuarios facturando en simultáneo?.

Piensa en esas posibilidades, y pues ve la manera de hacerlo en un store procedure si es que estás trabajando con SQ Server, todo ello dentro de una trasacción para evitar sorpresas.

Saludos cordiale
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Mario

Generar Serie y Correlativo de Facturas

Publicado por Mario (12 intervenciones) el 15/05/2015 19:06:14
Hola Wilfredo puse en practica tu código y me sale un error,podrías ser mas explicito en la forma de llamar la funcion
muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Generar Serie y Correlativo de Facturas

Publicado por nill frank (14 intervenciones) el 15/05/2015 19:26:01
Si Estiamdo Wilfredo Patricio Castillo he Tenido en Cuenta eso Por Ello tengo 2 tablas

Tabla Documento
codigo char(20),
descripcion(30)

y la tabla

Control
Codigo int identity(1,1)
serie char(10),
correlativo(12),
finpresion defaul get(today),
estado char (10)

x cada documento registrado lo cargo con la tabla control y ahi le asigno su serie y correlativo, ahora para poder evitar que 2 o mas usuarios vean el mismo codigo ya sea de una factura o ticket-boleta como ested me recomienda como le haria por favor echeme una mano sobre como le podria resolver, ha y con de la serie de esta debe cambiar cuando el correlativo llegue a 999999 pero simepre y cuando la autorizacion la de SUNAT, es por eso que lo quiero hacer generar como lo describi mas adelante:
001-000001
001-000002
001-000003......,
001-999998,
001-999999,
002-000001,
002-000003,
002-000003,

gracias de antemano Gracias....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Generar Serie y Correlativo de Facturas

Publicado por markho (21 intervenciones) el 15/05/2015 19:38:40
Solamente trate de cumplir con lo que requería el amigo …. la función lo utilizo no para incrementar facturas si no para el código ID de una tabla los números de documentos lo ingreso manualmente en mi caso…. Pero tratando de darle sentido lo que podría hacer es que la función lo tenga en el load de la tabla para que cargue el numero de factura (de preferencia que este seleccionado el texto para que lo modifique si es necesario)

y con respecto a que si es recomendable hacerlo así … te diría que en mi empresa lo hacen de esta manera adicional mente el sistema tienen un tabla donde se puede modificar el correlativo y solamente una persona ingresan las facturas para evitar los problemas que tu explicas así que si es que si se puede trabajar de esta manera es solamente pensar un poquito … acaso si una empresa te contrata para que le hagas un sistema de esta manera le vas a decir que no se puede o que no es factible creo que no verdad ¿??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Generar Serie y Correlativo de Facturas

Publicado por nill frank (14 intervenciones) el 15/05/2015 20:07:11
Tio Markho Tu Ayuda me Sirvio De Mucho No te Preocupes Doctor Me Mas Ayudado Muchisimo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Wilfredo Patricio Castillo
Val: 1.239
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Generar Serie y Correlativo de Facturas

Publicado por Wilfredo Patricio Castillo (720 intervenciones) el 15/05/2015 20:14:48
Estimado markho.

Todo se puede hacer, y si se mete la factura manual no habría porqué preocuparse, ya que así hayan 1000 usuarios ingresando en sumultáneo, no habría problema, ya que al parecer, tu caso es que registran facturas de compra, porque si es en las ventas como dije que pasaría si hay varios usuarios realizando ventas en sumultáneo?, cada usuario tendría su propio correlativo de facturas?. Si ese es el caso no habría problemas, el asunto es que el amigo que consultó creo que es de Perú y en esos casos SUNAT, autoriza una serie única y un correlativo de factura para un establecimiento y no cambia, si son varios establecimientos de cada empresa, cada establecimiento tiene su propio correlativo y serie, pero el asunto coo dije venía cuando tienes varios usuarios facturando en simultáneo. Si es para un solo usuario no hay problema. Y yo nunca dije que no sea factible, solo dije que hay que tener presente esos escenarios y todas las cosas que se pueden presentar.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Generar Serie y Correlativo de Facturas

Publicado por markho (21 intervenciones) el 15/05/2015 20:40:48
tambien soy de peru .. y sunat puede autorizar mas de una serie (en mi empresa tenemos mas de 20 series ...... por sucursal se maneja hasta 4 series distintas si quieres informate y me comentas que pasaria si emito la factura 001-5050 el 01/05/2015 al cliente MARCO Y el cliente regresa el 10/05/2015 y me dice que esta mal emitido y necesita otra factura obviamente con la misma fecha ya no puedes emitirle con la misma serie por un tema de desfase del correlativo lo que se hace es generarle una factura con otra serie por eso si e posible que un establesimiento tenga mas de una serie .....) dicho esto si es el caso de multi usuarios que ingresen al mismo tiempo lo recomendable seria que cada uno tenga su propia serie de igualmanera si fueran documentos electronicos (ticket boleta o ticket factura) cada punto tendria su serie obviamente con los permisos necesarios de la sunat pero si se puede hacer .
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Generar Serie y Correlativo de Facturas

Publicado por markho (21 intervenciones) el 15/05/2015 20:59:37
estimado amigo , recalco que lo que presento son casos reales y me baso en donde trabajo por eso te digo que no habria problemas implementarlo obviamente teniendo presente las observaciones que indicas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Generar Serie y Correlativo de Facturas

Publicado por nill frank (14 intervenciones) el 15/05/2015 23:48:54
Los Tienen Muy Buenas Ideas Mis Dudas Están Claras Solo Necesitaría un Ejemplo Concreto Los 2 Son Muy BUenos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de mario

Generar Serie y Correlativo de Facturas

Publicado por mario (12 intervenciones) el 16/05/2015 03:55:28
Hola correlativo("TUTABLA", "CAMPONUMERODEFACTURA",txtnumfactura)

txtnumfactura = caja de texto sin el "text"

insert into .......(........txtnumfactura.text,...........)
msgbox("se grabo correctamente")me puedes hacer el favor y ser mas explicito como llamar la función, por lo menos con un ejemplo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Generar Serie y Correlativo de Facturas

Publicado por markho (21 intervenciones) el 16/05/2015 04:11:51
que tal se supone que debes de tener una base de datos dentro de la base de datos tienes tablas y dentro de las tablas campos ejemplo :
---------------------------------
(tabla)
facturas

(campos)
idfactura
fecha
numfactura
subtotal
igv
total
-----------------------------

asi que debes agregar un modulo a tu proyecto y copiar la funcion alli y lo llamas del boton grabar o en el load del formulario y lo llamas asi :

correlativo("facturas", "numfactura",txtnumfactura)

eso es todo.... el txtnumfactura es el control textbox donde va el dato

si aun tienes problemas instala el teamviweer me dices el id y tu contraseña entro a tu pc y te ayudo a implementarlo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Generar Serie y Correlativo de Facturas

Publicado por Hugo (1 intervención) el 01/07/2015 00:39:29
Que es o donde se declara "Cn", en la siguiente linea de código:

Dim consulta As New OleDb.OleDbDataAdapter(sql, Cn)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Generar Serie y Correlativo de Facturas

Publicado por markho (21 intervenciones) el 02/07/2015 05:03:15
es la coneccion de la base de datos.

Public Cn As OleDb.OleDbConnection


Public Sub conectar()
Cn = New OleDb.OleDbConnection
Cn.ConnectionString = "provider = Microsoft.ace.oledb.12.0;Data source = D:\SistLine\SistLine\bin\Debug\NATURAL.accdb;Persist Security Info = False;Jet OLEDB:Database Password=biofito"
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Generar Serie y Correlativo de Facturas

Publicado por Marco (21 intervenciones) el 31/10/2015 03:40:51
buenas noches envio un ejemplo en vb2008 y access 2007

https://www.dropbox.com/s/b44bmd8kye1ski3/SistPrestamo.zip?dl=0

usuario : marco
password: 123

solo entren en mantenimiento - clientes

clic en nuevo ingresar datos y grabar alli chequean como funciona el correlativos autogenerado

en el modulo tambien hay otras funciones que lo pueden servir .

otras ventanas pueden mandar error ya que elimine varios formularios .
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Generar Serie y Correlativo de Facturas

Publicado por nill frank (14 intervenciones) el 10/05/2016 03:18:20
Estiamdo Marco el Password para probar el sistema es incorrecto intente con la pass de la bd y nada espero que puedas darme la pass de tu user amigazo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Generar Serie y Correlativo de Facturas

Publicado por markho (21 intervenciones) el 10/05/2016 22:24:46
que raro lamentablemente tengo computadora nueva y falta instalar todo,prueba con este codigo

marco
123456

marco
15401978

no te olvides de presionar el enter al escribir el usuario.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Generar Serie y Correlativo de Facturas

Publicado por nill frank (14 intervenciones) el 10/05/2016 23:19:13
Gracias Marko
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Generar Serie y Correlativo de Facturas

Publicado por nill frank (14 intervenciones) el 10/05/2016 23:48:52
Intente Con Los Datos que me distes pero no logre acceder
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar