Public changelog

What we shipped, in plain language.

Every release to Biztimize — new features, improvements, fixes, and breaking changes — documented here, for everyone. No marketing gloss.

3.36.17

A Foreign-Currency Receipt Relieves the Ledger at the Invoice Rate

September 01, 2026
Production

A receipt against foreign-currency invoices now credits the customer ledger with the amount those invoices were booked at, so the customer ledger and the receivables control account agree and the exchange difference sits only on the exchange account.

Bug Fix

The Customer Ledger No Longer Absorbs the Exchange Gain

An export receipt settles invoices that were booked at their own exchange rates, while the bank pays at today’s. The gap between the two is the realised exchange difference and it belongs on the gain or loss account.

The journal has posted it that way since the foreign-currency work shipped, which is why Simulate always showed the right figures. The customer ledger row did not: it converted the receipt at the receipt’s own rate, so the difference landed on the customer’s account as well as on the exchange account, and the customer ledger disagreed with the receivables control account by exactly the gain. In foreign currency the customer was always square; in rupees the account was overstated.

The ledger row now takes the settlement figure from the same calculation the journal uses — read, not recomputed — so there is one definition of what the receipt relieved and not two. Reversing a receipt no longer quietly puts the difference back onto the customer either.

Administrators: rows written before this can be repaired with the backfill_receipt_local_relief command. It refuses a row it cannot settle honestly — a foreign-currency invoice carrying no usable rate, or a home-currency row, where a gap is a discrepancy rather than an exchange difference — and names it for someone to look at.

Finance Global
3.36.18

Tasks Upload

September 01, 2026
Production

Drop the TA template workbook onto Tasks Upload, review exactly what will be created and what will not, then commit — instead of keying a project plan in task by task.

New Feature

Load a TA Template Workbook Into a Project

Tasks Upload takes the TA template Excel sheet a merchandiser already maintains and creates the project’s tasks from it. The upload is in two steps: a preview that writes nothing, showing the project it resolved, the counts and every question it has, and then a commit.

Only the rows marked Task reqmnt = Y are loaded. An N row is a task the plan says this order does not need — it is counted and reported as not required, never as a failure.

Where the sheet and the system disagree, the upload reports rather than guesses:

  • A department name matching more than one department in the hierarchy is refused, naming both candidates, rather than picked.
  • A near-miss spelling is matched, but the substitution is stated in full — both spellings, on the row — never applied silently.
  • An employee is resolved by id; if the Name column disagrees with the record found, that is reported, and the name never overrides the id.
  • The Dependent Task column is free text that does not name a task exactly, so it is recorded in the task’s notes and never turned into a real dependency. A dependency guessed from prose would drive the schedule off unvalidated text.

Re-uploading over a project whose work has already begun is safe: the opening status is set on creation only, so a task already in progress or completed is never walked back and no recorded progress is erased. The commit re-reads and re-checks the file itself rather than trusting the preview sent back to it, so an edited preview cannot slip a row past validation.

Reading the preview needs task view access; committing needs the right to create tasks.

Task Management Global
3.36.10

Payroll Proration Arithmetic Corrected

August 31, 2026
Production

Six defects found during a payroll go-live: unpaid leave was always counted as zero, a mid-month joiner was paid a full month, the working-day denominator was estimated rather than counted, and the rounding was applied to the wrong number.

Bug Fix

Round the Money, Not the Multiplier

The proration factor was rounded to four decimals before being multiplied, so 22/31 became 0.7097 and overpaid a few paise a month on a mid-range basic — an error that scales with salary and headcount and never reconciles. The factor is now carried at full precision through the arithmetic, with the four-decimal value kept for display on the payslip.

Human Resources Global
Bug Fix

Unpaid Leave Was Being Paid in Full

Loss-of-pay days were silently always zero. The engine looked for unpaid leave by matching the word “unpaid” in a field that does not exist, the resulting failure was swallowed, and every unpaid day was paid in full.

Unpaid is now read from the leave type’s explicit paid / unpaid flag rather than guessed from its name, and a failure is reported loudly instead of being absorbed — this direction of error overpays.

Human Resources Global
Bug Fix

Mid-Month Joiners Were Paid a Full Month

Proration counted the denominator over the whole period but the numerator as “all working days less unpaid days”, never consulting the employment start date. Someone who joined on the 20th came out at a full month’s factor and was paid a full month. Both sides are now counted the same way, and an unpaid day falling on a rest day is no longer deducted from a working-day denominator.

Human Resources Global
Bug Fix

Working Days Are Counted, Not Estimated

The working-day denominator was extrapolated from weeks × days per week, which gives 26.57 days for August 2026 on a six-day week against an actual 26 — the denominator of gross pay, wrong by half a day, every month, in both directions. The rest-day pattern is now counted for the period, with dated holidays from the production calendar taken off as an overlay.

The proration method is also configurable per payroll area instead of being fixed in the engine. It defaults to calendar days, so an existing payroll area keeps exactly the behaviour it has today.

Human Resources Global
Bug Fix

A Failed Payroll Run No Longer Leaves Half a Result Behind

A payroll run for one employee was not actually running as a single unit of work on the tenant’s own database connection, so a failure part way through left a partial result committed. It is now bound to the right connection and either completes or leaves nothing.

Two related corrections: the run number is allocated under a real lock, so two runs started at the same moment can no longer claim the same number; and generating payroll periods from the command line now requires the user and tenant it records, refusing by name instead of writing an empty tenant.

Human Resources Global
Bug Fix

An Inactive Employee Stays Off the Employee List

The employee list filtered on one of the two flags that record whether somebody still works here, so an employee marked inactive could still appear. The two are kept in step now — approving or revoking a separation moves both — and the default list scope excludes inactive employees, while asking for a status explicitly still returns them.

Human Resources Global
3.36.11

Employment Application Print Form

August 31, 2026
Production

The employment application form is printed straight from the employee master, so what is on the form is what is on the record.

New Feature

Print the Employment Application From the Employee Master

An employee’s application form can now be printed as a PDF from the employee record, with a preview before it goes to the printer.

It is a reprint of the master, not a second form to fill in: the print takes no field from the screen, so a blank on the form is a blank on the record — and the record grew the fields the form actually asks for, family particulars among them, rather than the form inventing them.

  • A default is not an answer. An unrecorded blood group, an age of zero and an absent wage all print blank rather than printing a value nobody supplied
  • The photograph is embedded in the document itself, so it is there on paper and in the PDF you email
  • The layout is a print format like any other, so it can be tailored per tenant — and printing never depends on that: the shipped layout is always there behind it
Human Resources Global
3.36.12

Job Request Print Form

August 31, 2026
Production

The form a candidate fills in before there is an employee record now prints from the recruitment candidate, with an office-use block left as ruled space.

New Feature

Print a Job Request Form for a Candidate

The first half of the hiring paperwork is filled in before anybody is an employee, so the Job Request form prints from the recruitment candidate rather than from the employee master.

  • The candidate record now holds the particulars the form asks for — previous experience, salary drawn and expected, and the declarations — captured on the candidate screen and previewed before printing
  • The office-use block on the form is ruled space: it is there to be written on, and nothing is read back off it
  • Anonymising a candidate purges the particulars this form added, along with everything else held about them
Human Resources Global
3.36.13

Workers ID Card

August 31, 2026
Production

Print employee identity cards at credit-card size, two to an A4 sheet, singly or as a batch.

New Feature

Employee ID Cards, Two to a Sheet

An identity card can be printed for an employee from the employee record, or for a selection of employees from the employee list, on a page of its own with a preview first.

  • The card is laid out at the standard 91 × 56 mm, two to an A4 sheet, so a batch comes off an ordinary office printer ready to be cut
  • Photograph, identifiers and a scannable code come from the employee master, so the card says what the record says
  • The layout is a print format like any other and can be tailored per tenant, with the shipped layout always behind it so a card can always be printed
Human Resources Global
3.36.5

Add a Component Through a Change Order

August 30, 2026
Production

A change order can add a new component line to a released bill of materials, an incomplete addition is refused while the person who can complete it is still on the screen, and the approver sees which material is being added.

Bug Fix

The Approver Sees Which Material Is Being Added

The staged change presented to the approver rendered raw internal identifiers — which is exactly the screen on which knowing which material is being added matters. Each side of the change now carries its label alongside the underlying value, never in place of it, since the drift check and the release both read the value.

Production Global
Bug Fix

BOM Lint Findings Reach the Change Order Again

