%PDF- %PDF-
| Direktori : /home/tjamichg/intranet.tjamich.gob.mx/intranet/sistemas/requisiciones/ |
| Current File : /home/tjamichg/intranet.tjamich.gob.mx/intranet/sistemas/requisiciones/modalFirmaRecibido.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
$conf = new Configuracion();
$conf->conectarBD();
$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">
<form id="formFirmar" action="controller/firma_recibido.php">
<input type="hidden" name="id_firma" id="id_firma" value="">
<input type="hidden" name="rfc" value="<?php echo $rfc ?>" required >
<input type="hidden" name="id_requisicion" id="id_requisicion" value="" >
<input type="hidden" name="id_usuario" value= "<?php echo $id_usuario; ?>">
<input type="hidden" name="password2" value="<?php echo $password2 ?>" required >
<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='Requisiciones' >
</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: 'registroFirma.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);
//console.log(data);
/*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>');
}).always(function () {
//console.log('always ');
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>