Improve emailed receipt layout and make it look like the printed one (now added logo + company name) (#442)

This commit is contained in:
FrancescoUK
2016-04-10 18:15:59 +01:00
parent c77fa6e5c4
commit d9b007c1af
3 changed files with 150 additions and 67 deletions

View File

@@ -20,24 +20,21 @@ if (isset($error_message))
<div id="receipt_wrapper">
<div id="receipt_header">
<?php
if ($this->Appconfig->get('company_logo') == '')
if ($this->Appconfig->get('company_logo') != '')
{
?>
<div id="company_name"><?php echo $this->config->item('company'); ?></div>
<?php
}
else
{
?>
<div id="company_name"><img id="image" src="<?php echo base_url('uploads/' . $this->Appconfig->get('company_logo')); ?>" alt="company_logo" /></div>
<?php
}
?>
<div id="company_name"><?php echo $this->config->item('company'); ?></div>
<div id="company_address"><?php echo nl2br($this->config->item('address')); ?></div>
<div id="company_phone"><?php echo $this->config->item('phone'); ?></div>
<div id="sale_receipt"><?php echo $receipt_title; ?></div>
<div id="sale_time"><?php echo $transaction_time ?></div>
</div>
<div id="receipt_general_info">
<?php
if(isset($customer))
@@ -74,10 +71,10 @@ if (isset($error_message))
{
?>
<tr>
<td><span class='long_name'><?php echo ucfirst($item['name']); ?></span></td>
<td><?php echo ucfirst($item['name']); ?></td>
<td><?php echo to_currency($item['price']); ?></td>
<td><?php echo to_quantity_decimals($item['quantity']) . " " . ($show_stock_locations ? " [" . $item['stock_name'] . "]" : ""); ?></td>
<td><div class="total-value"><?php echo to_currency($item[($this->Appconfig->get('show_total_discount') ? 'total' : 'discounted_total')]); ?></div></td>
<td class="total-value"><?php echo to_currency($item[($this->Appconfig->get('show_total_discount') ? 'total' : 'discounted_total')]); ?></td>
</tr>
<tr>
<td colspan="2"><?php echo $item['description']; ?></td>
@@ -142,8 +139,8 @@ if (isset($error_message))
<?php $border = (!$this->Appconfig->get('receipt_show_taxes') && !($this->Appconfig->get('show_total_discount') && $discount > 0)); ?>
<tr>
<td colspan="3" style='<?php echo $border? 'border-top: 2px solid black;' :''; ?>text-align:right;'><?php echo $this->lang->line('sales_total'); ?></td>
<td style='<?php echo $border? 'border-top: 2px solid black;' :''; ?>text-align:right'><?php echo to_currency($total); ?></td>
<td colspan="3" style="text-align:right;<?php echo $border? 'border-top: 2px solid black;' :''; ?>"><?php echo $this->lang->line('sales_total'); ?></td>
<td style="text-align:right;<?php echo $border? 'border-top: 2px solid black;' :''; ?>"><?php echo to_currency($total); ?></td>
</tr>
<tr>
@@ -161,28 +158,30 @@ if (isset($error_message))
?>
<tr>
<td colspan="3" style="text-align:right;"><?php echo $splitpayment[0]; ?> </td>
<td><div class="total-value"><?php echo to_currency( $payment['payment_amount'] * -1 ); ?></div></td>
<td class="total-value"><?php echo to_currency( $payment['payment_amount'] * -1 ); ?></td>
</tr>
<?php
}
?>
<tr><td colspan="4">&nbsp;</td></tr>
<tr>
<td colspan="4">&nbsp;</td>
</tr>
<?php
if (isset($cur_giftcard_value) && $show_giftcard_remainder)
{
?>
<tr>
<td colspan="3" style='text-align:right;'><?php echo $this->lang->line('sales_giftcard_balance'); ?></td>
<td style='text-align:right'><?php echo to_currency($cur_giftcard_value); ?></td>
<td colspan="3" style="text-align:right;"><?php echo $this->lang->line('sales_giftcard_balance'); ?></td>
<td class="total-value"><?php echo to_currency($cur_giftcard_value); ?></td>
</tr>
<?php
}
?>
<tr>
<td colspan="3" style='text-align:right;'> <?php echo $this->lang->line($amount_change >= 0 ? ($only_sale_check ? 'sales_check_balance' : 'sales_change_due') : 'sales_amount_due') ; ?> </td>
<td style='text-align:right'><?php echo to_currency($amount_change); ?></td>
<td colspan="3" style="text-align:right;"> <?php echo $this->lang->line($amount_change >= 0 ? ($only_sale_check ? 'sales_check_balance' : 'sales_change_due') : 'sales_amount_due') ; ?> </td>
<td class="total-value"><?php echo to_currency($amount_change); ?></td>
</tr>
</table>
@@ -190,7 +189,7 @@ if (isset($error_message))
<?php echo nl2br($this->config->item('return_policy')); ?>
</div>
<div id='barcode'>
<div id="barcode">
<img src='data:image/png;base64,<?php echo $barcode; ?>' /><br>
<?php echo $sale_id; ?>
</div>

View File

@@ -1,95 +1,178 @@
<div id="receipt_wrapper">
<div id="receipt_header">
<div id="company_name"><?php echo $this->config->item('company'); ?></div>
<div id="receipt_wrapper" style="width:100%;">
<div id="receipt_header" style="text-align:center;">
<?php
if ($this->Appconfig->get('company_logo') != '')
{
?>
<div id="company_name"><img id="image" src="<?php echo base_url('uploads/' . $this->Appconfig->get('company_logo')); ?>" alt="company_logo" /></div>
<?php
}
?>
<div id="company_name" style="font-size:150%; font-weight:bold;"><?php echo $this->config->item('company'); ?></div>
<div id="company_address"><?php echo nl2br($this->config->item('address')); ?></div>
<div id="company_phone"><?php echo $this->config->item('phone'); ?></div>
<br>
<div id="sale_receipt"><?php echo $receipt_title; ?></div>
<div id="sale_time"><?php echo $transaction_time ?></div>
</div>
<br>
<div id="receipt_general_info">
<?php if(isset($customer))
<div id="receipt_general_info" style="text-align:left;">
<?php
if(isset($customer))
{
?>
<div id="customer"><?php echo $this->lang->line('customers_customer').": ".$customer; ?></div>
<?php
}
?>
<div id="sale_id"><?php echo $this->lang->line('sales_id').": ".$sale_id; ?></div>
<div id="employee"><?php echo $this->lang->line('employees_employee').": ".$employee; ?></div>
</div>
<br>
<table id="receipt_items">
<table id="receipt_items" style="text-align:left;width:100%;">
<tr>
<th style="width:25%;"><?php echo $this->lang->line('sales_item_number'); ?></th>
<th style="width:25%;"><?php echo $this->lang->line('items_item'); ?></th>
<th style="width:17%;"><?php echo $this->lang->line('common_price'); ?></th>
<th style="width:16%;text-align:center;"><?php echo $this->lang->line('sales_quantity'); ?></th>
<th style="width:16%;text-align:center;"><?php echo $this->lang->line('sales_discount'); ?></th>
<th style="width:17%;text-align:right;"><?php echo $this->lang->line('sales_total'); ?></th>
<th style="width:40%;"><?php echo $this->lang->line('sales_description_abbrv'); ?></th>
<th style="width:20%;"><?php echo $this->lang->line('sales_price'); ?></th>
<th style="width:20%;"><?php echo $this->lang->line('sales_quantity'); ?></th>
<th style="width:20%;text-align:right;"><?php echo $this->lang->line('sales_total'); ?></th>
</tr>
<?php
foreach(array_reverse($cart, true) as $line=>$item)
{
?>
<tr>
<td><?php echo $item['item_number']; ?></td>
<td><span class='long_name'><?php echo $item['name']; ?></span><span class='short_name'><?php echo character_limiter($item['name'],10); ?></span></td>
<td><?php echo ucfirst($item['name']); ?></td>
<td><?php echo to_currency($item['price']); ?></td>
<td style='text-align:center;'><?php echo to_quantity_decimals($item['quantity']); ?></td>
<td style='text-align:center;'><?php echo $item['discount']; ?></td>
<td style='text-align:right;'><?php echo to_currency($item['price']*$item['quantity']-$item['price']*$item['quantity']*$item['discount']/100); ?></td>
<td><?php echo to_quantity_decimals($item['quantity']) . " " . ($show_stock_locations ? " [" . $item['stock_name'] . "]" : ""); ?></td>
<td style="text-align:right;"><?php echo to_currency($item[($this->Appconfig->get('show_total_discount') ? 'total' : 'discounted_total')]); ?></td>
</tr>
<tr>
<td colspan="2" align="center"><?php echo $item['description']; ?></td>
<td colspan="2" ><?php echo $item['serialnumber']; ?></td>
<td colspan="2"><?php echo '&nbsp;'; ?></td>
<td colspan="2"><?php echo $item['description']; ?></td>
<td><?php echo $item['serialnumber']; ?></td>
</tr>
<?php
if ($item['discount'] > 0)
{
?>
<tr>
<td colspan="3" style="font-weight: bold;"><?php echo number_format($item['discount'], 0) . " " . $this->lang->line("sales_discount_included")?></td>
<td style="text-align:right;"><?php echo to_currency($item['discounted_total']) ; ?></td>
</tr>
<?php
}
?>
<?php
}
?>
<tr>
<td colspan="4" style='text-align:right;border-top:2px solid #000000;'><?php echo $this->lang->line('sales_sub_total'); ?></td>
<td colspan="2" style='text-align:right;border-top:2px solid #000000;'><?php echo to_currency($subtotal); ?></td>
</tr>
<?php foreach($taxes as $name=>$value) { ?>
<?php
if ($this->Appconfig->get('show_total_discount') && $discount > 0)
{
?>
<tr>
<td colspan="4" style='text-align:right;'><?php echo $name; ?>:</td>
<td colspan="2" style='text-align:right;'><?php echo to_currency($value); ?></td>
<td colspan="3" style="text-align:right;border-top:2px solid #000000;"><?php echo $this->lang->line('sales_sub_total'); ?></td>
<td style="text-align:right;border-top:2px solid #000000;"><?php echo to_currency($subtotal); ?></td>
</tr>
<?php }; ?>
<tr>
<td colspan="4" style='text-align:right;'><?php echo $this->lang->line('sales_total'); ?></td>
<td colspan="2" style='text-align:right'><?php echo to_currency($total); ?></td>
</tr>
<tr><td colspan="6">&nbsp;</td></tr>
<tr>
<td colspan="3" style="text-align:right;"><?php echo $this->lang->line('sales_discount'); ?>:</td>
<td style="text-align:right;"><?php echo to_currency($discount*-1); ?></td>
</tr>
<?php
}
?>
<?php
if ($this->Appconfig->get('receipt_show_taxes'))
{
?>
<tr>
<td colspan="3" style='text-align:right;border-top:2px solid #000000;'><?php echo $this->lang->line('sales_sub_total'); ?></td>
<td style="text-align:right;border-top:2px solid #000000;"><?php echo to_currency($this->config->item('tax_included') ? $tax_exclusive_subtotal : $discounted_subtotal); ?></td>
</tr>
<?php
foreach($taxes as $name=>$value)
{
?>
<tr>
<td colspan="3" style="text-align:right;"><?php echo $name; ?>:</td>
<td style="text-align:right;"><?php echo to_currency($value); ?></td>
</tr>
<?php
}
?>
<?php
}
?>
<tr>
</tr>
<?php $border = (!$this->Appconfig->get('receipt_show_taxes') && !($this->Appconfig->get('show_total_discount') && $discount > 0)); ?>
<tr>
<td colspan="3" style="<?php echo $border? 'border-top: 2px solid black;' :''; ?>text-align:right;"><?php echo $this->lang->line('sales_total'); ?></td>
<td style="<?php echo $border? 'border-top: 2px solid black;' :''; ?>text-align:right"><?php echo to_currency($total); ?></td>
</tr>
<tr>
<td colspan="4">&nbsp;</td>
</tr>
<?php
$only_sale_check = TRUE;
$show_giftcard_remainder = FALSE;
foreach($payments as $payment_id=>$payment)
{ ?>
{
$only_sale_check &= $payment['payment_type'] == $this->lang->line('sales_check');
$splitpayment=explode(':',$payment['payment_type']);
$show_giftcard_remainder |= $splitpayment[0] == $this->lang->line('sales_giftcard');
?>
<tr>
<td colspan="2" style="text-align:right;"><?php echo $this->lang->line('sales_payment'); ?></td>
<td colspan="2" style="text-align:right;"><?php $splitpayment=explode(':',$payment['payment_type']); echo $splitpayment[0]; ?> </td>
<td colspan="2" style="text-align:right"><?php echo to_currency( $payment['payment_amount'] * -1 ); ?> </td>
<td colspan="3" style="text-align:right;"><?php echo $splitpayment[0]; ?> </td>
<td style="text-align:right;"><?php echo to_currency( $payment['payment_amount'] * -1 ); ?></td>
</tr>
<?php
}
?>
<tr><td colspan="6">&nbsp;</td></tr>
<tr>
<td colspan="4" style='text-align:right;'><?php echo $this->lang->line('sales_change_due'); ?></td>
<td colspan="2" style='text-align:right'><?php echo $amount_change; ?></td>
<td colspan="4">&nbsp;</td>
</tr>
<?php
if (isset($cur_giftcard_value) && $show_giftcard_remainder)
{
?>
<tr>
<td colspan="3" style="text-align:right;"><?php echo $this->lang->line('sales_giftcard_balance'); ?></td>
<td style="text-align:right"><?php echo to_currency($cur_giftcard_value); ?></td>
</tr>
<?php
}
?>
<tr>
<td colspan="3" style="text-align:right;"> <?php echo $this->lang->line($amount_change >= 0 ? ($only_sale_check ? 'sales_check_balance' : 'sales_change_due') : 'sales_amount_due') ; ?> </td>
<td style="text-align:right"><?php echo to_currency($amount_change); ?></td>
</tr>
<tr>
<td colspan="4">&nbsp;</td>
</tr>
</table>
<div id="sale_return_policy">
<?php echo nl2br($this->config->item('return_policy')); ?>
<div id="sale_return_policy" style="text-align:center">
<?php echo nl2br($this->config->item('return_policy')); ?>
</div>
<br>
<div id="barcode" style="text-align:center">
<img src='data:image/png;base64,<?php echo $barcode; ?>' /><br>
<?php echo $sale_id; ?>
</div>
</div>

View File

@@ -47,7 +47,8 @@
}
#receipt_items tr {
#receipt_items tr
{
margin-bottom:5px;
}