print p_header('Monthly Sales Report');
if ($ENV{'REQUEST_METHOD'} ne 'POST') {
print <<__EOT;
__EOT
} else {
print <<__EOT;
Sales for $m/$y
| Day |
$PP[0] | $PP[1] | $PP[2] | $PP[3], $PP[7] |
$PP[8] | Total | Over Short |
__EOT
@T = qw(0 0 0 0 0 0);
$nDays = DM($m); $nds = 0;
for ($d = 1; $d <= $nDays; $d++) {
$sth = $conn->prepare(<<__EOSQL);
select min(id),max(id) from invoices where datetime>='$y-$m-$d' and datetime<='$y-$m-$d 23:59:59'
__EOSQL
$sth->execute();
@r = $sth->fetchrow_array(); $i1 = $r[0] || 0; $i2 = $r[1] || 0;
$sth = $conn->prepare(<<__EOSQL);
select paymenttype,sum(amount) from payments
where id>= $i1 and id<=$i2
group by paymenttype
__EOSQL
$sth->execute();
@x = qw(0 0 0 0 0 0 0 0 0);
while (@r = $sth->fetchrow_array()) {$x[$r[0]] = $r[1];}
$sth = $conn->prepare("select amount from overshort where date='$y-$m-$d'");
$sth->execute();
if ($overshort = $sth->fetchrow_array()) {
$T[5] += $overshort[0];
$overshort = FormatCent($overshort);
} else {
$overshort = ' ';
}
$sth->finish();
print "| $m/$d/$y | ";
$dt = 0;
for ($p = 0; $p < 4; $p++) {
$T[$p] += $x[$p] + $x[$p + 4]; $dt += $x[$p] + $x[$p + 4];
print "@{[FormatCent($x[$p] + $x[$p + 4])]} | ";
}
$T[4] += $x[8]; $nds++ if ($dt);
print <<__EOT;
@{[FormatCent($x[8])]} | @{[FormatCent($dt)]} |
$overshort |
__EOT
}
$dt = 0;
print "| Totals | ";
for ($p = 0; $p <= 4; $p++) {
$dt += $T[$p];
print "@{[FormatCent($T[$p])]} | ";
}
$dt -= $T[4];
print <<__EOT;
@{[FormatCent($dt)]} | @{[FormatCent($T[5])]} |
| Averages |
__EOT
for ($p = 0; $p <= 4; $p++) {
print "@{[FormatCent(int($T[$p]/$nds))]} | ";
}
print <<__EOT;
@{[FormatCent(int($dt/$nds))]} | @{[FormatCent(int($T[5]/$nds))]} |
__EOT
}