Download the PHP package spoje.net/flexibee without Composer

On this page you can find all versions of the php package spoje.net/flexibee. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package flexibee

PHP AbraFlexi

PHP7.1+ Based Library for easy interaction with Czech accounting system AbraFlexi.

CZ: PHP Knihovna pro snadnou práci s českým ekonomickým systémem AbraFlexi

Latest Version Software License GitHub forks wakatime Docker pulls Latest stable

Latest Stable Version Total Downloads Total Downloads Latest Unstable Version License Monthly Downloads Daily Downloads

Poděkování

Vznik této knihovny by nebyl možný bez laskavé podpory společnosti Spoje.Net, která hradila vývoj řešení pro propojení LMS / AbraFlexi a importu skladu. :+1:

Dále chci poděkovat technické podpoře společnosti ABRA Flexi s.r.o. za jejich svatou trpělivost při reakcích na mé ne vždy bystré otázky a bugreporty.

Parsování výsledků pro účely GDPR logování bylo dopracováno za laskavé podpory <PureHTML>

Instalace

pokud váš výsledný composer.json bude vypadat zhruba takto:

spustí se příkazem composer install instalace:

Konfigurace

Konfigurace se provádí nastavením následujících konstant:

Pokud nejsou konstanty nastaveny, pouší se třídy také o konfiguraci ze stejnojmených proměnných prostředí. např getenv('ABRAFLEXI_URL')

Taktéž je možné přihlašovací údaje zadávat při vytváření instance třídy.

Tento způsob nastavení má vyšší prioritu než výše uvedené definovaní konstant.

Takto se ke abraflexi a konrétní objednávce může připojit aplikace vyvolaná uživatelským tlačítkem předávajícím hodnoty companyUrl a authSessionId

Jak to celé funguje ?

Ústřední komponentou celé knihovny je Třída RO, která je schopna pomocí PHP rozšíření curl komunikovat s REST Api AbraFlexi.

Z ní jsou pak odvozeny třídy pro jednotlivé evidence, obsahující metody pro často používané operace, například "Zaplať" v případě přijatých faktur.

Nová odvozená třída vzniká tak, že jméno třídy je název evidence avšak bez pomlček. Ty jsou ve jméně nahrazeny velkým písmenem.

Tzn. Pokud chceme odvodit novou třídu pro evidenci "Měrné jednotky" bude vypadat takto:

A poté je již snadné si vypsat měrné jednotky na 2 řádky:

Pokud chceme aby nově vytvořená třída uměla do abraflexi i zapisovat, je třeba jí odvodit od předka AbraFlexiRW.

Více příkladů použití je možné najít v samostatném projektu

Struktura Evidencí, Akcí a vztahů

V některých případech je dobré znát jaké můžeme provádět akce, či jáká je struktura evidence. Tyto informace je možno získat voláním https://demo.abraflexi.eu/c/demo/*/properties.json respektive https://demo.abraflexi.eu/c/demo/*/actions.json avšak jedná se o relativně časově náročné operace. Jelikož se struktura evidencí a Akce či vztahy mezi evidencemi AbraFlexi často nemění AbraFlexi disponuje mechanizmem který umožní pracovat s těmito údaji bez nutnosti dotazovat se na ně serveru.

Struktura je uložena ve třídě Structure (Actions,Relations) která obsahuje staticky definované pole obsahující informace které by jinak bylo nutné získat z AbraFlexi.

Položku v seznamu evidencí https://demo.abraflexi.eu/c/demo/evidence-list je pak možné kdykoliv snadno ukázat:

Sturktury jednotlivých evidencí jsou pak uloženy ve statických proměnných. Jejich jméno se řídí stejnými pravidly jako jsou pro vytváření jména nové třídy jen s tím rozdílem, že první písmeno je malé. Tzn.:

V případě potřeby je možné tyto třídy pak možné vygenerovat s aktuálním obsahem následujícím příkazem:

Operace trvá několik minut. Zobrazit průběh můžeme takto:

