Server : Apache System : Linux 145.162.205.92.host.secureserver.net 5.14.0-611.45.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Apr 1 05:56:53 EDT 2026 x86_64 User : tradze ( 1001) PHP Version : 8.1.34 Disable Function : NONE Directory : /home/tradze/www/dev-test/app/Modules/Invoices/Repositories/ |
<?php
namespace App\Modules\Invoices\Repositories;
use Darryldecode\Cart\Cart;
use Darryldecode\Cart\CartCondition;
// use Illuminate\Contracts\Bus\SelfHandling;
use Illuminate\Http\Request;
class InvoiceCart{
protected $request;
function __construct(Request $request)
{
$this->request = $request;
}
/**
* Retrieve cart content
* @param string $instance
* @return array
*/
public function contents($instance)
{
$results = [];
$total_net=0;
$total_vat=0;
$cart = app('cart_invoice');
$request = $this->request;
$cart = app('cart_invoice');
// $cart->clear();
if ($instance=="new_cart_invoice")
$instance='new_cart_invoice';
//manage cart instance
if ($request->session()->has('invoiceCartInstance')) {
//get session cartInstance name
$sesInstance = $request->session()->get('invoiceCartInstance');
//if user access other instance remove all cart contents
if ($sesInstance != $instance ){
$cart->clear();
$request->session()->put('invoiceCartInstance',$instance);
}
}
else
{
//create new instance
$request->session()->put('invoiceCartInstance',$instance);
}
//get items
$items = $cart->getContent()->sortBy(function ($product, $key) {
return $product['attributes']['order'];
});
$sorted=$items;
foreach($sorted as $item)
{
$results['items'][$item->id]=[
'id' => $item->id,
'name' => $item->name,
'description' => $item->attributes->description,
'price' => $item->price, // the single price without conditions applied
'price_brut' => $item->getPriceWithConditions(), // the single price with conditions applied
'subtotal_net' => $item->getPriceSum(), // the subtotal without conditions applied
'subtotal_brut' => $item->getPriceSumWithConditions(), // the subtotal with conditions applied
'vat' => ($item->getPriceSumWithConditions()-$item->getPriceSum()),
'quantity' => $item->quantity, // the quantity
'attributes' => $item->attributes, // the attributes
];
$total_net += $item->getPriceSum();
$total_vat +=($item->getPriceSumWithConditions()-$item->getPriceSum());
} //end foreach
$results['is_empty'] = $cart->isEmpty();
$results['total_quantity'] = $cart->getTotalQuantity();
$results['total_net'] = $total_net; //without conditions applied
$results['total_brut'] = $cart->getTotal(); //with conditions applied
$results['total_vat'] = $total_vat; //total vat value
// dd($results);
//return cart contents
return $results;
}
}