Article View: pl.comp.lang.php
Article #231093Problem z właściwym sumowaniem
From: Dariusz Budyta
Date: Sun, 12 Jul 2015 16:27
Date: Sun, 12 Jul 2015 16:27
301 lines
10470 bytes
10470 bytes
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));
?>
Technical Details
Message-ID:
<9ecf2928-3e4b-4d12-8383-9217f3a32d17@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin2!goblin.stu.neva.ru!newsfeed.xs4all.nl!newsfeed8.news.xs4all.nl!newspeer1.nac.net!border2.nntp.dca1.giganews.com!nntp.giganews.com!e109no438467qge.1!news-out.google.com!w15ni32517qge.0!nntp.google.com!z61no496147qge.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mailShow Full Headers
Complete Article Headers
X-Received: by 10.13.247.133 with SMTP id h127mr30608748ywf.2.1436718439305; Sun, 12 Jul 2015 09:27:19 -0700 (PDT) X-Received: by 10.140.46.102 with SMTP id j93mr432415qga.4.1436718439257; Sun, 12 Jul 2015 09:27:19 -0700 (PDT) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin2!goblin.stu.neva.ru!newsfeed.xs4all.nl!newsfeed8.news.xs4all.nl!newspeer1.nac.net!border2.nntp.dca1.giganews.com!nntp.giganews.com!e109no438467qge.1!news-out.google.com!w15ni32517qge.0!nntp.google.com!z61no496147qge.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.lang.php Date: Sun, 12 Jul 2015 09:27:19 -0700 (PDT) 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 User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <9ecf2928-3e4b-4d12-8383-9217f3a32d17@googlegroups.com> Subject: Problem z właściwym sumowaniem From: Dariusz Budyta <dariusz.budyta@gmail.com> Injection-Date: Sun, 12 Jul 2015 16:27:19 +0000 Lines: 317 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit