public function registrar(Request $request) { $data = $request->all(); $usuario = Auth::user()->id; $deposito = Auth::user()->deposito; $validator = Validator::make($data, ['documento' => 'required|numeric|documento_salida', 'tercero' => 'numeric|tercero:documento', 'insumos' => 'required|insumos_salida'], $this->menssage); if ($validator->fails()) { return Response()->json(['status' => 'danger', 'menssage' => $validator->errors()->first()]); } else { if (!isset($data['tercero']) || empty($data['tercero'])) { $tipo = Documento::where('id', $data['documento'])->value('tipo'); if ($tipo == 'interno') { $data['tercero'] = $deposito; } else { return Response()->json(['status' => 'danger', 'menssage' => 'Seleccione un tercero']); } } $insumos = $data['insumos']; $insumosInvalidos = inventarioController::validaExist($insumos, $deposito); if ($insumosInvalidos) { return Response()->json(['status' => 'unexist', 'data' => $insumosInvalidos]); } else { //Codigo para la salida $code = $this->generateCode('S', $deposito); $salida = Salida::create(['codigo' => $code, 'tercero' => $data['tercero'], 'documento' => $data['documento'], 'usuario' => $usuario, 'deposito' => $deposito])['id']; foreach ($insumos as $insumo) { $existencia = inventarioController::reduceInsumo($insumo['id'], $insumo['despachado'], $deposito); Insumos_salida::create(['salida' => $salida, 'insumo' => $insumo['id'], 'solicitado' => $insumo['solicitado'], 'despachado' => $insumo['despachado'], 'deposito' => $deposito, 'existencia' => $existencia]); } return Response()->json(['status' => 'success', 'menssage' => 'Salida completada satisfactoriamente', 'codigo' => $code]); } } }