Download the PHP package banelsems/lara-sgmef-qr without Composer

On this page you can find all versions of the php package banelsems/lara-sgmef-qr. 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 lara-sgmef-qr

🧾 LaraSgmefQR - Package Laravel pour la Facturation Électronique Béninoise

Latest Version PHP Version Laravel Version

LaraSgmefQR est un package Laravel moderne et robuste qui simplifie l'intégration avec l'API SyGM-eMCF (Système de Gestion Modernisé des Finances Publiques - electronic Mechanism for Centralized Invoicing) pour la génération de factures électroniques conformes aux exigences fiscales du Bénin.

🌟 Nouvelle Version 2.1.0 - Totalement Indépendant de l'Authentification !

✅ Fonctionne immédiatement après installation
✅ Aucun système d'authentification requis
✅ Compatible avec Laravel UI, Breeze, Jetstream, Fortify ou aucun système d'auth
✅ Concept d'opérateur pour remplacer la dépendance aux utilisateurs connectés

✨ Fonctionnalités

🚀 API Client Moderne

🎯 Architecture Clean Code

🖥️ Interface Web Intuitive

🔓 Indépendance Totale de l'Authentification

📄 Système de Templates Avancé

🔒 Sécurité & Conformité

🧪 Tests Automatisés

🔧 Exigences

🚀 Installation

1. Installation via Composer

2. Publication des Assets

3. Migration de la Base de Données

4. Configuration Environnement

Ajoutez ces variables à votre fichier .env :

🔒 Sécurité

IMPORTANT : Par défaut, l'interface web du package est accessible publiquement. Pour des raisons de sécurité, il est fortement recommandé de protéger son accès en production.

Comment Sécuriser l'Interface Web ?

La méthode la plus simple est d'ajouter un middleware d'authentification dans le fichier de configuration du package.

  1. Publiez la configuration si ce n'est pas déjà fait :

  2. Modifiez le fichier config/lara_sgmef_qr.php pour y ajouter votre middleware d'authentification (par exemple, auth):

En faisant cela, seules les personnes authentifiées sur votre application pourront accéder à l'interface de facturation.

🎯 Utilisation Basique

Créer une Facture

Confirmer une Facture

🖥️ Interface Web

Accédez à l'interface web via : http://your-app.com/sgmef

Pages Disponibles :


🔗 Intégration dans une Application Existante (Ex: Gestion de Vente)

L'un des points forts de LaraSgmefQR est sa capacité à s'intégrer de manière transparente dans votre application existante, sans que vos utilisateurs aient à ressaisir les informations.

Scénario : Automatiser la facturation après une vente

Imaginons que vous ayez une application de gestion de ventes avec les modèles Order, OrderItem, Product et Customer. Vous voulez générer la facture e-MECeF automatiquement lorsqu'une commande est validée.

Étape 1 : Mapper vos données vers les DTOs du package

Dans votre OrderController, après avoir créé la commande, vous pouvez utiliser ses données pour construire la facture.

📊 Récupérer et Utiliser les Données de LaraSgmefQR

Votre application peut aussi avoir besoin de lire les informations des factures stockées par le package. Le modèle Invoice est disponible pour cela.

Exemple : Afficher les détails d'une facture sur la page d'une commande

Dans votre vue orders/show.blade.php, vous pouvez afficher les détails de la facture associée.


🔒 Sécurisation des Routes (Optionnel)

Important : Par défaut, le package fonctionne sans authentification pour une compatibilité maximale. Si votre application utilise un système d'authentification et que vous souhaitez protéger l'interface web, voici comment procéder :

Option 1 : Middleware Global dans RouteServiceProvider

Option 2 : Configuration via Middleware

Option 3 : Protection Personnalisée

Recommandations de Sécurité

🧪 Tests

Exécution des Tests

🔧 Configuration Avancée

Cache des Données API

🚨 Gestion d'Erreurs

Exceptions Personnalisées

🤝 Contribution

Développement Local

📚 Guide de Référence Complet

🗄️ Modèle de Données (Invoice Model)

Le modèle principal Banelsems\LaraSgmefQr\Models\Invoice représente une facture électronique dans votre base de données.

Attributs du Modèle

