ABN Validation
10 April 2007 17:48 (EST)
Australian Business Number (ABN) validation function, based on ABN format description from Australian Taxation Office (ATO):
<cffunction name="isValidABN" returntype="boolean" access="public" output="false">
<cfargument name="ABN" type="string" required="true" />
<cfset var aWeight = listtoarray("10, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19") />
<cfset var sABN = "" />
<cfset var i = 0 />
<cfset var hashSum = 0 />
<cfset sABN = rereplace(arguments.ABN,"[^\d]","","all") />
<cfif len(sABN) eq 11>
<cfloop index="i" from="1" to="11">
<cfset hashSum = hashSum + aWeight[i]*(mid(sABN,i,1)-iif(i eq 1,de(1),de(0))) />
</cfloop>
<cfif hashSum mod 89 eq 0>
<cfreturn true />
</cfif>
</cfif>
<cfreturn false />
</cffunction>
<cfargument name="ABN" type="string" required="true" />
<cfset var aWeight = listtoarray("10, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19") />
<cfset var sABN = "" />
<cfset var i = 0 />
<cfset var hashSum = 0 />
<cfset sABN = rereplace(arguments.ABN,"[^\d]","","all") />
<cfif len(sABN) eq 11>
<cfloop index="i" from="1" to="11">
<cfset hashSum = hashSum + aWeight[i]*(mid(sABN,i,1)-iif(i eq 1,de(1),de(0))) />
</cfloop>
<cfif hashSum mod 89 eq 0>
<cfreturn true />
</cfif>
</cfif>
<cfreturn false />
</cffunction>
← Melbourne CFUG: Previous
Next: ColdFusion 8 "Scorpio" Beta →
Discussion (no comments)