Skip to content

Instantly share code, notes, and snippets.

@Aciid
Created October 8, 2025 18:14
Show Gist options
  • Save Aciid/cdf94c83075678694db994a5271e20b7 to your computer and use it in GitHub Desktop.
Save Aciid/cdf94c83075678694db994a5271e20b7 to your computer and use it in GitHub Desktop.

Kirjanpitolain ja -asetuksen noudattaminen

Tämä dokumentti kuvaa, miten sovellus noudattaa Suomen kirjanpitolakia (KPL) ja kirjanpitoasetusta (KPA).

Kirjanpitolaki (KPL)

1 luku - Soveltamisala ja yleiset periaatteet

KPL 1:1 § - Kirjanpitovelvolliset

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 tiedot

2 luku - Kirjanpitoaineisto ja sen säilyttäminen

KPL 2:2 § - Kahdenkertainen kirjanpito

Laki:

"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')

KPL 2:5 § - Tosite

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)

KPL 2:7 § - Pääkirja

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 saldo

3 luku - Tilinpäätös

KPL 3:1 § - Tilinpäätös

Laki:

"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() - Tase
  • Raportit.tuloslaskelma() - Tuloslaskelma
  • Tietokanta.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ä")

KPL 3:2 § - Tilikausi

Laki:

"Tilikausi on kaksitoista kuukautta, jollei yhteisön perustamis- tai purkamisvaiheessa tai muusta erityisestä syystä ole aihetta muuhun."

Toteutus sovelluksessa:

  • Tilikausi-malli
  • luo_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)

Kirjanpitoasetus (KPA)

Tilikartta

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

Tase

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

Tuloslaskelma

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

ALV-käsittely

Arvonlisäverolaki

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

Yhteenveto

✅ Noudatetut säännökset

  1. KPL 1:1 § - Kirjanpitovelvolliset ✓
  2. KPL 2:2 § - Kahdenkertainen kirjanpito ✓
  3. KPL 2:5 § - Tosite ✓
  4. KPL 2:7 § - Pääkirja ✓
  5. KPL 3:1 § - Tilinpäätös (4 kk määräaika) ✓
  6. KPL 3:2 § - Tilikausi (12 kk) ✓
  7. KPA - Tilikartta ja tilinpäätöksen kaava ✓
  8. ALV - ALV-käsittely ja -tilitys ✓

📋 Toteutetut raportit

  • Pääkirja
  • Koeponnnisto
  • Tase
  • Tuloslaskelma
  • ALV-tilitys

🔒 Tiedon säilytys

  • Tiedot tallennetaan tietokantaan
  • Tositteet numeroitu juoksevasti
  • Tilikaudet erillään
  • Historia säilyy

Vastuuvapauslauseke

⚠️ Tärkeää:

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:

  1. Käyttämään ammattitaitoista kirjanpitäjää
  2. Käyttämään virallisesti hyväksyttyä kirjanpitojärjestelmää
  3. Konsultoimaan tilintarkastajaa tarvittaessa

Lähteet

  • Kirjanpitolaki (1336/1997)
  • Kirjanpitoasetus (1339/1997)
  • Arvonlisäverolaki (1501/1993)
  • Kirjanpitolautakunnan yleisohjeet
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment