Pagina 1 di 1

"Numero di partita IVA scorretto". Perché???

Inviato: 24/04/2007, 18:18
da spaceman813
ho installato la contribution per avere Codice fiscale e Partita IVA nel modulo di registrazione; per il codice fiscale non c'è problema, lo accetta se è della lnghezza giusta ecc, mentre la Partita IVA me la considera sempre non corretta. Ho provato con numeri da 1 a 15 cifre, è sempre sbagliato.
Perché? Dove trovo i parametri per cambiare la lunghezza minima della partita iva?
Ho trovato solo queste righe nel file form_check.js che a giudicare dal nome dovrebbe fare proprio quello, ma non mi sembra proprio che controllino la lunghezza dell'input.

Codice: Seleziona tutto

//PIVACF start
<?php if (ACCOUNT_CF_REQ == 'true') echo '  check_input("cf", 0, "' . ENTRY_CF_ERROR . '");' . "\n"; ?>
<?php if (ACCOUNT_PIVA_REQ == 'true') echo '  check_input("pivae", 0, "' . ENTRY_PIVA_ERROR . '");' . "\n"; ?>
//PIVACF end
Aiutoooo! :cry:

Inviato: 26/04/2007, 15:42
da taslach
Ma le prove le hai fatte inserendo numeri a caso?
La partita iva ha le sue "regole di composizione" come il codice fiscale, non è solo questione di lunghezza... quindi, probabilmente, se hai inserito una contribution che effettua un controllo sulla partita iva, questo controllo non si limita a verificare se il numero di cifre è quello giusto...

TASLACH

Inviato: 28/04/2007, 10:51
da spaceman813
No, ho provato con un vero numero di partita iva italiano. Ho provato anche a inserire IT prima del numero.
Ma niente......

Qualcuno sa come annullare tutti i controlli e lasciare che sia un campo libero come quello del nome o l'indirizzo? Anche perchè i VAT numbers di altri paesi europei hanno lunghezze diverse

Inviato: 28/04/2007, 11:51
da maury2ma
io lo so....... :o

se non ti riconosce il numero di partita iva italiano .... allora hai toppato da qualche parte. :?

per quanto riguarda il conrrollo solo se l'utente e' italino e' presto detto.

metti

Codice: Seleziona tutto

if ((ACCOUNT_CF == 'true') && ((int)$country == '105')) {
dove trovi

Codice: Seleziona tutto

if (ACCOUNT_CF == 'true') {
sia per il CF che per IVA

Codice: Seleziona tutto

if ((ACCOUNT_PIVA == 'true') && ((int)$country == '105')) {

Inviato: 28/04/2007, 16:26
da spaceman813
Grazie della risposta, ma io NON voglio che faccia alcun controllo, voglio solo che compaia il campo.

Ho trovato dove fa il controllo, ma non so come disabilitarlo. Nel file account_create.php:

Codice: Seleziona tutto

	//PIVACF start
	if (ACCOUNT_PIVA == 'true'){
	  if (($piva == "") && (ACCOUNT_PIVA_REQ == 'true')) {
	    $error = true;
		$messageStack->add('create_account', ENTRY_PIVA_ERROR);
	  } else if ((strlen($piva) != 11) && ($piva != ""))  {
        $error = true;
        $messageStack->add('create_account', ENTRY_PIVA_ERROR);
      } else if (strlen($piva) == 11) {
	    if( ! ereg("^[0-9]+$", $piva) ) {
	      $error = true;
	      $messageStack->add('create_account', ENTRY_PIVA_ERROR);
        } else {
	      $s = 0;
		  for( $i = 0; $i <= 9; $i += 2 ) $s += ord($piva[$i]) - ord('0');
		  for( $i = 1; $i <= 9; $i += 2 ) {
		    $c = 2*( ord($piva[$i]) - ord('0') );
		    if( $c > 9 ) $c = $c - 9;
		    $s += $c;
	      }
	      if( ( 10 - $s%10 )%10 != ord($piva[10]) - ord('0') ) {
            $error = true;
            $messageStack->add('create_account', ENTRY_PIVA_ERROR);
          }
	    }
	  }	
	}
Qualcuno capisce cosa devo fare? Ho provato a sostituire, all'inizio del codice, i due = 11 con > 5, ma non cambia niente.

Inviato: 03/05/2007, 19:47
da spaceman813
Risolto,
se interessasse a qualcuno, ho disabilitato il controllo annullando gran parte del codice, così:

Codice: Seleziona tutto

	//PIVACF start
	if (ACCOUNT_PIVA == 'true'){
	  if (($piva == "") && (ACCOUNT_PIVA_REQ == 'true')) {
	    $error = true;
		$messageStack->add('create_account', ENTRY_PIVA_ERROR);
	  } 
	 /* else if ((strlen($piva) > 5) && ($piva != ""))  {
        $error = true;
        $messageStack->add('create_account', ENTRY_PIVA_ERROR);
      } else if (strlen($piva) > 5) {
	    if( ! ereg("^[0-9]+$", $piva) ) {
	      $error = true;
	      $messageStack->add('create_account', ENTRY_PIVA_ERROR);
        } else {
	      $s = 0;
		  for( $i = 0; $i <= 9; $i += 2 ) $s += ord($piva[$i]) - ord('0');
		  for( $i = 1; $i <= 9; $i += 2 ) {
		    $c = 2*( ord($piva[$i]) - ord('0') );
		    if( $c > 9 ) $c = $c - 9;
		    $s += $c;
	      }
	      if( ( 10 - $s%10 )%10 != ord($piva[10]) - ord('0') ) {
            $error = true;
            $messageStack->add('create_account', ENTRY_PIVA_ERROR);
          }
	    }
	  }	
*/	}

Inviato: 04/05/2007, 9:16
da luxifer
Così però ti fa comunque il controllo che il campo della partita iva non sia vuoto...e restituisce la "barra rosa" dell'errore...