diff --git a/composer.json b/composer.json index 93f9ce4a3..00756c642 100644 --- a/composer.json +++ b/composer.json @@ -27,6 +27,7 @@ "danielstjules/stringy": "^3.1", "ezyang/htmlpurifier": "^4.8", "filp/whoops": "^2.1", + "guzzlehttp/guzzle": "^6.3", "ifsnop/mysqldump-php": "^2.3", "intervention/image": "^2.3", "league/csv": "^8.2", diff --git a/plugins/fatturazione/FatturaElettronica.php b/plugins/fatturazione/FatturaElettronica.php index 8c8680575..d36dca86a 100644 --- a/plugins/fatturazione/FatturaElettronica.php +++ b/plugins/fatturazione/FatturaElettronica.php @@ -112,7 +112,7 @@ class FatturaElettronica ], 'ProgressivoInvio' => $documento['numero_esterno'], 'FormatoTrasmissione' => ($cliente['tipo'] == 'Ente pubblico') ? 'FPA12' : 'FPR12', - 'CodiceDestinatario' => !empty($cliente['codice_pa']) ? $cliente['codice_pa'] : $default_code, + 'CodiceDestinatario' => !empty($cliente['codice_destinatario']) ? $cliente['codice_destinatario'] : $default_code, ]; // Telefono di contatto @@ -126,7 +126,7 @@ class FatturaElettronica } // Inizializzazione PEC solo se necessario - if (empty($cliente['codice_pa'])) { + if (empty($cliente['codice_destinatario'])) { $result['PECDestinatario'] = $cliente['pec']; } @@ -485,6 +485,29 @@ class FatturaElettronica return $output; } + public static function PA($codice_fiscale) + { + $id = setting('Authorization ID Indice PA'); + + if (empty($id)) { + return null; + } + + // Localhost: ['curl' => [CURLOPT_SSL_VERIFYPEER => false]] + $client = new \GuzzleHttp\Client(); + + $response = $client->request('POST', 'https://www.indicepa.gov.it/public-ws/WS01_SFE_CF.php', [ + 'form_params' => [ + 'AUTH_ID' => $id, + 'CF' => $codice_fiscale, + ], + ]); + + $json = json_decode($response->getBody(), true); + + return isset($json['data'][0]['OU'][0]['cod_uni_ou']) ? $json['data'][0]['OU'][0]['cod_uni_ou'] : null; + } + /** * Salva il file XML. * diff --git a/update/2_4_2.sql b/update/2_4_2.sql index 3886e5487..58b034ec7 100644 --- a/update/2_4_2.sql +++ b/update/2_4_2.sql @@ -206,6 +206,10 @@ INSERT INTO `zz_settings` (`idimpostazione`, `nome`, `valore`, `tipo`, `editable INSERT INTO `zz_plugins` (`id`, `name`, `title`, `idmodule_from`, `idmodule_to`, `position`, `directory`, `options`) VALUES (NULL, 'Fatturazione Elettronica', 'Fatturazione Elettronica', (SELECT `id` FROM `zz_modules` WHERE `name`='Fatture di vendita'), (SELECT `id` FROM `zz_modules` WHERE `name`='Fatture di vendita'), 'tab', 'fatturazione', 'custom'); +INSERT INTO `zz_settings` (`idimpostazione`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `order`) VALUES (NULL, 'Authorization ID Indice PA', '', 'string', 1, 'Generali', 0); + +ALTER TABLE `an_anagrafiche` ADD `codice_destinatario` varchar(7); + -- Aggiornamento zz_settings ALTER TABLE `zz_settings` CHANGE `idimpostazione` `id` int(11) NOT NULL AUTO_INCREMENT; UPDATE `zz_views` SET `query` = REPLACE(`query`, 'idimpostazione', 'id');