## 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>
240 lines
9.2 KiB
Markdown
Executable file
240 lines
9.2 KiB
Markdown
Executable file
# HANDYBARCODESCANNER FOR [DOLIBARR ERP & CRM](https://www.dolibarr.org)
|
|
|
|
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:
|
|
1. Produkt-Barcode (`llx_product.barcode`)
|
|
2. Lieferanten-Barcode (`llx_product_fournisseur_price.barcode`)
|
|
3. 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
|
|
|
|
```bash
|
|
cd /path/to/dolibarr/htdocs/custom
|
|
git clone https://git.data-it-solution.de/data/dolibarr.handybarcodescanner.git handybarcodescanner
|
|
```
|
|
|
|
### Installation via ZIP
|
|
|
|
1. ZIP-Datei herunterladen
|
|
2. In Dolibarr: `Home > Setup > Modules > Deploy external module`
|
|
3. ZIP-Datei hochladen
|
|
|
|
### Aktivierung
|
|
|
|
1. Als Administrator in Dolibarr einloggen
|
|
2. Gehe zu `Setup > Modules`
|
|
3. Suche nach "HandyBarcodeScanner"
|
|
4. 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
|
|
1. QR-Code von der Admin-Seite scannen oder URL direkt eingeben
|
|
2. Kamerazugriff erlauben (HTTPS erforderlich!)
|
|
3. Gewünschten Modus wählen und "Scannen" tippen
|
|
4. 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](https://github.com/ericblade/quagga2) - Browser-basierte Barcode-Erkennung
|
|
- [JsBarcode](https://github.com/lindell/JsBarcode) - Barcode-Generierung für Druck
|
|
- [ZXing](https://github.com/zxing/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](ChangeLog.md)
|
|
|
|
## Lizenz
|
|
|
|
### Hauptcode
|
|
GPLv3 oder (nach Wahl) jede spätere Version. Siehe Datei [COPYING](COPYING) für weitere Informationen.
|
|
|
|
### Dokumentation
|
|
Alle Texte und READMEs sind unter [GFDL](https://www.gnu.org/licenses/fdl-1.3.en.html) lizenziert.
|
|
|
|
## Autor
|
|
|
|
Eduard Wisch - [DATA IT-Solution](https://data-it-solution.de)
|
|
|
|
## Support
|
|
|
|
Bei Fragen oder Problemen:
|
|
- Issue erstellen: https://git.data-it-solution.de/data/dolibarr.handybarcodescanner/issues
|
|
- E-Mail: data@data-it-solution.de
|