4
🏛

Asset Management — Forms

Movable · Immovable · Vehicles · Insurance

Asset Management — Form Specifications

Module slug: asset-management · UX/forms agent · 2026-05-02 Models the physical body of the institution: lands (Bhumi), buildings, rooms, vehicles, movable equipment, jewels (Abharana), insurance, disposals, resident allocations. Forms below match the framework HTML language (Sanskrit terms preserved with English gloss) and the column definitions in docs/blueprints/asset-management.md.


Form 4.1 — Land Asset (Bhumi) Entry

Purpose: Register a parcel of land owned by the trust, with the legal-document trail required for due diligence and the Statutory module's acquisition record. Who fills: Tenant-admin / legal officer · once per parcel · revisited when EC is renewed or mutation status changes.

Field Type Required Options / Validation Default Help
Asset code text Yes uppercase, prefix LND-, unique per tenant auto: LND-{seq} Internal code; e.g. LND-MYS-007
Village / Location text Yes free text 127 chars E.g. Mysuru Ashrama, Avathi Garden
Survey Number text Yes as in revenue record Sub-divisions joined with /, e.g. 123/4A
Sub-division text No 40 chars If applicable
Extent — Acres number Yes step 0.01 ≥ 0 0 Enter acres portion
Extent — Guntas number Yes step 1, 0–39 0 40 guntas = 1 acre
Nature of Land dropdown Yes Agricultural / Converted (Non-Agri) / Garden (Thota) / Residential / Commercial / Temple / Gomala / Forest Agricultural Drives statutory disclosure
Mode of Acquisition dropdown Yes Direct Purchase / Gift (Dana) / Inheritance / Govt Allotment / Lease Direct Purchase From framework HTML
Taluk text No 63 chars
District text No 63 chars
State text No 63 chars Karnataka
Link Documents (30 Years) dropdown Yes Available / Pending / Missing Pending Mandatory legal trail
Encumbrance Cert (EC) Date date No ≤ today Last EC obtained
Mutation Status dropdown Yes Completed (Name Changed) / Pending / Disputed / Not Applicable Pending
Mutation Completed On date No ≤ today; required if status = Completed
Original Doc Location text Yes 127 chars E.g. Locker SBI-MYS-A12, Almirah Shelf 3
Boundaries (N/S/E/W) textarea No 4 sub-fields free text Stored as JSON {north, south, east, west}
Statutory acquisition record lookup No references asset_acquisition_records Link sale-deed / gift-deed already filed in Statutory
Notes textarea No 2000 chars

Submit action: POST /api/asset-management/assets with asset_type=land. Creates parent assets row + land_assets subtype row. If Link Documents = Missing, a Compliance follow-up task is auto-spawned. Audit event emitted. Related forms: Statutory Acquisition Record (Agent 2) for legal-document upload; Building Master (4.2) lists this land_asset_id as parent for buildings on it.


Form 4.2 — Building Master Entry

Purpose: Register a building (RSK / GK / BK / NM / Jamadagni etc.) sitting on a land parcel. Who fills: Tenant-admin / facilities manager · once per building · revisited only on construction / demolition.

Field Type Required Options / Validation Default Help
Asset code text Yes prefix BLD-, unique per tenant auto: BLD-{code} E.g. BLD-RSK
Building Code dropdown (with "Other") Yes RSK (Raja Rajeshwari Sannidhi) / GK (Gayatri Kuteera) / BK (Bhakti Kuteera) / NM Block / Jamadagni / Other Tenant-defined; "Other" reveals free-text input
Building Full Name text Yes 255 chars auto from code E.g. Raja Rajeshwari Sannidhi
On Land Asset lookup No from land_assets Parent parcel
Branch dropdown Yes tenant's branches current branch
Floors (count) number Yes 1–10 1 Including ground
Total Area (sq ft) number No step 0.01
Construction Year number No 1900–current year
Use Type dropdown Yes Residential / Admin / Kitchen / Shrine / School / Auditorium / Mixed Residential
Number of Rooms (planned) number No ≥ 0 0 Informational; actual rooms come from Form 4.3
AC equipped (any room) checkbox No unchecked Quick filter
Active checkbox Yes checked
Notes textarea No 2000 chars

Submit action: POST /api/asset-management/buildings. Returns building id usable as parent for rooms. Triggers an option to bulk-add rooms via Form 4.3. Related forms: Land Asset Entry (4.1) is parent; Room Setup Entry (4.3) is child; Maintenance Tasks (Module 6) attach to this asset_id.


Form 4.3 — Room Setup Entry

Purpose: Register an individual room within a building, used for resident allocation, event resource booking, and maintenance. Who fills: Facilities manager · per room (often via bulk-add wizard) · revisited if amenities change.

Field Type Required Options / Validation Default Help
Building dropdown Yes tenant's buildings Parent FK
Room Number text Yes unique within building E.g. G-12, 1F-3
Floor dropdown Yes Ground / First / Second / Third / Fourth / Fifth Ground Stored as integer 0..5
Capacity (Beds) number Yes 1–20 1
Room Type dropdown Yes Residential / Office / Classroom / Hall / Kitchen / Storeroom Residential
Amenities — AC checkbox No unchecked
Amenities — Attached Bath checkbox No unchecked
Amenities — Hot Water checkbox No unchecked
Amenities — Wifi checkbox No unchecked
Amenities — Furniture checkbox No unchecked
Bookable for events checkbox No checked If unchecked, won't appear in Events resource booking
Active checkbox Yes checked
Notes textarea No 1000 chars

Submit action: POST /api/asset-management/buildings/{id}/rooms. Persisted to rooms table. Amenities stored as JSON. Related forms: Building Master (4.2) is parent; Resident Allocation (4.10) writes room_id; Event Resource Booking (Form 7.5) reads is_bookable.


Form 4.4 — Vehicle Asset Entry

Purpose: Register a vehicle and track the four-document expiry calendar (RC / Insurance / PUC / Fitness). Who fills: Transport custodian · once per vehicle · revisited at every document renewal.

Field Type Required Options / Validation Default Help
Asset code text Yes prefix VEH-, unique auto: VEH-{seq}
Registration Number text Yes matches ^[A-Z]{2}\d{1,2}[A-Z]{1,3}\d{1,4}$ E.g. KA-09-AB-1234
Vehicle Class dropdown Yes Two-Wheeler / Car / Van / Bus / Truck / Tractor Car
Make text No 127 chars E.g. Mahindra
Model text No 127 chars E.g. Bolero
Year of Manufacture number No 1980–current
Chassis Number text No 40 chars
Engine Number text No 40 chars
Branch dropdown Yes tenant's branches current Garaged at
Acquisition Date date Yes ≤ today
Acquisition Cost (INR) number No step 0.01
RC Expires On date Yes ≥ today on first entry Triggers T-30 reminder
Insurance Expires On date Yes ≥ today Triggers T-30 reminder
PUC Expires On date Yes ≥ today Triggers T-30 reminder
Fitness Expires On date No required for commercial vehicles Triggers T-30 reminder
Road Tax Paid Until date No
Odometer Reading (km) number No ≥ 0
Primary Driver lookup No from members E.g. driver-staff
Condition dropdown Yes New / Good / Fair / Poor Good
Active checkbox Yes checked

Submit action: POST /assets with asset_type=vehicle. Schedules four reminder rows (one per document). Comms cron picks T-30 / T-7 / T-1. Related forms: Insurance Policy Entry (4.6) attaches comprehensive policy; Maintenance Task Template (6.1) for service intervals.


Form 4.5 — Movable Equipment Entry

Purpose: Register movable items — computers, AV, kitchen equipment, generators, gensets, office furniture. Who fills: Asset custodian · per item or bulk · revisited on transfer / disposal.

Field Type Required Options / Validation Default Help
Asset code text Yes prefix EQP-, unique auto: EQP-{seq}
Name text Yes 255 chars E.g. Genset 25 kVA
Category dropdown Yes Computer / AV / Kitchen / Generator / Office / Other
Make text No 127 chars
Model text No 127 chars
Serial Number text No 127 chars
Branch dropdown Yes tenant's branches current
Current Location text Yes 255 chars E.g. RSK Floor 1 / Office
Acquisition Date date Yes ≤ today
Acquisition Cost (INR) number No step 0.01
Acquisition Mode dropdown Yes Direct Purchase / Donation / Gift (Dana) / Inheritance / Lease Direct Purchase
Warranty Expires On date No
Assigned To (Member) lookup No from members Custodian
Condition dropdown Yes New / Good / Fair / Poor / Disposed Good
Notes textarea No 2000 chars

Submit action: POST /assets with asset_type=movable. Creates assets + equipment_assets rows. If condition=Disposed, redirects to Form 4.9. Related forms: Asset Disposal Entry (4.9); Maintenance Task Template (6.1) for service.


Form 4.6 — Insurance Policy Entry

Purpose: Track insurance for any registered asset; supports renewal alerts and claim history. Who fills: Treasurer / insurance officer · per policy · revisited on renewal or claim.

