public static function ObtenerDocuById($id)
 {
     $documento = Documento::where('idDocumento', $id)->first();
     if (isset($documento)) {
         return $documento;
     }
     return 0;
 }
示例#2
0
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function destroy($id)
 {
     try {
         $documento = Documento::find($id);
         $documento->delete();
         return JsonResponse::create(array('message' => "Documento  Eliminado Correctamente", "request" => json_encode($id)), 200);
     } catch (Exception $ex) {
         return JsonResponse::create(array('message' => "No se pudo Eliminar el documento", "exception" => $ex->getMessage(), "request" => json_encode($id)), 401);
     }
 }
 public function index()
 {
     session_start();
     if (isset($_SESSION['nameusuario'])) {
         $user = $_SESSION['nameusuario'];
         $iduser = Usuario::getIdUser($_SESSION['usuarioespol']);
         $documentos = Documento::ObtenerMisDocus($iduser);
         return view('principal', ['user' => $user, 'docs' => $documentos]);
     } else {
         return view('welcome');
     }
 }
 public static function ObtenerMisDocusComp($id)
 {
     $documentos = usuario_documento::where('usuario', $id)->get();
     $erre = array();
     $docusComp = array();
     foreach ($documentos as $doc) {
         if (!Documento::EsmiDoc($doc->documento, $id)) {
             array_push($erre, $doc->documento);
         }
     }
     for ($i = 0; $i < count($erre); $i++) {
         array_push($docusComp, Documento::ObtenerDocuById($erre[$i]));
     }
     return $docusComp;
 }
 /**
  * Show the form for editing the specified resource.
  *
  * @param  int  $id
  * @return Response
  */
 public function edit($id)
 {
     $actaGrupoApoyo = \App\ActaGrupoApoyo::find($id);
     $grupoapoyo = \App\GrupoApoyo::where('Compania_idCompania', '=', \Session::get('idCompania'))->lists('nombreGrupoApoyo', 'idGrupoApoyo');
     $idTercero = \App\Tercero::where('Compania_idCompania', '=', \Session::get('idCompania'))->lists('idTercero');
     $nombreCompletoTercero = \App\Tercero::where('Compania_idCompania', '=', \Session::get('idCompania'))->lists('nombreCompletoTercero');
     $idDocumento = \App\Documento::All()->lists('idDocumento');
     $nombreDocumento = \App\Documento::All()->lists('nombreDocumento');
     return view('actagrupoapoyo', compact('grupoapoyo', 'idTercero', 'nombreCompletoTercero', 'nombreDocumento', 'idDocumento'), ['actaGrupoApoyo' => $actaGrupoApoyo]);
 }
 public function eliminarDoc(Request $req)
 {
     usuario_documento::where('documento', $req->fileToDel)->delete();
     Documento::where('idDocumento', $req->fileToDel)->delete();
     session_start();
     $user = $_SESSION['nameusuario'];
     $iduser = Usuario::getIdUser($_SESSION['usuarioespol']);
     $documentos = Documento::ObtenerMisDocus($iduser);
     return view('principal', ['user' => $user, 'docs' => $documentos]);
 }
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function destroy($id)
 {
     \App\Documento::destroy($id);
     return redirect('/documento');
 }
 public function registrar(Request $request)
 {
     $data = $request->all();
     $validator = Validator::make($data, ['documento' => 'required|numeric|documento', 'movimiento' => 'required|numeric|movimiento:documento', 'update_documento' => 'numeric|documento|document_not_equal:documento|documento_same_nature:documento', 'update_tercero' => 'numeric'], $this->menssage);
     if ($validator->fails()) {
         return Response()->json(['status' => 'danger', 'message' => $validator->errors()->first()]);
     } else {
         $deposito = Auth::user()->deposito;
         //Valida si no se han realizado modificaciones.
         if (empty($data['update_documento']) && empty($data['update_tercero'])) {
             return Response()->json(['status' => 'danger', 'message' => 'No se han hecho modificaciones']);
         }
         //Obtiene el documento actual asignado al movimiento.
         $ori_documento = Documento::where('id', $data['documento'])->firstOrFail();
         if (!empty($data['update_documento'])) {
             //Obtiene el documento a modificar.
             $up_documento = Documento::where('id', $data['update_documento'])->firstOrFail();
         }
         //Valida si el documento original y el documento a modificar tiene el mismo tipo.
         if ($data['update_documento'] && empty($data['update_tercero'])) {
             if ($up_documento['tipo'] == 'interno') {
                 if ($ori_documento['tipo'] != 'interno') {
                     $data['update_tercero'] = $deposito;
                 }
             } else {
                 if ($ori_documento['tipo'] != $up_documento['tipo']) {
                     return Response()->json(['status' => 'danger', 'message' => 'Seleccione un tercero para realizar la modificación.']);
                 }
             }
         }
         //Valida que el tercero a modificar existe en el tipo del documento.
         if (!empty($data['update_tercero']) && !empty($data['update_documento']) && $up_documento['tipo'] != 'interno') {
             if ($up_documento) {
                 $tipo = $up_documento['tipo'];
             } else {
                 $tipo = $ori_documento['tipo'];
             }
             switch ($tipo) {
                 case 'proveedor':
                     if (!Provedore::where('id', $data['update_tercero'])->first()) {
                         return Response()->json(['status' => 'danger', 'message' => 'Tercero no existe']);
                     }
                     break;
                 case 'servicio':
                     if (!Departamento::where('id', $data['update_tercero'])->first()) {
                         return Response()->json(['status' => 'danger', 'message' => 'Tercero no existe']);
                     }
                     break;
                 case 'deposito':
                     if (!Deposito::where('id', $data['update_tercero'])->where('id', '!=', $deposito)->first()) {
                         return Response()->json(['status' => 'danger', 'message' => 'Tercero no existe']);
                     }
                     break;
             }
         }
         //Localiza el movimiento.
         if ($ori_documento['naturaleza'] == 'entrada') {
             $movimiento = Entrada::where('id', $data['movimiento'])->where('deposito', $deposito)->first();
         } else {
             $movimiento = Salida::where('id', $data['movimiento'])->where('deposito', $deposito)->first();
         }
         //Si el tercero a modificar es el mismo del movimiento original se regresa un mensaje de error.
         if (!empty($data['update_tercero'])) {
             if (!empty($data['update_documento'])) {
                 if ($ori_documento['tipo'] == $up_documento['tipo'] && $movimiento['tercero'] == $data['update_tercero']) {
                     return Response()->json(['status' => 'danger', 'message' => 'Seleccione un tercero diferente para realizar la modificacion']);
                 }
             } else {
                 if ($movimiento['tercero'] == $data['update_tercero']) {
                     return Response()->json(['status' => 'danger', 'message' => 'Seleccione un tercero diferente para realizar la modificacion']);
                 }
             }
         }
         //Se preparan los datos que se llenaran por defecto en cada registro.
         $register = ['movimiento' => $data['movimiento'], 'naturaleza' => $ori_documento['naturaleza'], 'original_documento' => $data['documento'], 'original_tercero' => $movimiento['tercero'], 'deposito' => $deposito];
         //Si el documento asignado sera modificado se prepara en los datos a registrar.
         if (!empty($data['update_documento'])) {
             $register['updated_documento'] = $data['update_documento'];
         }
         //Si el tercero asignado sera modificado se prepara en los datos a registar
         if (!empty($data['update_tercero'])) {
             $register['updated_tercero'] = $data['update_tercero'];
         }
         //Almacena el registro.
         Modification::create($register);
         //Se realiza la operacion de modificacion del movimiento.
         $register = [];
         //Modifica el documento si se a establecido modificacion
         if ($data['update_documento']) {
             $register['documento'] = $up_documento['id'];
         }
         //Modifica el tercero si se a establecido modificacion
         if ($data['update_tercero']) {
             $register['tercero'] = $data['update_tercero'];
         }
         if ($ori_documento['naturaleza'] == 'entrada') {
             Entrada::where('id', $movimiento['id'])->update($register);
         } else {
             Salida::where('id', $movimiento['id'])->update($register);
         }
         return Response()->json(['status' => 'success', 'message' => 'Modificacion registrada']);
     }
 }
 /**
  * Show the form for editing the specified resource.
  *
  * @param  int  $id
  * @return Response
  */
 public function edit($id)
 {
     // cuando se modifica un procedimiento, enviamos los procesos para el encabezado y los documentos
     //  y los terceros que son la base para el llenado del detalle
     $procedimiento = \App\Procedimiento::find($id);
     $procesos = \App\Proceso::where('Compania_idCompania', '=', \Session::get('idCompania'))->lists('nombreProceso', 'idProceso');
     $idTercero = \App\Tercero::where('Compania_idCompania', '=', \Session::get('idCompania'))->lists('idTercero');
     $nombreCompletoTercero = \App\Tercero::where('Compania_idCompania', '=', \Session::get('idCompania'))->lists('nombreCompletoTercero');
     $idDocumento = \App\Documento::All()->lists('idDocumento');
     $nombreDocumento = \App\Documento::All()->lists('nombreDocumento');
     return view('procedimiento', compact('procesos', 'idTercero', 'nombreCompletoTercero', 'idDocumento', 'nombreDocumento'), ['procedimiento' => $procedimiento]);
 }
