A repair operation tracks individual units by serial number, because the question it has to answer is never about a product line — it is about this device: who owns it, what has been done to it, who is paying, and where it is right now.

Whose unit is this

The inventory model is inverted. Most of the valuable items on the premises belong to customers, and a stock report that includes them overstates your assets while understating your obligations.

UnitOn your balance sheetWhat you owe
Customer unit in for repairNoReturn it, working or explained.
Loaner on issueYes — as a fleet assetRecover it.
Spare parts stockYes
Refurbished B-stockYes — at a refurbished basisDisclose condition at sale.

Warranty determination at intake

Codeunit 50260 OEM Warranty Validator.al
codeunit 50260 "OEM Warranty Validator"
{
    Access = Public;
    Subtype = Normal;

    [EventSubscriber(ObjectType::Table, Database::"Service Item Line", 'OnBeforeInsertServiceItemLine', '', false, false)]
    local procedure ValidateOEMWarranty(var ServiceItemLine: Record "Service Item Line")
    var
        ServiceItem: Record "Service Item";
        Customer: Record Customer;
    begin
        if not ServiceItem.Get(ServiceItemLine."Service Item No.") then
            exit;

        // Check if Device Serial Number is within active OEM Warranty Coverage
        if (ServiceItem."Warranty Starting Date (Parts)" <= WorkDate()) and
           (ServiceItem."Warranty Ending Date (Parts)" >= WorkDate()) then begin
            
            ServiceItemLine."Warranty Parts %" := 100.0;
            ServiceItemLine.Warranty := true;
            ServiceItemLine."Fault Reason Code" := 'DEFECTIVE_OEM_PART';

            Message('Active OEM Warranty Detected for Serial %1. Spare parts 100% covered under OEM claim.', ServiceItem."Serial No.");
        end else begin
            ServiceItemLine."Warranty Parts %" := 0.0;
            ServiceItemLine.Warranty := false;
        end;
    end;
}

Establish the payer before work starts: OEM warranty, an extended plan, a service contract, or the customer. Diagnosis performed first and billing questions resolved later is how a service business discovers a large share of its labour was never chargeable to anyone.

OEM claims are a receivable

A warranty claim is money owed to you by the manufacturer, subject to their evidence requirements — fault codes, parts returned, timeframes.

  • Capture the required evidence during the repair, when it exists, not at claim time.
  • Age claims like any other receivable. An unpaid claim at ninety days is a collections problem.
  • Track the rejection rate by reason. A persistent rejection reason is a process fix, not a series of individual disputes.

The loaner fleet

Loaners are assets on loan, and they behave like a small rental business: issued, returned, damaged, lost. Without tracking per unit, the fleet quietly shrinks and the shortfall appears as unexplained inventory loss.

Every repair operation that does not track loaners individually reaches the same point: a fleet on paper substantially larger than the one in the cupboard, with no record of where the difference went.

Valuing refurbished stock

A refurbished unit is not a new one. Its value is what it will realistically sell for, less the cost of getting it there. Held at original cost, it inflates inventory until somebody writes it down — usually all at once, in a period that had nothing to do with when the value was actually lost.