/**
  * Store a newly created resource in storage.
  *
  * @return Response
  */
 public function store()
 {
     $importador = new ImportadorProyecto('/uploads/proyectos/temp.txt');
     $importador->extraer();
     $urg = Urg::whereUrg($importador->urg)->get(array('id'));
     $fondo = Fondo::whereFondo($importador->fondo)->get(array('id'));
     $arr_inicio = explode("/", $importador->inicio);
     $arr_fin = explode("/", $importador->fin);
     $proyecto = new Proyecto();
     $proyecto->proyecto = $importador->proy;
     $proyecto->d_proyecto = $importador->d_proyecto;
     $proyecto->monto = $importador->monto_proy;
     $proyecto->urg_id = $urg[0]->id;
     $proyecto->tipo_proyecto_id = 1;
     $proyecto->aaaa = $importador->aaaa;
     $proyecto->inicio = $arr_inicio[2] . "-" . $arr_inicio[1] . "-" . $arr_inicio[0];
     $proyecto->fin = $arr_fin[2] . "-" . $arr_fin[1] . "-" . $arr_fin[0];
     $proyecto->save();
     //Inserta datos @fondo_proyecto
     $proyecto->fondos()->attach($fondo[0]->id);
     $arr_objetivos = array();
     foreach ($importador->arr_recursos as $partida => $val) {
         //Buscar objetivo en key del arreglo
         $objetivo_id = array_search($val['objetivo'], $arr_objetivos);
         //Si no se encuentra
         if (empty($objetivo_id)) {
             $objetivo = new Objetivo();
             $objetivo->objetivo = $val['objetivo'];
             $objetivo->d_objetivo = $val['d_objetivo'];
             $objetivo->save();
             $objetivo_id = $objetivo->id;
             $arr_objetivos[$objetivo->id] = $val['objetivo'];
         }
         $cog = Cog::whereCog($val['cog'])->get();
         $rm = new Rm();
         $rm->rm = $partida;
         $rm->proyecto_id = $proyecto->id;
         $rm->objetivo_id = $objetivo_id;
         $rm->actividad_id = 1;
         $rm->cog_id = $cog[0]->id;
         $rm->fondo_id = $fondo[0]->id;
         $rm->monto = $val['monto'];
         $rm->d_rm = "";
         $rm->save();
     }
     return redirect()->action('ProyectosController@index');
 }
 /**
  * Show the form for creating a new resource.
  *
  * @return Response
  */
 public function create()
 {
     $fondos = Fondo::fondosProyectosActivos()->get()->lists('fondo_desc', 'id');
     return view('soldep.formSolDep', compact('fondos'));
 }
 public function importarRms()
 {
     $rms_externos = $this->consultarRmsExternos();
     if (count($rms_externos) > 0) {
         foreach ($rms_externos as $rm_nuevo) {
             $proyecto = Proyecto::whereProyecto($rm_nuevo->proy)->get(array('id'));
             $cog = Cog::whereCog($rm_nuevo->cta)->get(['id']);
             $fondo = Fondo::whereFondo($rm_nuevo->fondo)->get(array('id'));
             if (count($cog) == 0 || count($fondo) == 0 || count($proyecto) == 0) {
                 dd('RM c/error: ' . $rm_nuevo->rm);
             }
             $rms = new Rm();
             $rms->rm = $rm_nuevo->rm;
             $rms->proyecto_id = $proyecto[0]->id;
             if (empty($rm_nuevo->objetivo)) {
                 $rms->objetivo_id = 1;
             } else {
                 $obj = Objetivo::whereObjetivo($rm_nuevo->objetivo)->get(['id']);
                 if (count($obj) == 0) {
                     $objetivo = new Objetivo();
                     $objetivo->objetivo = $rm_nuevo->objetivo;
                     $objetivo->save();
                     $rms->objetivo_id = $objetivo->id;
                 } else {
                     $rms->objetivo_id = $obj[0]->id;
                 }
             }
             if (empty($rm_nuevo->actividad)) {
                 $rms->actividad_id = 1;
             } else {
                 $act = Actividad::whereActividad($rm_nuevo->actividad)->get(['id']);
                 if (count($act) == 0) {
                     $actividad = new Actividad();
                     $actividad->actividad = $rm_nuevo->actividad;
                     $actividad->save();
                     $rms->actividad_id = $actividad->id;
                 } else {
                     $rms->actividad_id = $act[0]->id;
                 }
             }
             $rms->cog_id = $cog[0]->id;
             $rms->fondo_id = $fondo[0]->id;
             $rms->monto = $rm_nuevo->monto;
             $rms->d_rm = '';
             $rms->save();
         }
     }
 }
 private function extraerFondo()
 {
     $t_fondo = strstr($this->text, "Fondo: ");
     $pos_limite = strpos($t_fondo, "Monto Total");
     $fondo_txt = substr($t_fondo, 0, $pos_limite);
     $fondo_txt = substr($fondo_txt, 7);
     $fondo_txt = trim($fondo_txt);
     $fondo_txt = str_replace(PHP_EOL, '', $fondo_txt);
     $fondo_txt = str_replace('      ', '', $fondo_txt);
     $fondo_txt = utf8_encode($fondo_txt);
     $fondo = Fondo::whereDFondo($fondo_txt)->get();
     if (count($fondo) > 0) {
         $this->fondo = $fondo[0]->fondo;
     }
     //@todo Agregar mensaje y bandera de error cuando no se encuentre el fondo
     //@todo Agregar fomulario emergente para dar de alta el fondo
     $this->d_fondo = $fondo_txt;
 }