PHP code example of mimisk / laravel-quotes

1. Go to this page and download the library: Download mimisk/laravel-quotes library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

mimisk / laravel-quotes example snippets


use Mimisk\LaravelQuotes\Actions\CreateQuoteAction;
use Mimisk\LaravelQuotes\DTOs\QuoteData;

$quote = app(CreateQuoteAction::class)->handle(QuoteData::fromArray([
    'owner' => $customer,
    'title' => 'Customer Products Quote',
    'currency' => 'EUR',
    'discount_type' => 'fixed', // fixed | percentage
    'discount_value' => 50,
    'items' => [
        [
            'name' => 'Product A',
            'quantity' => 2,
            'unit_price' => 120,
            'tax_rate' => 24,
        ],
        [
            'name' => 'Product B',
            'quantity' => 1,
            'unit_price' => 85,
            'tax_rate' => 24,
        ],
    ],
]));

use Mimisk\LaravelQuotes\Actions\UpdateQuoteAction;
use Mimisk\LaravelQuotes\DTOs\QuoteData;

app(UpdateQuoteAction::class)->handle(
    $quote,
    QuoteData::fromArray([
        'owner' => $customer,
        'title' => 'Updated Customer Quote',
        'items' => [
            [
                'name' => 'Product A (Updated)',
                'quantity' => 3,
                'unit_price' => 110,
                'tax_rate' => 24,
            ],
        ],
    ])
);

use Mimisk\LaravelQuotes\Actions\AcceptQuoteAction;
use Mimisk\LaravelQuotes\Actions\ExpireQuoteAction;
use Mimisk\LaravelQuotes\Actions\RejectQuoteAction;
use Mimisk\LaravelQuotes\Actions\SendQuoteAction;

app(SendQuoteAction::class)->handle($quote);    // draft -> sent
app(AcceptQuoteAction::class)->handle($quote);  // sent -> accepted
app(RejectQuoteAction::class)->handle($quote);  // sent -> rejected
app(ExpireQuoteAction::class)->handle($quote);  // sent -> expired

use Mimisk\LaravelQuotes\Actions\DeleteQuoteAction;

app(DeleteQuoteAction::class)->handle($quote); // only draft or rejected

use Mimisk\LaravelQuotes\Exceptions\InvalidQuoteTransition;

try {
    app(AcceptQuoteAction::class)->handle($quote);
} catch (InvalidQuoteTransition $exception) {
    return back()->with('error', $exception->getMessage());
}

// bootstrap/app.php

use Mimisk\LaravelQuotes\Exceptions\InvalidQuoteTransition;

->withExceptions(function ($exceptions) {
    $exceptions->render(function (InvalidQuoteTransition $exception) {
        return back()->with('error', $exception->getMessage());
    });
})

php artisan quotes:expire

use Illuminate\Support\Facades\Schedule;

Schedule::command('quotes:expire')->daily();

Schedule::command('quotes:expire')->hourly();
bash
php artisan vendor:publish --tag=quotes-config