Article View: pl.comp.lang.php
Article #231094Re: Problem z właściwym sumowaniem
From: Dariusz Budyta
Date: Sun, 12 Jul 2015 18:57
Date: Sun, 12 Jul 2015 18:57
306 lines
11383 bytes
11383 bytes
W dniu niedziela, 12 lipca 2015 18:27:21 UTC+2 użytkownik Dariusz Budyta napisał:
> Witam,
> 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?
>
> Może ktoś mnie trochę wspomoże co robię źle?
>
> <?php
>
> require_once("dompdf/dompdf_config.inc.php");
>
> require_once('database.php');
> require_once('session.php');
> require_once('common.php');
>
> if(isset($_SESSION['idadministracja']))
> $idadministracja = $_SESSION['idadministracja'];
> else
> $idadministracja = null;
>
> $rodzaj_dokumentu = '';
> $typ_dokumentu = '';
> $md_nazwa = '';
> $md_nip = '';
> $md_ulica = '';
> $md_miejscowosc = '';
> $md_kod_pocztowy = '';
> $md_telefon = '';
> $kl_nazwa = '';
> $kl_nip = '';
> $kl_ulica = '';
> $kl_miejscowosc = '';
> $kl_kod_pocztowy = '';
> $kl_telefon = '';
> $data_wystawienia = '';
> $data_sprzedazy = '';
> $termin_zaplaty = '';
> $zaplacono = '';
> $slownie = '';
> $waluta = '';
> $platnosc = '';
> $uwagi = '';
> $pozycje = 1;
> $numer_dokumentu = '';
> $numer_konta = '';
> $nazwa_banku = '';
> $pozycje_buf = '';
> $suma = '';
> $sbrutto ='';
> $pozostalo = '';
> $miejsce_wystawienia = '';
> $duplikat = '';
> $dzis = '';
>
> $print_file = 'faktura.html';
> $rachunek = false;
>
> if(isset($_GET['nf']))
> {
> $nf = $_GET['nf'];
>
> $ret = $db->Query('select N_Kier from import_faktury where nf=\''.$nf.'\'');
>
> $n_kier = $ret['N_Kier'];
> $ret;
>
> if($n_kier==null)
> {
> $ret = $db->Query('select *,
> (select round(sum(netto)*(100+svat))/100 from import_pozycje where nf=import_faktury.nf) as suma,
> DATE_FORMAT(DATE_ADD(dw, INTERVAL 7 DAY), \'%Y-%m-%d\') as tz
> from import_faktury where nf=\''.$nf.'\'');
> }
> else
> {
> $ret = $db->Query('select *,
> (select sum(netto) from import_pozycje where nf=import_faktury.nf) as suma,
> DATE_FORMAT(DATE_ADD(dw, INTERVAL 7 DAY), \'%Y-%m-%d\') as tz
> from import_faktury where nf=\''.$nf.'\'');
> }
>
> if($n_kier==null)
> {
> $md_nazwa = 'Zrzeszenie Transportu Prywatnego m.st. Warszawy';
> $md_nip = $ret['wnip'];
> $md_ulica = 'Al. Solidarności 104';
> $md_miejscowosc = 'Warszawa';
> $md_kod_pocztowy = '01-016';
> $md_telefon = '';
> $kl_nazwa = $ret['nazwa'];
> $kl_nip = $ret['onip'];
> $kl_ulica = $ret['fadres'];
> $kl_miejscowosc = $ret['fmiasto'];
> $kl_kod_pocztowy = $ret['fkod'];
> $data_wystawienia = $ret['dw'];
> $data_sprzedazy = $ret['ds'];
> $termin_zaplaty = $ret['tz'];
> $zaplacono = 0;
> require_once('cslownie.php');
> $s = new cSlownie($ret['suma']);
> $slownie = $s->slownie;
> $waluta = 'PLN';
> $platnosc = $ret['sz'];
> $uwagi = $ret['info'];
> $numer_dokumentu = $ret['nf'];
> $numer_konta = '52 1540 1157 2001 6614 0982 0001';
> $suma = $ret['suma'];
> $sbrutto = 0;
> $pozostalo = 0;
> $nazwa_banku = 'BOŚ S.A. II/O w Warszawie';
> $miejsce_wystawienia = 'Warszawa';
> }
> else
> {
> $md = $db->Query('select * from user where nip=\''.$ret['onip'].'\'');
>
> $print_file = 'fakturak.html';
> $kl_nazwa = 'Zrzeszenie Transportu Prywatnego m.st. Warszawy';
> $kl_nip = $ret['onip'];
> $kl_ulica = 'Al. Solidarności 104';
> $kl_miejscowosc = 'Warszawa';
> $kl_kod_pocztowy = '01-016';
> $kl_telefon = '';
> $md_nazwa = $md['nazwa'];
> $md_nip = $md['nip'];
> $md_ulica = $md['ulica'];
> $md_miejscowosc = $md['miejscowosc'];
> $md_kod_pocztowy = $ret['fkod'];
> $data_wystawienia = $ret['dw'];
> $data_sprzedazy = $ret['ds'];
> $termin_zaplaty = $ret['tz'];
> $zaplacono = 0;
> require_once('cslownie.php');
> $s = new cSlownie($ret['suma']);
> $slownie = $s->slownie;
> $waluta = 'PLN';
> //$platnosc = 'Przelew 7 dni';
> $uwagi = $ret['info'];
> $numer_dokumentu = $ret['nf'];
> //$numer_konta = '52 1540 1157 2001 6614 0982 0001';
> $suma = $ret['suma'];
> $pozostalo = 0;
> //$nazwa_banku = 'BOŚ S.A. II/O w Warszawie';
> $miejsce_wystawienia = 'Warszawa';
> }
>
> $ret = $db->Query('select DATE_FORMAT(now(), \'%Y-%m-%d\') as dzis');
> $dzis = $ret['dzis'];
>
> $pozycje_buf = '';
>
> $ret = $db->SQL('select *,
> (round((netto)*100)/100) as n
> from import_pozycje where nf=\''.$nf.'\'');
> $numer = 0;
> foreach($ret as $r)
> {
> $numer++;
> $dzial = $r['dzial'];
> $nazwa = $r['usl'];
> $pkwiu = '';//$r['pkwiu'];
> $ilosc = $r['ilosc'];
> $jm = 'szt';//$r['jm'];
> $_vat = $r['svat'];
> $vat = (float)$_vat;
> $wartosc_netto = $r['n'];
> $kwota_vat = 0;
> $wartosc_brutto = 0;
> $sbrutto = sum($wartosc_brutto);
>
> if($n_kier==null)
> {
> $kwota_vat = $wartosc_netto*($vat/100);
> $wartosc_brutto = $wartosc_netto+$kwota_vat;
> $_vat = $_vat.' %';
> }
> else
> {
> $kwota_vat = ($wartosc_netto/($vat+100))*$vat;
> $wartosc_brutto = $wartosc_netto;
> $wartosc_netto = ($wartosc_netto/($vat+100))*100;
> $_vat = 'ZW';
> }
>
> if(($vat==0)&&($n_kier!=null))
> {
> $rachunek = true;
> $pozycje_buf .= '<tr>
> <td style="text-align: center">'.$numer.'</td>
> <td>'.$dzial.'</td>
> <td>'.$nazwa.'</td>
> <td style="text-align: center">'.$ilosc.'</td>
> <td style="text-align: center">'.$jm.'</td>
> <td class="change_order_total_col">'.round00($wartosc_brutto).'</td>
> </tr>';
> }
> else
> {
> $pozycje_buf .= '<tr>
> <td style="text-align: center">'.$numer.'</td>
> <td>'.$dzial.'</td>
> <td>'.$nazwa.'</td>
> <td style="text-align: center">'.$ilosc.'</td>
> <td style="text-align: center">'.$jm.'</td>
> <td style="text-align: right;">'.round00($wartosc_netto).'</td>
> <td style="text-align: center;">'.$_vat.'</td>
> <td style="text-align: right;">'.round00($kwota_vat).'</td>
> <td class="change_order_total_col">'.round00($wartosc_brutto).'</td>
> </tr>';
> }
> }
> }
>
> if($rachunek)
> $print_file = 'rachunekk.html';
>
> $buf = '';
> $chunk = (1 << 21);
> $fh = fopen($print_file, 'r+');
> while(!feof($fh))
> {
> $buf = fread($fh, $chunk);
> }
> fclose($fh);
>
> $buf = str_replace('[md_nazwa]', $md_nazwa, $buf);
> $buf = str_replace('[md_nip]', $md_nip, $buf);
> $buf = str_replace('[md_ulica]', $md_ulica, $buf);
> $buf = str_replace('[md_miejscowosc]', $md_miejscowosc, $buf);
> $buf = str_replace('[md_kod_pocztowy]', $md_kod_pocztowy, $buf);
> $buf = str_replace('[md_telefon]', 'Telefon: '.$md_telefon, $buf);
> $buf = str_replace('[kl_nazwa]', $kl_nazwa, $buf);
> $buf = str_replace('[kl_nip]', $kl_nip, $buf);
> $buf = str_replace('[kl_ulica]', $kl_ulica, $buf);
> $buf = str_replace('[kl_miejscowosc]', $kl_miejscowosc, $buf);
> $buf = str_replace('[kl_kod_pocztowy]', $kl_kod_pocztowy, $buf);
> $buf = str_replace('[kl_telefon]', 'Telefon: '.$kl_telefon, $buf);
> $buf = str_replace('[typ_dokumentu]', $typ_dokumentu, $buf);
> $buf = str_replace('[numer_dokumentu]', $numer_dokumentu, $buf);
> $buf = str_replace('[data_wystawienia]', $data_wystawienia, $buf);
> $buf = str_replace('[data_sprzedazy]', $data_sprzedazy, $buf);
> $buf = str_replace('[termin_zaplaty]', $termin_zaplaty, $buf);
> $buf = str_replace('[platnosc]', $platnosc, $buf);
> $buf = str_replace('[numer_konta]', $numer_konta, $buf);
> $buf = str_replace('[zaplacono]', round00($zaplacono), $buf);
> $buf = str_replace('[waluta]', $waluta, $buf);
> $buf = str_replace('[slownie]', $slownie, $buf);
> if($uwagi!='')
> $buf = str_replace('[uwagi]', '<table style="padding: 10px; width: 100%;border: 1px solid rgb(0, 0, 0);font-size: 8pt;" class="header">
> <tr>
> <td>Uwagi: '.$uwagi.'</td>
> </tr>
> </table><br/>', $buf);
> else
> $buf = str_replace('[uwagi]', '', $buf);
> $buf = str_replace('[pozycje]', $pozycje_buf, $buf);
> $buf = str_replace('[suma]', round00($suma), $buf);
> $buf = str_replace('[pozostalo]', $pozostalo, $buf);
> $buf = str_replace('[nazwa_banku]', $nazwa_banku, $buf);
> $buf = str_replace('[miejsce_wystawienia]', $miejsce_wystawienia, $buf);
> if(isset($_GET['duplikat'])&&($_GET['duplikat']=='true'))
> {
> $buf = str_replace('[duplikat]', '<table style="width: 100%;" class="header">
> <tr>
> <td style="padding: 10px; border: 1px solid rgb(0, 0, 0);width: 33%;font-size: 8pt;">
> Duplikat faktury z dnia: <b>'.$dzis.'</b>
> </td>
> </tr>
> </table>', $buf);
> }
> else
> $buf = str_replace('[duplikat]', '', $buf);
>
> $dompdf = new DOMPDF();
> $dompdf->load_html($buf, 'UTF-8');
> $dompdf->render();
>
> $a = false;
> if(isset($_GET['save'])&&($_GET['save']=='true'))
> $a = true;
>
> $ret = $db->Query('select onip from import_faktury where nf=\''.$_GET['nf'].'\'');
> $ret = $db->Query('select iduser from user where nip=\''.$ret['onip'].'\'');
> $idu = $ret['iduser'];
>
> if(isset($_GET['nf'])&&($iduser==$idu))
> {
> if(isset($_GET['save'])&&($_GET['save']=='true'))
> {
> $db->Exec('update import_faktury set data_pobrania=now(), pobrano=pobrano+1 where nf=\''.$_GET['nf'].'\'');
> $db->Exec('update user set data_pobrania=now(), pobral=pobral+1 where iduser='.$iduser);
> }
> else
> {
> $db->Exec('update import_faktury set data_pobrania=now(), wydrukowano=wydrukowano+1 where nf=\''.$_GET['nf'].'\'');
> $db->Exec('update user set data_pobrania=now(), wydrukowal=wydrukowal+1 where iduser='.$iduser);
> }
> }
>
> if(($iduser==$idu)||(isset($idadministracja)&&($idadministracja!=null)))
> $dompdf->stream("dompdf_out.pdf", array("Attachment" => $a));
>
> ?>
Zastosowanie:
$buf = str_replace('[suma]', round00($wartosc_brutto), $buf);
zwrociło mi ostatnią wartość brutto - zależy mi na tym aby zwracało sumę tych wartośći brutto
Technical Details
Message-ID:
<4c9b067d-a24e-46e3-ba29-494470a27ba7@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!newsfeed.pionier.net.pl!news.glorb.com!pg9no159855igb.0!news-out.google.com!w15ni32543qge.0!nntp.google.com!z61no522113qge.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mailReferences:
<9ecf2928-3e4b-4d12-8383-9217f3a32d17@googlegroups.com>Show Full Headers
Complete Article Headers
X-Received: by 10.182.91.6 with SMTP id ca6mr42201500obb.29.1436727477309; Sun, 12 Jul 2015 11:57:57 -0700 (PDT) X-Received: by 10.140.98.117 with SMTP id n108mr76659qge.23.1436727477201; Sun, 12 Jul 2015 11:57:57 -0700 (PDT) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!newsfeed.pionier.net.pl!news.glorb.com!pg9no159855igb.0!news-out.google.com!w15ni32543qge.0!nntp.google.com!z61no522113qge.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.lang.php Date: Sun, 12 Jul 2015 11:57:57 -0700 (PDT) In-Reply-To: <9ecf2928-3e4b-4d12-8383-9217f3a32d17@googlegroups.com> 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> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <4c9b067d-a24e-46e3-ba29-494470a27ba7@googlegroups.com> Subject: Re: Problem z właściwym sumowaniem From: Dariusz Budyta <dariusz.budyta@gmail.com> Injection-Date: Sun, 12 Jul 2015 18:57:57 +0000 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit