1function cif_letra_fisica(cif) { 2 'use strict'; 3 cif = cif.toUpperCase(); 4 var patt = /^[0-9XYZ][0-9]{7}$/; 5 if (!patt.test(cif)) { 6 throw new Error('El formato de CIF sin letra no es correcto "' + cif + '"'); 7 } 8 var primera_letra = cif.charAt(0); 9 if (/^[XYZ]/.test(primera_letra)) { 10 cif = '012'.charAt('XYZ'.indexOf(primera_letra)) + cif.substr(1); 11 } 12 return 'TRWAGMYFPDXBNJZSQVHLCKET'.charAt(parseInt(cif) % 23); 13} 14 15 16function cif_control_juridica(cif) { 17 // http://es.wikipedia.org/wiki/C%C3%B3digo_de_identificaci%C3%B3n_fiscal 18 19 cif = cif.toUpperCase(); 20 if(! /^[ABCDEFGHJNPQRSUVW][0-9]{7}$/.test(cif)){ 21 throw new Error('El formato de CIF sin letra no es correcto para una persona jurÃdica "' + cif + '"'); 22 } 23 var sumadoble = new Array(0, 2, 4, 6, 8, 1, 3, 5, 7, 9); 24 var digitos = new Array(); 25 digitos[1] = parseInt(cif.charAt(1)); 26 digitos[2] = parseInt(cif.charAt(2)); 27 digitos[3] = parseInt(cif.charAt(3)); 28 digitos[4] = parseInt(cif.charAt(4)); 29 digitos[5] = parseInt(cif.charAt(5)); 30 digitos[6] = parseInt(cif.charAt(6)); 31 digitos[7] = parseInt(cif.charAt(7)); 32 var SumaA = digitos[2] + digitos[4] + digitos[6]; 33 var SumaB = sumadoble[digitos[1]] + sumadoble[digitos[3]] + sumadoble[digitos[5]] + sumadoble[digitos[7]]; 34 var SumaC = SumaA + SumaB; 35 var E = SumaC % 10; 36 if (E == 0) { 37 var D = 0; 38 } else { 39 var D = 10 - E; 40 } 41 42 return D; 43} 44 45function cif_validar(nif, pais, tipo_documentacion) { 46 // Mantener sincronizado la restriccion de NIF de C#, JS y DDBB 47 var condition_extranjero = ((pais ?? "ES") == "ES") && ((tipo_documentacion ?? "1") == "1"); 48 var cif_validar = cif_validar_es(nif); 49 return (!(condition_extranjero) || cif_validar); 50} 51 52function cif_validar_fr(nif) { 53 var country_code = nif.substring(0, 2); 54 if (country_code !== 'FR') { 55 return false; 56 } 57 58 if (/^FR[0-9]{13}$/.test(nif)) { 59 // NIF persona fÃsica 60 return true; 61 } 62 63 if (nif.length != 13) { 64 return false; 65 } 66 67 if (! /^FR..[0-9]+$/.test(nif)) { 68 return false; 69 } 70 71 var numero_txt = nif.substr(4); 72 var check_code = nif.substr(2,2); 73 74 if( /^[0-9][0-9]$/.test(check_code)){ 75 // Codigo formato viejo 76 // numero*100 + 12 77 78 // Numero más grande en JS: 9007199254740991 (15 posiciones de enteros) 79 numero_txt = numero_txt + '12'; 80 var codigo_check_calculado = modulo(numero_txt,97); 81 return check_code === codigo_check_calculado; 82 }else { 83 // Código formato nuevo 84 var c1 = '0123456789ABCDEFGHJKLMNPQRSTUVWXYZ'.indexOf(check_code[0]); 85 var c2 = '0123456789ABCDEFGHJKLMNPQRSTUVWXYZ'.indexOf(check_code[1]); 86 87 var s = 0; 88 89 if(c1<10) { 90 s = c1 * 24 + c2 - 10; 91 }else{ 92 s = c1 * 34 + c2 - 100; 93 } 94 95 var x = modulo(s,11); 96 s = s/11+1; 97 var y = modulo(( parseInt(numero_txt)+s),11); 98 return x === y; 99 } 100} 101 102function cif_validar_es(cif) { 103 cif = cif.replace(/\s+/g, ''); 104 if (! /^[A-Z0-9][0-9]{7}[A-Z0-9]$/.test(cif)) { 105 return false; 106 } 107 108 if (/^[0-9KLMXYZ]/.test(cif)) { 109 /*Persona fÃsica*/ 110 // VER: https://es.wikipedia.org/wiki/N%C3%BAmero_de_identificaci%C3%B3n_fiscal 111 return cif_letra_fisica(cif.substr(0, 8)) == cif[8]; 112 } else { 113 /*Persona juridica*/ 114 var digito_control = cif_control_juridica(cif.substr(0, 8)); 115 if (cif[8] >= "0" && cif[8] <= "9") { 116 return digito_control == cif[8]; 117 } else { 118 digito_control = 'JABCDEFGHI'.charAt(digito_control); 119 return digito_control == cif[8]; 120 } 121 } 122 return false; 123} 124 125function cif_fisica(cif) { 126 cif = cif.replace(/\s+/g, ''); 127 128 if ( /^FR/.test(cif)) { 129 return cif_validar_fr(cif); 130 } 131 132 return cif_fisica_es(cif); 133} 134 135function cif_fisica_es(cif) { 136 if (! /^[A-Z0-9][0-9]{7}[A-Z0-9]$/.test(cif)) { 137 return false; 138 } 139 140 if (/^[0-9KLMXYZ]/.test(cif)) { 141 /*Persona fÃsica*/ 142 // VER: https://es.wikipedia.org/wiki/N%C3%BAmero_de_identificaci%C3%B3n_fiscal 143 return cif_letra_fisica(cif.substr(0, 8)) == cif[8]; 144 } 145 return false;
146} 147 148function cif_juridico(cif) { 149 cif = cif.replace(/\s+/g, ''); 150 151 if (/^FR/.test(cif)) { 152 return cif_validar_fr(cif); 153 } 154 155 return cif_juridico_es(cif); 156} 157 158function cif_juridico_es(cif){ 159 // http://es.wikipedia.org/wiki/C%C3%B3digo_de_identificaci%C3%B3n_fiscal 160 161 cif = cif.toUpperCase(); 162 cif = cif.replace(/\s+/g, ''); 163 if(! /^[ABCDEFGHJNPQRSUVW][0-9]{7}[A-Z0-9]$/.test(cif)){ 164 return false; 165 } 166 167 var digito_control = cif_control_juridica(cif.substr(0, 8)); 168 169 if ('ABEH'.indexOf(cif[0]) >= 0) { 170 return (digito_control == cif[8]); 171 } else if ('KPQSW'.indexOf(cif[0]) >= 0) { 172 return ('JABCDEFGHI'.charAt(digito_control) == cif[8]); 173 } else { 174 return ((digito_control == cif[8]) || ('JABCDEFGHI'.charAt(digito_control) == cif[8])); 175 } 176 177 return false; 178} 179 180function cups_control(cups){ 181 cups = cups.toUpperCase(); 182 if(! /^[A-Z][A-Z][0-9]{4}[0-9]{12}$/.test(cups)){ 183 throw new Error('El formato de CUPS sin codigos de control "' + cups + '"'); 184 } 185 var num = cups.substring(2,18); 186 187 var cc_entero = parseInt(modulo(num,529)); 188 189 var cc1 = cc_entero / 23; 190 var cc2 = cc_entero % 23; 191 192 var caracter = 'TRWAGMYFPDXBNJZSQVHLCKE'; 193 194 return caracter.charAt(cc1) + caracter.charAt(cc2); 195} 196 197function cups_validar(cups) { 198 cups = cups.toUpperCase(); 199 cups = cups.replace(/\s+/g, ''); 200 if(! /^[A-Z][A-Z][0-9]{4}[0-9]{12}[A-Z]{2}([0-9][FPRCXYZ])?$/.test(cups)){ 201 return false; 202 } 203 if(cups.substring(0, 2) != "ES"){ 204 return false; 205 } 206 207 var digito_control = cups_control(cups.substr(0, 18)); 208 return digito_control == cups.substr(18, 2); 209} 210 211function limpiar_codigo(codigo){ 212 codigo = codigo.toUpperCase(); 213 codigo = codigo.replace(/[^0-9A-Z]/g, ""); 214 return codigo; 215} 216 217function validar_iban_o_ccc(codigo){ 218 iban = limpiar_codigo(codigo); 219 if(ccc_validar_ES(iban)){ 220 return true; 221 } 222 return iban_validar(iban); 223} 224 225function iban_calcular(codigo_cc, cod_pais){ 226 codigo_cc = codigo_cc.toUpperCase(); 227 cod_pais = cod_pais.toUpperCase(); 228 if(! /^[A-Z][A-Z]$/.test(cod_pais)){
229 throw new Error('El codigo de pais deben ser 2 caracteres en mayusculas "' + cod_pais + '"'); 230 } 231 if(! /^[0-9A-Z]+$/.test(codigo_cc)){ 232 throw new Error('El codigo de de cuenta deben ser letras y números "' + codigo_cc + '"'); 233 } 234 //Paso preliminar: Crear un código previo de IBAN compuesto del código de paÃs (ES) seguido de â00â y el C.C.C. 235 //Ejemplo: ES0000120345030000067890 236 //Paso 1: Trasladar los cuatro primeros caracteres del IBAN a la derecha del Código: 237 //Resultado: 00120345030000067890ES00 238 var IBAN_inicial = "" + codigo_cc + cod_pais + "00"; 239 240 //Paso 2: Convertir las letras en números aplicando: A = 10; B = 11 ... Z = 35 241 //Resultado: 00120345030000067890142800 242 var IBAN_numerico = ""; 243 char_array = IBAN_inicial.split('') 244 for (var i = 0; ch = char_array[i++];) { 245 if(ch >= '0' && ch <= '9' ){ 246 IBAN_numerico = IBAN_numerico + ch; 247 }else{ 248 var num = 10 + (ch.charCodeAt(0) - 'A'.charCodeAt(0)); 249 IBAN_numerico = IBAN_numerico + num; 250 } 251 } 252 253 var num = modulo(IBAN_numerico,97); 254 num = modulo(IBAN_numerico,97); 255 var control_iban = 98 - num; 256 257 return "" + cod_pais + ("00" + control_iban).slice(-2) + codigo_cc; 258} 259 260function iban_validar(iban){ 261 iban = iban.toUpperCase(); 262 iban = iban.replace(/\s+/g, ''); 263 if(! /^[A-Z][A-Z][0-9][A-Z0-9]+$/.test(iban)){ 264 return false; 265 } 266 var pais = iban.substr(0,2); 267 var cuenta = iban.substring(4); 268 if(iban != iban_calcular(cuenta,pais)){ 269 return false; 270 } 271 272 if(pais == 'ES'){ 273 return ccc_validar_ES(cuenta); 274 } 275 276 return true; 277 278} 279 280function ccc_validar_ES(ccc){ 281 //http://es.wikipedia.org/wiki/C%C3%B3digo_cuenta_cliente 282 if(! /^[0-9]{20}$/.test(ccc)){
283 //throw new Error('El codigo cuenta cliente (ccc) son 20 digitos sin espacios "' + ccc + '"'); 284 return false; 285 } 286 287 var cod_entidad = ccc.substr(0,4); 288 var cod_sucursal = ccc.substr(4,4); 289 var cod_control = ccc.substr(8,2); 290 var cod_cuenta =ccc.substr(10,10); 291 292 var v1=0, v2=0; 293 var vDC1=0, vDC2=0; 294 295 v1=0; 296 v1 = v1 + cod_entidad[0] * 4; 297 v1 = v1 + cod_entidad[1] * 8; 298 v1 = v1 + cod_entidad[2] * 5; 299 v1 = v1 + cod_entidad[3] * 10; 300 301 v1 = v1 + cod_sucursal[0] * 9; 302 v1 = v1 + cod_sucursal[1] * 7; 303 v1 = v1 + cod_sucursal[2] * 3; 304 v1 = v1 + cod_sucursal[3] * 6; 305 306 vDC1 = 11-(v1%11); 307 308 if(vDC1 == 11){ 309 vDC1 = 0; 310 }else if(vDC1 == 10){ 311 vDC1 = 1; 312 } 313 314 v2=0; 315 v2 = v2 + cod_cuenta[0] * 1; 316 v2 = v2 + cod_cuenta[1] * 2; 317 v2 = v2 + cod_cuenta[2] * 4; 318 v2 = v2 + cod_cuenta[3] * 8; 319 v2 = v2 + cod_cuenta[4] * 5; 320 v2 = v2 + cod_cuenta[5] * 10; 321 v2 = v2 + cod_cuenta[6] * 9; 322 v2 = v2 + cod_cuenta[7] * 7; 323 v2 = v2 + cod_cuenta[8] * 3; 324 v2 = v2 + cod_cuenta[9] * 6; 325 326 vDC2 = 11-(v2%11); 327 328 if(vDC2 == 11){ 329 vDC2 = 0; 330 }else if(vDC2 == 10){ 331 vDC2 = 1; 332 } 333 334 var es_cc_correcta = (cod_control == ("" + vDC1 + vDC2)); 335 336 return es_cc_correcta; 337} 338 339function modulo (divident, divisor) { 340 var divident = divident + ''; 341 var cDivident = ''; 342 var cRest = ''; 343 344 for (var i = 0, len = divident.length; i < len; i++) {
345 var cChar = divident.charAt(i); 346 var cOperator = cRest + '' + cDivident + '' + cChar; 347 348 if ( cOperator < parseInt(divisor) ) { 349 cDivident += '' + cChar; 350 } else { 351 cRest = cOperator % divisor; 352 if ( cRest == 0 ) { 353 cRest = ''; 354 } 355 cDivident = ''; 356 } 357 358 } 359 cRest += '' + cDivident; 360 if (cRest == '') { 361 cRest = 0; 362 } 363 return cRest; 364} 365 366/* 367 Las validaciones deberian coincidir en todos los niveles con las validaciones de la bbdd 368 /web/mod/00_general/model/email_check.sql 369 370 /web/mod/00_general/class/VerificacionesEmail.cs 371 /web/pub/Libraries/js/extras.js 372*/ 373function email_validar(email) 374{ 375 if (! /^[A-z0-9ñN]+([-+.ñN][A-z0-9]+)*([.-]+)?@[A-z0-9]+([-.][A-z0-9]+)*\.[A-z0-9]+([-.][A-z0-9]+)*([,;\\S][A-z0-9ñN]+([-+.ñN][A-z0-9]+)*([.-]+)?@[A-z0-9]+([-.][A-z0-9]+)*\.[A-z0-9]+([-.][A-z0-9]+)*)*$/.test(email)) { 376 return false; 377 } 378 return true; 379 380} 381 382function cp_validar(cp) { 383 return /^[0-9]{5}$/.test(cp); 384} 385 386function validar_municipio_pertenece_provincia(provincia_ref, municipio_provincia_ref) { 387 if (!municipio_provincia_ref) return true; 388 389 return provincia_ref === municipio_provincia_ref; 390} 391 392/* 393*### RECLAMACIONES 394*/ 395 396const cambos_obligatorios = ["distribuidora","cliente","cliente.nif", "cliente.nombre", "contacto_telefono", "cups", "fecha_incidente", "nuevo_comentario_comercializadora", 397 "codigo_incidencia","contacto_nombre", "factura_distribuidora", "tipo_concepto_factura","lectura", "fecha_lectura", 398 "fecha_desde", "fecha_hasta", "codigo_proceso_reclamado", "parametro_contratacion", "IBAN", "num_expediente_acometida", 399 "codigo_solicitud_reclamacion", "importe_reclamado", "tipo_atencion_incorrecta", "num_expediente_fraude", 400 "ubicacion_incidencia_descripcion","ubicacion_incidencia_provincia","ubicacion_incidencia_municipio","contacto_email", 401 "tipo_disconformidad_autoconsumo_facturado","motivo_consulta","cau"]; 402 403const definicion_obligatorio = { 404"001": [1,1,1,1,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,], 405"002": [1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], 406"003": [1,1,1,1,1,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,], 407"004": [1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,], 408"005": [1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], 409"006": [1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], 410"007": [1,1,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], 411"008": [1,1,1,1,0,1,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], 412"009": [1,1,1,1,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], 413"010": [1,1,1,1,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], 414"011": [1,1,1,1,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], 415"012": [1,1,1,1,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], 416"013": [1,1,1,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], 417"014": [1,1,1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,], 418"015": [1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], 419"018": [1,1,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,], 420"019": [1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,], 421"020": [1,1,0,0,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], 422"021": [1,1,0,0,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,], 423"022": [1,1,0,0,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], 424"023": [1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,], 425"024": [1,1,0,0,0,1,0,1,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,], 426"026": [1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,], 427"028": [1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], 428"029": [1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,], 429"031": [1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,], 430"032": [1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], 431"034": [1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,], 432"035": [1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], 433"037": [1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], 434"038": [1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], 435"039": [1,1,0,0,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], 436"040": [1,1,1,1,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], 437"041": [1,1,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,], 438"043": [1,1,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], 439"044": [1,1,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], 440"045": [1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], 441"046": [1,1,0,0,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], 442"048": [1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], 443"049": [1,1,0,0,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], 444// "055": [1,1,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], // Fecha baja: 2025-03-10 445// "056": [1,1,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], // Fecha baja: 2025-03-10 446"057": [1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,], 447"058": [1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], 448"059": [1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], 449"060": [1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], 450"061": [1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], 451"062": [1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], 452"063": [1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], 453"064": [1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], 454"065": [1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], 455"066": [1,1,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,], 456"067": [1,1,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], 457"070": [1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,], 458"071": [1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], 459"072": [1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], 460"073": [1,1,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], 461"074": [1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,], 462"075": [1,1,1,1,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,], 463"076": [1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,], 464"077": [1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,], 465"078": [1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], 466"079": [1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], 467"080": [1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], 468"081": [1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,], 469"082": [1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,], 470"083": [1,1,1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,], 471// Rellenar a partir de "CNMC - E - R1 Campos Min 2024.05.16.xlsx" cuando haya nuevos subtipos o cambios en la obligatoriedad de los antiguos. 472// OJO: Hay diferencias entre las columnas de "CNMC - E - R1 Campos Min 2024.05.16.xlsx" y las de este array: 473// - El orden de las columnas no es el mismo, mirar una por una. 474// - distribuidora y cliente siempre obligatorios: 1 475// - UBICACIÃN INCIDENCIA => ubicacion_incidencia_descripcion, ubicacion_incidencia_provincia, ubicacion_incidencia_municipio 476// - ¿contacto_email no existe en el .xlsx de la CNMC y solo esta marcado obligatorio en subt
476ipo 003 INCIDENCIA EN EQUIPOS DE MEDIDA? 477// OJO: Mantener sincronizados: 478// - web/mod/procesos_atr/data/REMPLACE_subtipo_reclamacion.csv 479// - web/pub/Libraries/js/validaciones.js => definicion_obligatorio[] 480// - web/vuebridge/Controllers/Verificaciones.cs => definicion_obligatorio[] 481}; 482 483function verificarObligatoriedad(subtipo_reclamacion_ref, campo) 484{ 485 if (subtipo_reclamacion_ref == null) 486 { 487 return false; 488 } 489 return (definicion_obligatorio[subtipo_reclamacion_ref][cambos_obligatorios.indexOf(campo)] != 1); 490}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.