Excel sheets: check first, then apply
Units, parking slots, construction stages, unit pricing, benefit plans, society members and allottees can be exported to and imported from Excel; every sheet is checked row by row first, and nothing is written while any row fails.
Excel sheets: check first, then apply
Several lists can be maintained in Excel instead of row by row on screen: a project's units, parking slots, construction stages, unit pricing and benefit plans (the project sheets), and a society's members or a project's landowners and PAP tenants (the tenant sheets). You download a template or an export, fill it in, and bring it back. The app checks every row first and shows what it would do; only when every row passes does Import write anything, all in one go.
How it works in NirmaanOne
One shape for every sheet
Every template and export is an Excel workbook with two sheets:
- Data holds the header row and the rows themselves. The header stays frozen while you scroll.
- Lists holds the values the closed columns accept. The Data sheet points at it with Excel's own data validation, so a unit type, a designation, a parking type, a tower, a charge component or Yes/No is picked from a dropdown and a typo cannot be saved. The dropdowns carry what your organization and this project actually hold, so a template downloaded for one project offers that project's own towers, parking areas, plans and lookups.
Some columns are open: the dropdown suggests the existing values but you may type a new one. That is how a units sheet names a tower it is about to create, or a parking-slots sheet a new area. A closed column is one whose values are set up elsewhere (Settings, Lookups; Masters, Charge Components) and cannot be created by a sheet. The dropdowns cover the first 2,000 rows of the Data sheet. A .csv saved from an older template is still accepted on import.
The template's first data row is an example whose id cell reads "EXAMPLE"; the importer skips it, so you may leave it in. Blank rows are skipped too.
What each sheet does
| Sheet | Where | Creates on the way | Not in the sheet, on purpose |
|---|---|---|---|
| Units | Structure tab | a tower or floor the row names that does not exist yet | the unit's status: it is driven by estimates, allotments and bookings |
| Parking slots | Parking tab | a parking area the row names | status and allocation: they follow the allocation made on screen |
| Construction stages | Construction Stages tab | nothing beyond the stage | completion: a stage is completed on the screen, one at a time, because it dates installments |
| Unit pricing | Unit Pricing tab | a pricing plan the row names | charge components: they carry the tax and accounting behaviour |
| Benefit plans | Tenant Benefits tab | a benefit plan the row names | the start date of each benefit: it is typed on the offer the plan is applied to |
| Members | society page, members card | nothing beyond the member | co-owners: they stay on the member's panel and are left untouched |
| Landowners & PAP tenants | Society & Tenants tab | nothing beyond the allottee | consent (a member's decision) |
A row with a value in the id column (filled in by the export) updates that record; a row without one is matched on its natural key instead (tower + floor + unit number; area + parking slot number; a stage's code, then tower + name; plan + unit type + charge component; membership number) and, failing a match, creates a new record. On an update a blank cell leaves the stored value alone; only cells with something in them are applied. The exception is a Yes/No column (a pricing line's optional flag, a member's consent), where a blank cell reads as No.
Check first, then apply
Choosing the file runs the check straight away. The dialog counts the rows to add, to update, skipped and with errors, lists each failing row with its errors ("<column>: required", "<column>: "<value>" is not a number", "<column>: no <thing> called "<value>" (known: …)"), and:
- with errors: "Nothing has been written. Fix the rows below in your sheet and choose the file again." and Import stays greyed out with "Fix the <n> rows listed below, then choose the file again";
- without errors: "Checked, nothing written yet. Use Import to apply it." and Import <n> rows is enabled.
Import applies the whole sheet in one transaction, so a half-imported sheet cannot happen, and confirms with "Imported into <name>." The same rules as the screens apply where it matters: a units sheet cannot re-designate a unit an offer or booking relies on ("designation: unit <n> is <status>; release it before changing what it is for"), and a stages sheet may not push a share bucket over 100%.
Permissions
Export and Download template need the View permission on the tab's module (Towers, Floors & Units, Parking, Construction Stages or Pricing Plans) together with View on Projects; Import needs both Create and Edit on that module. Tenant sheets use the Tenants module: View to export, Create and Edit to import. Every export and template download is recorded in the audit log as a download.
Why check first
A structure or a member list is hundreds of rows, typed by several people. Refusing the whole file when one row is wrong, and telling you exactly which cell, is cheaper than finding half a tower imported and the other half missing.
Example
A project manager sets up Tower B of Skyline Heights from a units sheet. She opens the Structure tab, clicks Import, then Download template, and fills three rows under the EXAMPLE row (the headers are as the sheet shows them; carpet_area_sqft is the Carpet area (Mofa)):
| tower | floor_number | unit_number | unit_type | configuration | carpet_area_sqft |
|---|---|---|---|---|---|
| B | 1 | B-101 | Apartment | 2 BHK | 645 |
| B | 1 | B-102 | 2 BHK | 645 | |
| B | 2 | B-201 | Apartment |
Choosing the file shows "2 to add, 0 to update, 1 skipped, 1 with errors". Rows one and two are "to add", the first noted "also creates tower B and floor 1"; row two has no unit type but its configuration says 2 BHK is an Apartment, so it passes. The EXAMPLE row is skipped. Row three fails with "carpet_area_sqft: required for a new unit". Nothing has been written; Import is greyed out with "Fix the 1 row listed below, then choose the file again". She types 645 on row three, chooses the file again, sees "3 to add", and clicks Import 3 rows: tower B, floors 1 and 2 and the three units appear at once, all Available.
Where you see it
- Importing and exporting Excel sheets: the shared Export / Import buttons and dialog.
- Structure, Parking, Construction stages, Unit pricing and Tenant Benefits: the five project sheets.
- Society and Society & Tenants: the members and allottees sheets.
- Lookups: where the closed values (unit types, parking types, configurations) are set up.
- Audit log: downloads are recorded.
Related
Related
- Importing and exporting Excel sheetsScreen
Download a project's units, parking slots, construction stages or unit pricing as an Excel sheet, fill in the template, check it row by row and import it in one go.
- StructureScreen
Build and maintain a project's towers (wings), floors and units, generate them in bulk, and see every unit's status and designation at a glance.
- ParkingScreen
Set up the project's parking areas (basement, podium, stilt) and their numbered parking slots, see who holds each parking slot, and allocate parking slots to society members.
- Construction StagesScreen
Plan the project's construction stages (plinth, slabs, possession…) with their shares and dates, record commencement and completion, and keep the certificates and photos for each stage.
- Unit PricingScreen
Keep the project's pricing plans, one per unit type: the sale charges by charge group with GST per line, how each charge group is collected, and a preview of the price and payment schedule on a real unit.
- Tenant BenefitsScreen
Keep ready-made benefit plans (corpus, transit rent, shifting…) that a rehab officer applies to an allottee's offer in one go.
- Society & TenantsScreen
On a redevelopment project, link the society being redeveloped, keep its members and the project's landowners and PAP tenants, and give each of them an offer that allots new units and sets the benefits the developer pays.
- SocietyScreen
One housing society's details and its member roll: add members one by one or from an Excel sheet, record their existing flat, consent and co-owners, and export the roll.
- LookupsScreen
The dropdown lists every form draws on: contact types, lead sources, activity types, company types, bank account purposes, parking types, amenities, unit types and unit configurations.
- Audit logScreen
The organization-wide change log: every create, change and delete, every sign-in (including refused ones), sign-out and downloaded file, with who did it, when, from where and what changed.
- Unit numbering patternsConcept
When the Structure generator creates units in bulk, a pattern such as {floor}{seq:02d} builds every unit number from the floor, the unit's position on the floor and the tower name; a similar pattern names the floors.
- Construction stages and share bucketsConcept
A project's construction stages (plinth, slabs, possession) each carry a share of a 100% bucket, one bucket for the project-wide stages and one per tower; completing a stage dates the installments waiting on it and moves the revenue progress.
- Unit status lifecycle: available, reserved, allotted, held, booked, soldConcept
Where a unit stands right now, from Available through the rehab path (Reserved For Tenant, Allotted) or the sales path (Reserved For Buyer, Booked, Sold), who moves it and what each status blocks.
- Unit types and unit configurations (typologies)Concept
A unit type says what kind of unit it is (Apartment, Office, Shop, Showroom) and which property types it suits; a unit configuration is the typology (2 BHK, Penthouse, Office) made of a name, a unit type and a bedroom count, with the areas kept on each unit.
- Import and export units with ExcelHow-to
Download a project's units as an Excel sheet or start from the template, fill in towers, floors and units in bulk, let the app check every row, and import them in one go; missing towers and floors are created for you.
- Plan construction stages and their sharesHow-to
Record the project's construction stages (plinth, slabs, possession…) with their order, share of the payment bucket, tower and expected date, one at a time on the tab or in bulk from an Excel sheet, so construction-linked payment plans and pricing plans can be built on them.
- Enter society members, their consent and co-ownersHow-to
Build a society's member roll one person at a time: quick-add names and phones, fill in the full form with the existing flat, record each member's consent to the redevelopment, and add the co-owners who share the flat.