Пример #1
0
 /**
  * Creates a new model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  */
 public function actionCreate()
 {
     $model = new Ficha();
     // Uncomment the following line if AJAX validation is needed
     // $this->performAjaxValidation($model);
     if (isset($_POST['Ficha'])) {
         $model->attributes = $_POST['Ficha'];
         if ($model->save()) {
             $this->redirect(array('view', 'id' => $model->FI_ID));
         }
     }
     $this->render('create', array('model' => $model));
 }
Пример #2
0
 public function postValidarficha()
 {
     if (Request::ajax()) {
         $ficha = Input::get('ficha');
         $reniec = Input::get('reniec');
         $fichaId = Input::get('ficha_id');
         $paternon = Input::get('paternon');
         $maternon = Input::get('maternon');
         $nombresn = Input::get('nombresn');
         $paterno = Input::get('paterno');
         $materno = Input::get('materno');
         $nombres = Input::get('nombres');
         $dni = Input::get('dni');
         if ($reniec != '' && $fichaId != '') {
             $fichama = Ficha::find($fichaId);
             $fichama['usuario_updated_at'] = Auth::user()->id;
             $fichama['reniec_id'] = $reniec;
             $fichama['estado'] = 0;
             $fichama->save();
         }
         $ef = EscalafonFichas::getEFIdporFicha($ficha);
         $efr = EscalafonFichas::getEFRIdporFicha($ficha);
         $ficham = new Ficha();
         if ($reniec != '') {
             $ficham['reniec_id'] = $reniec;
             $ficham['dni'] = $dni;
         }
         if (count($ef) > 0) {
             $ficham['escalafon_ficha_id'] = $ef[0]->id;
             if (count($efr) > 0) {
                 $ficham['escalafon_ficha_recepcion_id'] = $efr[0]->id;
             }
         }
         $estadoFicha = 0;
         //No existe dni
         if (strcasecmp($paternon, $paterno) != 0 or strcasecmp($maternon, $materno) != 0 or strcasecmp($nombresn, $nombres) != 0) {
             $estadoFicha = 2;
             // no existe asignación de entrega y recepción
         } elseif (strcasecmp($paternon, $paterno) == 0 and strcasecmp($maternon, $materno) == 0 and strcasecmp($nombresn, $nombres) == 0) {
             $estadoFicha = 1;
             // no existe asignación de recepción
         }
         $ficham['ficha'] = $ficha;
         $ficham['paterno'] = $paternon;
         $ficham['materno'] = $maternon;
         $ficham['nombres'] = $nombresn;
         $ficham['estado_ficha'] = $estadoFicha;
         $ficham['usuario_created_at'] = Auth::user()->id;
         $ficham->save();
         if ($reniec != '') {
             $reniecm = Reniec::find($reniec);
             $reniecm['ficha_id'] = $ficham->id;
             $reniecm['usuario_updated_at'] = Auth::user()->id;
             $reniecm->save();
         }
         $vef = Ficha::getValidarEstadoFicha($ficha);
         return Response::json(array('rst' => 1, 'msj' => 'Se registró la validación', 'estado' => $vef));
     }
 }
