From ccdb2305d74b345974fa129a32eebee9321530cb Mon Sep 17 00:00:00 2001 From: Esteban Sassone Date: Tue, 29 Jan 2019 17:31:10 -0300 Subject: [PATCH] =?UTF-8?q?Refs=20#18510=20-=20Validaci=C3=B3n=20de=20conf?= =?UTF-8?q?ig.=20AFIP=20en=20las=20validaciones=20generales?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../procesos/proceso_validar_instalacion.php | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/src/siu/sq/lib/procesos/proceso_validar_instalacion.php b/src/siu/sq/lib/procesos/proceso_validar_instalacion.php index b304faf..700918c 100644 --- a/src/siu/sq/lib/procesos/proceso_validar_instalacion.php +++ b/src/siu/sq/lib/procesos/proceso_validar_instalacion.php @@ -13,6 +13,7 @@ use SIU\SQ\Lib\entorno\configurador; use SIU\SQ\Lib\errores\error; use SIU\SQ\Lib\lib; use SIU\SQ\Lib\procesos; +use SIU\SQ\Nucleo\sq_nucleo; use Symfony\Component\Console\Input\StringInput; use Symfony\Component\Console\Output\NullOutput; @@ -229,6 +230,46 @@ class proceso_validar_instalacion extends proceso $this->error[] = "No se pudo conectar con SIU-Guarani. " . PHP_EOL . $ex->getMessage() . PHP_EOL; } } + // Validar configuracion basica de AFIP + if (in_array('afip', $this->conexiones_sistemas)) { + try { + // Si se encuentra configurado un nuevo de cuit... + if($config->sq_ini['factura_afip']['cuit'] !== '00000000000') { + // Validar que el numero de CUIT solo contenga numeros + $numeros = preg_replace('/[0-9]/', '', $config->sq_ini['factura_afip']['cuit']); + if(strlen($numeros) > 0){ + throw new \Exception("El número de CUIT '" . $config->sq_ini['factura_afip']['cuit'] . "' no es valido, solo debe contener números."); + } + if(strlen($config->sq_ini['factura_afip']['cuit']) !== 11){ + throw new \Exception("El número '" . $config->sq_ini['factura_afip']['cuit'] . "' no es valido, debe contener 11 digitos."); + } + // Obtener credenciales y configurar + $path = realpath($config->get_config_dir()) . "/credenciales_afip"; + $config = [ + 'CUIT' => $config->sq_ini['factura_afip']['cuit'], + 'production' => ($config->sq_ini['factura_afip']['produccion'] == "true") ? true : false, + 'cert' => $path . "/certificado.crt", + 'key' => $path . "/clave_privada", + 'token_dir' => $path . "/" + ]; + $afip = new \SIU\Afip\Afip($config); + // Obtener estado del servidor + $factura_electronica = new \SIU\Afip\WebService\FacturaElectronica($afip); + $result = $factura_electronica->getEstadoServicio(); + if($result->AppServer !== 'OK' OR $result->DbServer !== 'OK' OR $result->AuthServer !== 'OK'){ + $msg = "Se encontraron errores en el estado del servidor AFIP. " + . PHP_EOL . " AppServer: " . $result->AppServer + . PHP_EOL . " DbServer: " . $result->DbServer + . PHP_EOL . " AuthServer: " . $result->AuthServer; + throw new \Exception($msg); + } + // No es la mejor validacion pero se valida el numero de cuit y los certificados... + $factura_electronica->getTiposCbte(); + } + } catch (\Exception $ex) { + $this->error[] = "No se pudo conectar con AFIP. " . PHP_EOL . $ex->getMessage() . PHP_EOL; + } + } } else { $this->notificaciones[] = "No se estan validando las conexiones con los sistemas" . PHP_EOL . "Elimine la entrada 'validar_comunicacion_sistemas' en el archivo 'sq.ini' para activarla"; } -- GitLab