Подтвердить что ты не робот

UK Vat изменится с 17,5 до 15%. Как это повлияет на ваш код?

Система НДС в Великобритании меняется с 17,5% до 15%. Какие стратегии вы использовали в своем коде для хранения НДС и как изменения повлияют на ваши приложения. Вы храните историю чанов, чтобы вы могли рассчитать старые цены или старые счета, хранящиеся в отдельной таблице? Это простая настройка конфигурации, или вы ее применили? Какой идеальный способ хранения НДС?

4b9b3361

Ответ 1

Не вычисляйте его. Сохраните его!

HMRC очень суетливы по поводу уплаты нужной суммы НДС. Округление расчетов по НДС несколько неопределенно указано в руководствах пользователя, и оставлять его для будущих исполнителей, чтобы понять это, возможно, задает проблемы. Сохраняя сумму при вводе счета/позиции, эту проблему можно избежать.

Это кажется пустой тратой памяти и нарушением принципов избыточности, но объем используемого хранилища крошечный, и это может сэкономить массу неприятностей в будущем. Конечно, само собой разумеется, что суммы валюты (и, возможно, даже ставки НДС с дробной частью) должны быть сохранены как умноженное целое число, чтобы избежать ошибок округления двоичного представления, также ползучего.

Центральная скорость хранения

Вы должны абсолютно использовать центральное хранилище ставок. Однако я бы рекомендовал, чтобы это обеспечивало только текущие ставки по умолчанию, используемые при вводе новых счетов-фактур. Они могут храниться с датами начала и окончания, чтобы при необходимости автоматически переключаться. Эти ставки могут быть сохранены для каждого счета-фактуры (или строки счета-фактуры) вместе с расчетными суммами НДС в момент выставления счета, чтобы дать абсолютный снимок ситуации в то время.

Не забудьте также учитывать различные ставки НДС (например, стандартную, уменьшенную, нулевую, без НДС) и возможность торговли с зарегистрированными с НДС лицами в других странах ЕС, где вам может потребоваться без НДС и счет, который обычно облагается НДС.

В итоге вы можете получить таблицу, подобную этой (пример):

id | Rate name | VAT rate | Start date | End date
---------------------------------------------------  
1  | Standard  | 1750     | 01/01/1991 | 30/11/2008
2  | Standard  | 1500     | 01/12/2008 | 31/12/2009
etc

Приведенная выше таблица является лишь примером. Ставка НДС сохраняется как целое число "базисных пунктов" (например, сотые доли процентного пункта), но предполагает, что ставка НДС никогда не будет более чем на 2 десятичных знака. Очевидно, вы можете расширить его с помощью дополнительного столбца, чтобы облегчить эту проблему, но, похоже, это будет слишком далеко!

Ответ 2

Не храните его. Рассчитайте это!


Мой рекомендуемый способ хранения процентных ставок/процентов:

У вас должна быть таблица "VAT_param", например

Процентная ставка | Действует с (дата) | Эффективный до (дата)

Я верю,

" Все, что можно вычислить, не нужно сохранять"

Особенно в тех случаях, когда вам нужно рассчитать значения, основанные на процентах других (например, налоги, проценты и т.д.). Не позволяйте компромиссу Time-Space уклоняться от вас. Вы благословите себя позже, потратив время на свободное пространство.

Затем НДС должен быть аккуратно рассчитан на основе эффективной ставки в течение периода, основанного на дате выставления счета. Это будет

  • Обеспечьте наименьшую избыточность (PLS никогда не рассказывайте о старых таблицах или новых таблицах.. в течение нескольких лет вы начнете тянуть свои волосы, если процентная ставка меняется один раз в год)

  • Для управления скоростью используйте централизованный однопоточный. Ваша таблица VAT_param.

Ответ 3

Мои мысли...

a- Я обычно предпочитаю вычислять через хранилище, но в этом случае расчетный НДС (и скорость и коды, используемые для расчета) должны храниться при каждой транзакции. Это связано с тем, что это будут исходные данные для документов, которые необходимо повторно сгенерировать. Вы также хотите иметь возможность сопоставлять сумму НДС с продажи с суммой НДС в финансовой книге. Вы не хотите рискнуть невозможностью повторного создания документа, такого как счет-фактура или отчет о НДС, каждый раз.

b- Значения НДС (или других налогов) должны быть абсолютно сохранены в таблице с эффективными датами и ставками. Если он жестко запрограммирован, выполните теперь эту работу, чтобы запрограммировать его, потому что в ближайшем будущем он снова изменится.

c- Это огромная (и решительная) сделка в США, поскольку налог с продаж варьируется между штатами, уездами и даже городами. Я живу и работаю в округе Лос-Анджелес, а ставка налога с продаж составляет 8,25%. В 10 милях к югу, в Orange County, ставка налога с продаж составляет 7,75%. Интернет и каталоги розничной торговли должны знать правильную ставку, потому что она определяется по месту доставки!

Удачи.

Ответ 4

Мы извлекаем НДС из таблицы базы данных, разделяемой всеми нашими внутренними приложениями, что означает, что это не очень важно для нас, где наш новый код. Сохранение его централизации, как это, должно быть разумным шагом.

Ответ 5

У меня неприятное ощущение, что 2 системы, которые я унаследовал, имеют скорость, закодированную где-то.

Хуже того, что если он жестко закодирован, я просто буду заменять жестко закодированные значения, так как у меня нет времени на его правильное изменение.

Даже хуже того, я не знаю, где я собираюсь найти время, чтобы на самом деле внести изменения. Поэтому я предполагаю, что это не будет сделано вовремя для изменения в понедельник. Конечно, есть более интересные вопросы, например, что наша подписка на 10 фунтов стерлингов основана на том, что она составляет 10 фунтов стерлингов, включая НДС 17,5% (8,515 фунтов стерлингов или что-то еще). Теперь это будет £ 9,79 или около того, что делает полный беспорядок всего, что рекламирует его в 10 фунтов стерлингов, и все расчеты сайта на основе 10 фунтов.

Все это, потому что идиот, ответственный за копилку, хотел заголовок.

Ответ 6

У нас есть ставки НДС, которые хранятся в таблице базы данных, поэтому для нас это не слишком большая сделка, хотя мне приходится держать руку за руку и сказать, что из-за характера некоторых изменений, внесенных нами в код, НДС был жестко закодированный в парах мест (мой плохой!), который мне удалось снова подтолкнуть еще более захватывающим образом!

Ответ 7

Я просто работаю над чем-то, чтобы сделать это, когда скорость изменится.

Что бы вы ни делали, нет необходимости записывать начальную и дату окончания в вашей таблице vat, так как периоды vat запускаются непосредственно друг за другом.

Вы можете получить доступ к правильному чану, выполнив запрос, подобный приведенному ниже, где vat_date - это дата начала ставки НДС.

SELECT * FROM vat WHERE NOW() > vat_date ORDER BY vat_date DESC LIMIT 1

Ответ 8

Что касается аргумента store vs calc. Если вы храните его, вы всегда можете рассчитать его позже - если вы передумаете;)

Ответ 9

В прошлой ночью я нашел таблицу кода, в которой хранятся важные параметры конфигурации для приложения.

Table tbl_config
   config_id int
   config_name varchar(255)
   config_value varchar(255)

Одним из этих параметров была наша основная комбинация имени пользователя и пароля для сервера (unhashed). Я думаю, разработчик, который его создал, всегда хотел получить доступ к нему, если он забудет! Само собой разумеется, оно исчезло сейчас.