PHP - Programar sistema FIFO Almacen para conocer fecha de material en inventario

 
Vista:

Programar sistema FIFO Almacen para conocer fecha de material en inventario

Publicado por Carlo (4 intervenciones) el 06/02/2020 17:10:36
Hola estimados amigos programadores, espero puedan ayudarme!

Quisiera programar en PHP algo que me diga el numero de material la fecha de entrada y la cantidad que queda de ese material.

Yo ingresaria como input la siguiente información:

Numero de Material: Fecha Movimiento Cantidad:
3466 08/02/2020 -100
3466 07/02/2020 100
3466 06/02/2020 -200
3466 05/02/2020 -100
3466 04/02/2020 -50
3466 03/02/2020 400
3466 02/02/2020 -200
3466 01/02/2020 200

Como pueden ver en la tabla nos dice que el 01/02/2020 entraron 200 piezas de ese material, después salieron 200 después entraron 400 y salieron 50, 100 y 200 y entraron 100 y salieron 100

El resultado y el output que necesito obtener de este programa es la siguiente tabla:

Numero de material Fecha Ingreso Cantidad en Almacen.
3466 02/02/2020 0
3466 03/02/2020 0
3466 07/02/2020 50

Eso significa que del material 3466 que entró el 02/02/2020 ya no queda nada
Del material que entró el 03/02/2020 ya no queda nada
Y del material que entró el 07/02/2020 quedan 50 piezas

Y como es FIFO se le debe ir restando a la fecha mas antigual las salidas de material

Y queda mencionar que son muchos numeros de parte diferentes, todos con la fecha de movimiento y la cantidad de movimiento + significa entrada - significa salida

Yo tengo esta lista enorme en excel y podría meterlo al programa como csv o algo así y el programa quisiera que me devuelva la tabla que enseñé anteriormente

En conclusion lo unico que necesito saber es despues de los movimientos de almacen que cantidad tengo de cada material y que antiguedad tiene ese material en mi almacen

Muchas gracias y cualquier tipo de apoyo será de gran ayuda! Aunque alguien pueda ayudarme solo con alguna parte o con lo que puedan

Gracias
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 Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Programar sistema FIFO Almacen para conocer fecha de material en inventario

Publicado por Julio (830 intervenciones) el 06/02/2020 17:38:12
Hola.

Entiendo que vas a meter todos los registros de todos los materiales día a día y que tendrás entonces un histórico de lo que ha ido sucediendo cada día, ¿no?

Y que, lo que quieres, es que el programa te diga que, dado un día y un material, cuánto material acumulado había ese día concreto, ¿no? Para ello se me ocurre que, teniendo todos los registros, recorras todos los días hasta el que buscas y sumes las cantidades del material que le indicas. Así tendrías el valor buscado, ¿no?

P.D.: Si es ésto, sería más eficiente crear una cuarta columna que vaya guardando el acumulado y así, cuando quieras consultarlo, no tiene que hacer de nuevo la suma recorriendo todos los elementos, sino que le serviría con acceder al acumulado de ese día concreto.

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
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

Programar sistema FIFO Almacen para conocer fecha de material en inventario

Publicado por Carlo (4 intervenciones) el 06/02/2020 18:56:52
@Julio
No, yo tengo un archivo grande como con 20,000 registros, igual al de la primera tabla que mostré y quiero meter esa información y que me salga la tabla output. Pero solo metería esa información una vez y el próximo mes meto otra vez el archivo actualizado.

Entonces ya tengo un sistema que lleva el record de los movimientos, ahora solo necesito meter ese record de movimientos y obtener cuanto material queda y que tan antiguo es ese material.

El problema del acumulado es que por ejemplo en la primera tabla que mostré primero entraron 200 y salieron 200, hasta ahi el acumulado funciona porque da 0, despues entraron 400 y salieron -50 -100 -200 entonces me quedan 50 con antigüedad del 03/02/2020. Luego entraron 100 y ahi es donde ya no funciona el acumulado porque no se pueden revolver. esos 100 tienen antiguedad del 07/02/2020 y los otros 50 del 03/02/2020
Si ahí terminaran los movimientos yo necesito saber que tengo 50 de tal fecha y 100 de tal fecha para saber que tan viejo es el material que tengo en almacen
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 Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Programar sistema FIFO Almacen para conocer fecha de material en inventario

