source: portal_2019/js/handlerJSON.js

devportal
Last change on this file was 3483075, checked in by Argenis Osorio <argenisosorio580@…>, 9 months ago

Agregada nueva informacicón a las preguntas frecuentes y realizados ajuestes menores de forma

  • Property mode set to 100755
File size: 11.2 KB
Line 
1/** Funcion para el manejo de un archivo json
2 * Recibe el json (verificación de una firma pdf), lo introduce en una tabla y devuelve una un cadena de texto.
3 */
4
5function manejoJsonPDF(json) {
6  var fielJsonEs = {
7    fileId: "Identificador único del archivo en el servidor",
8    fileExist:"El archivo se cargó exitosamente en el servidor",
9    mimeType:"Tipo MIME del archivo verificado",
10    error:"Extension not supported. En caso de que el archivo sea diferente de PDF y BDOC",
11    numberOfSignatures:"Número de firmas existentes en el archivo",
12    signatures:"Lista de firmas",
13    signatureType:"Tipo de firma de archivo PDF",
14    signedOn:"Fecha en que se realiza la firma",
15    integrityCheck:"Chequea la integridad de la firma",
16    timeStamp:"Estampilla de tiempo",
17    reason:"Razón de la firma",
18    location:"Ubicación donde se realiza la firma",
19    alternativeNameOfTheSigner:"Nombre alternativo del firmante",
20    signerCertificateValidFrom:"Fecha de inicio de validez del certificado",
21    signerCertificateStillValid:"El certificado todavía está válido",
22    signerCertificateHasExpired:"El certificado expiró",
23    signatureCoversWholeDocument:"La firma abarca todo el documento PDF",
24    filterSubtype:"Tipo de subfiltro: /adbe.pkcs7.sha1, /adbe.pkcs7.detached",
25    signerCertificateSubject:"Sujeto firmante",
26    signerCertificateValidAtTimeOfSigning:"El certificado es válido en el momento de la firma",
27    encryptionAlgorithm:"Algoritmo de cifrado",
28    timeStampService:"Servicio de estampillado de tiempo",
29    digestAlgorithm:"Algoritmo hash (reseña)",
30    certificatesVerifiedAgainstTheKeyStore:"Certificado verificado contra el repositorio de certificados confiables",
31    documentRevision:"Número de revisión del documento PDF",
32    nameOfTheSigner:"Nombre del firmante",
33    totalDocumentRevisions:"Número total de revisiones del documento PDF",
34    contactInfo:"Información de contacto del firmante",
35    timeStampVerified:"Estampilla de tiempo verificada",
36    signerCertificateIssuer:"Emisor del certificado firmante",
37    signerCertificateValidTo:"Fecha de fin de validez del certificado",
38    signerCertificateSerial:"BDOC: Serial del certificado del firmante",
39    signatureProfile:"BDOC: Perfil de la firma",
40    signatureMethod:"BDOC: Algoritmo de firma utilizado",
41    signatureId:"BDOC: identificador de la firma",
42    signatureSigningTime:"Fecha en que se realiza la firma",
43    signerCertificateIsValid:"El certificado todavía está válido",
44    signatureValidationException:"BDOC: Exepciones de la validación de la firma",
45    isValid:"BDOC: Firma electrónica válida",
46    signerCertificateSubjectName:"Nombre del firmante",
47    containerValidation:"BDOC: Especifica si el contenedor posee una estructura válida",
48    numberOfDataFiles:"BDOC: Cantidad de archivos incluidos en el contenedor BDOC",
49    dataFiles:"BDOC: Lista de archivos incluidos en el contenedor",
50    name:"BDOC: Nombre del archivo incluido en el contenedor",
51    dataFileSize:"BDOC: Tamaño del archivo incluido en el contenedor",
52    filename:"BDOC: Nombre del archivo incluido en el contenedor",
53    mediaType:"BDOC: Tipo MIME del archivo incluido en el contenedor"
54  };
55  var objVarVerifique = JSON.parse(json);
56  var signatures = ''; //variable que maneja las firmas
57  var fields = ''; //variable que maneja los campos de la firma
58  var title = '<h2 class="text-dark pb-3"> Información de la Firma Electrónica </h2>';
59  var head =
60    `<div class="container-table">
61      <table class="display table table-striped table-bordered" >
62        <thead>
63          <tr class="font-weight-bold">
64            <th class="text-right border-bottom-0 font-weight-bold"> Campo </th>
65            <th class="text-left border-bottom-0 font-weight-bold"> Descripción </th>
66          </tr>
67        </thead>
68        <tbody>`;
69  var footer =
70        `</tbody>
71      </table>
72    </div>`;
73  var html = title;
74  var numsign = 0;
75  var htmltemp = '';
76  var objxEsp = '';
77
78  /* Toma de decisión para mostrar en la respuesta la tabla cuando el documento
79  *  está firmado electrónicamente, de lo contrario, muestra un alert de
80  *  bootstrap notificando que el documento no está firmado.
81  */
82  if (objVarVerifique.numberOfSignatures >= 1) {
83    $.each(objVarVerifique, function(idx, obj) {
84
85      if (idx == "error") {
86        html = '<h2 class="text-danger"> Extensión no soportada, verifique el archivo </h2>';
87        return(html);
88      }
89
90      if (idx == "numberOfSignatures") {
91        numsign = obj;
92        html += `<p class="text-left text-dark"> ${fielJsonEs[idx]}: ${obj} </p>`;
93      }
94
95      if (idx == "signatures") {
96        signatures = obj; //se almacena la(s) cabecera(s) de las firmas
97      }
98    });
99
100    var contsing = 1; // variable que indica la firma donde esta posicionado
101
102    // recorre las firmas signatures
103
104    $.each(signatures, function(idx, obj) {
105      html += '<p class="text-left text-dark pt-3"> Información de la firma <strong> Nro '+ contsing +'</strong><p>';
106      html += head;
107
108      // variable que indica el campo de la firma -- arranca en el campo 6 porque necesitamos que muestre de primero
109      // las 5 campos requeridos
110      var contfiels = 8;
111
112      fields = obj; // variable que almacena los campos de la firma
113      $.each(fields, function(id, objx) {
114        // Recorreo los campos de la firma
115        if ( fielJsonEs[id] == 'Nombre del firmante' ) {
116          html += `<tr><td class="text-right"> ${fielJsonEs[id]} </td><td class="text-left"> ${objx} </td></tr>`;
117        }
118        else if (fielJsonEs[id]=='Fecha en que se realiza la firma') {
119          html += `<tr><td class="text-right"> ${fielJsonEs[id]} </td><td class="text-left"> ${objx} </td></tr>`;
120        }
121        else if (fielJsonEs[id]=='Chequea la integridad de la firma') {
122          if(objx == 'true') {
123            objxEsp = 'verdadero';
124          } else {
125            objxEsp='falso';
126          }
127          html += `<tr><td class="text-right"> ${fielJsonEs[id]} </td><td class="text-left"> ${objxEsp} </td></tr>`;
128        }
129        else if( fielJsonEs[id] == 'El certificado todavía está válido' ) {
130          if(objx == 'true') {
131            objxEsp = 'verdadero';
132          } else {
133            objxEsp='falso';
134          }
135          html += `<tr><td class="text-right"> ${fielJsonEs[id]} </td><td class="text-left"> ${objxEsp} </td></tr>`;
136        }
137        else if(fielJsonEs[id]=='Fecha de inicio de validez del certificado') {
138          html += `<tr><td class="text-right"> ${fielJsonEs[id]} </td><td class="text-left"> ${objx} </td></tr>`;
139        }
140        else if(fielJsonEs[id]=='Fecha de fin de validez del certificado') {
141          html += `<tr><td class="text-right"> ${fielJsonEs[id]} </td><td class="text-left"> ${objx} </td></tr>`;
142        }
143        else if(fielJsonEs[id]=='El certificado es válido en el momento de la firma') {
144          if(objx == 'true') {
145            objxEsp = 'verdadero';
146          } else {
147            objxEsp='falso';
148          }
149          html += `<tr><td class="text-right"> ${fielJsonEs[id]} </td><td class="text-left"> ${objxEsp} </td></tr>`;
150        } else {
151          if ( objx == 'true' ) {
152            htmltemp += `<tr><td class="text-right"> ${fielJsonEs[id]} </td><td class="text-left"> verdadero </td></tr>`;
153          } else if(objx == 'false'){
154            htmltemp += `<tr><td class="text-right"> ${fielJsonEs[id]} </td><td class="text-left"> falso </td></tr>`;
155          } else {
156            htmltemp += `<tr><td class="text-right"> ${fielJsonEs[id]} </td><td class="text-left"> ${objx} </td></tr>`;
157          }
158            contfiels++;
159        }
160      });
161
162      contsing++;
163      html += htmltemp;
164      htmltemp = '';
165      html += footer;
166    });
167    return(html);
168  }
169  else {
170
171    $.each(objVarVerifique, function(idx, obj) {
172
173      if (idx == "error") {
174        html = '<h2 class="text-danger"> Extensión no soportada, verifique el archivo </h2>';
175        return(html);
176      }
177
178      if (idx == "numberOfSignatures") {
179        numsign = obj;
180        html += `<p class="text-left text-dark"> ${fielJsonEs[idx]}: ${obj} </p>`;
181      }
182
183      if (idx == "signatures") {
184        signatures = obj; //se almacena la(s) cabecera(s) de las firmas
185      }
186    });
187
188    var contsing = 1; // variable que indica la firma donde esta posicionado
189
190    // recorre las firmas signatures
191
192    $.each(signatures, function(idx, obj) {
193      html += '<p class="text-left text-dark pt-3"> Información de la firma <strong> Nro '+ contsing +'</strong><p>';
194      html += head;
195
196      // variable que indica el campo de la firma -- arranca en el campo 6 porque necesitamos que muestre de primero
197      // las 5 campos requeridos
198      var contfiels = 8;
199
200      fields = obj; // variable que almacena los campos de la firma
201      $.each(fields, function(id, objx) {
202        // Recorreo los campos de la firma
203        if ( fielJsonEs[id] == 'Nombre del firmante' ) {
204          html += `<tr><td class="text-right"> ${fielJsonEs[id]} </td><td class="text-left"> ${objx} </td></tr>`;
205        }
206        else if (fielJsonEs[id]=='Fecha en que se realiza la firma') {
207          html += `<tr><td class="text-right"> ${fielJsonEs[id]} </td><td class="text-left"> ${objx} </td></tr>`;
208        }
209        else if (fielJsonEs[id]=='Chequea la integridad de la firma') {
210          if(objx == 'true') {
211            objxEsp = 'verdadero';
212          } else {
213            objxEsp='falso';
214          }
215          html += `<tr><td class="text-right"> ${fielJsonEs[id]} </td><td class="text-left"> ${objxEsp} </td></tr>`;
216        }
217        else if( fielJsonEs[id] == 'El certificado todavía está válido' ) {
218          if(objx == 'true') {
219            objxEsp = 'verdadero';
220          } else {
221            objxEsp='falso';
222          }
223          html += `<tr><td class="text-right"> ${fielJsonEs[id]} </td><td class="text-left"> ${objxEsp} </td></tr>`;
224        }
225        else if(fielJsonEs[id]=='Fecha de inicio de validez del certificado') {
226          html += `<tr><td class="text-right"> ${fielJsonEs[id]} </td><td class="text-left"> ${objx} </td></tr>`;
227        }
228        else if(fielJsonEs[id]=='Fecha de fin de validez del certificado') {
229          html += `<tr><td class="text-right"> ${fielJsonEs[id]} </td><td class="text-left"> ${objx} </td></tr>`;
230        }
231        else if(fielJsonEs[id]=='El certificado es válido en el momento de la firma') {
232          if(objx == 'true') {
233            objxEsp = 'verdadero';
234          } else {
235            objxEsp='falso';
236          }
237          html += `<tr><td class="text-right"> ${fielJsonEs[id]} </td><td class="text-left"> ${objxEsp} </td></tr>`;
238        } else {
239          if ( objx == 'true' ) {
240            htmltemp += `<tr><td class="text-right"> ${fielJsonEs[id]} </td><td class="text-left"> verdadero </td></tr>`;
241          } else if(objx == 'false'){
242            htmltemp += `<tr><td class="text-right"> ${fielJsonEs[id]} </td><td class="text-left"> falso </td></tr>`;
243          } else {
244            htmltemp += `<tr><td class="text-right"> ${fielJsonEs[id]} </td><td class="text-left"> ${objx} </td></tr>`;
245          }
246            contfiels++;
247        }
248      });
249
250      contsing++;
251      html += htmltemp;
252      htmltemp = '';
253      html += footer;
254    });
255    return(`
256      <div class="alert alert-danger" role="alert" style="margin-top:-45px;">
257        El documento no está firmado electrónicamente.
258      </div>
259    `);
260
261  }
262}
263
Note: See TracBrowser for help on using the repository browser.