Improve journal pages loading time (new date range filter)
Various small style adjustments (meal plan page and others)
Pulled German translations from Transifex
Show the shopping list total value (closes#1309)
Make it possible to copy recipes (closes#714)
Implemented optional "auto decimal separator for price inputs" (closes#1345)
Removed table grouped column fixed order restriction (closes#1402)
Don't filter out style, class, id attributes of html text (closes#1298)
Added product picture as column on the stock overview page (closes#1283)
Added grocycodes also for chores and batteries (+ camera barcode scanning for /choretracking and /batterytracking, this now closes#221)
* Added escpos-php library
* Added button to shoppinglist print menu
* Added to translation
* Added basic printing logic and API call
* Working implementation for printing with the API
* Added openapi json
* Correctly parsing boolean parameter
* Working button in UI
* Change to grocy formatting
* Add Date
* Only show thermal print button when Feature Flag is set
* Fixed API call and added error message parsing
* Undo translation
* Add flag to print quantities as well
* Added printing notes
* Added quantity conversion
* Increse feed
* Fixed that checkbox was undefined, as dialog was already closed
* Added padding
* Formatting
* Added note about user permission
* Fixed error when using notes instead of products
* Review
- Default FEATURE_FLAG_THERMAL_PRINTER to disabled
- Added missing localization strings (and slightly adjusted one)
* Fixed merge conflicts
Co-authored-by: Bernd Bestel <bernd@berrnd.de>
* Grocycode: Productpicker, StockService
* Grocycode: Datamatrix generation
* Grocycode: Display in UI, make Images downloadable
* Grocycode: Do not show on product card
* Grocycode: Stockentry Label view
* Grocycode: Webhooks & Labelprinter Feature
* Grocycode: Manual Label printing
* Grocycode: Print Label from product form
* Quagga2: use zxing for DataMatrix recognition
* Grocycode: Default settings for label printing
* Prepare merge of master
* Grocycode: docs
* Docs: label printing webhook
* Review
- "grocy" is currently written lower-case everywhere, so let's do this also for "grocycode"
- Unified phrases / capitalization
- Minor UI adjustments (mainly context menu item ordering / ordering/spacing on product edit page)
- Documented API changes for Swagger UI (grocy.openapi.json)
- Reverted German localizations (those are managed via Transifex; would cause conflicts when manually edited - will import them later there)
- Reverted a somehow messed up localization string (productform/help text for `cumulate_min_stock_amount_of_sub_products`)
- Suppress deprecation warnings when generating Datamatrix PNG (otherwise the PNG is invalid, https://github.com/jucksearm/php-barcode/issues/3)
- Default `FEATURE_FLAG_LABELPRINTER` to disabled
Co-authored-by: Bernd Bestel <bernd@berrnd.de>
* added button to add expired products to shoppinglist
* Localizations are managed via Transifex
Revert "added button to add expired products to shoppinglist"
This reverts commit ad1ab5d6a0f4bd1dbc88dbb0bda67713d4038014.
* Revert unnecessary change
* Reuse existing function (GetExpiringProducts) to get expired products
Co-authored-by: Mario Klug <mario.klug@sourcefactory.at>
Co-authored-by: Bernd Bestel <bernd@berrnd.de>
* Stockjournal: Add "Done by"
* Add API for Stock-Journal
* Add "Journal-Summary"
* Use ALTER TABLE
* Moved the "Jounral summary" button to the stock journal page
* Changed icon & context menu position for new stock journal summary page
Co-authored-by: Bernd Bestel <bernd@berrnd.de>
* Add FilteredApiResponse
* Use FilteredApiResponse for Generic-Entity-Search
* Use FilteredApiResponse for Recipe-Fullfillment
* Use FilteredApiResponse for GetUsers
* Use FilteredApiResponse for current Tasks
* Use FilteredApiResponse for ProductStockEntries & ProductStockLocations
* Use FilteredApiResponse for current chores
* Use FilteredApiResponse for batteries-current
* Fix missing highlighting of "< X days"
* Keep to use existing views
Co-authored-by: Bernd Bestel <bernd@berrnd.de>
* Locales: use http-accept-language or "language"-cookie
* Add user-setting "locale"
Rename CULTURE to DEFAULT_LOCALE
* Use LocaleMiddleware also in dev mode
* CORS: don't require authentication on OPTIONS
* Use a standard user-settings-control and start a new generic user settings page, not a separate page for the locale setting
* Fixed (broken by myself) link-return handling
* Clarify language settings
* Removed unneeded files
* Better user settings icon
* Added localization hints
Co-authored-by: Bernd Bestel <bernd@berrnd.de>
* Add permissions to Database & add "User"-classes
* Add UI & API for Permissions, protect "User"-(Api)-Controller with new permissions.
* Add some permissions.
* Add permission localization
* Add error handling.
* Error pages: only redirect on 404
* ExceptionController: return JSON-Response on api-routes
* Rename PRODUCT_ADD to PRODUCT_PURCHASE
* Move translation to new file
* Fix checkboxes stay selected on reload.
* Remove configurable User-implementation
* Remove MASTER_DATA_READ
* Disable buttons the user isn't allowed to use.
* Add default permissions for new users
* When migration to permissions, everyone starts as ADMIN
* Permission-Localization: add to transifex & LocalizationService
* Review
Co-authored-by: Bernd Bestel <bernd@berrnd.de>
* Puchase add qu_factor_to_stock
* qu_factor_purchase_to_stock for stock edit
* product barcodes with QU and Stores
* remove product barcode tags
* migrations/0103 add value and factor_puchase_amount to stock_current and stock_current_location_content
* Remove unused method
* StockService#GetProductDetails: include stock_value
* productcard: include stock_value
* Add Purchase Factor to Stock Overview
* update demo data with stock qu_factor_purchase_to_stock
* recipes_pos_resolved update
* avg_price and oldest_price in product details
* add average price to product card
* hint for recipe costs not included if not in stock
* Round value and factor_purchas_amount. Include currency for stock value
* Add factor_purchase_amount to product card stock amount
* Allow editing qu_factor_purchase_to_stock for stock entries
* fix update qu_factor_purchase_to_stock for Transfers
* Add barcode to existing product update to add to product_barcodes table
* Add barcode to new product workflow update to add to product_barcodes table
* *** Price now saved as 1 QU to stock in stock tables ***
* remove column product barcode and use product_barcodes
* Allow products to be deactivated instead of deleted
* Embedded barcode and qu-conversion with page reload on change
* Save current product barcode into new product_barcodes table
* Embedded popup for product group add/edit
* barcode scanner added to product barcodes input
* Edit product qu_stock is unavailable after first purchase
* StockOverview: Filters break when columns are reordered so for now just disable colReorder
* view stockoverview.blade: display product_group column
* Review
Co-authored-by: Bernd Bestel <bernd@berrnd.de>
* use singletons to reduce need to recreate the same objects
* unable to make the constructor private
* comment out debug printing to log file
* correct typo of treating self() as a var instead of a function
* utilise Localisation service as a singleton
* fix errent line that should have been commented
* remove phpinfo
* correct mistake in stock controller
* try storing app in apcu
* serialise inside the app closures
* get timings for db-changed-time
* get timings for db-changed-time
* store localisation service in apcu
* stor translations in apcu instead of localisation service (due to database connection)
* correct syntax error
* forgot to uncomment instance map
* correct indentation and variable out of scope
* more timings for app execution time
* try apc caching for views
* correct scope for Pot variable
* remove additional fopen
* correct timings for app build time
* correct timings for app object build time
* correct timings for app route build time
* get timings for routing timings
* get more in depth timings for routing loading
* fix more in depth timings for routing loading
* start investigating session auth middleware creation
* start investigating session auth middleware creation
* start investigating Login controller time
* start investigating Login controller time
* in depth look at Logincontroller timings
* comment out debug printing
* lazily obtain valus for page rendering
* correct syntax error
* correct scope of variable
* correct visibiity of methds inherited from BaseController
* missing use for Userfieldsservice
* lazy loading of open api spec
* lazy loading of users service
* lazy loading of batteries service
* lazy loading of services in controllers
* lazy loading of services in services
* correct mistake
* fix userservice
* fix userservice
* fix userfieldservice
* fix chores service
* fix calendar service
* remove Dockerfile used for development
* Remove docker compose file used for development
* Clean up app.php
* remove last diff
* Clean up base controller
* Clean up controllers
* lean up middleware
* Clean up and tuen all services into singletons
* remove debug from routes.php
* remove acpu from localisation
* Complete removal of acpu from localisation
* fixes for things broken
* More fixes following merge
* Fix for start up bug. Re factoring singleton code had brroken due to scope of clas var.
* fix bug where getUsersService is declared twice
* bug fixes following merge
* bug fixes following merge
* bug fixes following merge
* bug fixes following merge
* bug fixes following merge
* Fix all the not working things...
* Deleted off-topic files
* Deleted off-topic files
Co-authored-by: Bernd Bestel <bernd@berrnd.de>
- Only refresh contextual number/datetime info/formatting where needed (closes#513)
- Also refresh correlated stock journal entries on undo (closes#471)
- Prefill "New amount" with the current stock amount on the inventory page (closes#434)
- Ensure that the location_id of the stock and stock_log tables is never empty after migration 95 (references #421)
- Load initial values of the /stockedit form server side to improve loading performance (references #421)
- Use more or less the same input ordering as on the purchase page for the /stockedit page (references #421)
- Also display the "Compact view" button on the shopping list page when FEATURE_FLAG_SHOPPINGLIST_MULTIPLE_LISTS is disabled (references #453)
- Ensure that the currently active sidebar menu item is visible
- Optimized sidebar menu item grouping/spacing
- Properly order the API documentation route groups and put the "by-barcode" routes into a separate group
- Updated dependencies
- Pulled translations from Transifex
- Prepared changelog for next release
* refactor to be stock/entry/{entryId}
* Allow recipeform add productworkflow
* on document ready stockdetail filter based on ProductPicker
* openDate fixes for undo
* RefreshStockDetailRow refresh location-id
* viewjs consume: implement location and update stock specific
* Transfer Products
* services StockService#GetProductStockEntriesByLocation: add method
* services StockService#AddProduct: check for stock and locations
* services StockService: include location_id
* services StockService#LocationExists: add method
* services StockService#UndoBooking: fix based on stockRow
* Reimplement StockServer->TransferProduct (one loop for the whole action to preserve stock_id)
* Ensure that the location_id is never NULL in the stock and stock_log table (checked by an INSERT trigger, sets the products default location if empty)
* Only consider stock amount at the given location on consume, if supplied
* Restore more/old display text for "specific stock entry"
* Don't allow transfering tare weight enabled products
* Various small changes (code style, missing OpenAPI endpoint, remove location_id null checking)
* Updated translations strings
* Added transaction_id and correlation_id to stock_log entries to group them together
* ProductCard - location to default location label change
* Also undo correlated bookings on undo
* Added API endpoints for listing and undoing transactions and use them on purchase/consume/inventory/stockoverview
* Initial Stock detail page
* Allow Undo for Tranfers
* Price step to .01
* Some localization string changes & fixes