novosga/reports-bundle
Symfony bundle for Novo SGA that adds report management: define and organize report templates, generate reports from service and attendance data, and export results for operational reporting and analysis.
Unidade) timezone handling, including passing the unit timezone through to the report Envelope and a follow-up fix for that propagation. For any roadmap item involving branches, stores, clinics, or service units spread across timezones, this release is what makes report timestamps and date-bucketing correct rather than silently server-local. This directly unblocks "regional operations dashboard" and "per-branch SLA/compliance reporting" style features without building custom timezone plumbing.symfony 7.4 deprecations cleanup is a scheduled-maintenance signal. It gives you a defensible version-support horizon and reduces the odds of being forced into an emergency framework upgrade mid-quarter. Use it to slot the dependency bump into a normal maintenance window rather than a scramble.Unidade, Envelope), not a general-purpose Laravel reporting package. It does not answer "should we build a data warehouse" — it answers "should our branch-level reports be timezone-correct without custom code."Consider it when all of the following hold:
Look elsewhere when:
config/*.php publishing). This is a Symfony bundle; adopting it in Laravel means carrying Symfony components and adapting the domain model. The integration cost is real and should be scoped before you commit.Unidade/Envelope becomes friction the moment your domain diverges.Adoption criteria to verify before committing: confirm your Symfony version against the 7.4 requirement; confirm your Unidade-equivalent model maps cleanly or is extensible; run a spike that generates one report across a DST boundary in a non-UTC unit; and confirm you have an owner for the dependency bump each time Symfony ships a major.
For executives — one paragraph. This release closes a correctness gap in how our reports handle time. Until now, report timestamps were effectively tied to a single reference timezone; with v2.3.0 each operating unit carries its own timezone through to the report itself. Practically: a branch in São Paulo and a branch in Manaus now produce reports whose dates and times mean what they say, including across daylight-saving transitions. That removes a class of "the numbers don't match what the branch sees" incidents, and it is a prerequisite for any regional or per-branch performance reporting we put on the roadmap. The release also moves the underlying framework to a long-term-support version, which extends our support window and lowers the risk of a forced upgrade later.
For engineering — the substance. v2.3.0 is a minor release with no breaking changes: one feature (unit timezone threaded through the report Envelope), one immediate follow-up fix ensuring the timezone actually reaches the Envelope instance, a Symfony 7.1 → 7.4 LTS upgrade with deprecation cleanup, and dev-tooling bumps (PHPStan 2, PHPUnit 11, PHPCS 4). The work to schedule is the framework bump and its deprecation fallout, not the feature. Two things to validate in the upgrade: that our unit/Unidade configuration actually populates the new timezone field (otherwise the feature is inert and we get the old behavior silently), and that any downstream report consumers or stored report payloads are not assuming a single timezone. If we extend or override the Envelope, confirm the propagation fix covers our path. The dev-tooling upgrades mean our CI gates will likely tighten — expect some new static-analysis findings on first run and plan a small cleanup allowance.
The ask. Approve a scoped upgrade spike (one engineer, roughly a day): bump the dependency, set a non-UTC timezone on a test unit, generate a report spanning a DST change, and confirm the output. If it passes, fold it into the next maintenance window and add per-unit timezone configuration to the regional reporting initiative's acceptance criteria.
How can I help you explore Laravel packages today?