示例#10
0
 /**
  * Show the form for editing the specified resource.
  *
  * @param  int  $id
  * @return Response
  */
 public function edit($id)
 {
     $programa = \App\Programa::find($id);
     // cuando se modifica  un programa, enviamos los maestros requeridos para el encabezado
     $clasificacionriesgo = \App\ClasificacionRiesgo::All()->lists('nombreClasificacionRiesgo', 'idClasificacionRiesgo');
     $terceros = \App\Tercero::where('Compania_idCompania', '=', \Session::get('idCompania'))->lists('nombreCompletoTercero', 'idTercero');
     $companiaobjetivo = \App\CompaniaObjetivo::All()->lists('nombreCompaniaObjetivo', 'idCompaniaObjetivo');
     $idTercero = \App\Tercero::where('Compania_idCompania', '=', \Session::get('idCompania'))->lists('idTercero');
     $nombreCompletoTercero = \App\Tercero::where('Compania_idCompania', '=', \Session::get('idCompania'))->lists('nombreCompletoTercero');
     $idDocumento = \App\Documento::All()->lists('idDocumento');
     $nombreDocumento = \App\Documento::All()->lists('nombreDocumento');
     return view('programa', compact('clasificacionriesgo', 'terceros', 'companiaobjetivo', 'nombreCompletoTercero', 'idTercero', 'nombreDocumento', 'idDocumento'), ['programa' => $programa]);
 }
示例#11
0
 public function allFilter($naturaleza)
 {
     if ($naturaleza == 'entradas') {
         return Documento::orderBy('id', 'desc')->where('naturaleza', 'entrada')->get(['id', 'nombre', 'abreviatura', 'tipo']);
     } elseif ($naturaleza == 'salidas') {
         return Documento::orderBy('id', 'desc')->where('naturaleza', 'salida')->get(['id', 'nombre', 'abreviatura', 'tipo']);
     } else {
         return Documento::orderBy('id', 'desc')->get(['id', 'nombre', 'abreviatura', 'tipo']);
     }
 }
示例#12
0
 public function getSalida($id)
 {
     $deposito = Auth::user()->deposito;
     $salida = Salida::where('id', $id)->where('deposito', $deposito)->firstOrFail();
     //Obtiene el tipo de documento de la salida
     $tipo = Documento::where('id', $salida->documento)->value('tipo');
     //Campos a consultar
     $select = ["salidas.codigo", "users.email as usuario", "salidas.id", "documentos.nombre as concepto", "depositos.nombre as deposito", DB::raw('DATE_FORMAT(salidas.created_at, "%d/%m/%Y") as fecha'), DB::raw('DATE_FORMAT(salidas.created_at, "%H:%i:%s") as hora')];
     //Consulta base para la salidas
     $query = DB::table('salidas')->where('salidas.id', $id)->join('users', 'salidas.usuario', '=', 'users.id')->join('depositos', 'salidas.deposito', '=', 'depositos.id')->join('documentos', 'salidas.documento', '=', 'documentos.id')->select($select);
     /**
      *Une table para buscar el nombre del tercero, segun el
      *tipo del documento de la salida y lo selecciona.
      */
     switch ($tipo) {
         case 'servicio':
             $query->join('departamentos', 'salidas.tercero', '=', 'departamentos.id')->addSelect('departamentos.nombre as tercero');
             break;
         case 'proveedor':
             $query->join('provedores', 'salidas.tercero', '=', 'provedores.id')->addSelect('provedores.nombre as tercero');
             break;
         case 'deposito':
             $query->join('depositos as depositoTercero', 'salidas.tercero', '=', 'depositoTercero.id')->addSelect('depositoTercero.nombre as tercero');
             break;
         case 'interno':
             $query->join('depositos as depositoTercero', 'salidas.tercero', '=', 'depositoTercero.id')->addSelect('depositoTercero.nombre as tercero');
             break;
     }
     //Realiza la consulta
     $salida = $query->first();
     $insumos = DB::table('insumos_salidas')->where('insumos_salidas.salida', $id)->join('insumos', 'insumos_salidas.insumo', '=', 'insumos.id')->select('insumos.codigo', 'insumos.descripcion', 'insumos_salidas.solicitado', 'insumos_salidas.despachado')->get();
     $view = \View::make('reportes.pdfs.salida', compact('salida', 'insumos'))->render();
     $pdf = \App::make('dompdf.wrapper');
     $pdf->loadHTML($view);
     return $pdf->stream('Pro-Forma de pedido');
 }
