EVOLUTION-MANAGER
Edit File: adminTransparenciaController.php
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Storage; use App\lotaip_anio; use App\lotaip_mes; use App\lotaip_literal; use File; use View; use Session; use Redirect; use Carbon\Carbon; use Response; use Log; class adminTransparenciaController extends Controller { /** * Show the application dashboard. * * @return \Illuminate\Http\Response */ public function __construct() { $this->middleware('auth'); } public function index() { return View::make('admin/transparencia/index'); } public function crear() { $lotaip_anio = lotaip_anio::orderBy('anio', 'desc')->get(); $lotaip_mes= lotaip_mes::all(); $lotaip_literal= lotaip_literal::orderBy('literal', 'asc')->get(); /* $literales= ['Literal A1.- Organigrama de la Institución',' Literal A2.- Base Legal que rige a la institución',' Literal A3.- Regulaciones y procedimientos internos',' Literal A4.- Metas y objetivos unidades administrativas',' Literal B1.- Directorio de la Institución',' Literal B2.- Distributivo del Personal',' Literal C.- Remuneración mensual por puesto',' Literal D.- Servicios que ofrece y la forma de acceder a ellos',' Literal E.- Texto Íntegro de contratos colectivos vigentes',' Literal F1.- Formularios o formatos de solicitudes',' Literal F2.- Solicitud de acceso a la información pública',' Literal H.- Resultados de Auditorías Internas y Gubernamentales',' Literal G.- Presupuesto de la Institución.',' Literal I.- Procesos de contrataciones',' Literal J.- Empresas y personas que han incumplido contratos',' Literal K.- Planes y programas en ejecución',' Literal L.- Contratos de crédito externos o internos',' Literal M.- Mecanismos de rendición de cuentas a la ciudadanía',' Literal N.- Viáticos, Informes De Trabajo y Justificativos',' Literal O.- Responsable de atender la información pública',' Literal S.- Organismos seccionales, resoluciones, actas y planes de desarrollo.']; $array_num = count($literales); $meses = ['ENERO','FEBRERO','MARZO','ABRIL','MAYO','JUNIO','JULIO','AGOSTO','SEPTIEMBRE','OCTUBRE','NOVIEMBRE','DICIEMBRE']; $array_mes = count($meses); $anios = lotaip_anio::all(); $lotaip_literalxx= lotaip_literal::all(); foreach ($lotaip_literalxx as $key => $lite) { $lite->delete(); } foreach ($lotaip_mes as $key => $mes) { $mes->delete(); } foreach ($anios as $key => $anio) { $anio->delete(); } $ini_anio = "2017"; for ($i=0; $i < 3; $i++) { $anio = new lotaip_anio(); $anio->anio = $ini_anio; $anio->save(); for ($j=0; $j < $array_mes; $j++) { if ($j < 9) { $mess = new lotaip_mes(); $mess->lotaip_anio_id = $anio->id; $mess->mes = $meses[$j]; $mess->save(); for ($k=0; $k < $array_num; $k++) { $literales[$k]; $parte_n = explode(".-",$literales[$k]); $texto = trim($parte_n[1]) ; $parte_n2 = explode(" ",trim($parte_n[0])); $letra = $parte_n2[1]; $lotaip_literalx = new lotaip_literal(); $lotaip_literalx->literal = $texto; $lotaip_literalx->letra = $letra; $lotaip_literalx->lotaip_mes_id = $mess->id; $lotaip_literalx->save(); } } } $ini_anio++; } $literales= ['Literal A1.- Organigrama de la Institución',' Literal A2.- Base Legal que rige a la institución',' Literal A3.- Regulaciones y procedimientos internos',' Literal A4.- Metas y objetivos unidades administrativas',' Literal B1.- Directorio de la Institución',' Literal B2.- Distributivo del Personal',' Literal C.- Remuneración mensual por puesto',' Literal D.- Servicios que ofrece y la forma de acceder a ellos',' Literal E.- Texto Íntegro de contratos colectivos vigentes',' Literal F1.- Formularios o formatos de solicitudes',' Literal F2.- Solicitud de acceso a la información pública',' Literal H.- Resultados de Auditorías Internas y Gubernamentales',' Literal G.- Presupuesto de la Institución.',' Literal I.- Procesos de contrataciones',' Literal J.- Empresas y personas que han incumplido contratos',' Literal K.- Planes y programas en ejecución',' Literal L.- Contratos de crédito externos o internos',' Literal M.- Mecanismos de rendición de cuentas a la ciudadanía',' Literal N.- Viáticos, Informes De Trabajo y Justificativos',' Literal O.- Responsable de atender la información pública',' Literal S.- Organismos seccionales, resoluciones, actas y planes de desarrollo.']; $array_num = count($literales); $meses = ['ENERO','FEBRERO','MARZO','ABRIL','MAYO','JUNIO','JULIO','AGOSTO','SEPTIEMBRE','OCTUBRE','NOVIEMBRE','DICIEMBRE']; $array_mes = count($meses); // $lop_mes = lotaip_literal::where('lotaip_mes_id',100)->get(); for ($k=0; $k < $array_num; $k++) { $literales[$k]; $parte_n = explode(".-",$literales[$k]); $texto = trim($parte_n[1]) ; $parte_n2 = explode(" ",trim($parte_n[0])); $letra = $parte_n2[1]; if ($letra != 'G' && $letra != 'I' && $letra != 'N') { // $lop_mes = lotaip_literal::where('lotaip_mes_id',100)->where('JUNIO')->where('letra',$letra)->first(); // $lop_mes->delete(); // $lotaip_literalx = new lotaip_literal(); // $lotaip_literalx->literal = $texto; // $lotaip_literalx->letra = $letra; // $lotaip_literalx->lotaip_mes_id = 99; // $lotaip_literalx->save(); } // if ($letra != 'G' && $letra != 'I' && $letra != 'N' && $letra != 'A4' && $letra != 'D' && $letra != 'F1' && $letra != 'K'){ // } }*/ $date = Carbon::now(); $anioActual = $date->year; $inicio = 2012; $anios = ($anioActual - $inicio)+1; $arrayAnios[]=$inicio; for ($i=0; $i < $anios ; $i++) { # code... if ($inicio!= 2012) { $arrayAnios[]=$inicio; } $inicio++; }; //dd($lotaip_anio); return View::make('admin/transparencia/crear',compact('lotaip_anio','lotaip_mes','lotaip_literal','arrayAnios')); } public function nuevoanio() { $date = Carbon::now(); $anioActual = $date->year; $inicio = 2012; $anios = ($anioActual - $inicio)+1; $arrayAnios[]=$inicio; for ($i=0; $i < $anios ; $i++) { # code... if ($inicio!= 2012) { $arrayAnios[]=$inicio; } $inicio++; }; return View::make('admin/transparencia/modal/nuevoanio',compact('arrayAnios')); } // public function nuevomes($id) // { // $idAnio = $id; // //lotaip_anio::where("anio","=",$request->anio)->firts(); // return View::make('admin/transparencia/modal/nuevomes',compact('idAnio')); // } public function nuevo_mes_store(Request $request) { try { $transparencia = lotaip_anio::join('lotaip_mes','lotaip_anio.id','=','lotaip_mes.lotaip_anio_id')->where("lotaip_anio.id",$request->id_anio)->where('lotaip_mes.mes',$request->mes)->first(); if($transparencia==null){ $lotaip_mes = new lotaip_mes(); $lotaip_mes->mes =$request->mes; $lotaip_mes->orden =$request->orden; $lotaip_mes->lotaip_anio_id = $request->id_anio; $lotaip_mes->save(); return 1; }else{ return 0; } } catch (Exception $e) { return 0; } } // public function nuevoliteral($id) // { // $idMes = $id; // return View::make('admin/transparencia/modal/nuevoliteral',compact('idMes')); // } public function nuevo_literal_store(Request $request) { ini_set('max_execution_time',3000); $file = $request->file('file_transp'); // $transparencia = lotaip_anio::join('lotaip_mes','lotaip_anio.id','=','lotaip_mes.lotaip_anio_id')->where("lotaip_mes.id",$request->id_mes)->first(); $destinationPath = 'pdfs'; try { if ($file) { $lotaip_literal = new lotaip_literal(); $lotaip_literal->literal =$request->nombre_literal; $lotaip_literal->letra =$request->letra_literal; $lotaip_literal->lotaip_mes_id = $request->id_mes; $lotaip_literal->save(); $nombre_pdf = 'Literal-'.$request->letra_literal.'-'.$request->nombre_literal.'-'.$lotaip_literal->id.'.'.$file->getClientOriginalExtension(); $path = Storage::putFileAs($destinationPath,$file,$nombre_pdf); $pdf = Storage::get($path); Storage::disk('google')->put($nombre_pdf, $pdf,'public'); Storage::delete($path); $url = Storage::disk('google')->url($nombre_pdf); // $url = Storage::url('file.jpg'); $lotaip_literal->archivo = $url; $lotaip_literal->nombre_archivo = $nombre_pdf; $lotaip_literal->save(); return $lotaip_literal; } // $nombre=sanear_string($file->getClientOriginalName()).$file->getClientOriginalExtension(); // $file->move($destinationPath,sanear_string($file->getClientOriginalName())); // Storage::disk('google')->put(nombre_archivo($file->getClientOriginalName()), $file); // Storage::disk('google')->putFileAs('', $file, $nombre); // Storage::disk('google')->put('test.txt', 'Hello World'); // $path = $file->store($file->getClientOriginalName(), 'google'); } catch (Exception $e) { return 0; } // return Redirect::to('administracion/transparencia/crear'); /* { Display File Name echo 'File Name: '.$file->getClientOriginalName(); $file->getClientOriginalExtension() echo '<br>'; } */ } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function guardar_anio(Request $request) { $lotaip_anio = lotaip_anio::where("anio","=",$request->anio)->first(); if ($lotaip_anio== null) { $lotaip_anio = new lotaip_anio(); $lotaip_anio->anio=$request->anio; $lotaip_anio->save(); $anios=App\lotaip_anio::all()->sortBy('anio'); return $anios; }else{ return 0; } } // public function editaranio() // { // $date = Carbon::now(); // $anioActual = $date->year; // $inicio = 2012; // $anios = ($anioActual - $inicio)+1; // $arrayAnios[]=$inicio; // for ($i=0; $i < $anios ; $i++) { // # code... // if ($inicio!= 2012) { // $arrayAnios[]=$inicio; // } // $inicio++; // }; // return View::make('admin/transparencia/modal/editaranio',compact('arrayAnios')); // } // public function editarmes($idanio,$id) // { // $idAnio = $idanio; // $lotaip_mes = lotaip_mes::find($id); // //lotaip_anio::where("anio","=",$request->anio)->firts(); // return View::make('admin/transparencia/modal/editarmes',compact('idAnio','lotaip_mes')); // } // public function editar_mes_store(Request $request, $id) // { // $transparencia = lotaip_anio::join('lotaip_mes','lotaip_anio.id','=','lotaip_mes.lotaip_anio_id')->where("lotaip_anio.id",$request->id_anio)->where('lotaip_mes.mes',$request->mes)->first(); // if ($transparencia==null) { // $lotaip_mes = lotaip_mes::find($id); // $lotaip_mes->mes =$request->mes; // $lotaip_mes->lotaip_anio_id = $request->id_anio; // $lotaip_mes->save(); // }else{ // Session::flash('message','ese mes ya se encuetrea registrado'); // } // return Redirect::to('administracion/transparencia/crear'); // } public function editarliteral($id) { $lotaip_literal = lotaip_literal::find($id); return $lotaip_literal; } public function elimiar_archivo_literal($id) { $lotaip_literal = lotaip_literal::find($id); $del = Storage::disk('google')->delete($lotaip_literal->nombre_archivo); $lotaip_literal->archivo = null; $lotaip_literal->save(); return $lotaip_literal; } public function editar_literal_store(Request $request) { ini_set('max_execution_time',3000); $file = $request->file('file_transp'); $lotaip_literal = lotaip_literal::find($request->id_literal); try { if ($file) { // $nombre=sanear_string($file->getClientOriginalName()); $destinationPath = 'pdfs'; // $file->move($destinationPath,sanear_string($file->getClientOriginalName())); $nombre_pdf = 'Literal-'.$request->letra_literal.'-'.$request->nombre_literal.'-'.$lotaip_literal->id.'.'.$file->getClientOriginalExtension(); // $nombre_pdf = $file->getClientOriginalName(); Storage::disk('google')->delete($lotaip_literal->nombre_archivo); $path = Storage::putFileAs($destinationPath,$file,$nombre_pdf); $pdf = Storage::get($path); Storage::disk('google')->put($nombre_pdf, $pdf,'public'); Storage::delete($path); $url = Storage::disk('google')->url($nombre_pdf); $lotaip_literal->archivo = $url; $lotaip_literal->nombre_archivo = $nombre_pdf; } $lotaip_literal->literal =$request->nombre_literal; $lotaip_literal->letra =$request->letra_literal; // $lotaip_literal->lotaip_mes_id = $request->id_mes; $lotaip_literal->save(); return $lotaip_literal; } catch (Exception $e) { return 0; } } // public function destroyAnio($id) // { // $idAnio = $id; // return View::make('admin/transparencia/modal/eliminaranio',compact('idAnio')); // } // public function destroyMes($id) // { // $idMes = $id; // return View::make('admin/transparencia/modal/eliminarmes',compact('idMes')); // } // public function destroyLiteral($id) // { // $idLiteral = $id; // return View::make('admin/transparencia/modal/eliminarliteral',compact('idLiteral')); // } public function eliminarLiteral($id) { //dd("hola"); // File::delete(public_path().$lotaip_literal->archivo); // $dele = ''; // do{ // $dele = Storage::disk('google')->delete('test.txt'); // // $dele = true; // }while ($dele) ; // dd($dele); try { $lotaip_literal = lotaip_literal::find($id); $del = Storage::disk('google')->delete($lotaip_literal->nombre_archivo); $lotaip_literal->delete(); return 1; } catch (Exception $e) { return 0; } } public function eliminarAnio($id) { $anio =lotaip_anio::find($id); try { $lotaip_mes = lotaip_mes::where("lotaip_anio_id","=",$id)->get(); if ($lotaip_mes!= null) { foreach ($lotaip_mes as $key => $mes) { $lotaip_literal = lotaip_literal::where("lotaip_mes_id","=",$mes->id)->get(); if ($lotaip_literal!= null) { foreach ($lotaip_literal as $key => $literal) { Storage::disk('google')->delete($literal->nombre_archivo); // File::delete(public_path().$literal->archivo); $literal->delete(); } $mes->delete(); } } } $anio->delete(); return 1; } catch (Exception $e) { return 0; } } public function eliminarMes($id) { $lotaip_mes = lotaip_mes::find($id); try { $lotaip_literal = lotaip_literal::where("lotaip_mes_id","=",$lotaip_mes->id)->get(); if ($lotaip_literal!= null) { foreach ($lotaip_literal as $key => $literal) { Storage::disk('google')->delete($literal->nombre_archivo); // File::delete(public_path().$literal->archivo); $literal->delete(); } $lotaip_mes->delete(); } return 1; } catch (Exception $e) { return 0; } } public function verdocumento($dato) { $dato=explode("|", $dato); $tipo=$dato[0]; $opcion=$dato[1]; $id=$dato[2]; $direccion=null; if($tipo=="t") { $direccion=asset(lotaip_literal::find($id)->archivo); } $mi_pdf = fopen ($direccion, "r"); if (!$mi_pdf) { Session::flash('message-error','No se ha podido cargar el documento, intentelo luego.'); Redirect::to('inicio'); } if($opcion==1) { header('Content-type: application/pdf'); fpassthru($mi_pdf); }else { // dd(asset(lotaip_literal::find($id)->archivo)); $mi_pdf = fopen ($direccion, "r"); return Response::download($mi_pdf); } } //NUEVAS FUNCIONES PARA LA NUEVA ESTRUCTURA 1 DE LA LOTAIP public function generarLiterales($estructura, $mes_id) { try{ #buscamos el mes $lotaip_mes = lotaip_mes::find($mes_id); if($estructura==1){ // Ruta relativa al archivo JSON $rutaArchivo = 'estructura_lotaip/estructura1.json'; $contenidoJson = Storage::disk('public')->get($rutaArchivo); $json_estructura = json_decode($contenidoJson, true); // Recorremos y creamos si es que no existe foreach ($json_estructura as $key => $item){ #comprobamos si existe $literal = lotaip_literal::where("lotaip_mes_id", $lotaip_mes->id) ->where(function($query) use ($item){ $query->where("letra", $item["letra"]) ->orWhere("literal", "like", "%".$item["literal"]."%"); }) ->first(); #si no existe lo creamos nuevo if(empty($literal)){ $literal = new lotaip_literal(); $literal->lotaip_mes_id = $lotaip_mes->id; $literal->literal = $item["literal"]; $literal->letra = $item["letra"]; $literal->save(); } #actualizamos el orde de acuerdo al json $literal->orden = $key+1; $literal->save(); } }else{ return 0; #error } return 1; #todo correcto }catch(\Throwable $e){ return 0; #error } } public function nueva_estructura_store(Request $request, $estructura){ // dd($request); ini_set('max_execution_time',-1); $lotaip_literal = lotaip_literal::find($request->id_literal); try { if($estructura==1){ $file_pdf = $request->file('file_pdf'); if($file_pdf){ $google_codigo_pdf_del = $lotaip_literal->archivo_cod; $nombre_pdf = $request->letra_literal."-".$request->nombre_literal."-".$lotaip_literal->id."-pdf-".date('Y-m-d').time().".".$file_pdf->getClientOriginalExtension(); Storage::disk("google")->put($nombre_pdf, file_get_contents($file_pdf)); $url = Storage::disk("google")->url($nombre_pdf); // Obtenemos el ID del archivo $google_codigo = null; // Para guardar el ID del documento $contents = collect(Storage::disk("google")->listContents("/", false)); $file_pdf = $contents->where("type", "file") ->where("filename", pathinfo($nombre_pdf, PATHINFO_FILENAME)) ->where("extension", pathinfo($nombre_pdf, PATHINFO_EXTENSION)) ->first(); if($file_pdf){ $google_codigo = $file_pdf["path"];} else{ return 0; } $lotaip_literal->archivo = "https://drive.google.com/file/d/$google_codigo/view"; $lotaip_literal->archivo_cod = $google_codigo; $lotaip_literal->save(); if(!empty($google_codigo_pdf_del)){ if(Storage::disk("google")->exists($google_codigo_pdf_del)){ Storage::disk("google")->delete($google_codigo_pdf_del); } } } $file_conjunto_datos = $request->file('file_conjunto_datos'); if($file_conjunto_datos){ $google_codigo_cd_del = $lotaip_literal->conjunto_datos_cod; $nombre_cd = $request->letra_literal."-".$request->nombre_literal."-".$lotaip_literal->id."-conjunto-datos-".date('Y-m-d').time().".".$file_conjunto_datos->getClientOriginalExtension(); Storage::disk("google")->put($nombre_cd, file_get_contents($file_conjunto_datos)); $url = Storage::disk("google")->url($nombre_cd); // Obtenemos el ID del archivo $google_codigo = null; // Para guardar el ID del documento $contents = collect(Storage::disk("google")->listContents("/", false)); $file_conjunto_datos = $contents->where("type", "file") ->where("filename", pathinfo($nombre_cd, PATHINFO_FILENAME)) ->where("extension", pathinfo($nombre_cd, PATHINFO_EXTENSION)) ->first(); if($file_conjunto_datos){ $google_codigo = $file_conjunto_datos["path"];} else{ return 0; } $lotaip_literal->conjunto_datos = "https://drive.google.com/file/d/$google_codigo/view"; $lotaip_literal->conjunto_datos_cod = $google_codigo; $lotaip_literal->save(); if(!empty($google_codigo_cd_del)){ if(Storage::disk("google")->exists($google_codigo_cd_del)){ Storage::disk("google")->delete($google_codigo_cd_del); } } } $file_metadatos = $request->file('file_metadatos'); if($file_metadatos){ $google_codigo_md_del = $lotaip_literal->metadatos_cod; $nombre_md = $request->letra_literal."-".$request->nombre_literal."-".$lotaip_literal->id."-metadatos-".date('Y-m-d').time().".".$file_metadatos->getClientOriginalExtension(); Storage::disk("google")->put($nombre_md, file_get_contents($file_metadatos)); $url = Storage::disk("google")->url($nombre_md); // Obtenemos el ID del archivo $google_codigo = null; // Para guardar el ID del documento $contents = collect(Storage::disk("google")->listContents("/", false)); $file_metadatos = $contents->where("type", "file") ->where("filename", pathinfo($nombre_md, PATHINFO_FILENAME)) ->where("extension", pathinfo($nombre_md, PATHINFO_EXTENSION)) ->first(); if($file_metadatos){ $google_codigo = $file_metadatos["path"];} else{ return 0; } $lotaip_literal->metadatos = "https://drive.google.com/file/d/$google_codigo/view"; $lotaip_literal->metadatos_cod = $google_codigo; $lotaip_literal->save(); if(!empty($google_codigo_md_del)){ if(Storage::disk("google")->exists($google_codigo_md_del)){ Storage::disk("google")->delete($google_codigo_md_del); } } } $file_diccionario = $request->file('file_diccionario'); if($file_diccionario){ $google_codigo_dd_del = $lotaip_literal->diccionario_cod; $nombre_dd = $request->letra_literal."-".$request->nombre_literal."-".$lotaip_literal->id."-diccionario-".date('Y-m-d').time().".".$file_diccionario->getClientOriginalExtension(); Storage::disk("google")->put($nombre_dd, file_get_contents($file_diccionario)); $url = Storage::disk("google")->url($nombre_dd); // Obtenemos el ID del archivo $google_codigo = null; // Para guardar el ID del documento $contents = collect(Storage::disk("google")->listContents("/", false)); $file_diccionario = $contents->where("type", "file") ->where("filename", pathinfo($nombre_dd, PATHINFO_FILENAME)) ->where("extension", pathinfo($nombre_dd, PATHINFO_EXTENSION)) ->first(); if($file_diccionario){ $google_codigo = $file_diccionario["path"];} else{ return 0; } $lotaip_literal->diccionario = "https://drive.google.com/file/d/$google_codigo/view"; $lotaip_literal->diccionario_cod = $google_codigo; $lotaip_literal->save(); if(!empty($google_codigo_dd_del)){ if(Storage::disk("google")->exists($google_codigo_dd_del)){ Storage::disk("google")->delete($google_codigo_dd_del); } } } $lotaip_literal->literal =$request->nombre_literal; $lotaip_literal->letra =$request->letra_literal; $lotaip_literal->save(); }else{ return 0; } return $lotaip_literal; } catch (\Throwable $e) { Log::error($e->getMessage()." => en la linea: ".$e->getLine()); return 0; } } public function elimiar_archivo_literal_nueva_estructura($literal_id, $estructura, $archivo){ try { if(!is_numeric($literal_id)){ return 0; }; $lotaip_literal = lotaip_literal::find($literal_id); if($estructura == 1){ if($archivo=="PDF"){ $google_codigo_del = $lotaip_literal->archivo_cod; if(Storage::disk("google")->exists($google_codigo_del)){ Storage::disk("google")->delete($google_codigo_del); $lotaip_literal->archivo = null; $lotaip_literal->archivo_cod = null; $lotaip_literal->save(); } } if($archivo=="CONJUNTO DE DATOS"){ $google_codigo_del = $lotaip_literal->conjunto_datos_cod; if(Storage::disk("google")->exists($google_codigo_del)){ Storage::disk("google")->delete($google_codigo_del); $lotaip_literal->conjunto_datos = null; $lotaip_literal->conjunto_datos_cod = null; $lotaip_literal->save(); } } if($archivo=="METADATOS"){ $google_codigo_del = $lotaip_literal->metadatos_cod; if(Storage::disk("google")->exists($google_codigo_del)){ Storage::disk("google")->delete($google_codigo_del); $lotaip_literal->metadatos = null; $lotaip_literal->metadatos_cod = null; $lotaip_literal->save(); } } if($archivo=="DICCIONARIO"){ $google_codigo_del = $lotaip_literal->diccionario_cod; if(Storage::disk("google")->exists($google_codigo_del)){ Storage::disk("google")->delete($google_codigo_del); $lotaip_literal->diccionario = null; $lotaip_literal->diccionario_cod = null; $lotaip_literal->save(); } } }else{ return 0; } return $lotaip_literal; } catch (\Throwable $th) { return 0; } } }