Zmiana VAT w Wielkiej Brytanii z 17,5 na 15% - Jak to wpłynie na Twój kod?

Brytyjski system VAT zmienia się z 17,5% na 15%. Jakie strategie zastosowałeś w swoim kodzie do przechowywania podatku VAT i jak zmiana wpłynie na twoje aplikacje. Czy przechowujesz historię kadzi, aby móc obliczać stare ceny, czy stare faktury są przechowywane w osobnej tabeli? Czy jest to proste ustawienie konfiguracyjne, czy też nie? Jaki jest idealny sposób przechowywania podatku VAT?

Author: M.N, 2008-11-25

9 answers

Nie licz tego. Przechowuj! [3]}HMRC są bardzo wybredni, jeśli chodzi o płacenie odpowiedniej kwoty VAT. Zaokrąglanie kalkulacji VAT jest nieco niejasne w przewodnikach użytkownika, a pozostawienie go przyszłym implementatorom, aby to zrobić, prawdopodobnie prosi o kłopoty. Zapisując kwotę w momencie wprowadzania faktury/pozycji liniowej, unikniemy tego problemu.

[[3]}wydaje się to marnotrawstwem pamięci i naruszeniem zasad redundancji, ale ilość pamięci jest małe i może zaoszczędzić wiele kłopotów w przyszłości. Oczywiście jest rzeczą oczywistą, że kwoty walutowe (a potencjalnie nawet stawki VAT z częścią ułamkową) powinny być przechowywane jako pomnożona liczba całkowita, aby uniknąć błędów zaokrąglania ułamkowej reprezentacji binarnej.

Centralny magazyn kursowy

Należy bezwzględnie korzystać z centralnego magazynu kursowego. Zalecałbym jednak, aby w tym przypadku podano tylko aktualne stawki domyślne stosowane przy wprowadzaniu nowych faktur. Mogą one być przechowywane z datami rozpoczęcia i zakończenia, aby w razie potrzeby dać automatyczne przełączanie. Stawki te mogą być przechowywane dla każdej faktury (lub linii faktury) wraz z obliczonymi kwotami VAT w momencie podniesienia faktury, aby dać absolutny obraz sytuacji w tym czasie.

Nie zapomnij uwzględnić również różnych stawek VAT (np. standardowych, obniżonych, zerowych, bez VAT) oraz możliwości handlu z podmiotami zarejestrowanymi w VAT w innych krajach UE, w których może być konieczne no-VAT faktura podlegająca opodatkowaniu podatkiem VAT.

Możesz skończyć z taką tabelą (przykład):

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

Powyższa tabela jest tylko przykładem. Stawka VAT jest zapisywana jako liczba całkowita "punktów bazowych" (np. setnych punktu procentowego), ale zakłada, że stawka VAT nigdy nie będzie większa niż 2 miejsca po przecinku. Możesz oczywiście rozszerzyć to o dodatkową kolumnę, aby złagodzić ten problem, ale wydaje się to prawdopodobnie o krok za daleko!

 39
Author: Mark Hatton,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-12-23 12:57:37

Nie przechowuj tego. Oblicz to!


Mój zalecany sposób przechowywania stóp procentowych / odsetek to:

Powinieneś mieć tabelę 'VAT_param' jak

Stopa procentowa / obowiązuje od (Data) / obowiązuje do(data)

Wierzę,

"wszystko, co można obliczyć, nie powinno być zapisane "

Szczególnie w takich przypadkach, gdy trzeba obliczyć wartości na podstawie procentu innych (jak podatki, odsetki itp.) Nie pozwól, aby wymiana czasoprzestrzeni Cię uniknęła. Pobłogosławisz się później za spędzanie czasu nad przestrzenią.

Następnie VAT powinien być starannie obliczony na podstawie stawki efektywnej w danym okresie, na podstawie daty wystawienia faktury. Będzie

  • Zapewnij najmniej redundancji (pls. nigdy nie mów o starych lub nowych stołach.. w ciągu kilku lat zaczniesz ciągnąć za włosy, jeśli stopa procentowa zmieni się raz w roku)

  • Mieć scentralizowany jednoprzyciskowy do kontroli szybkości. Twój stół VAT_param.

 16
Author: M.N,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-04 11:09:34

Moje myśli ...

