{% extends 'base.html.twig' %}
{% block title %}Registro{% endblock %}
{% block body %}
<div class="accordion" id="moduloSeguridades_Profile" style="margin-bottom: 2.1rem !important;">
<div class="accordion-item">
<h2 class="accordion-header">
<button class="accordion-button active" type="button" data-bs-toggle="collapse" data-bs-target="#perfil"></button>
</h2>
<div id="perfil" class="accordion-collapse collapse show">
<div class="accordion-body">
<div class="fieldsetForm">
{{ form_start(form) }}
<div class="row g-2">
<div class="col-lg-10">
<div class="row">
<div class="col-lg-4">
{{ form_label(form.mailPersonal )}}
{{form_widget(form.mailPersonal ,{'attr':{'disabled':false}})}}
</div>
</div>
<div class="row mt-2">
<div class="col-lg-4">
{{ form_label(form.nombres )}}
{{form_widget(form.nombres )}}
</div>
</div>
<div class="row mt-2">
<div class="col-lg-4">
{{ form_label(form.apellidos )}}
{{form_widget(form.apellidos )}}
</div>
</div>
<div class="row mt-2">
<div class="col-lg-4">
{{ form_label(form.tipoIdentificacion )}}
{{form_widget(form.tipoIdentificacion )}}
</div>
</div>
<div class="row mt-2">
<div class="col-lg-4">
{{ form_label(form.numeroIdentificacion )}}
{{form_widget(form.numeroIdentificacion )}}
</div>
</div>
<div class="row mt-2">
<div class="col-lg-4">
{{ form_label(form.telCelular )}}
{{form_widget(form.telCelular )}}
</div>
</div>
<div class="row mt-2">
<div class="col-lg-4">
{{ form_label(form.direccionSector )}}
{{form_widget(form.direccionSector )}}
</div>
</div>
<div class="row mt-2">
<div class="col-lg-3">
{{ form_label(form.fechaNacimiento )}}
{{form_widget(form.fechaNacimiento )}}
</div>
</div>
<div class="row mt-2">
<div class="col-lg-3">
{{ form_label(form.idProvincias )}}
{{form_widget(form.idProvincias )}}
</div>
</div>
<div class="row mt-2">
<div class="col-lg-3">
{{ form_label(form.idCantones )}}
{{form_widget(form.idCantones )}}
</div>
</div>
<div class="row mt-2">
<div class="col-lg-3">
{{ form_label(form.idParroquias )}}
{{form_widget(form.idParroquias )}}
</div>
</div>
</div>
</div>
<div class="row justify-content-center mt-5">
<div class="col-auto">
{{form_widget(form.guardar )}}
</div>
</div>
{{ form_end(form) }}
</div>
</div>
</div>
</div>
</div>
{% endblock %}
{% block javascripts %}
<script>
//Selectores
const $form = document.forms.form;
const $provinciasS = $form.form_idProvincias
const $cantonesS = $form.form_idCantones
const $parroquiasS = $form.form_idParroquias
//Events
$form.form_tipoIdentificacion.addEventListener('change',() => {
$form.form_numeroIdentificacion.value = ''
// $form.form_id.value = ''
if($form.form_tipoIdentificacion.value === 'CÉDULA'){
$form.form_numeroIdentificacion.onkeypress = () => { soloNumeros(event) }
$form.form_numeroIdentificacion.onblur = () => { validaCI() }
}else{
$form.form_numeroIdentificacion.onkeypress = () => { soloNumerosLetras(event) }
$form.form_numeroIdentificacion.onblur = () => { validaExistNumeroIdentificacion() }
}
})
$form.form_nombres.onkeypress = () => { soloLetras(event) }
$form.form_apellidos.onkeypress = () => { soloLetras(event) }
$form.form_telCelular.onkeypress = () => { soloNumeros(event) }
$form.addEventListener('submit', async(event) => {
event.preventDefault()
const validateDate = validaFechaNacimiento($form.form_fechaNacimiento.value)
if(!validateDate){
return ToastError('Datos Inválidos', 'Fecha de Nacimiento Incorrecta')
}
const data = new FormData($form)
const response = await getDataPost('addPersonInSystemExternal',data)
if(response.response){
Swal.fire({
title: 'Registro guardado',
text: 'Su información personal se agregó con éxito.',
icon: 'success',
footer: '<span>Centro de capacitación Nival</span>',
confirmButtonColor: '#3085d6',
confirmButtonText: 'Confirmar',
allowOutsideClick: false,
allowEscapeKey: false,
allowEnterKey: false,
stopKeydownPropagation: false
}).then((result) => {
if (result.value) {
setTimeout(function () { location.href = '/' }, 1000);
}
})
}else{
ToastError('Error',response.message)
}
})
$form.form_idProvincias.addEventListener('change',async () => {
const idProvincia = $form.form_idProvincias.value
if(!idProvincia){
ToastError('Datos Inválidos', 'debe seleccionar una Provincia')
$cantonesS.value = ''; $cantonesS.disabled = true
$parroquiasS.value = ''; $parroquiasS.disabled = true;return
}
const cantones = await getDataPost('getCantones', new URLSearchParams(`idProvincia=${idProvincia}`))
clearSelect($cantonesS, cantones.length != 0 ? false:true )
cantones.forEach((item)=>{
$cantonesS.append(createTemplate(`<option value='${item.id}'>${item.nombre}</option>`))
clearSelect($parroquiasS, true)
})
})
$form.form_idCantones.addEventListener('change',async () => {
const idCanton = $form.form_idCantones.value
if(!idCanton){
ToastError('Datos Inválidos', 'debe seleccionar un Cantón')
$parroquiasS.value = ''; $parroquiasS.disabled = true;return
}
const parroquias = await getDataPost('getParroquias', new URLSearchParams(`idCanton=${idCanton}`))
clearSelect($parroquiasS, parroquias.length != 0 ? false:true )
parroquias.forEach((item)=>{
$parroquiasS.append(createTemplate(`<option value='${item.id}'>${item.nombre}</option>`))
})
})
</script>
{# <script src="{{ asset('assets/js/seguridades/profile.js')}}"></script> #}
{{ include('Seguridades/admin/menu/menuJs.html.twig')}}
<script type="text/javascript" src="{{ asset('assets/js/gijgo/gijgo.min.js') }}"></script>
<script type="text/javascript">
async function load(){
await datePicker()
}
function clearSelect($select, disabled=false){
$select.innerHTML = ''
$select.append(createTemplate(`<option value=''>SELECCIONAR</option>`))
$select.disabled = disabled
}
async function validaCI(){
const ci = $form.form_numeroIdentificacion
if(!ci.value){
return ToastError('Campos Vacíos','Tiene que ingresar un número de Identificación')
}
const response = await getDataPost('validateCI', new URLSearchParams(`ci=${ci.value}`))
if(!response){
ci.value = ''
$form.form_guardar.disabled = true
return ToastError('Datos Inválidos','El número de identificación que ingreso no es correcto')
}
await validaExistNumeroIdentificacion()
}
async function validaExistNumeroIdentificacion(){
const ci = $form.form_numeroIdentificacion
const existCi = await getDataPost('getExistNumeroIdentificacion', new URLSearchParams(`ci=${ci.value}`))
if(existCi){
ci.value = ''
$form.form_guardar.disabled = true
return ToastError('Datos Inválidos','El número de identificación que ingreso ya existe')
}
$form.form_guardar.disabled = false
}
load()
</script>
{% endblock %}