source: prototipo_portal_2018/prototipo/static/js/functions/firmarDocumentoBDOC.js @ 9be8a48

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

Se agrego la firma bdoc y se mejoro la firma pdf

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