Witam, ponownie troche popracowałem nad moim problemem i pojawiły się nowe komplikacje z którymi nie mogę się uporać póki co.
//NALICZENIA
echo '<tr><td align="center" valign="top" nowrap>';
$zapytanie_naliczenia = "SELECT n.kwota, n.termin_platnosci, ns.nazwa, n.id_naliczenia, ns.procent FROM naliczenia n JOIN naliczenia_szablon ns ON (n.id_naliczenia_szablon=ns.id_naliczenia_szablon) WHERE n.id_uczen='".$_SESSION['id_uczen']."' AND ns.id_rok='".$_SESSION['rok_szkolny']."' ORDER BY n.termin_platnosci";
$wynik_naliczenia = mysql_query($zapytanie_naliczenia, $polaczenie);
$zapytanie_odsetki = "SELECT n.kwota, n.termin_platnosci, ns.nazwa, n.id_naliczenia, DATEDIFF(NOW() , n.termin_platnosci) AS iloscDniZwloki FROM naliczenia n JOIN naliczenia_szablon ns ON (n.id_naliczenia_szablon=ns.id_naliczenia_szablon) WHERE n.id_uczen='".$_SESSION['id_uczen']."' AND ns.id_rok='".$_SESSION['rok_szkolny']."' ORDER BY n.termin_platnosci";
$wynik_odsetki = mysql_query($zapytanie_odsetki, $polaczenie);
<td class="td_head2" >LP</td>
<td class="td_head">Nazwa</td>
<td class="td_head2">Termin<br><span style="font-size: 10px; font-weight: normal;">płatności</span></td>
<td class="td_head2">Kwota<br><span style="font-size: 10px; font-weight: normal;">do zapłaty</span></td>
<td class="td_head2">Stopa procentowa<br><span style="font-size: 10px; font-weight: normal;">za każdy dzień zwłoki</span></td>
<td class="td_head2">Odsetki<br><span style="font-size: 10px; font-weight: normal;">należne</span></td>
<td class="td_head2">Po<br><span style="font-size: 10px; font-weight: normal;">terminie</span></td>
<td class="td_head2"> </td></tr>';}
$licz++;
$naliczenia_razem += $wiersz_naliczenia[0];
if ($class=='td1') {$class='td2';} else {$class='td1';}
if (($suma_wplat < $naliczenia_razem) && (date(Ymd
) > (str_replace('-','',$wiersz_naliczenia[1
])*1
))) {$style=' style="color: red;"';} else {$style='';}
<td class="'.$class.'" '.$style.'>'.$licz.'</td>
<td class="'.$class.'" '.$style.'>'.wordwrap($wiersz_naliczenia[2], 25, "<br />\n").'</td> <td class="'.$class.'" '.$style.'>'.$wiersz_naliczenia[1].'</td>
<td class="'.$class.'" '.$style.'>'.number_format($wiersz_naliczenia[0], 2, ',', ' ').' zł</td> <td class="'.$class.'" '.$style.'>'.number_format($wiersz_naliczenia[4], 2, ',', ' ').' %</td> <td class="'.$class.'" '.$style.'>'.number_format($wiersz_naliczenia[0
]*$wiersz_naliczenia[4
]/100
*$wiersz_odsetki[4], 2, ',', ' ').' zł</td> <td class="'.$class.'" '.$style.'>'.number_format($wiersz_odsetki[4]).' Dni</td>
<td class="'.$class.'">';
if ($suma_wplat >= $naliczenia_razem) {
echo '<img src="img/ok.png" alt="" onMouseover="ddrivetip(\'Płatność uregulowana\',120)" onMouseout="hideddrivetip()">'; $suma_zaplaconych += $wiersz_naliczenia[0];
} else {
echo '<img src="img/delete_ico.png" alt="" onMouseover="ddrivetip(\'Niezapłacone\',120)" onMouseout="hideddrivetip()">'; echo ' <a href="http://'.$_SERVER['SERVER_NAME'].'/przelew.php?r=p&kwota='.$wiersz_naliczenia[0].'&tytulem='.$wiersz_naliczenia[2].' '.$wiersz_naliczenia[1].'" target="_new" class="bn"><img src="img/raport_ico.png" alt="" onMouseover="ddrivetip(\'Wygeneruj blankiet przelewu / wpłaty\',120)" onMouseout="hideddrivetip()"></a> '; if ($_SESSION['poziom_uprawnien']=='K') {
if (ID_PRZELEWY24
!= '') {echo '<a href="http://sklep.przelewy24.pl/zakup.php?z24_id_sprzedawcy='.ID_PRZELEWY24
.'&z24_kwota='.($wiersz_naliczenia[0]*100).'&z24_nazwa='.$wiersz_naliczenia[2].'&z24_return_url=https://www.example.pl/index.php?page=naliczenia_wplaty&tab=tab_czesne&wplacono_p24='.$wiersz_naliczenia[0].'&k24_nazwa='.$wiersz_uczen[0].' '.$wiersz_uczen[1].' (kod: '.$wiersz_uczen[2].')&k24_email='.$wiersz_uczen[4].'&k24_kod='.$wiersz_uczen[5].'&k24_miasto='.$wiersz_uczen[6].'&k24_ulica='.$wiersz_uczen[7].'" class="bn"><img src="img/przelewy24.png" alt="" onMouseover="ddrivetip(\'Płatności elektroniczne. Zapłać za pośrednictwem systemu Przelewy24.pl\',180)" onMouseout="hideddrivetip()"></a>';} }
$naliczenia_niezaplacone += $wiersz_naliczenia[0];
if (date(Ymd
) > (str_replace('-','',$wiersz_naliczenia[1
])*1
)) {$naliczenia_niezaplacone_uplynal += $wiersz_naliczenia[0
];} }
if ($_SESSION['poziom_uprawnien']=='O' || $_SESSION['poziom_uprawnien']=='A') {echo ' <a href="index.php?page=naliczenia_wplaty&act=edit_naliczenia&id='.$wiersz_naliczenia[3].'" style="border: none;" onMouseover="ddrivetip(\'Edytuj naliczenie\',100)" onMouseout="hideddrivetip()"><img src="img/edit_ico.png" alt=""></a> <a href="#" style="border: none;" onMouseover="ddrivetip(\'Usuń naliczenie\',100)" onMouseout="hideddrivetip()" onclick="DefuseNalicz(\''.$wiersz_naliczenia[3].'\');";><img src="img/trash_16.png" alt=""></a>';} echo '</td></tr>';
}
if ($naliczenia_razem>0
) {echo '<tr><td></td><td></td><td height="30" align="right" valign="bottom">Razem:</td><td align="center" valign="bottom"><strong>'.number_format($naliczenia_razem, 2, ',', ' ').' zł</strong></td></tr>';} if (mysql_num_rows($wynik_naliczenia)>0
) {echo '</table>';} else {echo '<br><br><strong>Nie znaleziono naliczeń</strong><br><br>';}
//WPŁATY
echo '<td align="center" valign="top">';
$zapytanie_wplaty = "SELECT kwota, data_wplaty, id_wplaty FROM wplaty WHERE id_uczen='".$_SESSION['id_uczen']."' AND data_wplaty>='".$wiersz_rok['data_rozp']."' AND data_wplaty<='".$wiersz_rok['data_zak']."' ORDER BY data_wplaty";
$wynik_wplaty = mysql_query($zapytanie_wplaty, $polaczenie); $licz=0;
if (mysql_num_rows($wynik_wplaty)>0
) {echo '<table width="100%"><tr><td class="td_head">LP</td><td class="td_head">Data</td><td class="td_head">Kwota<br><span style="font-size: 10px; font-weight: normal;">wpłaty</span></td>'; if ($_SESSION['poziom_uprawnien']=='O' || $_SESSION['poziom_uprawnien']=='A') {echo '<td class="td_head"></td>';} echo '</tr>';}
$licz++;
if ($class=='td1') {$class='td2';} else {$class='td1';}
echo '<tr><td class="'.$class.'">'.$licz.'</td><td class="'.$class.'">'.$wiersz_wplaty[1].'</td><td class="'.$class.'">'.number_format($wiersz_wplaty[0], 2, ',', ' ').' zł</td>'; if ($_SESSION['poziom_uprawnien']=='O' || $_SESSION['poziom_uprawnien']=='A') {echo '<td class="'.$class.'"><a href="index.php?page=naliczenia_wplaty&act=edit&id='.$wiersz_wplaty[2].'" style="border: none;" onMouseover="ddrivetip(\'Edytuj wpłatę\',100)" onMouseout="hideddrivetip()"><img src="img/edit_ico.png" alt=""></a> <a href="#" style="border: none;" onMouseover="ddrivetip(\'Usuń wpłatę\',100)" onMouseout="hideddrivetip()" onclick="Defuse(\''.$wiersz_wplaty[2].'\');";><img src="img/trash_16.png" alt=""></a></td>';} echo '</tr>'; $wplaty_razem += $wiersz_wplaty[0];
}
if ($wplaty_razem>0
) {echo '<tr><td></td><td height="30" align="right" valign="bottom">Razem:</td><td align="center" valign="bottom"><strong>'.number_format($wplaty_razem, 2, ',', ' ').' zł</strong></td></tr>';} if (mysql_num_rows($wynik_wplaty)>0
) {echo '</table>';} else {echo '<br><br><strong>W zadanym przedziale czasowym,<br>nie odnotowano wpłat ucznia</strong><br><br>';}
if ($wplaty_razem-$naliczenia_razem >= 0) {
$style_saldo = 'style="background: darkgreen; font-size: 13pt; text-align: center; color: #FFFFFF;"';
} else {
$style_saldo = 'style="background: darkred; font-size: 13pt; text-align: center; color: #FFFFFF;"';
}
echo '<tr><td align="center" style="border-top: 1px solid #CCCCCC;">Zapłacone: <strong>'.number_format($suma_wplat, 2, ',', ' ').' zł</strong> Niezapłacone - po terminie: <strong>'; if (($naliczenia_niezaplacone_uplynal+$suma_zaplaconych-$suma_wplat)<0
) {echo '0,00 zł</strong>';} else {echo number_format($naliczenia_niezaplacone_uplynal+$suma_zaplaconych-$suma_wplat, 2, ',', ' ').' zł</strong>';
//Odsetki
echo '<tr><td align="center" style="border-top: 1px solid #CCCCCC;">Odsetki: <strong> zł</strong>';
W wierszu 36 liczy mi poprawnie, ale nie potrafie zrobić funkcji która będzie sprawdzała czy "termin_zaplaty" jest wiekszy niż dzień obecny tak by były liczone tylko dni po terminie zapłaty.
jest również problem w tym samym wierszy:
Gdy jest naliczenie za czesne nr 1 liczy wszytko ok, ale jak już jest naliczenie nr 2 to liczy odsetki biorąc liczbe dni przy mnożeniu ($wiersz_odsetki[4]) z naliczenia nr 1. W praktyce wygląda to tak:
Naliczenie nr 1 termin zapłaty 2013-04-10, dzisiejsza data 2013-04-30 czyli 20 dni po terminie, kwota do zapłaty 200 zł, odsetki za każdy dzień zwłoki 0,50% czyli daje nam 20zł
Naliczenie nr 2 termin zapłaty 2013-04-29, dzisiejsza data 2013-04-30 czyli powinno być 1 dzień po terminie a mi już na tym etapie zaczytuje 20 dni z naliczenia nr 1, kwota do zapłaty 100zł, odsetki 0,05% czyli daje nam 1zł
dla pomocy dodam screena jak to wygląda.

W wierszu 99 mam problem jak zsumować wszystkie należne odsetki, które saą wyliczane w wierszu 36.
Za pomoc w rozwiązaniu problemu z tym głupim skryptem stawiam dobrego browara
Ten post edytował Seiku 30.04.2013, 10:23:45