Logo FlexiPeeHP" title="Logo Proyek" style="max-width: 100%;">
Perpustakaan Berbasis PHP untuk interaksi mudah dengan sistem akuntansi Ceko FlexiBee.
CZ: Perpustakaan PHP untuk kemudahan bekerja dengan sistem ekonomi Ceko FlexiBee
❗ Perpustakaan ini akan ditandai sebagai tidak digunakan lagi. Harap perhatikan penerusnya yang ringan https://github.com/Spoje-NET/php-flexibee ❗
Pembuatan perpustakaan ini tidak akan mungkin terjadi tanpa dukungan dari Spoje.Net, yang membiayai pengembangan solusi untuk menghubungkan LMS / FlexiBee dan mengimpor gudang. ?
Saya juga ingin mengucapkan terima kasih kepada dukungan teknis ABRA Flexi s.r.o. atas kesabaran mereka dalam menanggapi pertanyaan dan laporan bug saya yang tidak selalu cerdas.
Penguraian hasil untuk tujuan pencatatan GDPR telah disempurnakan dengan dukungan <PureHTML>
composer require spoje.net/ FlexiPeeHP
jika composer.json yang Anda hasilkan akan terlihat seperti ini:
{
"name" : " vendor/projectname " ,
"description" : " Test " ,
"type" : " project " ,
"require" : {
"spoje.net/ FlexiPeeHP " : " * "
},
"license" : " MIT " ,
"authors" : [
{
"name" : " Vítězslav Dvořák " ,
"email" : " [email protected] "
}
],
"minimum-stability" : " stable "
}
perintah composer install memulai instalasi:
Konfigurasi dilakukan dengan mengatur konstanta berikut:
/*
* URL Flexibee API
*/
define ( ' FLEXIBEE_URL ' , ' https://flexibee-dev.spoje.net:5434 ' );
/*
* Uživatel FlexiBee API
*/
define ( ' FLEXIBEE_LOGIN ' , ' apiuser ' );
/*
* Heslo FlexiBee API
*/
define ( ' FLEXIBEE_PASSWORD ' , ' apipass ' );
/*
* Společnost v FlexiBee
*/
define ( ' FLEXIBEE_COMPANY ' , ' test_s_r_o_ ' );
/*
* Nebo pokud nechceme používat jméno a heslo
*/
define ( ' FLEXIBEE_AUTHSESSID ' , ' 6QuifebMits ' ); //Volitelné
/*
* Pomalý server, velká databáze a přes modem k tomu
*/
define ( ' FLEXIBEE_TIMEOUT ' , 60 ); //Volitelné
atau kredensial dapat diberikan saat membuat instance kelas.
$ invoicer = new FlexiPeeHP FakturaVydana ( null ,[
' company ' => ' Firma_s_r_o_ ' ,
' url ' => ' https://flexibee.firma.cz/ ' ,
' user ' => ' rest ' ,
' password ' => ' -dj3x21xaA_ '
]);
Metode pengaturan ini memiliki prioritas lebih tinggi dibandingkan konstanta yang ditentukan di atas.
$ order = new FlexiPeeHP ObjednavkaPrijata( ' code:OBP0034/2019 ' ,[ ' companyUrl ' => $ _GET [ ' companyUrl ' ], ' authSessionId ' => $ _GET [ ' authSessionId ' ] ])
Dengan cara ini, aplikasi yang dipanggil oleh tombol pengguna yang meneruskan nilai companyUrl dan authSessionId dapat terhubung ke flexibee dan tatanan konkret
Komponen utama dari keseluruhan perpustakaan adalah Kelas FlexiBeeRO, yang mampu berkomunikasi dengan FlexiBee REST API menggunakan ekstensi curl PHP.
Kelas untuk catatan individual kemudian diturunkan darinya, yang berisi metode untuk operasi yang sering digunakan, misalnya "Bayar" dalam kasus faktur yang diterima.
Kelas turunan baru dibuat sedemikian rupa sehingga nama kelas tersebut adalah nama rekamannya, tetapi tanpa tanda hubung. Ini diganti dengan huruf kapital pada namanya.
function evidenceToClass ( $ evidence )
{
return str_replace ( ' ' , '' , ucwords ( str_replace ( ' - ' , ' ' , $ evidence )));
}
Yaitu Jika kita ingin mendapatkan kelas baru untuk record "Unit pengukuran", tampilannya akan seperti ini:
<?php
/**
* @link https://demo.flexibee.eu/c/demo/merna-jednotka/properties Vlastnosti evidence
*/
class MernaJednotka extends / FlexiPeeHP /FlexiBee
{
/**
* Evidence užitá objektem.
*
* @var string
*/
public $ evidence = ' merna-jednotka ' ;
}
Dan kemudian mudah untuk menulis satuan pengukuran pada 2 baris:
$ jednotky = new MernaJednotka ();
print_r ( $ jednotky -> getAllFromFlexiBee () );
Jika kita ingin kelas yang baru dibuat dapat menulis ke flexibee, maka harus diturunkan dari nenek moyang FlexiBeeRW.
Contoh penggunaan lainnya dapat ditemukan di proyek terpisah
Dalam beberapa kasus, ada baiknya kita mengetahui tindakan apa yang dapat kita ambil, atau struktur catatannya. Informasi ini dapat diperoleh dengan menelepon https://demo.flexibee.eu/c/demo/*/properties.json atau https://demo.flexibee.eu/c/demo/*/actions.json, tetapi ini adalah operasi yang relatif memakan waktu. Karena struktur catatan dan Tindakan atau hubungan antara catatan FlexiBee tidak sering berubah, FlexiPeeHP memiliki mekanisme yang memungkinkan bekerja dengan data ini tanpa perlu menanyakan server.
Struktur disimpan di kelas Struktur (Tindakan, Relasi) yang berisi bidang yang ditentukan secara statis yang berisi informasi yang seharusnya diperoleh dari FlexiBee.
Item dalam daftar bukti https://demo.flexibee.eu/c/demo/evidence-list kemudian dapat dengan mudah ditampilkan kapan saja:
echo FlexiPeeHP Structure:: $ evidence [ ' faktura-vydana ' ];
Struktur catatan individual kemudian disimpan dalam variabel statis. Namanya mengikuti aturan yang sama seperti saat membuat nama kelas baru, hanya saja huruf pertamanya adalah huruf kecil. Yaitu:
lcfirst ( FlexiPeeHP FlexiBeeRO:: evidenceToClassName ( $ evidence ))
Jika perlu, kelas-kelas ini kemudian dapat dibuat dengan konten saat ini dengan perintah berikut:
cd tools/
./update_all.sh
Operasi ini memakan waktu beberapa menit. Kemajuannya dapat kita tampilkan sebagai berikut:
tail -f /var/log/syslog | grep FlexiPeeHP test
Jika Anda menyetel $this->debug ke true pada objek FlexiPeeHP , pengujian tambahan akan dilakukan sebelum mengirim data ke FlexiBee. Kemungkinan kesalahan berikut diperiksa:
Dalam mode debug, semua permintaan flexibee dan tanggapannya juga disimpan ke folder /tmp
Pustaka menyertakan mekanisme untuk mengirimkan kesalahan runtime FlexiBee ke pengembang:
Jika FlexiBee mengembalikan Kesalahan Server Internal 500, email yang berisi pesan kesalahan dikirim ke pengembang.
Jika FlexiBee yang berjalan di server yang sama digunakan dan dimungkinkan untuk membaca log kesalahan, sebuah fragmen yang sesuai akan diekstraksi darinya dan ditambahkan ke badan email.
Email tersebut juga berisi informasi tambahan tentang lisensi dan modul yang diaktifkan.
Juga dilampirkan sebagai lampiran adalah file yang berisi isi permintaan ke server, isi tanggapannya, dan file yang berisi informasi tentang curl.
Selama masa pakai objek, kesalahan dicatat dan hanya kesalahan pertama dari setiap jenis yang dikirim.
Tes PHPUnit terletak di folder pengujian . Jika Anda ingin menguji terhadap server selain http://demo.flexibee.eu/ resmi, Anda perlu mengubah pengaturan di file bootstrap.php .
Isi variabel $testServer menentukan pengaturan default mana yang akan digunakan. Dan tentu saja Anda bisa mendefinisikannya sendiri. Sebagai contoh, server pengujian spoje.net ditampilkan di sini.
Untuk pengujian, harap buat terlebih dahulu perusahaan pengujian TESTING s.r.o. dan atur data akses pengguna yang berwenang untuk menggunakan REST API. (Yang merupakan pengguna administrator yang dimasukkan saat menginstal FlexiBee.)
Peringatan: pengujian terhadap perusahaan dengan banyak faktur dan bank yang terhubung mungkin memerlukan waktu, karena panggilan pencocokan dokumen otomatis juga diuji.
Jika Anda memutuskan untuk mewarisi FlexiPeeHP dalam proyek Anda dan menulis pengujian untuk kelas-kelas ini yang juga diwarisi dari FlexiPeeHP , misalnya:
kelas HookRecieverTest memperluas Test FlexiPeeHP ChangesTest
Tambahkan juga jalur ke pengujian asli ke composer.json Anda:
"autoload-dev": {
"psr-4": {
"Test\": "vendor/spoje.net/ FlexiPeeHP /testing/src/ FlexiPeeHP /testing/",
"Test\Ease\": "vendor/vitexsoftware/ease-framework/tests/src/Ease",
"Test\ FlexiPeeHP \": "vendor/spoje.net/ FlexiPeeHP /testing/src/ FlexiPeeHP /",
}
}
Di folder Contoh terdapat contoh penggunaan berikut:
Mengajukan | Keterangan |
---|---|
LampiranSaveToFile.php | menyimpan lampiran ke file |
LampiranUpload.php | unggah lampiran |
AuthSessionIdUsage.php | Contoh autentikasi AuthSessionId |
OtentikasiContact.php | otentikasi kontak |
BatchOperation.php | Menggunakan filter dalam operasi batch |
BuatLabel.php | bekerja dengan label |
DryRun.php | Penyimpanan uji (uji coba) |
Unduh FakturPDF.php | Unduh faktur PDF |
Kesalahan404.php | bekerja dengan catatan yang tidak ada |
TemukanOverdueInvoices.php | menemukan faktur yang sudah jatuh tempo |
DapatkanRecordWithRelation.php | Memperoleh catatan termasuk data dari subdebit |
DapatkanBankAccountForCompany.php | Mendapatkan rekening bank untuk perusahaan dari direktori |
InvoiceLockUnlock.php | Mengunci dan membuka kunci rekaman |
Salinan Faktur.php | pembuatan dokumen perpajakan dari uang muka |
MasukKeluar | login dan logout pengguna |
NajdiDanovyDokladKzalohovemu.php | penelusuran dokumen |
Penyimpanan.php | Stok produk dengan nomor seri |
Faktur Baru.php | Faktur baru dengan tanggal jatuh tempo ditulis sebagai json |
ObjectChaining.php | Merangkai objek untuk beberapa operasi dalam antrian saja |
ObjekKerjasama.php | Berbagi data dan parameter koneksi antar objek |
PerformingActions.php | Cara melakukan tindakan pada dokumen tindakan. misalnya pembatalan |
BacaAddressColumns.php | mengembalikan kolom tertentu |
kirimInvoiceByMail.php | mengirimkan faktur melalui email |
KirimPengingat.php | mengirimkan pengingat |
SetContactAuth.php | pengaturan otentikasi |
TesKoneksi.php | pemeriksaan koneksi |
docker pull vitexsoftware/ FlexiPeeHP
Ada paket .deb yang tersedia untuk Linux. Silakan gunakan repo:
wget -O - http://v.s.cz/[email protected]|sudo apt-key add -
echo deb http://v.s.cz/ stable main > /etc/apt/sources.list.d/ease.list
aptitude update
aptitude install FlexiPeeHP
Dalam hal ini, Anda perlu menambahkan yang berikut ini ke file composer.json aplikasi Anda:
"require" : {
"spojenet_ FlexiPeeHP " : " * " ,
"vitexsoftware_ease-framework" : " * "
},
"repositories" : [
{
"type" : " path " ,
"url" : " /usr/share/php/ FlexiPeeHP " ,
"options" : {
"symlink" : true
}
},
{
"type" : " path " ,
"url" : " /usr/share/php/Ease " ,
"options" : {
"symlink" : true
}
}
]
Jadi ketika Anda menginstal dependensinya, tampilannya akan seperti ini:
Loading composer repositories with package information
Installing dependencies from lock file
- Installing vitexsoftware_ease-framework (1.1.3.3)
Symlinked from /usr/share/php/Ease
- Installing spojenet_ FlexiPeeHP (0.2.1)
Symlinked from /usr/share/php/ FlexiPeeHP
Dan pembaruan secara global untuk seluruh sistem dapat dilakukan melalui apt-get.
Kami juga membuat paket FlexiPeeHP -doc , yang berisi dokumentasi pengembang yang dihasilkan menggunakan program ApiGen. Dokumentasinya dapat dilihat online di http://flexibee-dev.spoje.net/FlexiPeeHP/
Pengujian:
cd /usr/share/doc/ FlexiPeeHP /
composer install
php -f flexibeeping.php
Kami membuat paket Debian dengan menjalankan make deb
Gambar untuk Docker:
docker build -t vitexsoftware/ FlexiPeeHP
Statistik kerja pada proyek WakaTime