Пример #3
0
 public function postGuardar()
 {
     if (Request::ajax()) {
         $fich = Input::get('ficha');
         $id = Input::get('escalafon_id');
         $aParametro = array();
         $paginaFirma = array();
         $valida = 0;
         $valida = Firma::ValidaFicha($fich);
         if ($valida == 0) {
             DB::beginTransaction();
             $dni = Input::get('dni');
             $paterno = Input::get('paterno');
             $materno = Input::get('materno');
             $nombre = Input::get('nombre');
             $paginaFirma = new PaginaFirma();
             $paginaFirma['escalafon_id'] = $id;
             $paginaFirma->save();
             for ($i = 0; $i < count($dni); $i++) {
                 $firma = new Firma();
                 $firma["pagina_firma_id"] = $paginaFirma->id;
                 $firma["ficha"] = trim($fich);
                 $firma["fila"] = $i + 1;
                 $firma["dni"] = trim($dni[$i]);
                 $firma["paterno"] = trim($paterno[$i]);
                 $firma["materno"] = trim($materno[$i]);
                 $firma["nombre"] = trim($nombre[$i]);
                 $firma['conteo'] = 0;
                 if (trim($dni[$i]) == '' and trim($paterno[$i]) == '' and trim($materno[$i]) == '' and trim($nombre[$i]) == '') {
                     $firma['conteo'] = 3;
                 } else {
                     if (trim($dni[$i]) != '') {
                         $validadni = Firma::ValidaFirma(trim($dni[$i]));
                         if (count($validadni) > 0) {
                             $firma['conteo'] = 2;
                             $firma['estado_firma'] = $validadni[0]->ids;
                         }
                     }
                 }
                 $firma['usuario_created_at'] = Auth::user()->id;
                 $firma->save();
             }
             /**************************************************************/
             $fecha_entrega = date("Y-m-d");
             $desde = trim($fich);
             $hasta = trim($fich);
             $desdeh = $paginaFirma->id;
             $hastah = $paginaFirma->id;
             /***********Entregar*******************************************/
             $sql = "  SELECT COUNT(id) cant\n                        FROM paginafirma\n                        WHERE escalafon_id=" . $id;
             $rr = DB::select($sql);
             $escalafonFicha = new EscalafonFichas();
             $escalafonFicha['usuario_created_at'] = Auth::user()->id;
             $escalafonFicha['escalafon_id'] = $id;
             $escalafonFicha['fecha_entrega'] = $fecha_entrega;
             $escalafonFicha['desde'] = $desde;
             $escalafonFicha['hasta'] = $hasta;
             $escalafonFicha['desdeh'] = $desdeh;
             $escalafonFicha['hastah'] = $hastah;
             $escalafonFicha['orden'] = $rr[0]->cant;
             $escalafonFicha->save();
             /**************************************************************/
             /***********Recepcionar****************************************/
             $escalafonFichaRecepcion = new EscalafonFichasRecepcion();
             $escalafonFichaRecepcion['usuario_created_at'] = Auth::user()->id;
             $escalafonFichaRecepcion['escalafon_ficha_id'] = $escalafonFicha->id;
             $escalafonFichaRecepcion['fecha_recepcion'] = $fecha_entrega;
             $escalafonFichaRecepcion['desde'] = $desde;
             $escalafonFichaRecepcion['hasta'] = $hasta;
             $escalafonFichaRecepcion['orden'] = $rr[0]->cant;
             $escalafonFichaRecepcion->save();
             /**************************************************************/
             /***********Validar********************************************/
             $ficha = new Ficha();
             $ficha['ficha'] = $fich;
             $ficha['hoja'] = $paginaFirma->id;
             $ficha['escalafon_ficha_id'] = $escalafonFicha->id;
             $ficha['escalafon_ficha_recepcion_id'] = $escalafonFichaRecepcion->id;
             $ficha['usuario_created_at'] = Auth::user()->id;
             $ficha->save();
             /**************************************************************/
             DB::commit();
             $aParametro['msj'] = "Se realizó ";
             $aParametro['pagina'] = $paginaFirma->id;
             $aParametro['rst'] = 1;
             //DB::rollback();
         } else {
             $aParametro['msj'] = "Ficha Existente ";
             $aParametro['rst'] = 2;
         }
         return Response::json($aParametro);
     }
 }
