Jump to content

fifo php


Recommended Posts

saludos :D

tengo un problema que no he podido resolver

tengo un sistema de inventario en donde tengo mis cantidades en un array ordenadas por llegada y yo quiero descontar matando el mas antiguo al mas nuevo

algo asi

 

array = [20,30,15]

 

salida=25

 

debe quedar asi mi arreglo

array = [0,25,15]

 

alguna forma de como podria tomar esta solucion gracias :*

Link to comment
Share on other sites

hola gracias por responder :)

 

tengo un array con los saldos [20,30,15]
y necesito descontar del primero que llego hasta el ultimo y si necesito sacar 25
obviamente me debe matar el 20 y dejarlo en 0 y el 30 restarle 5 y asi quedaria mi array del stock del producto ya que debo sacar el primero que llego hasta el ultimo
[0,25,15]

y si quisiera sacar nuevamente saldo en caso 10

mi array quedaria [0,15,15]

ya que en la primera no tendria saldo ya que esta en 0 asi que pasa al siguiente

ojala me alla podido explicar bien

Link to comment
Share on other sites

  • 1 month later...

Te hice el script en php y javascript para que los pruebes o lo pases a tu lenguaje.

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
    <?php
        $inventarios =  [20,30,15];
        $valorDescontar = 25;
        foreach ($inventarios as $k => $inventario) {
            if($inventario > 0){
                $descontado = $inventario-$valorDescontar;
                if($descontado<0){
                    $valorDescontar = abs($descontado);
                    $inventarios[$k] = 0;
                }else{
                    $inventarios[$k] = $descontado;
                    break;
                }
            }
        }
        print_r($inventarios);
    ?>
    <script type="text/javascript">
        inventarios =  [20,30,15];
        valorDescontar = 25;
        inventariosL = inventarios.length;
        for (var i = 0; i < inventariosL; i++) {
            if(inventarios[i] > 0){
                descontado = inventarios[i]-valorDescontar;
                if(descontado<0){
                    valorDescontar = Math.abs(descontado);
                    inventarios[i] = 0;
                }else{
                    inventarios[i] = descontado;
                    break;
                }
            }
        }
        console.log(inventarios);
    </script>
</body>
</html>
Edited by Zell_Dincht
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...