Skip to content

Builder Portal

The Builder Portal is a touch-friendly ASP.NET Web Forms site (BuilderPortal2024/) for superintendents and field builders. After sign-in, every page scopes to the user’s default project (Session["GLBL_defaultProjectID"]), which they can change under Admin → Default Project.

PageWhat it does
Default.aspxRedirects to /Schedule (not the project picker).
DefaultProject.aspxSet the active project (spInsertBuilderPortalDefaultProject); reachable from the Admin menu.
Schedule.aspxDaily field schedule for the default project (lot / address / slot filters). SharePoint DOCS links per lot.
WorkApproval.aspxApprove completed trade work for payment. Calls spProcessPaymentReview via Api/Ajax/workApproval.asmx (ProcessWorkApprovalv2), logs to BuilderPortalWorkOrderApprovalLog. Hidden from intern accounts.
PurchaseOrders.aspxPO list and lot drill-down for the default project.
WorkOrders.aspxOpen work orders by activity / vendor for the project (linked from schedule flows, not the main nav).
DelayRequest.aspxSubmit a builder-initiated delay request (spGetBuilderPortalDelayRequestInfo_v2); emails the area manager (not an approve/deny screen for Trade Portal submissions). Hidden from interns.
TradeContacts.aspxStandalone trade-contact lookup (trade phone/email also appears inline on Work Orders via bpInfo.asmx).
Documents.aspxPlaceholder page; project documents are opened via SharePoint links on Schedule.aspx and the nav Docs menu.
session.aspx / sessionRefresh.aspxSession debug / keep-alive helpers.
Default-Old-Tree.aspx, TESTPAGE.aspxLegacy or internal test pages.

Visible to all signed-in users: Schedule, Purchase Orders, Lot Notes (modal).

For non-intern users (GLBL_intern = false): Work Approval, Delay Request.

Docs dropdown → SharePoint (intranet + trade extranet). Admin → Default Project, Logout.

Schedule.aspx, PurchaseOrders.aspx, WorkApproval.aspx, and WorkOrders.aspx also host User_Controls modals for PO, options, selections, lot information, and trade contacts (not only Lot Notes).

ASMXRole
utils.asmxProcessLogin — Active Directory validation (TheSmartBuilder domain), Forms Auth ticket, loads UserAccount + default project into session.
workApproval.asmxBatch work approval → spProcessPaymentReview + BuilderPortalWorkOrderApprovalLog.
bpInfo.asmxLot info, trade contacts, and related AJAX used by schedule / PO pages.

Shared helpers live in Old_App_Code/common.cs (BuilderPortal.CommonCode).

  • Reads (scoped by default project): Lot, EstimateActivity, EstimateCriticalActivity, PurchaseOrder, schedule/PO views, trade contact data, etc.
  • Writes:
    • spProcessPaymentReview (@BuilderPortal = 1) when work is approved — downstream proc logic queues accounting / TransmissionPOApprove as needed.
    • BuilderPortalWorkOrderApprovalLog (audit of each approved PurchaseOrderSysID).
    • spInsertBuilderPortalDefaultProject when the user changes default project.
    • BuilderPortalBadLogin on failed sign-in attempts.
  • Delay Request does not insert DelayBatch rows in this app; it emails the area manager with lot, activity, trade, variance, and delay type from spGetBuilderPortalDelayRequestInfo_v2.
BuilderPortal/
└── BuilderPortal2024/
├── BuilderPortal2024.sln
└── BuilderPortal/
├── Account/ ← Login.aspx, Logout.aspx
├── Api/Ajax/ ← utils, workApproval, bpInfo (.asmx)
├── App_Start/
├── Code/ ← SessionVariables.cs
├── Old_App_Code/ ← common.cs (BuilderPortal.CommonCode)
├── User_Controls/ ← modal-po, modal-options, modal-selections, modal-information, modal-contacts, modal-notes, modal-my-lot-notes
├── Default.aspx, Schedule.aspx, WorkApproval.aspx, …
├── Site.master
└── Web.config (+ Web.QA.config, Web.Test.config, Web.Release.config)

Build with Visual Studio and BuilderPortal2024.sln; deploy to IIS.

Field builders and superintendents with a UserAccount row in SMART. Sign-in is Active Directory (utils.asmxValidateActiveDirectoryUser), then Forms Authentication with user data loaded from SQL (GetUserDataFromDatabase, GetUserDefaultProject, CheckIfUserIsIntern).

Session keys used across pages: GLBL_email, GLBL_userAccountSysID, GLBL_defaultProjectID, GLBL_defaultProjectName, GLBL_intern.

Intern accounts see Schedule and Purchase Orders only — Work Approval and Delay Request redirect to Schedule if accessed directly.