Function for Radicado Input with Validation Rules

This snippet defines a function that sets various validation rules for form inputs related to radicado entry, checks against specific conditions, and returns error messages in JSON format if validation fails.
mail@pastecode.io avatar
unknown
php
25 days ago
8.3 kB
1
Indexable
Never
   <?php
   function ingresar_radicado() {
        $this->form_validation->set_rules('id_personas', 'Persona', 'required|callback_persona_check');
        $this->form_validation->set_rules('radicado_asunto', 'Asunto', 'required|min_length[6]');
        $this->form_validation->set_rules('id_dependencia', 'Dependencia', 'required|callback_dependencia_check');
        $this->form_validation->set_rules('archivo', 'Archivo', 'required');
        $this->form_validation->set_rules('url', 'URL del Archivo', 'required|callback_url_check');
        if ($this->form_validation->run() == FALSE) {
            echo json_encode(array(array('request' => FALSE, 'error' => 'validation_error'), $this->form_validation->error_array()));
        } else {
            /* VERIFICO EL ARCHIVO */
            $nombre = $this->input->post('archivo');
            $porciones = explode(".", $nombre);
            if (end($porciones) != 'pdf') {
                echo json_encode(array('request' => FALSE, 'error' => 'validation_error', 'archivo' => 'El archivo cargado debe estar en formato PDF'));
                die;
            } else {
                $pdf = file_get_contents($this->input->post('url'));
                if ($pdf == NULL) {
                    echo json_encode(array('request' => FALSE, 'error' => 'validation_error', 'url' => 'La URL proporcionada no contiene un archivo'));
                    die;
                }
            }
            $tipo_doc = ($this->input->post('id_tipos_documentales') == NULL) ? 101 : $this->input->post('id_tipos_documentales');
            $tipo_med = ($this->input->post('id_medio_recepcion') == NULL) ? 4 : $this->input->post('id_medio_recepcion');
            $tipo_res = ($this->input->post('id_medio_respuesta') == NULL) ? 2 : $this->input->post('id_medio_respuesta');
            $datos = array(
                'radicado_fecha' => date('Y-m-d H:i:s'),
                'radicado_asunto' => $this->input->post('radicado_asunto'),
                'radicado_archivo' => $this->input->post('archivo'),
                'radicado_folios' => 1,
                'radicado_anexos' => NULL,
                'radicado_observaciones' => 'Radicado automáticamente por el sistema',
                'id_tipos_documentales' => $tipo_doc,
                'id_medio_recepcion' => $tipo_med,
                'id_medio_respuesta' => $tipo_res,
                'id_usuario_creacion' => 1,
                'id_personas' => $this->input->post('id_personas'),
                'id_usuario' => NULL,
                'id_dependencia_dirige' => NULL,
                'radicado_tipo' => 1,
                'id_radicado_padre' => NULL,
                'radicado_masivo' => 0,
                'radicado_privado' => 2,
                'radicado_web' => 2,
                'radicado_pqrs' => 2,
                'radicado_pqrs_texto' => NULL,
                'radicado_cuentas' => 2
            );
            /* VERIFICO SI INGRESO DIRECCION ALTERNATIVA */
            if ($this->input->post('id_direcciones') != NULL) {
                /* VERIFICO QUE LA DIRECCION SI PERTENEZCA A LA PERSONA */
                if ($this->Crud_personas_model->check_direcciones($this->input->post('id_personas'), $this->input->post('id_direcciones')) == FALSE) {
                    echo json_encode(array('request' => FALSE, 'error' => 'validation_error', 'id_direcciones' => 'La dirección alternativa no existe'));
                    die;
                }
            }
            $valor = $this->Radicacion_model->obtener_consecutivo();
            $dep = $this->Radicacion_model->obtener_codigo_dependencia($this->input->post('id_dependencia'));
            $codigo = $dep->dependencia_codigo;
            $dato = date("ymd") . substr($codigo, -3, 3) . '00000';
            $dato = $dato + $valor;
            $datos['id_radicado'] = $dato;
            $datos['radicado_propietario'] = $dep->id_dependencia;
            $this->Radicacion_model->guardar_radicado($datos);
            $txt = "<!DOCTYPE html><html><head><title>403 Forbidden</title></head><body><p>Directory access is forbidden.</p></body></html>";
            $direccion = './uploads/radicado/' . date('Y') . '/' . $dato . '/solicitud/';
            if (!file_exists($direccion)) {
                $direccion2 = './uploads/radicado/' . date('Y') . '/' . $dato . '/';
                if (!file_exists($direccion2)) {
                    $direccion3 = './uploads/radicado/' . date('Y') . '/';
                    if (!file_exists($direccion3)) {
                        $folder = mkdir('./uploads/radicado/' . date('Y'));
                        $myfile = fopen('./uploads/radicado/' . date('Y') . "/index.html", "w") or die("Unable to open file!");
                        fwrite($myfile, $txt);
                        fclose($myfile);
                    }
                    $folder = mkdir('./uploads/radicado/' . date('Y') . '/' . $dato);
                    $folder = mkdir('./uploads/radicado/' . date('Y') . '/' . $dato . '/solicitud/');
                    $folder = mkdir('./uploads/radicado/' . date('Y') . '/' . $dato . '/adjuntos/');
                    $myfile = fopen('./uploads/radicado/' . date('Y') . '/' . $dato . "/index.html", "w") or die("Unable to open file!");
                    fwrite($myfile, $txt);
                    fclose($myfile);
                    $myfile = fopen('./uploads/radicado/' . date('Y') . '/' . $dato . '/solicitud' . "/index.html", "w") or die("Unable to open file!");
                    fwrite($myfile, $txt);
                    fclose($myfile);
                    $myfile = fopen('./uploads/radicado/' . date('Y') . '/' . $dato . '/adjuntos' . "/index.html", "w") or die("Unable to open file!");
                    fwrite($myfile, $txt);
                    fclose($myfile);
                } else {
                    $folder = mkdir('./uploads/radicado/' . date('Y') . '/' . $dato . '/solicitud/');
                    $folder = mkdir('./uploads/radicado/' . date('Y') . '/' . $dato . '/adjuntos/');
                    $myfile = fopen('./uploads/radicado/' . date('Y') . '/' . $dato . '/solicitud' . "/index.html", "w") or die("Unable to open file!");
                    fwrite($myfile, $txt);
                    fclose($myfile);
                    $myfile = fopen('./uploads/radicado/' . date('Y') . '/' . $dato . '/adjuntos' . "/index.html", "w") or die("Unable to open file!");
                    fwrite($myfile, $txt);
                    fclose($myfile);
                }
            }
            /* CARGO EL ARCHVIO PRINCIPAL */
            file_put_contents("$direccion/$nombre", $pdf);
            /* Creo el codigo de barras */
         //   $this->barcode($dato, date('Y'));
         //   crear_qr("$dato", './uploads/radicado' . '/' . date('Y') . "/$dato/", $dato . '_qr.png');
            /* LE PONGO LA MARCA DE AGUA AL DOCUMENTO */
            $file = "./uploads/radicado/" . date('Y') . "/$dato/solicitud/$nombre";
            $barcode = $dato . '_qr.png';
            $img = "./uploads/radicado/" . date('Y') . "/$dato/$barcode";
            $destination = "./uploads/radicado/" . date('Y') . "/$dato/solicitud/";
            $numero_paginas = $this->funciones_mpdf->add_watermark($file, $nombre, $img, $destination);
            /* GUARDO LA DIRECCION ALTERNATIVA */
            if ($this->input->post('id_direcciones') != NULL) {
                $file = array(
                    'id_radicado' => $dato,
                    'id_personas' => $this->input->post('id_personas'),
                    'id_direcciones' => $this->input->post('id_direcciones')
                );
                $this->Radicacion_model->guardar_direccion_alternativa($file);
            }
            /* ASIGNO EL RADICADO */
            $this->Radicacion_model->ingresar_radicado_asinacion($dato, NULL, $this->input->post('id_dependencia'), 'Asignado automáticamente por el sistema ', 1, $dep->dependencia_nombre);
            $url_file = site_url("uploads/radicado/" . date('Y') . "/$dato/solicitud/$nombre");
            echo json_encode(array('request' => TRUE, 'id_radicado' => $datos['id_radicado'], 'file' => $url_file));
        }
    }
    ?>
Leave a Comment