Field Type Required Options / Validation Default Help
Asset lookup Yes from assets The covered asset
Policy Number text Yes 63 chars, unique per insurer
Insurer Name text Yes 255 chars E.g. New India Assurance
Policy Type dropdown Yes Comprehensive / Third-Party / Fire / Theft / Public Liability / Other Comprehensive
Sum Insured (INR) number Yes step 0.01 ≥ 0
Annual Premium (INR) number Yes step 0.01 ≥ 0
Coverage Start date Yes ≤ Coverage End
Coverage End date Yes ≥ Coverage Start Triggers T-30 renewal reminder
Premium Payment Mode dropdown No Annual / Half-Yearly / Quarterly / Monthly Annual
Active checkbox Yes checked
Notes textarea No 1000 chars

Sub-form (claim): Date · Claim Number · Amount Claimed · Status (Filed/Approved/Settled/Rejected) · Settlement Amount · Notes.

Submit action: POST /api/asset-management/insurance. Posts a vendor payable in Vitta for the premium amount tagged to the asset's branch. Related forms: Vehicle Asset (4.4), Building Master (4.2), Movable Equipment (4.5) — any may be the linked asset.


Form 4.7 — Jewel Vault (Abharana) Item Entry — HIGH SECURITY

Purpose: Register an item in the Jewel Vault (Abharana). Every write requires two-key cosign (Form 4.8). Who fills: Vault custodian (primary) · once per item · revisited only on revaluation, movement, or disposal — each via Form 4.8. Access role required: vault-custodian for write; vault-viewer for read.

Field Type Required Options / Validation Default Help
Vault Code text Yes prefix JWL-, unique per tenant auto: JWL-{seq} E.g. JWL-001
Asset code text Yes prefix JWL-AST- auto Parent assets row
Item Name text Yes 255 chars E.g. Gold Kirita
Item Name (Sanskrit) text No Devanagari, VijayaDV preserved E.g. सुवर्णकिरीट
Description (stones, design) textarea Yes 2000 chars Note distinguishing marks
Metal dropdown Yes Gold / Silver / Panchaloha / Platinum / Mixed Gold
Purity (caratage) number No 0.00–24.00 step 0.01 E.g. 22.00 for 22ct gold
Gross Weight (gms) number Yes step 0.001 ≥ 0 Precision 0.001g
Net Weight (gms) number Yes step 0.001 ≥ 0; ≤ Gross
Stones present checkbox No unchecked If checked, "Stones description" mandatory
Stones description textarea conditional required if Stones present
Last Valuation (INR) number No step 0.01 ≥ 0
Last Valuation Date date No ≤ today
Valuer Name text No 255 chars
Safe Custody Location dropdown Yes Main Vault / Shrine Safe / Bank Locker (specify) / In-Repair (specify) Main Vault If "Bank Locker" or "In-Repair", reveals locker-id / repairer-name
Custody Status dropdown Yes Vault / In-Use Festival / In-Repair / Pledged / Deposited Bank Locker Vault
Photos (front / back / detail) file upload (multiple) Yes JPG/PNG ≤ 5 MB each, max 10 Stored encrypted; role-gated reads
Acquisition Mode dropdown Yes Direct Purchase / Gift (Dana) / Inheritance / Found-In-Hundi
Acquisition Date date Yes ≤ today
Acquisition Cost (INR) number No step 0.01
Notes textarea No 2000 chars

Submit action: POST /api/asset-management/jewels opens the Two-Key Cosign modal (Form 4.8). Item is not persisted until both signers cosign. On commit: creates assets + jewel_vault_items rows + audit_events entry. Photos uploaded to encrypted bucket. Related forms: Two-Key Cosign (4.8) — mandatory wrapper; Asset Disposal (4.9) routes through Form 4.8 too.


Form 4.8 — Two-Key Cosign Form (Jewel Edits / Movements / Disposal)

Purpose: Wrap any high-security write to a Jewel Vault item with a second authorised signer + audit-event preview. Who fills: Primary signer + Second signer (must be different users with vault-custodian and vault-second-signer roles respectively) · per write.

