2f22a8754e
Pull item fields out of update
2026-08-05 16:01:21 +01:00
12e5e6c0fc
Added enrichInitialOrderFromRequest to controllers
2026-08-05 14:31:12 +01:00
e72dba9388
Updated bulk edit forms
2026-08-05 11:50:55 +01:00
d345209aee
Update controllers to use the relationship query for order_number
2026-08-03 15:29:43 +01:00
3c7fe91c86
Refactor qty adjustment to trait
2026-08-03 14:01:30 +01:00
a53928e1a4
Replenish/remove for consumables, accessories, components
2026-08-03 13:07:59 +01:00
d30b73d9c8
Harden internal URL redirect safety
2026-07-28 13:06:20 +01:00
f099a2e4aa
Do not remove files on soft-delete
2026-07-21 16:44:49 +01:00
409e11dca4
Make accessories requestable
...
Accessories can now be flagged as requestable and requested by users from
the requestable items page, the same way assets and asset models already
can. No migration is needed since the accessories table already carries a
requestable column.
I kept the semantics deliberately simple: a request just records intent
(and the requested quantity) and notifies the admins. It does not touch or
reserve stock. The admin still performs the normal checkout, which is what
actually decrements quantity. That way requests behave the same for unique
assets and for quantity-based accessories, instead of inventing a separate
"reserved" state.
The admin "Requested" queue already lists every checkout request
polymorphically (it showed asset models too), so accessory requests appear
there as well; I extended that view to render the accessory name, image and
a checkout action so an admin can actually see and fulfil the request.
While wiring this up I also fixed a pre-existing bug in the request flow:
the Requestable trait saved a 'qty' key, but the column is 'quantity' and
wasn't fillable, so requested quantities were being silently dropped (this
affected asset models too). Quantity is now persisted and read back
correctly.
Components and licenses can follow the same pattern; they each just need a
small migration to add the requestable column.
2026-06-10 19:57:53 +02:00
9bc92f57c8
Apply pint to non-API controllers
2026-03-13 16:45:30 +00:00
53abf8cdcc
Load count with RMB controller
2026-03-12 14:10:43 +00:00
e376492128
Use intended() for redirect options
2026-03-12 13:57:50 +00:00
63e62cde1b
Moved gates higher, switch to RMB for accessories
2026-03-12 12:13:38 +00:00
0f215bbcf8
fix: replace deprecated Symfony Request::get() usage
2025-12-17 18:44:04 -08:00
22a43a0463
adds redirect option fix to accessories update method
2025-11-05 12:19:18 -08:00
bd2acefecc
rethought, keeping previous page as an option
2025-08-05 12:29:59 -07:00
f1dd84edba
Added option to clone original images
...
Signed-off-by: snipe <snipe@snipe.net >
2025-08-04 18:47:26 +01:00
55ebb4671f
update check in and check out controllers
2025-07-01 12:44:26 -07:00
5f883310b5
Improve display of user on accessory show page
2025-05-21 16:48:26 -07:00
876715b3c5
Merge pull request #16435 from marcusmoore/fixes/prevent-deleting-accessories-with-checkouts
...
Disallow deleting accessories that have active checkouts
2025-04-19 14:38:14 +01:00
e215c5f9ee
Fixed #16619 - accesory clone
...
Signed-off-by: snipe <snipe@snipe.net >
2025-04-02 12:43:42 +01:00
d1683d1c65
Use existing translation string
2025-03-05 16:10:36 -08:00
8c21d625fc
Prevent deleting accessory that has checkouts via UI
2025-03-05 15:56:01 -08:00
e0beed0fa3
Reapplied accessory gate
...
Signed-off-by: snipe <snipe@snipe.net >
2025-02-20 18:28:01 +00:00
347eb2bdee
Fixed route parameters and tests to match
...
Signed-off-by: snipe <snipe@snipe.net >
2025-02-19 05:03:56 +00:00
f7d213052a
Route model binding for resource groups
...
Signed-off-by: snipe <snipe@snipe.net >
2025-02-19 02:49:05 +00:00
d3bfa75251
Add accessory ui tests
2024-12-12 14:30:58 -08:00
1582d81e5b
Change user_id to created_by
...
Signed-off-by: snipe <snipe@snipe.net >
2024-09-17 22:16:41 +01:00
b18baf74d2
added options to checkout accessoires to locations and assets
...
Added #14979 : add checkout functionality to accessoires
2024-07-29 10:54:53 +02:00
759ab78f80
Added more redirects
...
Signed-off-by: snipe <snipe@snipe.net >
2024-07-26 11:27:36 +01:00
96d1aea54a
More cleanup
...
Signed-off-by: snipe <snipe@snipe.net >
2024-07-05 00:54:50 +01:00
e98284fff5
Modernized helpers and use statements
...
Signed-off-by: snipe <snipe@snipe.net >
2024-07-04 20:48:35 +01:00
df1cef59d5
Fixes path for redirect response
...
Signed-off-by: snipe <snipe@snipe.net >
2024-05-29 18:01:40 +01:00
fb233c0aa4
Cleaned up facade names and references
...
Signed-off-by: snipe <snipe@snipe.net >
2024-05-29 12:38:15 +01:00
01ab360ef3
Fixed accessory clone typo
...
Signed-off-by: snipe <snipe@snipe.net >
2023-08-15 20:39:09 +01:00
df8f6a8d2b
Correctly call the route for accessory index
...
Signed-off-by: snipe <snipe@snipe.net >
2023-08-11 09:40:49 +01:00
3271c9dc9f
Fix #8208 , #8896 , #8985 , #9789
2023-03-29 09:56:34 +02:00
a8e2f72e25
accessory cloning, WITHOUT copying over the image.
2023-03-15 16:55:24 -04:00
a3353b8496
committing
2023-03-15 13:48:22 -04:00
ec5836dab4
cloning accessories first bit
2023-03-07 16:41:48 -05:00
dc155846ca
Hoist the autorization higher in the stack so we’re not doing logic or math when the user isn’t authorized to touch this
...
Signed-off-by: snipe <snipe@snipe.net >
2023-01-23 21:49:17 -08:00
60eab08735
Added ->with(‘users as users_count’) in Accessory query
...
Signed-off-by: snipe <snipe@snipe.net >
2023-01-21 14:41:07 -08:00
b5378eff64
Fix several typos
2022-04-05 16:12:31 -05:00
570dd09dcd
Add validation to Accessories and Consumables to not let the user update the number of items to less than they already have checked out
2022-03-15 17:52:19 -06:00
b876d0abb0
Merge remote-tracking branch 'origin/master' into develop
...
Signed-off-by: snipe <snipe@snipe.net >
# Conflicts:
# .env.example
# app/Http/Controllers/Auth/LoginController.php
# app/Http/Kernel.php
# app/Http/Transformers/ActionlogsTransformer.php
# app/Importer/AssetImporter.php
# app/Models/Accessory.php
# app/Models/Consumable.php
# app/Presenters/AccessoryPresenter.php
# app/Presenters/ComponentPresenter.php
# app/Presenters/ConsumablePresenter.php
# app/Providers/AuthServiceProvider.php
# composer.json
# composer.lock
# config/app.php
# config/cors.php
# config/version.php
# package-lock.json
# public/js/build/app.js
# public/js/build/app.js.LICENSE.txt
# public/js/dist/all.js
# public/mix-manifest.json
# resources/views/accessories/view.blade.php
# resources/views/consumables/view.blade.php
# resources/views/settings/saml.blade.php
# routes/api.php
2022-03-03 21:59:38 -08:00
9acb5413f6
Added notes field to controllers
...
Signed-off-by: snipe <snipe@snipe.net >
2022-03-03 20:29:25 -08:00
aa8f1378c9
Merge remote-tracking branch 'origin/master' into develop
...
Signed-off-by: snipe <snipe@snipe.net >
# Conflicts:
# README.md
# app/Http/Controllers/Accessories/AccessoriesController.php
# app/Http/Controllers/Api/AssetMaintenancesController.php
# app/Http/Controllers/Api/AssetModelsController.php
# app/Http/Controllers/Api/AssetsController.php
# app/Http/Controllers/Api/UsersController.php
# app/Http/Controllers/AssetMaintenancesController.php
# app/Http/Controllers/Assets/AssetFilesController.php
# app/Http/Controllers/Assets/AssetsController.php
# app/Http/Controllers/Assets/BulkAssetsController.php
# app/Http/Controllers/Components/ComponentsController.php
# app/Http/Controllers/Consumables/ConsumablesController.php
# app/Http/Controllers/Licenses/LicenseFilesController.php
# app/Http/Controllers/Licenses/LicensesController.php
# app/Http/Controllers/Users/UserFilesController.php
# app/Http/Transformers/AssetsTransformer.php
# app/Http/Transformers/LicensesTransformer.php
# app/Importer/UserImporter.php
# app/Models/Asset.php
# config/app.php
# config/version.php
# package-lock.json
# public/js/build/app.js
# public/js/dist/all.js
# public/js/dist/bootstrap-table.js
# public/mix-manifest.json
# resources/lang/en/admin/users/message.php
# resources/lang/is/button.php
# resources/lang/ja/admin/kits/general.php
# resources/lang/ro/admin/users/general.php
# resources/lang/zh-HK/admin/depreciations/general.php
# resources/lang/zh-HK/admin/models/general.php
# resources/views/hardware/qr-view.blade.php
# resources/views/hardware/view.blade.php
# resources/views/partials/bootstrap-table.blade.php
# resources/views/users/view.blade.php
# routes/web.php
# routes/web/hardware.php
# routes/web/models.php
# routes/web/users.php
2021-10-20 17:26:41 -07:00
f3338667c7
Create new ParseCurrency helper and use it in the appropriate controllers
2021-09-28 18:20:39 -07:00
934afa036f
Adopt Laravel coding style
...
Shift automatically applies the Laravel coding style - which uses the PSR-2 coding style as a base with some minor additions.
You may customize the adopted coding style by adding your own [PHP CS Fixer][1] `.php_cs` config file to your project root. Feel free to use [Shift's Laravel ruleset][2] to help you get started.
[1]: https://github.com/FriendsOfPHP/PHP-CS-Fixer
[2]: https://gist.github.com/laravel-shift/cab527923ed2a109dda047b97d53c200
2021-06-10 20:15:52 +00:00
6a089f86f8
Fixed pathing for accessories
2020-08-03 11:17:56 -07:00