Imports flag unknown cost codes, and the SOV keeps each line's name
Unknown cost codes are flagged. Importing estimate lines from a CSV used to drop any cost code that isn't in your cost-code library, while the preview still showed it as accepted. Now the preview lists those codes and marks them on each row, so you can add them under Settings → Cost Codes and re-upload. If you import anyway, the lines come in without a code, and the confirmation says which codes were left off.
Import from Estimate keeps lines apart. Building the Schedule of Values from the estimate used to merge every line without a cost code into one SOV line named after the first of them. A board hang, tape & finish and a scissor lift all billed as "Hang 5/8 in Type X gypsum board". Now:
- Lines without a code that share an estimate package become one SOV line named for the package.
- Any other line without a code becomes its own SOV line under its own description.
- Lines with a cost code still combine under that code.
The total is unchanged.