Internal Invoices

Business perspective: Internal (Inter-Brand) Invoices

1. Business Summary

Inter-brand / inter-branch invoices documenting internal chargebacks, with explicit approval workflow before SAP sync.

2. Business Value

Inter-company allocation, profitability analysis.

3. Users / Stakeholders

Finance, executives, approvers.

4. Workflows

  • Create InternalInvoice with InternalInvoicesTask + Expenses.
  • Approval (approval_status_id) gates SAP sync.
  • sapInternalInvoiceSync() posts IC transactions.

5. Sub-Features

  • IC branch routing; CardCode chosen by Branch.BP_sap_id or CustomerBrand.BP_sap_id.

6. Business Rules

  • Issue date ≥ '2018-01-01' for SAP.
  • Approval required before sync.

7. Data Entities

InternalInvoice, InternalInvoicesTask, InternalInvoicesExpense, ApprovalStatus.

8. Entry Points

  • finance/internalInvoices, finance/internalInvoicesTasks, finance/internalInvoicesExpenses.
  • Common: submitInternalInvoice.
  • SAP sync.

9. Inputs & Outputs

  • Inputs: tasks, expenses, approval.
  • Outputs: IC records, SAP IDs.

10. Integrations

  • SAP.

11. Calculations / Logic

  • IC line items aggregated.

12. Status Lifecycle

  • draft → submitted → approved → sap_posted.

13. Permissions

  • Finance + approvers, brand-scoped.

14. Reports & KPIs

  • IC volumes, approval cycle time.

15. Risks & Observations

  • Approval bypass possible if status not validated upstream.

16. Source Code Evidence

  • app/Plugin/finance/Model/InternalInvoice.php, InternalInvoicesTask.php, InternalInvoicesExpense.php.
  • app/Plugin/finance/Controller/InternalInvoicesController.php, InternalInvoicesTasksController.php, InternalInvoicesExpensesController.php.
  • app/Controller/SapController.php :: internal invoice sync (~lines 1185–1300).

← Deep dives index