## Quagga2 Scanner - Reader-Reihenfolge optimiert: CODE128/CODE39 vor EAN - Verhindert Fehlerkennungen bei alphanumerischen Codes (z.B. P20260030) - EAN-Reader haben niedrigere Priorität ## Brother PT-E560BT Android App - Native Kotlin App für Bluetooth-Druck auf Brother PT-E560BT - Intent-Schema: brotherprint://print?barcode=XXX&ref=REF - 90° Rotation für Längs-Druck auf 24mm TZe-Band - Produkt-Referenz (fett), Barcode-Strichen, Barcode-Wert - Erweiterte Error-Handling (SetLabelsizeError, NoCoverError, etc.) - Build: Gradle 9.3.1, Kotlin 2.1.0, Brother SDK v4 ## Bestelllogik - ref_supplier = "Direkt" (ohne Datum) für dauerhafte Direktbestellungen - Pro Lieferant eine durchgängige Direkt-Bestellung statt tägliche neue ## PWA Updates - Service Worker v8.1 - CSS/JS Cache-Invalidierung (?v=81) - localStorage Migration für alte Keys ## Dokumentation - README.md aktualisiert mit Brother-App und PWA-Details - Dateistruktur erweitert um android-app/ - .gitignore für Test-Dateien Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
9.2 KiB
Executable file
HANDYBARCODESCANNER FOR DOLIBARR ERP & CRM
Mobiler Barcode-Scanner für Dolibarr - optimiert für die Verwendung auf Smartphones.
Features
Das Modul bietet drei Modi für die mobile Barcode-Erfassung:
1. Bestellmodus (Order)
- Produkt per Barcode scannen oder manuell suchen (Lupe-Button)
- Alle verfügbaren Lieferanten mit Einkaufspreisen werden angezeigt
- Günstigster Lieferant ist vorausgewählt
- Produkt wird zu einer lieferantenspezifischen Entwurfsbestellung hinzugefügt
- Bestellungen werden automatisch als "Direkt" erstellt (dauerhafte Direktbestellung pro Lieferant)
- Falls kein Lieferant zugewiesen: Manuelle Auswahl aller verfügbaren Lieferanten
- Freitext-Positionen: Plus-Button für Artikel ohne Produktstamm
- Bestellübersicht: Nach links swipen zeigt alle offenen Bestellungen
- Zeilen bearbeiten: Klick auf Bestellzeile öffnet Dialog zum Ändern/Löschen
- Bestellungen löschen: Entwürfe können direkt aus der Übersicht gelöscht werden
2. Shop-Modus
- Produkt per Barcode scannen
- Zeigt Links zu den Webshops der Lieferanten
- Schneller Zugriff auf Lieferanten-Onlineshops
3. Inventur-Modus
- Produkt per Barcode scannen
- Aktueller Lagerbestand wird angezeigt
- Neuen Bestand eingeben und mit Bestätigungsdialog speichern
- Lagerbewegungen werden korrekt protokolliert
4. Barcode-Druck
- Druck-Button auf Produktkarte oder via Produktsuche
- Barcode-Vorschau mit Produkt-Referenz, Barcode-Strichen und Barcode-Wert
- Code128-Format, optimiert für 24mm Etikettendrucker
Zwei Druck-Optionen:
Browser-Druck
- Standard Browser-Druckfunktion für Desktop-Drucker
- Unterstützt alle gängigen Drucker und PDF-Export
Brother PT-E560BT (Android App)
- Native Android App für direkten Bluetooth-Druck auf Brother P-touch E560BT
- Intent-basierte Integration: PWA startet App automatisch mit Barcode-Daten
- Druckt Barcode längs auf 24mm TZe-Band mit Produkt-Referenz (fett), Barcode und Wert
- Automatischer Halbschnitt zwischen Labels, Vollschnitt am Ende
- App verfügbar in
android-app/BrotherPrintHelper/ - Installation: APK auf Android-Gerät installieren, PT-E560BT in Bluetooth-Settings paaren
Barcode-Unterstützung
Das Modul sucht Barcodes in folgender Reihenfolge:
- Produkt-Barcode (
llx_product.barcode) - Lieferanten-Barcode (
llx_product_fournisseur_price.barcode) - Produkt-Referenz (
llx_product.ref)
Unterstützte Barcode-Formate (Quagga2):
- Code 128 (empfohlen für alphanumerische Codes, höchste Priorität)
- Code 39 (alphanumerisch, zweite Priorität)
- EAN-13 (nur Ziffern, dritte Priorität)
- EAN-8 (nur Ziffern, niedrigste Priorität)
WICHTIG: Reader-Reihenfolge optimiert für alphanumerische Codes! CODE128/CODE39 haben Vorrang vor EAN-Readern, um Fehlerkennungen bei Herstellercodes wie "P20260030" zu vermeiden.
Installation
Voraussetzungen
- Dolibarr ERP & CRM (Version 14.0 oder höher empfohlen)
- Aktiviertes Modul "Lieferanten" (Fournisseur/Supplier)
- Aktiviertes Modul "Lager" (Stock) für Inventur-Modus
- HTTPS-Verbindung (erforderlich für Kamerazugriff im Browser)
Installation via Git
cd /path/to/dolibarr/htdocs/custom
git clone https://git.data-it-solution.de/data/dolibarr.handybarcodescanner.git handybarcodescanner
Installation via ZIP
- ZIP-Datei herunterladen
- In Dolibarr:
Home > Setup > Modules > Deploy external module - ZIP-Datei hochladen
Aktivierung
- Als Administrator in Dolibarr einloggen
- Gehe zu
Setup > Modules - Suche nach "HandyBarcodeScanner"
- Modul aktivieren
Konfiguration
Die Einstellungen sind unter Setup > Modules > HandyBarcodeScanner > Settings verfügbar:
Allgemein
- Bestellpräfix: Präfix für automatisch erstellte Bestellungen (Standard: "Direktbestellung")
- Standard-Lager: Standard-Lager für Inventur-Bewegungen
Aktivierte Modi
- Bestellmodus aktivieren: Ein/Aus
- Shop-Modus aktivieren: Ein/Aus
- Inventur-Modus aktivieren: Ein/Aus
Feedback
- Vibration aktivieren: Vibriert bei erfolgreichem Scan (auf unterstützten Geräten)
- Ton aktivieren: Akustisches Signal bei erfolgreichem Scan
QR-Code für mobilen Zugriff
Auf der Einstellungsseite wird ein QR-Code angezeigt, der mit dem Smartphone gescannt werden kann, um direkt zur Scanner-Seite zu gelangen.
Berechtigungen
Das Modul definiert folgende Berechtigungen:
| Berechtigung | Beschreibung |
|---|---|
handybarcodescanner->use |
Scanner verwenden |
handybarcodescanner->order->create |
Bestellungen erstellen |
handybarcodescanner->inventory->write |
Lagerbestand ändern |
Verwendung
Der Scanner ist im linken Menü unter Produkte > Scanner erreichbar.
Moduswechsel ohne Unterbrechung
Die Modi (Bestellen/Shop/Inventur) können per Tab gewechselt werden, ohne dass die Kamera stoppt. Bereits gescannte Produkte werden im neuen Modus direkt angezeigt.
Im mobilen Browser / PWA
- QR-Code von der Admin-Seite scannen oder URL direkt eingeben
- Kamerazugriff erlauben (HTTPS erforderlich!)
- Gewünschten Modus wählen und "Scannen" tippen
- Barcode vor die Kamera halten
Gesten-Steuerung
- Nach links swipen: Bestellübersicht öffnen (Order-Mode)
- Nach rechts swipen: Barcode-Druck (Produktsuche öffnet sich)
Technische Details
Dateistruktur
handybarcodescanner/
├── admin/
│ ├── about.php
│ └── setup.php
├── ajax/
│ ├── addtoorder.php # Produkt zu Bestellung hinzufügen
│ ├── addfreetextline.php # Freitext-Position hinzufügen
│ ├── deleteorder.php # Bestellung löschen
│ ├── findproduct.php # Produkt per Barcode suchen
│ ├── getorders.php # Bestellungen abrufen
│ ├── getorderlines.php # Bestellzeilen abrufen
│ ├── getsuppliers.php # Alle Lieferanten abrufen
│ ├── searchproduct.php # Produktsuche
│ ├── updateorderline.php # Bestellzeile bearbeiten
│ └── updatestock.php # Lagerbestand aktualisieren
├── android-app/
│ └── BrotherPrintHelper/ # Native Android App für Brother PT-E560BT
│ ├── app/
│ │ ├── src/main/java/de/data_it_solution/brotherprinthelper/
│ │ │ └── MainActivity.kt
│ │ ├── libs/
│ │ │ └── brlmprinterkit-release.aar
│ │ └── build.gradle.kts
│ └── build.gradle.kts
├── core/modules/
│ └── modHandyBarcodeScanner.class.php
├── css/
│ └── scanner.css
├── js/
│ ├── barcodezoom.js.php # Barcode-Zoom Feature
│ └── scanner.js # Hauptlogik Scanner + PWA
├── langs/
│ ├── de_DE/handybarcodescanner.lang
│ └── en_US/handybarcodescanner.lang
├── lib/
│ └── handybarcodescanner.lib.php
├── pwa.php # PWA Hauptseite
├── sw.js # Service Worker für PWA
├── manifest.json # PWA Manifest
└── handybarcodescannerindex.php
Verwendete Bibliotheken
- Quagga2 - Browser-basierte Barcode-Erkennung
- JsBarcode - Barcode-Generierung für Druck
- ZXing - Barcode-Generierung in Android App
PWA (Progressive Web App)
Das Modul ist als PWA konzipiert mit:
- Service Worker (
sw.js) für Offline-Funktionalität und Performance - Web App Manifest (
manifest.json) für Installation auf Startbildschirm - localStorage für persistente Einstellungen (letzte Lieferanten, letzte Bestellung)
- Cache-Strategie: Network-First für eigene Assets, Cache-First für CDN-Bibliotheken
Browser-Kompatibilität:
- Chrome/Edge auf Android: Vollständiger PWA-Standalone-Modus ✅
- Firefox auf Android: Nur Shortcuts, kein echter Standalone-Modus ⚠️
- Safari auf iOS: PWA-Unterstützung mit Einschränkungen
Versionsverwaltung: Bei Updates CACHE_NAME in sw.js + ?v= in pwa.php synchron erhöhen!
Brother PT-E560BT Android App
Native Kotlin-App für Bluetooth-Druck auf Brother P-touch E560BT:
- SDK: Brother Print SDK v4.x (brlmprinterkit-release.aar)
- Intent-Schema:
brotherprint://print?barcode=VALUE&ref=PRODUCTREF - Features:
- Auto-Discovery von gepaartem Drucker
- 90° Rotation für Längs-Druck auf 24mm TZe-Band
- Produkt-Referenz (fett), Barcode-Strichen, Barcode-Wert
- Erweiterte Error-Handling (SetLabelsizeError, NoCoverError, etc.)
- Build: Gradle 9.3.1, Kotlin 2.1.0, Android SDK 34
Changelog
Siehe ChangeLog.md
Lizenz
Hauptcode
GPLv3 oder (nach Wahl) jede spätere Version. Siehe Datei COPYING für weitere Informationen.
Dokumentation
Alle Texte und READMEs sind unter GFDL lizenziert.
Autor
Eduard Wisch - DATA IT-Solution
Support
Bei Fragen oder Problemen:
- Issue erstellen: https://git.data-it-solution.de/data/dolibarr.handybarcodescanner/issues
- E-Mail: data@data-it-solution.de