public function guardarDetallePedido() { $response = self::SUCCESS; try { $data = Input::all(); $medicina = Medicina::find($data["medicina"]); $cantidadRestante = $medicina->cantidad - $data["cantidad"]; if ($data["cantidad"] == 0) { throw new \Exception("Se tiene que agregar por lo menos un medicamento"); } if ($cantidadRestante < 0) { throw new \Exception("No hay disponbilidad suficiente de medicina"); } //Guardar detalle $subtotal = $medicina->precio * (int) $data["cantidad"]; $detallePedido = new DetallePedido(); $detallePedido->pedido_id = $data["pedido_id"]; $detallePedido->medicina = $data["medicina"]; $detallePedido->cantidad = $data["cantidad"]; $detallePedido->subtotal = $subtotal; $detallePedido->save(); //Actualizar total $pedido = Pedido::find($data["pedido_id"]); $pedido->total = $pedido->total + $subtotal; $pedido->save(); //Restar de el catalogo $medicina->cantidad = $cantidadRestante; $medicina->save(); } catch (\Exception $ex) { Log::error($ex); $response = self::FAIL; } return array("responseCode" => $response); }