Skip to content
dsge edited this page Jun 26, 2016 · 6 revisions

Clapp\SzamlazzhuClient\Invoice

Egy számla adatait reprezentáló class.

$invoice = new Clapp\SzamlazzhuClient\Invoice($attributes = [])

  • $attributes (opcionális):
    • Clapp\SzamlazzhuClient\Invoice másik számla
    • array számla mezők

$invoice->validateCustomer()

Ellenőrzi, hogy a számlán a Vevővel kapcsolatos adatok helyesen vannak-e kitöltve.

Dobhat: - Illuminate\Validation\ValidationException

$invoice->validateMerchant()

Ellenőrzi, hogy a számlán az Eladóval kapcsolatos adatok helyesen vannak-e kitöltve.

Dobhat: - Illuminate\Validation\ValidationException

$invoice->validateItems()

Ellenőrzi, hogy a számlán az Tételekkel kapcsolatos adatok helyesen vannak-e kitöltve.

Dobhat: - Illuminate\Validation\ValidationException

$invoice->validateOrderDetails()

Ellenőrzi, hogy a számlán az számla részleteivel kapcsolatos adatok helyesen vannak-e kitöltve.

Dobhat: - Illuminate\Validation\ValidationException

$invoice->validate()

Ellenőrzi, hogy a számla adatai helyesen vannak-e kitöltve. Ugyanaz, mint az előző valiációs függvények együtt.

Dobhat: - Illuminate\Validation\ValidationException

$invoice->addItem($item)

Egyetlen tétel hozzáadása a számlához. Ha többet szeretnél egyszerre, akkor lásd az items mezőt.

  • $item:
    • Clapp\SzamlazzhuClient\Contract\InvoiceableItemContract tétel
    • array tétel mezői

$invoice->toArray()

A számla által összeállított array. A mezők sorrendje a számla generáláshoz szükséges XSD sémának megfelelő.

Getter-setter mezők

Csoportos:

  • customer - Egy vevő összes adatának beállítása vagy lekérdezése egyszerre.
    • Clapp\SzamlazzhuClient\Contract\InvoiceableCustomerContract vevő
    • array vevő mezői
  • merchant - Egy eladó összes adatának beállítása vagy lekérdezése egyszerre.
    • Clapp\SzamlazzhuClient\Contract\InvoiceableMerchantContract eladó
    • array eladó mezői
  • items - A számla tételeinek beállítása vagy lekérdezése egyszerre.
    • Clapp\SzamlazzhuClient\Contract\InvoiceableItemCollectionContract tételek
    • array tételek

Egyenként is állítható:

  • customerName (kötelező) string
  • customerBillingPostcode (kötelező) string
  • customerBillingCity (kötelező) string
  • customerBillingAddress (kötelező) string
  • customerEmail: string email

ha meg van adva, akkor erre az email címre kiküldi a számlát a Számlázz.hu

  • customerShouldReceiveNotification: boolean

kérheti, hogy érvényes email cím esetén mégse küldje el a Számla Agent a számlaértesítő email-t

  • customerTaxNumber string
  • customerShippingName string
  • customerShippingPostcode string
  • customerShippingCity string
  • customerShippingAddress string
  • customerSignerName string
  • customerPhone string
  • customerComment string
  • merchantBankName (kötelező) string
  • merchantBankAccountNumber (kötelező) string
  • merchantEmailReplyto string
  • merchantEmailSubject string
  • merchantEmailText string
  • merchantSignerName: string

Ha a [Számlázz.hu-n a] beállítások oldalon be van kapcsolva, akkor ez a név megjelenik az aláírásra szolgáló vonal alatt

  • signatureDate (kötelező) - dátum
    • string dátum - bármilyen formátumban, amit a Carbon\Carbon értelmezni tud
    • Carbon\Carbon instance
  • settlementDate (kötelező) - dátum
    • string dátum - bármilyen formátumban, amit a Carbon\Carbon értelmezni tud
    • Carbon\Carbon instance
  • dueDate (kötelező) - dátum
    • string dátum - bármilyen formátumban, amit a Carbon\Carbon értelmezni tud
    • Carbon\Carbon instance
  • paymentMethod (kötelező) string
  • currency (kötelező) string három karakteres pénznem, pl. "HUF"
  • language (kötelező) string egyike ezeknek: hu, en, de, it
  • comment string
  • exchangeRateBank string - melyik bank árfolyamán kell érteni az exchangeRate-t
  • exchangeRate double - ha a currency nem "HUF", akkor megadható az árfolyam
  • orderNumber string
  • paid boolean - fizetve van-e a számla

Egy termék lehetséges mezői:

  • name (kötelező) string
  • quantity (kötelező) double
  • quantityUnit (kötelező) string
  • netUnitPrice (kötelező) double
  • vatRate (kötelező) string
  • netValue (kötelező) double
  • vatValue (kötelező) double
  • grossValue (kötelező) double
  • comment string

