Logo FlexiPeeHP" title="Logo du projet" style="largeur maximale : 100 % ;">
Bibliothèque basée sur PHP pour une interaction facile avec le système comptable tchèque FlexiBee.
CZ : bibliothèque PHP pour travailler facilement avec le système économique tchèque FlexiBee
❗ Cette bibliothèque sera marquée comme obsolète. Veuillez faire attention à son successeur léger https://github.com/Spoje-NET/php-flexibee ❗
La création de cette bibliothèque n'aurait pas été possible sans l'aimable soutien de Spoje.Net, qui a financé le développement de la solution de connexion LMS/FlexiBee et d'importation de l'entrepôt. ?
Je tiens également à remercier le support technique d'ABRA Flexi s.r.o pour sa sainte patience en répondant à mes questions pas toujours intelligentes et à mes rapports de bugs.
L'analyse des résultats à des fins de journalisation RGPD a été affinée avec l'aimable support de <PureHTML>
composer require spoje.net/ FlexiPeeHP
si votre composer.json résultant ressemblera à ceci :
{
"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 "
}
la commande composer install démarre l'installation :
La configuration se fait en définissant les constantes suivantes :
/*
* 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é
ou des informations d'identification peuvent être fournies lors de l'instanciation de la classe.
$ invoicer = new FlexiPeeHP FakturaVydana ( null ,[
' company ' => ' Firma_s_r_o_ ' ,
' url ' => ' https://flexibee.firma.cz/ ' ,
' user ' => ' rest ' ,
' password ' => ' -dj3x21xaA_ '
]);
Cette méthode de réglage a une priorité plus élevée que les constantes définies ci-dessus.
$ order = new FlexiPeeHP ObjednavkaPrijata( ' code:OBP0034/2019 ' ,[ ' companyUrl ' => $ _GET [ ' companyUrl ' ], ' authSessionId ' => $ _GET [ ' authSessionId ' ] ])
De cette manière, une application appelée par un bouton utilisateur passant les valeurs companyUrl et authSessionId peut se connecter au flexibee et à la commande concrète
Le composant central de l'ensemble de la bibliothèque est la classe FlexiBeeRO, qui est capable de communiquer avec l'API FlexiBee REST à l'aide de l'extension PHP curl.
Des classes d'enregistrements individuels en sont ensuite dérivées, contenant des méthodes pour les opérations fréquemment utilisées, par exemple « Payer » dans le cas de factures reçues.
Une nouvelle classe dérivée est créée de telle manière que le nom de la classe soit le nom de l'enregistrement, mais sans tirets. Celles-ci sont remplacées par une lettre majuscule dans le nom.
function evidenceToClass ( $ evidence )
{
return str_replace ( ' ' , '' , ucwords ( str_replace ( ' - ' , ' ' , $ evidence )));
}
C'est Si nous voulons dériver une nouvelle classe pour l'enregistrement "Unités de mesure", elle ressemblera à ceci :
<?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 ' ;
}
Et puis c'est facile d'écrire les unités de mesure sur 2 lignes :
$ jednotky = new MernaJednotka ();
print_r ( $ jednotky -> getAllFromFlexiBee () );
Si nous voulons que la classe nouvellement créée puisse écrire sur le flexibee, elle doit être dérivée de l'ancêtre FlexiBeeRW.
D'autres exemples d'utilisation peuvent être trouvés dans un projet séparé
Dans certains cas, il est bon de savoir quelles mesures nous pouvons prendre ou quelle est la structure des enregistrements. Ces informations peuvent être obtenues en appelant https://demo.flexibee.eu/c/demo/*/properties.json ou https://demo.flexibee.eu/c/demo/*/actions.json, mais ceci est opération relativement longue. Étant donné que la structure des enregistrements et des actions ou les relations entre les enregistrements FlexiBee ne changent pas souvent, FlexiPeeHP dispose d'un mécanisme qui permet de travailler avec ces données sans avoir besoin d'interroger le serveur.
La structure est stockée dans la classe Structure (Actions, Relations) qui contient un champ défini statiquement contenant des informations qui devraient autrement être obtenues auprès de FlexiBee.
L'élément de la liste des preuves https://demo.flexibee.eu/c/demo/evidence-list peut alors être facilement affiché à tout moment :
echo FlexiPeeHP Structure:: $ evidence [ ' faktura-vydana ' ];
Les structures des enregistrements individuels sont ensuite stockées dans des variables statiques. Leur nom suit les mêmes règles que pour créer un nouveau nom de classe, sauf que la première lettre est en minuscule. C'est-à-dire:
lcfirst ( FlexiPeeHP FlexiBeeRO:: evidenceToClassName ( $ evidence ))
Si nécessaire, ces classes peuvent ensuite être générées avec le contenu actuel avec la commande suivante :
cd tools/
./update_all.sh
L'opération prend quelques minutes. Nous pouvons afficher la progression comme suit :
tail -f /var/log/syslog | grep FlexiPeeHP test
Si vous définissez $this->debug sur true dans les objets FlexiPeeHP , des tests supplémentaires seront effectués avant d'envoyer les données à FlexiBee. Les erreurs possibles suivantes sont vérifiées :
En mode débogage, toutes les requêtes flexibee et leurs réponses sont également enregistrées dans le dossier /tmp
La bibliothèque comprend un mécanisme pour envoyer les erreurs d'exécution FlexiBee aux développeurs :
Si FlexiBee renvoie une erreur interne du serveur 500, un e-mail contenant le message d'erreur est envoyé aux développeurs.
Si FlexiBee fonctionnant sur le même serveur est utilisé et qu'il est possible de lire les journaux d'erreurs, un fragment approprié en est extrait et ajouté au corps du courrier.
L'e-mail contient également des informations supplémentaires sur la licence et les modules activés.
Sont également joints en pièces jointes des fichiers contenant le corps de la requête adressée au serveur, le corps de sa réponse et un fichier contenant des informations sur curl.
Pendant la durée de vie de l'objet, les erreurs sont journalisées et seule la première de chaque type est envoyée.
Les tests PHPUnit se trouvent dans le dossier testing . Si vous souhaitez tester sur un serveur autre que le serveur officiel http://demo.flexibee.eu/ , vous devez modifier les paramètres dans le fichier bootstrap.php .
Le contenu de la variable $testServer détermine lequel des paramètres par défaut sera utilisé. Et bien sûr, vous pouvez définir le vôtre. A titre d'exemple, le serveur de test spoje.net est présenté ici.
Pour les tests, veuillez d'abord créer une société de test TESTING s.r.o. et définir les données d'accès d'un utilisateur autorisé à utiliser l'API REST. (Quel est l'utilisateur administrateur saisi lors de l'installation de FlexiBee.)
Attention : les tests sur une entreprise avec de nombreuses factures et une banque connectée peuvent prendre un certain temps, car l'appel de rapprochement automatique des documents est également testé.
Si vous décidez d'hériter FlexiPeeHP dans votre projet et d'écrire des tests pour ces classes également héritées de FlexiPeeHP , par exemple :
la classe HookRecieverTest étend Test FlexiPeeHP ChangesTest
Ajoutez également les chemins d'accès aux tests d'origine à votre 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 /",
}
}
Dans le dossier Exemples se trouvent les exemples d'utilisation suivants :
Déposer | Description |
---|---|
AttachmentSaveToFile.php | enregistrer la pièce jointe dans un fichier |
AttachmentUpload.php | télécharger la pièce jointe |
AuthSessionIdUsage.php | Exemple d'authentification AuthSessionId |
AuthentifierContact.php | authentification des contacts |
BatchOperation.php | Utiliser un filtre dans les opérations par lots |
CréerLabel.php | travailler avec des étiquettes |
DryRun.php | Stockage test (essai à sec) |
TéléchargerInvoicePDF.php | Télécharger la facture PDF |
Erreur404.php | travailler avec des enregistrements inexistants |
FindOverdueInvoices.php | trouver des factures en souffrance |
GetRecordWithRelation.php | Obtention d'un enregistrement comprenant des données de sous-débit |
GetBankAccountForCompany.php | Obtention d'un compte bancaire pour une entreprise à partir de l'annuaire |
FactureLockUnlock.php | Verrouillage et déverrouillage du dossier |
FactureCopie.php | création d'un document fiscal à partir du paiement anticipé |
ConnexionDéconnexion | connexion et déconnexion de l'utilisateur |
NajdiDanovyDokladKzalohovemu.php | traçage des documents |
Stockage.php | Produit en stock avec numéros de série |
NouvelleFacture.php | Nouvelle facture avec date d'échéance écrite en json |
ObjectChaining.php | Chaînage d'objets pour plusieurs opérations dans une file d'attente uniquement |
ObjetCoopération.php | Partage de données et de paramètres de connexion entre objets |
PerformingActions.php | Comment effectuer des actions sur un document d'action. par ex. annulation |
ReadAddressColumns.php | renvoyer des colonnes spécifiques |
envoyerInvoiceByMail.php | envoi de la facture par email |
EnvoyerReminders.php | envoyer des rappels |
SetContactAuth.php | paramètres d'authentification |
TestConnection.php | vérification de la connexion |
docker pull vitexsoftware/ FlexiPeeHP
Il existe des packages .deb disponibles pour Linux. Veuillez utiliser le dépôt :
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
Dans ce cas, vous devez ajouter ce qui suit au fichier composer.json de votre application :
"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
}
}
]
Ainsi, lorsque vous installerez les dépendances, cela ressemblera à ceci :
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
Et il sera possible d'effectuer une mise à jour globale pour l'ensemble du système via apt-get.
Nous générons également le package FlexiPeeHP -doc , contenant la documentation du développeur générée à l'aide du programme ApiGen. La documentation peut être consultée en ligne sur http://flexibee-dev.spoje.net/FlexiPeeHP/
Essai:
cd /usr/share/doc/ FlexiPeeHP /
composer install
php -f flexibeeping.php
Nous créons le paquet Debian en exécutant make deb
Image pour Docker :
docker build -t vitexsoftware/ FlexiPeeHP
Statistiques de travail sur le projet WakaTime