Create professional invoices in Odoo accounting system with automatic approval workflow for amounts over $100. Use when task requires generating client invoices for services or products delivered.
Use this skill when:
IMPORTANT: Invoices over $100 require human approval before posting to Odoo.
Read the task file completely
Identify required invoice information:
Validate required fields:
Read vault/Company_Handbook.md for:
Apply company standards to invoice
Approval Threshold: $100
Create invoice in Odoo using accounting actions:
from src.actions.accounting_actions import process_invoice_request
invoice_data = {
"client_name": "[Client Name]",
"amount": [Amount],
"description": "[Description]",
"date": "[YYYY-MM-DD]",
"due_date": "[YYYY-MM-DD]"
}
Log the action:
[TIMESTAMP] [TASK_ID] INVOICE_CREATED: [Client] - $[Amount] - Auto-approved
Update task status:
status: completed
invoice_created: true
invoice_amount: [Amount]
odoo_invoice_id: [ID from Odoo]
auto_approved: true
Move task to vault/Done/
Update Dashboard:
| [Time] | Accounting | Invoice Created | $[Amount] | [Client] |
Create approval request in task file:
## Invoice Approval Request
**Action Type**: Financial
**Amount**: $[Amount]
**Requested**: [ISO timestamp]
**Expires**: [ISO timestamp + 24 hours]
### Invoice Details
- **Client**: [Client Name]
- **Amount**: $[Amount]
- **Description**: [Services/products provided]
- **Invoice Date**: [Date]
- **Due Date**: [Due date or payment terms]
### Line Items
| Item | Quantity | Unit Price | Total |
|------|----------|------------|-------|
| [Item 1] | [Qty] | $[Price] | $[Total] |
| [Item 2] | [Qty] | $[Price] | $[Total] |
**Subtotal**: $[Subtotal]
**Tax**: $[Tax if applicable]
**Total**: $[Total Amount]
### Rationale
[Why this invoice is being created - project completion, milestone reached, etc.]
### Expected Outcome
- Invoice posted to Odoo accounting system
- Client receives invoice notification
- Payment tracked in accounts receivable
- Revenue recorded for this period
---
**To Approve**: Move this file to `vault/Approved/`
**To Reject**: Move this file to `vault/Rejected/`
**To Modify**: Edit the invoice details and re-request
**Note**: This approval request expires in 24 hours.
Update task frontmatter:
requires_approval: true
approval_reason: "Invoice amount exceeds $100 threshold"
approval_requested: [ISO timestamp]
approval_expires: [ISO timestamp + 24 hours]
approval_category: financial
invoice_amount: [Amount]
client_name: "[Client]"
status: pending_approval
Move task to vault/Pending_Approval/
Log approval request:
[TIMESTAMP] [TASK_ID] INVOICE_APPROVAL_REQUESTED: [Client] - $[Amount]
Update Dashboard:
| [Time] | Accounting | Invoice Pending | $[Amount] | [Client] - Awaiting Approval |
When task is moved to vault/Approved/:
Create invoice in Odoo:
from src.actions.accounting_actions import process_invoice_request
# Invoice data from approved task
result = process_invoice_request(task_data)
Log the action:
[TIMESTAMP] [TASK_ID] INVOICE_CREATED: [Client] - $[Amount] - Approved by human
Update task with Odoo invoice ID:
status: completed
invoice_created: true
odoo_invoice_id: [ID from Odoo]
approved_by: human
approved_at: [ISO timestamp]
Move task to vault/Done/
Update Dashboard with completion
---