MEGA-BOQ-WEBAPP/boq_engine
MEGA INFRA 68cf65e544 Fix values landing one row above the line they belong to
Caught by the engineer: '.04 Appointment of Community Liaison Officer' showed
RATE ONLY in the spreadsheet while the PDF has Month, 8, R20 000.00,
R160 000.00. The values had landed on the row ABOVE it.

Two causes, both the same underlying mistake.

1. A BOQ row here is often TWO rows - the one with the item number, unit and
   quantity, and a following row carrying the wrapped tail of the description:

     r41  C=.04   Appointment of Community Liaison Officer   Month  8  20 000
     r42          for the duration of the contract period

   Those tails were separate candidates, and the aligner matched the line to
   the PREVIOUS line's tail. A row with no item number of its own and nothing
   in the priced columns is now joined onto the line above.

2. The row classifier still tested the single column the header claimed for
   DESCRIPTION (E) while the text is in D - the same header-lies problem I had
   fixed for matching but not for classification. Row 41 was never counted as
   a line, so it was never even a candidate. Both now use the description RUN.

Also worth being precise about: the 'RATE ONLY' in that cell was the
consultant's own pre-existing text in his template, not something this tool
wrote. The bug was the values going to the wrong row.

Central Towers 192 written / 23 unplaced -> 196 / 22, and four more genuine
disagreements are now visible because values land on the right rows.
Blueberry unchanged at 103 / 1. Zero formulas damaged on both, gate not
blocked.
2026-10-04 02:06:23 +02:00
..
__init__.py MEGA INFRA BOQ Converter — Candy PDF to consultant Excel 2026-10-01 02:32:13 +02:00
extract.py Carry 'INCL' tariffs through instead of arriving blank 2026-10-04 00:24:33 +02:00
populate.py MEGA INFRA BOQ Converter — Candy PDF to consultant Excel 2026-10-01 02:32:13 +02:00
profiles.py Make the consultant profile actually apply, and show the build 2026-10-02 20:54:02 +02:00
template.py Fix values landing one row above the line they belong to 2026-10-04 02:06:23 +02:00
theme.py MEGA INFRA BOQ Converter — Candy PDF to consultant Excel 2026-10-01 02:32:13 +02:00
validate.py MEGA INFRA BOQ Converter — Candy PDF to consultant Excel 2026-10-01 02:32:13 +02:00
verify.py Gate the download on proof read back from the file 2026-10-02 13:58:01 +02:00