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); } }