🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Problem z właściwym sumowaniem

#231100
From: Dariusz Budyta
Date: Sun, 12 Jul 2015 19:50
54 lines
3573 bytes
W dniu niedziela, 12 lipca 2015 21:02:15 UTC+2 użytkownik Borys Pogoreło napisał:
> 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

Co powinienem podać - żeby dało się to uratować?
Technical Details
Message-ID: <7b7ee7cb-1f21-413b-83f4-94f6a279b805@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.supermedia.pl!news.nask.pl!news.nask.org.pl!newsfeed.pionier.net.pl!news.glorb.com!pg9no170284igb.0!news-out.google.com!4ni80126qgh.1!nntp.google.com!e109no472303qge.1!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
References: <9ecf2928-3e4b-4d12-8383-9217f3a32d17@googlegroups.com> <ro5zd7pcdi70.3ixvest5m2xc.dlg@40tude.net>

Show Full Headers
Complete Article Headers
X-Received: by 10.50.80.83 with SMTP id p19mr13209059igx.12.1436730604239;        Sun, 12 Jul 2015 12:50:04 -0700 (PDT)
X-Received: by 10.140.32.74 with SMTP id g68mr450663qgg.37.1436730604118; Sun, 12 Jul 2015 12:50:04 -0700 (PDT)
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.supermedia.pl!news.nask.pl!news.nask.org.pl!newsfeed.pionier.net.pl!news.glorb.com!pg9no170284igb.0!news-out.google.com!4ni80126qgh.1!nntp.google.com!e109no472303qge.1!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.lang.php
Date: Sun, 12 Jul 2015 12:50:03 -0700 (PDT)
In-Reply-To: <ro5zd7pcdi70.3ixvest5m2xc.dlg@40tude.net>
Complaints-To: groups-abuse@google.com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=89.70.25.54; posting-account=uubveQoAAAAyhe8ojI_0uIXBprAYrcIW
NNTP-Posting-Host: 89.70.25.54
References: <9ecf2928-3e4b-4d12-8383-9217f3a32d17@googlegroups.com> <ro5zd7pcdi70.3ixvest5m2xc.dlg@40tude.net>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <7b7ee7cb-1f21-413b-83f4-94f6a279b805@googlegroups.com>
Subject: Re: Problem z właściwym sumowaniem
From: Dariusz Budyta <dariusz.budyta@gmail.com>
Injection-Date: Sun, 12 Jul 2015 19:50:04 +0000
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit