Commit Graph

6639 Commits

Author SHA1 Message Date
DanielS
661cf645d4 German back office: hotel modules, reports, dashboard and menu names
The German language pack leaves the Webkul hotel modules (Hotel
Reservation System, Book Now, refunds, rooms, settings), reports,
dashboard widgets, cron manager, channel manager, reviews and 31 menu
names in English.

- docker/find-missing-admin-translations.php: scans module admin
  controllers/classes/templates and core admin pages for keys without
  a German text
- docker/translations-de-admin.php: 1361 translations (formal "Sie",
  shared glossary, placeholders/markup verified automatically)
- docker/translations-de-tabs.php: menu names (Hotelverwaltung, Zimmer
  buchen, Zimmerstatus, Erstattungsanträge, Zeitgesteuerte Aufgaben ...)
- apply-translations.php now also writes back-office module texts,
  core admin texts and menu names; module texts the core admin pack
  already translates are reused from it (modules do not fall back to
  the admin pack at runtime). Result locally: 0 untranslated strings.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-12 00:41:51 +01:00
DanielS
f3b1838402 Add frontdesk: simple "Rezeption" page and staff profile
One large-type page for the front desk (Hotel Reservation System >
Rezeption, first menu entry):
- today's arrivals, departures, guests in house and overdue arrivals,
  each guest as a card with big room number, name, people, nights,
  room type and booking source
- one obvious button per guest: Einchecken / Auschecken (and "Früher
  abreisen"); after each action a big confirmation with "Rückgängig"
  instead of confirm dialogs; Post/Redirect/Get so reload never repeats
- uses HotelBookingDetail::changeStatus(), so status history and hooks
  (casposbridge posts the nights) run as in the order page; check-out
  does not require payment in QloApps because guests pay at the POS
- shows the CASPOS state per guest; other days are read-only
- tiles to Belegungsplan and Neue Reservierung (Book Now)
- employee profile "Rezeption" that only sees Rezeption, Belegungsplan,
  Book Now, orders, customers, carts and guest registration cards
- docker/test-frontdesk.php: 21 checks with throw-away guests

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-12 00:26:13 +01:00
DanielS
f4eb1fbc9d Add docker/renumber-rooms.php: room numbers = CASPOS table numbers
Numbers all rooms consecutively from a start number (dry run by
default, --apply to write) and carries the new number into existing
bookings (htl_booking_detail, htl_cart_booking_data) and queued
casposbridge jobs. Used locally: demo rooms GR/DR/ER/LR-101..105 ->
tables 101-120 of the test POS's "Hotel" area.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-12 00:18:51 +01:00
DanielS
e4db9fae82 Add occupancyplan: Belegungsplan (rooms x days) with click-to-reserve
New back-office page "Hotel Reservation System > Belegungsplan":
- rooms grouped by room type as rows, 14-62 days as columns, weekends
  and today highlighted, sticky room column, daily occupancy footer
- bookings as bars (booked / checked in / checked out / no-show) with
  guest name, guests, tooltip with dates, order reference and price;
  click opens the order; stays outside the view are cut
- booking source badge from orders.id_source (W website, T phone,
  B Booking.com, E Expedia ...; portals highlighted), so channel-manager
  bookings show up with their source
- blocked periods (htl_room_disable_dates) hatched with reason
- CASPOS badge: nights already posted by casposbridge, "!" on failures
- reserve: click a free cell (first night) and a later one (last night)
  in the same row -> action bar -> "Book Now" opens with dates, hotel
  and room type prefilled; keyboard: Enter/Space, Escape
- docker/test-occupancyplan.php: 15 checks with throw-away bookings,
  optional HTML preview

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-12 00:14:14 +01:00
DanielS
f038311614 casposbridge README: results from the CASPOS 4.12.3 test POS
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 23:53:46 +01:00
DanielS
b3b79960e7 casposbridge: verified against a real CASPOS 4.12.3
- send User-Agent "OrderApp/1.4.0 (linux) QloApps-CasposBridge/1.0" and
  version 1.4.0: CASPOS classifies non-OrderApp clients as "Orderman",
  which cannot be activated in the Order-App device manager
- fixed prices for open-price articles: ARTICLE@12.50 / @12,50 (cents)
- live test (docker/test-casposbridge-live.php) booked one night on
  table 101: 1 x 301 @ 145.00 + 2 x 101 @ 12.50, bookedAmount 17000,
  lines committed -> enteredPrice is in cents
- README: device activation, waiter key, per-area table number ranges
  ("Ungültige Tischnummer"), results
- docker/reset-admin-password.php: set a back-office password from the
  CLI (asked interactively, not echoed)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 23:53:20 +01:00
DanielS
b6eebfcb90 Add casposbridge: post hotel nights to CASPOS tables via OrderApp API
On check-in (actionBookingStatusAfter -> checked in) and hourly via the
QloApps Cron Task Manager or modules/casposbridge/cron.php, every night of
a checked-in stay is posted to the CASPOS table named after the room
number: registerClient -> waiter login -> tables/openByName ->
orderLines/add -> tables/finalizeOrder (API derived from the CASPOS
OrderApp client, lib/api/api.dart).

- one job per booking and night; pending -> added -> done, so a retry
  only commits and never books lines twice; half-added lines are
  cancelled; POS offline keeps jobs queued (max 10 attempts)
- mapping per room type: ARTICLE[*qty|erwachsene|kinder|gaeste][@preis]
- optional HTTPS with pinned SHA1 certificate fingerprint, checked
  before credentials are sent
- undoing a check-in drops unsent nights and logs posted ones for a void
- config page with connection test (lists service areas and articles)
  and the last 50 jobs with retry
- docker/caspos-mock: stand-in POS for the used endpoints and error
  codes; docker/test-casposbridge.php: 23 end-to-end checks

Not yet verified against a real CASPOS: enteredPrice unit, auto-creation
of tables, client activation, finalizeOrder/TSE behaviour.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 23:07:28 +01:00
DanielS
43a0b96fdf Test server: code in a Docker volume instead of a C:\ bind mount
With Docker Desktop on Windows the bind-mounted C:\hotel made every page
take ~5-7 s; with the code on the Linux filesystem it takes ~0.1 s.

- docker/Dockerfile.server bakes the repo into the image (.dockerignore
  keeps .env, settings.inc.php and caches out)
- docker/server-entrypoint.sh copies the code into the app_code volume on
  start: pass 1 updates code but skips runtime folders (uploads, generated
  images, caches, downloaded translations, settings.inc.php), pass 2 adds
  missing files without overwriting
- docker/php-server.ini: OPcache without timestamp checks, larger
  realpath cache
- setup script waits for the container and checks the install marker
  inside the volume; .gitattributes keeps *.sh LF on Windows checkouts
- TESTSERVER.md: speed section and one-time switch from the first version

Tested with a fresh stack: full install + demo + hardening, re-run keeps
DB/uploads, rebuilt image delivers code changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 22:40:07 +01:00
DanielS
26260d0d35 Add set-domain.php; setup applies SHOP_DOMAIN/QLO_SSL on every run
QloApps redirects every request to the domain stored in the DB, so a
wrong domain or HTTPS without TLS in front ends in ERR_SSL_PROTOCOL_ERROR.
docker/set-domain.php updates PS_SHOP_DOMAIN(_SSL), shop_url, SSL flags
and .htaccess; the setup script now calls it with the .env values, so
editing .env and re-running fixes the domain. Troubleshooting table in
docker/TESTSERVER.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 00:54:00 +01:00
DanielS
1e9daa8858 Add Windows test-server setup behind nginx
- docker-compose.server.yml: app on APP_BIND for an existing nginx proxy,
  QLO_SSL passed to the container
- docker/setup-testserver.ps1: one-shot setup for Docker Desktop/WSL
  (random .env secrets, CLI install that never reinstalls over an
  existing shop, German texts, optional demo content, hardening)
- docker/harden-test-server.php: delete demo customer pub@qloapps.com,
  disable webservice API keys, set SSL mode, deny module log folders
- docker/nginx-qloapps.conf: HTTPS + basic auth + X-Forwarded-Proto
- apache: deny /modules/*/logs/ (qlocmconnector logs API secrets)
- docker/TESTSERVER.md: Windows Server guide (German)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 00:45:15 +01:00
DanielS
9b4d6f1037 Wasserrad: German menu and units, inner-page header, cleaner demo data
Seed script renames menu links and "Room/Rooms" unit labels to German,
hides the Properties/Testimonials links, removes demo room features
(King, 600 sq ft) and copies gallery photos unpadded. Skin gets the wine
header on inner pages and object-fit gallery thumbnails.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 00:33:33 +01:00
DanielS
8434d950dd Add German front-office translations
The German language pack leaves ~180 shop strings in English (search
bar, cart, room cards, footer, account menu). docker/apply-translations.php
fills only missing keys from docker/translations-de-front.php and fixes
English values in the theme language file; docker/find-missing-translations.php
lists remaining gaps. Module/theme de.php files are git-ignored upstream
(downloaded on install), so the script is re-run after each install.
Also includes the language-pack updates the installer wrote to the
tracked module de.php files.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 00:33:32 +01:00
DanielS
c76dd44f16 Add Wasserrad demo content seed script
Replaces the "Hotel Prime" demo data: hotel texts and address, room
types with 2026 prices (gross incl. 7 % VAT), logo, header slides, room
photos and interior gallery; disables auto-added demo service fees and
hides the invented demo testimonials.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 00:20:06 +01:00
DanielS
b888634fd7 Add "Zum alten Wasserrad" skin to hotel-reservation-theme
Wine red / terracotta / sand palette, Lora + Open Sans self-hosted
(Google Fonts link removed for GDPR), water-wheel ornament, restyled
hero, booking bar, room cards, gallery and footer.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 00:20:04 +01:00
DanielS
e32cd8f6ed Add Docker Compose setup for local development
PHP 8.3/Apache + MariaDB 11.4 with the repo bind-mounted as web root.
Apache denies dotfiles (.env, .git), the docker files and /install-dev
(installation runs via CLI as www-data, see docker-compose.yml).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 00:20:03 +01:00
DanielS
ec79686a7d Disable phone-home to api.qloapps.com
Add _QLO_DISABLE_PHONE_HOME_ (default true) and honour it in
Tools::addonsRequest(), Tools::refresh(), the installer notification and
the theme catalog fetch. This stops sending admin name/email, shop domain
and country on install, the daily upgrade check, the admin
"recommendation" HTML and module/theme catalog requests.
Language and localization pack downloads stay available.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 00:20:01 +01:00
Rohit Jain
e502b63f83 Merge pull request #2012 from shazar-webkul/gli-google_connector_update
Updated: google hotel connector code for inactive room type query
2026-11-06 13:47:17 +05:30
shazar rahman
d09e3a59a3 Updated: google connector code for inactive room type query
Co-authored-by: Name <azharbhat.qlo098@webkul.in>
2026-11-06 13:45:00 +05:30
Rohit Jain
9658b21331 Merge pull request #2011 from amitsharma322/gli-3355
Fixed: Date validation issue in reports when selecting the same From and To dates in back office
2026-11-06 12:52:59 +05:30
amit sharma
45bf06d253 Fixed: change composer json description 2026-11-06 12:48:14 +05:30
Rohit Jain
3077055139 Merge pull request #2010 from sumitwebkul/gli-3353
Updated: Room bookings terminal status improvements
2026-11-06 12:33:56 +05:30
Rohit Jain
93ce5fe6b7 Merge pull request #2009 from AradhanaSingh63/gli-3354
Updated: Hotel image updated
2026-11-06 12:31:45 +05:30
aradhana kumari
d2861d7190 Update the hotel image 2026-11-06 11:20:34 +05:30
amit sharma
f6db929868 Fixed: review changes 2026-11-06 10:57:22 +05:30
amit sharma
13d729cd93 Issue: Admin Can Select the Same Date for Both the From Date and To Date in Reports 2026-11-06 10:48:22 +05:30
Sumit Panwar
48ba57ade8 Updated: minor code improvements 2026-11-06 10:46:38 +05:30
Sumit Panwar
4c4a0106cd while installation noshow is_terminal will be set as 0 2026-11-06 10:37:00 +05:30
Rohit Jain
2ca12e193b Merge pull request #1985 from shazar-webkul/gli-version_upgrade
Updated: Changelog and Version update for QloApps 1.8.0
2026-11-05 20:20:29 +05:30
Rohit Jain
6370aeaf76 Merge pull request #2007 from amitsharma322/gli-3352
Fixed: Default Installed Cron Tasks and Hotel Report module
2026-11-05 20:15:04 +05:30
Rohit Jain
6d30dbaf00 Merge pull request #2008 from shazar-webkul/gli-translation_update
Updated: default language translation file
2026-11-05 20:13:46 +05:30
Sumit Panwar
ec61f74338 Fixed terminal status issues withNo show room status 2026-11-05 19:54:52 +05:30
Sumit Panwar
4a7750bb53 Fixed terminal status issues withNo show room status 2026-11-05 19:46:39 +05:30
shazar rahman
2e2e02cbe2 Updated: default themes language translation file
Co-authored-by: Name <azharbhat.qlo098@webkul.in>
2026-11-05 19:19:52 +05:30
aradhana kumari
1596cc97a6 Updated: Hotel image updated 2026-11-05 19:12:59 +05:30
shazar rahman
f660ddea7f Updated: default language translation file
Co-authored-by: Name <azharbhat.qlo098@webkul.in>
2026-11-05 18:49:00 +05:30
amit sharma
9f4b81075f Fixed: changes icon color 2026-11-05 17:51:23 +05:30
amit sharma
1b943e65f7 Fixed: default Installed Cron Tasks Module and Hotel Report 2026-11-05 17:40:47 +05:30
Rohit Jain
93de35fb72 Merge pull request #2006 from amitsharma322/gli-3351
Fixed: Optimize performance of Admin Orders and Book Now pages
2026-11-05 16:34:28 +05:30
amit sharma
98c2c21a23 Merge branch 'develop' into gli-3351 2026-11-05 16:29:01 +05:30
Rohit Jain
8c19ff9cae Merge pull request #2005 from shazar-webkul/gli-3350
Updated: Tools correction and admin css
2026-11-05 16:26:16 +05:30
Shazar Rahman
43311ad0f3 Merge branch 'Qloapps:develop' into gli-3350 2026-11-05 16:24:14 +05:30
Rohit Jain
dee4111c64 Merge pull request #2004 from amitsharma322/gli-3349
Fixed: Text-related issues on the invoice and checkout pages
2026-11-05 16:14:08 +05:30
amit sharma
b315b593cb Fixed: typos in translatable strings 2026-11-04 20:12:34 +05:30
shazar rahman
fcbe15f3de Updated: install flow reverted
Co-authored-by: Name <azharbhat.qlo098@webkul.in>
2026-11-04 19:54:33 +05:30
amit sharma
d7d2a76c6b Fixed: added key logic in the admin hotel crontroller 2026-11-04 19:51:07 +05:30
shazar rahman
1e7c90c7b0 Fixed: channel manager connetor installation isssue
Co-authored-by: Name <azharbhat.qlo098@webkul.in>
2026-11-04 19:49:12 +05:30
shazar rahman
0090e20fb4 Updated: googleconnector module 2026-11-04 19:33:33 +05:30
amit sharma
07c2e2c660 Fixed: review changes 2026-11-04 19:32:56 +05:30
amit sharma
ddc8ac5be1 Fixed: Slow loading of Admin Orders and Book Now pages with large order volumes 2026-11-04 19:15:19 +05:30
shazar rahman
c63c8b1ac7 Fixed: code review done 2026-11-04 19:00:22 +05:30