Publicado por Julio (830 intervenciones) el 06/02/2020 19:03:45
Hola.

Eh..., pero entonces no se me ocurre nada más que tener que identificar a ese material de alguna forma. Si "no se pueden mezclar", tendrás que identificarlo de alguna forma para saber cuándo entró uno y cuándo otro.

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
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

Programar sistema FIFO Almacen para conocer fecha de material en inventario

Publicado por Carlo (4 intervenciones) el 06/02/2020 19:54:18
Gracias por tus respuestas!
Si algo que se me ocurre es por ejemplo que cuando entre un movimiento positivo (+) que se cree un registro en otra tabla y si el siguiente movimiento es negativo (-) entonces se le resta al mas antiguo de la nueva tabla y si el resultado de esa resta es negativo entonces se queda 0 en ese registro y lo que sobra se le resta al siguiente registro en la nueva tabla.

Entonces por ejemplo entra un registro nuevo:

3466 / 01/02/2020 / +200

Después entra un negativo y se le resta a ese registro por ser el mas viejo entonces se queda así:

3466 / 01/02/2020 / 0

Despues entra uno positivo entonces se crea otro registro:

3466 / 03/02/2020 / +400

Y se le restan -350

La hoja de registros va así:

3466 / 01/02/2020 / 0
3466 / 03/02/2020 / +50

Y luego entran +100

3466 / 01/02/2020 / 0
3466 / 03/02/2020 / +50
3466 / 07/02/2020 / +100

y después salen -100

3466 / 01/02/2020 / 0 (0-100=-100 <<se pone 0 y los -100 restantes se van al siguiente registro>>)
3466 / 03/02/2020 / +50 (50-100=-50 <<se pone 0 y los -50 restantes se van al siguiente registro>>)
3466 / 07/02/2020 / +100 (100-50=50 <<se quedan esos 50 por ser positivos>>)

Y ya el resultado de eso sería:

3466 / 01/02/2020 / 0
3466 / 03/02/2020 / 0
3466 / 07/02/2020 / 50
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 Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Programar sistema FIFO Almacen para conocer fecha de material en inventario

Publicado por Julio (830 intervenciones) el 06/02/2020 20:16:42
Hola.

Sí claro, ahí ya entra la habilidad del programador de montar una estructura coherente y útil para resolver el problema.

Es una idea esa de montar una tabla paralela. Si puedes, para no duplicar información, mira a ver si puede ser algo que indique la fecha donde entra algún nuevo material o algo así.

Ahí sí que entenderás tú mejor que nadie el problema que tienes.

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
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

Programar sistema FIFO Almacen para conocer fecha de material en inventario

Publicado por Carlo (4 intervenciones) el 07/02/2020 17:17:39
Si es que no se como hacer el código, esperaba que alguien pudiera ayudarme con algún código base y tal vez ya viéndolo le hago algunas modificaciones. Es que se que el código no es tan complicado pero no se me ocurre como
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 Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Programar sistema FIFO Almacen para conocer fecha de material en inventario

Publicado por Julio (830 intervenciones) el 07/02/2020 17:27:41
Hola.

Es que el problema es que, antes de montar el código, tienes que tener clara tu estructura de los datos y las tablas. Sin ellas, montar el código es ir a ciegas.

Primero define las tablas y cómo se estructuran tus datos. Qué vas a tener, cómo lo vas a tener, qué quieres solicitar, qué operaciones tienes que realizar... Y luego ya empezarás con el código porque, ¿qué es un código base? Quiero decir, hay que hacer muchos pasos previos (saber si se solicitan los datos a la base de datos, saber si se guardan en un array o en una clase, saber qué es cada dato...).

No sé si me estoy explicando.

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
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