{% extends "contracts/base.html" %}{% load rr %}{% block title %}Identify POs{% endblock %} {% block content %}

{{ contract.number }} — identify performance obligations

{% include "contracts/_steps.html" %}

Step 2 — Distinct goods and services

Lines with the same PO label form one performance obligation. Non-distinct items (for example a setup fee that only has value with the subscription) are combined with the distinct item they support; the distinct line drives the recognition pattern.

{% csrf_token %}{{ formset.management_form }} {% for f in formset %}{% with l=f.instance %}{% for h in f.hidden_fields %}{{ h }}{% endfor %} {% endwith %}{% endfor %}
LineProductDistinct?PatternTermAmountPO labelBears discount
{{ l.key }}{{ l.product.name }}{{ l.product.is_distinct|yesno:"Yes,No — combine" }}{{ l.product.get_pattern_display }} {{ l.start|date:"Y-m-d" }} → {{ l.end|date:"Y-m-d" }}{{ l.amount|money }}{{ f.po_group }}{{ f.bears_discount }}
← Lines
{% endblock %}