yldrykuru/ublinvoice

UBL-TR 2.1 Generator

0.0.2.x-dev 2024-02-07 00:59 UTC

This package is auto-updated.

Last update: 2024-05-07 01:31:37 UTC


README

Bu kütüphane, fatura oluşturmak için kullanılan UBL (Universal Business Language) standardına uygun XML faturalarını oluşturmanıza olanak tanır.

Kullanım Örneği

       $invoice = (new \Yldrykuru\Ublinvoice\Invoice())
            ->setUBLVersionID("2.1")
            ->setCustomizationID("TR1.2")
            ->setProfileID("TEMELFATURA")
            ->setId("GIB20090000000001")
            ->setCopyIndicator(false)
            ->setUUID("F47AC10B-58CC-4372-A567-0E02B2C3D479")
            ->setIssueDate("2009-01-05")
            ->setIssueTime("14:42:00")
            ->setInvoiceTypeCode(\Yldrykuru\Ublinvoice\InvoiceTypeCode::SATIS)
            ->setDocumentCurrencyCode("TRY")
            ->setLineCountNumeric("1")
            ->setInvoicePeriod(
                (new \Yldrykuru\Ublinvoice\InvoicePeriod())
                    ->setStartDate("2008-12-05")
                    ->setEndDate("2009-01-05")
            )
            ->setSignature(
                (new \Yldrykuru\Ublinvoice\Signature())
                    ->setVknTCKN("1288331521")
                    ->setSignatoryParty(
                        (new \Yldrykuru\Ublinvoice\SignatoryParty())
                            ->setVkn("1288331521")
                            ->setPostalAddress(
                                (new \Yldrykuru\Ublinvoice\Address())
                                    ->setStreetName("Papatya Caddesi Yasemin Sokak")
                                    ->setBuildingNumber("21")
                                    ->setCitySubdivisionName("Beşiktaş")
                                    ->setCityName("İSTANBUL")
                                    ->setPostalZone("34100")
                            )
                    )
                    ->setDigitalSignatureAttachmentURI("#Signature")
            )
            ->setAccountingSupplierParty(
                (new \Yldrykuru\Ublinvoice\Party())
                    ->setName("AAA Anonim Şirketi")
                    ->setWebsiteURI("http://www.aaa.com.tr/")
                    ->setPostalAddress(
                        (new \Yldrykuru\Ublinvoice\Address())
                            ->setStreetName("Papatya Caddesi Yasemin Sokak")
                            ->setBuildingNumber("21")
                            ->setCitySubdivisionName("Beşiktaş")
                            ->setCityName("İstanbul")
                            ->setPostalZone("34100")
                            ->setCountry(
                                (new \Yldrykuru\Ublinvoice\Country())
                                    ->setName("Türkiye")
                            )
                    )->setContact(
                        (new \Yldrykuru\Ublinvoice\Contact())
                            ->setTelephone("(212) 925 51515")
                            ->setTelefax("(212) 925505015")
                            ->setElectronicMail("aa@aaa.com.tr")
                    )->setPartyTaxScheme(
                        (new \Yldrykuru\Ublinvoice\PartyTaxScheme())
                            ->setTaxScheme(
                                (new \Yldrykuru\Ublinvoice\TaxScheme())
                                    ->setName("Büyük Mükellefler")
                            )
                    )->setPartyIdentifications(
                        [
                            (new \Yldrykuru\Ublinvoice\PartyIdentification())->setValue("VKN", "1288331521")
                        ]
                    )
            )
            ->setAccountingCustomerParty(
                (new \Yldrykuru\Ublinvoice\Party())
                    ->setName("Deneme")
                    ->setPostalAddress(
                        (new \Yldrykuru\Ublinvoice\Address())
                            ->setStreetName("6. Sokak")
                            ->setBuildingNumber("1")
                            ->setCitySubdivisionName("Beşiktaş")
                            ->setCityName("İstanbul")
                            ->setPostalZone("34100")
                            ->setCountry(
                                (new \Yldrykuru\Ublinvoice\Country())
                                    ->setName("Türkiye")
                            )
                    )->setContact(
                        (new \Yldrykuru\Ublinvoice\Contact())
                            ->setElectronicMail("1234567890@mydn.com.tr")
                    )->setPerson(
                        (new \Yldrykuru\Ublinvoice\Person())
                            ->setFirstName("Ali")
                            ->setFamilyName("YILMAZ")
                    )->setPartyIdentifications(
                        [
                            (new \Yldrykuru\Ublinvoice\PartyIdentification())->setValue("TCKN", "1234567890"),
                            (new \Yldrykuru\Ublinvoice\PartyIdentification())->setValue("TESISATNO", "1234567"),
                            (new \Yldrykuru\Ublinvoice\PartyIdentification())->setValue("SAYACNO", "12345678")
                        ]
                    )
            )
            ->setPaymentTerms(
                (new \Yldrykuru\Ublinvoice\PaymentTerms())->setNote("BBB Bank Otomatik Ödeme")->setPaymentDueDate("2009-01-20")
            )
            ->setTaxTotal(
                (new \Yldrykuru\Ublinvoice\TaxTotal())->setTaxAmount(2.73)->addTaxSubTotal(
                    (new \Yldrykuru\Ublinvoice\TaxSubTotal())->setTaxableAmount(15.15)->setTaxAmount(2.73)->setTaxCategory(
                        (new \Yldrykuru\Ublinvoice\TaxCategory())->setTaxScheme(
                            (new \Yldrykuru\Ublinvoice\TaxScheme())->setTaxTypeCode("0015")
                        )
                    )
                )
            )
            ->setLegalMonetaryTotal(
                (new \Yldrykuru\Ublinvoice\LegalMonetaryTotal())
                    ->setLineExtensionAmount(15.15)
                    ->setTaxExclusiveAmount(15.15)
                    ->setTaxInclusiveAmount(17.88)
                    ->setPayableAmount(17.88)
            )
            ->setInvoiceLines([
                (new \Yldrykuru\Ublinvoice\InvoiceLine())
                    ->setId("1")
                    ->setInvoicedQuantity(101)
                    ->setLineExtensionAmount(15.15)
                    ->setUnitCode("KWH") //BİZİM KULLANACAĞIMIZ C62
                    ->setTaxTotal(
                        (new \Yldrykuru\Ublinvoice\TaxTotal())->setTaxAmount(2.73)->addTaxSubTotal(
                            (new \Yldrykuru\Ublinvoice\TaxSubTotal())->setTaxableAmount(15.15)->setTaxAmount(2.73)->setPercent(18.0)->setTaxCategory(
                                (new \Yldrykuru\Ublinvoice\TaxCategory())->setTaxScheme(
                                    (new \Yldrykuru\Ublinvoice\TaxScheme())->setName("KDV")->setTaxTypeCode("0015")
                                )
                            )
                        )
                    )->setItem(
                        (new \Yldrykuru\Ublinvoice\Item())->setName("Elektrik Tüketim Bedeli")
                    )
                    ->setPrice(
                        (new \Yldrykuru\Ublinvoice\Price())->setPriceAmount(0.15)->setUnitCode("KWH")
                    )
            ]);

      $generator = new \Yldrykuru\Ublinvoice\Generator();
      $outputXMLString = $generator->invoice($invoice);

      $dom = new \DOMDocument;
      $dom->loadXML($outputXMLString);

      $dom->save('KAYIT PATHI');

Katkıda Bulunma

Bu projeye katkıda bulunmaktan çekinmeyin. Sorunlar oluşturabilir, depoyu çatallayabilir ve işlevselliği geliştirmek için pull istekleri gönderebilirsiniz.

Lisans

Bu proje MIT Lisansı ile lisanslanmıştır. Daha fazla bilgi için LICENSE dosyasına göz atabilirsiniz.