1. Go to this page and download the library: Download it-delmax/laravel-efaktura 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/ */
it-delmax / laravel-efaktura example snippets
use ItDelmax\LaravelEfaktura\Facades\Efaktura;
use ItDelmax\LaravelEfaktura\Facades\SalesInvoice;
use ItDelmax\LaravelEfaktura\Facades\PurchaseInvoice;
// Prodajne fakture
$invoice = SalesInvoice::get(12345);
echo $invoice->invoiceNumber;
// Ulazne fakture
$invoice = PurchaseInvoice::get(12345);
PurchaseInvoice::accept(12345, 'Prihvaćeno');
// Preko glavnog Efaktura facade-a
$invoice = Efaktura::salesInvoice()->get(12345);
$companies = Efaktura::publicApi()->getAllCompanies();
use ItDelmax\LaravelEfaktura\Services\SalesInvoiceService;
use ItDelmax\LaravelEfaktura\Services\PurchaseInvoiceService;
use ItDelmax\LaravelEfaktura\Services\PublicApiService;
class InvoiceController extends Controller
{
public function __construct(
protected SalesInvoiceService $salesInvoice,
protected PurchaseInvoiceService $purchaseInvoice,
protected PublicApiService $publicApi
) {}
public function show(int $id)
{
$invoice = $this->salesInvoice->get($id);
return view('invoice.show', compact('invoice'));
}
}
use ItDelmax\LaravelEfaktura\Contracts\SalesInvoiceServiceInterface;
use ItDelmax\LaravelEfaktura\Contracts\PurchaseInvoiceServiceInterface;
class InvoiceService
{
public function __construct(
protected SalesInvoiceServiceInterface $salesInvoice,
protected PurchaseInvoiceServiceInterface $purchaseInvoice
) {}
}
use ItDelmax\LaravelEfaktura\Facades\SalesInvoice;
use ItDelmax\LaravelEfaktura\Enums\SendToCir;
use ItDelmax\LaravelEfaktura\Enums\SalesInvoiceStatus;
// Dohvati fakturu
$invoice = SalesInvoice::get(12345);
echo $invoice->invoiceNumber;
echo $invoice->payableAmount;
echo $invoice->accountingCustomerParty->name;
// Upload UBL fajla
$result = SalesInvoice::uploadUbl(
storage_path('invoices/invoice.xml'),
'request-123',
SendToCir::Yes
);
// Import XML sadržaja
$xml = file_get_contents(storage_path('invoices/invoice.xml'));
$result = SalesInvoice::importUbl($xml);
// Otkaži fakturu
SalesInvoice::cancel(12345, 'Razlog otkazivanja');
// Storno fakture
SalesInvoice::storno(12345, 'Razlog storniranja');
// Preuzmi PDF
$pdf = SalesInvoice::getPdf(12345);
Storage::put('invoice.pdf', $pdf);
// Ili direktno sačuvaj
SalesInvoice::downloadPdf(12345, storage_path('invoices/12345.pdf'));
// Dohvati promene statusa
$changes = SalesInvoice::getChanges(now()->subDay());
foreach ($changes as $change) {
logger()->info("{$change->invoiceNumber}: {$change->status}");
}
// Dohvati fakture po statusu
$ids = SalesInvoice::getIds(
SalesInvoiceStatus::Approved->value,
now()->startOfMonth(),
now()->endOfMonth()
);
// Razlozi oslobođenja od PDV-a (keširano)
$reasons = SalesInvoice::getVatExemptionReasons();
use ItDelmax\LaravelEfaktura\Facades\Efaktura;
// Verzija eFakture
$version = Efaktura::publicApi()->getVersion();
// Sve registrovane kompanije (keširano 24h)
$companies = Efaktura::publicApi()->getAllCompanies();
// Provera da li je kompanija registrovana
$result = Efaktura::publicApi()->checkByPib('123456789');
if ($result->hasAccount && $result->isActive) {
echo "Kompanija {$result->name} je aktivna";
}
// Jedinice mere (keširano)
$units = Efaktura::publicApi()->getUnitMeasures();
// Pretplata na notifikacije
Efaktura::publicApi()->subscribe();
// Očisti keš
Efaktura::publicApi()->clearCache();
use ItDelmax\LaravelEfaktura\Enums\SalesInvoiceStatus;
use ItDelmax\LaravelEfaktura\Enums\PurchaseInvoiceStatus;
// Status label na srpskom
echo SalesInvoiceStatus::Approved->label(); // "Odobrena"
echo PurchaseInvoiceStatus::New->label(); // "Nova"
// Provera finalnog statusa
if (SalesInvoiceStatus::Approved->isFinal()) {
// Faktura je u finalnom statusu
}
// Provera da li zahteva akciju
if (PurchaseInvoiceStatus::New->