Aspro Posted April 12, 2016 Report Share Posted April 12, 2016 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 arregloarray = [0,25,15] alguna forma de como podria tomar esta solucion gracias :* Link to comment Share on other sites More sharing options...
cañangasñangas Posted April 12, 2016 Report Share Posted April 12, 2016 como que entendí lo que pides pero vi el ejemplo y no caché ni una... Link to comment Share on other sites More sharing options...
Aspro Posted April 13, 2016 Author Report Share Posted April 13, 2016 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 25obviamente 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 siguienteojala me alla podido explicar bien Link to comment Share on other sites More sharing options...
cañangasñangas Posted April 13, 2016 Report Share Posted April 13, 2016 me queda claro, consulta el arreglo es de 3 o es n largo que sucede si el monto a restar es mayor que la suma de los datos del arreglo Link to comment Share on other sites More sharing options...
Zell_Dincht Posted June 8, 2016 Report Share Posted June 8, 2016 (edited) 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 June 8, 2016 by Zell_Dincht Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now