Visual Basic Foro

Programación => Bases de Datos => Mensaje iniciado por: ajav7 en Junio 11, 2014, 02:53:16 pm

Título: PEPS en base de datos
Publicado por: ajav7 en Junio 11, 2014, 02:53:16 pm
que tal amigos espere me puedan ayudar
estoy realizando un modulo de inventario en vb6 con sql server 2005
de la tabla detalles de entrada y la de detalles de salida tengo los datos del articulo la cantidad y precio

(http://s11.postimg.org/nsk2tfrwf/image.jpg) (http://postimg.org/image/nsk2tfrwf/)

con este código ya obtengo el id del articulo y con eso puedo conseguir sus detalles de entra y salida para realizar esas consultas pero no tengo ni idea de que hacer a continuación
Código: [Seleccionar]
Set RS_ART = CN.Execute("SELECT art_id FROM ARTICULOS WHERE art_clv = '" & Text2.Text & "' AND art_des = '" & Text1(2).Text & "' ")
  If Not RS_ART.EOF Then
    idart = RS_ART!art_id
  End If
Set RS_ENT = CN.Execute("SELECT art_id,cant,art_pre from DETALLE_ENTRADAS where art_id='" & idart & "' ")
Set RS_ART = CN.Execute("SELECT art_id,cant,art_pre from DETALLE_SALIDAS where art_id='" & idart & "' ")

soy nuevo y necesito ayuda para saber que hacer ahora estoy completamente perdido
Título: Re:PEPS en base de datos
Publicado por: wolf_kof en Junio 11, 2014, 02:55:32 pm
Ok pero que quieres hacer, la pregunta del millon (Hugo  :D  no te ofendas)
Título: Re:PEPS en base de datos
Publicado por: ajav7 en Junio 11, 2014, 02:57:18 pm
sola mente me interesa obtener el costo total del stock por medio de peps

Título: Re:PEPS en base de datos
Publicado por: YAcosta en Junio 11, 2014, 03:43:00 pm
El costeo PEPS es un costeo cronologico, tu consulta ha de ser usando un campo fecha para que sepas a una fecha determinada cual es el costo.

No uses execute para los Select, usa Open.
Título: Re:PEPS en base de datos
Publicado por: wolf_kof en Junio 11, 2014, 03:46:36 pm
Bueno yo lo manejo diferente, pera que estoy almorzando (frente a la computadora de mi oficina) y cuando termine lo posteo
Título: Re:PEPS en base de datos
Publicado por: ajav7 en Junio 11, 2014, 05:59:47 pm
si se ocupara fecha igual esta en otra tabla solo que seria mas enredoso y a mi forma de ver se puede hacer como que el mismo día todo llego y la mercancía fue saliendo poco a poco ya que están ordenadas, pero igual creo que para todos los que tengamos este problema seria bueno ver las diferentes formas en que ustedes lo plantean y resuelven 
Título: Re:PEPS en base de datos
Publicado por: ssccaann43 en Junio 11, 2014, 06:53:01 pm
Solo una observación...

El movimiento de ingreso y salida debería estar en la misma tabla, identificado por un registro que refleje que el mismo es ingreso o es salida. Por ejemplo, para que al momento de que vayas a desarrollar un Kardex sea mucho más simple para ti hacerlo.

Saludos....!
Título: Re:PEPS en base de datos
Publicado por: ajav7 en Junio 11, 2014, 07:00:25 pm
muchas gracias es correcto pero no lo tengo así por que estaría muy grande la tabla ademas de que hay una entrada y puedo hacer una salida pero se puede cancelar o estar pendiente si aun no esta autorizada, por eso tengo la tabla de entrada, detalle de entrada, salida, detalle de salida y si tengo el id_entrada en entrada y detalle de entrada y lo mismo en salida
Título: Re:PEPS en base de datos
Publicado por: YAcosta en Junio 11, 2014, 07:08:37 pm
muchas gracias es correcto pero no lo tengo así por que estaría muy grande la tabla ademas de que hay una entrada y puedo hacer una salida pero se puede cancelar o estar pendiente si aun no esta autorizada, por eso tengo la tabla de entrada, detalle de entrada, salida, detalle de salida y si tengo el id_entrada en entrada y detalle de entrada y lo mismo en salida

¿Porque te preocupa el tamaño de la tabla? cuanto millones tienes? esta tu tabla indexada?... o quiza usas Acces.

Yo lo manejo igual que te comen Scan, es mas, ni suquiera tengo un campo que me dice si es ingreso o egreso ya que uso el signo negativo para los egresos, lo que si tengo es un campo que me dice el tipo de ingreso o tipo de egreso.

Se te enreda porque tienes un tema con el diseño, eso ya seria otro problema, no debe haber temor por el tamaño de la tabla

ACLARACION: Esta no es la respuesta sobre como llevar el PEPS, hay mas aun, solo queria aclarar eso de "muchos registros", para lo otro creo que Abner esta dando una buena explicacion.
Título: Re:PEPS en base de datos
Publicado por: wolf_kof en Junio 11, 2014, 07:10:55 pm
Con los inventarios PEPS es algo bien complicado:

1. Debes de tener en cuenta que tienes que tener una tabla productos en el cual manejas un stock
2. Debes de tener otra tabla donde vallas haciendo los ingresos a bodega y que valla alimentando el stock

Hata hay todo bien cualquier sistema de gestion decente hace esto... pero

3. En la tabla detalle de ingreso debes de manejar dos Stock (Stock de Ingreso, Stock Actual) en esta tabla va el monto individual del articulo que has comprado. Ademas tiene que ir un campo que se llame Estado donde Stock Actual sea 0 Estado es Terminado.

Para qué? En Peps es Primero en Entrar y Primero en Salir, significa que aunque hallas hecho mas compras no vas a tocar esas compras hasta que no se acabe la primera.

4. A diferencia de lo que te dijo SSCCAANN tu tabla de Egresos debe de ser otra.
5. Cuando Saleun producto de tu sistema (Cuando Vendes) Rebajas de la Tabla de Productos el Stock, Pero de la Tabla Detalle lo rebajas del Stock Actual.

5. Cuando quieres saber cuanto tienes de Stock en Plata pues solo haces una consulta del valor individual por compra por Stock Actual y listo.

Cualquier duda pregunta
Título: Re:PEPS en base de datos
Publicado por: wolf_kof en Junio 11, 2014, 07:13:24 pm
muchas gracias es correcto pero no lo tengo así por que estaría muy grande la tabla ademas de que hay una entrada y puedo hacer una salida pero se puede cancelar o estar pendiente si aun no esta autorizada, por eso tengo la tabla de entrada, detalle de entrada, salida, detalle de salida y si tengo el id_entrada en entrada y detalle de entrada y lo mismo en salida

Ten claro lo siguiente la Tabla donde registras eso no es la tabla donde tienes que hacer las operaciones matematicas con los Stock de tus productos.

La Tabla Productos y DetalleCompraProductos son obligatorias en un Sistema Peps, los movimientos son otra cosa.
Título: Re:PEPS en base de datos
Publicado por: ajav7 en Junio 11, 2014, 07:35:50 pm
no me preocupa el tamaño pero la tabla de artículos tiene casi 98,000 y planeo que el sistema se consulte en linea lo cual ya representa algo al ser varios usuarios a la vez y no digo 10 o 40 sino mas usuarios y es sql server y NDWgt gracias de echo si se que se ocupan esos datos pero todo lo haría con el sistema atreves de programación no quiero exactamente sacarlo directamente de la BD creo que con las prisas y no plantear bien la pregunta que te hice el tema no debería de estar n  BD sino en programación o algo sobre visual basic que ahi es donde tengo el problema
Título: Re:PEPS en base de datos
Publicado por: YAcosta en Junio 11, 2014, 07:52:14 pm
98,000 es un numero chico para un SQL Server pero me parece grande para un maestro de articulos SIEMPRE que se entienda que te refieres al maestro (productos identificados en el sistema, no sus transacciones).

Si en realidad tienes 98,000 articulos... lo mas probable es que no este dimensionado y por eso crece espantosamente el maestro.
Título: Re:PEPS en base de datos
Publicado por: ajav7 en Junio 11, 2014, 08:18:38 pm
Asi es amigo son casi 98,000 registros de productos identificados y Activos aparte son los que ya se dieron de baja y pues en entradas son estos productos algunos multiplicados por 8 tal vez mínimo y otros entran casi diario con decirte que cuando use un update del campo donde tengo la imagen de cada producto tardo cerca de 40 minutos
Título: Re:PEPS en base de datos
Publicado por: wolf_kof en Junio 11, 2014, 08:44:58 pm
Asi es amigo son casi 98,000 registros de productos identificados y Activos aparte son los que ya se dieron de baja y pues en entradas son estos productos algunos multiplicados por 8 tal vez mínimo y otros entran casi diario con decirte que cuando use un update del campo donde tengo la imagen de cada producto tardo cerca de 40 minutos

Pues algo estarás haciendo mal viejo por que 98,000 registros es un número insignificante para SQL Server literalmente Insignificante ademas 40 minutos para un update en campo imagen es demasiado, inaceptable diria yo, me reportan una base de datos así de lenta y lo mando mucho a la %&$%& pero ese soy yo en la empresa, no te molestes.

Por favor plantea bien tu pregunta y pon una imagen de como están configuradas tus tablas y tus códigos, saber con que estas conectando, etc. etc. y con gusto te ayudamos.
Título: Re:PEPS en base de datos
Publicado por: wolf_kof en Junio 11, 2014, 08:49:02 pm
no me preocupa el tamaño pero la tabla de artículos tiene casi 98,000 y planeo que el sistema se consulte en linea lo cual ya representa algo al ser varios usuarios a la vez y no digo 10 o 40 sino mas usuarios y es sql server y NDWgt gracias de echo si se que se ocupan esos datos pero todo lo haría con el sistema atreves de programación no quiero exactamente sacarlo directamente de la BD creo que con las prisas y no plantear bien la pregunta que te hice el tema no debería de estar n  BD sino en programación o algo sobre visual basic que ahi es donde tengo el problema

Lo hagas donde lo hagas manipular la base de datos es manipular la base de datos, no importa si el resultado lo haces por medio de una consulta o si lo haces en una variable de programación el método es el mismo

Mont Plata Inventario = (Sotck Actual por Compra de Producto) * (Valor del Producto por Compra)

Eso es igual aqui y en la china amigo mio.

Cual es tu verdadero problema?
Título: Re:PEPS en base de datos
Publicado por: YAcosta en Junio 12, 2014, 03:45:40 am
Concuerdo con Abner.

Sin embargo, insisto que creo que quiza los artículos no estan dimensionados, como dije 98,000 no le hace cosquilla al motor pero ¿Que negocio puede tener 98 mil artículos identificados? un supermercado y a veces no llegan ni a 50 mil, en todo caso llama poderosamente la atención que un negocio con 98k de articulos este teniendo estos inconvenientes e inquietudes, es muy extraño, 98 mil lo lleva un negocio importante... como dije, quiza no son 98 mil y en realidad solo deben ser por ejemplo 10 mil.

Un producto NO dimensionado seria mas o menos asi:
20 unid Camisa John Holden Blanco M
50 unid Camisa John Holden Verde M
30 unid Camisa John Holden Azul M
10 unid Camisa John Holden Blanco S
40 unid Camisa John Holden Celeste S

Alli vemos 5 items, o sea, 5 productos identificados... pero llevarlo asi esta mal, aumentas items innecesariamente y una gestion mas ineficiente, ese producto es uno solo: "Camisa John Holden" y existen 150 unidades pero (en este caso) tiene 2 dimensiones: Talla y Color y se requiere de otra tabla para su control, pero bueno eso ya es materia de otro curso.

Y si como dice Abner 40 minutos es un espanto y un ejemplo claro y evidente que alguien la esta recontra cagando, es mas, para un update y para esa tabla 10 segundos no mas ya es de asustarse, asi como esta ese sistema olvidate de hacer consultas online, hay base de datos con cientos de millones de registros al servicio de la nube y jamas se concebiría que tarde siquiera 1 minuto.

Amigo ajav7, entiéndenos que no te estamos atacando a ti, sino al proceder, POR SI ACASO no nos mal interpretes pero las cosas como son, sin adornos, los consejos se te regalan practicamente de forma desinteresada y lo recomendable es que lo aproveches, creo que no te estas percatando que hay un roche mas grande que debes atender. Posiblemente estas usando el SQL Server como un repositorio, sin utilizar indices siquiera ni ninguna de las bondades que te brinda un motor, o quizá tu código este haciendo ciclos donde no debe en el momento que no debe.

Bueno van a ser las 2am, al sobre.

SAludos