From the 2026-10-08 meeting. - Clientes en rojo summed every row a customer ever had, so the opening balance's history counted twice, cash receipts twice and the 2025 archive on top: 195 customers in the red against 22 real ones. It now takes the balance scope balances() uses (extracted as balanceScopeSql), sorts by most recent real movement, and filters by ramo, date, minimum owed and inactive customers (status = 0, the internal accounts). - Pagos no efectuados asked "no charge of any kind in N days"; legacy asks "no row of THAT service's concept in the period". Rewritten to legacy's question, per customer, defaulting to one billing cycle back. It also passed ELECTRICITY/PHONE, which are not ServiceKind values, so Luz and Telefono never returned a row. Sin fondos rows show as their own status. - Faltantes demanded account, meter AND route of every kind; water and phone have no route. Now the legacy fields per kind. - Reporte de efectivo counted every credit BALANCE FORWARD as cash (958 of 1093 rows on dev). - Every report carries the legacy NUMid; policy reports add the insurance file number. The statement header shows it too. - Printed headers showed placeholder company details: prod sets no COMPANY_* variables. Defaults are now the office's real locator, plus a US mailing address line. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
54 lines
2.2 KiB
Bash
54 lines
2.2 KiB
Bash
# Copy to .env and fill in for local development.
|
|
DATABASE_URL=mysql://jorgecuadros:jorgecuadros@localhost:3306/jorgecuadros
|
|
SESSION_SECRET=change-me-to-a-random-string
|
|
WEB_ORIGIN=http://localhost:3000
|
|
NEXT_PUBLIC_API_ORIGIN=http://localhost:3001
|
|
|
|
# Object storage (MinIO / S3) for document blobs and scanned receipt pages.
|
|
# Without S3_ENDPOINT + credentials the API still boots, but every document
|
|
# upload/download and the whole recibo OCR intake are disabled. Credentials fall
|
|
# back to MINIO_ROOT_USER / MINIO_ROOT_PASSWORD when the S3_* pair is unset.
|
|
S3_ENDPOINT=http://localhost:9000
|
|
S3_BUCKET=jorgecuadros-documents
|
|
S3_ACCESS_KEY=
|
|
S3_SECRET_KEY=
|
|
|
|
# Login the "Operaciones" screen runs mysqldump/mysql as. Optional locally: when
|
|
# unset it falls back to the DATABASE_URL credentials, which a dev MySQL usually
|
|
# grants enough for. Required in any deployment, where the application user has
|
|
# only ALL ON jorgecuadros.* and mysqldump --single-transaction needs the global
|
|
# RELOAD privilege. Host/port/database always come from DATABASE_URL.
|
|
OPS_DB_ADMIN_USER=
|
|
OPS_DB_ADMIN_PASSWORD=
|
|
|
|
# Company info — printed in the header of every report (PDF + browser
|
|
# print). Leave blank to use the defaults in company.ts. COMPANY_LOGO_PATH is
|
|
# optional; when unset the API falls back to apps/api/assets/company_logo.png.
|
|
COMPANY_NAME=Jorge Cuadros & Asociados
|
|
COMPANY_ADDRESS_LINE1=
|
|
COMPANY_ADDRESS_LINE2=
|
|
COMPANY_CITY_STATE=
|
|
COMPANY_MAILING_ADDRESS=
|
|
COMPANY_PHONE=
|
|
COMPANY_EMAIL=
|
|
COMPANY_TAX_ID=
|
|
COMPANY_WEBSITE=
|
|
COMPANY_LOGO_PATH=
|
|
|
|
# Outbound mail (Amazon SES — the channel the office already uses for bulk
|
|
# notification, see docs/MASS_EMAIL_NOTIFICATIONS.md). Without all four
|
|
# vars the API still boots; in dev the MailService logs sends to stdout,
|
|
# in production every send throws ServiceUnavailableException.
|
|
SES_REGION=
|
|
SES_ACCESS_KEY=
|
|
SES_SECRET_KEY=
|
|
SES_FROM=mail@jorgecuadros.com
|
|
SES_FROM_NAME=Information Server
|
|
# Optional — bounce/complaint event publishing configuration set.
|
|
SES_CONFIGURATION_SET=
|
|
|
|
# Comma-separated addresses that receive the per-job admin summary email
|
|
# (one summary per address, JSON body, sent after every sweep). Defaults to
|
|
# the legacy pair if unset.
|
|
NOTIFICATION_ADMIN_EMAILS=rmancinas@freakma.net,mpulido@freakma.net
|