This commit is contained in:
2026-04-12 21:43:39 +02:00
parent 63bd1e73f2
commit f72a5019e9
27 changed files with 1791 additions and 266 deletions

View File

@@ -15,7 +15,7 @@ Użyj `"C:/xampp/mysql/bin/mysql.exe"` do zapytań (z flagą `--default-characte
### 2. Pobierz aktywne mapowania
```sql
SELECT id, product_name_pattern, script_name, output_dir
SELECT id, product_name_pattern, script_name, output_dir, requires_photo
FROM project_mappings
WHERE is_active = 1;
```
@@ -46,14 +46,16 @@ SELECT
o.internal_order_number,
o.status_code AS status_code,
oa.name AS buyer_name,
oa.email AS buyer_email,
pm.script_name,
pm.output_dir
pm.output_dir,
pm.requires_photo
FROM order_items oi
JOIN orders o ON oi.order_id = o.id
JOIN order_statuses os ON o.status_code = os.code
JOIN order_status_groups osg ON os.group_id = osg.id
JOIN project_mappings pm ON pm.is_active = 1
AND oi.original_name LIKE CONCAT('%', pm.product_name_pattern, '%')
AND oi.original_name = pm.product_name_pattern
LEFT JOIN order_addresses oa ON o.id = oa.order_id AND oa.address_type = 'customer'
WHERE osg.id = 2
AND oi.project_generated = 0
@@ -93,9 +95,31 @@ tasklist //FI "IMAGENAME eq Photoshop.exe" 2>/dev/null | grep -i photoshop
```
Jeśli Photoshop nie jest uruchomiony — poinformuj użytkownika i poczekaj aż go uruchomi.
**Pobranie zdjęcia od klienta (jeśli `requires_photo = 1`):**
Dla mapowań z `requires_photo = 1` przed wywołaniem generatora pobierz zdjęcie z poczty klienta:
```bash
python tools/generowanie/email_photo_fetcher.py --email "{buyer_email}" --out "C:/tmp/orderpro_photos" --days 365
```
- Skrypt zwraca ścieżkę pobranego pliku albo komunikat `BRAK` (exit code 1).
- Jeśli zdjęcie się pobrało — przekaż ścieżkę do generatora przez `--zdjecie`.
- Jeśli zdjęcia **nie znaleziono** — generator i tak ma być wywołany **bez** `--zdjecie` (wstawi zielony placeholder jako sygnał "klient nie przysłał foto"). NIE blokuj generacji.
- Zaraportuj w tabeli planu (kolumna "Zdjęcie") status: ścieżka / `BRAK (zielony placeholder)`.
**WAŻNE — rozpoznawanie płci dziecka (dla skryptów z parametrem `--plec`):**
Niektóre skrypty (np. `akrylowe_podziekowanie_matka_chrzestna_wzor2.py`) mają dwa warianty szablonu (chłopiec/dziewczynka) i wymagają parametru `--plec m` lub `--plec k`. Rozpoznaj płeć na podstawie personalizacji:
- **Imię proste** (Fabian, Wojciech, Kacper → `m`; Blanka, Zosia, Wiktoria → `k`) — standardowa wiedza o polskich imionach.
- **Imię odmienione** (np. "Wojtusia", "Kacpra" → `m`; "Blanki", "Zosi", "Wiktorii" → `k`) — rozpoznaj mianownik i z niego określ płeć.
- **Kontekst** — jeśli w personalizacji pojawia się "mój Chrześniak", "Drogi Synku", "malutki" → `m`; "moja Chrześniaczka", "Droga Córeczko", "malutka" → `k`.
- **W razie wątpliwości** — wyświetl surowe dane klientowi i zapytaj.
**WAŻNE — łamanie linii w tekstach wielolinijkowych (życzenia, podziękowanie, itp.):**
Photoshop jako znak łamania linii w warstwach tekstowych rozpoznaje **`\r` (CR)**, NIE `\n` (LF). Jeśli przekażesz `\n`, Photoshop wyświetli go jako śmieciowy kwadrat z literą "n". W bashu użyj ANSI-C quoting: `$'linia1\rlinia2\rlinia3'` do budowy wartości `--zyczenia` / `--podziekowanie` i przekaż ją w cudzysłowach do skryptu.
Dla każdego potwierdzonego produktu:
1. Uruchom skrypt: `python tools/generowanie/{script_name} --imie_zenskie "X" --imie_meskie "Y" --data "DD.MM.YYYY" --klient "Imię Nazwisko"` (dodaj `--zyczenia` jeśli klient podał niestandardowe)
2. Jeśli mapowanie ma `output_dir` — skrypt powinien zapisać tam (jeśli obsługuje)
1. **Sprawdź kolizję nazwy pliku** w katalogu wyjściowym. Jeśli plik `{klient}.psd` (lub inne rozszerzenie używane przez skrypt) już istnieje — dodaj do nazwy klienta sufiks z indeksem `01`, `02`, ... (np. `Anna Rak``Anna Rak 01`, a jeśli i to zajęte → `Anna Rak 02`). Inkrementuj aż znajdziesz wolną nazwę. Dopiero wtedy przekaż wynik jako `--klient`.
2. Uruchom skrypt: `python tools/generowanie/{script_name} --klient "Imię Nazwisko" ...` (parametry zależne od skryptu — dla buteleczek/pudełek zwykle `--imie/--imiona`, `--data`, opcjonalnie `--zyczenia`/`--podziekowanie`; dla produktów ze zdjęciem dorzuć `--zdjecie /sciezka/do/foto.jpg`)
3. Jeśli mapowanie ma `output_dir` — skrypt powinien zapisać tam (jeśli obsługuje)
### 8. Oznacz w bazie