Zaokrąglenia kwot na fakturach

0

W jaki sposób od strony kodu powinno przeliczać się (zaokrąglać) kwoty towarów/usług na fakturach VAT w Polsce? Znalazłem coś takiego:

Podsumowując należy stwierdzić, iż przy wystawianiu faktur VAT, kwoty wykazywane w fakturze należy zaokrąglać do pełnych groszy, przy czym końcówki poniżej 0,5 grosza pomija się, a końcówki 0,5 grosza i wyższe zaokrągla się do 1 grosza.

Wymyśliłem sobie, że będę to przeliczał w UI na żywo w obydwie strony (brutto na netto i netto na brutto) i potem sprawdzał w kontrolerze w taki sposób:

GrossValueAdded = Math.Round(NetValue * Quantity * (1 + VATRate), 2, MidpointRounding.AwayFromZero)

Ale problem zaczyna się gdy chcę obsłużyć kwoty brutto (np. klient ma mieć kwotę brutto 55,00 zł). Jak wtedy wyliczyć kwotę netto do przechowania w systemie, żeby to powyższe sprawdzenie działało poprawnie (przy powyższym nie da się wyliczyć takiej kwoty netto, żeby po zaokragleniu zgadzało się równe brutto co do grosza)?

0

Masz napisane, że kwoty wykazywane w fakturze należy zaokrąglać do pełnych groszy, co oznacza tylko i aż tyle, że kwoty podaje się z dokładnością do 2 miejsca po przecinku zaokrąglone w standardowy sposób.

Proponuję standardowo:
NetValue = GrossValue / (1 + VATRate).
Jak wyjdą niezerowe cyfry na kolejnych miejscach po przecinku (w niektórych przypadkach ułamek okresowy), to zawsze kwota netto będzie większa, a kwota VAT mniejsza od 0,5 grosza (lub na odwrót) i po zaokrągleniu suma będzie się zgadzać. Szczególnym przypadkiem jest, że obie kwoty wyniosą z ułamkiem dokładnie 0,5 grosza, wtedy teoretycznie należy zaokrąglić w górę obie kwoty, ale brutto nie będzie się zgadzać o grosz.

Moim zdaniem najważniejsze są kwoty netto i brutto, a więc w tym szczególnym przypadku kwotę VAT można zaokrąglić w dół.
Jakby się uprzeć, to jak trafisz na taki przypadek, to sobie przelicz za pomocą swojej formuły, którą kwotę i w którą stronę należy zaokrąglać.

0

@andrzejlisek:
No właśnie kojarzę, że jeżeli nie dawałem MidpointRounding.AwayFromZero to moje obliczenia brutto od netta lub netto od brutta rozjeżdżały się z tym co przeliczała sobie Optima.
Rzecz w tym, że licząc tą metodą nie da się przykładowo znaleźć takiej kwoty netto (przy dokładności do dwóch miejsc po przecinku), żeby po przeliczeniu z netta na brutto wyszło przykładowo 55,00 (jest licząc grosz więcej lub mniej wyjdzie 54,99 lub 55,01). Stąd pytam kogoś kto takie rzeczy już pisał jak sobie poradził z przechowywaniem tych wartości, żeby potem przy podliczaniu faktury po bruttcie lub netcie wartości mi się nie rozjażdżały.

0

Z chęcią też się z tym zapoznam, rozumiem, że to dyskusja czysto teoretyczna, bo spotkałem się też z inną ciekawą rzeczą, która również dotyczy zaokrągleń: W fakturach zawsze jest podsumowanie VAT. Pierwszy sposób liczenia to taki, że sumujemy netto wszystkich pozycji z podziałem na stawki podatku, potem od tej kwoty liczymy kwotę podatku i brutto. Drugi to taki, że dla każdej pozycji liczymy osobno wszystkie trzy kwoty, a potem tylko sumujemy kwoty netto, kwoty VAT i kwoty brutto. Przy dużej liczbie pozycji na małą kwotę mogą być rozbieżności o kilka groszy, jednak oba sposoby są uznawane prawidłowe. W zależności od tego, którą kwotę od której liczymy, to netto lub brutto się zmienia, ale myślę, że kwota netto się zmienia, bo klienta interesuje, ile ostatecznie zapłaci.

0

Jeśli masz zamiar te dokumenty wrzucać do Optimy bibliotekami Comarchu (Obiekty COM) to nie musisz mieć dobrze policzonego, bo Optima i tak to policzy po swojemu, czyli "dobrze".

0
AdamWox napisał(a):

Jeśli masz zamiar te dokumenty wrzucać do Optimy bibliotekami Comarchu (Obiekty COM) to nie musisz mieć dobrze policzonego, bo Optima i tak to policzy po swojemu, czyli "dobrze".

Optima policzy dobrze, czego efektem może być niechciane przesunięcie kwoty brutto o 1 grosz, co jest przedmiotem tej dyskusji.

0

No ale ma być policzone dobrze w systemie ERP, aby poprawnie rozliczyć i aby "głowa firmy" (księgowa) nie marudziła, że jest źle. Ten problem można rozwiązać tylko metodą prób i błędów - robisz dokument swoim programem, przeliczasz kwoty, robisz dokument w optimie i patrzysz czy się zgadza. Jeśli się takich kombinacji zrobi kilka, na różne sposoby manewrowania ceną towaru, ilością to granica błędu będzie mniejsza.

PS.
Chciałbym też zwrócić uwagę, że Optima na dokumencie ma pole Licz od, gdzie można wybrać netto/brutto. To też ma sporę znaczenie. O rabatach i cenniku indywidualnym nawet nie zaczynam ;-)

1 użytkowników online, w tym zalogowanych: 0, gości: 1