A - generalnie wolę calc niż sklep, ale w tym przypadku obliczony VAT (oraz stawki i kody użyte do calc) powinny być przechowywane przy każdej transakcji. Dzieje się tak dlatego, że będą to dane źródłowe dla dokumentów, które muszą być wielokrotnie generowane. Chcesz również być w stanie dopasować kwotę VAT ze sprzedaży do kwoty VAT w Księdze finansowej. Nie chcesz ryzykować, że nie będziesz w stanie ponownie wygenerować dokumentu, takiego jak faktura lub raport VAT za każdym razem identycznie.

B-wartości VAT (lub innych podatków) powinny być bezwzględnie przechowywane w tabeli, z datami wejścia w życie i stawkami. Jeśli jest zakodowany na twardo, wykonaj pracę teraz, aby go zmiękczyć, ponieważ prawdopodobnie zmieni się ponownie w niedalekiej przyszłości.

C - jest to ogromna (i rozwiązana) umowa w USA, ponieważ podatek od sprzedaży różni się między Stanami, hrabstwami, a nawet miastami. Mieszkam i pracuję w hrabstwie Los Angeles, a stawka podatku od sprzedaży wynosi 8,25%. 10 mil na południe, w Orange Hrabstwo, stawka podatku od sprzedaży wynosi 7,75%. Sklepy internetowe i katalogowe muszą znać prawidłową stawkę, ponieważ zależy ona od miejsca dostawy!

Powodzenia.

 4
Author: tomjedrz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-25 23:53:59

Pobieramy VAT z tabeli bazy danych współdzielonej przez wszystkie nasze wewnętrzne aplikacje, co oznacza, że nie jest to dla nas wielka sprawa, jeśli chodzi o nasz nowy kod. Utrzymanie scentralizowanego systemu w ten sposób musi być mądrym posunięciem.

 3
Author: Wolfwyrd,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-25 09:04:53

Mam paskudne przeczucie, że dwa systemy, które odziedziczyłem, mają gdzieś kodowany wskaźnik.

Gorsze jest to, że jeśli jest zakodowany na twardo, po prostu będę wymieniał wartości zakodowane na twardo, ponieważ nie mam czasu na poprawną zmianę.

Co gorsza, Nie wiem, gdzie znajdę czas na zmianę. Wyobrażam sobie więc, że nie uda się to zrobić na czas poniedziałkowej zmiany. Oczywiście są bardziej interesujące kwestie, takie jak to, że nasze 10 funtów abonament jest oparty na £ 10 w tym 17.5% VAT (£8.515 lub cokolwiek to jest). Będzie to teraz £9.79 lub tak, robiąc kompletny bałagan ze wszystkiego, co reklamuje go w £10, a wszystkie obliczenia witryny oparte na £10.

To wszystko dlatego, że idiota odpowiedzialny za skarbonkę chciał nagłówek.

 1
Author: Valerion,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-25 09:48:01

Mamy nasze stawki VAT przechowywane w tabeli bazy danych, więc nie jest to zbyt wielka sprawa dla nas, chociaż muszę trzymać rękę w górze i powiedzieć, że ze względu na charakter niektórych modyfikacji, które wprowadziliśmy do kodu VAT został zakodowany w kilku miejscach (mój błąd!), które udało mi się odtworzyć w inny, bardziej ekscytujący sposób!

 0
Author: Katy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-25 10:57:01

Pracuję nad czymś, żeby to zrobić, gdy stopa się zmieni.

W Jaki Sposób to zrobisz, nie ma potrzeby zapisywania daty rozpoczęcia i daty zakończenia w tabeli vat, ponieważ okresy vat przebiegają bezpośrednio po sobie.

Możesz uzyskać dostęp do prawidłowego podatku vat, wykonując zapytanie takie jak poniższe, gdzie vat_date jest datą początkową dla stawki VAT.

SELECT * FROM vat WHERE NOW() > vat_date ORDER BY vat_date DESC LIMIT 1
 0
Author: Stephen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-12-18 12:11:56

W odniesieniu do argumentu store vs calc. Jeśli go przechowasz, zawsze możesz go obliczyć później - jeśli zmienisz zdanie;)

 0
Author: Stephen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-12-18 12:15:48

Znalazłem wczoraj w kodzie tabelę, która przechowuje ważne ustawienia konfiguracji dla aplikacji.

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

Jednym z tych ustawień była nasza główna kombinacja nazwy użytkownika i hasła administratora serwera (niezabezpieczona). Domyślam się, że dev, który go stworzył, zawsze chciał mieć do niego dostęp, gdyby zapomniał! Nie trzeba dodawać, że teraz zniknął.

 -1
Author: digiguru,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-25 09:06:11