1. Go to this page and download the library: Download mlevent/fatura 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/ */
mlevent / fatura example snippets
use Mlevent\Fatura\Gib;
$gib = (new Gib)->setTestCredentials()
->login();
echo $gib->getToken();
// Fatura detayları
$invoice = new InvoiceModel(
faturaTipi: InvoiceType::Iade,
...
);
// İade faturası için iadeye konu faturalar
$invoice->addReturnItem(
new InvoiceReturnItemModel(
faturaNo : 'GIB2022000001416',
duzenlenmeTarihi: '31/12/2022'
)
);
// Fatura detayları
$invoice = new InvoiceModel(
faturaTipi: InvoiceType::Tevkifat,
...
);
// Ürün/Hizmetler
$invoice->addItem(
new InvoiceItemModel(
tevkifatKodu: 613, // 613 - Çevre, Bahçe ve Bakım Hizmetleri [KDVGUT-(I/C-2.1.3.2.11)]
...
)
);
print_r(Tax::KDVTevkifat->codes());
Array
(
[601] => Array
(
[rate] => 40
[name] => Yapım İşleri ile Bu İşlerle Birlikte İfa Edilen Mühendislik-Mimarlık ve Etüt-Proje Hizmetleri [KDVGUT-(I/C-2.1.3.2.1)]
)
...
// Fatura detayları
$invoice = new InvoiceModel(
faturaTipi: InvoiceType::OzelMatrah,
...
);
// Ürün/Hizmetler
$invoice->addItem(
new InvoiceItemModel(
...
ozelMatrahNedeni: 805, // 805 - Altından Mamül veya Altın İçeren Ziynet Eşyaları İle Sikke Altınların Teslimi
ozelMatrahTutari: 1250,
)
);
print_r(InvoiceType::OzelMatrah->reasons());
Array
(
[801] => Milli Piyango, Spor Toto vb. Oyunlar
[802] => At yarışları ve diğer müşterek bahis ve talih oyunları
[803] => Profesyonel Sanatçıların Yer Aldığı Gösteriler, Konserler, Profesyonel Sporcuların Katıldığı Sportif Faaliyetler, Maçlar, Yarışlar ve Yarışmalar
...
)
use Mlevent\Fatura\Enums\Unit;
use Mlevent\Fatura\Gib;
use Mlevent\Fatura\Models\ProducerReceiptModel;
use Mlevent\Fatura\Models\ProducerReceiptItemModel;
// Müstahsil Makbuzu Detayları
$producerReceipt = new ProducerReceiptModel(
tarih : '20/10/2022', // ☑️ Opsiyonel @string @default=(dd/mm/yyyy)
saat : '23:50:48', // ☑️ Opsiyonel @string @default=(hh/mm/ss)
vknTckn : '11111111111', // ✴️ Zorunlu @string
aliciAdi : 'Walter', // ✴️ Zorunlu @string
aliciSoyadi : 'Bishop', // ✴️ Zorunlu @string
sehir : '', // ✅ Opsiyonel @string
websitesi : '', // ✅ Opsiyonel @string
not : '', // ✅ Opsiyonel @string
teslimTarihi: '', // ✅ Opsiyonel @string
);
// Ürün/Hizmetler
$producerReceipt->addItem(
new ProducerReceiptItemModel(
malHizmet : 'Yazılım Hizmeti', // ✴️ Zorunlu @string
miktar : 3, // ✴️ Zorunlu @float
birim : Unit::Saat, // ✴️ Zorunlu @Unit
birimFiyat : 100, // ✴️ Zorunlu @float
gvStopajOrani: 20 // ✴️ Zorunlu @int
)
);
$service = (new Gib(DocumentType::ProducerReceipt))->login('333333054', '******');
if ($service->createDraft($producerReceipt)) {
echo $producerReceipt->getUuid(); // 04e17398-468d-11ed-b3cb-4ccc6ae28384
}
$service->logout();
use Mlevent\Fatura\Models\InvoiceModel;
use Mlevent\Fatura\Models\InvoiceItemModel;
$invoice = new InvoiceModel(...);
$invoice->addItem(
new InvoiceItemModel(...),
new InvoiceItemModel(...),
);
$invoice->setNote(number_to_words($invoice->getPaymentTotal())); // ALTI YÜZ OTUZ DÖRT TÜRK LİRASI ALTMIŞ BİR KURUŞ
use Mlevent\Fatura\Enums\Tax;
use Mlevent\Fatura\Models\InvoiceItemModel;
$invoiceItem = new InvoiceItemModel(
malHizmet : 'Çimento',
birim : Unit::Ton,
miktar : 3,
birimFiyat : 1259,
kdvOrani : 18,
);
// Hizmete vergi ekleme
$invoiceItem->addTax(Tax::Damga, 15) // %15 damga vergisi
->addTax(Tax::GVStopaj, 25); // %25 gelir vergisi
// Vergi kodu kullanarak vergi ekleme
$invoiceItem->addTax(Tax::from(1047), 15); // %15 damga vergisi
use Mlevent\Fatura\Enums\Tax;
// Vergiler
foreach (Tax::cases() as $tax) {
echo $tax->value; // 4071
echo $tax->name; // ElkHavagazTuketim
echo $tax->alias(); // Elektrik Havagaz Tüketim Vergisi
}
use Mlevent\Fatura\Models\InvoiceModel;
use Mlevent\Fatura\Models\InvoiceItemModel;
$invoice = new InvoiceModel(...);
$invoice->addItem(
new InvoiceItemModel(...),
new InvoiceItemModel(...),
);
// Her bir öğeye ait vergiler
foreach ($invoice->getItems() as $item) {
// Öğeye eklenen vergiler toplamı
print_r($item->totalTaxAmount());
// Öğeye eklenen vergilere ait kdv toplamı
print_r($item->totalTaxVat());
// Öğeye eklenen vergiler
print_r($item->getTaxes());
// Öğeye ait toplamlar
print_r($item->getTotals());
}
// Belgeye ait vergiler
print_r($invoice->getTaxes());
// Belgeye ait toplamlar
print_r($invoice->getTotals());
use Mlevent\Fatura\Gib;
use Mlevent\Fatura\Models\InvoiceModel;
$gib = (new Gib)->login('333333054', '******');
$invoice = InvoiceModel::importFromApi(
$gib->getDocument('c4e9e0a2-4788-11ed-bbd4-4ccc6ae28384')
);
$invoice->aliciAdi = 'Nureddin';
$invoice->aliciSoyadi = 'Nebati';
$invoice->adres = 'Bankalar Cd. Faiz Sk. No:128/A';
// Faturayı güncelle
if ($gib->createDraft($invoice)) {
echo $invoice->getUuid(); // c4e9e0a2-4788-11ed-bbd4-4ccc6ae28384
}
$fetchToDelete = $gib->selectColumn('ettn')
->onlyUnsigned()
->getAll('10/10/2022', '10/15/2022');
if ($gib->deleteDraft($fetchToDelete)) {
echo "{$gib->rowCount()} adet belge silindi!"; // x adet belge silindi
}
$setToDelete = [
'90559052-8bd0-4f68-a733-12157cf53cfb',
'521ce2b1-290c-45fa-8312-d455672289ef',
];
if ($gib->deleteDraft($setToDelete)) {
echo "{$gib->rowCount()} adet belge silindi!"; // 2 adet belge silindi
}
$operationId = $gib->startSmsVerification();
// Portaldan belirli bir tarih aralığındaki tüm onaysız belgeleri getir
$setToSign = $gib->selectColumn('ettn')
->onlyUnsigned()
->getAll('01/10/2022', '15/10/2022');
// Onaylanacak belgelere ait UUID'leri kendiniz de belirtebilirsiniz
$setToSign = [
'2e989428-63ca-11ed-b617-4ccc6ae28384',
'54c5df01-038b-4e01-973d-cd31e4a547f3',
];
// Belgeleri onayla
if ($gib->completeSmsVerification($smsCode, $operationId, $setToSign)) {
echo "{$gib->rowCount()} adet belge onaylandı!"; // x adet belge onaylandı
}