Clapp\SzamlazzhuClient\SzamlazzhuClient

A Számlázz.hu API-jával való kommunikációt valósítja meg.

$client = new SzamlazzhuClient();

Kötelezően beállítandó mezők:

$client->username = 'foo'; // string Számlázz.hu felhasználónév
$client->password = 'bar'; // string Számlázz.hu jelszó

$client->generateInvoicePdf($invoice)

PDF generálása a megadott számlából a Számlázz.hu API-ján keresztül.

  • mixed $invoice:

    • Clapp\SzamlazzhuClient\Invoice számla
    • array számla mezői
  • Dobhat:

    • Clapp\SzamlazzhuClient\SzamlazzhuApiException
  • Return:

    • Psr\Http\Message\StreamInterface számla pdf
try {
    $pdfContents = $client->generateInvoicePdf($invoice)
}catch( Clapp\SzamlazzhuClient\SzamlazzhuApiException $e ){
    // var_dump( $e->getCode(), $e->getMessage() );
}
file_put_contents('szamlam.pdf', $pdfContents);

Clapp\SzamlazzhuClient\Contract\InvoiceableCustomerContract

Interface, ami egy számlázható Vevőt reprezentál.

Függvényei:

/**
 * @return array A számlára kerülő vevő adatai.
 * [
 *  'customerName' => 'Kovacs Bt.',
 *  'customerBillingPostcode' => '2030',
 *  'customerBillingCity' => 'Érd',
 *  'customerBillingAddress' => 'Tárnoki út 23.',
 *  'customerEmail' => '', //ha meg van adva, akkor erre az email címre kiküldi a számlát a Számlázz.hu TESZT FIÓK ESETÉN BIZTONSÁGI OKOKBÓL NEM KÜLD A RENDSZER EMAILT. AZ EMAIL KÜLDÉS E-SZÁMLA ÉS PRÉMIUM CSOMAG ESETÉN MŰKÖDIK.
 *  'customerShouldReceiveNotification' => false, //kérheti, hogy érvényes email cím esetén mégse küldje el a Számla Agent a számlaértesítő email-t
 *  'customerTaxNumber' => '12345678-1-42',
 *  'customerShippingName' => 'Kovács Bt. postázási név', //a postázási adatok nem kötelezők
 *  'customerShippingPostcode' => '2040',
 *  'customerShippingCity' => 'Budaörs',
 *  'customerShippingAddress' => 'Szivárvány utca 8. VI.em. 42.',
 *  'customerSignerName' => 'Vevő Aláírója', //Nem kötelező adat. Ha a beállítások oldalon be van kapcsolva, akkor ez a név megjelenik az aláírásra szolgáló vonal alatt
 *  'customerPhone' => 'Tel:+3630-555-55-55, Fax:+3623-555-555',
 *  'customerComment' => 'A portáról felszólni a 214-es mellékre.',
 * ];
 */
public function getInvoiceCustomerData();

Clapp\SzamlazzhuClient\Contract\InvoiceableItemCollectionContract

Interface, ami számlázható termékek listáját ("Tételek"-et) reprezentálja.

Függvényei:

/**
 * @return array A számlára kerülő összes termék adatai.
 * A tömb elemei mind tömbök, vagy `Clapp\SzamlazzhuClient\Contract\InvoiceItemContract` instance-ok.
 */
public function getInvoiceItemCollectionData();

Clapp\SzamlazzhuClient\Contract\InvoiceableItemContract

Interface, ami egy számlázható terméket ("Tétel"-t) reprezentál.

Függvényei:

/**
 * @return array A számlára kerülő termék adatai.
 * [
 *  'name' => 'Elado izé',
 *  'quantity' => 1.0,
 *  'quantityUnit' => 'db',
 *  'netUnitPrice' => '10000',
 *  'vatRate' => '25', //ua. adható meg, mint a számlakészítés oldalon
 *  'netValue' => '10000.0',
 *  'vatValue' => '2500.0',
 *  'grossValue' => '12500.0',
 *  'comment' => 'tétel megjegyzés 1',
 * ];
 */
public function getInvoiceItemData();

Clapp\SzamlazzhuClient\Contract\InvoiceableMerchantContract

Interface, ami egy számlázható Eladót reprezentál.

/**
 * @return array
 * A számlára kerülő eladó adatai,
 * "az itt nem szereplő adatokat a Számlázz.hu felhasználói fiókból veszi a rendszer"
 * [
 *  'merchantBankName' => '',
 *  'merchantBankAccountNumber' => '',
 *  'merchantEmailReplyto' => '',
 *  'merchantEmailSubject' => '',
 *  'merchantEmailText' => '',
 *  'merchantSignerName' => '', //Nem kötelező adat. Ha a beállítások oldalon be van kapcsolva, akkor ez a név megjelenik az aláírásra szolgáló vonal alatt
 * ];
 */
public function getInvoiceMerchantData();

Clone this wiki locally