06 ERP · Field operations · Billing

C+ERP

  • Elixir
  • Phoenix LiveView
  • Ash
  • Postgres

An ERP for cleaning and waste-management companies. Customers and sites, quotations, contracts, billing plans, invoicing, reporting and field operations run in one application instead of a spreadsheet and an inbox per department.

Delivered under NDA — the client is not named, and the application is not public.

Two sides, one system

The office

Customers and the sites they own, quotations that become contracts, billing plans that become invoices, electronic invoicing, PDF and XLSX exports, and reporting over all of it.

The field

What crews do on site is recorded against the same customers and sites the contracts are written on, with documents stored and notifications sent from the same place.

What made it hard

  1. 01

    Billing is a plan, not an event

    A cleaning or collection contract does not produce one invoice; it produces one every period, for years. If invoices are typed by hand, someone eventually misses a site — and the month comes out short.

  2. 02

    One customer, many sites

    A single client is a portfolio of buildings, each with its own schedule, its own price and its own start and end dates. Everything downstream — billing, reporting, field work — has to hold that structure rather than flatten it.

  3. 03

    An invoice leaves the company

    Electronic invoicing means a document with legal weight and a fixed format. Once issued it has to stay reproducible exactly as it was sent, whatever changed in the system afterwards.

  4. 04

    Not everyone should see everything

    Operations, accounting and management work in the same application on the same clients. Access has to be decided by role, and getting in has to take more than a leaked password.

How we built it

01

Quote, contract and invoice as one chain

A quotation becomes a contract and a contract carries its billing plan, so each step derives from the one before it instead of being retyped into a new form.

02

Invoices generated on schedule, not by hand

Billing plans emit their invoices as background jobs, so a period closes whether or not anyone remembered to open the application that morning.

03

Documents produced, stored and sent

PDF and XLSX exports, electronic invoicing, document storage and email notifications are part of the same system, so nothing has to be rebuilt by hand to answer a question.

04

Access by role, protected by two-factor

Each role sees the part of the business it works on, and every account sits behind two-factor authentication.

Yours could be next.

Tell us what you are building and what it cannot afford to get wrong. We will tell you honestly whether we are the right team for it.

Start a project hello@elixiria.ma
enfrar