%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/tjamichg/intranet.tjamich.gob.mx/intranet/sistemas/usuarios/
Upload File :
Create Path :
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>

Zerion Mini Shell 1.0