update bots
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
from typing import List
|
||||
|
||||
from .. import Provider as SsnProvider
|
||||
|
||||
|
||||
def checksum(digits: List[int]) -> int:
|
||||
"""
|
||||
Calculate and return control digit for given list of digits based on
|
||||
ISO7064, MOD 11,10 standard.
|
||||
"""
|
||||
remainder = 10
|
||||
for digit in digits:
|
||||
remainder = (remainder + digit) % 10
|
||||
if remainder == 0:
|
||||
remainder = 10
|
||||
remainder = (remainder * 2) % 11
|
||||
|
||||
control_digit = 11 - remainder
|
||||
if control_digit == 10:
|
||||
control_digit = 0
|
||||
return control_digit
|
||||
|
||||
|
||||
class Provider(SsnProvider):
|
||||
"""
|
||||
The Personal identification number (Croatian: Osobni identifikacijski
|
||||
broj or OIB) is a permanent national identification number of every
|
||||
Croatian citizen and legal persons domiciled in the Republic of Croatia.
|
||||
|
||||
OIB consists of 11 digits which contain no personal information. The OIB
|
||||
is constructed from ten randomly chosen digits and one digit control number
|
||||
(international standard ISO 7064, module 11.10).
|
||||
"""
|
||||
|
||||
def ssn(self) -> str:
|
||||
digits = self.generator.random.sample(range(10), 10)
|
||||
|
||||
digits.append(checksum(digits))
|
||||
|
||||
return "".join(map(str, digits))
|
||||
|
||||
vat_id_formats = ("HR###########",)
|
||||
|
||||
def vat_id(self) -> str:
|
||||
"""
|
||||
http://ec.europa.eu/taxation_customs/vies/faq.html#item_11
|
||||
:return: A random Croatian VAT ID
|
||||
"""
|
||||
return self.bothify(self.random_element(self.vat_id_formats))
|
||||
Binary file not shown.
Reference in New Issue
Block a user