%PDF- %PDF-
Direktori : /home/tjamichg/intranet.tjamich.gob.mx/intranet/sistemas/usuarios/ |
Current File : /home/tjamichg/intranet.tjamich.gob.mx/intranet/sistemas/usuarios/modalFirmaSolicitud.php |
<div id="modal_firma" tabindex="-1" role="dialog" aria-labelledby="modal-stackable-label" aria-hidden="false" class="modal fade"> <div class="modal-dialog modal-wide-width"> <!-- para cambiar el tipo de modal: modal-dialog modal-wide-width --> <div class="modal-content"> <head> <meta charset="utf-8"> </head> <div class="modal-body"><br> <script src="https://code.jquery.com/jquery-1.9.1.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/validate.js/0.13.1/validate.min.js"></script> <link rel='stylesheet' href='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css' integrity='sha512-dTfge/zgoMYpP7QbHy4gWMEGsbsdZeCXz7irItjcC3sPUFtf0kuFbDz/ixG7ArTxmDjLXDmezHubeNikyKGVyQ==' crossorigin='anonymous'> <script src='https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js'></script> <!--<script src="../../common/js/jquery-1.10.2.min.js"></script> --> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.0/jquery.validate.min.js"></script> <script src="vendors/jqueryvalidate/localization/messages_es.min.js" type="text/javascript"></script> <script src='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js' integrity='sha512-K1qjQ+NcF2TYO/eI3M6v8EiNYZfA95pQumfvcVrTHtwQVDG+aHRqLi/ETn2uB+1JqwYqVG3LIvdm9lj6imS/pQ==' crossorigin='anonymous'></script> <script src='js/bootbox.js'></script> <?php $id_usuario = $_SESSION['id_usuario']; $sql = "SELECT correo,rfc,password FROM tjam_empleados e WHERE id = $id_usuario "; $rst = $conf->consulta($sql); $rfc = $rst[0]["rfc"]; $password2 = $rst[0]["password"]; $correoTo = $rst[0]["correo"]; ?> <div class="panel panel-green"> <div class="panel-body pan"> <!--target="_blank"--> <form id="formFirmar" action="controller/firmar_solicitud.php?id_firma=$id_firma"> <input type="hidden" name="id_firma" id="id_firma" value=""> <input type="hidden" name="id_bitacora_firma" id="id_bitacora_firma" value=""> <input type="hidden" name="id_usuario" id="id_usuario" value="<?php echo $id_usuario; ?>"> <div class="form-body pal"> <div class="row"> <div class="form-group"> <label for="InputText"> <h3> <dt>FIRMA ELECTRONICA AVANZADA</dt> </h3> </label><br> </div> <div class="row"> <div class="col-md-12"> <div class="form-group"><label for="inputName" class="control-label"> <dt>Email</dt> </label> <div class="input-icon left"> <input type="email" class="form-control" name="usuario" readonly value="<?php echo $correoTo; ?>" aria-describedby="emailHelp" placeholder="Coloque el correo electronico" /> </div> </div> </div> <div class="col-md-12"> <div class="form-group"><label for="inputName" class="control-label"> <dt>Password</dt> </label> <div class="input-icon left"><input type="password" class="form-control" name="password" required aria-describedby="passHelp" placeholder="Coloque su contraseƱa" /> </div> </div> </div> <div class="col-md-12"> <div class="form-group"><label for="inputName" class="control-label"> <dt>LLave </dt> </label> <div class="input-icon left"><i class="fa fa-key"></i> <input type="file" accept=".key" required class="form-control" name="llavePrivada" aria-describedby="privateKeyHelp"> </div> </div> </div> <div class="col-md-12"> <div class="form-group"><label for="inputName" class="control-label"> <dt>Certificado</dt> </label> <div class="input-icon left"><i class="fa fa-certificate"></i><input type="file" accept=".cer" required class="form-control" name="llavePublica" aria-describedby="publicKeyHelp"> </div> </div> </div> <input type='hidden' class="form-control" name="data" value='Nominas'> </div> </div> <div class="form-actions text-right pal"> <button type="button" class="btn btn-primary btn-block" id="sendFirmar">Firmar</button> <br> <button type="button" data-dismiss="modal" class="btn btn-danger btn-block">Cancelar</button> </div> </form> </div> </div> </div> </div> </div> </div> </div> <script> function readFile(file) { return new Promise((resolve, reject) => { var fr = new FileReader(); fr.onload = () => { var base64 = btoa(new Uint8Array(fr.result).reduce((data, byte) => data + String.fromCharCode(byte), '')); resolve(base64); }; fr.readAsArrayBuffer(file); }); } function firmaValidar(usuario, certificado, firma, timestamp, timestampfirma) { $.ajax({ type: "POST", url: 'registroFirmaSolicitud.php', data: { usuarioF: usuario, certificadoF: certificado, firmaF: firma, timestampF: timestamp, timestampfirmaF: timestampfirma }, success: function (response) { var jsonData = JSON.parse(response); if (jsonData.success >= 1) { $('#modal_firma').modal('hide'); document.getElementById("id_firma").value = jsonData.success; //alert('Firma Correcta!'); var ids = document.getElementById("id_firma").value; //console.log(ids); //$('input:hidden[name=id_firma]').val(ids); $("#formFirmar").submit(); } else { alert('Error de firma!'); $('#modal_firma').modal('hide'); } } }); } function firmar(results) { var dialog = results[2]; var form = new FormData($('#formFirmar')[0]); var data = {}; form.forEach(function (value, key) { data[key] = value; }); data['llavePrivada'] = results[0]; data['llavePublica'] = results[1]; //console.log(data); $.ajax({ //url: "http://189.206.14.26:8080/ControlCertificados/ws/firma/firmar", url: "https://jel.tjamich.gob.mx/ApiJel/FEA/Firmar", cache: false, type: "POST", dataType: "json", contentType: "application/json", data: JSON.stringify(data), headers: { Authorization: "Basic dGphbWljaGc6VGphbWljaDE2" } }).done(function (data) { //firmaValidar(data.Data.usuario, data.Data.certificado, data.Data.firma, data.Data.timestamp, data.Data.timestampfirma); if (data.Result == true) { firmaValidar(data.Data.usuario,data.Data.certificado,data.Data.firma,data.Data.timestamp,data.Data.timestampfirma); } else { var str1 = data.Data.applicationMessage; if (str1.includes("duplicidad")) { bootbox.alert('<p class="text-center"><span class="fa fa-times"></span> No pudo ser firmado </p><p>' + (data ? (data.Data.applicationMessage ? data.Data.applicationMessage + ', en la Coordinaci\u00F3n de Inform\u00E1tica.' : data.Data.statusMessage) : 'Error desconocido') + '</p>'); } else { bootbox.alert('<p class="text-center"><span class="fa fa-times"></span> No pudo ser firmado </p><p>' + (data ? (data.Data.applicationMessage ? data.Data.applicationMessage + ', verifique la informaci\u00F3n.' : data.Data.statusMessage) : 'Error desconocido') + '</p>'); } } /*bootbox.alert({ title: "Firmado", message: '<p style="word-break: break-all;"><span>Usuario:' + data.Data.usuario + '</span><br><span>Certificado:' + data.Data.certificado + '</span><br><span>Firma:' + data.Data.firma + '</span><br><span>Fecha:' + data.Data.timestamp + '</span><br><span>Firma Fecha:' + data.Data.timestampfirma + '</span><br></p>' });*/ }).fail(function (jqXHR, textStatus, errorThrown) { var d = null; try { d = JSON.parse(data.responseText); } catch (ex) { console.log(ex); } //bootbox.alert('<p class="text-center"><span class="fas fa-times"></span> No se puede firmar </p><p>' + (d ? (d.applicationMessage ? d.applicationMessage : d.statusMessage) : 'Error desconocido') + '</p>'); var str1 = jqXHR.responseJSON.applicationMessage; if (str1.includes("duplicidad")) { bootbox.alert('<p class="text-center"><span class="fa fa-times"></span> No pudo ser firmado </p><p>' + (jqXHR ? (jqXHR.responseJSON.applicationMessage ? jqXHR.responseJSON.applicationMessage + ', en la Coordinaci\u00F3n de Inform\u00E1tica.' : jqXHR.responseJSON.statusMessage) : 'Error desconocido') + '</p>'); } else { bootbox.alert('<p class="text-center"><span class="fa fa-times"></span> No pudo ser firmado </p><p>' + (jqXHR ? (jqXHR.responseJSON.applicationMessage ? jqXHR.responseJSON.applicationMessage + ', verifique la informaci\u00F3n.' : jqXHR.responseJSON.statusMessage) : 'Error desconocido') + '</p>'); } }).always(function () { setTimeout(function () { dialog.modal('hide'); }, 500); }); } function sendFirmar() { var dialog = bootbox.dialog({ message: '<p class="text-center"><span class="fas fa-sync fa-spin"></span> Firmando</p>', closeButton: false }); var k1 = null, k2 = null; $('#formFirmar :input[type="file"]').each(function () { var files = this.files; var f = files[0]; if (f) { //console.log("Contenido"); if (k1) { k2 = readFile(f); } else { k1 = readFile(f); } } else { dialog.modal('hide'); bootbox.alert({ message: "Falta un archivo" }); return; } }); Promise.all([k1, k2, dialog]).then(function (results) { firmar(results); }); } /*$('#sendFirmar').click(function () { sendFirmar(); });*/ $(function () { $("#formFirmar").validate({ rules: { usuario: { required: true, email: true, rangelength: [0, 1000] }, password: { required: true, rangelength: [4, 100] }, llavePrivada: { required: true }, llavePublica: { required: true }, data: { required: true } }, errorPlacement: function (error, element) { element.next('small').append(error); }, highlight: function (element) { $(element).next('small').show(); $(element).addClass('border border-danger'); }, unhighlight: function (element) { $(element).next('small').hide(); $(element).removeClass('border border-danger'); $(element).addClass('border border-success'); } }); $("#formFirmar").find('small').hide(); $('#sendFirmar').click(function () { sendFirmar(); }); }); </script>