PO Management

Business perspective: PO Management

1. Business Summary

Customer Purchase Orders track financial authorization for jobs; statuses: ready, verified, used, cancelled; errors typed; sharing across accounts allowed; auto-creation in job intake.

2. Business Value

Ensures jobs are authorized before invoicing; supports verification and dispute resolution.

3. Users / Stakeholders

PMs, finance, AMs.

4. Workflows

  • Manual or auto-creation (jobAutomation).
  • Verification (Verification model) before invoicing.
  • Linkage to ClientInvoice via client_invoice_id.
  • Errors recorded via ErrorType.

5. Sub-Features

  • PO sharing across related accounts (Account.account_po_option_id).
  • Verification statuses.

6. Business Rules

  • po_status_id controls invoicing eligibility (verified/ready typically required).
  • account_po_option_id controls account-level rules (PO required, etc.).
  • error_type_id for compliance/quality issues.

7. Data Entities

Po, PoStatus, Verification, ErrorType, AccountPoOption.

8. Entry Points

  • finance/pos, finance/poStatuses, finance/verifications.

9. Inputs & Outputs

  • Inputs: PO number, account, currency, amount, jobs.
  • Outputs: PO records, alerts, invoice eligibility.

10. Integrations

  • SAP (PO export integration via ExportInvoicesPOsController).

11. Calculations / Logic

  • Amount tracking against jobs.

12. Status Lifecycle

  • draft → ready → verified → used → closed/cancelled.

13. Permissions

  • PM, finance, AM, brand-scoped.

14. Reports & KPIs

  • PO ageing, errors by type, share usage.

15. Risks & Observations

  • Verification model is empty placeholder (Observed) — verification logic likely external.
  • PO errors silently block invoicing if not surfaced.

16. Source Code Evidence

  • app/Plugin/finance/Model/Po.php, PoStatus.php, Verification.php, ErrorType.php.
  • app/Plugin/finance/Controller/PosController.php, PoStatusesController.php, VerificationsController.php.

← Deep dives index