Пример #4
0
 function _save_ficha($id = null, $flujo = FALSE)
 {
     $respuesta = new stdClass();
     if ($id) {
         try {
             $ficha = Doctrine::getTable('Ficha')->find($id);
         } catch (Exception $e) {
             $respuesta->validacion = FALSE;
             $respuesta->errores = "<p class='error'>" . $e . "</p>";
             return json_encode($respuesta);
         }
     } else {
         $ficha = new Ficha();
         $ficha->votos_positivos = 0;
         $ficha->votos_negativos = 0;
     }
     $this->form_validation->set_rules('titulo', 'Nombre del ' . ($flujo ? 'flujo' : 'trámite'), 'trim|required');
     $this->form_validation->set_rules('objetivo', 'Descripción', 'trim|required');
     $this->form_validation->set_rules('servicio_codigo', 'Servicio', 'required|callback_check_servicio');
     $this->form_validation->set_rules('correlativo', 'Código', 'required|is_natural_no_zero|callback_check_codigo[' . $id . ']');
     $this->form_validation->set_rules('guia_online_url', 'Guia Online URL', 'trim|prep_url');
     $this->form_validation->set_rules('metaficha', 'MetaFicha', 'required');
     if ($this->input->post('exterior')) {
         $this->form_validation->set_rules('tipo_residente', 'motivo de estadía para chilenos en el exterior (al menos uno)', 'required');
     }
     if ($this->input->post('metaficha') == 1) {
         $this->form_validation->set_rules('metaficha_categoria', 'Criterio para categorizar las SubFichas', 'required');
     }
     if ($this->form_validation->run() == TRUE) {
         try {
             $ficha->metaficha = $this->input->post('metaficha') == 1 ? 1 : 0;
             $metaficha_campos = array('cc_observaciones' => 1, 'beneficiarios' => 1, 'doc_requeridos' => 1, 'guia_online' => 1, 'guia_online_url' => 1, 'guia_oficina' => 1, 'guia_telefonico' => 1, 'guia_correo' => 1, 'guia_chileatiende' => 1, 'plazo' => 1, 'vigencia' => 1, 'costo' => 1, 'informacion_multimedia' => 1, 'marco_legal' => 1);
             // INFO: llena los campos de la Ficha dependiendo si estan marcados para SubFicha o no
             foreach ($metaficha_campos as $key => $value) {
                 $metaficha_campos[$key] = $this->input->post('metaficha_' . $key);
                 // INFO:
                 //      0 - Se guarda en SubFicha
                 //      1 - Se guarda en MetaFicha
                 if ($ficha->metaficha == 1) {
                     $ficha[$key] = $metaficha_campos[$key] == 1 ? $this->input->post($key) : '';
                 } else {
                     $ficha[$key] = $this->input->post($key);
                 }
             }
             $ficha->metaficha_campos = serialize($metaficha_campos);
             // INFO: seleccion de Servicios o Grupos
             $seleccion_servicios = $this->input->post('metaficha_servicios') ? $this->input->post('metaficha_servicios') : array();
             $metaficha_servicios = array();
             foreach ($seleccion_servicios as $codigo_seleccionado) {
                 // INFO: si es tag se agregan todos los servicios del tag
                 if (substr($codigo_seleccionado, 0, 4) == 'TAG-') {
                     $tag = Doctrine::getTable('Tag')->find(substr($codigo_seleccionado, 4));
                     foreach ($tag->Servicios as $servicio) {
                         $metaficha_servicios[] = $servicio->codigo;
                     }
                 } else {
                     $metaficha_servicios[] = $codigo_seleccionado;
                 }
             }
             $metaficha_servicios = array_unique($metaficha_servicios);
             $ficha->metaficha_servicios = serialize($metaficha_servicios);
             $metaficha_opciones = array('categoria' => $this->input->post('metaficha_categoria'), 'servicios_no_publican' => $this->input->post('metaficha_servicios_no_publican'));
             $ficha->metaficha_opciones = serialize($metaficha_opciones);
             $comentarios = $this->input->post('comentario');
             $ficha->comentarios = json_encode($comentarios);
             $ficha->destacado = $this->input->post('destacado') ? 1 : 0;
             $ficha->correlativo = $this->input->post('correlativo');
             $ficha->titulo = $this->input->post('titulo');
             //Updated fecha
             if ($id) {
                 if ($this->input->post('updated_data_at')) {
                     //Convertir fecha a mysql
                     $_updated_data_at = $this->input->post('updated_data_at');
                     if (preg_match("/^(\\d{2})[-\\/](\\d{2})[-\\/](\\d{4})\$/", $_updated_data_at)) {
                         $_aDate = explode('-', $_updated_data_at);
                         $_updated_data_at = $_aDate[2] . '-' . $_aDate[1] . '-' . $_aDate[0];
                     }
                     $ficha->updated_data_at = $_updated_data_at;
                 }
             } else {
                 //Nueva ficha
                 $ficha->updated_data_at = date('Y-m-d H:i:s');
             }
             $ficha->alias = url_title(convert_accented_characters($this->input->post('titulo')), 'dash', TRUE);
             $ficha->objetivo = $this->input->post('objetivo');
             if ($this->input->post('resumen')) {
                 $ficha->resumen = $this->input->post('resumen');
             }
             $ficha->beneficiarios = $this->input->post('beneficiarios');
             $ficha->costo = $this->input->post('costo');
             $ficha->vigencia = $this->input->post('vigencia');
             $ficha->marco_legal = $this->input->post('marco_legal');
             $ficha->plazo = $this->input->post('plazo');
             ////corresponde a información relacionada que pertenecía a los campos de ChileClic
             $ficha->cc_observaciones = $this->input->post('cc_observaciones');
             $ficha->doc_requeridos = $this->input->post('doc_requeridos');
             $ficha->guia_online = $this->input->post('guia_online');
             $ficha->guia_online_url = $this->input->post('guia_online_url');
             $ficha->guia_oficina = $this->input->post('guia_oficina');
             $ficha->guia_oficina_nombre = $this->input->post('guia_oficina_nombre');
             $ficha->guia_telefonico = $this->input->post('guia_telefonico');
             $ficha->guia_correo = $this->input->post('guia_correo');
             $ficha->guia_chileatiende = $this->input->post('guia_chileatiende');
             $ficha->guia_consulado = $this->input->post('guia_consulado');
             $ficha->maestro = 1;
             $ficha->servicio_codigo = $this->input->post('servicio_codigo');
             $ficha->genero_id = $this->input->post('genero') ? $this->input->post('genero') : NULL;
             $ficha->setRangosEdadFromString($this->input->post('rangos'));
             $ficha->setTemasFromArray($this->input->post('temas'));
             $ficha->setTagsFromArray($this->input->post('tags'));
             $ficha->setHechosVidaFromArray($this->input->post('hechosvida'));
             $ficha->informacion_multimedia = $this->input->post('informacion_multimedia');
             if ($this->input->post('keywords')) {
                 $ficha->keywords = $this->input->post('keywords');
             }
             if ($this->input->post('sic')) {
                 $ficha->sic = $this->input->post('sic');
             }
             $ficha->tipo = $this->input->post('tipo');
             //1 personas, 2 empresas, 3 ambos
             $ficha->flujo = $flujo ? 1 : 0;
             //0 no flujo, 1 flujo
             // INFO: emprendete
             $tipo_empresa_o_ambos = $ficha->tipo == 2 || $ficha->tipo == 3;
             if ($tipo_empresa_o_ambos) {
                 $ficha->formalizacion = $this->input->post('formalidad_sel') ? NULL : $this->input->post('formalizacion');
                 $ficha->fps = $this->input->post('fps') ? $this->input->post('fps') : 0;
                 $ficha->puntaje_fps_min = $this->input->post('puntaje_fps_min') ? $this->input->post('puntaje_fps_min') : 2000;
                 $ficha->puntaje_fps_max = $this->input->post('puntaje_fps_max') ? $this->input->post('puntaje_fps_max') : 20000;
                 //$ficha->req_adicional = $this->input->post('req_adicional');
                 $ficha->req_especial = $this->input->post('req_especial');
                 $ficha->setTemasEmpresaFromArray($this->input->post('temas_empresa'));
                 $ficha->setHechosEmpresaFromArray($this->input->post('hechosempresa'));
                 $ficha->setApoyosFromArray($this->input->post('apoyosestado'));
                 // INFO: filtro para todos o específico
                 if ($this->input->post('rubro_sel')) {
                     $Rubros = Doctrine::getTable('Rubro')->findAll();
                     $aRubros = array();
                     foreach ($Rubros as $r) {
                         $aRubros[] = $r->id;
                     }
                 } else {
                     $aRubros = $this->input->post('rubro');
                 }
                 $ficha->setRubrosFromArray($aRubros);
                 //actividad economica
                 // INFO: filtro para todos o específico
                 if ($this->input->post('venta_anual_sel')) {
                     $TiposEmpresa = Doctrine::getTable('TipoEmpresa')->findAll();
                     $aTiposEmpresa = array();
                     foreach ($TiposEmpresa as $te) {
                         $aTiposEmpresa[] = $te->id;
                     }
                 } else {
                     $aTiposEmpresa = $this->input->post('venta_anual');
                 }
                 $ficha->setTiposEmpresaFromArray($aTiposEmpresa);
             }
             $ficha->content_updated_data_at = date('Y-m-d H:i:s');
             $ficha->es_tramite_exterior = $this->input->post('exterior') == 'on';
             $ficha->save();
             if ($this->input->post('tipo_residente')) {
                 Doctrine::getTable('TramiteEnExterior')->findByIdFicha($ficha->id)->delete();
                 foreach ($this->input->post('tipo_residente') as $key => $value) {
                     $tramite_exterior = new TramiteEnExterior();
                     $tramite_exterior->id_ficha = $ficha->id;
                     $tramite_exterior->destacado = $this->input->post('exterior_destacado') == 'on';
                     $tramite_exterior->motivo = $value;
                     $tramite_exterior->content_updated_data_at = date('Y-m-d H:i:s');
                     $tramite_exterior->save();
                 }
             }
             // INFO: crea las nuevas SubFichas para cada Servicio si la Ficha es MetaFicha
             if ($ficha->metaficha == 1) {
                 $_sub_fichas_serv_codigos = array();
                 foreach ($ficha->SubFichas as $subficha) {
                     if ($subficha->maestro == 1) {
                         $_sub_fichas_serv_codigos[$subficha->id] = $subficha->servicio_codigo;
                     }
                 }
                 $aSubFichas = array();
                 foreach ($metaficha_servicios as $metaficha_servicio) {
                     if (!in_array($metaficha_servicio, $_sub_fichas_serv_codigos)) {
                         $sub_ficha = new SubFicha();
                         $sub_ficha->metaficha_id = $ficha->id;
                         $sub_ficha->servicio_codigo = $metaficha_servicio;
                         $sub_ficha->maestro = 1;
                         $sub_ficha->publicado = 0;
                         $sub_ficha->save();
                         $sub_ficha->generarVersion();
                         $aSubFichas[] = $sub_ficha->id;
                     } else {
                         $sub_ficha_id = array_search($metaficha_servicio, $_sub_fichas_serv_codigos);
                         $sub_ficha = Doctrine::getTable('SubFicha')->find($sub_ficha_id);
                         if ($sub_ficha->estado === "eliminado") {
                             $sub_ficha->estado = NULL;
                             $sub_ficha->save();
                             $sub_ficha->generarVersion();
                         }
                         $aSubFichas[] = $sub_ficha->id;
                     }
                 }
                 $ficha->setSubFichasFromArray($aSubFichas);
             }
             $ficha->generarVersion();
             if ($id) {
                 $mensaje = ($flujo ? 'Flujo' : 'Trámite') . ' actualizada exitosamente';
             } else {
                 $mensaje = ($flujo ? 'Flujo' : 'Trámite') . ' creado exitosamente';
             }
             $this->session->set_flashdata('message', $mensaje);
             $respuesta->validacion = TRUE;
             $respuesta->redirect = site_url('backend/fichas/' . ($flujo ? 'verflujo' : 'ver') . '/' . $ficha->id);
         } catch (Exception $e) {
             $respuesta->validacion = FALSE;
             $respuesta->errores = "<p class='error'>" . $e . "</p>";
             return json_encode($respuesta);
         }
     } else {
         $respuesta->validacion = FALSE;
         $respuesta->errores = validation_errors('<p class="error">', '</p>');
     }
     return json_encode($respuesta);
 }