Ladicí režim

Pokud v objektech AbraFlexi nastavíte $this->debug na true, budou se před odesláním dat do AbraFlexi provedeny dodatečné testy. Kontrolují se tyto možné chyby:

V ladícím režimu se také ukládají do složky /tmp všechny požadavky na abraflexi a jejich odpovědi

Knihovna obsahuje mechanizmus pro odesílání zaznamenaných chyb při běhu AbraFlexi vývojářům:

Pokud AbraFlexi vrátí Internal Server Error 500, je odeslán vývojářům email obsahující chybovou zprávu.

V případě že je použito AbraFlexi běžící na stejném serveru a je možné číst chybové logy je z nich vypreparován patřičný fragment a i ten je přidán do těla mailu.

Email obsahuje také dodatečné informace o licenci a povolených modulech.

Jako přílohy jsou také připojeny soubory obsahující tělo dotazu na server, tělo jeho odpovědi a soubor obsahující informace o curl.

Během života objektu se chyby evidují a odesílá se pouze první každého druhu.

Aktualizace na verzi 2.0

Oproti 1.x se změnilo následující:

Výchozí Nativní typy se projevují tak že ze serveru ve chlívečku obsahující datum obdržíte php objekt DateTime. ve sloupečku 'id' integer a pod. Toto chování je možné vypnout pomocí parametru konstruktoru

Viz.: constructor RO

