source: prototipo_portal_2018/prototipo/static/js/functions/firmarDocumentoBDOC.js @ 025e022

Last change on this file since 025e022 was 025e022, checked in by José Sulbarán <jsulbaran@…>, 7 years ago

SE comenzo agregar la firma y se mejoro los reportes

  • Property mode set to 100644
File size: 6.5 KB
Line 
1function FinalizarFirmaBDOC(){
2
3
4                $.ajax({
5                                type: 'POST',
6                                contentType: 'application/json',
7                                //url:"https://192.168.12.125:8443/Murachi/0.1/archivos/bdocs/resenas",
8                                //url:"https://192.168.12.125:8443/Murachi/0.1/archivos/bdocs/firmas/post",
9                                url:"https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/bdocs/firmas/post",
10                                dataType: 'json',
11                                data: JSON.stringify({"signature":signature.hex, "containerId":fileId}),
12                                headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},
13                                success: function(data, textStatus, jqXHR){
14                                        /*
15                                        var json_x = data;
16                                        var msg = json_x['message'];                                                                                           
17                                        alert('Archivo firmado en el servidor: ' + msg);
18                                        */
19                                        alert('Archivo firmado correctamente: ' + data['signedFileId']);
20                                       
21                                        //alert("ver respuesta");
22                                        //var linkToDownload = "<a href=\"https://192.168.12.125:8443/Murachi/0.1/archivos/descargas/" + data['signedFileId'] +"\">descargar archivo firmado</a>";
23                                        //var linkToDownload = "<a href=\"https://172.16.137.11:8443/Murachi/murachi/archivos/descargas/" + data['signedFileId'] +"\">descargar archivo firmado</a>";
24                                        var linkToDownload = "<a href=\"https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/descargas/" + data['signedFileId'] +"\">descargar archivo firmado</a>";
25                                        //alert(linkToDownload);
26                                        document.getElementById("respuesta").innerHTML = linkToDownload; 
27                                       
28                                       
29
30                                                                                                                                       
31                                       
32                                },
33                                error: function(jqXHR, textStatus, errorThrown){
34                                        alert('error en /bdocs/resenas: ' + textStatus);
35                                        $("#respuesta").html("error en /bdocs/resenas: " + textStatus);
36                                }
37                        });
38                                                                               
39
40}
41
42
43// ahora llamar al ajax de obtener la resena del bdoc
44function ObtenerHashPDFServerBDOC(parameters, cert, fileId){   
45
46        $.ajax({
47                type: 'POST',
48                contentType: 'application/json',                               
49                //url:"https://192.168.12.125:8443/Murachi/0.1/archivos/bdocs",
50                //url:"https://192.168.12.125:8443/Murachi/0.1/archivos/bdocs/firmas/pre",
51                url:"https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/bdocs/firmas/pre",
52                dataType: "json",
53                data: parameters,
54                headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},
55                success: function(data, textStatus, jqXHR){
56                        var json_x = data;
57                        var hash = json_x['hash']; 
58                        //alert("hash recibido del servidor "+hash);
59                       
60                        var hashtype = "SHA-256";
61                        var lang = "eng";
62                       
63                        window.hwcrypto.sign(cert, {type: hashtype, hex: hash}, {lang: lang}).then(function(signature) {
64                               
65                                //var signature = response.hex.match(/.{1,64}/g).join("\n");
66                        //log_text("Generated signature:\n" + response.hex.match(/.{1,64}/g).join("\n"));
67                        //log_text("Generated signature:\n" + signature.hex);
68                       
69                        //alert("valor de la firma: " + signature.hex);                                                                 
70                        FinalizarFirmaBDOC(signature.hex, fileId);
71
72                        }, function(err) {
73                                log_text("sign() failed: " + err);
74                                //alert("sign() failed: " + err);
75                                                        var error;
76                                        if(err == "Error: user_cancel") {
77                                    alert("sign() failed: El usuario cancelo la operación");
78                                    error = "El usuario cancelo la operación"; 
79                                }     
80                                else if(err == "Error: no_certificates") {
81                                    alert("sign() failed: No hay certificado disponible");
82                                    error = "No hay certificado disponible";
83                                }
84                                else if(err == "Error: no_implementation") {
85                                    alert("sign() failed: No hay soporte para el manejo del certificado");
86                                    error = "No hay soporte para el manejo del certificado";
87                                }       
88
89                                $("#respuesta").html("sign() failed: " + error);
90                });
91                       
92                },                                                             
93                error: function(jqXHR, textStatus, errorThrown){
94                        //alert('error: ' + textStatus);
95                        //var responseText = jQuery.parseJSON(jqXHR.responseText);
96                        alert('ajax error function: ' + jqXHR.responseText);
97                        $("#respuesta").html("error function: " + jqXHR.responseText);
98                }
99               
100        });
101
102}
103
104// Obtenemos el certificado Bdoc
105function ObtenerCertificadoFirmanteBDOC(response){
106
107        // identificador del archivo en el servidor
108        var fileId = response.containerId.toString();
109       
110        // seleccionar certificado del firmante
111        var cert;
112        window.hwcrypto.getCertificate({lang: "en"}).then(
113                function(response) {
114                        var cert = response;                   
115                        var parameters = JSON.stringify({
116                                "fileId":fileId,
117                                "certificate":cert.hex,
118                                "city":"Merida",
119                                "state":"Merida",
120                                "postalCode":"5101",
121                                "country":"Venezuela",
122                                "role":"Analista",
123                                "addSignature":false
124                                });
125                       
126                        // ahora llamar al ajax de obtener la resena del pdf
127                        ObtenerHashPDFServerBDOC(parameters, cert, fileId);     
128                }, 
129                function(err) {
130                        log_text("getCertificate() failed: " + err);
131                        var error;
132                        if(err == "Error: user_cancel") {
133                            alert("getCertificate() failed: El usuario cancelo la operación");
134                            error = "El usuario cancelo la operación"; 
135                        }     
136                        else if(err == "Error: no_certificates") {
137                            alert("getCertificate() failed: No hay certificado disponible");
138                            error = "No hay certificado disponible";
139                        }
140                        else if(err == "Error: no_implementation") {
141                            alert("getCertificate() failed: No hay soporte para el manejo del certificado");
142                            error = "No hay soporte para el manejo del certificado";
143                        }
144                        $("#respuesta").html("getCertificate() failed: " + error);
145                });
146                                                       
147
148}
149
150// Primer paso subimos documentos al servidor
151function SubirDocumentServerBdoc(formData){
152   
153    $.ajax({
154        //url: "https://192.168.12.125:8443/Murachi/0.1/archivos/bdocs/cargas",
155        url: "https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/bdocs/cargas",
156        type: "post",
157        dataType: "json",
158        data: formData,
159        cache: false,
160        contentType: false,
161                processData: false,
162                headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},
163                success: function(response) {                   
164                        ObtenerCertificadoFirmanteBDOC(response);
165
166        },     
167        error: function(xhr, status, error) {
168                //Que se ejecuta cuando finalice la petición de con error
169                        $("#respuesta").html('Error...!!!');
170               
171                        alert(xhr.responseText);
172                        alert(error);
173               
174                        alert("ocurrio un error en cargas");                                           
175                }
176    });
177}
178
179
180$("#Form-sign-bdoc").on('submit', function(event) {
181        event.preventDefault();
182
183        var formData = new FormData(); 
184
185    for (var i=0; i<$("#file-sign-bdoc")[0].files.length; i++){
186                formData.append("upload", $("#file-sign")[0].files[i]);
187        }       
188   
189    SubirDocumentServerBdoc(formData);
190
191});
192
193
194
195$("#button_SignBDOC").on('click', function() {
196        $("#file-sign-bdoc").trigger('click');
197
198});
199
200
201$("#file-sign-bdoc").on('change', function() {
202
203        $("#sign_bdoc").show();
204
205});
Note: See TracBrowser for help on using the repository browser.