<?php
/**
* @package PDF invoice plugin for HikaShop
* @version 2.0.4
* @author Adrien Baborier, Hikari Software
* @copyright (C) 2010-2023 HIKARI SOFTWARE. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><style type="text/css">
<!--
.invoicetitle{ font-family:arial;text-align:left;font-size:12px; padding-top:5px;padding-bottom:5px}
legend { font-family:arial;padding:5px 10px; background-color:#5471B5;color:white;font-weight:bold;border-color:#ccc}
fieldset { font-family:arial;padding:10px; border-color:#ccc;}
div.date{font-family:arial;font-size:12px;text-align:left;color:#333;}
.storeaddress{
color:#333;
font-family:arial;
}
.addresses{font-family:arial;padding-top:10px;width:320px;}
.addresses td{padding-left:20px;}
.addresses fieldset {float:left;}
table.products{font-family:arial;margin:auto;margin-top:20px;width:580px;border-collapse:collapse}
.price{text-align:center;}
.products td, .products th{border:1px solid #ccc;padding:7px 4px;}
.products th{background-color:#5471B5;color:white;}
td.newarea{text-align:right;padding-right:20px;}
tr.total{font-weight:bold;}
.products tr.limitation td{background-color:#ccc;padding:1px 0px;}
.hikashop_order_custom_fields_fieldset{margin-top : 20px;}
.footer{font-size:10px;color:#aaa;text-align:center;}
-->
</style>
<page style="font-size: 12px" backtop="14mm" backbottom="14mm" backleft="10mm" backright="10mm">
<page_footer>
<div class="footer">
<?php
$name = $this->params->get('footer');
$trans = hikashop_translate($name);
echo str_replace(array("\r\n","\n","\r"),array('<br/>','<br/>','<br/>'), $trans); ?>
</div>
<?php /*modif denis*/ ?>
<hr>
<p style="font-family:arial;text-align: center;">ENTREPRISE - Sarl au capital de XXXX € - ADRESSE - 85220 VILLE– Vendée - France</br>
Tél. 02 12 34 56 - 06 23 34 56 - contact@DOMAINE.COM</br>
SIRET N° : XXXXXXXXXXX RCS la Roche sur Yon - TVA intracommunautaire : FRXXXXXXXXXX</p>
<hr>
<?php /*fin modif denis*/ ?>
</page_footer>
<?php
$image_address_path = trim($config->get('image_address_path'));
if(!empty($image_address_path)) {
$image_address_path = hikashop_cleanURL($image_address_path);
$img_style_css = trim(strip_tags($config->get('img_style_css')));
$img_style = 'margin-left:20%;width:400px;'; /*modif denis*/
if ($img_style_css != '') {
$img_style = $img_style_css;
}
?>
<div class="hika_invoice_img">
<img src="<?php echo $image_address_path; ?>" style="<?php echo $img_style; ?>">
</div>
<?php
}
?>
<?php /* debut modif boutique et adresse */ ?>
<?php /*
<div class="storeaddress">
<?php
$store = str_replace(array("\r\n","\n","\r"),array('<br/>','<br/>','<br/>'),$config->get('store_address',''));
if(JText::_($store)!=$store){
$store = JText::_($store);
}
echo $store;
?>
</div>
*/ ?>
<?php /* fin modif boutique et adresse */ ?>
<?php if(empty($order->order_invoice_number)){
$order->order_invoice_number = $order->order_number;
}
if(empty($order->order_invoice_created)){
$order->order_invoice_created = $order->order_created;
}
if($this->shipping_invoice){
$number = JText::_('SHIPPING_INVOICE').' n째 ';
if(JText::_('SHIPPING_INVOICE_NUMBER') != 'SHIPPING_INVOICE_NUMBER'){
$number = JText::_('SHIPPING_INVOICE_NUMBER').' ';
}
$item_type = 'display:back_shipping_invoice=1';
}else{
$number = JText::_('INVOICE').' n째 ';
if(JText::_('INVOICE_NUMBER') != 'INVOICE_NUMBER'){
$number = JText::_('INVOICE_NUMBER').' ';
}
$item_type = 'display:back_invoice=1';
}
$number2 = JText::_('').'';
?>
<div class="invoicetitle"><?php echo $number.$order->order_invoice_number; ?> </br>N° de commande <?php echo $number2.$order->order_number; ?></div>
<div class="date"><?php echo JText::_('DATE').': '.hikashop_getDate($order->order_invoice_created,'%d %B %Y');?></div>
<table class="addresses">
<tr>
<?php
$addresses = array('billing_address','shipping_address');
foreach($addresses as $oneAddress){
if(empty($order->$oneAddress)) continue;
if ($oneAddress=='shipping_address' && empty($pluginsShipping)) continue; ?>
<td valign="top">
<fieldset>
<legend><?php echo JText::_('HIKASHOP_'.strtoupper($oneAddress)); ?></legend>
<?php
$override = false;
if(!empty($order->override_shipping_address) && $oneAddress=='shipping_address') {
$override = $order->override_shipping_address;
}
if($override !== false ) {
echo $override;
} else {
$addressClass = hikashop_get('class.address');
if(hikashop_isClient('administrator')){
$view = 'order';
}else{
$view = 'address';
}
echo $addressClass->displayAddress($order->fields,$order->$oneAddress,$view);
}
?>
</fieldset>
</td>
<?php } ?>
</tr>
</table>
<?php
$shipping_invoice = '';
if($this->shipping_invoice){
$shipping_invoice = 'shipping_';
}
$weight = bccomp(sprintf('%F',$order->order_weight), 0, 3);
$unit_weight = false;
if($weight && $config->get('show_'.$shipping_invoice.'invoice_unit_weight',0))
$unit_weight = true;
$total_weight = false;
if($weight && $config->get('show_'.$shipping_invoice.'invoice_total_weight',0))
$total_weight = true;
$order_weight = false;
if($weight && $config->get('show_'.$shipping_invoice.'invoice_weight',0))
$order_weight = true;
?>
<table class="products">
<tr class="products_title">
<?php if($this->shipping_invoice){ ?>
<th style="width:500px">
<?php }else{ ?>
<th style="width:300px">
<?php } ?>
<?php echo JText::_('PRODUCT'); ?>
</th>
<?php
if($unit_weight) {
echo '<th style="width:80px" class="price">' . JText::_('PRODUCT_WEIGHT') . '</th>';
}
if(!$this->shipping_invoice){ ?>
<th style="width:100px" class="price">
<?php /*echo JText::_('UNIT_PRICE'); */?> Prix unitaire HT <?php /*modif denis*/ ?>
</th>
<?php } ?>
<th style="width:80px" class="price">
<?php /* echo JText::_('PRODUCT_QUANTITY'); */?> Qté <?php /*modif denis*/ ?>
</th>
<?php
if($total_weight) {
echo '<th style="width:80px" class="price">' . JText::_('TOTAL_WEIGHT') . '</th>';
}
if(!$this->shipping_invoice){ ?>
<th style="width:100px" class="price">
<?php /*echo JText::_('PRICE');*/ ?> Montant total HT <?php /*modif denis*/ ?>
</th>
<?php } ?>
</tr>
<?php
$fieldsClass = hikashop_get('class.field');
$group = $config->get('group_options',0);
foreach($order->products as $product){
if($group && $product->order_product_option_parent_id) continue;
?>
<tr>
<td>
<?php echo implode('<br/>',$this->str_split_unicode(strip_tags($product->order_product_name),50));
if($group && !$this->shipping_invoice){
$display_item_price=false;
foreach($order->products as $j => $optionElement){
if($optionElement->order_product_option_parent_id != $product->order_product_id) continue;
if($optionElement->order_product_price>0){
$display_item_price = true;
}
}
if($display_item_price){
if($config->get('price_with_tax')){
/*echo ' '.$currencyHelper->format($product->order_product_price+$product->order_product_tax,$order->order_currency_id);*/
echo ' '.$currencyHelper->format($product->order_product_price,$order->order_currency_id);
}else{
echo ' '.$currencyHelper->format($product->order_product_price,$order->order_currency_id);
}
}
}
$itemFields = $fieldsClass->getFields($item_type,$product,'item');
if(!empty($itemFields)){
foreach($itemFields as $field){
$namekey = $field->field_namekey;
if(!empty($product->$namekey) && strlen($product->$namekey)) {
echo '<p>'.implode('<br/>',$this->str_split_unicode(strip_tags($fieldsClass->getFieldName($field).': '.$fieldsClass->show($field,$product->$namekey,'user_email')),50)).'</p>';
}
}
}
if($group){
foreach($order->products as $j => $optionElement){
if($optionElement->order_product_option_parent_id != $product->order_product_id) continue;
$product->order_product_weight += $optionElement->order_product_weight;
$product->order_product_price +=$optionElement->order_product_price;
$product->order_product_tax +=$optionElement->order_product_tax;
$product->order_product_total_price+=$optionElement->order_product_total_price;
$product->order_product_total_price_no_vat+=$optionElement->order_product_total_price_no_vat;
?><br/><?php
$option_name = $optionElement->order_product_name;
if($optionElement->order_product_price>0 && !$this->shipping_invoice){
if($config->get('price_with_tax')){
$option_name .= ' ( + '.$currencyHelper->format($optionElement->order_product_price+$optionElement->order_product_tax,$order->order_currency_id).' )';
}else{
$option_name .= ' ( + '.$currencyHelper->format($optionElement->order_product_price,$order->order_currency_id).' )';
}
}
echo '<p>'.implode('<br/>', $this->str_split_unicode(strip_tags($option_name),50)).'</p>';
}
}
if ($config->get('show_code')) {
echo '<br/>'.$product->order_product_code;
} ?>
</td>
<?php
if($unit_weight) {
echo '<td class="price">' . rtrim(rtrim($product->order_product_weight,'0'),',.').' '.JText::_($product->order_product_weight_unit) . '</td>';
}
?>
<?php if(!$this->shipping_invoice){ ?>
<td class="price">
<?php
if($config->get('price_with_tax')){
/*modif denis*/ /*echo $currencyHelper->format($product->order_product_price+$product->order_product_tax,$order->order_currency_id);*/
echo $currencyHelper->format($product->order_product_price,$order->order_currency_id);
}else{
echo $currencyHelper->format($product->order_product_price,$order->order_currency_id);
} ?>
</td>
<?php } ?>
<td class="price">
<?php echo $product->order_product_quantity;?>
</td>
<?php
if($total_weight) {
echo '<td class="price">' . rtrim(rtrim($product->order_product_weight*$product->order_product_quantity,'0'),',.').' '.JText::_($product->order_product_weight_unit) . '</td>';
}
?>
<?php if(!$this->shipping_invoice){ ?>
<td class="price">
<?php
if($config->get('price_with_tax')){
/* echo $currencyHelper->format($product->order_product_total_price,$order->order_currency_id); */
echo $currencyHelper->format($product->order_product_total_price_no_vat,$order->order_currency_id);
}else{
echo $currencyHelper->format($product->order_product_total_price_no_vat,$order->order_currency_id);
} ?>
</td>
<?php } ?>
</tr>
<?php
}
?>
<?php if(!$this->shipping_invoice){ ?>
<tr class="limitation"><td colspan="4"></td></tr>
<tr>
<td colspan="3" class="newarea">
<?php echo JText::_( 'SUBTOTAL' ); ?>
</td>
<td class="price">
<?php
if($config->get('price_with_tax')){
/*modif denis*/ /*echo $currencyHelper->format($order->order_subtotal,$order->order_currency_id);*/
echo $currencyHelper->format($order->order_subtotal_no_vat,$order->order_currency_id);
}else{
echo $currencyHelper->format($order->order_subtotal_no_vat,$order->order_currency_id);
} ?>
</td>
</tr>
<?php $taxes = $currencyHelper->round($order->order_subtotal - $order->order_subtotal_no_vat - $order->order_discount_tax + $order->order_shipping_tax + $order->order_payment_tax, $currencyHelper->getRounding($order->order_currency_id,true));
if(!empty($order->order_discount_code)){ ?>
<tr>
<td colspan="3" class="newarea">
<?php echo JText::_( 'HIKASHOP_COUPON' ); ?>
</td>
<td class="price">
<?php
if($config->get('price_with_tax')){
echo $currencyHelper->format($order->order_discount_price*-1,$order->order_currency_id);
}else{
echo $currencyHelper->format(($order->order_discount_price-@$order->order_discount_tax)*-1,$order->order_currency_id);
}
?>
</td>
</tr>
<?php /* modif denis je déplace la partie frias de port plus bas sous la TVA */ ?>
<?php }
if(!empty($order->additional)) {
$exclude_additionnal = explode(',', $config->get('order_additional_hide', ''));
foreach($order->additional as $additional) {
if(in_array(@$additional->name, $exclude_additionnal)) continue;
echo '<tr><td colspan="3" class="newarea">'. JText::_($additional->order_product_name).'</td><td class="price">';
if(!empty($additional->order_product_price) || empty($additionaltionnal->order_product_options)) {
if($config->get('price_with_tax')){
echo $currencyHelper->format($additional->order_product_price+@$additional->order_product_tax, $order->order_currency_id);
}else{
echo $currencyHelper->format($additional->order_product_price, $order->order_currency_id);
}
} else {
echo $additional->order_product_options;
}
echo '</td></tr>';
}
}
if(!empty($order->order_payment_method) && $order->order_payment_price != 0){ ?>
<tr>
<td colspan="3" class="newarea">
<?php echo JText::_( 'HIKASHOP_PAYMENT' ); ?>
</td>
<td class="price"><?php
if($config->get('price_with_tax')) {
echo $currencyHelper->format($order->order_payment_price, $order->order_currency_id);
} else {
echo $currencyHelper->format($order->order_payment_price - @$order->order_payment_tax, $order->order_currency_id);
}
?></td>
</tr>
<?php }
if($taxes > 0){
if($config->get('detailed_tax_display') && !empty($order->order_tax_info)){
foreach($order->order_tax_info as $tax){ ?>
<tr>
<td colspan="3" class="newarea">
<?php
if( function_exists('hikashop_translate'))
echo hikashop_translate($tax->tax_namekey);
else
echo $tax->tax_namekey;
?> 20% <?php /*modif denis*/ ?>
</td>
<td class="price">
<?php echo $currencyHelper->format($tax->tax_amount,$order->order_currency_id); ?>
</td>
</tr>
<?php
}
}else{ ?>
<tr>
<td colspan="3" class="newarea">
<?php echo JText::_( 'VAT' ); ?>
</td>
<td class="price">
<?php echo $currencyHelper->format($taxes,$order->order_currency_id); ?>
</td>
</tr>
<?php /* modif denis ici j'ai les frais de port */ ?>
<?php }
if(!empty($order->order_shipping_method)){ ?>
<tr>
<td colspan="3" class="newarea">
<?php /* echo JText::_( 'SHIPPING' ); */?> Participation frais de port<?php /*modif denis*/ ?>
</td>
<td class="price" >
<?php
if($config->get('price_with_tax')){
echo $currencyHelper->format($order->order_shipping_price,$order->order_currency_id);
}else{
echo $currencyHelper->format($order->order_shipping_price-@$order->order_shipping_tax,$order->order_currency_id);
} ?>
</td>
</tr>
<?php /* modif denis fin de la modif frais de port */ ?>
<?php }
} ?>
<tr class="total">
<td colspan="3" class="newarea">
<?php echo JText::_( 'HIKASHOP_TOTAL' ); ?>
</td>
<td class="price" >
<?php echo $currencyHelper->format($order->order_full_price,$order->order_currency_id); ?>
</td>
</tr>
<?php } ?>
</table>
<p>
<?php
if (!empty($pluginsShipping)){
echo JText::_('HIKASHOP_SHIPPING_METHOD').' : ';
if(is_string($order->order_shipping_method)) {
if(strpos($order->order_shipping_id, '-') !== false)
echo $shippingClass->getShippingName($order->order_shipping_method, $order->order_shipping_id);
else
echo $pluginsShipping->getName($order->order_shipping_method, $order->order_shipping_id);
}else{
echo implode(', ', $order->order_shipping_method);
}
echo '<br/>';
}
if(!empty($pluginsPayment))
echo JText::_('HIKASHOP_PAYMENT_METHOD').' : '.$pluginsPayment->getName($order->order_payment_method, $order->order_payment_id).'<br/>';
if($order_weight) {
echo '<br/>'.JText::_('HIKASHOP_TOTAL_ORDER_WEIGHT') . ' : ' . rtrim(rtrim($order->order_weight,'0'),',.').' '.JText::_($order->order_weight_unit);
}
$paymentClass = hikashop_get('class.payment');
$payment = $paymentClass->get($order->order_payment_id);
if(!empty($payment->payment_params->information))
echo $payment->payment_params->information;
?>
</p>
<br/>
<?php if(hikashop_level(2) && !empty($fields['order'])){
ob_start();
foreach($fields['order'] as $fieldName => $oneExtraField) {
if(!@$oneExtraField->field_frontcomp || empty($order->$fieldName)) continue;
?>
<tr class="hikashop_order_custom_field_<?php echo $fieldName;?>_line">
<td class="key">
<?php echo $fieldsClass->getFieldName($oneExtraField);?>
</td>
<td>
<?php echo $fieldsClass->show($oneExtraField,$order->$fieldName,'user_email'); ?>
</td>
</tr>
<?php
}
$additionalInfo = ob_get_clean();
if(!empty($additionalInfo)){ ?>
<fieldset class="hikashop_order_custom_fields_fieldset">
<legend><?php echo JText::_('ADDITIONAL_INFORMATION'); ?></legend>
<table class="hikashop_order_custom_fields_table adminlist" cellpadding="1" width="100%">
<?php echo $additionalInfo; ?>
</table>
</fieldset>
<br/>
<?php
}
}
JPluginHelper::importPlugin('hikashop');
JPluginHelper::importPlugin('hikashopshipping');
JPluginHelper::importPlugin('hikashoppayment');
$app = JFactory::getApplication();
ob_start();
$mode = 'order_front_show';
if(hikashop_isClient('administrator'))
$mode = 'order_back_invoice';
$app->triggerEvent('onAfterOrderProductsListingDisplay', array(&$order, $mode));
$html = ob_get_clean();
if(!empty($html)) { ?>
<table class="hikashop_order_extra_table adminlist" cellpadding="1" width="100%">
<tr>
<td><?php echo $html; ?></td>
</tr>
</table>
<?php
}
?>
</page>