FlexiPeeHP 標誌" title="專案標誌" style="max-width: 100%;">
基於 PHP 的函式庫,可輕鬆與捷克會計系統 FlexiBee 互動。
捷克: PHP 函式庫可輕鬆與捷克經濟系統 FlexiBee 搭配使用
❗ 該程式庫將被標記為已棄用。請關注它的輕量級後繼者 https://github.com/Spoje-NET/php-flexibee ❗
如果沒有 Spoje.Net 的大力支持,這個函式庫的創建是不可能的,Spoje.Net 出資開發了連接 LMS / FlexiBee 和導入倉庫的解決方案。 ?
我還要感謝 ABRA Flexi s.r.o. 的技術支持,感謝他們耐心地回答我並不總是聰明的問題和錯誤報告。
在 <PureHTML> 的支援下,針對 GDPR 日誌記錄目的的結果解析已得到改進
composer require spoje.net/ FlexiPeeHP
如果你產生的composer.json看起來像這樣:
{
"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 "
}
Composer install指令開始安裝:
配置是透過設定以下常數來完成的:
/*
* 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é
或在實例化該類別時可以提供憑證。
$ invoicer = new FlexiPeeHP FakturaVydana ( null ,[
' company ' => ' Firma_s_r_o_ ' ,
' url ' => ' https://flexibee.firma.cz/ ' ,
' user ' => ' rest ' ,
' password ' => ' -dj3x21xaA_ '
]);
這種設定方法比上面定義的常數具有更高的優先權。
$ order = new FlexiPeeHP ObjednavkaPrijata( ' code:OBP0034/2019 ' ,[ ' companyUrl ' => $ _GET [ ' companyUrl ' ], ' authSessionId ' => $ _GET [ ' authSessionId ' ] ])
這樣,由使用者按鈕傳遞companyUrl和authSessionId值調用的應用程式就可以連接到flexibee和特定訂單
整個庫的核心元件是 FlexiBeeRO 類,它能夠使用curl PHP 擴充功能與FlexiBee REST API 進行通訊。
然後從中派生出各個記錄的類,其中包含常用操作的方法,例如收到發票時的「付款」。
建立新的衍生類別時,類別的名稱是記錄的名稱,但不帶連字號。它們被名稱中的大寫字母取代。
function evidenceToClass ( $ evidence )
{
return str_replace ( ' ' , '' , ucwords ( str_replace ( ' - ' , ' ' , $ evidence )));
}
那是如果我們想要為「測量單位」記錄派生一個新類,它將如下所示:
<?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 ' ;
}
然後很容易將測量單位寫在兩行上:
$ jednotky = new MernaJednotka ();
print_r ( $ jednotky -> getAllFromFlexiBee () );
如果我們希望新建立的類別能夠寫入flexibee,它必須從祖先FlexiBeeRW派生。
更多使用範例可以在單獨的項目中找到
在某些情況下,了解我們可以採取哪些操作或記錄的結構是什麼是很有好處的。可以透過呼叫 https://demo.flexibee.eu/c/demo/*/properties.json 或 https://demo.flexibee.eu/c/demo/*/actions.json 來獲取此信息,但這是操作比較耗時。由於記錄和操作的結構或 FlexiBee 記錄之間的關係不會經常更改,因此FlexiPeeHP具有一種機制,可在無需查詢伺服器的情況下處理這些資料。
該結構儲存在 Structure 類別(Actions、Relations)中,該類別包含一個靜態定義的字段,其中包含必須從 FlexiBee 獲取的資訊。
證據清單 https://demo.flexibee.eu/c/demo/evidence-list 中的項目可以隨時輕鬆顯示:
echo FlexiPeeHP Structure:: $ evidence [ ' faktura-vydana ' ];
然後,各個記錄的結構儲存在靜態變數中。它們的名稱遵循與創建新類別名稱相同的規則,只是第一個字母是小寫的。那是:
lcfirst ( FlexiPeeHP FlexiBeeRO:: evidenceToClassName ( $ evidence ))
如有必要,可以使用以下命令使用目前內容產生這些類別:
cd tools/
./update_all.sh
手術需要幾分鐘。我們可以如下顯示進度:
tail -f /var/log/syslog | grep FlexiPeeHP test
如果您在FlexiPeeHP物件中將 $this->debug 設為 true,則在將資料傳送至 FlexiBee 之前將執行額外的測試。檢查以下可能的錯誤:
在偵錯模式下,所有 Flexibee 請求及其回應也會儲存到 /tmp 資料夾中
該庫包含一種向開發人員發送 FlexiBee 運行時錯誤的機制:
如果 FlexiBee 傳回內部伺服器錯誤 500,則會向開發人員傳送包含錯誤訊息的電子郵件。
如果使用在同一伺服器上執行的 FlexiBee 並且可以讀取錯誤日誌,則會從中提取適當的片段並將其新增至郵件正文。
該電子郵件還包含有關許可證和啟用的模組的其他資訊。
也作為附件附加的文件包含對伺服器的請求正文、其回應正文以及包含有關curl 資訊的文件。
在物件的生命週期內,會記錄錯誤,並且僅傳送每種類型的第一個錯誤。
PHPUnit 測試位於測試資料夾中。如果您想針對官方 http://demo.flexibee.eu/ 以外的伺服器進行測試,您需要變更bootstrap.php檔案中的設定。
$testServer 變數的內容決定將使用哪個預設值。當然,您可以定義自己的。作為範例,此處顯示了 spoje.net 測試伺服器。
為了進行測試,請先建立測試公司TESTING s.r.o,並設定有權使用REST API的使用者的存取資料。 (這是安裝FlexiBee時輸入的管理員使用者。)
注意:對擁有大量發票的公司和連接的銀行進行測試可能需要一些時間,因為自動文件匹配呼叫也經過測試。
如果您決定在專案中繼承FlexiPeeHP並為這些也繼承自FlexiPeeHP的類別編寫測試,例如:
類別 HookRecieverTest 擴充 Test FlexiPeeHP ChangesTest
還將原始測試的路徑添加到您的composer.json中:
"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 /",
}
}
Examples 資料夾中有以下使用範例:
文件 | 描述 |
---|---|
附件保存到文件.php | 將附件儲存到文件 |
附件上傳.php | 上傳附件 |
AuthSessionIdUsage.php | AuthSessionId 驗證範例 |
AuthenticateContact.php | 聯繫認證 |
批量操作.php | 在批次操作中使用過濾器 |
建立標籤.php | 使用標籤 |
乾運行.php | 測試儲存(空運行) |
下載發票PDF.php | PDF發票下載 |
錯誤404.php | 處理不存在的記錄 |
FindOverdueInvoices.php | 查找逾期發票 |
取得記錄與關係.php | 取得包含子扣款資料的記錄 |
取得公司銀行帳戶.php | 從目錄中取得公司的銀行帳戶 |
發票鎖解鎖.php | 鎖定和解鎖記錄 |
發票副本.php | 根據預付款建立稅務文件 |
登入登出 | 使用者登入和登出 |
NajdiDanovyDokladKzalohovemu.php | 文件追蹤 |
存儲.php | 帶有序號的庫存產品 |
新發票.php | 新發票的到期日寫為 json |
對象鏈.php | 僅在佇列中連結多個操作的對象 |
對象合作.php | 在物件之間共享資料和連接參數 |
執行操作.php | 如何對操作文檔執行操作。例如消除 |
讀取地址列.php | 傳回特定列 |
透過電子郵件發送發票.php | 透過電子郵件發送發票 |
發送提醒.php | 發送提醒 |
設定聯絡人驗證.php | 身份驗證設定 |
測試連接.php | 連接檢查 |
docker pull vitexsoftware/ FlexiPeeHP
有適用於 Linux 的 .deb 軟體包。請使用儲存庫:
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
在這種情況下,您需要將以下內容新增至應用程式的composer.json檔案:
"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
}
}
]
因此,當您安裝依賴項時,它將如下所示:
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
並且可以透過 apt-get 對整個系統進行全域更新。
我們也產生FlexiPeeHP -doc包,其中包含使用 ApiGen 程式產生的開發人員文件。該文件可以在線查看:http://flexibee-dev.spoje.net/FlexiPeeHP/
測試:
cd /usr/share/doc/ FlexiPeeHP /
composer install
php -f flexibeeping.php
我們透過運行make deb來創建 Debian 軟體包
Docker 的映像:
docker build -t vitexsoftware/ FlexiPeeHP
WakaTime 專案的工作統計