Article View: pl.comp.lang.php
Article #231100Re: Problem z właściwym sumowaniem
From: Dariusz Budyta
Date: Sun, 12 Jul 2015 19:50
Date: Sun, 12 Jul 2015 19:50
54 lines
3573 bytes
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-mailReferences:
<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