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 | |
---|
5 | function 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 | $.each(objVarVerifique, function(idx, obj) { |
---|
79 | |
---|
80 | if (idx == "error") { |
---|
81 | html = '<h2 class="text-danger"> Extensión no soportada, verifique el archivo </h2>'; |
---|
82 | return(html); |
---|
83 | } |
---|
84 | |
---|
85 | if (idx == "numberOfSignatures") { |
---|
86 | numsign = obj; |
---|
87 | html += `<p class="text-left text-dark"> ${fielJsonEs[idx]}: ${obj} </p>`; |
---|
88 | } |
---|
89 | |
---|
90 | if (idx == "signatures") { |
---|
91 | signatures = obj; //se almacena la(s) cabecera(s) de las firmas |
---|
92 | } |
---|
93 | }); |
---|
94 | |
---|
95 | var contsing = 1; // variable que indica la firma donde esta posicionado |
---|
96 | |
---|
97 | // recorre las firmas signatures |
---|
98 | |
---|
99 | $.each(signatures, function(idx, obj) { |
---|
100 | html += '<p class="text-left text-dark pt-3"> Información de la firma <strong> Nro '+ contsing +'</strong><p>'; |
---|
101 | html += head; |
---|
102 | |
---|
103 | // variable que indica el campo de la firma -- arranca en el campo 6 porque necesitamos que muestre de primero |
---|
104 | // las 5 campos requeridos |
---|
105 | var contfiels = 8; |
---|
106 | |
---|
107 | fields = obj; // variable que almacena los campos de la firma |
---|
108 | $.each(fields, function(id, objx) { |
---|
109 | // Recorreo los campos de la firma |
---|
110 | if ( fielJsonEs[id] == 'Nombre del firmante' ) { |
---|
111 | html += `<tr><td class="text-right"> ${fielJsonEs[id]} </td><td class="text-left"> ${objx} </td></tr>`; |
---|
112 | } |
---|
113 | else if (fielJsonEs[id]=='Fecha en que se realiza la firma') { |
---|
114 | html += `<tr><td class="text-right"> ${fielJsonEs[id]} </td><td class="text-left"> ${objx} </td></tr>`; |
---|
115 | } |
---|
116 | else if (fielJsonEs[id]=='Chequea la integridad de la firma') { |
---|
117 | if(objx == 'true') { |
---|
118 | objxEsp = 'verdadero'; |
---|
119 | } else { |
---|
120 | objxEsp='falso'; |
---|
121 | } |
---|
122 | html += `<tr><td class="text-right"> ${fielJsonEs[id]} </td><td class="text-left"> ${objxEsp} </td></tr>`; |
---|
123 | } |
---|
124 | else if( fielJsonEs[id] == 'El certificado todavía está válido' ) { |
---|
125 | if(objx == 'true') { |
---|
126 | objxEsp = 'verdadero'; |
---|
127 | } else { |
---|
128 | objxEsp='falso'; |
---|
129 | } |
---|
130 | html += `<tr><td class="text-right"> ${fielJsonEs[id]} </td><td class="text-left"> ${objxEsp} </td></tr>`; |
---|
131 | } |
---|
132 | else if(fielJsonEs[id]=='Fecha de inicio de validez del certificado') { |
---|
133 | html += `<tr><td class="text-right"> ${fielJsonEs[id]} </td><td class="text-left"> ${objx} </td></tr>`; |
---|
134 | } |
---|
135 | else if(fielJsonEs[id]=='Fecha de fin de validez del certificado') { |
---|
136 | html += `<tr><td class="text-right"> ${fielJsonEs[id]} </td><td class="text-left"> ${objx} </td></tr>`; |
---|
137 | } |
---|
138 | else if(fielJsonEs[id]=='El certificado es válido en el momento de la firma') { |
---|
139 | if(objx == 'true') { |
---|
140 | objxEsp = 'verdadero'; |
---|
141 | } else { |
---|
142 | objxEsp='falso'; |
---|
143 | } |
---|
144 | html += `<tr><td class="text-right"> ${fielJsonEs[id]} </td><td class="text-left"> ${objxEsp} </td></tr>`; |
---|
145 | } else { |
---|
146 | if ( objx == 'true' ) { |
---|
147 | htmltemp += `<tr><td class="text-right"> ${fielJsonEs[id]} </td><td class="text-left"> verdadero </td></tr>`; |
---|
148 | } else if(objx == 'false'){ |
---|
149 | htmltemp += `<tr><td class="text-right"> ${fielJsonEs[id]} </td><td class="text-left"> falso </td></tr>`; |
---|
150 | } else { |
---|
151 | htmltemp += `<tr><td class="text-right"> ${fielJsonEs[id]} </td><td class="text-left"> ${objx} </td></tr>`; |
---|
152 | } |
---|
153 | contfiels++; |
---|
154 | } |
---|
155 | }); |
---|
156 | |
---|
157 | contsing++; |
---|
158 | html += htmltemp; |
---|
159 | htmltemp = ''; |
---|
160 | html += footer; |
---|
161 | }); |
---|
162 | return(html); |
---|
163 | } |
---|