Пример #5
0
 private static function saveTopSimilares($prefs, Ficha $ficha)
 {
     $top = self::topMatches($prefs, $ficha->id, 3);
     Doctrine_Query::create()->delete('FichaHasFichaSimilar f')->where('f.ficha_id = ?', $ficha->id)->execute();
     foreach ($top as $ficha_id => $score) {
         $rel = new FichaHasFichaSimilar();
         $rel->ficha_id = $ficha->id;
         $rel->ficha_similar_id = $ficha_id;
         $rel->save();
     }
     /*
             foreach ($ficha->FichasSimilares as $key => $value)
        unset($ficha->FichasSimilares[$key]);
     
             foreach ($top as $ficha_id => $score) {
        $ficha->FichasSimilares[] = Doctrine::getTable('Ficha')->find($ficha_id);
             }
     * 
     */
     $ficha->save();
 }
 public function postCreareditar()
 {
     if (Request::ajax()) {
         $id = Input::get('escalafon_id');
         $ids = Input::get('ids');
         $fecha_entrega = Input::get('fecha_entrega');
         $desde = Input::get('desde');
         $hasta = Input::get('hasta');
         $desdeh = Input::get('desdeh');
         $hastah = Input::get('hastah');
         DB::beginTransaction();
         EscalafonFichas::where('escalafon_id', $id)->update(array('estado' => 0, 'usuario_updated_at' => Auth::user()->id));
         for ($i = 0; $i < count($ids); $i++) {
             /***********Entregar***********************************************/
             if ($ids[$i] != '') {
                 $escalafonFicha = EscalafonFichas::find($ids[$i]);
                 $escalafonFicha['usuario_updated_at'] = Auth::user()->id;
                 $escalafonFicha['estado'] = 1;
             } else {
                 $escalafonFicha = new EscalafonFichas();
                 $escalafonFicha['usuario_created_at'] = Auth::user()->id;
             }
             $escalafonFicha['escalafon_id'] = $id;
             $escalafonFicha['fecha_entrega'] = $fecha_entrega[$i];
             $escalafonFicha['desde'] = $desde[$i];
             $escalafonFicha['hasta'] = $hasta[$i];
             $escalafonFicha['desdeh'] = $desdeh[$i];
             $escalafonFicha['hastah'] = $hastah[$i];
             $escalafonFicha['orden'] = $i + 1;
             $escalafonFicha->save();
             /******************************************************************/
             /***********Recepcionar********************************************/
             EscalafonFichasRecepcion::where('escalafon_ficha_id', $escalafonFicha->id)->update(array('estado' => 0, 'usuario_updated_at' => Auth::user()->id));
             $sql = "  SELECT id\n                        FROM escalafon_fichas_recepcion\n                        WHERE escalafon_ficha_id=" . $escalafonFicha->id . "\n                        AND desde=" . $desde[$i] . "\n                        AND hasta=" . $hasta[$i];
             $rr = DB::select($sql);
             if (count($rr) > 0) {
                 $escalafonFichaRecepcion = EscalafonFichasRecepcion::find($rr[0]->id);
                 $escalafonFichaRecepcion['usuario_updated_at'] = Auth::user()->id;
                 $escalafonFichaRecepcion['estado'] = 1;
             } else {
                 $escalafonFichaRecepcion = new EscalafonFichasRecepcion();
                 $escalafonFichaRecepcion['usuario_created_at'] = Auth::user()->id;
             }
             $escalafonFichaRecepcion['escalafon_ficha_id'] = $escalafonFicha->id;
             $escalafonFichaRecepcion['fecha_recepcion'] = $fecha_entrega[$i];
             $escalafonFichaRecepcion['desde'] = $desde[$i];
             $escalafonFichaRecepcion['hasta'] = $hasta[$i];
             $escalafonFichaRecepcion['orden'] = $i + 1;
             $escalafonFichaRecepcion->save();
             /******************************************************************/
             /***********Validar************************************************/
             Ficha::where('escalafon_ficha_id', $escalafonFicha->id)->where('escalafon_ficha_recepcion_id', $escalafonFichaRecepcion->id)->update(array('estado' => 0, 'usuario_updated_at' => Auth::user()->id));
             $l = $desdeh[$i];
             for ($k = $desde[$i]; $k <= $hasta[$i]; $k++) {
                 $ficha = new Ficha();
                 $ficha['ficha'] = $k;
                 $ficha['hoja'] = $l;
                 $ficha['escalafon_ficha_id'] = $escalafonFicha->id;
                 $ficha['escalafon_ficha_recepcion_id'] = $escalafonFichaRecepcion->id;
                 $ficha['usuario_created_at'] = Auth::user()->id;
                 $ficha->save();
                 $l++;
             }
             /******************************************************************/
         }
         DB::commit();
         return Response::json(array('rst' => 1, 'msj' => 'Datos Actualizados'));
     }
 }