🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.php
Article #231096

Re: Problem z właściwym sumowaniem

#231096
From: Borys Pogoreło
Date: Sun, 12 Jul 2015 19:02
51 lines
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-mail
References: <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