functie regels
Sylvester vader op 22/03/2020 01:01:48:
het maakt in feite dus helemaal niks uit
Als je deze nuancering ontgaat dan snap je duidelijk weinig van hoe je functies zou moeten gebruiken. Functies zijn niet bedoeld om alleen te werken voor exact één geval. Het is een verzameling van operaties die bij voorkeur op verschillende plekken en in soortgelijke uitvoeringen op precies dezelfde wijze ingezet kunnen worden. Jij metselt het pad helemaal vast in de functie. Daardoor is deze functie niet herbruikbaar. Als je dit op een soortgelijke wijze op andere plekken gaat toepassen dan maak je allerlei functies die je maar 1x kunt gebruiken. Zou het dan niet veel logischer zijn om die specifieke code gewoon uit te schrijven?
Ik heb tevens laten zien dat de functie in wezen niets verschilt van twee lossen aanroepen. Een functie zou in dit geval dan ook nauwelijks toegevoegde waarde hebben. Het is uitsluitend een alternatieve schrijfwijze voor iets anders, zonder enige extra's. Dat maakt het lezen van code niet makkelijker, maar ingewikkelder, omdat dan op den duur allerlei snippets op een andere plek staan die best bij elkaar uitgeschreven hadden kunnen worden.
Als je functies op een goede manier wilt inzetten zul je ook moeten nadenken over hoe nuttig dat is. Op dit moment lijk je compleet gefixeerd te zijn op het gebruik van functies, zonder het nut te beschouwen. Het is net alsof je hebt besloten dat je de heg gaat snoeien met een hamer, immers, een hamer is een goed stuk gereedschap. Maar het gereedschap wat je dient te hanteren hangt af van de klus, en niet andersom.
Sylvester vader op 22/03/2020 01:01:48:
als jullie je nou allemaal even met andere dingen bezig gaan en niet gaan bemoeien waar jullie blijkbaar toch geen verstand van hebben
Jij vraagt advies. Wij geven advies en tips. Het is niet zoals jij gewend bent. Je doet je eigen ding. Waarom stel je hier ook alweer vragen dan?
En dan de insinuatie dat wij geen verstand hebben. Nee, we snappen inderdaad geen biet van wat die applicatie doet, dat is jouw vakgebied. Maar tegelijkertijd zien wij dat de code aan alle kanten rammelt. Daarvoor kwam je toch hier of niet?
Sylvester vader op 22/03/2020 01:01:48:
dan kan iedereen stoppen met het volspammen van deze site
Ik zou zeggen, volg je eigen advies op.
Sylvester vader op 22/03/2020 01:01:48:
en dan kunnen mensen reageren die echt goede ideeen hebben en inbrengen
Het ontgaat je wat wij je bij proberen te brengen. Zoals iemand anders inderdaad voorstelde: ga op een cursus ofzo.
Sylvester vader op 22/03/2020 01:01:48:
dank u
Tot ziens.
Gewijzigd op 22/03/2020 01:56:53 door Thomas van den Heuvel
het kan niet, ik snap dat jullie goed proberen te doen maar 80% van julie manieren is niet bij mij van toepassing
ik moet een heel boekwerk maken om jullie te gaan uitleggen hoe boekhouding werkt
jullie zeggen ik cursus, ik zou zeggen jullie cursus
ik voor php jullie voor regels van belasting en boekhouding
ik geloof best dat veel dingen anders kunnen, maar veel ook niet
ik heb dus inderdaad soms codes waar ik maar 1 ding wil op 1 pagina
jullie dringen functies aan maar waarom als ik maar 1 ding moet hebben
ik vraag 1 ding en jullie komen met 100 andere dingen
gellukkig zijn er op deze site ook nog mensen die helpen en niet alleen les willen geven in dingen waar ze denken iets van te weten
als ik het nu zou hebben kreeg de scripter die mijn berekeningen in een beter script kon zetten en sneller 5000 euro
maar helaas kan dat niet, en geloof me er hebben scripters het geprobeerd, die precies denken zoals jullie
allemaal gefaald omdat php niet bedoeld is voor wat ik wil
echter met mijn ouderwets kennis heb ik dus alle slimme scipters achter hun oren doen krabben
want mij is het dus wel gelukt
misschien een omweg en ouderwets, maar het werkt.
Quote:
ik moet een heel boekwerk maken om jullie te gaan uitleggen hoe boekhouding werkt
Goed, nu ben ik het beu.
Toegeven ik heb totaal geen kaas gegeven van boekhouding, maar wat ik niet ken kan ik leren.
Ik ben even zo lief geweest om jou voorbeeld van de belastingdienst te bekijken.
Daarop met 77 regels aan good old fashion code het in elkaar gezet.
Heb ik het allemaal zelf bedacht? Nee, ik ben gaan zoeken naar soortgelijke problemen.
Het argument dat het niet met SQL kan, bullshit ook gedaan.
Oké, nu we toch even aan statistieken doen:
24 regels aan php code en SQL.
47 regels aan HTML en twitter bootstrap geleend.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<?php
$servername = "localhost";
$username = "root";
$password = "mijnpassword";
$dbname = "sylvester";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = "SELECT SUM(item_price*item_quantity) AS total,
item_price,
item_name,
SUM(item_price*item_quantity)/100 * tax_rate_percentage AS tax,
b.tarief,
b.tax_rate_percentage,
a.item_tax_rate_id
FROM invoice a
LEFT JOIN tax_rates b ON a.item_tax_rate_id = b.item_tax_rate_id
GROUP BY a.item_tax_rate_id";
$result = mysqli_query($conn, $sql);
?>
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
<title>Hello, world!</title>
</head>
<body>
<h1>Hello, world!</h1>
<table class="table">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">naam</th>
<th scope="col">prijs ex BTW</th>
<th scope="col">BTW</th>
<th scope="col">Tarief</th>
<th scope="col">totaal incl. BTW</th>
</tr>
</thead>
<?php if (mysqli_num_rows($result) > 0): ?>
<tbody>
<?php while($row = mysqli_fetch_assoc($result)) : ?>
<tr>
<th scope="row">1</th>
<td><?php echo $row['item_name'];?></td>
<td><?php echo $row['item_price'];?></td>
<td><?php echo $row['tarief'].'('.$row['tax_rate_percentage'].')';?></td>
<td><?php echo $row['tax'];?></td>
<td><?php echo round( $row['item_price']+$row['tax'], 2 );?></td>
</tr>
<?php endwhile; mysqli_close($conn); ?>
</tbody>
</table>
<?php else: ?>
Geen items gevonden!
<?php endif;?>
<!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
</body>
</html>
$servername = "localhost";
$username = "root";
$password = "mijnpassword";
$dbname = "sylvester";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = "SELECT SUM(item_price*item_quantity) AS total,
item_price,
item_name,
SUM(item_price*item_quantity)/100 * tax_rate_percentage AS tax,
b.tarief,
b.tax_rate_percentage,
a.item_tax_rate_id
FROM invoice a
LEFT JOIN tax_rates b ON a.item_tax_rate_id = b.item_tax_rate_id
GROUP BY a.item_tax_rate_id";
$result = mysqli_query($conn, $sql);
?>
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
<title>Hello, world!</title>
</head>
<body>
<h1>Hello, world!</h1>
<table class="table">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">naam</th>
<th scope="col">prijs ex BTW</th>
<th scope="col">BTW</th>
<th scope="col">Tarief</th>
<th scope="col">totaal incl. BTW</th>
</tr>
</thead>
<?php if (mysqli_num_rows($result) > 0): ?>
<tbody>
<?php while($row = mysqli_fetch_assoc($result)) : ?>
<tr>
<th scope="row">1</th>
<td><?php echo $row['item_name'];?></td>
<td><?php echo $row['item_price'];?></td>
<td><?php echo $row['tarief'].'('.$row['tax_rate_percentage'].')';?></td>
<td><?php echo $row['tax'];?></td>
<td><?php echo round( $row['item_price']+$row['tax'], 2 );?></td>
</tr>
<?php endwhile; mysqli_close($conn); ?>
</tbody>
</table>
<?php else: ?>
Geen items gevonden!
<?php endif;?>
<!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
</body>
</html>
De SQL code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
-- phpMyAdmin SQL Dump
-- version 4.8.5
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1:3306
-- Gegenereerd op: 22 mrt 2020 om 10:47
-- Serverversie: 5.7.26
-- PHP-versie: 7.2.18
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Database: `sylvester`
--
-- --------------------------------------------------------
--
-- Tabelstructuur voor tabel `invoice`
--
DROP TABLE IF EXISTS `invoice`;
CREATE TABLE IF NOT EXISTS `invoice` (
`item_id` int(10) NOT NULL AUTO_INCREMENT,
`item_price` decimal(5,2) NOT NULL,
`item_name` varchar(100) NOT NULL,
`item_quantity` int(10) NOT NULL,
`item_tax_rate_id` tinyint(1) NOT NULL,
PRIMARY KEY (`item_id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
--
-- Gegevens worden gexporteerd voor tabel `invoice`
--
INSERT INTO `invoice` (`item_id`, `item_price`, `item_name`, `item_quantity`, `item_tax_rate_id`) VALUES
(1, '22.34', 'test procuct', 1, 1),
(2, '5.44', 'product2', 1, 2);
-- --------------------------------------------------------
--
-- Tabelstructuur voor tabel `tax_rates`
--
DROP TABLE IF EXISTS `tax_rates`;
CREATE TABLE IF NOT EXISTS `tax_rates` (
`item_tax_rate_id` tinyint(3) UNSIGNED NOT NULL,
`tarief` varchar(10) NOT NULL,
`tax_rate_percentage` decimal(5,3) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Gegevens worden gexporteerd voor tabel `tax_rates`
--
INSERT INTO `tax_rates` (`item_tax_rate_id`, `tarief`, `tax_rate_percentage`) VALUES
(1, 'hoog', '21.000'),
(2, 'laag', '9.000');
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
-- version 4.8.5
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1:3306
-- Gegenereerd op: 22 mrt 2020 om 10:47
-- Serverversie: 5.7.26
-- PHP-versie: 7.2.18
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Database: `sylvester`
--
-- --------------------------------------------------------
--
-- Tabelstructuur voor tabel `invoice`
--
DROP TABLE IF EXISTS `invoice`;
CREATE TABLE IF NOT EXISTS `invoice` (
`item_id` int(10) NOT NULL AUTO_INCREMENT,
`item_price` decimal(5,2) NOT NULL,
`item_name` varchar(100) NOT NULL,
`item_quantity` int(10) NOT NULL,
`item_tax_rate_id` tinyint(1) NOT NULL,
PRIMARY KEY (`item_id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
--
-- Gegevens worden gexporteerd voor tabel `invoice`
--
INSERT INTO `invoice` (`item_id`, `item_price`, `item_name`, `item_quantity`, `item_tax_rate_id`) VALUES
(1, '22.34', 'test procuct', 1, 1),
(2, '5.44', 'product2', 1, 2);
-- --------------------------------------------------------
--
-- Tabelstructuur voor tabel `tax_rates`
--
DROP TABLE IF EXISTS `tax_rates`;
CREATE TABLE IF NOT EXISTS `tax_rates` (
`item_tax_rate_id` tinyint(3) UNSIGNED NOT NULL,
`tarief` varchar(10) NOT NULL,
`tax_rate_percentage` decimal(5,3) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Gegevens worden gexporteerd voor tabel `tax_rates`
--
INSERT INTO `tax_rates` (`item_tax_rate_id`, `tarief`, `tax_rate_percentage`) VALUES
(1, 'hoog', '21.000'),
(2, 'laag', '9.000');
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Gewijzigd op 22/03/2020 12:04:30 door Bart V B
Eigenlijk kan je haast alles met MySQL berekenen. En als het complex wordt, dan kan je altijd PHP erbij betrekken, mocht het echt nodig zijn. En als je niet wilt dat je iets on-the-fly steeds wilt uitrekenen (zoals bijvoorbeeld topicposts in een subforum met een hoop joins en voorwaarden), dan kan je altijd nog deels die waarden cachen.
allereerst toch bedankt voor je moeite die je hierin hebt gestoken maar boekhouding is niet alleen btw :)
ik ga je een aantal dingen proberen uit te leggen met hoe mijn systeem werkt en waarom het zo moeilijk is.
PS: ik zie wel een klein voordeel hiermee dus ik ga hier zeker even in verdiepen als test om te kijken of ik de sql delen hiermee iets kan versnellen, ik laat je wel weten of dat is gelukt
ik heb wel een klein vraagje met betrekking tot eerste stukje code met de btw berekening in de sql
kan je de AS total of AS tax ook in dezelfde sql herbruiken ?
ok hier een lijstje met mijn problemen
ik heb
deze invoeren in mijn sql op 1 dag van 1 user
Code (php)
1
2
3
4
5
2
3
4
5
INSERT INTO `systeem_invoertotaal` (`account`, `id`, `id_user`, `werknaam`, `onbelaste_onkosten`, `facilitaire_diensten`, `percentage`, `btwhoog`, `btwlaag`, `loonbelasting`, `zfwpremie`, `geforceerd`, `soort`, `omschrijving`, `aantal`, `bedrag`, `btwhoogte`, `deel_user`, `titel`, `datum_invoer`, `invoer_over`) VALUES
(43, 162421, 111, 'mary', '20', '', '40', '21', '9', '8', '5.70', '-', 'belastingen', '-', '-', '-', '-', '-', NULL, '2020-03-15 01:04:27', '2020-03-14'),
(43, 162422, 111, 'mary', '-', '-', '-', '-', '-', '-', '-', '-', 'baden', 'Jacuzzi', '1', '20.00', 'btwhoog', '10.00', '', '2020-03-15 01:04:27', '2020-03-14'),
(43, 162423, 111, 'mary', '-', '-', '-', '-', '-', '-', '-', '-', 'tarieven', '30', '2', '70', 'btwhoog', '-', '', '2020-03-15 01:04:27', '2020-03-14'),
(43, 162424, 111, 'mary', '-', '-', '-', '-', '-', '-', '-', '-', 'tarieven', '60', '1', '120', 'btwhoog', '-', '', '2020-03-15 01:04:27', '2020-03-14');
(43, 162421, 111, 'mary', '20', '', '40', '21', '9', '8', '5.70', '-', 'belastingen', '-', '-', '-', '-', '-', NULL, '2020-03-15 01:04:27', '2020-03-14'),
(43, 162422, 111, 'mary', '-', '-', '-', '-', '-', '-', '-', '-', 'baden', 'Jacuzzi', '1', '20.00', 'btwhoog', '10.00', '', '2020-03-15 01:04:27', '2020-03-14'),
(43, 162423, 111, 'mary', '-', '-', '-', '-', '-', '-', '-', '-', 'tarieven', '30', '2', '70', 'btwhoog', '-', '', '2020-03-15 01:04:27', '2020-03-14'),
(43, 162424, 111, 'mary', '-', '-', '-', '-', '-', '-', '-', '-', 'tarieven', '60', '1', '120', 'btwhoog', '-', '', '2020-03-15 01:04:27', '2020-03-14');
even simpel vertaald
deze werknemer
heeft 2 x 30 minuten gedraait 70 euro per 30 min
heeft 1 x 60 minuten gedraait 120 euro
ze heeft ook 1 bad verkocht deze kost 20 euro en ze krijgt hiervan 10 euro
de percentage staan ook in een rij, dit is voor een specifieke reden en dus noodzakelijk
deze werknemers worden soms per dag uitbetaald en werken via een belasting berekening genaamd optingin
het kan zijn dat er een percentage midden in een maand veranderd, zoizo de loonheffing maar soms heel soms ook de btw
dit gebeurt eigelijk nooit maar de mogelijk is er
aangezien de medewerkers per dag vaak betaald krijgen kan ik niet achteraf dit wijzigen en dus MOET ik deze percentages in deze dag vastleggen
all de info die je ziet in de rijen moet ik een variabelen van maken omdat ik dit ook visueel moet tonen op een loonstrook
naast het tonen in detail van al deze gegeven moet ik heel veel uitkomsten maken met deze bedragen
hier moet ook variabelen van worden gemaakt
ik geef hieronder 100% van de lijst die ik dus MOET hebben in variabelen
er staan hier dus ook 0 bedragen in deze zijn meegenomen in de berekening omdat er ook heel vaak andere dingen worden meegegeven in de rijen
ps: de lijst kan iets worden ingekort en ik zit zelf al te denken een aan aantal met NULL te doen zodat hij ze niet hoeft opteslaan als ze er niet zijn
maer dit werkt voor de berekingen niet handig en daarom staan alle mogelijke bedragen die mijn berekening eventueel zou kunnen maken hierin
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
$id_user = 111;
$workname = 'mary';
$btwhoog = 21;
$btwlaag = 9;
$heffingskorting = 8;
$zfw = 5.70;
// Begin Bemiddeling //
$eindtotaalbemiddelingafgerond = 260;
$eindtotaalbemiddelingbtwafgerond = 45.13;
$eindtotaalbemiddelingexbtwafgerond = 214.87;
// Einde Bemiddeling //
///////////////////////
// Begin special Bemiddeling //
///////////////////////
$eindtotaalspecialbemiddelingafgerond = 0;
$eindtotaalspecialbemiddelingbtwafgerond = 0;
$eindtotaalspecialbemiddelingexbtwafgerond = 0;
$eindtotaalspecialbemiddelingprovisieexploitantafgerond = 0;
$eindtotaalspecialbemiddelingprovisieexploitantexbtwafgerond = 0;
$eindtotaalspecialbemiddelingprovisieuserafgerond = 0;
$eindtotaalspecialbemiddelingprovisieuserexbtwafgerond = 0;
///////////////////////
// Einde special Bemiddeling //
///////////////////////
// Begin Extra Diensten //
$eindtotaaldienstenafgerond = 0;
$eindtotaaldienstenabtwafgerond = 0;
$eindtotaaldienstenexbtwafgerond = 0;
// Einde Extra Diensten //
// Begin entree //
$eindtotaalentreeafgerond = 0;
$eindtotaalentreebtwafgerond = 0;
$eindtotaalentreeexbtwafgerond = 0;
$eindtotaalentreebtwlaagafgerond = 0;
$eindtotaalentreebtwhoogafgerond = 0;
$eindtotaalprovisieuserentreeafgerond = 0;
$eindtotaalprovisieexploitantentreeafgerond = 0;
// Einde entree //
// Begin Baden //
$eindtotaalbadenafgerond = 20;
$eindtotaalbadenbtwafgerond = 3.47;
$eindtotaalbadenexbtwafgerond = 16.53;
$eindtotaalbadenbtwlaagafgerond = 0;
$eindtotaalbadenbtwhoogafgerond = 3.47;
$eindtotaalprovisieuserbadenafgerond = 10;
$eindtotaalprovisieexploitantbadenafgerond = 6.53;
// Einde Baden //
// Begin Dranken //
$eindtotaaldrankenprovisie = 0;
$eindtotaaldrankenprovisieexbtw = 0;
$eindtotaalbtwdrankenhoogafgerond = 0;
$eindtotaalbtwdrankenlaagafgerond = 0;
$eindtotaaldrankenafgerond = 0;
$eindtotaaldrankenbtwafgerond = 0;
$eindtotaaldrankenexbtwafgerond = 0;
$eindtotaaldrankenbtwlaagafgerond = 0;
$eindtotaaldrankenbtwhoogafgerond = 0;
$eindtotaalprovisieuserdrankenafgerond = 0;
$eindtotaalprovisieexploitantdrankenafgerond = 0;
// Einde Dranken //
$percentageexploitant = 40;
$percentagedame = 60;
$eindtotaalallesafgerond = 280;
$eindtotaalallesbtwafgerond = 48.6;
$eindtotaalallesexbtwafgerond = 231.4;
$totaalpercentageexploitant = 104;
$totaalpercentageexploitantbtw = 18.05;
$totaalpercentageexploitantexbtw = 85.948;
$totaalpercentageexploitantafgerond = 104;
$totaalpercentageexploitantbtwafgerond = 18.05;
$totaalpercentageexploitantexbtwafgerond = 85.95;
$totaalpercentageuser = 156;
$totaalpercentageuserbtw = 27.08;
$totaalpercentageuserexbtw = 128.92;
$totaalpercentageuserafgerond = 156;
$totaalpercentageuserbtwafgerond = 27.08;
$totaalpercentageuserexbtwafgerond = 128.92;
$totaaldeelexploitant = 85.95;
$totaaldeelexploitantafgerond = 85.95;
$eindtotaalbrutoverdienstenuser = 138.92;
$eindtotaalbrutoverdienstenuserafgerond = 138.92;
$onbelastenonkosten = 27.784;
$onbelastenonkostenafgerond = 27.78;
$subtotaalonb = 111.136;
$subtotaalonbafgerond = 111.14;
$heffingskortingdeel = 8.89088;
$heffingskortingdeelafgerond = 8.89;
$zfwpremiedeel = 6.334752;
$zfwpremiedeelafgerond = 6.33;
$eindtotaal_afdrachten = 15.225632;
$eindtotaal_afdrachtenafgerond = 15.22;
$subtotaal_zfwLB = 95.92;
$subtotaal_zfwLBafgerond = 95.92;
$netto_optingin = 123.704;
$netto_optinginafgerond = 123.7;
$workname = 'mary';
$btwhoog = 21;
$btwlaag = 9;
$heffingskorting = 8;
$zfw = 5.70;
// Begin Bemiddeling //
$eindtotaalbemiddelingafgerond = 260;
$eindtotaalbemiddelingbtwafgerond = 45.13;
$eindtotaalbemiddelingexbtwafgerond = 214.87;
// Einde Bemiddeling //
///////////////////////
// Begin special Bemiddeling //
///////////////////////
$eindtotaalspecialbemiddelingafgerond = 0;
$eindtotaalspecialbemiddelingbtwafgerond = 0;
$eindtotaalspecialbemiddelingexbtwafgerond = 0;
$eindtotaalspecialbemiddelingprovisieexploitantafgerond = 0;
$eindtotaalspecialbemiddelingprovisieexploitantexbtwafgerond = 0;
$eindtotaalspecialbemiddelingprovisieuserafgerond = 0;
$eindtotaalspecialbemiddelingprovisieuserexbtwafgerond = 0;
///////////////////////
// Einde special Bemiddeling //
///////////////////////
// Begin Extra Diensten //
$eindtotaaldienstenafgerond = 0;
$eindtotaaldienstenabtwafgerond = 0;
$eindtotaaldienstenexbtwafgerond = 0;
// Einde Extra Diensten //
// Begin entree //
$eindtotaalentreeafgerond = 0;
$eindtotaalentreebtwafgerond = 0;
$eindtotaalentreeexbtwafgerond = 0;
$eindtotaalentreebtwlaagafgerond = 0;
$eindtotaalentreebtwhoogafgerond = 0;
$eindtotaalprovisieuserentreeafgerond = 0;
$eindtotaalprovisieexploitantentreeafgerond = 0;
// Einde entree //
// Begin Baden //
$eindtotaalbadenafgerond = 20;
$eindtotaalbadenbtwafgerond = 3.47;
$eindtotaalbadenexbtwafgerond = 16.53;
$eindtotaalbadenbtwlaagafgerond = 0;
$eindtotaalbadenbtwhoogafgerond = 3.47;
$eindtotaalprovisieuserbadenafgerond = 10;
$eindtotaalprovisieexploitantbadenafgerond = 6.53;
// Einde Baden //
// Begin Dranken //
$eindtotaaldrankenprovisie = 0;
$eindtotaaldrankenprovisieexbtw = 0;
$eindtotaalbtwdrankenhoogafgerond = 0;
$eindtotaalbtwdrankenlaagafgerond = 0;
$eindtotaaldrankenafgerond = 0;
$eindtotaaldrankenbtwafgerond = 0;
$eindtotaaldrankenexbtwafgerond = 0;
$eindtotaaldrankenbtwlaagafgerond = 0;
$eindtotaaldrankenbtwhoogafgerond = 0;
$eindtotaalprovisieuserdrankenafgerond = 0;
$eindtotaalprovisieexploitantdrankenafgerond = 0;
// Einde Dranken //
$percentageexploitant = 40;
$percentagedame = 60;
$eindtotaalallesafgerond = 280;
$eindtotaalallesbtwafgerond = 48.6;
$eindtotaalallesexbtwafgerond = 231.4;
$totaalpercentageexploitant = 104;
$totaalpercentageexploitantbtw = 18.05;
$totaalpercentageexploitantexbtw = 85.948;
$totaalpercentageexploitantafgerond = 104;
$totaalpercentageexploitantbtwafgerond = 18.05;
$totaalpercentageexploitantexbtwafgerond = 85.95;
$totaalpercentageuser = 156;
$totaalpercentageuserbtw = 27.08;
$totaalpercentageuserexbtw = 128.92;
$totaalpercentageuserafgerond = 156;
$totaalpercentageuserbtwafgerond = 27.08;
$totaalpercentageuserexbtwafgerond = 128.92;
$totaaldeelexploitant = 85.95;
$totaaldeelexploitantafgerond = 85.95;
$eindtotaalbrutoverdienstenuser = 138.92;
$eindtotaalbrutoverdienstenuserafgerond = 138.92;
$onbelastenonkosten = 27.784;
$onbelastenonkostenafgerond = 27.78;
$subtotaalonb = 111.136;
$subtotaalonbafgerond = 111.14;
$heffingskortingdeel = 8.89088;
$heffingskortingdeelafgerond = 8.89;
$zfwpremiedeel = 6.334752;
$zfwpremiedeelafgerond = 6.33;
$eindtotaal_afdrachten = 15.225632;
$eindtotaal_afdrachtenafgerond = 15.22;
$subtotaal_zfwLB = 95.92;
$subtotaal_zfwLBafgerond = 95.92;
$netto_optingin = 123.704;
$netto_optinginafgerond = 123.7;
nogmaals ik moet dus all deze variabelen hebben omdat ze dus ook echt getoond worden
ja een aantal zouden eruit kunnen , de afgeronde delen bv mits ik de niet afgeronde erin heb
het zou dus een enorm lange sql code worden indien dit zou kunnen
maar daar heb ik gen kennis van en iemand anders is dit nog nooit gelukt anders dan hoe ik het heb
iemand die dit intressant vind om te proberen mag mij een pm sturen
ps: btw eruit halen doe je door delen door 121 en dan x 21 voor de btw
en normaal doe je dan x100 voor de exbtw
echter geeft dit heel heel soms cent fouten vanwege de 3 cijfers achter komma regel
daarnaast gaat belasting altijd voor en dus moet ik het zo doen
bedrag delen door 121 keer 21 en dat bedrag dan weer aftrekken van je main bedrag
dan is hij altijd perfect
Gewijzigd op 22/03/2020 14:43:27 door sylvester vader
abstracties.
En dat zie je ook terug in de code, want doordat je elk concrete detail uitwerkt op minstens één eigen regel, krijg je een waslijst aan veel te specifieke variabelen.
Probeer bijvoorbeeld eens om te concrete zaken zoals 'baden' en 'dranken' te reduceren tot twee abstractere concepten: iets is een product of een dienst, meer smaken zijn er niet.
Als je dat voor elkaar hebt, zul je vervolgens zien dat ook concepten zoals allerlei toeslagen (waaronder btw) en kortingen zich lenen voor abstracties — omdat het allemaal percentages van een andere abstractie zijn, bijvoorbeeld.
Je voorbeelden zijn veel te concreet en vooral té specifiek: je mist En dat zie je ook terug in de code, want doordat je elk concrete detail uitwerkt op minstens één eigen regel, krijg je een waslijst aan veel te specifieke variabelen.
Probeer bijvoorbeeld eens om te concrete zaken zoals 'baden' en 'dranken' te reduceren tot twee abstractere concepten: iets is een product of een dienst, meer smaken zijn er niet.
Als je dat voor elkaar hebt, zul je vervolgens zien dat ook concepten zoals allerlei toeslagen (waaronder btw) en kortingen zich lenen voor abstracties — omdat het allemaal percentages van een andere abstractie zijn, bijvoorbeeld.
En dat had ik eerder ook al duidelijk gemaakt met de multidimensionale array's
het is niet dat ik ze voor janlul maak.!
het zijn niet gewoon producten er komt veel meer bij kijken
die multi ben ik mee bezig geweest maar ik kan hier niet goed mijn berekeningen mee maken en het enige dat er extra inkomt zijn ['..']
dus nogmaals
niet jullie manier gaan forceren
ik moet té specifiek zijn
dit ben ik wetterlijk verplicht
dus als jullie de exacte té specifieke variabelen op een betere manier kunnen maken dan hoor ik dit graag, zoniet bemoei je dan niet met dingen waar je geen verstand van heb
$totaalpercentageexploitantexbtw = 85.948;
$totaalpercentageexploitantafgerond = 104;
$totaalpercentageexploitantbtwafgerond = 18.05;
$totaalpercentageexploitantexbtwafgerond = 85.95;
Het leest rottig en is gebaat voor spelfouten wat je zeker niet wilt in een boekhoudsysteem.
Het zou overigens raar zijn als de Belastingdienst wettelijk verplicht stelt hoe jij jouw applicatie programmeert, het gaat erom wat je kan aanleveren.
Maar goed, ik heb mijn woordje nogmaals gezegd! Kijk eens naar het voorbeeld van Bart, en reverse-engineer deze eens. Succes!