示例#13
0
 public function registrar(Request $request)
 {
     $data = $request->all();
     $usuario = Auth::user()->id;
     $deposito = Auth::user()->deposito;
     $validator = Validator::make($data, ['documento' => 'required|numeric|documento_entrada', 'tercero' => 'numeric|tercero:documento', 'insumos' => 'required|insumos'], $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'];
         //Codigo para la entrada
         $code = $this->generateCode('E', $deposito);
         $entrada = Entrada::create(['codigo' => $code, 'tercero' => $data['tercero'], 'documento' => $data['documento'], 'usuario' => $usuario, 'deposito' => $deposito])['id'];
         foreach ($insumos as $insumo) {
             $existencia = inventarioController::almacenaInsumo($insumo['id'], $insumo['cantidad'], $deposito, 'entrada', $entrada);
             $lote = isset($insumo['lote']) && !empty($insumo['lote']) ? $insumo['lote'] : NULL;
             $fecha = isset($insumo['fecha']) && !empty($insumo['fecha']) ? $insumo['fecha'] : NULL;
             Insumos_entrada::create(['entrada' => $entrada, 'insumo' => $insumo['id'], 'cantidad' => $insumo['cantidad'], 'lote' => $lote, 'fechaV' => $fecha, 'deposito' => $deposito, 'existencia' => $existencia]);
         }
         return Response()->json(['status' => 'success', 'menssage' => 'Entrada completada satisfactoriamente', 'codigo' => $code]);
     }
 }
示例#14
0
 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]);
         }
     }
 }
示例#15
0
<?php

