prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  Faker should provide company VAT numbers
  It would be nice if faker could provide company VAT numbers. More information about VAT codes is in Wikipedia: https://en.wikipedia.org/wiki/VAT_identification_number
  
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `faker/providers/company/fi_FI/__init__.py`
  Content:
  ```
  1 from __future__ import unicode_literals
  2 from .. import Provider as CompanyProvider
  3 
  4 
  5 class Provider(CompanyProvider):
  6     formats = (
  7         '{{last_name}} {{company_suffix}}',
  8         '{{last_name}} {{last_name}} {{company_suffix}}',
  9         '{{last_name}} {{last_name}} {{company_suffix}}',
  10         '{{last_name}}'
  11     )
  12 
  13     company_suffixes = (
  14         'As Oy', 'Tmi', 'Oy', 'Oyj', 'Ky', 'Osk', 'ry'
  15     )
  16
  ```
  --- END FILES ---
  
  Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.
  
  Here is an example:
  
  ```diff
  diff --git a/examples/server_async.py b/examples/server_async.py
  --- a/examples/server_async.py
  +++ b/examples/server_async.py
  @@ -313,4 +313,4 @@
   
   
   if __name__ == "__main__":
  -    asyncio.run(run_async_server("."), debug=True)
  +    asyncio.run(run_async_server(), debug=True)
  diff --git a/examples/server_sync.py b/examples/server_sync.py
  --- a/examples/server_sync.py
  +++ b/examples/server_sync.py
  @@ -313,5 +313,5 @@
   
   
   if __name__ == "__main__":
  -    server = run_sync_server(".")
  +    server = run_sync_server()
       server.shutdown()
  
  ```
  
golden_diff: diff --git a/faker/providers/company/fi_FI/__init__.py b/faker/providers/company/fi_FI/__init__.py
  --- a/faker/providers/company/fi_FI/__init__.py
  +++ b/faker/providers/company/fi_FI/__init__.py
  @@ -13,3 +13,41 @@
       company_suffixes = (
           'As Oy', 'Tmi', 'Oy', 'Oyj', 'Ky', 'Osk', 'ry'
       )
  +
  +    def company_business_id(self):
  +        """
  +        Returns Finnish company Business Identity Code (y-tunnus).
  +        Format is 8 digits - e.g. FI99999999,[8] last digit is a check
  +        digit utilizing MOD 11-2. The first digit is zero for some old
  +        organizations. This function provides current codes starting with
  +        non-zero.
  +        """
  +        def calculate_checksum(number):
  +            """Calculate the checksum using mod 11,2 method"""
  +            factors = [7, 9, 10, 5, 8, 4, 2]
  +            sum = 0
  +            for x, y in zip(number, factors):
  +                sum = sum + int(x) * y
  +            if sum % 11 == 0:
  +                return '0'
  +            else:
  +                return str(11 - sum % 11)
  +
  +        first_digit = str(self.random_digit_not_null())
  +        body = first_digit + self.bothify(self.random_element(('######',)))
  +        cs = calculate_checksum(body)
  +        return (body + '-' + str(cs))
  +
  +    def company_vat(self):
  +        """
  +        Returns Finnish VAT identification number (Arvonlisaveronumero).
  +        This can be calculated from company business identity code by
  +        adding prefix "FI" and removing dash before checksum.
  +        """
  +        def convert_to_vat(business_id):
  +            """
  +            Convert business id to VATIN
  +            """
  +            return 'FI' + business_id.replace('-', '')
  +
  +        return convert_to_vat(self.company_business_id())
  
verification_info: {"golden_diff": "diff --git a/faker/providers/company/fi_FI/__init__.py b/faker/providers/company/fi_FI/__init__.py\n--- a/faker/providers/company/fi_FI/__init__.py\n+++ b/faker/providers/company/fi_FI/__init__.py\n@@ -13,3 +13,41 @@\n     company_suffixes = (\n         'As Oy', 'Tmi', 'Oy', 'Oyj', 'Ky', 'Osk', 'ry'\n     )\n+\n+    def company_business_id(self):\n+        \"\"\"\n+        Returns Finnish company Business Identity Code (y-tunnus).\n+        Format is 8 digits - e.g. FI99999999,[8] last digit is a check\n+        digit utilizing MOD 11-2. The first digit is zero for some old\n+        organizations. This function provides current codes starting with\n+        non-zero.\n+        \"\"\"\n+        def calculate_checksum(number):\n+            \"\"\"Calculate the checksum using mod 11,2 method\"\"\"\n+            factors = [7, 9, 10, 5, 8, 4, 2]\n+            sum = 0\n+            for x, y in zip(number, factors):\n+                sum = sum + int(x) * y\n+            if sum % 11 == 0:\n+                return '0'\n+            else:\n+                return str(11 - sum % 11)\n+\n+        first_digit = str(self.random_digit_not_null())\n+        body = first_digit + self.bothify(self.random_element(('######',)))\n+        cs = calculate_checksum(body)\n+        return (body + '-' + str(cs))\n+\n+    def company_vat(self):\n+        \"\"\"\n+        Returns Finnish VAT identification number (Arvonlisaveronumero).\n+        This can be calculated from company business identity code by\n+        adding prefix \"FI\" and removing dash before checksum.\n+        \"\"\"\n+        def convert_to_vat(business_id):\n+            \"\"\"\n+            Convert business id to VATIN\n+            \"\"\"\n+            return 'FI' + business_id.replace('-', '')\n+\n+        return convert_to_vat(self.company_business_id())\n", "issue": "Faker should provide company VAT numbers\nIt would be nice if faker could provide company VAT numbers. More information about VAT codes is in Wikipedia: https://en.wikipedia.org/wiki/VAT_identification_number\n\n", "before_files": [{"content": "from __future__ import unicode_literals\nfrom .. import Provider as CompanyProvider\n\n\nclass Provider(CompanyProvider):\n    formats = (\n        '{{last_name}} {{company_suffix}}',\n        '{{last_name}} {{last_name}} {{company_suffix}}',\n        '{{last_name}} {{last_name}} {{company_suffix}}',\n        '{{last_name}}'\n    )\n\n    company_suffixes = (\n        'As Oy', 'Tmi', 'Oy', 'Oyj', 'Ky', 'Osk', 'ry'\n    )\n", "path": "faker/providers/company/fi_FI/__init__.py"}], "after_files": [{"content": "from __future__ import unicode_literals\nfrom .. import Provider as CompanyProvider\n\n\nclass Provider(CompanyProvider):\n    formats = (\n        '{{last_name}} {{company_suffix}}',\n        '{{last_name}} {{last_name}} {{company_suffix}}',\n        '{{last_name}} {{last_name}} {{company_suffix}}',\n        '{{last_name}}'\n    )\n\n    company_suffixes = (\n        'As Oy', 'Tmi', 'Oy', 'Oyj', 'Ky', 'Osk', 'ry'\n    )\n\n    def company_business_id(self):\n        \"\"\"\n        Returns Finnish company Business Identity Code (y-tunnus).\n        Format is 8 digits - e.g. FI99999999,[8] last digit is a check\n        digit utilizing MOD 11-2. The first digit is zero for some old\n        organizations. This function provides current codes starting with\n        non-zero.\n        \"\"\"\n        def calculate_checksum(number):\n            \"\"\"Calculate the checksum using mod 11,2 method\"\"\"\n            factors = [7, 9, 10, 5, 8, 4, 2]\n            sum = 0\n            for x, y in zip(number, factors):\n                sum = sum + int(x) * y\n            if sum % 11 == 0:\n                return '0'\n            else:\n                return str(11 - sum % 11)\n\n        first_digit = str(self.random_digit_not_null())\n        body = first_digit + self.bothify(self.random_element(('######',)))\n        cs = calculate_checksum(body)\n        return (body + '-' + str(cs))\n\n    def company_vat(self):\n        \"\"\"\n        Returns Finnish VAT identification number (Arvonlisaveronumero).\n        This can be calculated from company business identity code by\n        adding prefix \"FI\" and removing dash before checksum.\n        \"\"\"\n        def convert_to_vat(business_id):\n            \"\"\"\n            Convert business id to VATIN\n            \"\"\"\n            return 'FI' + business_id.replace('-', '')\n\n        return convert_to_vat(self.company_business_id())\n", "path": "faker/providers/company/fi_FI/__init__.py"}]}