cancel
Showing results for 
Search instead for 
Did you mean: 

Partita IVA non valida

Partita IVA non valida

Ciao a tutti, 

in fase di registrazione i clienti riescono a registrarsi con partita IVA ma quando fanno il login alla loro area riservata compare questo errore:

 

"La partita IVA inserita (XXXXXXX) non è una partita IVA valida. Verranno addebitate le tasse."

 

ho controllato e la partita iva è esatta. 

 

Ho sbagliato qualche impostazione?

 

Grazie

4 REPLIES

Re: Partita IVA non valida

Ciao,

non so quale versione utilizzi o se hai installato qualche modulo specifico per la partita iva. Personalmente non ho mai incontrato un problema del genere su Magento.

Considera comunque che, in generale, molti sistemi che verificano la validità della partita Iva, fanno controlli sul Vies

Quindi se una partita Iva comunitaria è corretta nel proprio paese ma non è presente nel Vies potrebbe risultare non corretta.

Spero di essermi espresso chiaramente.

Saluti

Re: Partita IVA non valida

Ciao,

quello che dice @fabrisys è giusto.

Per evitare che ti esca l'errore puoi aggiungere il controllo "manuale" della partita IVA italiana, modificando la funzione checkVatNumber che trovi nel file /app/code/core/Mage/Customer/Helper/Data.php alla riga 524.

Alla riga 566 aggiungi il seguente codice:

if($countryCode == "IT"){
    $result = true;
    if($requestParams['vatNumber']=='')
        $result = false;

    //la p.iva deve essere lunga 11 caratteri
    if(strlen($requestParams['vatNumber'])!=11)
        $result = false;

    //la p.iva deve avere solo cifre
    if(!ereg("^[0-9]+$", $requestParams['vatNumber']))
        $result = false;

    $primo=0;
    for($i=0; $i<=9; $i+=2)
        $primo+= ord($requestParams['vatNumber'][$i])-ord('0');

    for($i=1; $i<=9; $i+=2 ){
        $secondo=2*( ord($requestParams['vatNumber'][$i])-ord('0') );

        if($secondo>9)
            $secondo=$secondo-9;
        $primo+=$secondo;

    }
    if( (10-$primo%10)%10 != ord($requestParams['vatNumber'][10])-ord('0') )
        $result = false;

    $gatewayResponse->setIsValid($result);
    $gatewayResponse->setRequestDate((string) $result->requestDate);
    $gatewayResponse->setRequestIdentifier((string) $result->requestIdentifier);
    $gatewayResponse->setRequestSuccess(true);

}

 

Re: Partita IVA non valida

Ciao SielcoSistemi ho provato a mettere in pratica il tuo consiglio ma non funziona. Ecco cosa trovo come codice alla riga 566:

     {
        // Default response
        $gatewayResponse = new Varien_Object(array(
            'is_valid' => false,
            'request_date' => '',
            'request_identifier' => '',
            'request_success' => false
        ));

Re: Partita IVA non valida

Ciao,

che versione di Magento hai?

La modifica che ho postato, è quella che uso io per la versione 1.9.