QonosMedlem sedan sep. 2000438 inlägg kolla i scriptarkivet och hitta "Metod för att kontrollera personnummer", är det samma "regler" som gäller för personnummer som det är för organisationsnummer?
jag gissar på att det inte är detta, så är det någon som har en kodsnutt för hur man kollar att det är ett giltligt personnummer || organisations nummer?
Sen finns det ju "moms nr/vat" kan man kolla detta på något sätt??
QonosMedlem sedan sep. 2000438 inlägg moms nr/vat har jag hittat uppbyggnaden till...
http://www.pruefziffernberechnung.de/U/USt-IdNr.shtml
men det är på tyska och jag kan typ inte ett ord tyska
QonosMedlem sedan sep. 2000438 inlägg oki jag ger mig :P
personnumer & organisationsnummer fungerar med den funktionen, men det är det här med moms nr/vat grejen kvar, någon som har en lösning på detta
QonosMedlem sedan sep. 2000438 inlägg Nu har jag kommit lite närmre
fick detta svaret av någon som är webansvarig eller nått liknande på rsv.se
"Här är algoritmen i C. Lite krångligt, men tyvärr har jag inte den skriven
i klartext. Det är alltså samma modulo 10 koll som görs på personnummer.
Det finns mer utförliga kontroller, men tyvärr fick jag inte tag på de
personer som antingen handlägger eller programmerar moms-rutiner. Om du
inte tycker att nedanstående är tillräckligt får du maila tillbaka."
#define CHARINT(c) (int) ((c) - '0')
#define LENVATSE 12
typedef enum { FALSE, TRUE } Bool;
static Bool CheckSe (char *pStringVatNo)
{
register int i;
register int accu = 0;
register int res;
for (i = 0; i \<= 8; i+=2)
{
res = 2 \* CHARINT ( \*(pStringVatNo + i) );
if (res \> 9)
res -= 9;
accu += res;
}
for (i = 1; i \<= 7; i+=2)
{
accu += CHARINT ( \*(pStringVatNo + i) );
}
res = 10 - accu % 10;
if (res == 10)
res = 0;
return (CHARINT (\*(pStringVatNo + LENVATSE - 3)) == res) ? TRUE :
FALSE;
}
så det borde ju vara liknande/samma kod som den som kollar personnummret men jag måste göra nått fel för jag får det inte att fungera. hmmm
QonosMedlem sedan sep. 2000438 inlägg
define('LENVATSE', 12);
function CheckSe ($pStringVatNo)
{
$accu = 0;
for ($i = 0; $i <= 8; $i+=2)
{
$res = 2 * (int)$pStringVatNo[$i];
if ($res > 9)
$res -= 9;
$accu += $res;
}
for ($i = 1; $i <= 7; $i+=2)
{
$accu += (int)$pStringVatNo[$i];
}
$res = 10 - $accu % 10;
if ($res == 10)
$res = 0;
return $pStringVatNo[LENVATSE-3]==$res;
}
den ger en etta om VAT nummret är OK och ger inte nått om det är fel...
QonosMedlem sedan sep. 2000438 inlägg den används så här
$vatnr = "700108553401";
if ( CheckSe ($vatnr) == 1)
echo "OK";
else
echo "EJ OK";
Fungerar dock bara på svenska VAT-nummer
QonosMedlem sedan sep. 2000438 inlägg Inser nu att den inte riktigt fungerar som den skall :(