Metadata-Version: 1.1
Name: LstGen
Version: 0.1.1
Summary: LstGen
Home-page: http://github.com/jenner/LstGen
Author: Igor Stroh
Author-email: igor.stroh@rulim.de
License: UNKNOWN
Description: LstGen
        ======
        
        Mittels LstGen kann man aus den sgn. PAP (Programmablaufplan) Dateien,
        die unter https://www.bmf-steuerrechner.de zur Verfügung stehen, validen
        Code generieren, mit dem man ohne weitere Abhängigkeiten (wie z.B. einem
        externen Service) die Lohnsteuer berechnen kann.
        
        Zur Zeit werden drei Sprachen unterstützt: \* PHP \* Python \* Java
        
        Installation
        ------------
        
        -  Mit ``pip`` oder ``easy_install`` aus PyPI:
        
           .. code:: bash
        
               pip install lstgen
        
           oder
        
           .. code:: bash
        
               easy_install lstgen
        
           Danach ist das Program ``lstgen`` (für gewöhnlich) unter
           ``/usr/local/bin/lstgen`` verfügbar.
        
        Beispiel 1: Erzeugen einer PHP-Datei zur Berechnung der Lohnsteuer für das Jahr 2016
        ------------------------------------------------------------------------------------
        
        .. code:: bash
        
            lstgen 2016 php --class-name Lohnsteuer2016 > Lohnsteuer2016.php
        
        Der generierte Code benötigt für die Berechnung die
        `BrickBibliothek <https://github.com/brick/math>`__ und geht davon aus,
        dass sie mittels `Composer <https://getcomposer.org/>`__ installiert
        wurde.
        
        Danach kann die generierte Klasse einfach importiert und folgendermassen
        in eigenem Code verwendet werden:
        
        .. code:: php
        
            <?php
        
            require "Lohnsteuer2016.php";
        
            $brutto = 500000; // Brutto in ¢ent
            $lst = new Lohnsteuer2015Big();
            $lst->setRe4($brutto);
            $lst->setPkv(1);
            $lst->setAlter1(0);
            $lst->setAf(0);
            $lst->setF(1);
            $lst->setPvs(0);
            $lst->setR(0);
            $lst->setLzzhinzu(0);
            $lst->setPvz(0);
            $lst->setStkl(1);
            $lst->setLzz(2);
            $lst->setKrv(2);
            $lst->main();
            $steuer = floor($lst->getLstlzz()->toFloat() + $lst->getStv()->toFloat() + $lst->getSts()->toFloat());
            $soli = floor($lst->getSolzlzz()->toFloat() + $lst->getSolzs()->toFloat() + $lst->getSolzv()->toFloat()) / 100;
            $stges = $steuer + $soli;
            echo "steuer: $steuer\nsoli: $soli\nstges: $stges\n";
        
        Oberes Beispiel zeigt die Berechnung der Lohnsteuer und
        Solidaritätszuschlags für einen Arbeitnehmer mit Steuerklasse 1,
        monatlichem Brutto von 5000€, privat versichert und ohne
        Arbeitgeberzuschuss für PKV.
        
        Eine detaillierte Erklärung zu den jeweiligen Eingabeparametern findet
        man entweder im generierten Code in Form von Kommentaren oder in der PDF
        Version des PAP unter https://www.bmf-steuerrechner.de/interface/pap.jsp
        
        Beispiel 2: Erzeugen einer Python-Datei zur Berechnung der Lohnsteuer für das Jahr 2014 (gleiche Voraussetzungen wie im PHP Beispiel)
        -------------------------------------------------------------------------------------------------------------------------------------
        
        .. code:: bash
        
            lstgen 2014 python --class-name Lohnsteuer2014 > lst2014.py
        
        Der generierte Code kann dann so verwendet werden:
        
        .. code:: python
        
            import math
            from lst2014 import Lohnsteuer2014
        
            def print_lst(lst):
                steuer = math.floor(float(lst.getLstlzz()) + float(lst.getStv()) + float(lst.getSts())) / 100.0
                soli = math.floor(float(lst.getSolzlzz()) + float(lst.getSolzs()) + float(lst.getSolzv())) / 100
                stges = steuer + soli
                print("steuer: {steuer}\nsoli: {soli}\nstges: {stges}".format(
                    steuer=steuer,
                    soli=soli,
                    stges=stges
                ))
        
            brutto = 500000 # Brutto in ¢ent
            # Setzen der Parameter mit Settern
            lst2014 = Lohnsteuer2014()
            lst2014.setRe4(brutto) # cent
            lst2014.setPkv(1)
            lst2014.setAlter1(0)
            lst2014.setAf(0)
            lst2014.setF(1)
            lst2014.setPvs(0)
            lst2014.setR(0)
            lst2014.setLzzhinzu(0)
            lst2014.setPvz(0)
            lst2014.setStkl(1)
            lst2014.setLzz(2)
            lst2014.setKrv(2)
            lst2014.MAIN()
            print_lst(lst2014)
        
            # Setzen der Parameter mittels Konstruktor-Argumente
            lst2014 = Lohnsteuer2014(
                RE4=brutto,
                PKV=1,
                ALTER1=0,
                af=0,
                f=1,
                PVS=0,
                R=0,
                LZZHINZU=0,
                PVZ=0,
                STKL=1,
                LZZ=2,
                KRV=2
            )
            print_lst(lst2014)
        
        0.1.1
        -----
        
        -  Fixed packaging issues for README.md and CHANGES.md
        
        0.1.0
        -----
        
        -  Initial version
        
        
Platform: UNKNOWN
Classifier: Programming Language :: Python
Classifier: Topic :: Software Development :: Code Generators
