Exemple #1
0
    def test_invalid_user(self):
        address = Mock()
        address.country = Mock()
        address.country.code = 'AT'
        address.line4 = 'Vienna'
        address.postcode = '1010'
        address.phone_number = '+49 911 234 5678'
        address.line1 = 'hastexo Professional Services GmbH'
        address.vatin = ''
        user = Mock()
        user.addresses = Mock()
        user.addresses.order_by = Mock(return_value=[address])

        with self.assertRaises(vat.VATAssessmentException):
            result_rate = vat.lookup_vat_for_user(user)

        address.vatin = 'ATU66688999'
        with self.assertRaises(vat.VATAssessmentException):
            result_rate = vat.lookup_vat_for_user(user)
    def test_invalid_user(self):
        address = Mock()
        address.country = Mock()
        address.country.code = 'AT'
        address.line4 = 'Vienna'
        address.postcode = '1010'
        address.phone_number = '+49 911 234 5678'
        address.line1 = 'hastexo Professional Services GmbH'
        address.vatin = ''
        user = Mock()
        user.addresses = Mock()
        user.addresses.order_by = Mock(return_value=[address])

        with self.assertRaises(vat.VATAssessmentException):
            result_rate = vat.lookup_vat_for_user(user)

        address.vatin = 'ATU66688999'
        with self.assertRaises(vat.VATAssessmentException):
            result_rate = vat.lookup_vat_for_user(user)
Exemple #3
0
    def test_valid_user(self):
        address = Mock()
        address.country = Mock()
        address.country.code = 'AT'
        address.line4 = 'Vienna'
        address.postcode = '1010'
        address.phone_number = '+43 1 234 5678'
        address.line1 = 'hastexo Professional Services GmbH'
        address.vatin = ''
        user = Mock()
        user.addresses = Mock()
        user.addresses.order_by = Mock(return_value=[address])

        result_rate = vat.lookup_vat_for_user(user)
        self.assertEqual(result_rate, D('0.20'))

        address.vatin = 'ATU66688202'
        result_rate = vat.lookup_vat_for_user(user)
        self.assertEqual(result_rate, D('0.00'))
Exemple #4
0
    def test_valid_user_reverse_charge(self):
        address = Mock()
        address.country = Mock()
        address.country.code = 'AT'
        address.line4 = 'Vienna'
        address.postcode = '1010'
        address.phone_number = '+43 1 234 5678'
        address.line1 = 'hastexo Professional Services GmbH'
        address.vatin = ''
        user = Mock()
        user.addresses = Mock()
        user.addresses.order_by = Mock(return_value=[address])

        # No VATIN, different country? Standard rate applies.
        result_rate = vat.lookup_vat_for_user(user)
        self.assertEqual(result_rate, D('0.20'))

        # Valid VATIN, different country? Reverse charge applies.
        address.vatin = 'ATU66688202'
        result_rate = vat.lookup_vat_for_user(user)
        self.assertEqual(result_rate, D('0.00'))
    def test_valid_user(self):
        address = Mock()
        address.country = Mock()
        address.country.code = 'AT'
        address.line4 = 'Vienna'
        address.postcode = '1010'
        address.phone_number = '+43 1 234 5678'
        address.line1 = 'hastexo Professional Services GmbH'
        address.vatin = ''
        user = Mock()
        user.addresses = Mock()
        user.addresses.order_by = Mock(return_value=[address])

        result_rate = vat.lookup_vat_for_user(user)
        self.assertEqual(result_rate,
                         D('0.20'))

        address.vatin = 'ATU66688202'
        result_rate = vat.lookup_vat_for_user(user)
        self.assertEqual(result_rate,
                         D('0.00'))
Exemple #6
0
    def test_valid_user_no_reverse_charge(self):
        address = Mock()
        address.country = Mock()
        address.country.code = 'AT'
        address.line4 = 'Vienna'
        address.postcode = '1010'
        address.phone_number = '+43 1 234 5678'
        address.line1 = 'hastexo Professional Services GmbH'
        address.vatin = ''
        user = Mock()
        user.addresses = Mock()
        user.addresses.order_by = Mock(return_value=[address])

        # No VATIN? Standard rate applies.
        result_rate = vat.lookup_vat_for_user(user)
        self.assertEqual(result_rate, D('0.20'))

        # Do they have a VATIN? Doesn't matter if they're in the same
        # country as the store; VAT still applies.
        address.vatin = 'ATU66688202'
        result_rate = vat.lookup_vat_for_user(user)
        self.assertEqual(result_rate, D('0.20'))
    def test_valid_user_reverse_charge(self):
        address = Mock()
        address.country = Mock()
        address.country.code = 'AT'
        address.line4 = 'Vienna'
        address.postcode = '1010'
        address.phone_number = '+43 1 234 5678'
        address.line1 = 'hastexo Professional Services GmbH'
        address.vatin = ''
        user = Mock()
        user.addresses = Mock()
        user.addresses.order_by = Mock(return_value=[address])

        # No VATIN, different country? Standard rate applies.
        result_rate = vat.lookup_vat_for_user(user)
        self.assertEqual(result_rate,
                         D('0.20'))

        # Valid VATIN, different country? Reverse charge applies.
        address.vatin = 'ATU66688202'
        result_rate = vat.lookup_vat_for_user(user)
        self.assertEqual(result_rate,
                           D('0.00'))
    def test_valid_user_no_reverse_charge(self):
        address = Mock()
        address.country = Mock()
        address.country.code = 'AT'
        address.line4 = 'Vienna'
        address.postcode = '1010'
        address.phone_number = '+43 1 234 5678'
        address.line1 = 'hastexo Professional Services GmbH'
        address.vatin = ''
        user = Mock()
        user.addresses = Mock()
        user.addresses.order_by = Mock(return_value=[address])

        # No VATIN? Standard rate applies.
        result_rate = vat.lookup_vat_for_user(user)
        self.assertEqual(result_rate,
                         D('0.20'))

        # Do they have a VATIN? Doesn't matter if they're in the same
        # country as the store; VAT still applies.
        address.vatin = 'ATU66688202'
        result_rate = vat.lookup_vat_for_user(user)
        self.assertEqual(result_rate,
                         D('0.20'))
    def get_rate(self, product, stockrecord):
        """Fetches a tax rate, given a product and stockrecord"""

        # The strategy.Base superclass sets self.user only if the user
        # is authenticated
        try:
            return vat.lookup_vat_for_user(self.user)
        except:
            # Unable to look up user address or VAT rate, use defaults
            pass

        # We haven't been able to lookup a VAT rate for the user, use
        # store defaults instead. If all fails, revert to a tax rate of 0.
        try:
            return vat.lookup_vat_by_city(settings.VAT_MOSS_STORE_COUNTRY_CODE,
                                          settings.VAT_MOSS_STORE_POSTCODE,
                                          settings.VAT_MOSS_STORE_CITY)
        except NameError:
            logging.warn('Unable to set default VAT rate for store, '
                         'defaulting to 0.')
            return D('0.00')
    def get_rate(self, product, stockrecord):
        """Fetches a tax rate, given a product and stockrecord"""

        # The strategy.Base superclass sets self.user only if the user
        # is authenticated
        try:
            return vat.lookup_vat_for_user(self.user)
        except:
            # Unable to look up user address or VAT rate, use defaults
            pass

        # We haven't been able to lookup a VAT rate for the user, use
        # store defaults instead. If all fails, revert to a tax rate of 0.
        try:
            return vat.lookup_vat_by_city(
                settings.VAT_MOSS_STORE_COUNTRY_CODE,
                settings.VAT_MOSS_STORE_POSTCODE,
                settings.VAT_MOSS_STORE_CITY)
        except NameError:
            logging.warn('Unable to set default VAT rate for store, '
                         'defaulting to 0.')
            return D('0.00')