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: 1.292
Plata
Ha aumentado su posición en 9 puestos 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 (392 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: 1.292
Plata
Ha aumentado su posición en 9 puestos 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 (392 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: 1.292
Plata
Ha aumentado su posición en 9 puestos 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 (392 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: 1.292
Plata
Ha aumentado su posición en 9 puestos 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 (392 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