learnMedlem sedan jan. 20051 130 inlägg Hej alla!
Jag skulle vilja kunna testa ifall olika inmatade organisationsnummer är giltiga (personnummer/enskilda firmor skall inte godkännas). Hittade detta script men det är skrivet i javascript, jag vill gärna ha PHP (känns säkrare).
Någon som vet vart jag kan hitta ett sådant/vill översätta ovanstående till PHP åt mig??
Tack på förhand! :bire
learnMedlem sedan jan. 20051 130 inlägg Någon som vet hur jag kan göra? :)
stevenetMedlem sedan juni 20001 251 inlägg
stevenet skrev:
http://www.phpcoded.com/?DO=viewCode&ID=17
Med det scriptet du hänvisade till kollar man persnr/orgnr enskilda firmor, precis det Learn inte behövde :)
learnMedlem sedan jan. 20051 130 inlägg
seattlegrunge skrev:
Med det scriptet du hänvisade till kollar man persnr/orgnr enskilda firmor, precis det Learn inte behövde :)
Precis. Dessutom tycker jag inte det såg så genomtänkt ut...
Någon?
LaspMedlem sedan juli 200012 980 inlägg Ett Test skall ju i det grundläggande kunna fungera både med och utan bindestreck i sjunde positionen. Så det går väl att använda ett bra personnrtest och komplettera med test av att de två första är 55 att tredej och fjärde är mer än 12 osv. Vilken typ av bolag skall kollas?
The_HulkMedlem sedan juni 20031 837 inlägg Här kommer ett förslag för översättning till PHP-kod
Med orginal koden
<?php
function checkOrgNr($nr)
{
// this.valid=false;
$valid = false;
// if(!nr.match(/^(\d{1})(\d{5})\-(\d{4})$/)){ return false; }
$match = array();
if(!preg_match("/^(\d{1})(\d{5})\-(\d{4})$/", $nr, $match))
{
return false;
}
//this.group=RegExp.$1;
$group = $match[1];
//this.controldigits=RegExp.$3;
$controldigits = $match[3];
//this.alldigits=this.group+RegExp.$2+this.controldigits;
$alldigits = $group . $match[2] . $controldigits;
//if(this.alldigits.substring(2,3)<2){ return false }
if(substr($alldigits, 2,1) < 2)
{
return false;
}
//var nn="";
$nn = "";
//for(var n=0;n<this.alldigits.length;n++){ nn+=((((n+1)%2)+1)*this.alldigits.substring(n,n+1)); }
for($n=0; $n < strlen($alldigits); ++$n)
{
$nn .= (( (($n+1)%2) +1) * substr($alldigits, $n,1));
}
//this.checksum=0;
$checksum = 0;
//for(var n=0;n<nn.length;n++){ this.checksum+=nn.substring(n,n+1)*1; }
for($n=0; $n < strlen($nn); ++$n)
{
$checksum += substr($nn, $n, 1);
}
//this.valid=(this.checksum%10==0)?true:false;
$valid = $checksum % 10 == 0;
return $valid;
}
checkOrgNr('123456-7890');
?>
utan orginal koden
<?php
function checkOrgNr($nr)
{
$valid = false;
$match = array();
if(!preg_match("/^(\d{1})(\d{5})\-(\d{4})$/", $nr, $match))
{
return false;
}
$group = $match[1];
$controldigits = $match[3];
$alldigits = $group . $match[2] . $controldigits;
if(substr($alldigits, 2,1) < 2)
{
return false;
}
$nn = "";
for($n=0; $n < strlen($alldigits); ++$n)
{
$nn .= (( (($n+1)%2) +1) * substr($alldigits, $n,1));
}
$checksum = 0;
for($n=0; $n < strlen($nn); ++$n)
{
$checksum += substr($nn, $n, 1);
}
$valid = $checksum % 10 == 0;
return $valid;
}
checkOrgNr('123456-7890');
?>
Man kan göra om koden lite mer men nu tog jag och översatte den mer eller mindre rakt av.
learnMedlem sedan jan. 20051 130 inlägg Lasp: Jag vill kolla aktiebolag, handelsbolag och ekonomiska föreningar.
The_Hulk: Tack! Är detta ett bra script, kan jag lita på att deet fungerar som det ska..? Jag vill ju inte att giltiga ab, hb eller ek blir nekade tillstånd... :)
Från susning.nu Kolla första och tredje siffran.
Organisationsnummer motsvarar personnummer
för juridiska personer till skillnad från fysiska personer.
De kännetecknas av att den tredje siffran, första siffran
i "månadsdelen", är större än eller lika med 2.
Precis som personnummer har organisationsnummer
en kontrollsiffra i slutet. Den sista siffran kan även
den räknas ut med hjälp av algoritmen modulo 10.
Se personnummer för mer info.
Den första siffran i organisationsnumret anger vilken
grupp av bolagsformer som den juridiska personen tillhör.
Inledande siffra Bolagsform
2 Stat, landsting eller kommun
5 Aktiebolag
7 Ekonomisk förening
8 Stiftelse eller ideell förening
9 Handelsbolag, kommanditbolag
learnMedlem sedan jan. 20051 130 inlägg Ok, och hur ska jag applicera dessa regler i koden? :)
Det har jag ingen aning om :) Ville bara tipsa om vilka nuffror som är vad. :)