aferrer
|
7abf298da1
|
refactor(items): localize stock policy form resolver typing
|
2026-07-01 01:28:49 +02:00 |
|
aferrer
|
79bd1b5d5e
|
feat(items): add stock policy fields
|
2026-07-01 01:06:10 +02:00 |
|
aferrer
|
d1def3353a
|
chore(navigation): reorder assignments and movements
|
2026-06-30 10:06:49 +02:00 |
|
aferrer
|
66c703e484
|
test(users): align unified form no-user default
|
2026-06-30 10:06:42 +02:00 |
|
aferrer
|
925bafff1a
|
fix(common): make page header search opt-in
|
2026-06-30 10:06:35 +02:00 |
|
aferrer
|
1e9c5b9627
|
fix(assignments): normalize asset-backed quantity
|
2026-06-30 10:06:27 +02:00 |
|
aferrer
|
723c41f0c9
|
feat(people): split people and teams into tabs
|
2026-06-30 10:06:20 +02:00 |
|
aferrer
|
15494b2539
|
chore: Configure editor to format on save and set default formatter for TypeScript variants
|
2026-06-29 13:55:20 +02:00 |
|
aferrer
|
efda051aa3
|
feat(teams): add Team entity and replace PersonDepartment with teamId (#6)
Co-authored-by: Asis Ferrer <aferrer@aferrer.dev>
Co-committed-by: Asis Ferrer <aferrer@aferrer.dev>
|
2026-06-26 00:32:37 +00:00 |
|
aferrer
|
b401f254ec
|
feat(assignments): remaining quantity display and partial return i18n
|
2026-06-25 21:42:09 +02:00 |
|
aferrer
|
2c03cd4d66
|
feat(assignments): partial return action and ReturnButton modal
|
2026-06-25 21:18:34 +02:00 |
|
aferrer
|
de40e0bf73
|
chore(deps): add jsdom and testing-library for modal tests
|
2026-06-25 21:07:06 +02:00 |
|
aferrer
|
e4bd76a353
|
feat(assignments): partial return schema, concurrency guard, domain error
|
2026-06-25 21:02:46 +02:00 |
|
stock-manager-bot
|
9b023ee558
|
fix(schemas): fix asset schema Zod generic and form test types
|
2026-06-25 19:54:46 +02:00 |
|
stock-manager-bot
|
44565e3a62
|
test(cleanup): fix pre-existing test mocks and data
|
2026-06-25 19:50:02 +02:00 |
|
aferrer
|
18e274ef37
|
feat(assignments): close and reopen assignment on person swap
|
2026-06-25 17:20:24 +02:00 |
|
aferrer
|
b4b63e107a
|
feat(assets): pair ASSIGNMENT movement on itemChanged AVAILABLE→ASSIGNED
|
2026-06-25 17:05:23 +02:00 |
|
aferrer
|
91dc0220ae
|
feat(assignments): emit ADJUSTMENT movement on quantity change
|
2026-06-25 16:58:03 +02:00 |
|
aferrer
|
1142855578
|
feat(assets): thread previousStatus through movement writes
|
2026-06-25 03:25:47 +02:00 |
|
aferrer
|
a0a1e1bdc8
|
feat(movements): gate StockMovementLine on trackingType QUANTITY
|
2026-06-25 03:22:08 +02:00 |
|
aferrer
|
8f7a406e83
|
fix(assets): omit phantom stock line for ASSIGNED assets
|
2026-06-25 03:14:00 +02:00 |
|
aferrer
|
95c52579d1
|
refactor(movements): normalize snapshot convention to mutate-then-write
|
2026-06-25 03:11:15 +02:00 |
|
aferrer
|
575cd2d9a0
|
feat(items): emit ISSUE/ADJUSTMENT movement on stock decrease
|
2026-06-25 03:03:26 +02:00 |
|
aferrer
|
0d38626f3a
|
test(cleanup): remove legacy admin users references
|
2026-06-20 16:27:36 +02:00 |
|
aferrer
|
d217edd4e5
|
test(i18n): sync inventory dictionary contracts
|
2026-06-19 17:14:22 +02:00 |
|
aferrer
|
f32d55a7b0
|
feat(assets): add asset metadata views and enforce assignment transitions
|
2026-06-19 17:14:22 +02:00 |
|
aferrer
|
c1763ed007
|
feat(assignments): support line-based returns and authenticated updates
|
2026-06-19 17:14:22 +02:00 |
|
aferrer
|
965a04a468
|
feat(items): adapt item flows to inventory schema defaults and SKU generation
|
2026-06-19 17:14:22 +02:00 |
|
aferrer
|
7b8a415c6a
|
feat(people): align people, users, and categories with active inventory records
|
2026-06-19 17:14:22 +02:00 |
|
aferrer
|
c123170a46
|
test(e2e): forbid focused Playwright tests in CI
|
2026-06-19 01:05:33 +02:00 |
|
aferrer
|
6d34a2f74f
|
feat(inventory): support line-based assignments and movements
|
2026-06-19 01:05:33 +02:00 |
|
aferrer
|
8e6a00c2a9
|
feat(people): adapt person user flows to status model
|
2026-06-19 01:05:33 +02:00 |
|
aferrer
|
01d89cd21b
|
feat(auth): align login and bootstrap with new user schema
|
2026-06-19 01:05:33 +02:00 |
|
aferrer
|
2ed9445f7f
|
feat(db): reshape user and inventory schema
|
2026-06-19 01:05:33 +02:00 |
|
aferrer
|
1a95bf4613
|
docs: update README to reflect Person model and /people migration
|
2026-06-18 23:27:12 +02:00 |
|
aferrer
|
fff5ce01e5
|
chore: add openspec and sdd to gitignore
|
2026-06-18 22:51:08 +02:00 |
|
aferrer
|
fb5f3da7c1
|
feat: add quick-assign action from people list with person preselected
|
2026-06-18 22:46:35 +02:00 |
|
aferrer
|
df02d24d79
|
refactor: remove obsolete admin/users files after /people migration
|
2026-06-18 22:45:39 +02:00 |
|
aferrer
|
92f83c708a
|
refactor(i18n): update Spanish (es) locale strings for delivery note
|
2026-06-17 09:41:32 +02:00 |
|
aferrer
|
d6b42d78e7
|
refactor: consolidate admin/users management under /people
|
2026-06-17 09:32:26 +02:00 |
|
aferrer
|
4f370eee70
|
refactor: move unified Person+User form to /people/new, admin-only
|
2026-06-17 08:51:23 +02:00 |
|
aferrer
|
1f5a849bf5
|
feat: unify Person and User creation form with conditional password
|
2026-06-16 21:48:59 +02:00 |
|
aferrer
|
e5717461cf
|
feat: add unified Person+User creation backend
|
2026-06-16 21:21:17 +02:00 |
|
aferrer
|
68c2983d36
|
refactor: remove username from User model, login by email only
|
2026-06-16 16:18:42 +02:00 |
|
aferrer
|
caf19575c6
|
refactor: rename DB columns recipientId to personId
|
2026-06-16 13:37:58 +02:00 |
|
aferrer
|
cf6820a7aa
|
refactor: rename remaining recipient references to person/people
|
2026-06-16 13:34:15 +02:00 |
|
aferrer
|
29c7c19cd8
|
refactor: complete i18n rename recipients to people, finalize tests
|
2026-06-16 12:25:57 +02:00 |
|
aferrer
|
ecc3cf1b55
|
refactor: rename recipients route to people, update all frontend references
|
2026-06-16 11:26:21 +02:00 |
|
aferrer
|
d67f31cf54
|
refactor: rename Recipient to Person, remove username, add userId FK
|
2026-06-16 10:04:24 +02:00 |
|
aferrer
|
befe1f3f82
|
fix(validation): replace deprecated Zod error flatten calls
|
2026-06-15 21:59:02 +02:00 |
|