Article View: pl.comp.lang.php
Article #231096Re: Problem z właściwym sumowaniem
From: Borys Pogoreło
Date: Sun, 12 Jul 2015 19:02
Date: Sun, 12 Jul 2015 19:02
51 lines
2849 bytes
2849 bytes
Dnia Sun, 12 Jul 2015 09:27:19 -0700 (PDT), Dariusz Budyta napisał(a):
> Suma na fakturze liczy dobrze jak jest jedna stawka VAT, jak jest ich
> więcej liczy mi z taką stawką jaka jest na pierwszej pozycji faktury,
> jestem jaszcze trochę cienki ale staram się doczytać - tyle że skończyły
> mi się pomysły?
Zacznijmy od tego, że ten przykład to jest jakaś masakra... Wymieszany kod
z prezentacją, nieczytelny układ i nazwy zmiennych. Gdybyś to sprowadził do
czytelniejszej postaci, to znacznie łatwiej by Ci było znaleźć błąd.
A tych błędów tu jest sporo:
> $ret = $db->Query('select N_Kier from import_faktury where nf=\''.$nf.'\'');
Książkowy przykład SQL injection. To akurat "tylko" select, ale w żaden
sposób nie zabezpieczasz zapytań przed groźną zawartością.
> $nf = $_GET['nf'];
> $n_kier = $ret['N_Kier'];
> $ret;
To jest przykład jak nie nazywać zmiennych. Jak ktoś ma pomóc, jeśli widzi
jakieś $n_kier? Co to jest n_kier? Co oznacza $nf? Żeby chociaż tam były
jakieś komentarze. Czy dobrze zgaduję, że n_kier to faktura wystawiana od
cen netto, a nf to numer faktury?
> $ret = $db->Query('select *,
> (select round(sum(netto)*(100+svat))/100 from import_pozycje where nf=import_faktury.nf) as suma,
Trzymasz kwoty jako float w bazie, że musisz kombinować z zaokrągleniami?
Od tego masz typ "decimal". Prędzej czy później zniknie Ci jakiś grosz i
będzie problem.
> $md_nazwa = 'Zrzeszenie Transportu Prywatnego m.st. Warszawy';
Nie wiem czy klient będzie zadowolony z takiej publikacji...
> $_vat = $r['svat'];
> $vat = (float)$_vat;
> $_vat = $_vat.' %';
Kolejny dobry przykład jak nie nazywać zmiennych. Jak osoba z zewnątrz ma
zgadnąć, co autor miał na myśli i czym się różnią te VAT-y?
I gdzie jest tabelka z sumą kwot VAT w rozbiciu na stawki? Bez tego
wystawiasz fakturę niezgodnie z ustawą.
--
Borys Pogoreło
borys(#)leszno,edu,pl
Technical Details
Message-ID:
<ro5zd7pcdi70.3ixvest5m2xc.dlg@40tude.net>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.promontel.net.pl!not-for-mailReferences:
<9ecf2928-3e4b-4d12-8383-9217f3a32d17@googlegroups.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.promontel.net.pl!not-for-mail From: Borys Pogoreło <borys@pl.edu.leszno> Newsgroups: pl.comp.lang.php Subject: Re: Problem z właściwym sumowaniem Date: Sun, 12 Jul 2015 21:02:23 +0200 Organization: snafu Lines: 51 Message-ID: <ro5zd7pcdi70.3ixvest5m2xc.dlg@40tude.net> References: <9ecf2928-3e4b-4d12-8383-9217f3a32d17@googlegroups.com> NNTP-Posting-Host: bbh208.neoplus.adsl.tpnet.pl Mime-Version: 1.0 X-Trace: thunar.promontel.net.pl 1436727733 10790 83.27.197.208 (12 Jul 2015 19:02:13 GMT) X-Complaints-To: abuse@promontel.net.pl NNTP-Posting-Date: Sun, 12 Jul 2015 19:02:13 +0000 (UTC) User-Agent: 40tude_Dialog/2.0.14.1pl X-fnord: obey. Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit