public function return_num_doc_responsable_cn()
 {
     if (!Request::ajax() || !Auth::check()) {
         return Response::json(array('success' => false), 200);
     }
     $id = Auth::id();
     $data["inside_url"] = Config::get('app.inside_url');
     $data["user"] = Session::get('user');
     if ($data["user"]->idrol == 1 || $data["user"]->idrol == 2 || $data["user"]->idrol == 3 || $data["user"]->idrol == 4) {
         // Check if the current user is the "System Admin"
         $data = Input::get('selected_id');
         if ($data != "vacio") {
             $responsable = User::searchPersonalByNumeroDoc($data)->get();
         } else {
             $reporte = null;
         }
         return Response::json(array('success' => true, 'reporte' => $responsable), 200);
     } else {
         return Response::json(array('success' => false), 200);
     }
 }
 public function submit_edit_rep_instalacion()
 {
     if (Auth::check()) {
         $data["inside_url"] = Config::get('app.inside_url');
         $data["user"] = Session::get('user');
         // Verifico si el usuario es un Webmaster
         if ($data["user"]->idrol == 1 || $data["user"]->idrol == 2 || $data["user"]->idrol == 3) {
             // Validate the info, create rules for the inputs
             $attributes = array('idproveedor' => 'Proveedor', 'fecha' => 'Fecha', 'codigo_compra' => 'Código de Compra', 'idarea' => 'Área', 'numero_documento1' => 'N° Documento de Identidad', 'descripcion' => 'Descripción');
             $messages = array();
             $rules = array('idproveedor' => 'required', 'fecha' => 'required', 'idarea' => 'required', 'numero_documento1' => 'required', 'codigo_compra' => 'required', 'descripcion' => 'max:200|alpha_num_spaces_slash_dash_enter');
             // Run the validation rules on the inputs from the form
             $validator = Validator::make(Input::all(), $rules, $messages, $attributes);
             // If the validator fails, redirect back to the form
             $reporte_instalacion_id = Input::get('reporte_instalacion_id');
             $url = "rep_instalacion/edit_rep_instalacion" . "/" . $reporte_instalacion_id;
             if ($validator->fails()) {
                 return Redirect::to($url)->withErrors($validator)->withInput(Input::all());
             } else {
                 $existeReporteEntornoConcluido = ReporteInstalacion::searchReporteEntornoConcluidoByCodigoCompra(Input::get('codigo_compra'))->get();
                 $reporte_instalacion_id = Input::get('reporte_instalacion_id');
                 $reporte = ReporteInstalacion::find($reporte_instalacion_id);
                 if ($reporte->idtipo_reporte_instalacion == 2 && !$existeReporteEntornoConcluido->isEmpty()) {
                     $details_tarea = Input::get('details_tarea');
                     $details_estado = Input::get('details_estado');
                     $cant = count($details_tarea);
                     if ($cant > 0) {
                         $reporte_instalacion_id = Input::get('reporte_instalacion_id');
                         $url = "rep_instalacion/edit_rep_instalacion" . "/" . $reporte_instalacion_id;
                         $reporte = ReporteInstalacion::find($reporte_instalacion_id);
                         $reporte->descripcion = Input::get('descripcion');
                         $reporte->fecha = date('Y-m-d H:i:s', strtotime(Input::get('fecha')));
                         $reporte->idarea = Input::get('idarea');
                         $reporte->idproveedor = Input::get('idproveedor');
                         $reporte->idestado = 1;
                         $id_usuario_responsable = Input::get('numero_documento1');
                         $usuario_responsable = User::searchPersonalByNumeroDoc($id_usuario_responsable)->get();
                         if ($usuario_responsable->isEmpty()) {
                             Session::flash('error', 'Usuario revisión no existe.');
                             return Redirect::to($url)->withInput(Input::all());
                         } else {
                             $reporte->id_responsable = $usuario_responsable[0]->id;
                         }
                         if (Input::get('flag_doc1') == 0) {
                             Session::flash('error', 'Certficado de Funcionalidad no adjuntado correctamente.');
                             return Redirect::to($url)->withInput(Input::all());
                         }
                         if (Input::get('flag_doc2') == 0) {
                             Session::flash('error', 'Contrato de Proveedor no adjuntado correctamente.');
                             return Redirect::to($url)->withInput(Input::all());
                         }
                         if (Input::get('flag_doc3') == 0) {
                             Session::flash('error', 'Manual de Funcionalidad no adjuntado correctamente.');
                             return Redirect::to($url)->withInput(Input::all());
                         }
                         if (Input::get('flag_doc4') == 0) {
                             Session::flash('error', 'Término de referencia no adjuntado correctamente.');
                             return Redirect::to($url)->withInput(Input::all());
                         }
                         $reporte->save();
                         DetalleReporteInstalacion::deleteDetalleByIdReporteInstalacion($reporte_instalacion_id)->forcedelete();
                         $idReporte = $reporte->idreporte_instalacion;
                         for ($i = 0; $i < $cant; $i++) {
                             $detalle_reporte_instalacion = new DetalleReporteInstalacion();
                             $detalle_reporte_instalacion->nombre_tarea = $details_tarea[$i];
                             if ($details_estado[$i] == "Realizado") {
                                 $estado_tarea = 1;
                             } else {
                                 $estado_tarea = 0;
                             }
                             $detalle_reporte_instalacion->tarea_realizada = $estado_tarea;
                             $detalle_reporte_instalacion->idreporte_instalacion = $idReporte;
                             $detalle_reporte_instalacion->save();
                         }
                         $codigo_archivamiento_cert_funcionalidad = Input::get('num_doc_relacionado1');
                         $documento_nuevo = Documento::searchDocumentoByCodigoArchivamiento($codigo_archivamiento_cert_funcionalidad)->get();
                         $documento_nuevo = $documento_nuevo[0];
                         $documento_actual = Documento::searchDocumentoCertificadoFuncionalidadByIdReporteInstalacion($reporte->idreporte_instalacion)->get()[0];
                         if ($documento_actual->iddocumento != $documento_nuevo->iddocumento) {
                             //quiere decir que es nuevo documento
                             $documento_nuevo->idreporte_instalacion = $reporte->idreporte_instalacion;
                             $documento_nuevo->save();
                             $documento_actual->idreporte_instalacion = null;
                             $documento_actual->save();
                         }
                         $codigo_archivamiento_contrato = Input::get('num_doc_relacionado2');
                         $documento_nuevo = Documento::searchDocumentoByCodigoArchivamiento($codigo_archivamiento_contrato)->get();
                         $documento_nuevo = $documento_nuevo[0];
                         $documento_actual = Documento::searchDocumentoContratoByIdReporteInstalacion($reporte->idreporte_instalacion)->get()[0];
                         if ($documento_actual->iddocumento != $documento_nuevo->iddocumento) {
                             //quiere decir que es nuevo documento
                             $documento_nuevo->idreporte_instalacion = $reporte->idreporte_instalacion;
                             $documento_nuevo->save();
                             $documento_actual->idreporte_instalacion = null;
                             $documento_actual->save();
                         }
                         $codigo_archivamiento_manual = Input::get('num_doc_relacionado3');
                         $documento_nuevo = Documento::searchDocumentoByCodigoArchivamiento($codigo_archivamiento_manual)->get();
                         $documento_nuevo = $documento_nuevo[0];
                         $documento_actual = Documento::searchDocumentoManualByIdReporteInstalacion($reporte->idreporte_instalacion)->get()[0];
                         if ($documento_actual->iddocumento != $documento_nuevo->iddocumento) {
                             //quiere decir que es nuevo documento
                             $documento_nuevo->idreporte_instalacion = $reporte->idreporte_instalacion;
                             $documento_nuevo->save();
                             $documento_actual->idreporte_instalacion = null;
                             $documento_actual->save();
                         }
                         $codigo_archivamiento_tdr = Input::get('num_doc_relacionado4');
                         $documento_nuevo = Documento::searchDocumentoByCodigoArchivamiento($codigo_archivamiento_tdr)->get();
                         $documento_nuevo = $documento_nuevo[0];
                         $documento_actual = Documento::searchDocumentoTdRByIdReporteInstalacion($reporte->idreporte_instalacion)->get()[0];
                         if ($documento_actual->iddocumento != $documento_nuevo->iddocumento) {
                             //quiere decir que es nuevo documento
                             $documento_nuevo->idreporte_instalacion = $reporte->idreporte_instalacion;
                             $documento_nuevo->save();
                             $documento_actual->idreporte_instalacion = null;
                             $documento_actual->save();
                         }
                         Session::flash('message', 'Se registró correctamente el Reporte de Instalación.');
                         return Redirect::to($url);
                     } else {
                         Session::flash('error', 'Ingrese por lo menos una tarea.');
                         return Redirect::to($url)->withInput(Input::all());
                     }
                 } else {
                     if ($reporte->idtipo_reporte_instalacion == 1) {
                         $codigo_compra = Input::get('codigo_compra');
                         $area = Input::get('idarea');
                         $proveedor = Input::get('idproveedor');
                         $fecha = date('Y-m-d H:i:s', strtotime(Input::get('fecha')));
                         $descripcion = Input::get('descripcion');
                         $numero_documento = Input::get('numero_documento1');
                         $usuario_responsable = User::searchPersonalByNumeroDoc($numero_documento)->get();
                         if ($usuario_responsable->isEmpty()) {
                             Session::flash('error', 'Usuario revisión no existe.');
                             return Redirect::to($url)->withInput(Input::all());
                         } else {
                             $reporte->id_responsable = $usuario_responsable[0]->id;
                         }
                         $reporte->idarea = $area;
                         $reporte->idproveedor = $proveedor;
                         $reporte->fecha = $fecha;
                         $reporte->codigo_compra = $codigo_compra;
                         $reporte->descripcion = $descripcion;
                         $details_tarea = Input::get('details_tarea');
                         $details_estado = Input::get('details_estado');
                         $cant = count($details_tarea);
                         if ($cant > 0) {
                             DetalleReporteInstalacion::deleteDetalleByIdReporteInstalacion($reporte_instalacion_id)->forcedelete();
                             $idReporte = $reporte->idreporte_instalacion;
                             for ($i = 0; $i < $cant; $i++) {
                                 $detalle_reporte_instalacion = new DetalleReporteInstalacion();
                                 $detalle_reporte_instalacion->nombre_tarea = $details_tarea[$i];
                                 if ($details_estado[$i] == "Realizado") {
                                     $estado_tarea = 1;
                                 } else {
                                     $estado_tarea = 0;
                                 }
                                 $detalle_reporte_instalacion->tarea_realizada = $estado_tarea;
                                 $detalle_reporte_instalacion->idreporte_instalacion = $idReporte;
                                 $detalle_reporte_instalacion->save();
                             }
                         }
                         $reporte->save();
                         $url = "rep_instalacion/edit_rep_instalacion" . "/" . $reporte_instalacion_id;
                         return Redirect::to($url);
                     } else {
                         Session::flash('error', 'Solo se puede crear Reporte de Equipo Funcional si ha sido creado el Reporte de Entorno Concluido');
                         return Redirect::to($url)->withInput(Input::all());
                     }
                 }
             }
         } else {
             return View::make('error/error', $data);
         }
     } else {
         return View::make('error/error', $data);
     }
 }