{% extends "base.html" %} {% from "_macros.html" import wf_badge, approval_panel, attachments_card, vendor_picker with context %} {% block title %}{{ r.number }}{% endblock %} {% block content %} {% set cur = branch.currency %} {% set open = r.state in ('draft', 'sent') %}
| {{ t('Item') }} | {{ t('Qty') }} | {% for v in c.vendors %}{{ nm(v) }} {{ wf_badge(v.state) }} {% if not sealed and v.lead_days is not none %} {{ v.lead_days }} {{ t('days lead time') }}{% endif %} {% if not sealed and v.valid_until %} {{ t('valid until') }} {{ v.valid_until }}{% endif %} |
{% endfor %}
|---|---|---|
| {{ ln.item_code or '' }} {{ ln.description or '' }}
{% if ln.specification %} {{ ln.specification }}{% endif %} {% if ln.manufacturer or ln.part_number %} {{ ln.manufacturer or '' }} {{ ln.part_number or '' }}{% endif %} {% if ln.required_date %} {{ t('Required by') }} {{ ln.required_date }}{% endif %} {% if ln.allow_alternative %} {{ t('Alternatives allowed') }}{% endif %} |
{{ '%g' % ln.quantity }} {{ ln.uom or '' }} | {% for v in c.vendors %}{% set qt = c.quotes.get((v.id, ln.id)) %}
{% if sealed %}{{ t('Sealed') if qt else '—' }}
{% elif qt %}{{ qt.price|money(cur) }}
{% if qt.offered %} {{ qt.offered }}{% endif %}{% if qt.is_alternative %} {{ t('Alternative') }}{% endif %} {% else %}—{% endif %} |
{% endfor %}
| {{ t('Total excl. VAT') }} | {% for v in c.vendors %}{% if sealed %}{{ t('Sealed') if v.state == 'quoted' else '—' }}{% else %}{{ c.totals[v.id]|money(cur) if c.complete[v.id] else (t('Incomplete') if c.totals[v.id] else '—') }}{% endif %} | {% endfor %}|
| {% for v in c.vendors %} | {% if can_write and open and not closed %}{{ t('Enter Quote') if v.state == 'invited' else (t('Replace Quote') if sealed else t('Edit Quote')) }}{% endif %} PDF | {% endfor %}|
{{ t('Available after the sealed bids are opened.') }}