PHP - función FIFO sistema de inventario

 
Vista:
sin imagen de perfil

función FIFO sistema de inventario

Publicado por kyokushinn (3 intervenciones) el 17/10/2014 18:59:05
Junto con saludar necesito ayuda para la implementacion de una funcion que simule el metodo fifo

es decir tengo los siguientes codigos de productos ordenados por fecha con sus cantidades respectivas, en donde el metodo fifo dice el primero que entra es el primero en salir

Cantidad a salir 100 u

cod stock

1001 20
1002 30
1003 30
1001 10
1005 50
1002 0

el codigo es distinto ya que son el mismo producto de distintos proveedores

segun metodo fifo debiera sacar

20u 1001
30u 1002
30u 1002
10u 1001
10u 1002

quedando

1001 0
1002 0
1003 0
1001 0
1005 40
1002 0

como puedo implementar esa funcion he tratado pero no me resulta ayuda plisss
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 xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

función FIFO sistema de inventario

Publicado por xve (6935 intervenciones) el 17/10/2014 21:21:27
Hola kyokushinn, no me queda muy claro como lo quieres implementar... por ejemplo, puedes ir añadiendo los valores en un array, y posteriormente sacarlos de dicho array empezando por el último añadido.

Eso te valdría?
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

función FIFO sistema de inventario

Publicado por kyokushinn (3 intervenciones) el 18/10/2014 02:04:38
Estimado
Estoy tratando de implementarla con arreglos se supone que ya cuento con ese arreglo ordenado por fechas según su llegada es decir tomo el primer valor del arreglo y veo si me alcanza a cubrir lo solicitado en caso que sea si saca esa cantidad y actualizo la tabla en caso de no cubrir esa cantidad saco todo de la posición 1 y tomo la cantidad de la posición numero 2 y pregunto si alcanza a cubrir esa cantidad de ser si saco la cantidad y salgo de lo contrario hago lo mismo hasta que se acabe los registros o se logre completar lo solicitado esto lo quiero tratar de hacer de forma recursiva pero igual es medio complicado ....
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

función FIFO sistema de inventario

Publicado por Leopoldo Taylhardat (46 intervenciones) el 19/10/2014 14:59:02
Saludos...
Me permito darte una explicación contable...
El método FIFO es una valorización contable donde asignas el costo a la salida del producto al valor de la entrada más antigua... primero en entrar primero en salir...
El método LIFO es una valorización contable donde asignas el costo a la salida del producto al valor de la entrada más reciente... último en entrar primero en salir...
El otro método de valorización contable es a ultimo costo.... es decir, no importa cuando ingresó el producto... todas las unidades se revalorizan si el último costo es el mayor, o se desvalorizan si el último costo es menor...

Ahora bien ... el FIFO se utiliza a nivel de inventarios para productos perecederos tales como farmacéuticos y alimenticios...
ahora si el producto que se despacha no es el primero (con FIFO) eso no lo puedes saber con el sistema.... eso lo sabría es el despachador de almacén....
Asumiendo que se logra un despacho coherente, tienes que buscar el código con la fecha más antigua y con la existencia mayor a cero y no veo en tu tabla cuando fué la entrada al almacén....
tu tabla debiera tener: código, fecha de entrada, existencia y costo del producto para esa fecha...
tu clave debiera estar compuesta por código y fecha...
si.... la existencia no cubre tu despacho, tienes que tomar existencia de tu fecha inmediata posterior ejemplo:
codigo fecha existencia costo/unidad valor/inventario
1001 15/01/2014 10 10 100
1001 26/02/2014 20 20 400
....
deseas despachar 15 unidades...
debes despachar (y registrar en el sistema) 10 unidades del 15/01/2014 y 5 unidades del 26/02/2014...
y el costo de tu salida es (10*10) + (5*20) y en el sistema quedaría el balance de inventario así....
codigo fecha existencia costo/unidad valor/inventario
1001 15/01/2014 0 10 0
1001 26/02/2014 15 20 300
...
Espero que te sirva...
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

función FIFO sistema de inventario

Publicado por kyokushinn (3 intervenciones) el 19/10/2014 17:20:10
Estimado Gracias por tu comentario el problema es que estoy pegado en esta parte del programa e que es un sistema de de inventario en el cual esa información que tu mencionas la manejo en una tabla llamada kardex

Id_Mov Cod_Producto Fecha_Entrada Fecha_Salida Entrada Salida Disponible Precio Verifica
217 7800004508808 14-10-2014 0000-00-00 2000 0 2000 560 0
218 7800007153852 14-10-2014 0000-00-00 5000 0 5000 500 0
219 7800007389893 14-10-2014 0000-00-00 500 0 500 700 0
220 7800063110882 15-10-2014 0000-00-00 2500 0 2500 350 0
221 7800007303097 14-10-2014 0000-00-00 3000 0 3000 700 0

el problema de acuerdo a una consulta sql tengo ordenado todos los productos que me sirven para ese pedido


$consulta1 = "select kardex.Id_Mov, kardex.Disponible,kardex.Fecha_Entrada, kardex.Cod_Producto, kardex.Precio from kardex
inner join producto on kardex.Cod_Producto = producto.Cod_Producto
inner join unidad_medida on kardex.Id_Medida = unidad_medida.Id_Medida
inner join envase on kardex.Id_Envase = envase.Id_Envase
inner join presentacion on kardex.Id_Presentacion = presentacion.Id_Presentacion
where
producto.Nombre_Gen = '$patron'
and Cantidad_Unidad = '$patron1'
and Unidad_M = '$patron2'
and DesPresentacion = '$patron3'
and Nombre_Envase = '$patron4'
and Verifica = '0'
order by Fecha_Entrada";

teniendo ese resultado ya tengo los productos ordenados ahora bien no tengo claro como implementar esa funcion fifo

un ejemplo

resultado de consulta (ejemplo)
co1 ca1: 400
co2 ca2: 2000
co3 ca3: 1000
co4 ca4: 3000
co5 ca5: 2500
y
me solicitan 3000 unidades

saco 400
saco 2000
saco 600

haciendo las rebajas correspondientes y actualizando las tablas

es ahi mi problema he tratado con arreglos pero no me ha resultado, ademas debo reconocer que mi experiencia en programación
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

función FIFO sistema de inventario

Publicado por Leopoldo Taylhardat (46 intervenciones) el 22/10/2014 23:10:52
Saludos...
tienes que tomar disponible > 0 y
el arreglo que te trae el query con la cantidad disponible para despachar de la fecha correspondiente, debes verificar que la cantidad sea igual o mayor a tu pedido...
si la existencia es igual o mayor a tu pedido en el primer renglón del arreglo, actualizas la salida del inventario y restas a la existencia para esa fecha...
si la existencia es menor al renglón entonces le das salida al inventario para esa fecha y pones la disponibilidad (existencia) en cero para esa fecha, y avanzas en el arreglo al siguiente renglón y procesas con la misma comparación hasta que satisfaces el pedido...
Espero que te sirva...
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