Skip to content
This repository has been archived by the owner on Jun 8, 2024. It is now read-only.

Commit

Permalink
Add prozentWaehrung function and update calculations
Browse files Browse the repository at this point in the history
  • Loading branch information
maxmielchen committed Feb 11, 2024
1 parent a68ebdb commit bd3579f
Show file tree
Hide file tree
Showing 7 changed files with 62 additions and 37 deletions.
7 changes: 4 additions & 3 deletions src/lib/buchungssaetze/rechnungAusgehend.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,24 +3,25 @@ import { useState } from "react";
import Buchungssatz from "./buchungssatz";
import { Table } from "react-bootstrap";
import waehrung from "../standard/waehrung";
import prozentWaehrung from "../standard/prozentWaehrung";

function RechnungAusgehend({rechnungsbetrag}) {
const [skonto, setSkonto] = useState(2);

const skontoBetrag = () => {
return parseFloat((rechnungsbetrag * skonto / 100).toFixed(2));
return prozentWaehrung(rechnungsbetrag, 1, skonto/100)
}

const summeOhneSkonto = () => {
return rechnungsbetrag - skontoBetrag();
}

const preisNetto = () => {
return parseFloat((rechnungsbetrag/1.19).toFixed(2));
return prozentWaehrung(rechnungsbetrag, 1.19, 1);
}

const preisMwSt = () => {
return parseFloat((preisNetto()*0.19).toFixed(2));
return rechnungsbetrag - preisNetto();
}

let dict = [
Expand Down
24 changes: 17 additions & 7 deletions src/lib/buchungssaetze/rechnungEingehend.js
Original file line number Diff line number Diff line change
@@ -1,21 +1,31 @@

import prozentWaehrung from "../standard/prozentWaehrung";
import Buchungssatz from "./buchungssatz";

function RechnungEingehend({rechnungsbetrag, bezugskosten}) {
let dict;

if (bezugskosten == 0) {
const k6080 = prozentWaehrung(rechnungsbetrag, 1.19, 1.0);
const k2600 = rechnungsbetrag-k6080;
const k4400 = rechnungsbetrag;

dict = [
{ haben: "6080", soll: "", betrag: rechnungsbetrag/1.19*1.0 },
{ haben: "2600", soll: "", betrag: rechnungsbetrag/1.19*0.19 },
{ haben: "", soll: "4400", betrag: rechnungsbetrag },
{ haben: "6080", soll: "", betrag: k6080 },
{ haben: "2600", soll: "", betrag: k2600 },
{ haben: "", soll: "4400", betrag: k4400 },
];
} else {
const k6080 = prozentWaehrung(rechnungsbetrag, 1.19, 1.0) - bezugskosten;
const k6081 = bezugskosten;
const k2600 = rechnungsbetrag - k6080;
const k4400 = rechnungsbetrag;

dict = [
{ haben: "6080", soll: "", betrag: rechnungsbetrag/1.19*1.0- bezugskosten},
{ haben: "6081", soll: "", betrag: bezugskosten },
{ haben: "2600", soll: "", betrag: rechnungsbetrag/1.19*0.19 },
{ haben: "", soll: "4400", betrag: rechnungsbetrag },
{ haben: "6080", soll: "", betrag: k6080},
{ haben: "6081", soll: "", betrag: k6081 },
{ haben: "2600", soll: "", betrag: k2600 },
{ haben: "", soll: "4400", betrag: k4400 },
];
}

Expand Down
20 changes: 10 additions & 10 deletions src/lib/buchungssaetze/zahlungAusgehend.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import { Table } from "react-bootstrap";
import Buchungssatz from "./buchungssatz";
import { useState } from "react";
import prozentWaehrung from "../standard/prozentWaehrung";

function ZahlungAusgehend({rechnungsbetrag}) {
let dict;
Expand All @@ -14,19 +15,18 @@ function ZahlungAusgehend({rechnungsbetrag}) {
{ haben: "", soll: "2800", betrag: rechnungsbetrag },
];
} else {
const skonto_in_euro = parseFloat(parseFloat(rechnungsbetrag * skonto/100).toFixed(2));
const skontoInEuro = prozentWaehrung(rechnungsbetrag, 1, skonto/100);

const überweisungsbetrag = rechnungsbetrag - skonto_in_euro;

const skonto_ohne_steuer = parseFloat(parseFloat(skonto_in_euro / 1.19).toFixed(2));

const skonto_steuer = parseFloat(parseFloat(skonto_in_euro - skonto_ohne_steuer).toFixed(2));
const k4400 = rechnungsbetrag;
const k2800 = k4400 - skontoInEuro;
const k6082 = prozentWaehrung(skontoInEuro, 1.19, 1);
const k2600 = skontoInEuro - k6082;

dict = [
{ haben: "4400", soll: "", betrag: rechnungsbetrag },
{ haben: "", soll: "2800", betrag: überweisungsbetrag },
{ haben: "", soll: "6082", betrag: skonto_ohne_steuer },
{ haben: "", soll: "2600", betrag: skonto_steuer },
{ haben: "4400", soll: "", betrag: k4400 },
{ haben: "", soll: "2800", betrag: k2800 },
{ haben: "", soll: "6082", betrag: k6082 },
{ haben: "", soll: "2600", betrag: k2600 },
];
}

Expand Down
17 changes: 8 additions & 9 deletions src/lib/buchungssaetze/zahlungEingehend.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import { Table } from "react-bootstrap";
import Buchungssatz from "./buchungssatz";
import { useState } from "react";
import prozentWaehrung from "../standard/prozentWaehrung";

function ZahlungEingehend({rechnungsbetrag}) {
let dict;
Expand All @@ -14,18 +15,16 @@ function ZahlungEingehend({rechnungsbetrag}) {
{ haben: "", soll: "2400", betrag: rechnungsbetrag },
];
} else {
const skonto_in_euro = parseFloat(parseFloat(rechnungsbetrag * skonto/100).toFixed(2));
const skontoInEuro = prozentWaehrung(rechnungsbetrag, 1, skonto/100);

const überweisungsbetrag = rechnungsbetrag - skonto_in_euro;

const skonto_ohne_steuer = parseFloat(parseFloat(skonto_in_euro / 1.19).toFixed(2));

const skonto_steuer = parseFloat(parseFloat(skonto_in_euro - skonto_ohne_steuer).toFixed(2));
const k2800 = rechnungsbetrag - skontoInEuro;
const k5101 = parseFloat(parseFloat(skontoInEuro / 1.19).toFixed(2));
const k4800 = parseFloat(parseFloat(skontoInEuro - k5101).toFixed(2));

dict = [
{ haben: "2800", soll: "", betrag: überweisungsbetrag },
{ haben: "5101", soll: "", betrag: skonto_ohne_steuer },
{ haben: "4800", soll: "", betrag: skonto_steuer },
{ haben: "2800", soll: "", betrag: k2800 },
{ haben: "5101", soll: "", betrag: k5101 },
{ haben: "4800", soll: "", betrag: k4800 },
{ haben: "", soll: "2400", betrag: rechnungsbetrag },
];
}
Expand Down
9 changes: 5 additions & 4 deletions src/lib/rechnungsfussAngebot.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { useEffect, useState } from "react";
import { Table } from "react-bootstrap";
import waehrung from "./standard/waehrung";
import prozentWaehrung from "./standard/prozentWaehrung";

function RechnungsfussAngebot({ summe, setRechnungsbetrag }) {
const [geo, setGeo] = useState('DE');
Expand Down Expand Up @@ -33,19 +34,19 @@ function RechnungsfussAngebot({ summe, setRechnungsbetrag }) {
}

const rabattInEuro = () => {
return parseFloat((parseFloat(rabatt()) / 100 * parseFloat(summe)).toFixed(2));
return prozentWaehrung(summe, 1, rabatt()/100);
}

const gesamtPreisNetto = () => {
return parseFloat(summe) - rabattInEuro() + parseFloat(versandkosten())
return parseFloat(summe) - rabattInEuro() + versandkosten()
};

const umsatzsteuer = () => {
return parseFloat((gesamtPreisNetto() * 0.19).toFixed(2));
return prozentWaehrung(gesamtPreisNetto(), 1, 0.19);
}

const rechnungsbetrag = () => {
return parseFloat(gesamtPreisNetto()) + parseFloat(umsatzsteuer());
return gesamtPreisNetto() + umsatzsteuer();
}

useEffect(() => {
Expand Down
9 changes: 5 additions & 4 deletions src/lib/rechnungsfussBestellung.js
Original file line number Diff line number Diff line change
@@ -1,25 +1,26 @@
import { useEffect, useState } from "react";
import { Table } from "react-bootstrap";
import waehrung from "./standard/waehrung";
import prozentWaehrung from "./standard/prozentWaehrung";

function RechnungsfussBestellung({ summe, setRechnungsbetrag, setBezugskosten }) {
const [rabatt, setRabatt] = useState(0);
const [versandkosten, setVersandkosten] = useState(0);

const rabattInEuro = () => {
return parseFloat((parseFloat(rabatt) / 100 * parseFloat(summe)).toFixed(2));
return prozentWaehrung(summe, 1, rabatt()/100);
}

const gesamtPreisNetto = () => {
return parseFloat(summe) - rabattInEuro() + parseFloat(versandkosten)
return parseFloat(summe) - rabattInEuro() + versandkosten()
};

const umsatzsteuer = () => {
return parseFloat((gesamtPreisNetto() * 0.19).toFixed(2));
return prozentWaehrung(gesamtPreisNetto(), 1, 0.19);
}

const rechnungsbetrag = () => {
return parseFloat(gesamtPreisNetto()) + parseFloat(umsatzsteuer());
return gesamtPreisNetto() + umsatzsteuer();
}

useEffect(() => {
Expand Down
13 changes: 13 additions & 0 deletions src/lib/standard/prozentWaehrung.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@

/**
* Gibt den Wert als Prozent zurück
* @param gw - Grundwert
* @param gwg - Grundwert als bruch (z.B. 1.19 oder 1.0)
* @param ag - Ausgabe wert (z.B. 0.19 oder 1.0)
* @returns gw / gwg * ag aber mit 2 Nachkommastellen
*/
function prozentWaehrung(gw: number, gwg: number, ag: number): number {
return Math.round((gw / gwg * ag) * 100) / 100;
}

export default prozentWaehrung;

0 comments on commit bd3579f

Please sign in to comment.