# F&F Department vs Finance No-Conflict Flow

## Purpose

This document defines a conflict-free Full & Final (F&F) settlement approach where:
- Departments submit and own their initial financial claims.
- Finance validates and finalizes settlement amounts.
- Final net settlement is always calculated from finance-validated values.

The objective is to prevent duplicate updates, overwritten values, and ambiguity in amount ownership.

## Core Ownership Model

### 1) Department-Owned Fields (Claim Layer)
- `department_claim_amount`
- `department_amount_type` (Payable / Recovery / Deduction if applicable)
- `department_remarks`
- `department_supporting_documents`
- `department_submission_status`

Departments can only create or update this layer during the department response window.

### 2) Finance-Owned Fields (Validation Layer)
- `finance_validated_amount`
- `finance_decision` (Accepted / Partially Accepted / Rejected / Under Clarification)
- `finance_variance_amount`
- `finance_variance_reason` (mandatory when variance is non-zero)
- `finance_supporting_documents`

Finance can only update this layer after department responses are frozen.

### 3) System-Owned Fields
- `total_payables`
- `total_receivables`
- `total_deductions`
- `net_settlement`

System fields are read-only and formula-driven.

## Workflow Stages and Edit Locks

1. `Department Response Open`
- Departments: Edit allowed (claim layer only).
- Finance: View only.

2. `Department Response Frozen`
- Departments: Read-only.
- Finance: Validation enabled.

3. `Finance Reconciliation Open`
- Finance: Edit allowed (validation layer only).
- Departments: Read-only (unless clarification is requested).

4. `Finance Locked`
- All amount fields read-only.
- Only approval/rejection/clarification routing actions are allowed.

5. `Reopen` (exception path)
- Reopen must create a new version; previous values must never be overwritten.

## Calculation Rule (Single Source for Final Amount)

Only finance-validated values are used for final settlement:

`Net Settlement = Total Payables - Total Receivables - Total Deductions`

Where:
- `Total Payables = sum(finance_validated_amount where type = Payable)`
- `Total Receivables = sum(finance_validated_amount where type = Recovery)`
- `Total Deductions = sum(finance_validated_amount where type = Deduction)`

Interpretation:
- Positive value: Payable to Dealer.
- Negative value: Recovery from Dealer.

## Clarification and Reconciliation Rules

- Finance raises clarification against specific department rows using Work Notes.
- Department responds with remarks/documents.
- If amount revision is needed after freeze, reopen the row as a new version.
- Every variance must include a reason and supporting proof.

## Audit and Traceability Requirements

For each row and version, store:
- Created by / Updated by
- Timestamp
- Previous value and new value
- Decision and variance reason
- Linked document references
- Workflow state at the time of change

No hard overwrite of prior approved values is allowed.

## Minimal Status Model

### Department Status
- Pending
- Submitted
- Reopened
- Resubmitted

### Finance Status
- Not Reviewed
- Accepted
- Partially Accepted
- Rejected
- Under Clarification

### Case Status
- Dept Collection
- Dept Frozen
- Finance Reconciliation
- Finance Locked
- Approved
- Closed

## Expected Outcome

- Clear ownership of amount fields.
- No parallel edit conflict between departments and finance.
- Deterministic and auditable final amount calculation.
- Faster dispute resolution with explicit variance tracking.
