Initial Commit
This commit is contained in:
@@ -0,0 +1,94 @@
|
||||
<?php
|
||||
|
||||
class App_Service_FeAuthInfo
|
||||
{
|
||||
private $_model;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->_model = new Application_Model_Generic();
|
||||
}
|
||||
|
||||
/**
|
||||
* Funzione per il recupero delle credenziali di accesso al servizio fatturaB2B
|
||||
*
|
||||
* Le cerca prima nella tabella di appoggio interna fe_authdata
|
||||
* se non le trova le cerca tramite il collegamento al sito fattuab2b.it e le memorizza per i successvi utilizzi
|
||||
*
|
||||
* @param string $piva
|
||||
* @return mixed
|
||||
* @throws App_Controller_Errors_WebServiceError
|
||||
*/
|
||||
public function getFeAuthCredential(string $piva)
|
||||
{
|
||||
$piva = str_replace('IT','', $piva);
|
||||
$credenziali = $this->_model->getByColumnName('FeAuthData', 'PartitaIva', $piva);
|
||||
|
||||
if (!$credenziali) { // se non le trovo le cerco sul servizio del sito fattura b2b
|
||||
$credenziali = $this->getFeAuthFatturaB2B($piva);
|
||||
}
|
||||
|
||||
return $this->decriptaCredenziali($credenziali);
|
||||
}
|
||||
|
||||
/**
|
||||
* Recuper le credenziali dal sito fatturab2b.it e nel caso non sono presenti le memorizza sulla tabella delle credenziali
|
||||
* @param $piva
|
||||
* @return array|array[]
|
||||
* @throws App_Controller_Errors_WebServiceError
|
||||
*/
|
||||
private function getFeAuthFatturaB2B($piva)
|
||||
{
|
||||
|
||||
//Controllo se il cliente ha il servizio di fatturazione elettronica attivo sul sito FatturaB2B
|
||||
$ApiFatturaB2B = new App_Model_CurlHttpClient('https://www.fatturab2b.it/services/checkserviziofe');
|
||||
$credenzialiFe = $ApiFatturaB2B->getCall(array('piva' => $piva, 'info' => 1));
|
||||
|
||||
if (!$credenzialiFe || !$credenzialiFe['success'] || !$credenzialiFe['data']['StatoServizio']) {
|
||||
throw new App_Controller_Errors_WebServiceError("Credenziali non esistenti o servizio non attivo per la partita iva $piva");
|
||||
}
|
||||
|
||||
$credenziali = $credenzialiFe['data'];
|
||||
$credenziali['PartitaIva'] = str_replace('IT','', $credenziali['PartitaIva']);
|
||||
|
||||
return $this->insertUpdateFeAuthRecord($credenziali);
|
||||
}
|
||||
|
||||
/**
|
||||
* Memorizza le credenziali nella tabella di appoggio fe_authdata
|
||||
*
|
||||
* @param $credenziali
|
||||
* @return array|array[]
|
||||
* @throws App_Controller_Errors_WebServiceError
|
||||
* @throws Zend_Form_Exception
|
||||
*/
|
||||
private function insertUpdateFeAuthRecord($credenziali)
|
||||
{
|
||||
|
||||
$feAuthDataForm = new Application_Form_Admin_Index_FeAuthData_Add();
|
||||
if(!$feAuthDataForm->isValid($credenziali)){
|
||||
throw new App_Controller_Errors_WebServiceError("Dati da inserire nel fe auth data non validi");
|
||||
}
|
||||
|
||||
$credenziali = $feAuthDataForm->getValues();
|
||||
$credenziali['DataUpdate'] = date('Y-m-d H:i:s');
|
||||
|
||||
$this->_model->deleteWhere('FeAuthData', array("PartitaIva = '?'" => $credenziali['PartitaIva']));
|
||||
$credenziali['id'] = $this->_model->insert('FeAuthData', $credenziali);
|
||||
|
||||
return $credenziali;
|
||||
}
|
||||
|
||||
/**
|
||||
* Decripta le credenziali e le restituisce
|
||||
*
|
||||
* @param $credenziali
|
||||
* @return mixed
|
||||
*/
|
||||
private function decriptaCredenziali($credenziali){
|
||||
$credenziali['Password'] = App_Service_CodificaPiva::decriptaHex($credenziali['Password']);
|
||||
return $credenziali;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user