feat: depreciation engine, reservations, vendors directory, and purchase orders - #1358
Merged
yusuftomilola merged 1 commit intoAug 26, 2026
Conversation
…urchase orders - BE-28: Implement depreciation engine with straight-line and declining-balance schedules, org-wide depreciation reports, and asset depreciation endpoints - BE-29: Implement asset reservations with race-safe conflict detection, availability endpoint, confirm/cancel workflows - FE-06: Build vendors directory with CRUD, search, and linked assets - FE-07: Build purchase orders page with PO lifecycle, line-item management, and receive-into-assets flow Closes DistinctCodes#1087 Closes DistinctCodes#1088 Closes DistinctCodes#1094 Closes DistinctCodes#1095
|
@RennyThompson is attempting to deploy a commit to the naijabuz's projects Team on Vercel. A member of the Team first needs to authorize it. |
|
@RennyThompson Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
yusuftomilola
approved these changes
Aug 26, 2026
yusuftomilola
left a comment
Collaborator
There was a problem hiding this comment.
Reviewed. Solid work:
- Depreciation engine: straight-line and declining-balance methods, correctly proration on a partial first month, salvage-value floor respected, and both a per-asset and an org-wide category-grouped report.
- Reservations: overlap-conflict detection on create (409 on a clashing time window), ownership + role gating on cancel (owner/ADMIN/MANAGER), ADMIN/MANAGER-only confirm, and an availability endpoint wired into the asset controller.
- Purchase orders / vendors frontend: clean CRUD pages with search, receive/cancel modals, proper query hooks.
Approving.
5 tasks
yusuftomilola
added a commit
to authenticeasy-sys/AssetsUp
that referenced
this pull request
Aug 26, 2026
Resolve additive conflicts against DistinctCodes#1358 (DepreciationModule/ ReservationsModule) in app.module.ts and against DistinctCodes#1359 (theme provider) in topbar.tsx - both sets of imports/JSX are needed side by side, so combined them.
yusuftomilola
added a commit
to BashMan11/AssetsUp
that referenced
this pull request
Aug 26, 2026
Resolve duplicate lucide-react import conflict in sidebar.tsx: this branch and DistinctCodes#1358 both added Store/FileText icon imports for the same nav items (already merged), plus this PR's own Bell import for the new notifications link. Deduplicated to a single import list.
yusuftomilola
added a commit
that referenced
this pull request
Aug 26, 2026
…ications Merging per repo maintainer review. Resolved a duplicate icon-import conflict in sidebar.tsx against #1358. Pre-existing CI failures predate this PR.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR implements four foundational features for the AssetsUp platform: a depreciation engine, asset reservations, a vendors directory, and purchase orders.
Changes
[BE-28] Depreciation Engine
depreciationMethod,usefulLifeMonths,salvageValue, andcurrentValuefields to the Asset entityDepreciationModulewith service supporting straight-line and declining-balance (200% DB) methodsGET /api/assets/:id/depreciation— full depreciation schedule with current book valueGET /api/reports/depreciation— org-wide totals (total book value, monthly expense, top categories)[BE-29] Asset Reservations
ReservationsModulewithReservationentity (asset, reservedBy, time window, status)POST /api/reservations— create with 409 on overlapGET /api/reservations— filtered list (assetId, userId, from, to, status)GET /api/assets/:id/availability— free/busy windows for calendar renderingPATCH /api/reservations/:id/cancel— staff cancel own; managers cancel anyPATCH /api/reservations/:id/confirm— manager/admin only[FE-06] Vendors Directory
/vendorspage with searchable vendor table (name, contact, email/phone, asset count)[FE-07] Purchase Orders
/purchase-orderspage with PO table (number, vendor, items, total, status badge, expected date)Verification
Closes #1087
Closes #1088
Closes #1094
Closes #1095