You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

887 lines
34 KiB

<?php
class display
{
var $conn;
var $lang;
var $title_color,$list_of_color,$table_bgcolor,$cellspacing,$cellpadding,$border_style,$border_width,
$border_color,$header_rowcolor,$header_text_color,$headerfont_face,$headerfont_size,
$rowcolor1,$rowcolor2,$rowcolor_text,$rowfont_face,$rowcolor_link,$rowfont_size,$sale_bg;
function display($connection,$theme,$currency_symbol,$language)
{
$this->conn=$connection;
$this->lang=$language;
$this->currency_symbol=$currency_symbol;
switch($theme)
{
case $theme=='big blue':
$this->title_color='#005B7F';
$this->list_of_color='#247392';
$this->table_bgcolor='white';
$this->cellspacing='1';
$this->cellpadding='0';
$this->border_style='solid';
$this->border_width='1';
$this->border_color='#0A6184';
$this->header_rowcolor='navy';
$this->header_text_color='white';
$this->headerfont_face='arial';
$this->headerfont_size='2';
$this->rowcolor1='#15759B';
$this->rowcolor2='#0A6184';
$this->rowcolor_text='white';
$this->rowfont_face='geneva';
$this->rowcolor_link='CCCCCC';
$this->rowfont_size='2';
$this->sale_bg='#015B7E';
break;
case $theme=='serious':
$this->title_color='black';
$this->list_of_color='black';
$this->table_bgcolor='white';
$this->cellspacing='1';
$this->cellpadding='0';
$this->border_style='solid';
$this->border_width='1';
$this->border_color='black';
$this->header_rowcolor='black';
$this->header_text_color='white';
$this->headerfont_face='arial';
$this->headerfont_size='2';
$this->rowcolor1='#DDDDDD';
$this->rowcolor2='#CCCCCC';
$this->rowcolor_text='black';
$this->rowfont_face='geneva';
$this->rowcolor_link='black';
$this->rowfont_size='2';
$this->sale_bg='#999999';
break;
}
}
function displayTitle($title)
{
//pre: Title must be a string.
//post: Applys title to page.
echo "<center><h3><font color='$this->title_color'>$title</font></h3></center>";
}
function idToField($tablename,$field,$id)
{
//pre: $tablename, field, and id all must be valid
//post: returns a specified field based on the ID from a specified table.
$result = mysql_query("SELECT $field FROM $tablename WHERE id=\"$id\"",$this->conn);
$row = mysql_fetch_assoc($result);
return $row[$field];
}
function getNumRows($table)
{
$query="SELECT id FROM $table";
$result=mysql_query($query,$this->conn);
return mysql_num_rows($result);
}
function displayManageTable($tableprefix,$tablename,$tableheaders,$tablefields,$wherefield,$wheredata,$orderby)
{
//pre:params must be right type
//post: outputs a nice looking table that is used for manage parts of the program
if($tablename=='brands' or $tablename=='categories')
{
$tablewidth='35%';
}
else
{
$tablewidth='95%';
}
$table="$tableprefix"."$tablename";
echo "\n".'<center>';
if($wherefield=='quantity' and $wheredata=='outofstock')
{
$result = mysql_query("SELECT * FROM $table WHERE quantity < 1 ORDER BY $orderby",$this->conn);
}
elseif($wherefield=='quantity' and $wheredata=='reorder')
{
$result = mysql_query("SELECT * FROM $table WHERE quantity <= reorder_level ORDER BY $orderby",$this->conn);
}
elseif($wherefield!='' and $wheredata!='')
{
$result = mysql_query("SELECT * FROM $table WHERE $wherefield like \"%$wheredata%\" ORDER BY $orderby",$this->conn);
}
elseif($this->getNumRows($table) >200)
{
$result = mysql_query("SELECT * FROM $table ORDER BY $orderby LIMIT 0,200",$this->conn);
echo "{$this->lang->moreThan200} $tableprefix $table".'\'s'."{$this->lang->first200Displayed}";
}
else
{
$result = mysql_query("SELECT * FROM $table ORDER BY $orderby",$this->conn);
}
echo '<hr>';
if(@mysql_num_rows($result) ==0)
{
echo "<div align='center'>{$this->lang->noDataInTable} <b>$table</b> {$this->lang->table}.</div>";
exit();
}
echo "<center><h4><font color='$this->list_of_color'>{$this->lang->listOf}";
if ($tablename == "customers"){ echo " Members</font></h4></center>"; } else { echo " $tablename</font></h4></center>"; }
echo "<table cellspacing='$this->cellspacing' cellpadding='$this->cellpadding' bgcolor='$this->table_bgcolor' width='$tablewidth' style=\"border: $this->border_style $this->border_color $this->border_width px\">
<tr bgcolor=$this->header_rowcolor>\n\n";
for($k=0;$k< count($tableheaders);$k++)
{
echo "<th align='center'>\n<font color='$this->header_text_color' face='$this->headerfont_face' size='$this->headerfont_size'>$tableheaders[$k]</font>\n</th>\n";
}
echo '</tr>'."\n\n";
$rowCounter=0;
while($row=mysql_fetch_assoc($result))
{
if($rowCounter%2==0)
{
echo "\n<tr bgcolor=$this->rowcolor1>\n";
}
else
{
echo "\n<tr bgcolor=$this->rowcolor2>\n";
}
$rowCounter++;
for($k=0;$k<count($tablefields);$k++)
{
$field=$tablefields[$k];
$data=$this->formatData($field,$row[$field],$tableprefix);
echo "\n<td align='center'>\n<font color='$this->rowcolor_text' face='$this->rowfont_face' size='$this->rowfont_size'>$data</font>\n</td>\n";
}
if($tablename == "customers")
{
echo "<td align='center'>\n<a href=\"../members/add.php?userID=$row[id]\"><font color='$this->rowcolor_link'>{$this->lang->update}</font></a></td>
<td align='center'>\n<a href=\"javascript:decision('{$this->lang->confirmDelete} $table {$this->lang->table}?','process_form_$tablename.php?action=delete&id=$row[id]')\"><font color='$this->rowcolor_link'>{$this->lang->delete}</font></a></td>\n
<td align='center'>\n<a href=\"../members/getinfo.php?userID=$row[id]\"><font color='$this->rowcolor_link'>{$this->lang->getinfo}</font></a></td>
</tr>\n\n";
} else {
echo "<td align='center'>\n<a href=\"form_$tablename.php?action=update&id=$row[id]\"><font color='$this->rowcolor_link'>{$this->lang->update}</font></a></td>
<td align='center'>\n<a href=\"javascript:decision('{$this->lang->confirmDelete} $table {$this->lang->table}?','process_form_$tablename.php?action=delete&id=$row[id]')\"><font color='$this->rowcolor_link'>{$this->lang->delete}</font></a></td>\n</tr>\n\n";
}
}
echo '</table>'."\n";
}
function displayReportTable($tableprefix,$tablename,$tableheaders,$tablefields,$wherefield,$wheredata,$date1,$date2,$orderby,$subtitle)
{
echo "<center><h4><font color='$this->list_of_color'>$subtitle</font></h4></center>";
$tablewidth='85%';
$table="$tableprefix"."$tablename";
echo "\n".'<center>';
if($wherefield!='' and $wheredata!='' and $date1=='' and $date2=='')
{
$result = mysql_query("SELECT * FROM $table WHERE $wherefield = \"$wheredata\" ORDER BY $orderby",$this->conn);
}
elseif($wherefield!='' and $wheredata!='' and $date1!='' and $date2!='')
{
$result = mysql_query("SELECT * FROM $table WHERE $wherefield = \"$wheredata\" and date between \"$date1\" and \"$date2\" ORDER BY $orderby",$this->conn);
}
elseif($date1!='' and $date2!='')
{
$result = mysql_query("SELECT * FROM $table WHERE date between \"$date1\" and \"$date2\" ORDER BY $orderby",$this->conn);
}
else
{
$result = mysql_query("SELECT * FROM $table ORDER BY $orderby",$this->conn);
}
echo '<hr>';
if(@mysql_num_rows($result) ==0)
{
echo "<div align='center'>{$this->lang->noDataInTable} <b>$table</b> {$this->lang->table}.</div>";
exit();
}
echo "<table cellspacing='$this->cellspacing' cellpadding='$this->cellpadding' bgcolor='$this->table_bgcolor' width='$tablewidth' style=\"border: $this->border_style $this->border_color $this->border_width px\">
<tr bgcolor=$this->header_rowcolor>\n\n";
for($k=0;$k< count($tableheaders);$k++)
{
echo "<th align='center'>\n<font color='$this->header_text_color' face='$this->headerfont_face' size='$this->headerfont_size'>$tableheaders[$k]</font>\n</th>\n";
}
echo '</tr>'."\n\n";
$rowCounter=0;
while($row=mysql_fetch_assoc($result))
{
if($rowCounter%2==0)
{
echo "\n<tr bgcolor=$this->rowcolor1>\n";
}
else
{
echo "\n<tr bgcolor=$this->rowcolor2>\n";
}
$rowCounter++;
for($k=0;$k<count($tablefields);$k++)
{
$field=$tablefields[$k];
if($field=='sale_details')
{
$temp_customer_id=$row['customer_id'];
$temp_date=$row['date'];
$temp_sale_id=$row['id'];
$data="<a href=\"javascript:popUp('show_details.php?sale_id=$temp_sale_id&sale_customer_id=$temp_customer_id&sale_date=$temp_date')\"><font color='$this->rowcolor_link'>{$this->lang->showSaleDetails}</font></a>";
}
else
{
if($field=='brand_id' or $field=='category_id' or $field=='supplier_id')
{
$field_data=$this->idToField("$tableprefix".'items',"$field",$row['item_id']);
$data=$this->formatData($field,$field_data,$tableprefix);
}
else
{
$data=$this->formatData($field,$row[$field],$tableprefix);
}
}
echo "\n<td align='center'>\n<font color='$this->rowcolor_text' face='$this->rowfont_face' size='$this->rowfont_size'>$data</font>\n</td>\n";
}
}
echo '</table>'."\n";
}
function displaySaleManagerTable($tableprefix,$where1,$where2)
{
$tablewidth='85%';
$sales_table="$tableprefix"."sales";
$sales_items_table="$tableprefix"."sales_items";
if($where1!='' and $where2!='')
{
$sale_query="SELECT * FROM $sales_table WHERE id between \"$where1\" and \"$where2\" ORDER BY id DESC";
$sale_result=mysql_query($sale_query,$this->conn);
}
else
{
$sale_query="SELECT * FROM $sales_table ORDER BY id DESC";
$sale_result=mysql_query($sale_query,$this->conn);
}
$sales_tableheaders=array("{$this->lang->date}","{$this->lang->customerName}","{$this->lang->itemsPurchased}","{$this->lang->paidWith}","{$this->lang->soldBy}","{$this->lang->saleSubTotal}","{$this->lang->saleTotalCost}","{$this->lang->saleComment}");
$sales_tablefields=array('date','customer_id','items_purchased','paid_with','sold_by','sale_sub_total','sale_total_cost','comment');
$sales_items_tableheaders=array("{$this->lang->itemName}","{$this->lang->brand}","{$this->lang->category}","{$this->lang->supplier}","{$this->lang->quantityPurchased}","{$this->lang->unitPrice}","{$this->lang->tax}","{$this->lang->itemTotalCost}","{$this->lang->updateItem}","{$this->lang->deleteItem}");
$sales_items_tablefields=array('item_id','brand_id','category_id','supplier_id','quantity_purchased','item_unit_price','item_total_tax','item_total_cost');
if(@mysql_num_rows($sale_result) < 1)
{
echo "<div align='center'>You do not have any data in the <b>sales</b> tables.</div>";
exit();
}
$rowCounter1=0;
echo "<center><table cellspacing='$this->cellspacing' cellpadding='$this->cellpadding' bgcolor='$this->table_bgcolor' width='$tablewidth' style=\"border: $this->border_style $this->border_color 3 px\"><tr><td><br>";
while($row=mysql_fetch_assoc($sale_result))
{
echo "<table align='center' cellspacing='$this->cellspacing' cellpadding='$this->cellpadding' bgcolor='$this->table_bgcolor' width='$tablewidth' style=\"border: $this->border_style $this->border_color $this->border_width px\"><tr><td align='center'><br><b>{$this->lang->saleID} $row[id]</b>
[<a href='update_sale.php?id=$row[id]'>{$this->lang->updateSale}</a>]
[<a href=\"javascript:decision('{$this->lang->confirmDelete} $sales_table {$this->lang->table}?','delete_sale.php?id=$row[id]')\">{$this->lang->deleteEntireSale}]</a>
<table cellspacing='$this->cellspacing' cellpadding='$this->cellpadding' bgcolor='$this->table_bgcolor' width='$tablewidth' style=\"border: $this->border_style $this->border_color $this->border_width px\">
<tr bgcolor=$this->header_rowcolor>\n\n";
for($k=0;$k< count($sales_tableheaders);$k++)
{
echo "<th align='center'>\n<font color='$this->header_text_color' face='$this->headerfont_face' size='$this->headerfont_size'>$sales_tableheaders[$k]</font>\n</th>\n";
}
echo '</tr>'."\n\n";
if($rowCounter1%2==0)
{
echo "\n<tr bgcolor=$this->rowcolor1>\n";
}
else
{
echo "\n<tr bgcolor=$this->rowcolor2>\n";
}
$rowCounter1++;
for($k=0;$k<count($sales_tablefields);$k++)
{
$field=$sales_tablefields[$k];
$data=$this->formatData($field,$row[$field],$tableprefix);
echo "\n<td align='center'>\n<font color='$this->rowcolor_text' face='$this->rowfont_face' size='$this->rowfont_size'>$data</font>\n</td>\n";
}
echo '</tr></table>';
$sale_items_query="SELECT * FROM $sales_items_table WHERE sale_id=\"$row[id]\"";
$sale_items_result=mysql_query($sale_items_query,$this->conn);
echo "<br><b>{$this->lang->itemsInSale}</b><table cellspacing='$this->cellspacing' cellpadding='$this->cellpadding' bgcolor='$this->table_bgcolor' width='$tablewidth' style=\"border: $this->border_style $this->border_color $this->border_width px\">
<tr bgcolor=$this->header_rowcolor>\n\n";
for($k=0;$k<count($sales_items_tableheaders);$k++)
{
echo "<th align='center'>\n<font color='$this->header_text_color' face='$this->headerfont_face' size='$this->headerfont_size'>$sales_items_tableheaders[$k]</font>\n</th>\n";
}
echo '</tr>';
$rowCounter2=0;
while($newrow=mysql_fetch_assoc($sale_items_result))
{
if($rowCounter2%2==0)
{
echo "\n<tr bgcolor=$this->rowcolor1>\n";
}
else
{
echo "\n<tr bgcolor=$this->rowcolor2>\n";
}
$rowCounter2++;
for($k=0;$k<count($sales_items_tablefields);$k++)
{
$field=$sales_items_tablefields[$k];
if($field=='brand_id' or $field=='category_id' or $field=='supplier_id')
{
$field_data=$this->idToField("$tableprefix".'items',"$field",$newrow['item_id']);
$data=$this->formatData($field,$field_data,$tableprefix);
}
else
{
$data=$this->formatData($field,$newrow[$field],$tableprefix);
}
echo "\n<td align='center'>\n<font color='$this->rowcolor_text' face='$this->rowfont_face' size='$this->rowfont_size'>$data</font>\n</td>\n";
}
echo "<td align='center'>\n<a href=\"update_item.php?sale_id=$newrow[sale_id]&item_id=$newrow[item_id]&row_id=$newrow[id]\"><font color='$this->rowcolor_link'>{$this->lang->update}</font></a></td>
<td align='center'>\n<a href=\"javascript:decision('{$this->lang->confirmDelete} $sales_items_table {$this->lang->table}?','delete_item.php?sale_id=$newrow[sale_id]&item_id=$newrow[item_id]&row_id=$newrow[id]')\"><font color='$this->rowcolor_link'>{$this->lang->delete}</font></a></td>\n</tr>\n\n";
echo '</tr>'."\n\n";
}
echo '</table><br></table><br>';
}
echo "</table></td></tr></table></center>";
}
function displayTotalsReport($tableprefix,$total_type,$tableheaders,$date1,$date2,$where1,$where2)
{
$sales_table="$tableprefix".'sales';
$sales_items_table="$tableprefix".'sales_items';
$items_table="$tableprefix".'items';
$brands_table="$tableprefix".'brands';
$categories_table="$tableprefix".'categories';
$suppliers_table="$tableprefix".'suppliers';
$customer_table="$tableprefix".'customers';
$users_table="$tableprefix".'users';
if($total_type=='customers')
{
echo "<center><b>{$this->lang->totalsShownBetween} $date1 {$this->lang->and} $date2</b></center>";
echo "<table align='center' cellspacing='$this->cellspacing' cellpadding='$this->cellpadding' bgcolor='$this->table_bgcolor' width='60%' style=\"border: $this->border_style $this->border_color $this->border_width px\">";
echo "<tr bgcolor=$this->header_rowcolor>\n\n";
for($k=0;$k< count($tableheaders);$k++)
{
echo "<th align='center'>\n<font color='$this->header_text_color' face='$this->headerfont_face' size='$this->headerfont_size'>$tableheaders[$k]</font>\n</th>\n";
}
echo '</tr>'."\n\n";
$query="SELECT * FROM $customer_table ORDER BY last_name";
$customer_result=mysql_query($query,$this->conn);
$temp_cust_id=0;
$accum_sub_total=0;
$accum_total_cost=0;
$accum_items_purhcased=0;
$row_counter=0;
while($row=mysql_fetch_assoc($customer_result))
{
$temp_cust_id=$row['id'];
$customer_name=$this->formatData('customer_id',$temp_cust_id,$tableprefix);
$query2="SELECT * FROM $sales_table WHERE customer_id=\"$temp_cust_id\" and date between \"$date1\" and \"$date2\"";
$result2=mysql_query($query2,$this->conn);
$sub_total=0;
$total_cost=0;
$items_purchased=0;
while($row2=mysql_fetch_assoc($result2))
{
$sub_total+=$row2['sale_sub_total'];
$accum_sub_total+=$row2['sale_sub_total'];
$total_cost+=$row2['sale_total_cost'];
$accum_total_cost+=$row2['sale_total_cost'];
$items_purchased+=$row2['items_purchased'];
$accum_items_purhcased+=$row2['items_purchased'];
}
$row_counter++;
$sub_total=number_format($sub_total,2,'.', '');
$total_cost=number_format($total_cost,2,'.', '');
if($row_counter%2==0)
{
echo "\n<tr bgcolor=$this->rowcolor1>\n";
}
else
{
echo "\n<tr bgcolor=$this->rowcolor2>\n";
}
echo "<td align='center'>\n<font color='$this->rowcolor_text' face='$this->rowfont_face' size='$this->rowfont_size'>$customer_name</font>\n</td>
<td align='center'>\n<font color='$this->rowcolor_text' face='$this->rowfont_face' size='$this->rowfont_size'>$items_purchased</font>\n</td>
<td align='center'>\n<font color='$this->rowcolor_text' face='$this->rowfont_face' size='$this->rowfont_size'>$this->currency_symbol$sub_total</font>\n</td>
<td align='center'>\n<font color='$this->rowcolor_text' face='$this->rowfont_face' size='$this->rowfont_size'>$this->currency_symbol$total_cost</font>\n</td>
</tr>";
}
echo '</table>';
$accum_sub_total=number_format($accum_sub_total,2,'.', '');
$accum_total_cost=number_format($accum_total_cost,2,'.', '');
echo "<br><table align='right' cellspacing='$this->cellspacing' cellpadding='$this->cellpadding' bgcolor='$this->table_bgcolor' width='60%' border=0>";
echo "<tr><td>{$this->lang->totalItemsPurchased}: <b>$accum_items_purhcased</b></td></tr>
<tr><td>{$this->lang->totalWithOutTax}: <b>$this->currency_symbol$accum_sub_total</b></td></tr>
<tr><td>{$this->lang->totalWithTax}: <b>$this->currency_symbol$accum_total_cost</b></td></tr></table>";
}
elseif($total_type=='employees')
{
echo "<center><b>{$this->lang->totalsShownBetween} $date1 {$this->lang->and} $date2</b></center>";
echo "<table align='center' cellspacing='$this->cellspacing' cellpadding='$this->cellpadding' bgcolor='$this->table_bgcolor' width='60%' style=\"border: $this->border_style $this->border_color $this->border_width px\">";
echo "<tr bgcolor=$this->header_rowcolor>\n\n";
for($k=0;$k< count($tableheaders);$k++)
{
echo "<th align='center'>\n<font color='$this->header_text_color' face='$this->headerfont_face' size='$this->headerfont_size'>$tableheaders[$k]</font>\n</th>\n";
}
echo '</tr>'."\n\n";
$query="SELECT * FROM $users_table ORDER BY last_name";
$employee_result=mysql_query($query,$this->conn);
$temp_cust_id=0;
$accum_sub_total=0;
$accum_total_cost=0;
$accum_items_purhcased=0;
$row_counter=0;
while($row=mysql_fetch_assoc($employee_result))
{
$temp_empl_id=$row['id'];
$employee_name=$this->formatData('user_id',$temp_empl_id,$tableprefix);
$query2="SELECT * FROM $sales_table WHERE sold_by=\"$temp_empl_id\" and date between \"$date1\" and \"$date2\"";
$result2=mysql_query($query2,$this->conn);
$sub_total=0;
$total_cost=0;
$items_purchased=0;
while($row2=mysql_fetch_assoc($result2))
{
$sub_total+=$row2['sale_sub_total'];
$accum_sub_total+=$row2['sale_sub_total'];
$total_cost+=$row2['sale_total_cost'];
$accum_total_cost+=$row2['sale_total_cost'];
$items_purchased+=$row2['items_purchased'];
$accum_items_purhcased+=$row2['items_purchased'];
}
$row_counter++;
$sub_total=number_format($sub_total,2,'.', '');
$total_cost=number_format($total_cost,2,'.', '');
if($row_counter%2==0)
{
echo "\n<tr bgcolor=$this->rowcolor1>\n";
}
else
{
echo "\n<tr bgcolor=$this->rowcolor2>\n";
}
echo "<td align='center'>\n<font color='$this->rowcolor_text' face='$this->rowfont_face' size='$this->rowfont_size'>$employee_name</font>\n</td>
<td align='center'>\n<font color='$this->rowcolor_text' face='$this->rowfont_face' size='$this->rowfont_size'>$items_purchased</font>\n</td>
<td align='center'>\n<font color='$this->rowcolor_text' face='$this->rowfont_face' size='$this->rowfont_size'>$this->currency_symbol$sub_total</font>\n</td>
<td align='center'>\n<font color='$this->rowcolor_text' face='$this->rowfont_face' size='$this->rowfont_size'>$this->currency_symbol$total_cost</font>\n</td>
</tr>";
}
echo '</table>';
$accum_sub_total=number_format($accum_sub_total,2,'.', '');
$accum_total_cost=number_format($accum_total_cost,2,'.', '');
echo "<br><table align='right' cellspacing='$this->cellspacing' cellpadding='$this->cellpadding' bgcolor='$this->table_bgcolor' width='60%' border=0>";
echo "<tr><td>{$this->lang->totalItemsPurchased}:<b> $accum_items_purhcased</b></td></tr>
<tr><td>{$this->lang->totalWithOutTax}: <b>$this->currency_symbol$accum_sub_total</b></td></tr>
<tr><td>{$this->lang->totalWithTax}: <b> $this->currency_symbol$accum_total_cost</b></td></tr></table>";
}
elseif($total_type=='items')
{
echo "<center><b>{$this->lang->totalsShownBetween} $date1 {$this->lang->and} $date2</b></center>";
echo "<table align='center' cellspacing='$this->cellspacing' cellpadding='$this->cellpadding' bgcolor='$this->table_bgcolor' width='70%' style=\"border: $this->border_style $this->border_color $this->border_width px\">";
echo "<tr bgcolor=$this->header_rowcolor>\n\n";
for($k=0;$k< count($tableheaders);$k++)
{
echo "<th align='center'>\n<font color='$this->header_text_color' face='$this->headerfont_face' size='$this->headerfont_size'>$tableheaders[$k]</font>\n</th>\n";
}
echo '</tr>'."\n\n";
$query="SELECT * FROM $items_table ORDER BY item_name";
$item_result=mysql_query($query,$this->conn);
$temp_item_id=0;
$accum_sub_total=0;
$accum_total_cost=0;
$accum_items_purhcased=0;
$row_counter=0;
while($row=mysql_fetch_assoc($item_result))
{
$temp_item_id=$row['id'];
$item_name=$this->formatData('item_id',$temp_item_id,$tableprefix);
$temp_brand=$this->idToField($brands_table,'brand',$this->idToField($items_table,'brand_id',$temp_item_id));
$temp_category=$this->idToField($categories_table,'category',$this->idToField($items_table,'category_id',$temp_item_id));
$temp_supplier=$this->idToField($suppliers_table,'supplier',$this->idToField($items_table,'supplier_id',$temp_item_id));
$query2=mysql_query("SELECT * FROM $sales_table WHERE date between \"$date1\" and \"$date2\" ORDER by id ASC",$this->conn);
$sale_row1=mysql_fetch_assoc($query2);
$low_sale_id=$sale_row1['id'];
$query3=mysql_query("SELECT * FROM $sales_table WHERE date between \"$date1\" and \"$date2\" ORDER by id DESC",$this->conn);
$sale_row2=mysql_fetch_assoc($query3);
$high_sale_id=$sale_row2['id'];
$query4="SELECT * FROM $sales_items_table WHERE item_id=\"$temp_item_id\" and sale_id between \"$low_sale_id\" and \"$high_sale_id\"";
$result4=mysql_query($query4,$this->conn);
$sub_total=0;
$total_cost=0;
$items_purchased=0;
while($row2=mysql_fetch_assoc($result4))
{
$sub_total+=$row2['item_total_cost']-$row2['item_total_tax'];
$accum_sub_total+=$row2['item_total_cost']-$row2['item_total_tax'];
$total_cost+=$row2['item_total_cost'];
$accum_total_cost+=$row2['item_total_cost'];
$items_purchased+=$row2['quantity_purchased'];
$accum_items_purhcased+=$row2['quantity_purchased'];
}
$row_counter++;
$sub_total=number_format($sub_total,2,'.', '');
$total_cost=number_format($total_cost,2,'.', '');
if($row_counter%2==0)
{
echo "\n<tr bgcolor=$this->rowcolor1>\n";
}
else
{
echo "\n<tr bgcolor=$this->rowcolor2>\n";
}
echo "<td align='center'>\n<font color='$this->rowcolor_text' face='$this->rowfont_face' size='$this->rowfont_size'>$item_name</font>\n</td>
<td align='center'>\n<font color='$this->rowcolor_text' face='$this->rowfont_face' size='$this->rowfont_size'>$temp_brand</font>\n</td>
<td align='center'>\n<font color='$this->rowcolor_text' face='$this->rowfont_face' size='$this->rowfont_size'>$temp_category</font>\n</td>
<td align='center'>\n<font color='$this->rowcolor_text' face='$this->rowfont_face' size='$this->rowfont_size'>$temp_supplier</font>\n</td>
<td align='center'>\n<font color='$this->rowcolor_text' face='$this->rowfont_face' size='$this->rowfont_size'>$items_purchased</font>\n</td>
<td align='center'>\n<font color='$this->rowcolor_text' face='$this->rowfont_face' size='$this->rowfont_size'>$this->currency_symbol$sub_total</font>\n</td>
<td align='center'>\n<font color='$this->rowcolor_text' face='$this->rowfont_face' size='$this->rowfont_size'>$this->currency_symbol$total_cost</font>\n</td>
</tr>";
}
echo '</table>';
$accum_sub_total=number_format($accum_sub_total,2,'.', '');
$accum_total_cost=number_format($accum_total_cost,2,'.', '');
echo "<br><table align='right' cellspacing='$this->cellspacing' cellpadding='$this->cellpadding' bgcolor='$this->table_bgcolor' width='60%' border=0>";
echo "<tr><td>{$this->lang->totalItemsPurchased}:<b> $accum_items_purhcased</b></td></tr>
<tr><td>{$this->lang->totalWithOutTax}: <b>$this->currency_symbol$accum_sub_total</b></td></tr>
<tr><td>{$this->lang->totalWithTax}: <b> $this->currency_symbol$accum_total_cost</b></td></tr></table>";
}
elseif($total_type=='item')
{
echo "<center><b>{$this->lang->totalsShownBetween} $date1 {$this->lang->and} $date2</b></center>";
echo "<table align='center' cellspacing='$this->cellspacing' cellpadding='$this->cellpadding' bgcolor='$this->table_bgcolor' width='60%' style=\"border: $this->border_style $this->border_color $this->border_width px\">";
echo "<tr bgcolor=$this->header_rowcolor>\n\n";
for($k=0;$k< count($tableheaders);$k++)
{
echo "<th align='center'>\n<font color='$this->header_text_color' face='$this->headerfont_face' size='$this->headerfont_size'>$tableheaders[$k]</font>\n</th>\n";
}
echo '</tr>'."\n\n";
$query="SELECT * FROM $items_table WHERE $where1=\"$where2\" ORDER BY item_name";
$item_result=mysql_query($query,$this->conn);
$row=mysql_fetch_assoc($item_result);
$temp_item_id=$row['id'];
$item_name=$this->formatData('item_id',$temp_item_id,$tableprefix);
$temp_brand=$this->idToField($brands_table,'brand',$this->idToField($items_table,'brand_id',$temp_item_id));
$temp_category=$this->idToField($categories_table,'category',$this->idToField($items_table,'category_id',$temp_item_id));
$temp_supplier=$this->idToField($suppliers_table,'supplier',$this->idToField($items_table,'supplier_id',$temp_item_id));
$item_name=$this->formatData('item_id',$temp_item_id,$tableprefix);
$query2=mysql_query("SELECT * FROM $sales_table WHERE date between \"$date1\" and \"$date2\" ORDER by id ASC",$this->conn);
$sale_row1=mysql_fetch_assoc($query2);
$low_sale_id=$sale_row1['id'];
$query3=mysql_query("SELECT * FROM $sales_table WHERE date between \"$date1\" and \"$date2\" ORDER by id DESC",$this->conn);
$sale_row2=mysql_fetch_assoc($query3);
$high_sale_id=$sale_row2['id'];
$query4="SELECT * FROM $sales_items_table WHERE item_id=\"$temp_item_id\" and sale_id between \"$low_sale_id\" and \"$high_sale_id\"";
$result4=mysql_query($query4,$this->conn);
$sub_total=0;
$total_cost=0;
$items_purchased=0;
while($row2=mysql_fetch_assoc($result4))
{
$sub_total+=$row2['item_total_cost']-$row2['item_total_tax'];
$total_cost+=$row2['item_total_cost'];
$items_purchased+=$row2['quantity_purchased'];
}
$sub_total=number_format($sub_total,2,'.', '');
$total_cost=number_format($total_cost,2,'.', '');
echo "\n<tr bgcolor=$this->rowcolor1>\n";
echo "<td align='center'>\n<font color='$this->rowcolor_text' face='$this->rowfont_face' size='$this->rowfont_size'>$item_name</font>\n</td>
<td align='center'>\n<font color='$this->rowcolor_text' face='$this->rowfont_face' size='$this->rowfont_size'>$temp_brand</font>\n</td>
<td align='center'>\n<font color='$this->rowcolor_text' face='$this->rowfont_face' size='$this->rowfont_size'>$temp_category</font>\n</td>
<td align='center'>\n<font color='$this->rowcolor_text' face='$this->rowfont_face' size='$this->rowfont_size'>$temp_supplier</font>\n</td>
<td align='center'>\n<font color='$this->rowcolor_text' face='$this->rowfont_face' size='$this->rowfont_size'>$items_purchased</font>\n</td>
<td align='center'>\n<font color='$this->rowcolor_text' face='$this->rowfont_face' size='$this->rowfont_size'>$this->currency_symbol$sub_total</font>\n</td>
<td align='center'>\n<font color='$this->rowcolor_text' face='$this->rowfont_face' size='$this->rowfont_size'>$this->currency_symbol$total_cost</font>\n</td>
</tr>";
echo '</table>';
}
elseif($total_type=='profit')
{
echo "<center><b>{$this->lang->totalsShownBetween} $date1 {$this->lang->and} $date2</b></center>";
echo "<table align='center' cellspacing='$this->cellspacing' cellpadding='$this->cellpadding' bgcolor='$this->table_bgcolor' width='40%' style=\"border: $this->border_style $this->border_color $this->border_width px\">";
echo "<tr bgcolor=$this->header_rowcolor>\n\n";
for($k=0;$k< count($tableheaders);$k++)
{
echo "<th align='center'>\n<font color='$this->header_text_color' face='$this->headerfont_face' size='$this->headerfont_size'>$tableheaders[$k]</font>\n</th>\n";
}
echo '</tr>'."\n\n";
$query="SELECT DISTINCT date FROM $sales_table WHERE date between \"$date1\" and \"$date2\" ORDER by date ASC";
$result=mysql_query($query);
$amount_sold=0;
$profit=0;
$total_amount_sold=0;
$total_profit=0;
while($row=mysql_fetch_assoc($result))
{
$amount_sold=0;
$profit=0;
$distinct_date=$row['date'];
$result2=mysql_query("SELECT * FROM $sales_table WHERE date=\"$distinct_date\"",$this->conn);
echo "\n<tr bgcolor=$this->rowcolor1>\n";
echo "<td align='center'>\n<font color='$this->rowcolor_text' face='$this->rowfont_face' size='$this->rowfont_size'>$distinct_date</font>\n</td>";
while($row2=mysql_fetch_assoc($result2))
{
$amount_sold+=$row2['sale_sub_total'];
$total_amount_sold+=$row2['sale_sub_total'];
$profit+=$this->getProfit($row2['id'],$tableprefix);
$total_profit+=$this->getProfit($row2['id'],$tableprefix);
}
$amount_sold=number_format($amount_sold,2,'.', '');
$profit=number_format($profit,2,'.', '');
echo "<td align='center'>\n<font color='$this->rowcolor_text' face='$this->rowfont_face' size='$this->rowfont_size'>$this->currency_symbol$amount_sold</font>\n</td>";
echo "<td align='center'>\n<font color='$this->rowcolor_text' face='$this->rowfont_face' size='$this->rowfont_size'>$this->currency_symbol$profit</font>\n</td>";
echo "</tr>";
}
echo '</table>';
$total_amount_sold=number_format($total_amount_sold,2,'.', '');
$total_profit=number_format($total_profit,2,'.', '');
echo "<br><table align='right' cellspacing='$this->cellspacing' cellpadding='$this->cellpadding' bgcolor='$this->table_bgcolor' width='60%' border=0>";
echo "<tr><td>{$this->lang->totalAmountSold}: <b>$this->currency_symbol$total_amount_sold</b></td></tr>
<tr><td>{$this->lang->totalProfit}: <b>$this->currency_symbol$total_profit</b></td></tr>
</table>";
}
}
function getProfit($sale_id,$tableprefix)
{
$sales_items_table="$tableprefix".'sales_items';
$query="SELECT * FROM $sales_items_table WHERE sale_id=\"$sale_id\"";
$result=mysql_query($query,$this->conn);
$profit=0;
while($row=mysql_fetch_assoc($result))
{
$profit+=($row['item_unit_price']-$row['item_buy_price'])*$row['quantity_purchased'];
}
return $profit;
}
function formatData($field,$data,$tableprefix)
{
if($field=='unit_price' or $field=='total_cost' or $field=='buy_price' or $field=='sale_sub_total' or $field=='sale_total_cost' or $field=='item_unit_price' or $field=='item_total_cost' or $field=='item_total_tax' )
{
return "$this->currency_symbol"."$data";
}
elseif($field=='tax_percent' or $field=='percent_off')
{
return "$data".'%';
}
elseif($field=='brand_id')
{
return $this->idToField("$tableprefix".'brands','brand',$data);
}
elseif($field=='category_id')
{
return $this->idToField("$tableprefix".'categories','category',$data);
}
elseif($field=='supplier_id')
{
return $this->idToField("$tableprefix".'suppliers','supplier',$data);
}
elseif($field=='customer_id')
{
$field_first_name=$this->idToField("$tableprefix".'customers','first_name',$data);
$field_last_name=$this->idToField("$tableprefix".'customers','last_name',$data);
return $field_first_name.' '.$field_last_name;
}
elseif($field=='user_id')
{
$field_first_name=$this->idToField("$tableprefix".'users','first_name',$data);
$field_last_name=$this->idToField("$tableprefix".'users','last_name',$data);
return $field_first_name.' '.$field_last_name;
}
elseif($field=='item_id')
{
return $this->idToField("$tableprefix".'items','item_name',$data);
}
elseif($field=='sold_by')
{
$field_first_name=$this->idToField("$tableprefix".'users','first_name',$data);
$field_last_name=$this->idToField("$tableprefix".'users','last_name',$data);
return $field_first_name.' '.$field_last_name;
}
elseif($field=='supplier_id')
{
return $this->idToField("$tableprefix".'suppliers','supplier',$data);
}
elseif($field=='password')
{
return '*******';
}
else
{
return "$data";
}
}
}
?>