The bill-of-materials lint run during change-order impact analysis failed on every change order. The guard around it caught the failure and reported the analysis unavailable, so nothing was ever wrong — but no approver had ever seen a lint finding. The findings are read correctly now.

Production Global
Improvement

A Change Order Can Add a Component Line

The change-order form could only modify or remove component lines that already existed. Adding one now has a panel of its own — material, quantity, unit, scrap, sequence, component and supply type, unit cost, currency and notes — with the material, unit and currency searchable rather than a dropdown nobody can scroll at master-data scale.

An addition is now checked when it is staged, not when it is released:

  • A component needs a material, a quantity and a unit. A missing one used to surface as a database error inside the release, long after the person who could supply it had left the screen
  • Only component lines can be added. Staging an addition against an operation component or a variant rule was accepted, approved, and then quietly did nothing
  • A new line carries no currency across from an old row, so it inherits the structure’s currency at release — and where the structure has none either, staging refuses and names the way out
Production Global
3.36.9

Saving Works Again, and the Trial Banner Is Gone

August 30, 2026
Production

Nine screens whose saves were rejected for a missing security token now save, and the Syncfusion trial banner no longer appears on the project WBS tab.

Bug Fix

Saves Rejected With a Missing Security Token on Nine Screens

Saving a leave application from Employee Self-Service failed with CSRF Failed: CSRF token missing. The screen was calling the server directly instead of through the shared client that attaches the security token, so the page loaded perfectly and only the save broke.

A sweep of the whole application found the same defect on eight more modules with live saves — data access and user management, the organisation chart, expeditor letters, the MBA dashboard, sub-contracting, numbering sequences and web push notifications. All of them now go through the shared client, as do seven further read-only screens, so the fault cannot come back the moment a save is added to one of them.

System Global
Bug Fix

No More Trial Banner on the Project WBS Tab

Opening a project’s WBS tab showed a “built using a trial version” banner, while every other grid in the application was fine. One grid component was pinned to a different release line from the rest and ended up loading a second, private copy of the shared library — the copy that never saw the licence being registered at startup. The licence itself was never the problem. All components now share one library and the banner is gone.

Workflow Global
3.36.3

Leave Types Ready to Use on Day One

August 29, 2026
Production

The Employee Self-Service leave screen no longer opens onto an empty dropdown: a starting catalogue of leave types is seeded for each tenant, for HR to confirm and adjust.

Bug Fix

A Starting Leave-Type Catalogue for Every Tenant

The leave type dropdown on Employee Self-Service was empty, so no employee could raise a leave request at all. Leave types are tenant configuration and the screen correctly invents nothing — but that left a tenant that had never configured them with no way through the screen.

A starting catalogue is now seeded — Earned, Casual, Sick, Maternity, Paternity, Bereavement, Compensatory Off and Loss of Pay — modelled on a common Indian private-sector policy. It is a starting point for your HR team to confirm, not a policy: seeding is idempotent by leave-type code, so an edit made by an administrator survives a re-run, and a leave type already in use is never removed.

Seeding a type grants nobody any leave. An entitlement is a quota recorded against an employee, with a number and a validity period, and that stays an HR decision: until quotas exist the balance panel reads zero and a quota-bearing type refuses the request.

Administrators: a tenant with no users yet is skipped by the deploy-time seed rather than having an author invented for it — run seed_leave_types for that tenant afterwards.

Human Resources Global
3.36.4

Project Status Is Back on the Project Screen

August 29, 2026
Production

The project status is served with the project again, so the status transition buttons appear, the Status column fills in, and a draft project can still be restructured.

Bug Fix

Add Element, the Status Buttons and the Status Column

Add Element switched itself off after the first WBS element on a project that was still a draft, and the status transition buttons never appeared at all. Neither was a screen fault: the project status was simply not being sent with the project, so every project read as though it were already past draft.

The same omission left the Status column blank on the project grid and on the portfolio board.

The status is now served with the project — for reading only. A status change still goes through the transition action, so the rules that govern which move is allowed cannot be sidestepped by writing the field directly. The actual start and end dates, stamped by those same transitions, are served beside it and the “Actual start” field on the detail screen is no longer permanently blank.

Workflow Global

Want a walkthrough of what's new?

We run monthly release briefings for customers — what shipped, what changed, what's next. Bring your team.