Je možno zadat některé z těchto parametrů:

 * user,password,authSessionId - autentifikace
 * company,url,evidence - vynucení parametrů přístupu
 * prefix - pro url začínající jinak než  '/c/' pro  company
 * defaultUrlParams - pole vlastností pak automaticky přidávané
 * debug - pro zapnutí ladícího režimu
 * detail - pro specifikaci požadované [úrovně detailů](https://www.flexibee.eu/api/dokumentace/ref/detail-levels/). 
 * offline - nevykonávají se žádné síťové operace ( nepřiřipojit se při instancování objektu ) 
 * filter - viz [Filtrování](https://www.flexibee.eu/api/dokumentace/ref/filters}
 * ignore404 - v případě že nevím zdali požadovaný záznam existuje nastavte na true aby to nevyhodilo chybu
 * nativeTypes - pokud chci všecho ze serveru vracet jako stringy 
 * timeout - trpělivost než se vyhodí chyba síťové komunikace (předáváno do cURL)
 * companyUrl - načte si z řetězce všechny náležitosti k připojení (heslo pro API atd..)
 * ver - vynucení verze api (pokud chcete volat funkce určené pro nové webové rozhraní)
 * throwException - vyhodit vyjímku při každé vhodné příležitosti

Autoloading dat

Pokud se konstruktoru objektu předá ID typu int nebo kódem (code:..) záznamu zavolá tento funkci loadFromAbraFlexi(id) Poté je možné k načteným hodnotám se dostat za použití metod $this->getData() a RO::getDataValue('nazev')

Datové typy

Jelikož API vrací vše víceméně jako řetězec, knihovna provádí automatické konverze datových typů:

Strojový název Název Poznámka Ukázka PHP Typ
string Řetězec Kódování je unicode. Lze tedy použít libovolný znak. šílený koníček こちらは田中さんです string
integer Celé číslo Musí být bez mezer. Jde o znaménkový 4bajtový integer, ovšem rozsah může být omezený (viz přehled položek dané evidence) 12 integer
numeric Desetinné číslo Musí být bez mezer, oddělovačem desetinných míst je tečka. Jde o 8bajtový double, ovšem rozsah může být omezený (viz přehled položek dané evidence) 12.5 float
date Datum Datum ve formátu YYYY-MM-DD; lze zadat i časovou zónu (YYYY-MM-DDZZZ), ale ta bude ignorována. ZZZ je označení časové zóny (Z nebo +HH:MM nebo -HH:MM). 1980‑05‑06 2015‑01‑30Z 2008‑09‑01+02:00 \Date()
datetime Datum + čas Datum a čas ve formátu YYYY-MM-DD'T'HH:MM:SS.SSS; lze zadat i časovou zónu (YYYY-MM-DD'T'HH:MM:SS.SSSZZZ), ale ta bude ignorována. 1980‑05‑06 1980‑05‑06T12:30:12 2015‑01‑30T22:55:33Z 2008‑09‑01T17:18:14+02:00 2008‑09‑01T17:18:14.075+02:00 \DateTime()
logic Logická hod. boolean true false boolean
select Výběr jedné z hodnot Výběr jedné z hodnot. Je reprezentován jako řetězec. typVztahu.odberDodav string
relation Vazba mezi daty Vstupem je záznam z jiné evidence (přehled typů identifikátorů) 123 code:CZK ext:DB:232 \AbraFlexi\Relation

Testování

PHPUnit testy se nachází ve složce testing. Pokud chcete testovat proti jinému serveru než je oficální http://demo.abraflexi.eu/ , je třeba změnit nastavení v souboru bootstrap.php.

Obsah proměnné $testServer určuje která z předvolených nastavení budou použita. A samozřejmě si můžete nadefinovat i vlastní. Jako příklad je zde uveden testovací server spoje.net.

Pro testování vytvořte prosím nejprve testovací firmu TESTING s.r.o. a nastavte přístupové údaje uživatele s oprávněním používat REST API. (Což je uživatel administrátora zadaný při instalaci AbraFlexi.)

Upozornění: testování proti firmě s množstvím faktur a připojenou bankou může trvat nějakou dobu, jelikož se testuje i zavolání automatického párování dokladů.

Pokud se ve vašem projektu rozhodnete podědit AbraFlexi a k těmto třídám napíšete testy také poděděné z AbraFlexi např:

class HookRecieverTest extends \Test\AbraFlexi\ChangesTest

Přidejte do vašeho composer.json i cesty k původním testům:

Ukázka

Ve složce Examples jsou tyto ukázky použití:

Soubor Popis
AttachmentSaveToFile.php uložení přílohy do souboru
AttachmentUpload.php nahrání přílohy
AuthSessionIdUsage.php Ukázka autentizace AuthSessionId
AuthentizeContact.php autentizace kontaktu
BatchOperation.php Použití filtru při dávkových operacích
CreateLabel.php práce se štítky
DryRun.php Testovací uložení (dry-run)
DownloadInvoicePDF.php stažení PDF faktury
Error404.php práce s neexistujícími záznamy
FindOverdueInvoices.php najdi faktury po splatnosti
GetRecordWithRelation.php Získání záznamu včetně dat z podevidence
GetBankAccountForCompany.php Získání bankovního účtu k firmě z adresáře
InvoiceLockUnlock.php Zamykání a odemykání záznamu
InvoiceCopy.php vytvoření daňového dokladu ze zálohy
LoginLogout přihlášení uživatele a jeho odhlášení
NajdiDanovyDokladKzalohovemu.php dohledání dokladu
Naskladnění.php Naskladní produkt se sériovými čísly
NewInvoice.php Nová faktura se splatností vypsaná jako json
ObjectChaining.php Řetězení objektů pro více operací v jenom pořadavku
ObjectCooperation.php Sdílení data a parametrů připojení mezi objekty
PerformingActions.php Jak vykonávat akce nad dokladem akce. např. storno
ReadAddressColumns.php vrať konkrétní sloupečky
sendInvoiceByMail.php odeslání faktury mailem
SendReminders.php odeslání upomínek
SetContactAuth.php nastavení autentizace
TestConnection.php kontrola spojení

Příklady použití:

Reference:

AbraFlexi knihovny pro další jazky:

Statistiky práce na projektu WakaTime Statistiky práce na projektu před přejmenováním (cca 250h)


All versions of flexibee with dependencies

PHP Build Version
Package Version
Requires ext-curl Version *
vitexsoftware/ease-core Version ^1
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package spoje.net/flexibee contains the following files

Loading the files please wait ....