Számlagenerálás
Alapok
Egy normál számla generálásának teljes példáját a következő fájl szemlélteti:
./examples/document/invoice/create_invoice_with_custom_data.php
A számla generálásához a következő lépések szükségesek:
// 1. Papír számla létrehozása (átutalással fizetendő magyar nyelvű (Ft) számla
// kiállítása mai keltezési és teljesítési dátummal, +8 nap fizetési határidővel).
$invoice = new Invoice(Invoice::INVOICE_TYPE_P_INVOICE);
// 2. Egyedi fejléc adatok hozzáadása a számlához (pl. számlakép sablon)
$invoice->getHeader()->setInvoiceTemplate(Invoice::INVOICE_TEMPLATE_8CM);
// 3. Eladói adatok hozzáadása a számlához
$invoice->setSeller(new Seller('OBER', '11111111-22222222-33333333'));
// 4. Vevő adatainak hozzáadása (kötelezően kitöltendő adatokkal)
$buyer = new Buyer('Kovacs Bt.', '2030', 'Érd', 'Tarnoki street 23.');
// a) Vevői adatok hozzáadása a számlához
$invoice->setBuyer($buyer);
// 5. Számla tétel összeállítása alapértelmezett adatokkal
// (1 db tétel 27%-os ÁFA tartalommal)
$item = new InvoiceItem('Eladó tétel 1', 10000.0);
// a) Tétel nettó értékének beállítása
$item->setNetPrice(10000.0);
// b) Tétel ÁFA értékének beállítása
$item->setVatAmount(2700.0);
// c) Tétel bruttó értékének beállítása
$item->setGrossAmount(12700.0);
// d) Tétel adatainak hozzáadása a számlához
$invoice->addItem($item);
// 6. Számla elkészítése (generálás)
$result = $agent->generateInvoice($invoice);
Elvárt és opcionális bemenetek
Számlafejléc adatok
| Számlafejléc adatok | Mező | Típus | Kötelező | Alapérték |
|---|---|---|---|---|
| típus | invoiceType | int | igen | 1 |
| keltezés dátum | issueDate | date | igen | mai nap |
| teljesítés dátum | fulfillment | date | igen | mai nap |
| fizetési határidő | paymentDue | date | igen | keltezés +8 nap |
| fizetési mód | paymentMethod | string | igen | átutalás |
| pénznem | currency | string | igen | Ft |
| nyelv | language | string | igen | hu |
| megjegyzés | comment | string | ||
| bank név (árfolyam) | exchangeBank | string | ||
| banki árfolyam | exchangeRate | string | ||
| rendelésszám | orderNumber | string | ||
| díjbekérőszám | proformaNumber | string | ||
| helyesbített számlaszám | correctivedNumber | string | ||
| logo | extraLogo | string | ||
| előtag | prefix | string | ||
| fizetendő korrekció | correctionToPay | double | ||
| kifizetettség | paid | boolean | false | |
| ÁFA árrés | profitVat | boolean | false | |
| EU-s ÁFA | euVat | boolean | false | |
| számla sablon | invoiceTemplate | string | SzlaMost | |
| előnézeti PDF | previewPdf | boolean | false | |
| előlegszámla számlaszám | prePaymentInvoiceNumber | string |
Számla eladói adatok
| Számla eladói adatok | Mező | Típus | Kötelező | Alapérték |
|---|---|---|---|---|
| bank | bank | string | ||
| bankszámlaszám | bankAccount | string | ||
| aláíró neve | signatoryName | string | ||
| e-mail válaszcím | emailReplyTo | string | ||
| e-mail tárgy | emailSubject | string | ||
| e-mail tartalma | emailContent | string |
Számla vevői adatok
| Számla vevői adatok | Mező | Típus | Kötelező | Alapérték |
|---|---|---|---|---|
| azonosító | id | string | ||
| név | name | string | igen | |
| ország | country | string | ||
| irányítószám | zipCode | string | igen | |
| város | city | string | igen | |
| cím | address | string | igen | |
| e-mail cím | email | string | ||
| küldünk-e e-mail | sendEmail | boolean | true | |
| adószám | taxNumber | string | ||
| csoportazonosító | groupIdentifier | string | ||
| EU adószám | taxNumberEU | string | ||
| postázási név | postalName | string | ||
| postázási ország | postalCountry | string | ||
| postázási irsz. | postalZip | string | ||
| postázási város | postalCity | string | ||
| postázási cím | postalAddress | string | ||
| főkönyvi adatok | ledgerData | LedgerData | ||
| aláíró neve | signatoryName | string | ||
| telefonszám | phone | string | ||
| megjegyzés | comment | string |
Számlaértesítő
Ha a számla elkészültével számlaértesítő e-mailt is szeretnél küldeni, a vevőn állítsd be a cím(ek)et setEmail(...)-lel, és kapcsold be a küldést setSendEmail(true)-val.
Egyetlen email mezőbe (string) írd az összes címet. Ha több címzett van, válaszd el a címeket vesszővel, pontosvesszővel vagy szóközzel; egymás után több ilyen elválasztó is lehet. A Számlázz.hu ezek mentén bontja szét a szöveget, a címek elején és végén lévő szóközöket levágja, és minden így kapott résznek külön-külön érvényes e-mail címnek kell lennie.
$buyer->setEmail('elso@pelda.hu, masodik@pelda.hu');
Az eladó oldalán opcionálisan a emailReplyTo, emailSubject és emailContent mezőkkel szabhatod testre az értesítő levelet; lásd ./examples/document/invoice/create_invoice_with_custom_data.php.
Számla vevői főkönyvi adatok
| Számla vevői főkönyvi adatok | Mező | Típus | Kötelező | Alapérték |
|---|---|---|---|---|
| vevő azonosító | buyerId | string | ||
| könyvelés dátum | bookingDate | date | igen | |
| főkönyvi szám | buyerLedgerNumber | string | ||
| folyamatos teljesítés | continuedFulfillment | boolean | igen | false |
| elszámolási időszak kezdete | settlementPeriodStart | date | ||
| elszámolási időszak vége | settlementPeriodEnd | date |
Számlatétel adatok
| Számlatétel adatok | Mező | Típus | Kötelező | Alapérték |
|---|---|---|---|---|
| azonosító | id | string | ||
| megnevezés | name | string | igen | |
| mennyiség | quantity | double | igen | |
| mennyiségi egység | quantityUnit | string | igen | |
| nettó egységár | netUnitPrice | double | igen | |
| ÁFA kulcs | vat | string | igen | |
| árrés ÁFA alap | priceGapVatBase | double | ||
| nettó érték | netPrice | double | igen | |
| ÁFA érték | vatAmount | double | igen | |
| bruttó érték | grossAmount | double | igen | |
| megjegyzés | comment | comment | ||
| adattörlő kód darabszáma | dataDeletionCode | integer |
Számlatétel főkönyvi adatok
| Számlatétel főkönyvi adatok | Mező | Típus | Kötelező | Alapérték |
|---|---|---|---|---|
| Árbevétel főkönyvi szám | revenueLedgerNumber | string | ||
| Árbevétel főkönyvi szám | vatLedgerNumber | string | ||
| Gazdasági esemény típus | economicEventType | string | ||
| ÁFA gazdasági esemény típus | vatEconomicEventType | string | ||
| Számla tétel elszámolási időszak kezdete | settlementPeriodStart | date | ||
| Számla tétel elszámolási időszak vége | settlementPeriodEnd | date |