{% extends "base.html" %} {% block title %}M365 License Calculator – Salus by Stranto{% endblock %} {% block content %}

M365 License Calculator

Upload an Azure AD user export CSV. Assign users to QWE Clients, then see the live license breakdown per client.

{% if filename %}

Last file: {{ filename }}

{% endif %}

Mapping

Export or import the saved QWE Client / Restaurant assignments.

License Prices (€ / user / month)

Used to calculate monthly totals in the summary. Saved automatically.

{% for key, label in license_keys %}
{% endfor %}
{% if import_success is not none %}
Imported {{ import_success }} mapping {{ 'entry' if import_success == 1 else 'entries' }} successfully.
{% endif %} {% if prices_import_success is not none %}
Imported {{ prices_import_success }} price {{ 'entry' if prices_import_success == 1 else 'entries' }} successfully.
{% endif %} {% if error %}
{{ error }}
{% endif %} {% if summary %}

Total Users

{{ summary.total }}

Licensed

{{ summary.licensed }}

{% if summary.missing %}

Missing Assignment

{{ summary.missing | length }}

{% endif %}

License Counts per QWE Client

Updates live as you assign clients below
QWE Client Licensed Users M365 Standard M365 Basic Defender P1 PBI Pro PBI Premium Monthly Cost
{% if summary.missing %}
Missing Company Assignments ({{ summary.missing | length }}) — licensed users not in QWE AT / QWE SK / KFC AT / KFC SK / QWE
{% endif %}

All Users ({{ users | length }})

{% for u in users %} {% endfor %}
Display Name Department Co Licenses QWE Client Restaurant
{{ u.display_name }}
{{ u.username }}
{{ u.department or '—' }} {% if u.company == 'AT' %} AT {% elif u.company == 'SK' %} SK {% elif u.is_licensed %} ? {% else %} {% endif %}
{% if u.has_m365_standard %}Std{% endif %} {% if u.has_m365_basic %}Basic{% endif %} {% if u.has_defender_p1 %}Def{% endif %} {% if u.has_pbi_pro %}PBI Pro{% endif %} {% if u.has_pbi_premium %}PBI Prem{% endif %} {% if not u.is_licensed %}Unlicensed{% endif %}
{% endif %}
{% endblock %} {% block scripts %} {% if users %} {% endif %} {% endblock %}