Field Type Required Options / Validation Default Help
Action Type dropdown (read-only) Yes Insert / Update / Movement / Revaluation / Disposal from caller Set by parent form
Jewel Vault Code read-only Yes from caller
Change Summary (preview) preview block Yes rendered server-side Diff of fields about to change
Reason textarea Yes 1000 chars Mandatory; logged in audit_events.reason
Primary Signer dropdown Yes users with role vault-custodian (current user pre-selected) current user
Primary Signer OTP text Yes 6-digit numeric Sent to primary's mobile via Comms WhatsApp
Second Signer dropdown Yes users with role vault-second-signer, must differ from primary Server-validated
Second Signer OTP text Yes 6-digit numeric Sent to second signer's mobile
Witness — Resolution Number text conditional required for Disposal Trustee-board resolution reference
Witness — Document Upload file conditional PDF ≤ 10 MB; required for Disposal Resolution PDF
I confirm read of preview checkbox Yes must be checked unchecked Forces visual review

Submit action: Validates both OTPs, signers differ, role permissions. On success: writes the underlying jewel change AND inserts audit_events row carrying both signer IDs, change diff, reason, and resolution number. On any failure: aborts; underlying jewel unchanged. Related forms: Jewel Item Entry (4.7), Asset Disposal Entry (4.9 — invokes for jewels), Resident Allocation (4.10) does NOT go through this form.


Form 4.9 — Asset Disposal Entry

Purpose: Record formal disposal — sale, scrap, donation, destruction, loss, or transfer — of any asset. Who fills: Asset custodian + treasurer · per disposal · final-state form (asset becomes inactive after).

Field Type Required Options / Validation Default Help
Asset lookup Yes active assets only The asset being disposed
Disposal Date date Yes ≤ today today
Disposal Mode dropdown Yes Sale / Scrap / Donation / Destroyed / Lost / Transferred
Disposed To (recipient/buyer) text Yes 255 chars E.g. Ravi Scrap Mart, Mysuru
Realisation Amount (INR) number conditional required if Mode = Sale
Reason textarea Yes 2000 chars Mandatory
Approval Resolution Number text Yes 63 chars Trustee-board resolution #
Resolution Document file upload Yes PDF ≤ 10 MB
Witness Name text Yes 255 chars Person who attested the disposal
Witness Signature (image) file upload No JPG/PNG ≤ 2 MB
Photos (post-disposal) file upload (multiple) No JPG/PNG ≤ 5 MB each, max 5
Notes textarea No 2000 chars

Submit action: If asset is jewel → invokes Form 4.8 two-key cosign first; otherwise single-key with mandatory audit_events row. Sets assets.condition='disposed', is_active=false. Posts realisation as a Vitta receipt tagged to fund of original acquisition. Related forms: Two-Key Cosign (4.8) for jewels; Insurance Policy (4.6) — outstanding policy auto-flagged for cancellation.


Form 4.10 — Resident Allocation

Purpose: Allocate a member (resident / staff / student / guest) to a specific room with check-in date. Who fills: Accommodation officer · per allocation · revisited on check-out.

Field Type Required Options / Validation Default Help
Resident (Member) lookup Yes from members (search by name/phone)
Building dropdown Yes tenant's buildings
Room dropdown Yes rooms in selected building with available capacity Disabled rooms greyed out
Check-in Date date Yes ≤ today + 30 days today
Check-out Date (planned) date No ≥ Check-in Optional for indefinite stays
Purpose dropdown Yes Staff / Student / Guest / Event-Guest / Long-Term Resident Staff
Daily Rate (INR) number conditional required if Purpose = Guest or Event-Guest; ≥ 0 0 Tenant rate card
Roommates (max) read-only room.capacity − current_occupancy Computed
Special Requirements textarea No 500 chars E.g. needs ground floor (knee injury)
Issued Key/Access Card text No 40 chars Tracking
Notes textarea No 1000 chars

Submit action: POST /api/asset-management/rooms/{id}/allocate. Creates room_allocations row. Capacity-guard: rejects if room already at capacity. Member tagged with resident-active until checkout. Related forms: Room Setup (4.3) defines capacity; Members Suite (Module 12) for the resident's profile; Event Attendee (Form 7.7) may pre-allocate accommodation.


Workflow notes

  1. First-time setup order: 4.1 (land) → 4.2 (buildings on land) → 4.3 (rooms in building). Then 4.5 / 4.4 / 4.7 in any order.
  2. Insurance + Vehicle pairing: every commercial vehicle must have an active row in Form 4.6 referencing its asset_id.
  3. Jewel vault: all writes (4.7 entry, edits, movement, valuation, disposal) flow through Form 4.8. There is no single-key path.
  4. Disposal cascade: disposing a building triggers a cascade-warning on its rooms (active allocations must check-out first). Disposing a vehicle cancels its insurance row.
  5. Custom-field convention: for tenant-specific extras, use the existing tags polymorphic table (extend entity_type='asset'); do not modify these forms.