Skip to content

Instantly share code, notes, and snippets.

@aguileraq
Last active September 17, 2019 01:36
Show Gist options
  • Save aguileraq/573e34258038c775561dd3db348f30ed to your computer and use it in GitHub Desktop.
Save aguileraq/573e34258038c775561dd3db348f30ed to your computer and use it in GitHub Desktop.
library extends : application/libraries/MY_Form_validation.php, controller: controllers/Military.php and view: views/military/create.php
<?php $this->load->view('layout/nav');?>
<?php $this->load->view('layout/left-sidebar');?>
<div class="be-content">
<div class="page-head">
<h2 class="page-head-title">{view_title}</h2>
<nav aria-label="breadcrumb" role="navigation">
<ol class="breadcrumb page-head-nav">
<li class="breadcrumb-item"><a href="#">Home</a></li>
<li class="breadcrumb-item"><a href="#">Militar</a></li>
<li class="breadcrumb-item active">Alta</li>
</ol>
</nav>
</div>
<div class="main-content container-fluid">
<div class="row">
<div class="col-md-12">
<div class="card card-border-color card-border-color-primary">
<div class="card-header card-header-divider"><span class="card-subtitle">Llena los campos que se solicitan, recuerda los campos marcados con <span class="text-danger">*</span> son obligatorios.</span>
</div>
<div id="create-militar-container" class="card-body">
<?php echo form_open_multipart(base_url('panel/asociados/militar/alta'), array("class" => "form-horizontal group-border-dashed","id" => "create-militar-form"));?>
<!-- -->
<div class="row">
<label class="col-12 col-sm-3 col-form-label text-sm-right">Grado Completo <span class="text-danger">*</span></label>
<div class="col-12 col-sm-9 row">
<div class="col-sm-6 form-group">
<select class="select2" name="rank" >
<option selected="" disabled="" value="">Grado</option>
{ranks}
<option value="{id}">{value}</option>
{/ranks}
</select>
<div class="msg" id="rank"></div>
</div>
<div class="col-sm-6 form-group">
<select class="select2" name="service">
<option selected="" value="">Cuerpo y Servicios</option>
{services}
<option value="{id}">{value}</option>
{/services}
</select>
<div class="msg" id="service"></div>
</div>
<div class="col-sm-6 form-group">
<select class="select2" name="speciality">
<option selected="" value="">Especialidad</option>
{specialities}
<option value="{id}">{value}</option>
{/specialities}
</select>
<div class="msg" id="speciality"></div>
</div>
<div class="col-sm-6 form-group">
<select class="select2" name="subspeciality">
<option selected="" value="">Sub Especialidad</option>
{subspecialities}
<option value="{id}">{value}</option>
{/subspecialities}
</select>
<div class="msg" id="subspeciality"></div>
</div>
<div class="col-sm-12 form-group">
<select class="select2" name="course">
<option selected="" value="">Cursos</option>
{courses}
<option value="{id}">{value}</option>
{/courses}
</select>
<div class="msg" id="course"></div>
</div>
</div>
</div>
<!--name-->
<div class="row">
<label class="col-12 col-sm-3 col-form-label text-sm-right">Nombre / Apellidos <span class="text-danger">*</span></label>
<div class="col-12 col-sm-9 row">
<div class="col-sm-4 form-group">
<input type="text" name="name" parsley-trigger="change" autocomplete="off" placeholder="Juan" class="form-control">
<div class="msg" id="name"></div>
</div>
<div class="col-sm-4 form-group">
<input type="text" name="first_lastname" autocomplete="off" placeholder="Pérez" class="form-control">
<div class="msg" id="first_lastname"></div>
</div>
<div class="col-sm-4 form-group">
<input type="text" name="second_lastname" autocomplete="off" placeholder="Blanco" class="form-control">
<div class="msg" id="second_lastname"></div>
</div>
</div>
</div>
<!--birthdate-->
<div class="row">
<label class="col-12 col-sm-3 col-form-label text-sm-right">Fecha de nacimiento <span class="text-danger">*</span></label>
<div class="col-12 col-sm-9 row">
<div class="col-12 col-sm-4 form-group">
<input type="text" name="month" class="form-control" placeholder="Mes" minlength="2" maxlength="2">
<div class="msg" id="month"></div>
</div>
<div class="col-12 col-sm-4 form-group">
<input type="text" name="day" class="form-control" placeholder="Día" minlength="2" maxlength="2">
<div class="msg" id="day"></div>
</div>
<div class="col-12 col-sm-4 form-group">
<input type="text" name="year" class="form-control" placeholder="Año" minlength="4" maxlength="4">
<div class="msg" id="year"></div>
</div>
</div>
</div>
<!-- Matricula/RFC -->
<div class="row">
<label class="col-12 col-sm-3 col-form-label text-sm-right">Matricula / RFC <span class="text-danger">*</span></label>
<div class="col-12 col-sm-9 row">
<div class="col-12 col-sm-6 form-group">
<input type="text" name="registration_number" autocomplete="off" placeholder="11445587" class="form-control">
<div class="msg" id="registration_number"></div>
</div>
<div class="col-12 col-sm-6 form-group">
<input type="text" name="rfc" autocomplete="off" placeholder="XXXX01000000HVZ111" class="form-control text-uppercase">
<div class="msg" id="rfc"></div>
</div>
</div>
</div>
<!-- fecha de baja -->
<div class="row">
<label class="col-12 col-sm-3 col-form-label text-sm-right">Fecha de baja del SAAM <span class="text-danger">*</span></label>
<div class="col-12 col-sm-9 row">
<div class="col-12 col-sm-6 form-group">
<div class="input-group date datetimepicker" data-min-view="2" data-date-format="yyyy-mm-dd">
<input class="form-control" size="16" name="discharge_date" type="text" value="" readonly="">
<div class="input-group-append">
<button class="btn btn-primary"><i class="icon-th mdi mdi-calendar"></i></button>
</div>
</div>
<div class="msg" id="discharge_date"></div>
</div>
</div>
</div>
<!-- lugar de baja-->
<div class="row">
<label class="col-12 col-sm-3 col-form-label text-sm-right">Lugar donde causo baja <span class="text-danger">*</span></label>
<div class="col-12 col-sm-9 row">
<div class="col-12 col-sm-6 form-group">
<input type="text" autocomplete="off" placeholder="" name="discharge_place" class="form-control">
<div class="msg" id="discharge_place"></div>
</div>
</div>
</div>
<!-- domicilio-->
<div class="row">
<label class="col-12 col-sm-3 col-form-label text-sm-right">Domicilio donde reside <span class="text-danger">*</span></label>
<div class="col-12 col-sm-9 row">
<div class="col-12 col-sm-6 form-group">
<input type="text" autocomplete="off" placeholder="Calle" name="street" class="form-control">
<div class="msg" id="street"></div>
</div>
<div class="col-12 col-sm-4 form-group">
<input type="text" autocomplete="off" placeholder="Número" name="number" class="form-control">
<div class="msg" id="number"></div>
</div>
<div class="col-12 col-sm-6 form-group">
<input type="text" autocomplete="off" placeholder="Entre calles" name="between_streets" class="form-control">
<div class="msg" id="between_streets"></div>
</div>
<div class="col-12 col-sm-4 form-group">
<input type="text" autocomplete="off" placeholder="Colonia" name="suburb" class="form-control">
<div class="msg" id="suburb"></div>
</div>
<div class="col-12 col-sm-4 form-group">
<input type="text" autocomplete="off" placeholder="Ciudad" name="city" class="form-control">
<div class="msg" id="city"></div>
</div>
<div class="col-12 col-sm-4 form-group">
<input type="text" autocomplete="off" placeholder="Codigo postal" name="zipcode" class="form-control">
<div class="msg" id="zipcode"></div>
</div>
<div class="col-12 col-sm-4 form-group">
<input type="text" autocomplete="off" placeholder="Municipio" name="municipality" class="form-control">
<div class="msg" id="municipality"></div>
</div>
</div>
</div>
<!--teléfonos-->
<div class="row">
<label class="col-12 col-sm-3 col-form-label text-sm-right">Teléfonos <span class="text-danger">*</span></label>
<div class="col-12 col-sm-9 row">
<div class="col-12 col-sm-4 form-group">
<input type="text" autocomplete="off" placeholder="Casa: 9856699" name="phone" class="form-control">
<div class="msg" id="phone"></div>
</div>
<div class="col-12 col-sm-4 form-group">
<input type="text" autocomplete="off" placeholder="Celular: 2291854798" name="mobile" class="form-control">
<div class="msg" id="mobile"></div>
</div>
<div class="col-12 col-sm-4 form-group">
<input type="text" autocomplete="off" placeholder="Adicional: 2854798" name="additional_phone" class="form-control">
<div class="msg" id="additional_phone"></div>
</div>
</div>
</div>
<!--fotografía y curp-->
<div class="row">
<label class="col-12 col-sm-3 col-form-label text-sm-right">Fotografía <span class="text-danger">*</span></label>
<div class="col-12 col-sm-3 form-group">
<input type="file" name="picture" id="file-1" data-caption="{count} files selected" class="inputfile">
<label for="file-1" class="btn-primary mb-0"> <i class="mdi mdi-upload"></i><span>Buscar archivos...</span></label>
<div class="msg" id="picture"></div>
</div>
<label class="col-12 col-sm-2 col-form-label">CURP <span class="text-danger">*</span></label>
<div class="col-12 col-sm-3 form-group">
<input type="file" name="curp" id="file-2" data-caption="{count} files selected" class="inputfile">
<label for="file-2" class="btn-primary mb-0"> <i class="mdi mdi-upload"></i><span>Buscar archivos...</span></label>
<div class="msg" id="curp"></div>
</div>
</div>
<!--ife y oficio de baja-->
<div class="row">
<label class="col-12 col-sm-3 col-form-label text-sm-right">IFE <span class="text-danger">*</span></label>
<div class="col-12 col-sm-3 form-group">
<input type="file" name="ife" id="file-3" data-caption="{count} files selected" class="inputfile">
<label for="file-3" class="btn-primary mb-0"> <i class="mdi mdi-upload"></i><span>Buscar archivos...</span></label>
<div class="msg" id="ife"></div>
</div>
<label class="col-12 col-sm-2 col-form-label">Baja de Oficio <span class="text-danger">*</span></label>
<div class="col-12 col-sm-3 form-group">
<input type="file" name="bajaOficio" id="file-4" data-caption="{count} files selected" class="inputfile">
<label for="file-4" class="btn-primary mb-0"> <i class="mdi mdi-upload"></i><span>Buscar archivos...</span></label>
<div class="msg" id="bajaOficio"></div>
</div>
</div>
<!--issfam-->
<div class="row">
<label class="col-12 col-sm-3 col-form-label text-sm-right">Copia ISSFAM <span class="text-danger">*</span></label>
<div class="col-12 col-sm-9 row">
<div class="col-12 col-sm-4 form-group">
<input type="file" name="issfam" id="file-5" data-caption="{count} files selected" class="inputfile">
<label for="file-5" class="btn-primary"> <i class="mdi mdi-upload"></i><span>Buscar archivos...</span></label>
<div class="msg" id="issfam"></div>
</div>
</div>
</div>
<!-- fecha opcional -->
<div class="row ">
<label class="col-12 col-sm-3 col-form-label text-sm-right">Fecha de ingreso <span class="text-danger">opcional</span></label>
<div class="col-12 col-sm-9 row">
<div class="col-12 col-sm-6 form-group">
<div class="input-group date datetimepicker" data-min-view="2" data-date-format="yyyy-mm-dd">
<input class="form-control" size="16" name="admission_date" type="text" value="" readonly="">
<div class="input-group-append">
<button class="btn btn-primary"><i class="icon-th mdi mdi-calendar"></i></button>
</div>
</div>
</div>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" name="cancel" value="cancel" class="btn btn-secondary btn-space btn-lg">Cancelar</button>
<button type="submit" class="btn btn-success btn-space btn-lg" id="submit-create-military" name="submit" value="submit">Registrar</button>
</div>
</div>
<?php echo form_close();?>
</div>
</div>
</div>
</div>
</div>
</div>
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Military extends MY_Controller {
public function __construct(){
parent::__construct();
$this->load->model("Military_model", "military_model");
$this->load->library('upload');
}
public function index(){
$data = array(
'class' => '',
'view_title' => 'Lista de Asociados',
'page_title' => 'Lista de Asociados | Asociación de Retirados del Servicio de la Armada de México, en Veracruz AC.',
'vendors' => array('dataTables' => true,"select2" => false)
);
$this->loadTemplate('military/index',$data);
}
public function create(){
$data = array(
'class' => '',
'view_title' => 'Alta de Militar Retirado',
'page_title' => 'Lista de Asociados | Asociación de Retirados del Servicio de la Armada de México, en Veracruz AC.',
'vendors' => array('dataTables' => false, 'select2' => true),
'ranks' => $this->military_model->getRanks(),
'services' => $this->military_model->getServices(),
'specialities' => $this->military_model->getSpecialities(),
'subspecialities' => $this->military_model->getSubspecialities(),
'courses' => $this->military_model->getCourses()
);
$this->loadTemplate('military/create',$data);
}
public function createPost(){
$submit = $this->input->post('submit',TRUE);
$input_date = $this->input->post('admission_date');
$date = (empty($this->input->post('admission_date')) ? date('Y-m-d H:i:s') : $this->input->post('admission_date'));
$createM = array(
array(
'field' => 'rank',
'label' => 'Grado',
'rules' => 'required|trim|xss_clean',
'errors' => array(
'required' => 'Campo obligatorio.'
)
),
array(
'field' => 'name',
'label' => 'Nombre',
'rules' => 'required|trim|xss_clean|min_length[3]',
'errors' => array(
'required' => 'Campo obligatorio.',
'min_length' => 'Minimo de 3 carácteres.'
)
),
array(
'field' => 'first_lastname',
'label' => 'Apellido Paterno',
'rules' => 'required|trim|xss_clean|min_length[3]',
'errors' => array(
'required' => 'Campo obligatorio.',
'min_length' => 'Minimo de 3 carácteres.'
)
),
array(
'field' => 'second_lastname',
'label' => 'Apellido Materno',
'rules' => 'required|trim|xss_clean|min_length[3]',
'errors' => array(
'required' => 'Campo obligatorio.',
'min_length' => 'Minimo de 3 carácteres.'
)
),
array(
'field' => 'birthday_day',
'label' => 'Día de fecha de nacimiento',
'rules' => 'required|trim|xss_clean',
'errors' => array(
'required' => 'Campo obligatorio.',
)
),
array(
'field' => 'birthday_month',
'label' => 'Mes de fecha de nacimiento',
'rules' => 'required|trim|xss_clean',
'errors' => array(
'required' => 'Campo obligatorio.',
)
),
array(
'field' => 'birthday_year',
'label' => 'Año de fecha de nacimiento',
'rules' => 'required|trim|xss_clean',
'errors' => array(
'required' => 'Campo obligatorio.',
)
),
array(
'field' => 'registration_number',
'label' => 'Matricula',
'rules' => 'required|trim|xss_clean|min_length[6]|is_unique[members.registration_number]',
'errors' => array(
'required' => 'Campo obligatorio.',
'min_length' => 'Minimo de 6 carácteres.',
'is_unique' => 'Ya existe un registro con este dato.'
)
),
array(
'field' => 'rfc',
'label' => 'RFC',
'rules' => 'required|trim|xss_clean|min_length[10]|max_length[13]',
'errors' => array(
'required' => 'Campo obligatorio.',
'min_length' => 'Minimo de 10 carácteres.',
'max_length' => 'Máximo de 13 carácteres.'
)
),
array(
'field' => 'discharge_date',
'label' => 'Día de fecha de baja',
'rules' => 'required|trim|xss_clean',
'errors' => array(
'required' => 'Campo obligatorio.',
)
),
array(
'field' => 'discharge_place',
'label' => 'Lugar donde causo baja',
'rules' => 'required|trim|xss_clean|min_length[3]',
'errors' => array(
'required' => 'Campo obligatorio.',
'min_length' => 'Minimo de 3 carácteres.'
)
),
array(
'field' => 'street',
'label' => 'Calle',
'rules' => 'required|trim|xss_clean|min_length[5]',
'errors' => array(
'required' => 'Campo obligatorio.',
'min_length' => 'Minimo de 5 carácteres.'
)
),
array(
'field' => 'number',
'label' => 'Número',
'rules' => 'required|trim|xss_clean|min_length[2]',
'errors' => array(
'required' => 'Campo obligatorio.',
'min_length' => 'Minimo de 2 carácteres.'
)
),
array(
'field' => 'between_streets',
'label' => 'Entre calles',
'rules' => 'required|trim|xss_clean',
'errors' => array(
'required' => 'Campo obligatorio.'
)
),
array(
'field' => 'suburb',
'label' => 'Colonia',
'rules' => 'required|trim|xss_clean|min_length[4]',
'errors' => array(
'required' => 'Campo obligatorio.',
'min_length' => 'Minimo de 4 carácteres.'
)
),
array(
'field' => 'city',
'label' => 'Ciudad',
'rules' => 'required|trim|xss_clean|min_length[4]',
'errors' => array(
'required' => 'Campo obligatorio.',
'min_length' => 'Minimo de 4 carácteres.'
)
),
array(
'field' => 'zipcode',
'label' => 'Código Postal',
'rules' => 'required|trim|xss_clean|min_length[5]|max_length[5]|integer',
'errors' => array(
'required' => 'Campo obligatorio.',
'min_length' => 'Minimo de 5 carácteres.',
'max_length' => 'Máximo de 5 carácteres.',
'integer' => 'Solo se aceptan números.'
)
),
array(
'field' => 'municipality',
'label' => 'Municipio',
'rules' => 'required|trim|xss_clean|min_length[6]',
'errors' => array(
'required' => 'Campo obligatorio.',
'min_length' => 'Minimo de 6 carácteres.'
)
),
array(
'field' => 'phone',
'label' => 'Teléfono de Casa',
'rules' => 'required|trim|xss_clean|min_length[6]|max_length[13]',
'errors' => array(
'required' => 'Campo obligatorio.',
'min_length' => 'Minimo de 6 carácteres.',
'max_length' => 'Máximo de 13 carácteres.'
)
),
array(
'field' => 'mobile',
'label' => 'Celular',
'rules' => 'trim|xss_clean|min_length[10]|max_length[13]',
'errors' => array(
'min_length' => 'Minimo de 10 carácteres.',
'max_length' => 'Máximo de 13 carácteres.'
)
),
array(
'field' => 'additional_phone',
'label' => 'Número adicional',
'rules' => 'trim|xss_clean|min_length[6]|max_length[13]',
'errors' => array(
'min_length' => 'Minimo de 6 carácteres.',
'max_length' => 'Máximo de 13 carácteres.'
)
),
array(
'field' => 'picture',
'label' => 'Fotografía',
'rules' => 'file_check'
)
);
if($this->input->is_ajax_request()){
$this->form_validation->set_rules($createM);
if($this->form_validation->run() === FALSE){
$data = array(
"response" => $this->form_validation->error_array(),
"res" => "error"
);
}else{
$data = array(
"response"=>"all good",
"res"=>"ok"
);
}
echo json_encode($data, JSON_NUMERIC_CHECK);
}elseif ( $this->input->post('cancel') === "cancel" ){
redirect(base_url("panel/principal"),"refresh");
}else{
show_404();
}
}
}
?>
<?php
class MY_Form_validation extends CI_Form_validation {
public function __construct() {
parent::__construct();
}
public function file_check($str){
$CI = $get_instance();
$allowed_mime_type_arr = array('application/pdf','image/gif','image/jpeg','image/pjpeg','image/png','image/x-png');
$mime = get_mime_by_extension($_FILES['file']['name']);
if(isset($_FILES['file']['name']) && $_FILES['file']['name']!=""){
if(in_array($mime, $allowed_mime_type_arr)){
return true;
}else{
$CI->form_validation->set_message('file_check', 'Please select only pdf/gif/jpg/png file.');
return false;
}
}else{
$CI->form_validation->set_message('file_check', 'Please choose a file to upload.');
return false;
}
}
function validate_image($str){
/*$CI =& get_instance();
$CI->form_validation->set_message('validate_image', 'testing 123...');
$check = TRUE;
if ((!isset($_FILES[$field])) || $_FILES[$field]['size'] == 0) {
$CI->form_validation->set_message('validate_image', 'The {field} field is required');
$check = FALSE;
}else if (isset($_FILES[$field]) && $_FILES[$field]['size'] != 0) {
$allowedExts = array("gif", "jpeg", "jpg", "png", "JPG", "JPEG", "GIF", "PNG");
$allowedTypes = array(IMAGETYPE_PNG, IMAGETYPE_JPEG, IMAGETYPE_GIF);
$extension = pathinfo($_FILES[$field]["name"], PATHINFO_EXTENSION);
$detectedType = exif_imagetype($_FILES[$field]['tmp_name']);
$type = $_FILES[$field]['type'];
if (!in_array($detectedType, $allowedTypes)) {
$CI->form_validation->set_message('validate_image', 'Invalid Image Content!');
$check = FALSE;
}
if(filesize($_FILES[$field]['tmp_name']) > 2000000) {
$CI->form_validation->set_message('validate_image', 'The Image file size shoud not exceed 20MB!');
$check = FALSE;
}
if(!in_array($extension, $allowedExts)) {
$CI->form_validation->set_message('validate_image', "Invalid file extension {$extension}");
$check = FALSE;
}
}
return $check;*/
return false;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment