meerdere variabelen uit 1 functie halen (noob vraag)
Pagina: « vorige 1 2 3 4 5 6 volgende »
Je meldt hierboven dat je een hele berg aan variabelen kopieert, omdat de rest van je code de variabelen onder die naam wil hebben.
Met bijvoorbeeld Netbeans kun je je code laten refactoren om een var te veranderen van naam.
Of door alle scripts laten zoeken naar variabelen of strings.
Dat zou kunnen oplossen dat je nu al je vars verdubbelt. En daarmee ook je geheugen gebruik.
Quote:
Waar was je dan specifiek naar op zoek, wat de cursus niet aanbood?
nou om te beginnen dus een manier om complexe berekeningen te maken
ik heb ook sql geprobeerd zoals eerder is genoemd
maar dit kan dus niet
simpele sommetjes wel
iedereen die ik spreek praat altijd heel makkelijk
gebruik de geld type,
gebruik sum
gebruik group
enz enz
all deze dingen zijn bedoeld voor enkele simpele sommetjes en niet met de belasting reken manier waardoor je dus fouten krijgt
iedereen zegt tegen mij dat de berekeningen te groot zijn en dat dit makkelijker kan met betere php of sql maar niemand komt met een oplossing
ik zal even een leuk stukje hieronder geven en dan gaan we kijken of hier slimme mensen zijn
ik pak even 1 dag van 1 fictieve merknemer
in een massage/welness centre die werkt via da opting-in regeling van de belastingdienst
dit houd in dat werknemer in een soort fictieve loondienst zit en aan het eind van de dag een netto bedrag in handen krijgt
gebaseerd op 60/40
deze werknemer gebruikt onderstaande belasting tarieven en diensten en krijgt een speciale heffingskorting en een onbelaste onkosten vergoeding
dit is iets speciaals voor de bedrijven waar ik dit voor maak
btwhoog = 21%
btwlaag = 9%
loonheffing= 8%
zfwpremie = 5,70%
onbelaste_onkosten_vergoeding = 20%
massage = €60,-
verkoop van een bad of jacuzzie inclusief vol laten lopen enz €20,- met een provisie van een netto bedrag van €10,-
dit bedrag is netto naar werknemer maar btw moet verplaats worden naar werkgever maar wel los gespecificeerd
welnesspakket €50,- met een provisie van €15,-
dit bedrag is netto naar werknemer maar btw moet verplaats worden naar werkgever maar wel los gespecificeerd
deze werknemer heeft
2 x €60,-
2 x €20,- waarvan deze werknemer een provisie krijgt van netto €10,-
1 x €50,- waarvan deze werknemer een provisie krijgt van netto €15,-
met deze gegevens moet er een berekening komen
die getoond wordt op 1 pagina
in detail dus alleen een uitkomst werkt dus niet
hieronder de lijst van welke antwoorden ik zoizo moet hebben
totale omzet
totale btw omzet
totale omzet min btw
totale omzet min btw en ook min de bedragen van de provisie delen die overblijven voor werkgever
van het bedrag dat overblijft moet het ingedeeld worden in 60/40
over het 60% deel moet een onbelaste onkosten worden berekent van 20%
dit bedrag moet je apart houden
er blijft dan een subtotaal over, over dit bedrag moet de loonheffing maar ook de zfwpremie worden berekent en ook worden getoond
deze 2 bedragen moeten worden opgeteld en worden afgetrokken van het subtotaal
van het bedrag dat overblijft mag die eerdere 20% er weer bij worden opgeteld
de uitkomst hiervan zou 84,14 moeten zijn maar ik moet dus ook alle andere bedragen hebben
en dit wil ik dan in een mooie php of sql code
de bedragen moeten meeneembaar zijn naar andere paginas en ook moeten de berekeningen in een soort foreach of loop worden gezet
iemand die dit voor mij kan maken en ook echt een verbetering is van alles wat ik zelf al heb
en ook makkelijk herkenbeer in begrijpbaar in het script krijgt van mij €500,-
ik bedoel dus niet
$eindtotaalspecialbemiddelingprovisieexploitantexbtwafgerond verkleinen naar $var1 ofzo
succes :D
Quote:
welke editor gebruik je?
Je meldt hierboven dat je een hele berg aan variabelen kopieert, omdat de rest van je code de variabelen onder die naam wil hebben.
Je meldt hierboven dat je een hele berg aan variabelen kopieert, omdat de rest van je code de variabelen onder die naam wil hebben.
ik gebruik nu meestal notepad++ maar inderdaad er zijn betere tools
grootste reden dat ik veel dubbel schrijf is dat ik dus weinig functies heb en daarom dus steeds opnieuw code moet maken
hier ben ik al flink aanpassingen in aan het maken.
Gewijzigd op 18/03/2020 14:34:17 door - Ariën -
- Ariën - op 18/03/2020 13:42:06:
Dan zijn multidimensionale array's de uitkomst.
ik heb even via internet gezocht hoe dat allemaal werkt met die multidimensionale array's en inderdaad, voor de uitkomsten kan ik dit gebruiken maar het berekenen om bij deze uitkomsten te komen blijkt volgens internet bijna tot niet mogelijk
het kan wel maar dan wordt de code vaak nog groter dan dat ik al heb
en visueel dus niet goed overzichtelijk in het script
Dus het is juist effectief, en ook duidelijker in je script omdat je makkelijk door bepaalde data kan lopen via een foreach(). Dis bijvoorbeeld alle tarieven inclusief BTW, of juist exclusief. Of de inkomsten en uitgaven apart.
En met functies zie ik juist een mooie kant zodat je die 'boom' zelf met parameters vorm kan geven.
Gewijzigd op 18/03/2020 14:44:24 door - Ariën -
of plus en min
ik heb meerdere scripters in verleden gevraagd om iets te maken / bedenken
iedereen komt met hoe het zou kunnen
maar theorie en praktijk blijkt hier een heel groot verschil
ik geef al jaren aan scripters delen van scripts in de hoop dat iemand iets kan maken maar is tot op heden nog niemand gelukt
ik heb ooit iemand gevonden die inderdaad met classes functies, arrays en met al die dingen iets kon maken
zelfs met een cache in json enz
echter was het script heel onoverzichtelijk
het was langzamer
eigelijk in veel delen groter
en ik kon zelf persoonlijk door mijn lack aan kennis er niet veel mee als ik iets wou aanpassen
even voor duidelijkheid er is dus geen boom van data
er zijn een aantal regels in mijn database waarmee ik deze boom eerst moet creeren
ik heb nu dus naar aanleiding van
@Rob Doemaarwat
(het eerste andwoord in mijn topic)
een gehele functie pagina gemaakt die ik nu dus netjes overal zou kunnen opvragen als ik dat wens
heel erg bedankt hiervoor
deze functies zou ik in toekomst inderdaad nog beter kunnen maken
ik gebruik in mijn functies hele lange vars omdat ik dat makkelijker vind kwa het vinden van welke var ik nodig heb
mijn langste is als ik het even snel bekijk is deze
$eindtotaalspecialbemiddelingprovisieexploitantexbtwafgerond
van dit sort variabelen heb ik wel 100
kan ik ook bv
$1 van maken maar wat is 1 dan
ik kan inderdaad al deze data in zo'n boom verwerken enz
of het nut heeft ???
het gaat mij dus voornamelijk om de berekening, en niet om hoe ik de antwoorden neerzet
Ik wil je graag toch nog even vriendelijk doch dringend vragen om wat interpuncties te gebruiken, en minder vaak een nieuwe regel te starten. Het leest echt heel vermoeiend, als ik eerlijk mag zeggen.
$eindtotaalspecialbemiddelingprovisieexploitantexbtwafgerond
Die brei kan je zeker uit elkaar trekken....
het gaat allereerst om bedragen? Dus dan hebben we al:
$bedrag
Dan kijken we verder naar het eindtotaal
$bedrag['eindtotaal']
De eindtotalen kunnen we dus verder aftakken in 'bemiddelingprovisie'
En dan hebben we dus dit:
$bedrag['eindtotaal']['bemiddelingprovisie']
En als we dan nog de ex btw willen hebben, dan kan je dat nog verder normaliseren:
$bedrag['eindtotaal']['bemiddelingprovisie']['exbtw']
Kijk eens aan, en dan heb je al een mooie multidimensionale array waarbij je bijvoorbeeld prima alle waardes van het eindtotaal en bemiddelingsprovisie kan ophalen:
$bedrag['eindtotaal']['bemiddelingprovisie']
Het leest ook veel lekkerder dan een typisch Scrabblewoord, en het zal vast ook zorgen voor minder schrijffouten.
Tip: Gebruik print_r() om het leesbaar te maken, en zet het tussen <pre>
Overigens kan je geen $1 gebruiken. Dat mag niet in variabelen omdat dit al gereserveerd is voor placeholders in reguliere expressies. En het zegt bovendien totaal niks. 1 Bloemkool, 1 aardbei, 1 raceauto, 1 poeremetator? Tja...
$eindtotaalspecialbemiddelingprovisieexploitantexbtwafgerond
Die brei kan je zeker uit elkaar trekken....
het gaat allereerst om bedragen? Dus dan hebben we al:
$bedrag
Dan kijken we verder naar het eindtotaal
$bedrag['eindtotaal']
De eindtotalen kunnen we dus verder aftakken in 'bemiddelingprovisie'
En dan hebben we dus dit:
$bedrag['eindtotaal']['bemiddelingprovisie']
En als we dan nog de ex btw willen hebben, dan kan je dat nog verder normaliseren:
$bedrag['eindtotaal']['bemiddelingprovisie']['exbtw']
Kijk eens aan, en dan heb je al een mooie multidimensionale array waarbij je bijvoorbeeld prima alle waardes van het eindtotaal en bemiddelingsprovisie kan ophalen:
$bedrag['eindtotaal']['bemiddelingprovisie']
Het leest ook veel lekkerder dan een typisch Scrabblewoord, en het zal vast ook zorgen voor minder schrijffouten.
Tip: Gebruik print_r() om het leesbaar te maken, en zet het tussen <pre>
Overigens kan je geen $1 gebruiken. Dat mag niet in variabelen omdat dit al gereserveerd is voor placeholders in reguliere expressies. En het zegt bovendien totaal niks. 1 Bloemkool, 1 aardbei, 1 raceauto, 1 poeremetator? Tja...
Gewijzigd op 18/03/2020 16:00:27 door - Ariën -
ik doe juist om die reden een paar regeltjes extra om het netjes uit elkaar te halen.
Wat jij nu net aan mij laat zien is iets anders dan internet mij laat zien
het is meer een soort multidimensionale var.
maar ok het ziet er inderdaad mooi uit.
maar hoe werkt die berekening hierachter dan ?
Ik snap dat ik op deze manier gegevens uit bv mijn db kan halen ofzo,
want op jouw manier, even niet denken aan, of een berekingen dan werkt.
mijn eind berekening is van 1 bepaald deel bv
$eindtotaalbemiddelingafgerond = $eindtotaalbemiddelingafgerond + $totaalbemiddelingafgerond;
$eindtotaalbemiddelingbtwafgerond = $eindtotaalbemiddelingbtwafgerond + $btwtotaalbemiddelingafgerond;
$eindtotaalbemiddelingexbtwafgerond = $eindtotaalbemiddelingexbtwafgerond + $extotaalbemiddelingafgerond;
$eindtotaalminutenbemiddeling = $eindtotaalminutenbemiddeling + $minutenbemiddeling;
dit is de optelling van alle medewerkers van 1 dag,
hoe moet ik dit dan op jouw manier doen?
want $bedrag is er ja. echter heb ik heeeeeeel veel bedrag dus die geven we een apparte naam $bedragbemiddeling
o wacht ik heb meerdere losse bedragen van $bedragbemiddeling
en heel veel dagen
dus om dat los te trekken van de rest en goede bedragen te krijgen geef je het een 0
$bedragbemiddelingdag '0';
ik laat even de berekening achterwegen maar dat wordt dan na een berekening
$bedragbemiddeling = het berekendebedrag;
om dit netjes op te tellen wordt het
$bedragbemiddelingdag = $bedragbemiddelingdag + $bedragbemiddeling;
doe ik dit niet met een 0 dan wordt het bestaande bedrag meegenomen naar alle andere dagen die erna komen
maar even zoals als jij het dus zegt even buiten het feit om dat ik met dat dus niks kan
$bedrag['eindtotaalbemiddelingprovisieexbtw']
veranderen naar
$bedrag['eindtotaal']['bemiddeling']['provisie']['exbtw']
Ik zou zeggen: Ga er eerst eens mee spelen in plaats van enkel te zeggen wat je denkt.
Bouw eerst eens hardcoded je array op met wat fictieve data, en probeer met PHP eens berekeningen ermee te maken, zoals alles uit een array op te tellen. Als je het goed logisch in elkaar hebt gezet kan je de data zelfs nog indelen op bedrijf, en dit ophalen en berekenen.
Array's kunnen meer dan je denkt:
https://www.php.net/manual/en/ref.array.php
Optellen, aftrekken, vermenigvuldigen etc...
Dus verdiep je eens in deze materie!
Het gaat je zeker een hoop code schelen!
Laat maar eens zien wat je hebt geprobeerd. Ben benieuwd! :)
Gewijzigd op 18/03/2020 16:21:56 door - Ariën -
ga er meespelen... omdat niemand mij dit zelf kan uitleggen .
bouw hardcoded je array en ga optel sommetjes maken ...
ik moet optellen delen, min percentages , bedragen die ik daarmee heb gekregen bewaren en dan weer gebruiken enz enz
ik probeer me al jaren te verdiepen in betere code maar at ik zoek kan er niet mee
tenminste niet dat ik kan vinden en niemand kan mij ook een voorbeeld geven
idee is goed
in praktijk kan het echter tot op heden nog niet
en niemand bewijst mij het tegendeel
ik hoor alleen maar met ... manier zou het moeten kunnen
maar een goede uitleg geven ho maar
Toevoeging op 18/03/2020 16:28:04:
- Ariën - op 18/03/2020 16:17:15:
Array's kunnen meer dan je denkt:
https://www.php.net/manual/en/ref.array.php
Optellen, aftrekken, vermenigvuldigen etc...
https://www.php.net/manual/en/ref.array.php
Optellen, aftrekken, vermenigvuldigen etc...
klopt maar niet alles tegerlijk en in een loop en dan gegevens daaruit halen om daar weer vrder mee te rekenen enz
Gewijzigd op 18/03/2020 16:26:28 door sylvester vader
Sylvester vader op 18/03/2020 16:26:10:
omg daar gaan we weer .
ga er meespelen... omdat niemand mij dit zelf kan uitleggen .
ga er meespelen... omdat niemand mij dit zelf kan uitleggen .
Meen je dit?!? Ik leg het zelfs uit? Ik geef een link met een index van array-functies? Wat wil je nu nog meer?
Quote:
bouw hardcoded je array en ga optel sommetjes maken ...
ik moet optellen delen, min percentages , bedragen die ik daarmee heb gekregen bewaren en dan weer gebruiken enz enz
ik moet optellen delen, min percentages , bedragen die ik daarmee heb gekregen bewaren en dan weer gebruiken enz enz
Ga je gang !
Quote:
ik probeer me al jaren te verdiepen in betere code maar at ik zoek kan er niet mee
tenminste niet dat ik kan vinden en niemand kan mij ook een voorbeeld geven
idee is goed
in praktijk kan het echter tot op heden nog niet
tenminste niet dat ik kan vinden en niemand kan mij ook een voorbeeld geven
idee is goed
in praktijk kan het echter tot op heden nog niet
Niet totdat je ermee experimenteert! Je moet het zelf leren!
En nee, het komt niet automatisch in je hoofd via aardstraling ofzo.
Quote:
en niemand bewijst mij het tegendeel
ik hoor alleen maar met ... manier zou het moeten kunnen
maar een goede uitleg geven ho maar
ik hoor alleen maar met ... manier zou het moeten kunnen
maar een goede uitleg geven ho maar
:X
Ik wens je verder succes, want als de discussie zo gevoerd wordt, dan kan ik mijn tijd beter aan andere dingen besteden.
Je mag best wat proberen, en terug komen als je vragen hebt, maar het komt nu echt meer uit op: "Ik wil het liever laten doen." Prima, maar dan lijkt een vacature topic een beter idee. Maar ik geloof dat je al verteld had dat dat ook geen optie is.
Dus tijd om knopen voor je door te hakken! Die scenario's zijn je al gegeven in dit topic!
Good luck!
ik wil het zelf juist graag doen maar
die functies doen niet alles wat ik will
ja ok, wacht, dat doen ze wel echter wordt mijn code veeeeeeel groter
met deze manier en niet makkelijk voor mij te begrijpen als ik moet aanpassen
ik heb heel veel delen in mijn script, en ik heb 1 deel die heel makkelijk is
ik heb dit al vaker getoont
maar ik zal even een deel tonen die ook het visuele deel laat zien op bv het loonstrookje
als er iemand is die dit in nieuwe verbeterde code kan maken zoals er steeds wordt voorgesteld,
dan zal ik deze persoon inhuren mits de prijs een beetje normaal is uiteraard
iemand die dit kan en intresse heeft mag mij een pm sturen.
ps: onderstaande code maakt nog geen gebruik van functies enz
dus leef je uit!
sql database deel:
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
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
CREATE TABLE `systeem_invoertotaal` (
`account` int(11) DEFAULT NULL,
`id` int(11) NOT NULL,
`id_user` int(11) DEFAULT NULL,
`naam` varchar(64) NOT NULL,
`onbelaste_onkosten` text,
`facilitaire_diensten` text,
`percentage` text,
`btwhoog` text,
`btwlaag` text,
`loonbelasting` text,
`zfwpremie` text,
`geforceerd` enum('-','yes','no') NOT NULL DEFAULT '-',
`soort` enum('belastingen','facilitaire_diensten','dagdeel','heffing','zvw','tarieven','diensten','baden','dranken','entree') NOT NULL,
`omschrijving` text,
`aantal` text,
`bedrag` text,
`btwhoogte` enum('-','btwhoog','btwlaag') NOT NULL DEFAULT '-',
`deel_user` text,
`titel` text,
`datum_invoer` datetime DEFAULT NULL,
`invoer_over` date DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
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, 162348, 26, 'naam2', '20', '', '40', '21', '9', '8', '5.70', '-', 'belastingen', '-', '-', '-', '-', '-', NULL, '2020-03-14 01:24:03', '2020-03-13'),
(43, 162349, 26, 'naam2', '-', '-', '-', '-', '-', '-', '-', '-', 'tarieven', '30', '1', '70', 'btwhoog', '-', '', '2020-03-14 01:24:03', '2020-03-13'),
(43, 162350, 26, 'naam2', '-', '-', '-', '-', '-', '-', '-', '-', 'tarieven', '45', '1', '100', 'btwhoog', '-', '', '2020-03-14 01:24:03', '2020-03-13'),
(43, 162351, 26, 'naam2', '-', '-', '-', '-', '-', '-', '-', '-', 'tarieven', '60', '1', '120', 'btwhoog', '-', '', '2020-03-14 01:24:03', '2020-03-13');
`account` int(11) DEFAULT NULL,
`id` int(11) NOT NULL,
`id_user` int(11) DEFAULT NULL,
`naam` varchar(64) NOT NULL,
`onbelaste_onkosten` text,
`facilitaire_diensten` text,
`percentage` text,
`btwhoog` text,
`btwlaag` text,
`loonbelasting` text,
`zfwpremie` text,
`geforceerd` enum('-','yes','no') NOT NULL DEFAULT '-',
`soort` enum('belastingen','facilitaire_diensten','dagdeel','heffing','zvw','tarieven','diensten','baden','dranken','entree') NOT NULL,
`omschrijving` text,
`aantal` text,
`bedrag` text,
`btwhoogte` enum('-','btwhoog','btwlaag') NOT NULL DEFAULT '-',
`deel_user` text,
`titel` text,
`datum_invoer` datetime DEFAULT NULL,
`invoer_over` date DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
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, 162348, 26, 'naam2', '20', '', '40', '21', '9', '8', '5.70', '-', 'belastingen', '-', '-', '-', '-', '-', NULL, '2020-03-14 01:24:03', '2020-03-13'),
(43, 162349, 26, 'naam2', '-', '-', '-', '-', '-', '-', '-', '-', 'tarieven', '30', '1', '70', 'btwhoog', '-', '', '2020-03-14 01:24:03', '2020-03-13'),
(43, 162350, 26, 'naam2', '-', '-', '-', '-', '-', '-', '-', '-', 'tarieven', '45', '1', '100', 'btwhoog', '-', '', '2020-03-14 01:24:03', '2020-03-13'),
(43, 162351, 26, 'naam2', '-', '-', '-', '-', '-', '-', '-', '-', 'tarieven', '60', '1', '120', 'btwhoog', '-', '', '2020-03-14 01:24:03', '2020-03-13');
het deel van een pagina
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
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
$sql = "SELECT * FROM systeem_invoertotaal WHERE account='$member[group_account]' AND id_user='$id' AND soort='tarieven' AND deel_user <1 AND invoer_over='$_GET[datum]' ORDER BY omschrijving DESC";
$resultaatbemiddeling = $db->sql_query($sql) or die(mysqli_error());
//Deze 0 bedragen zijn de totale optellingen die later ook naar de cache worden gestuurd//
$eindtotaalbemiddelingafgerond = '0';
$eindtotaalbemiddelingbtwafgerond = '0';
$eindtotaalbemiddelingexbtwafgerond = '0';
$eindtotaalminutenbemiddeling = '0';
//Deze 0 bedragen zijn de totale optellingen die later naar de cache worden gestuurd//
while($omzetbemiddeling = mysqli_fetch_assoc($resultaatbemiddeling))
{
$btw = mysqli_fetch_array($db->sql_query("SELECT * FROM systeem_invoertotaal WHERE account='$member[group_account]' AND id_user='$id' AND soort='belastingen' AND invoer_over='$_GET[datum]';"));
$totaalbtwbemiddeling = $btw[btwhoog] + 100;
$minutenbemiddeling = $omzetbemiddeling[aantal] * $omzetbemiddeling[omschrijving];
$totaalbemiddelingafgerond = $omzetbemiddeling[aantal] * $omzetbemiddeling[bedrag];
$btwtotaalbemiddeling = $totaalbemiddelingafgerond / $totaalbtwbemiddeling * $btw[btwhoog];
$btwtotaalbemiddeling_3cijfers = round($btwtotaalbemiddeling, 3);
$btwtotaalbemiddelingafgerond = round($btwtotaalbemiddeling_3cijfers, 2);
$extotaalbemiddelingafgerond = $totaalbemiddelingafgerond - $btwtotaalbemiddelingafgerond;
$eindtotaalbemiddelingafgerond = $eindtotaalbemiddelingafgerond + $totaalbemiddelingafgerond;
$eindtotaalbemiddelingbtwafgerond = $eindtotaalbemiddelingbtwafgerond + $btwtotaalbemiddelingafgerond;
$eindtotaalbemiddelingexbtwafgerond = $eindtotaalbemiddelingexbtwafgerond + $extotaalbemiddelingafgerond;
$eindtotaalminutenbemiddeling = $eindtotaalminutenbemiddeling + $minutenbemiddeling;
$bemiddelinglinks .= '<tr>
<td align="left" valign="top" width="220"><font color="#000000" >Omzet standaard dienst '.$omzetbemiddeling[omschrijving].' min</font></td>
<td align="right" valign="top" width="85"><font color="#000000" >€'.number_format($totaalbemiddelingafgerond, 2, ',', '').'</font></td>
<td valign="top" width="60"> </td>
</tr>';
// dit bemiddelingrechts deel wordt ergens ander op de pagina opgevraagd
$bemiddelingrechts .= '<tr>
<td style="border-collapse: collapse; border:1px solid #666666;"><font color="#000000">'.$omzetbemiddeling[aantal].'</font></td>
<td style="border-collapse: collapse; border:1px solid #666666;"><font color="#000000">'.$omzetbemiddeling[omschrijving].' minuten</font></td>
<td align="right" style="border-collapse: collapse; border:1px solid #666666;"><font color="#000000">€'.number_format($omzetbemiddeling[bedrag], 2, ',', '').'</font></td>
<td align="right" style="border-collapse: collapse; border:1px solid #666666;"><font color="#000000">€'.number_format($totaalbemiddelingafgerond, 2, ',', '').'</font></td>
<td align="right" style="border-collapse: collapse; border:1px solid #666666;"><font color="#000000">€'.number_format($btwtotaalbemiddelingafgerond, 2, ',', '').'</font></td>
<td align="right" style="border-collapse: collapse; border:1px solid #666666;"><font color="#000000">€'.number_format($extotaalbemiddelingafgerond, 2, ',', '').'</font></td>
</tr>';
}
}
if ($eindtotaalbemiddelingafgerond != 0) {
echo '<tr style="border-collapse: collapse; border:1px solid #000000;">
<td class="kleur" align="left" valign="middle" height="" style="border-collapse: collapse; background-color: #99ff33" colspan="3"><font style="font-weight: bold" color="#000000">Omzet dienstverlening incl</font></td></tr>';
echo ''.htmlspecialchars_decode($bemiddelinglinks).'';
echo '<tr>
<td align="left" valign="top" width="220">
<font color="#000000" ><b>Subtotaal standaard diensten</b></font></td>
<td valign="top" width="85" align="right" style="border-color: #000000; border-top-style: solid; border-top-width: 1px"><font color="#000000" ><b>€'.number_format($eindtotaalbemiddelingafgerond, 2, ',', '').'</b></font></td>
<td valign="top" width="60" align="right"><font color="#000000" ><b>€'.number_format($eindtotaalbemiddelingafgerond, 2, ',', '').'</font></b></td>
</tr>
<tr>
<td valign="top" width="220"> </td>
<td valign="top"> </td>
<td valign="top" width="60" align="right"> </td>
</tr>';
}
$resultaatbemiddeling = $db->sql_query($sql) or die(mysqli_error());
//Deze 0 bedragen zijn de totale optellingen die later ook naar de cache worden gestuurd//
$eindtotaalbemiddelingafgerond = '0';
$eindtotaalbemiddelingbtwafgerond = '0';
$eindtotaalbemiddelingexbtwafgerond = '0';
$eindtotaalminutenbemiddeling = '0';
//Deze 0 bedragen zijn de totale optellingen die later naar de cache worden gestuurd//
while($omzetbemiddeling = mysqli_fetch_assoc($resultaatbemiddeling))
{
$btw = mysqli_fetch_array($db->sql_query("SELECT * FROM systeem_invoertotaal WHERE account='$member[group_account]' AND id_user='$id' AND soort='belastingen' AND invoer_over='$_GET[datum]';"));
$totaalbtwbemiddeling = $btw[btwhoog] + 100;
$minutenbemiddeling = $omzetbemiddeling[aantal] * $omzetbemiddeling[omschrijving];
$totaalbemiddelingafgerond = $omzetbemiddeling[aantal] * $omzetbemiddeling[bedrag];
$btwtotaalbemiddeling = $totaalbemiddelingafgerond / $totaalbtwbemiddeling * $btw[btwhoog];
$btwtotaalbemiddeling_3cijfers = round($btwtotaalbemiddeling, 3);
$btwtotaalbemiddelingafgerond = round($btwtotaalbemiddeling_3cijfers, 2);
$extotaalbemiddelingafgerond = $totaalbemiddelingafgerond - $btwtotaalbemiddelingafgerond;
$eindtotaalbemiddelingafgerond = $eindtotaalbemiddelingafgerond + $totaalbemiddelingafgerond;
$eindtotaalbemiddelingbtwafgerond = $eindtotaalbemiddelingbtwafgerond + $btwtotaalbemiddelingafgerond;
$eindtotaalbemiddelingexbtwafgerond = $eindtotaalbemiddelingexbtwafgerond + $extotaalbemiddelingafgerond;
$eindtotaalminutenbemiddeling = $eindtotaalminutenbemiddeling + $minutenbemiddeling;
$bemiddelinglinks .= '<tr>
<td align="left" valign="top" width="220"><font color="#000000" >Omzet standaard dienst '.$omzetbemiddeling[omschrijving].' min</font></td>
<td align="right" valign="top" width="85"><font color="#000000" >€'.number_format($totaalbemiddelingafgerond, 2, ',', '').'</font></td>
<td valign="top" width="60"> </td>
</tr>';
// dit bemiddelingrechts deel wordt ergens ander op de pagina opgevraagd
$bemiddelingrechts .= '<tr>
<td style="border-collapse: collapse; border:1px solid #666666;"><font color="#000000">'.$omzetbemiddeling[aantal].'</font></td>
<td style="border-collapse: collapse; border:1px solid #666666;"><font color="#000000">'.$omzetbemiddeling[omschrijving].' minuten</font></td>
<td align="right" style="border-collapse: collapse; border:1px solid #666666;"><font color="#000000">€'.number_format($omzetbemiddeling[bedrag], 2, ',', '').'</font></td>
<td align="right" style="border-collapse: collapse; border:1px solid #666666;"><font color="#000000">€'.number_format($totaalbemiddelingafgerond, 2, ',', '').'</font></td>
<td align="right" style="border-collapse: collapse; border:1px solid #666666;"><font color="#000000">€'.number_format($btwtotaalbemiddelingafgerond, 2, ',', '').'</font></td>
<td align="right" style="border-collapse: collapse; border:1px solid #666666;"><font color="#000000">€'.number_format($extotaalbemiddelingafgerond, 2, ',', '').'</font></td>
</tr>';
}
}
if ($eindtotaalbemiddelingafgerond != 0) {
echo '<tr style="border-collapse: collapse; border:1px solid #000000;">
<td class="kleur" align="left" valign="middle" height="" style="border-collapse: collapse; background-color: #99ff33" colspan="3"><font style="font-weight: bold" color="#000000">Omzet dienstverlening incl</font></td></tr>';
echo ''.htmlspecialchars_decode($bemiddelinglinks).'';
echo '<tr>
<td align="left" valign="top" width="220">
<font color="#000000" ><b>Subtotaal standaard diensten</b></font></td>
<td valign="top" width="85" align="right" style="border-color: #000000; border-top-style: solid; border-top-width: 1px"><font color="#000000" ><b>€'.number_format($eindtotaalbemiddelingafgerond, 2, ',', '').'</b></font></td>
<td valign="top" width="60" align="right"><font color="#000000" ><b>€'.number_format($eindtotaalbemiddelingafgerond, 2, ',', '').'</font></b></td>
</tr>
<tr>
<td valign="top" width="220"> </td>
<td valign="top"> </td>
<td valign="top" width="60" align="right"> </td>
</tr>';
}
Code (php)
als je straks vanzelf 3000 netto per maand gaat binnen krijgen, dan moet je er ook wat voor doen.
Helaas gaat dat waarschijnlijk niet lukken met de benadering "ik wil niet zelf wat leren maar als iemand mij gratis letter voor letter voordoet wat ik moet typen, dan komt het vanzelf goed."
Maar bouw lekker verder aan je flatgebouw, ook al roept iedereen dat je fundament niet goed is.
Beetje cache tegen het beton smeren en dan kunnen er wel wat verdiepingen bij.
Nogmaals (en laatstmaals) laat het huidige systeem doorpruttelen en begin opnieuw ernaast met een goede opbouw.
Als dat opweg is, converteer je bestaande data en klanten naar een nieuw platform.
(en nog een tip: is zie hierboven dat je rekent met afronde bedragen: dat afronden doe je pas in de allerlaatste stap en niet afgerond1 x afgerond2. Dat levert je verschillen op aan het einde van de rit.)
over en uit.
Gewijzigd op 18/03/2020 17:21:42 door - Ariën -
kijk daar heb ik iets aan.!
niet voor alles, Maar op manier hoe jij dat nu neerzet zou ik mijn eindtotalen op deze manier kunnen doen, ik zal google even verder uitpluizen enz en die linken die je me gaf, met dit goede voorbeeld als basis
Ivo P
mijn systeem wordt langzaam geupdate en ik zal ook zekker heel veel gaan bijleren
maar ik moet soms snel dingen doen
ik heb nu dus even niet de kennis om dit hele script te herschrijven
en als ik het geld heb zal ik ook zeker iemand erbij nemen met de nodige kennis
afronden doe je pas in de allerlaatste stap ...
ja dat kan echter zijn mijn berekeningen iets complexer en belasting heeft mij gevraagd het over andere tak te gooien waardoor het op cent na klopt
hoe en waarom ge ik niet uitleggen
kan je vinden op afrondingsverschillen van belastingdienst.nl
Toevoeging op 18/03/2020 18:33:55:
- Ariën - op 18/03/2020 17:10:08:
Code (php)
ik was hier net mee aan het klooien en ook al zal het heel simpel zijn deze noob snapt het natuurlijk niet :P
maar zoals jij het hebt gedaan is ongeveer zoiets als
$bedrag = [];
$bedrag['eindtotaal'] = 86;
$bedrag['eindtotaal'] = 72;
$bedrag['eindtotaal'] = 82;
$totaal = array_sum($bedrag['eindtotaal']);
echo $totaal;
die multi kon ik niet veel mee in mijn berekeningen
en ik heb
$totaal = '0';
$bedrag = 86;
$bedrag = 72;
$bedrag = 82;
//bedragen staan in een while loop
$totaal += $bedrag;
echo $totaal;
dus ik zie geen voordeel of echt een groot verschil
maar misschien zie ik het gewoon niet.
Je kan zoals ik al eerder uitlegde hele samenstellingen van gegroepeerde data benaderen, en dat kan niet (eenvoudig) met normale variabelen.
Maar als je zulks voorbeeld nog fout maakt, dan hoop ik eigenlijk van harte dat jouw belastingzaken goed kloppen en dat je het dubbel gecontroleerd hebt. Ook snap ik niet waarom 0 opeens een string is?
Ik denk dat je misschien even goed de basics van PHP moet leren voor een goede swung.
Quote:
//bedragen staan in een while loop
het antwoordt is dus alles bij elkaar opgeteld net zoals bij jouw code
die 0 moet ik doen om ervoor te zorgen dat er bij een volgende dag in een kalender functie
geen bedragen worden meegenomen
in praktijk, en dit zou jij moeten weten,
moet je voor een loop eerst 0 zetten. Als je met nieuwe bedragen wilt beginnen
In de loop de code / berekening.
En erna een optelling van de gehele loop met dus als start, die 0
indien er niks een dag erna te berekenen valt komt er 0 enz enz
doe ik die 0 niet dan komt het laatste berekende bedrag steeds weer terug waar door ik dus hele foute optel sommen krijg
Gewijzigd op 18/03/2020 19:15:54 door - Ariën -
exuses dat had inderdaad niet gehoeven
Toevoeging op 18/03/2020 19:18:18:
ik heb soms nog wel eens de neiging quotes te gebruiken in mijn codes waar dit niet nodig is
dit komt omdat ik jaren heb gewerk met oude php versies en er toen niet zo op werd gelet