@@ -109,7 +109,7 @@ discard block |
||
| 109 | 109 | ; |
| 110 | 110 | |
| 111 | 111 | // Si el XML no tiene los tags válidos se lanza una excepción. |
| 112 | - if ($documentoData === null) { |
|
| 112 | + if ($documentoData===null) { |
|
| 113 | 113 | throw new DocumentoException( |
| 114 | 114 | 'El nodo raíz del XML del documento debe ser el tag "DTE". Dentro de este nodo raíz debe existir un tag "Documento", "Exportaciones" o "Liquidacion". Este segundo nodo es el que debe contener los datos del documento.' |
| 115 | 115 | ); |
@@ -217,7 +217,7 @@ discard block |
||
| 217 | 217 | { |
| 218 | 218 | // Obtener el código del tipo de documento que se debe generar. |
| 219 | 219 | $TipoDTE = $data['Encabezado']['IdDoc']['TipoDTE'] ?? null; |
| 220 | - if ($TipoDTE === null) { |
|
| 220 | + if ($TipoDTE===null) { |
|
| 221 | 221 | throw new DocumentoException(sprintf( |
| 222 | 222 | 'No se encontró el campo %s en el documento, el cual es obligatorio.', |
| 223 | 223 | 'TipoDTE' |
@@ -225,7 +225,7 @@ discard block |
||
| 225 | 225 | } |
| 226 | 226 | |
| 227 | 227 | // Determinar clase del "builder" en base al tipo de documento. |
| 228 | - switch ((int) $TipoDTE) { |
|
| 228 | + switch ((int)$TipoDTE) { |
|
| 229 | 229 | case 33: |
| 230 | 230 | return FacturaAfectaBuilder::class; |
| 231 | 231 | case 34: |
@@ -196,9 +196,9 @@ discard block |
||
| 196 | 196 | public function getXmlSignatureNode(): XmlSignatureNode |
| 197 | 197 | { |
| 198 | 198 | $tag = $this->getXmlDocument()->documentElement->tagName; |
| 199 | - $xpath = '/*[local-name()="' . $tag . '"]/*[local-name()="Signature"]'; |
|
| 199 | + $xpath = '/*[local-name()="'.$tag.'"]/*[local-name()="Signature"]'; |
|
| 200 | 200 | $signatureElement = XmlUtils::xpath($this->getXmlDocument(), $xpath)->item(0); |
| 201 | - if ($signatureElement === null) { |
|
| 201 | + if ($signatureElement===null) { |
|
| 202 | 202 | throw new SignatureException('El sobre del envío del XML no se encuentra firmado (no se encontró el nodo "Signature").'); |
| 203 | 203 | } |
| 204 | 204 | |
@@ -258,7 +258,7 @@ discard block |
||
| 258 | 258 | } |
| 259 | 259 | |
| 260 | 260 | // Validar que el tipo de documento sea del tipo que se espera. |
| 261 | - else if ($esBoleta !== (bool) $this->tipo) { |
|
| 261 | + else if ($esBoleta!==(bool)$this->tipo) { |
|
| 262 | 262 | throw new DocumentoException( |
| 263 | 263 | 'No es posible mezclar DTE con BOLETA en el envío al SII.' |
| 264 | 264 | ); |
@@ -270,7 +270,7 @@ discard block |
||
| 270 | 270 | } |
| 271 | 271 | |
| 272 | 272 | // Validar que no se haya llenado la lista. |
| 273 | - if (isset($this->documentos[self::CONFIG[$this->tipo]['DTE_max'] - 1])) { |
|
| 273 | + if (isset($this->documentos[self::CONFIG[$this->tipo]['DTE_max']-1])) { |
|
| 274 | 274 | throw new DocumentoException(sprintf( |
| 275 | 275 | 'No es posible agregar nuevos documentos al envío al SII, límite de %d.', |
| 276 | 276 | self::CONFIG[$this->tipo]['DTE_max'] |
@@ -365,7 +365,7 @@ discard block |
||
| 365 | 365 | 'xmlns' => 'http://www.sii.cl/SiiDte', |
| 366 | 366 | 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance', |
| 367 | 367 | 'xsi:schemaLocation' => 'http://www.sii.cl/SiiDte ' |
| 368 | - . self::CONFIG[$this->tipo]['schema'] . '.xsd' |
|
| 368 | + . self::CONFIG[$this->tipo]['schema'].'.xsd' |
|
| 369 | 369 | , |
| 370 | 370 | 'version' => '1.0', |
| 371 | 371 | ], |
@@ -226,7 +226,7 @@ discard block |
||
| 226 | 226 | { |
| 227 | 227 | $data = $this->getData(); |
| 228 | 228 | |
| 229 | - return (int) $data['Encabezado']['IdDoc']['Folio']; |
|
| 229 | + return (int)$data['Encabezado']['IdDoc']['Folio']; |
|
| 230 | 230 | } |
| 231 | 231 | |
| 232 | 232 | /** |
@@ -303,7 +303,7 @@ discard block |
||
| 303 | 303 | * |
| 304 | 304 | * @return int|float Monto total del documento. |
| 305 | 305 | */ |
| 306 | - public function getMontoTotal(): int|float |
|
| 306 | + public function getMontoTotal(): int | float |
|
| 307 | 307 | { |
| 308 | 308 | $data = $this->getData(); |
| 309 | 309 | |
@@ -324,7 +324,7 @@ discard block |
||
| 324 | 324 | { |
| 325 | 325 | $data = $this->getData(); |
| 326 | 326 | |
| 327 | - return $index !== null |
|
| 327 | + return $index!==null |
|
| 328 | 328 | ? $data['Detalle'][$index] ?? [] |
| 329 | 329 | : $data['Detalle'] ?? [] |
| 330 | 330 | ; |
@@ -377,7 +377,7 @@ discard block |
||
| 377 | 377 | } |
| 378 | 378 | |
| 379 | 379 | // Asignar marca de tiempo si no se pasó una. |
| 380 | - if ($timestamp === null) { |
|
| 380 | + if ($timestamp===null) { |
|
| 381 | 381 | $timestamp = date('Y-m-d\TH:i:s'); |
| 382 | 382 | } |
| 383 | 383 | |
@@ -445,7 +445,7 @@ discard block |
||
| 445 | 445 | public function firmar(Certificate $certificate, ?string $timestamp = null): string |
| 446 | 446 | { |
| 447 | 447 | // Asignar marca de tiempo si no se pasó una. |
| 448 | - if ($timestamp === null) { |
|
| 448 | + if ($timestamp===null) { |
|
| 449 | 449 | $timestamp = date('Y-m-d\TH:i:s'); |
| 450 | 450 | } |
| 451 | 451 | |
@@ -487,9 +487,9 @@ discard block |
||
| 487 | 487 | public function getXmlSignatureNode(): XmlSignatureNode |
| 488 | 488 | { |
| 489 | 489 | $tag = $this->getXmlDocument()->documentElement->tagName; |
| 490 | - $xpath = '/*[local-name()="' . $tag . '"]/*[local-name()="Signature"]'; |
|
| 490 | + $xpath = '/*[local-name()="'.$tag.'"]/*[local-name()="Signature"]'; |
|
| 491 | 491 | $signatureElement = XmlUtils::xpath($this->getXmlDocument(), $xpath)->item(0); |
| 492 | - if ($signatureElement === null) { |
|
| 492 | + if ($signatureElement===null) { |
|
| 493 | 493 | throw new SignatureException('El documento XML del DTE no se encuentra firmado (no se encontró el nodo "Signature").'); |
| 494 | 494 | } |
| 495 | 495 | |
@@ -41,7 +41,7 @@ discard block |
||
| 41 | 41 | * |
| 42 | 42 | * @var int|string |
| 43 | 43 | */ |
| 44 | - private int|string $codigo; |
|
| 44 | + private int | string $codigo; |
|
| 45 | 45 | |
| 46 | 46 | /** |
| 47 | 47 | * Nombre del tipo de documento. |
@@ -131,7 +131,7 @@ discard block |
||
| 131 | 131 | * @param DataProviderInterface|null $dataProvider Proveedor de datos. |
| 132 | 132 | */ |
| 133 | 133 | public function __construct( |
| 134 | - int|string $codigo, |
|
| 134 | + int | string $codigo, |
|
| 135 | 135 | ?DataProviderInterface $dataProvider = null |
| 136 | 136 | ) |
| 137 | 137 | { |
@@ -156,7 +156,7 @@ discard block |
||
| 156 | 156 | * |
| 157 | 157 | * @return int|string |
| 158 | 158 | */ |
| 159 | - public function getCodigo(): int|string |
|
| 159 | + public function getCodigo(): int | string |
|
| 160 | 160 | { |
| 161 | 161 | return $this->codigo; |
| 162 | 162 | } |
@@ -212,7 +212,7 @@ discard block |
||
| 212 | 212 | */ |
| 213 | 213 | public function esExportacion(): bool |
| 214 | 214 | { |
| 215 | - return $this->tag_xml === 'Exportaciones'; |
|
| 215 | + return $this->tag_xml==='Exportaciones'; |
|
| 216 | 216 | } |
| 217 | 217 | |
| 218 | 218 | /** |
@@ -253,7 +253,7 @@ discard block |
||
| 253 | 253 | * |
| 254 | 254 | * @return integer|false |
| 255 | 255 | */ |
| 256 | - public function getDefaultIndServicio(): int|false |
|
| 256 | + public function getDefaultIndServicio(): int | false |
|
| 257 | 257 | { |
| 258 | 258 | return $this->esBoleta() ? 3 : false; |
| 259 | 259 | } |
@@ -266,7 +266,7 @@ discard block |
||
| 266 | 266 | * |
| 267 | 267 | * @return float|false |
| 268 | 268 | */ |
| 269 | - public function getDefaultTasaIVA(): float|false |
|
| 269 | + public function getDefaultTasaIVA(): float | false |
|
| 270 | 270 | { |
| 271 | 271 | $TasaIVA = 19; |
| 272 | 272 | return !in_array($this->codigo, [41, 110, 111, 112]) ? $TasaIVA : false; |
@@ -140,7 +140,7 @@ |
||
| 140 | 140 | */ |
| 141 | 141 | public function setRangoFolios(int $desde, int $hasta): self |
| 142 | 142 | { |
| 143 | - if ($desde > $hasta) { |
|
| 143 | + if ($desde>$hasta) { |
|
| 144 | 144 | throw new CafException(sprintf( |
| 145 | 145 | 'Al crear un CAF el folio desde (%d) no puede ser mayor que el folio hasta (%d).', |
| 146 | 146 | $desde, |
@@ -163,10 +163,10 @@ discard block |
||
| 163 | 163 | { |
| 164 | 164 | // Verificar firma del CAF con la clave pública del SII. |
| 165 | 165 | $public_key_sii = $this->getCertificateSII(); |
| 166 | - if ($public_key_sii !== null) { |
|
| 166 | + if ($public_key_sii!==null) { |
|
| 167 | 167 | $firma = $this->getFirma(); |
| 168 | 168 | $signed_da = $this->xmlDocument->C14NWithIsoEncodingFlattened('/AUTORIZACION/CAF/DA'); |
| 169 | - if (openssl_verify($signed_da, base64_decode($firma), $public_key_sii) !== 1) { |
|
| 169 | + if (openssl_verify($signed_da, base64_decode($firma), $public_key_sii)!==1) { |
|
| 170 | 170 | throw new CafException(sprintf( |
| 171 | 171 | 'La firma del CAF %s no es válida (no está autorizado por el SII).', |
| 172 | 172 | $this->getID() |
@@ -191,7 +191,7 @@ discard block |
||
| 191 | 191 | $this->getID() |
| 192 | 192 | )); |
| 193 | 193 | } |
| 194 | - if ($test_plain !== $test_decrypted) { |
|
| 194 | + if ($test_plain!==$test_decrypted) { |
|
| 195 | 195 | throw new CafException(sprintf( |
| 196 | 196 | 'El CAF %s no logró encriptar y desencriptar correctamente un texto de prueba (posible archivo CAF corrupto).', |
| 197 | 197 | $this->getID() |
@@ -244,7 +244,7 @@ discard block |
||
| 244 | 244 | if (!isset($this->tipoDocumento)) { |
| 245 | 245 | $data = $this->getData(); |
| 246 | 246 | $this->tipoDocumento = new DocumentoTipo( |
| 247 | - codigo: (int) $data['AUTORIZACION']['CAF']['DA']['TD'], |
|
| 247 | + codigo: (int)$data['AUTORIZACION']['CAF']['DA']['TD'], |
|
| 248 | 248 | dataProvider: $this->dataProvider |
| 249 | 249 | ); |
| 250 | 250 | } |
@@ -261,7 +261,7 @@ discard block |
||
| 261 | 261 | { |
| 262 | 262 | $data = $this->getData(); |
| 263 | 263 | |
| 264 | - return (int) $data['AUTORIZACION']['CAF']['DA']['RNG']['D']; |
|
| 264 | + return (int)$data['AUTORIZACION']['CAF']['DA']['RNG']['D']; |
|
| 265 | 265 | } |
| 266 | 266 | |
| 267 | 267 | /** |
@@ -273,7 +273,7 @@ discard block |
||
| 273 | 273 | { |
| 274 | 274 | $data = $this->getData(); |
| 275 | 275 | |
| 276 | - return (int) $data['AUTORIZACION']['CAF']['DA']['RNG']['H']; |
|
| 276 | + return (int)$data['AUTORIZACION']['CAF']['DA']['RNG']['H']; |
|
| 277 | 277 | } |
| 278 | 278 | |
| 279 | 279 | /** |
@@ -286,7 +286,7 @@ discard block |
||
| 286 | 286 | $desde = $this->getFolioDesde(); |
| 287 | 287 | $hasta = $this->getFolioHasta(); |
| 288 | 288 | |
| 289 | - return $hasta - $desde + 1; |
|
| 289 | + return $hasta-$desde+1; |
|
| 290 | 290 | } |
| 291 | 291 | |
| 292 | 292 | /** |
@@ -301,7 +301,7 @@ discard block |
||
| 301 | 301 | */ |
| 302 | 302 | public function enRango(int $folio): bool |
| 303 | 303 | { |
| 304 | - return $folio >= $this->getFolioDesde() && $folio <= $this->getFolioHasta(); |
|
| 304 | + return $folio>=$this->getFolioDesde() && $folio<=$this->getFolioHasta(); |
|
| 305 | 305 | } |
| 306 | 306 | |
| 307 | 307 | /** |
@@ -337,7 +337,7 @@ discard block |
||
| 337 | 337 | } |
| 338 | 338 | |
| 339 | 339 | // Los folios vencen en 6 meses (6 * 30 días). |
| 340 | - return date('Y-m-d', strtotime($fecha_autorizacion. ' + 180 days')); |
|
| 340 | + return date('Y-m-d', strtotime($fecha_autorizacion.' + 180 days')); |
|
| 341 | 341 | } |
| 342 | 342 | |
| 343 | 343 | /** |
@@ -350,7 +350,7 @@ discard block |
||
| 350 | 350 | $d1 = new DateTime($this->getFechaAutorizacion()); |
| 351 | 351 | $d2 = new DateTime(date('Y-m-d')); |
| 352 | 352 | $diff = $d1->diff($d2); |
| 353 | - $meses = $diff->m + ($diff->y * 12); |
|
| 353 | + $meses = $diff->m+($diff->y * 12); |
|
| 354 | 354 | |
| 355 | 355 | if ($diff->d) { |
| 356 | 356 | $meses += round($diff->d / 30, 2); |
@@ -373,7 +373,7 @@ discard block |
||
| 373 | 373 | return true; |
| 374 | 374 | } |
| 375 | 375 | |
| 376 | - if ($timestamp === null) { |
|
| 376 | + if ($timestamp===null) { |
|
| 377 | 377 | $timestamp = date('Y-m-d\TH:i:s'); |
| 378 | 378 | } |
| 379 | 379 | |
@@ -381,7 +381,7 @@ discard block |
||
| 381 | 381 | $timestamp .= 'T00:00:00'; |
| 382 | 382 | } |
| 383 | 383 | |
| 384 | - return $timestamp < ($this->getFechaVencimiento() . 'T00:00:00'); |
|
| 384 | + return $timestamp<($this->getFechaVencimiento().'T00:00:00'); |
|
| 385 | 385 | } |
| 386 | 386 | |
| 387 | 387 | /** |
@@ -412,7 +412,7 @@ discard block |
||
| 412 | 412 | { |
| 413 | 413 | $idk = $this->getIDK(); |
| 414 | 414 | |
| 415 | - return $idk === CafFaker::IDK ? null : self::AMBIENTES[$idk]; |
|
| 415 | + return $idk===CafFaker::IDK ? null : self::AMBIENTES[$idk]; |
|
| 416 | 416 | } |
| 417 | 417 | |
| 418 | 418 | /** |
@@ -501,7 +501,7 @@ discard block |
||
| 501 | 501 | { |
| 502 | 502 | $data = $this->getData(); |
| 503 | 503 | |
| 504 | - return (int) $data['AUTORIZACION']['CAF']['DA']['IDK']; |
|
| 504 | + return (int)$data['AUTORIZACION']['CAF']['DA']['IDK']; |
|
| 505 | 505 | } |
| 506 | 506 | |
| 507 | 507 | /** |
@@ -568,14 +568,14 @@ discard block |
||
| 568 | 568 | private function getCertificateSII(): ?string |
| 569 | 569 | { |
| 570 | 570 | $idk = $this->getIDK(); |
| 571 | - if ($idk === CafFaker::IDK) { |
|
| 571 | + if ($idk===CafFaker::IDK) { |
|
| 572 | 572 | return null; |
| 573 | 573 | } |
| 574 | 574 | |
| 575 | - $filename = $idk . '.cer'; |
|
| 575 | + $filename = $idk.'.cer'; |
|
| 576 | 576 | $filepath = PathManager::getCertificatesPath($filename); |
| 577 | 577 | |
| 578 | - if ($filepath === null) { |
|
| 578 | + if ($filepath===null) { |
|
| 579 | 579 | throw new CafException(sprintf( |
| 580 | 580 | 'No fue posible obtener el certificado del SII %s para validar el CAF.', |
| 581 | 581 | $filename |
@@ -122,7 +122,7 @@ discard block |
||
| 122 | 122 | */ |
| 123 | 123 | public function getAmbiente(): int |
| 124 | 124 | { |
| 125 | - return (int) $this->config['ambiente']; |
|
| 125 | + return (int)$this->config['ambiente']; |
|
| 126 | 126 | } |
| 127 | 127 | |
| 128 | 128 | /** |
@@ -239,7 +239,7 @@ discard block |
||
| 239 | 239 | */ |
| 240 | 240 | public function getUrl(string $recurso): string |
| 241 | 241 | { |
| 242 | - $servidor = $recurso === '/anulacionMsvDteInternet' |
|
| 242 | + $servidor = $recurso==='/anulacionMsvDteInternet' |
|
| 243 | 243 | ? $this->getServidor('www4') |
| 244 | 244 | : $this->getServidor() |
| 245 | 245 | ; |
@@ -254,7 +254,7 @@ discard block |
||
| 254 | 254 | */ |
| 255 | 255 | public function getDefaultCache(): string |
| 256 | 256 | { |
| 257 | - return $this->config['cache']['default'] === 'filesystem' |
|
| 257 | + return $this->config['cache']['default']==='filesystem' |
|
| 258 | 258 | ? 'filesystem' |
| 259 | 259 | : 'memory' |
| 260 | 260 | ; |
@@ -183,7 +183,7 @@ |
||
| 183 | 183 | $defaultCache = $this->config->getDefaultCache(); |
| 184 | 184 | |
| 185 | 185 | // Asignar una implementación de caché en el sistema de archivos. |
| 186 | - if ($defaultCache === 'filesystem') { |
|
| 186 | + if ($defaultCache==='filesystem') { |
|
| 187 | 187 | $adapter = new FilesystemAdapter( |
| 188 | 188 | 'libredte_lib', |
| 189 | 189 | 3600, // TTL por defecto a una hora (3600 segundos). |
@@ -123,7 +123,7 @@ discard block |
||
| 123 | 123 | $token = $response['SII:RESPUESTA']['SII:RESP_BODY']['TOKEN'] ?? null; |
| 124 | 124 | |
| 125 | 125 | // Validar respuesta de la solicitud del token. |
| 126 | - if ($estado !== '00' || $token === null) { |
|
| 126 | + if ($estado!=='00' || $token===null) { |
|
| 127 | 127 | $glosa = $response['SII:RESPUESTA']['SII:RESP_HDR']['GLOSA'] ?? null; |
| 128 | 128 | throw new SiiClientException(sprintf( |
| 129 | 129 | 'No fue posible obtener el token para autenticar en el SII al usuario %s. %s', |
@@ -160,11 +160,11 @@ discard block |
||
| 160 | 160 | $estado = $response['SII:RESPUESTA']['SII:RESP_HDR']['ESTADO'] ?? null; |
| 161 | 161 | $semilla = $response['SII:RESPUESTA']['SII:RESP_BODY']['SEMILLA'] ?? null; |
| 162 | 162 | |
| 163 | - if ($estado !== '00' || $semilla === null) { |
|
| 163 | + if ($estado!=='00' || $semilla===null) { |
|
| 164 | 164 | throw new SiiClientException('No fue posible obtener la semilla.'); |
| 165 | 165 | } |
| 166 | 166 | |
| 167 | - return (int) $semilla; |
|
| 167 | + return (int)$semilla; |
|
| 168 | 168 | } |
| 169 | 169 | |
| 170 | 170 | /** |
@@ -189,10 +189,10 @@ discard block |
||
| 189 | 189 | // con el servidor de pruebas (maullin.sii.cl). Estos WSDL se usan |
| 190 | 190 | // siempre al solicitar el WSDL del ambiente de certificación. |
| 191 | 191 | // Cambios basados en: http://stackoverflow.com/a/28464354/3333009 |
| 192 | - if ($ambiente === ConnectionConfig::CERTIFICACION) { |
|
| 192 | + if ($ambiente===ConnectionConfig::CERTIFICACION) { |
|
| 193 | 193 | $servidor = $this->config->getServidor(); |
| 194 | 194 | $wsdl = PathManager::getWsdlPath($servidor, $servicio); |
| 195 | - if ($wsdl !== null) { |
|
| 195 | + if ($wsdl!==null) { |
|
| 196 | 196 | return $wsdl; |
| 197 | 197 | } |
| 198 | 198 | } |
@@ -223,7 +223,7 @@ discard block |
||
| 223 | 223 | public function sendRequest( |
| 224 | 224 | string $service, |
| 225 | 225 | string $function, |
| 226 | - array|int $args = [], |
|
| 226 | + array | int $args = [], |
|
| 227 | 227 | ?int $retry = null |
| 228 | 228 | ): XmlDocument |
| 229 | 229 | { |
@@ -275,7 +275,7 @@ discard block |
||
| 275 | 275 | isset($e->getTrace()[0]['args'][1]) |
| 276 | 276 | && is_string($e->getTrace()[0]['args'][1]) |
| 277 | 277 | ) { |
| 278 | - $message .= ': ' . $e->getTrace()[0]['args'][1]; |
|
| 278 | + $message .= ': '.$e->getTrace()[0]['args'][1]; |
|
| 279 | 279 | } |
| 280 | 280 | throw new SiiClientException(sprintf( |
| 281 | 281 | 'Ocurrió un error al crear el cliente SOAP para la API del SII con el WSDL %s. %s', |
@@ -304,7 +304,7 @@ discard block |
||
| 304 | 304 | // del cliente SOAP preparado previamente. |
| 305 | 305 | // Se realizarán $retry intentos de consulta. O sea, si $retry > 0 se |
| 306 | 306 | // hará una consulta más $retry - 1 reintentos. |
| 307 | - for ($i = 0; $i < $retry; $i++) { |
|
| 307 | + for ($i = 0; $i<$retry; $i++) { |
|
| 308 | 308 | try { |
| 309 | 309 | // Se realiza la llamada a la función en el servicio web. |
| 310 | 310 | $responseBody = $soap->__soapCall( |
@@ -323,7 +323,7 @@ discard block |
||
| 323 | 323 | isset($e->getTrace()[0]['args'][1]) |
| 324 | 324 | && is_string($e->getTrace()[0]['args'][1]) |
| 325 | 325 | ) { |
| 326 | - $message .= ': ' . $e->getTrace()[0]['args'][1]; |
|
| 326 | + $message .= ': '.$e->getTrace()[0]['args'][1]; |
|
| 327 | 327 | } |
| 328 | 328 | $errors[] = sprintf( |
| 329 | 329 | 'Error al ejecutar la función %s en el servicio web SOAP del SII ($i = %d): %s', |
@@ -341,7 +341,7 @@ discard block |
||
| 341 | 341 | |
| 342 | 342 | // Si la respuesta es `null` significa que ninguno de los intentos de |
| 343 | 343 | // llamadas a la función del servicio web fue exitoso. |
| 344 | - if ($responseBody === null) { |
|
| 344 | + if ($responseBody===null) { |
|
| 345 | 345 | throw new SiiClientException(sprintf( |
| 346 | 346 | 'No se obtuvo respuesta de la función %s del servicio web SOAP del SII después de %d intentos. %s', |
| 347 | 347 | $function, |