Attribut Type Description
id bigint Identifiant unique auto-incrémenté
uid string Identifiant unique fourni par l'API SyGM-eMCF
ifu string IFU de l'entreprise émettrice (13 chiffres)
type string Type de facture (FV, FA, EV, EA)
status enum Statut de la facture (voir InvoiceStatusEnum)
client_name string Nom du client
customer_ifu string IFU du client (optionnel)
operator_name string Nom de l'opérateur qui a créé la facture
operator_id string ID de l'opérateur
total_amount decimal Montant total TTC de la facture
total_tax_amount decimal Montant total des taxes
total_aib_amount decimal Montant total de l'AIB
items json Articles de la facture (format JSON)
payment json Modes de paiement (format JSON)
raw_request json Données brutes envoyées à l'API
raw_response json Réponse brute de l'API
qr_code_data text Données du QR Code (après confirmation)
mecf_code string Code MECeF officiel (après confirmation)
confirmed_at timestamp Date de confirmation
cancelled_at timestamp Date d'annulation
created_at timestamp Date de création
updated_at timestamp Date de dernière modification

Énumération InvoiceStatusEnum

Méthodes utilitaires :

⚙️ Configuration Complète (config/lara_sgmef_qr.php)

Section API

Section Entreprise

Section Opérateur par Défaut

Section Interface Web

Section Cache

Section Logging

🔧 Services et Contrats

InvoiceManagerInterface

Le service principal pour la gestion des factures.

SgmefApiClientInterface

Client HTTP pour l'API SyGM-eMCF.

📋 Référence des DTOs (Data Transfer Objects)

InvoiceRequestDto

ClientDto

OperatorDto

InvoiceItemDto

PaymentDto

InvoiceResponseDto

🎯 Événements (Events)

Le package déclenche plusieurs événements Laravel pour permettre l'intégration avec votre application.

InvoiceCreated

InvoiceConfirmed

InvoiceCancelled

InvoiceCreationFailed

Écouter les Événements

🌐 Interface Web - Référence des Routes

Méthode URL Nom de Route Description
GET /sgmef sgmef.dashboard Tableau de bord principal
GET /sgmef/invoices sgmef.invoices.index Liste des factures
GET /sgmef/invoices/create sgmef.invoices.create Formulaire de création
POST /sgmef/invoices sgmef.invoices.store Créer une facture
GET /sgmef/invoices/{uid} sgmef.invoices.show Détails d'une facture
POST /sgmef/invoices/{uid}/confirm sgmef.invoices.confirm Confirmer une facture
POST /sgmef/invoices/{uid}/cancel sgmef.invoices.cancel Annuler une facture
GET /sgmef/invoices/{uid}/sync sgmef.invoices.sync Synchroniser avec l'API
GET /sgmef/invoices/{uid}/pdf sgmef.invoices.pdf Télécharger PDF
GET /sgmef/invoices/{uid}/print sgmef.invoices.print Version imprimable
POST /sgmef/invoices/preview sgmef.invoices.preview Prévisualiser (AJAX)
GET /sgmef/config sgmef.config.index Configuration du package
POST /sgmef/config sgmef.config.store Sauvegarder la config
GET /sgmef/config/test sgmef.config.test Tester la connexion API

🔍 Helpers et Utilitaires

Helpers Statiques

Validation IFU

Groupes de Taxes

🚨 Gestion d'Erreurs et Exceptions

Exceptions Personnalisées

Codes d'Erreur API

📊 Monitoring et Métriques

Logs Disponibles

Métriques Collectées


📝 Changelog

Version 2.1.0 (Actuelle) - Indépendance Totale de l'Authentification

Version 2.0.0 - Refactorisation Clean Code

📄 Licence

Ce package est distribué sous licence MIT. Voir le fichier LICENSE pour plus de détails.


Développé avec ❤️ au Bénin 🇧🇯

LaraSgmefQR - Simplifiez votre facturation électronique !


All versions of lara-sgmef-qr with dependencies

PHP Build Version
Package Version
Requires php Version ^8.1|^8.2|^8.3
ext-curl Version *
ext-json Version *
barryvdh/laravel-dompdf Version ^3.1
guzzlehttp/guzzle Version ^7.0
laravel/framework Version ^10.0|^11.0|^12.0
spatie/browsershot Version ^5.0
spatie/laravel-data Version ^4.0
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 banelsems/lara-sgmef-qr contains the following files

Loading the files please wait ...