$modificar = $_GET['modificar'];
$eliminar = $_GET['eliminar'];
$visibleM = '';
$visibleE = '';
if ($modificar == 1) {
    $visibleM = 'inline-block;';
} else {
    $visibleM = 'none;';
}
if ($eliminar == 1) {
    $visibleE = 'inline-block;';
} else {
    $visibleE = 'none;';
}
$documento = \App\Documento::All();
$row = array();
foreach ($documento as $key => $value) {
    $row[$key][] = '<a href="documento/' . $value['idDocumento'] . '/edit">' . '<span class="glyphicon glyphicon-pencil" style = "display:' . $visibleM . '"></span>' . '</a>&nbsp;' . '<a href="documento/' . $value['idDocumento'] . '/edit?accion=eliminar">' . '<span class="glyphicon glyphicon-trash"  style = "display:' . $visibleE . '"></span>' . '</a>';
    $row[$key][] = $value['idDocumento'];
    $row[$key][] = $value['codigoDocumento'];
    $row[$key][] = $value['nombreDocumento'];
}
$output['aaData'] = $row;
echo json_encode($output);
示例#16
0
 /**
  * Bootstrap any application services.
  *
  * @return void
  */
 public function boot()
 {
     /**
      * Custom validation rules
      */
     Validator::extend('alpha_spaces', function ($attribute, $value) {
         return preg_match('/^[\\pL\\s]+$/u', $value);
     });
     Validator::extend('cedula', function ($attribute, $value) {
         return preg_match('/^([0-9]{6,8})$/', $value);
     });
     Validator::extend('rif', function ($attribute, $value) {
         return preg_match('/^([J,G,N]-([0-9]{8,12}))$/', $value);
     });
     Validator::extend('equal_provedor', function ($attribute, $value, $parameters) {
         $orden = Input::get($parameters[0]);
         $entrada = Entrada::where('orden', $orden)->value('provedor');
         if (!$entrada) {
             return true;
         } else {
             if ($value != $entrada) {
                 return false;
             }
             return true;
         }
     });
     Validator::extend('diff_provedor', function ($attribute, $value, $parameters) {
         if (empty($value)) {
             return true;
         } else {
             $id = Input::get($parameters[0]);
             $entrada = Entrada::where('id', $id)->value('provedor');
             if ($value == $entrada) {
                 return false;
             }
             return true;
         }
     });
     Validator::extend('diff_orden', function ($attribute, $value, $parameters) {
         if (empty($value)) {
             return true;
         } else {
             $id = Input::get($parameters[0]);
             $entrada = Entrada::where('id', $id)->value('orden');
             if ($value == $entrada) {
                 return false;
             }
             return true;
         }
     });
     Validator::extend('diff_departamento', function ($attribute, $value, $parameters) {
         $id = Input::get($parameters[0]);
         $salida = Salida::where('id', $id)->value('departamento');
         if ($value == $salida) {
             return false;
         }
         return true;
     });
     Validator::extend('insumos', function ($attribute, $value) {
         if (empty($value) || !is_array($value)) {
             return false;
         } else {
             foreach ($value as $insumo) {
                 if (!isset($insumo['cantidad']) || !isset($insumo['id']) || $insumo['cantidad'] <= 0 || !Insumo::where('id', $insumo['id'])->first()) {
                     return false;
                 }
             }
         }
         return true;
     });
     Validator::extend('insumos_salida', function ($attribute, $value) {
         if (empty($value) || !is_array($value)) {
             return false;
         } else {
             foreach ($value as $insumo) {
                 if (!isset($insumo['solicitado']) || !isset($insumo['despachado']) || !isset($insumo['id']) || $insumo['solicitado'] <= 0 || $insumo['despachado'] <= 0 || $insumo['solicitado'] < $insumo['despachado'] || !Insumo::withTrashed()->where('id', $insumo['id'])->first()) {
                     return false;
                 }
             }
         }
         return true;
     });
     Validator::extend('insumos_alarmas', function ($attribute, $value) {
         if (empty($value) || !is_array($value)) {
             return false;
         } else {
             foreach ($value as $insumo) {
                 if (!isset($insumo['id']) || !isset($insumo['min']) || !isset($insumo['med'])) {
                     return false;
                 }
                 if ($insumo['min'] <= 0 || $insumo['med'] <= 0 || $insumo['min'] >= $insumo['med']) {
                     return false;
                 }
             }
         }
         return true;
     });
     Validator::extend('insumos_validate_e', function ($attribute, $value) {
         foreach ($value as $insumo) {
             if (!isset($insumo['cantidad'])) {
                 continue;
             }
             $originalI = Insumos_entrada::where('id', $insumo['id'])->first();
             if (!isset($insumo['id']) || !$originalI || $originalI['cantidad'] == $insumo['cantidad'] || $insumo['cantidad'] < 0) {
                 return false;
             }
         }
         return true;
     });
     Validator::extend('insumos_validate_s', function ($attribute, $value) {
         foreach ($value as $insumo) {
             if (!isset($insumo['despachado'])) {
                 continue;
             }
             $originalI = insumos_salida::where('id', $insumo['id'])->first();
             if (!isset($insumo['id']) || !$originalI || $insumo['despachado'] == $originalI['despachado'] || $insumo['despachado'] < 0) {
                 return false;
             }
             if (!isset($insumo['solicitado'])) {
                 if ($originalI['solicitado'] < $insumo['despachado']) {
                     return false;
                 }
             } else {
                 if (!is_int($insumo['solicitado']) || $insumo['solicitado'] < 0 || $insumo['solicitado'] == $originalI['solicitado']) {
                     return false;
                 }
             }
         }
         return true;
     });
     Validator::extend('one_insumo_entrada', function ($attribute, $value, $parameters) {
         $entrada = Input::get($parameters[0]);
         $insumos = Insumos_entrada::where('entrada', $entrada)->get();
         if ($insumos->count() == 1 && isset($value[0]['cantidad']) && $value[0]['cantidad'] == 0) {
             return false;
         }
         return true;
     });
     Validator::extend('one_insumo_salida', function ($attribute, $value, $parameters) {
         $salida = Input::get($parameters[0]);
         $insumos = Insumos_salida::where('salida', $salida)->get();
         if ($insumos->count() == 1 && isset($value[0]['despachado']) && $value[0]['despachado'] == 0) {
             return false;
         }
         return true;
     });
     Validator::extend('insumo', function ($attribute, $value) {
         if (!Insumo::where('id', $value)->first()) {
             return false;
         }
         return true;
     });
     Validator::extend('insumo_with_daleted', function ($attribute, $value) {
         if (!insumo::withTrashed()->where('id', $value)->first()) {
             return false;
         }
         return true;
     });
     Validator::extend('deposito', function ($attribute, $value) {
         if (!Deposito::where('id', $value)->first()) {
             return false;
         }
         return true;
     });
     Validator::extend('date_limit_current', function ($attribute, $value) {
         $value = str_replace('/', '-', $value);
         if (strtotime($value) > strtotime(date("Y-m-d"))) {
             return false;
         }
         return true;
     });
     Validator::extend('insumos_ids_array', function ($attribute, $value) {
         if (!is_array($value)) {
             return false;
         }
         foreach ($value as $v) {
             if (!insumos_salida::where('id', $v)->first()) {
                 return false;
             }
         }
         return true;
     });
     Validator::extend('documento_salida', function ($attribute, $value) {
         $documento = Documento::where('id', $value)->first();
         if (!$documento) {
             return false;
         }
         return $documento->naturaleza == 'salida';
     });
     Validator::extend('documento_entrada', function ($attribute, $value) {
         $documento = Documento::where('id', $value)->first();
         if (!$documento) {
             return false;
         }
         return $documento->naturaleza == 'entrada';
     });
     Validator::extend('tercero', function ($attribute, $value, $parameters) {
         $documento = Input::get($parameters[0]);
         $tipo = Documento::where('id', $documento)->value('tipo');
         if ($tipo == 'interno') {
             return true;
         }
         if ($tipo == 'proveedor') {
             return Provedore::where('id', $value)->first();
         }
         if ($tipo == 'servicio') {
             return Departamento::where('id', $value)->first();
         }
         if ($tipo == 'deposito') {
             $deposito = Auth::user()->deposito;
             return Deposito::where('id', $value)->where('id', '!=', $deposito)->first();
         }
     });
     Validator::extend('permissions', function ($attribute, $value) {
         if (!is_array($value)) {
             return false;
         } else {
             foreach ($value as $permiso) {
                 if (!Permission::where('id', $permiso)->first()) {
                     return false;
                 }
             }
         }
         return true;
     });
     Validator::extend('rol', function ($attribute, $value) {
         return Role::where('id', $value)->first();
     });
     Validator::extend('movimiento', function ($attribute, $value, $parameters) {
         $documento = Input::get($parameters[0]);
         $documento = Documento::where('id', $documento)->value('id');
         $deposito = Auth::user()->deposito;
         if (Entrada::where('id', $value)->where('documento', $documento)->where('deposito', $deposito)->first()) {
             return true;
         } else {
             if (Salida::where('id', $value)->where('documento', $documento)->where('deposito', $deposito)->first()) {
                 return true;
             } else {
                 return false;
             }
         }
     });
     Validator::extend('documento', function ($attribute, $value) {
         return Documento::where('id', $value)->first();
     });
     Validator::extend('documento_same_nature', function ($attribute, $value, $parameters) {
         $id = Input::get($parameters[0]);
         $ori_naturaleza = Documento::where('id', $id)->value('naturaleza');
         $up_naturaleza = Documento::where('id', $value)->value('naturaleza');
         return $ori_naturaleza == $up_naturaleza;
     });
     Validator::extend('document_not_equal', function ($attribute, $value, $parameters) {
         $id = Input::get($parameters[0]);
         $ori_documento = Documento::where('id', $id)->value('id');
         $up_documento = Documento::where('id', $value)->value('id');
         return !($ori_documento == $up_documento);
     });
 }
 public function store(Request $req)
 {
     session_start();
     $user = $_SESSION['nameusuario'];
     $iduser = Usuario::getIdUser($_SESSION['usuarioespol']);
     $documentos = Documento::ObtenerMisDocus($iduser);
     if (usuario_documento::userDocuExists($req->userChosen, $req->docChosen) == 0) {
         $relacionUsDoc = new usuario_documento();
         $relacionUsDoc->usuario = $req->userChosen;
         $relacionUsDoc->documento = $req->docChosen;
         $relacionUsDoc->save();
         echo "<script>alert('El documento ha sido compartido con exito!! ')</script>";
         return view('principal', ['user' => $user, 'docs' => $documentos]);
     } else {
         echo '<script language="javascript">';
         echo 'alert("El documento ya esta compartido con el usuario.")';
         echo '</script>';
         return view('principal', ['user' => $user, 'docs' => $documentos]);
     }
 }