Sh3ll
OdayForums


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/public_html/test.tradze.com/app_old/Modules/Invoices/Repositories/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/tradze/public_html/test.tradze.com/app_old/Modules/Invoices/Repositories/InvoiceCart.php
<?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 implements SelfHandling{

    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;
    }

}

ZeroDay Forums Mini