Nie mam jeszcze opinii swojego księgowego, ale z dyskusji na grupie i poza nią wychodzi mi że fakturowanie należy przeprojektować w następujący sposób:
Wprowadzamy dwa (częściowo opcjonalne) sposoby obliczania wartości na fakturach. Faktury generowane automatycznie będą fakturami brutto ponieważ taryfy i inne wartości w LMSie są wartościami brutto), a w fakturach wystawianych ręcznie dajemy opcje wyboru typu faktury: netto/brutto.
1. W przypadku wybrania 'brutto' obliczenia odbywają się jak dotychczas. Zmianie ulega formularz wystawiania faktury, jest możliwość wpisania tylko ceny brutto. Na wydruku kolumna 'cena jedn. netto' zostaje zamieniona na 'cenę jedn. brutto'.
2. W przypadku wybrania 'netto', w formularzu i na wydruku pojawia się nam kolumna i pole wprowadzania ceny jednostkowej netto. Następnie wszelkie kalkulacje są od tej kwoty, czyli wartość netto jest liczona jako 'cena netto * ilość', wartość brutto jako 'wartość netto * podatek'.
Jak wcześniej wspomniałem na wydruku oba typy faktur będą się różnić jedną kolumną, na fakt. netto będzie 'cena jedn. netto', na fakturach brutto zamiast niej pojawi się 'cena jedn. brutto'.
Od strony bazy danych: 1. dodajemy pole documents.subtype określające typ faktury (0-brutto/1-netto), 2. zmiany w tabeli invoicecontents (pozycje faktur): - dodajemy kolumnę 'price', która w zależności od typu faktury będzie zawierać cenę jednostkową netto lub brutto, - dotychczasowa kolumna 'value' będzie przechowywać wyliczoną 'wartość brutto', moglibyśmy się bez niej obyć, ale ułatwi nam to pewne obliczenia, np. na liście faktur.
Jakieś uwagi?
p.s. oczywiście następnym etapem mogłoby być umożliwienie wprowadzania w całym LMSie cen netto, w taryfach, zobowiązaniach, etc., ale na razie bez tego możemy żyć.