Tämä dokumentti kuvaa, miten sovellus noudattaa Suomen kirjanpitolakia (KPL) ja kirjanpitoasetusta (KPA).
Laki:
"Jokainen, joka harjoittaa liike- tai ammattitoimintaa, on tämän lain mukaan kirjanpitovelvollinen."
Toteutus sovelluksessa:
- Sovellus tukee kaikkia kirjanpitovelvollisia (osakeyhtiöt, osuuskunnat, yms.)
- Yrityksen tiedot tallennetaan
Yritys-malliin - Sisältää Y-tunnuksen, nimen ja yhteystiedot
Koodi:
class Yritys(Base):
nimi = Column(String(200), nullable=False)
ytunnus = Column(String(20), unique=True, nullable=False)
# ... muut tiedotLaki:
"Kirjanpitovelvollisen on noudatettava hyvää kirjanpitotapaa. Kirjanpito on järjestettävä niin, että liiketapahtumat voidaan todentaa ja että tilinpäätöksen oikeellisuus voidaan tarkistaa. Kirjanpidossa on noudatettava kahdenkertaisen kirjanpidon periaatetta."
Toteutus sovelluksessa:
- Jokainen tosite tarkistaa, että debet = kredit
Tosite.tarkista_tasapaino()-metodi- Viennit tallennetaan debet/kredit -pareina
Koodi:
def tarkista_tasapaino(self) -> bool:
"""Tarkistaa kahdenkertaisen kirjanpidon periaatteen"""
debet_summa = sum(v.debet for v in self.viennit)
kredit_summa = sum(v.kredit for v in self.viennit)
return abs(debet_summa - kredit_summa) < Decimal('0.01')Laki:
"Kirjauksen on perustuttava päivättyyn ja numeroituun tositteeseen tai sen sisältävään sähköiseen aineistoon."
Toteutus sovelluksessa:
- Jokainen kirjaus perustuu
Tosite-objektiin - Tosite sisältää:
- Tositenumeron (juokseva numerointi)
- Päivämäärän
- Selitteen
- Viennit
Koodi:
class Tosite(Base):
tositenumero = Column(Integer, nullable=False, index=True)
pvm = Column(Date, nullable=False, index=True)
selite = Column(String(500), nullable=False)
luotu = Column(DateTime, default=datetime.now)Laki:
"Pääkirjassa kirjanpitokirjausten sisältö on esitettävä kunkin tilin osalta erikseen."
Toteutus sovelluksessa:
Raportit.paakirja()-metodi- Näyttää kaikki viennit tileittäin
- Sisältää saldon jokaisen viennin jälkeen
Koodi:
def paakirja(self, tili: Tili, alkupvm: date = None, loppupvm: date = None):
"""Pääkirja - Tilin tapahtumat"""
# Hakee kaikki viennit tilikaudelta
# Näyttää debet, kredit ja saldoLaki:
"Kirjanpitovelvollisen on laadittava jokaiselta tilikaudelta tilinpäätös, joka sisältää taseen, tuloslaskelman ja liitetiedot."
Laki (määräaika):
"Tilinpäätös on laadittava neljän kuukauden kuluessa tilikauden päättymisestä."
Toteutus sovelluksessa:
Raportit.tase()- TaseRaportit.tuloslaskelma()- TuloslaskelmaTietokanta.paata_tilikausi()- Tarkistaa 4 kk määräajan
Koodi:
def paata_tilikausi(self, tilikausi_id: int, paatospvm: date = None):
# Tarkista että päätöspäivä on tilikauden loppumisen jälkeen
if paatospvm < tilikausi.loppupvm:
raise ValueError("Tilinpäätöspäivä ei voi olla ennen tilikauden loppua")
# KPL 3:1 § - tilinpäätös 4 kk sisällä
max_paatospvm = tilikausi.loppupvm + timedelta(days=120)
if paatospvm > max_paatospvm:
raise ValueError("Tilinpäätös on tehtävä 4 kk sisällä")Laki:
"Tilikausi on kaksitoista kuukautta, jollei yhteisön perustamis- tai purkamisvaiheessa tai muusta erityisestä syystä ole aihetta muuhun."
Toteutus sovelluksessa:
Tilikausi-malliluo_tilikausi()luo oletuksena 12 kk kauden- Mahdollistaa myös poikkeustapaukset
Koodi:
def luo_tilikausi(self, alkupvm: date, loppupvm: date = None):
if not loppupvm:
# Oletus: 12 kuukautta
loppupvm = alkupvm + timedelta(days=365)
loppupvm = loppupvm - timedelta(days=1)Asetus: Kirjanpitoasetus määrittelee tilinpäätöksen kaavan ja tilikartan rakenteen.
Toteutus sovelluksessa:
- Suomalainen yleinen tilikartta
- Tilit numeroitu KPA:n mukaisesti:
- 1000-1999: Pysyvät vastaavat
- 2000-2999: Vaihtuvat vastaavat
- 3000-3999: Oma pääoma
- 4000-5999: Vieras pääoma
- 7000-7999: Tuotot
- 8000-8999: Kulut
- 9000-9999: ALV-tilit
Tiedosto: kirjanpito/tilikartta.py
Asetus: Taseen kaava KPA:n liitteen mukaisesti.
Toteutus sovelluksessa:
VASTAAVAA
PYSYVÄT VASTAAVAT
Aineettomat hyödykkeet
Aineelliset hyödykkeet
Sijoitukset
VAIHTUVAT VASTAAVAT
Vaihto-omaisuus
Saamiset
Rahat ja pankkisaamiset
VASTATTAVAA
OMA PÄÄOMA
Osakepääoma
Rahastot
Voitto/tappio
VIERAS PÄÄOMA
Pitkäaikainen
Lyhytaikainen
Asetus: Tuloslaskelman kaava KPA:n liitteen mukaisesti.
Toteutus sovelluksessa:
LIIKEVAIHTO
Liiketoiminnan kulut:
Aineet ja tarvikkeet
Henkilöstökulut
Poistot
Muut liikekulut
LIIKEVOITTO
Rahoitustuotot ja -kulut
TILIKAUDEN VOITTO/TAPPIO
Laki: ALV on välillinen vero, joka lisätään tavaran tai palvelun hintaan.
Toteutus sovelluksessa:
- ALV-kannat: 24%, 14%, 10%, 0%
- Vähennettävä ALV ostoista
- Suoritettava ALV myynneistä
- ALV-tilitys
Myynti:
# Myynti 1000€ + ALV 24% = 1240€
# Kirjataan:
# D Myyntisaamiset 1240€
# K Liikevaihto 1000€
# K Suoritettava ALV 240€Osto:
# Osto 500€ + ALV 24% = 620€
# Kirjataan:
# D Ostot 500€
# D Vähennettävä ALV 120€
# K Ostovelat 620€ALV-tilitys:
Maksettava ALV = Suoritettava ALV - Vähennettävä ALV- KPL 1:1 § - Kirjanpitovelvolliset ✓
- KPL 2:2 § - Kahdenkertainen kirjanpito ✓
- KPL 2:5 § - Tosite ✓
- KPL 2:7 § - Pääkirja ✓
- KPL 3:1 § - Tilinpäätös (4 kk määräaika) ✓
- KPL 3:2 § - Tilikausi (12 kk) ✓
- KPA - Tilikartta ja tilinpäätöksen kaava ✓
- ALV - ALV-käsittely ja -tilitys ✓
- Pääkirja
- Koeponnnisto
- Tase
- Tuloslaskelma
- ALV-tilitys
- Tiedot tallennetaan tietokantaan
- Tositteet numeroitu juoksevasti
- Tilikaudet erillään
- Historia säilyy
Tämä sovellus on tarkoitettu opetus- ja demonstraatiotarkoitukseen. Se noudattaa kirjanpitolain ja -asetuksen periaatteita, mutta ei ole virallisesti hyväksytty kirjanpitojärjestelmä.
Käyttö todellisessa kirjanpidossa tapahtuu omalla vastuulla. Suositellaan aina:
- Käyttämään ammattitaitoista kirjanpitäjää
- Käyttämään virallisesti hyväksyttyä kirjanpitojärjestelmää
- Konsultoimaan tilintarkastajaa tarvittaessa
- Kirjanpitolaki (1336/1997)
- Kirjanpitoasetus (1339/1997)
- Arvonlisäverolaki (1501/1993)
- Kirjanpitolautakunnan yleisohjeet