[bbe2084] | 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 | */ |
---|
[0320f1b] | 4 | |
---|
[bbe2084] | 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 |
---|
[0320f1b] | 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>`; |
---|
[bbe2084] | 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") { |
---|
[0320f1b] | 81 | html = '<h2 class="text-danger"> Extensión no soportada, verifique el archivo </h2>'; |
---|
[bbe2084] | 82 | return(html); |
---|
| 83 | } |
---|
| 84 | |
---|
| 85 | if (idx == "numberOfSignatures") { |
---|
| 86 | numsign = obj; |
---|
[0320f1b] | 87 | html += `<p class="text-left text-dark"> ${fielJsonEs[idx]}: ${obj} </p>`; |
---|
[bbe2084] | 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) { |
---|
[0320f1b] | 100 | html += '<p class="text-left text-dark pt-3"> Información de la firma <strong> Nro '+ contsing +'</strong><p>'; |
---|
[bbe2084] | 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 |
---|
[0320f1b] | 110 | if ( fielJsonEs[id] == 'Nombre del firmante' ) { |
---|
| 111 | html += `<tr><td class="text-right"> ${fielJsonEs[id]} </td><td class="text-left"> ${objx} </td></tr>`; |
---|
[bbe2084] | 112 | } |
---|
[0320f1b] | 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>`; |
---|
[bbe2084] | 115 | } |
---|
[0320f1b] | 116 | else if (fielJsonEs[id]=='Chequea la integridad de la firma') { |
---|
[bbe2084] | 117 | if(objx == 'true') { |
---|
| 118 | objxEsp = 'verdadero'; |
---|
| 119 | } else { |
---|
| 120 | objxEsp='falso'; |
---|
| 121 | } |
---|
[0320f1b] | 122 | html += `<tr><td class="text-right"> ${fielJsonEs[id]} </td><td class="text-left"> ${objxEsp} </td></tr>`; |
---|
[bbe2084] | 123 | } |
---|
[0320f1b] | 124 | else if( fielJsonEs[id] == 'El certificado todavía está válido' ) { |
---|
[bbe2084] | 125 | if(objx == 'true') { |
---|
| 126 | objxEsp = 'verdadero'; |
---|
| 127 | } else { |
---|
| 128 | objxEsp='falso'; |
---|
| 129 | } |
---|
[0320f1b] | 130 | html += `<tr><td class="text-right"> ${fielJsonEs[id]} </td><td class="text-left"> ${objxEsp} </td></tr>`; |
---|
[bbe2084] | 131 | } |
---|
| 132 | else if(fielJsonEs[id]=='Fecha de inicio de validez del certificado') { |
---|
[0320f1b] | 133 | html += `<tr><td class="text-right"> ${fielJsonEs[id]} </td><td class="text-left"> ${objx} </td></tr>`; |
---|
[bbe2084] | 134 | } |
---|
| 135 | else if(fielJsonEs[id]=='Fecha de fin de validez del certificado') { |
---|
[0320f1b] | 136 | html += `<tr><td class="text-right"> ${fielJsonEs[id]} </td><td class="text-left"> ${objx} </td></tr>`; |
---|
[bbe2084] | 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 | } |
---|
[0320f1b] | 144 | html += `<tr><td class="text-right"> ${fielJsonEs[id]} </td><td class="text-left"> ${objxEsp} </td></tr>`; |
---|
[bbe2084] | 145 | } else { |
---|
[0320f1b] | 146 | if ( objx == 'true' ) { |
---|
| 147 | htmltemp += `<tr><td class="text-right"> ${fielJsonEs[id]} </td><td class="text-left"> verdadero </td></tr>`; |
---|
[bbe2084] | 148 | } else if(objx == 'false'){ |
---|
[0320f1b] | 149 | htmltemp += `<tr><td class="text-right"> ${fielJsonEs[id]} </td><td class="text-left"> falso </td></tr>`; |
---|
[bbe2084] | 150 | } else { |
---|
[0320f1b] | 151 | htmltemp += `<tr><td class="text-right"> ${fielJsonEs[id]} </td><td class="text-left"> ${objx} </td></tr>`; |
---|
[bbe2084] | 152 | } |
---|
| 153 | contfiels++; |
---|
| 154 | } |
---|
| 155 | }); |
---|
| 156 | |
---|
| 157 | contsing++; |
---|
| 158 | html += htmltemp; |
---|
| 159 | htmltemp = ''; |
---|
| 160 | html += footer; |
---|
| 161 | }); |
---|
| 162 | return(html); |
---|
| 163 | } |
---|