tkts−invoice − invoice generation commands for tkts
tkts
invoice:create [-t|--tkt number] [--start "
date"] [--end " date"] [--update "
id"]
tkts invoice:list [-c|--client name] [-t|--tkt
" number"]
tkts invoice:prepare [-t|--tkt number] [--client
" name"]
Generate and manage invoices for tickets and projects.
tkts−invoice − invoice generation commands for tkts
tkts
invoice:create [-t|--tkt number] [--start "
date"] [--end " date"] [--update "
id"] [--tax_rate " rate"] [--payment_terms
" days"] [--template " name"]
tkts invoice:list [-c|--client name] [-t|--tkt
" number"]
tkts invoice:prepare [-t|--tkt number] [--client
" name"]
Generate and manage invoices for tickets and projects.
Ticket Invoices
Generated from individual ticket time entries
Project Invoices
Consolidated invoices for all tickets in a project
Line Items
Time entries grouped by tag and company
Rate Calculations
Based on configured hourly rate
Tax Handling
Configurable tax rates
Payment Terms
Customizable payment period
Before generating a ticket invoice, ensure the following steps are completed in order:
1. User Configuration
Configure tkts.conf with:
- Valid user name
- Company name
- Hourly rate (rate setting)
2. User’s Company Setup
Create your company record:
tkts company:create -n "Your Company" --abv YC
--addr "Your Address"
3. User as Client
Add yourself as a client:
tkts client:create -n "$USER" -c YC
4. Client’s Company Setup
Create the client’s
company:
tkts company:create -n "Client Company" --abv CC
--addr "Client
Address"
5. Client Setup
Add the client to their
company:
tkts client:create -n "Client Name" -c CC
6. Ticket Client Assignment
Either:
- Create ticket with client: tkts create -i
"Issue" --client "Client Name"
- Or update existing ticket: tkts edit -t NUMBER
7. Time Logging
Record time on the ticket:
tkts time -t NUMBER [--tag TAG]
Before generating a project invoice, complete all ticket invoice prerequisites plus:
1. Project Creation
Create project with client and
company:
tkts project:create -n "Project Name" -c CC
--client "Client Name"
2. Ticket Association
Add tickets to the project:
tkts project:add-tkt -p PROJECT_ID -t TICKET_ID
3. Project Status
Ensure project is in
appropriate state:
- Should be "Active" or "Completed"
- Use tkts project:status -p PROJECT_ID to verify
−t, −−tkt
Ticket number
−c, −−client
Client name
−−start
Start date for invoice period (YYYY-MM-DD)
|
−−end |
End date for invoice period (YYYY-MM-DD) |
−−update
Invoice ID to update
−−tax_rate
Tax rate percentage (default: 0.0)
−−payment_terms
Payment period in days (default: 30)
−−template
Invoice template name (default: default)
Invoice
templates are stored in ˜/.config/tkts/invoice.tf and
use groff formatting. Available template variables include:
Basic Information
full_name, address, cell_number
Company Details
company, company_addr, company_zip
Client Information
client_email, client_cellphone
Invoice Details
invoice_number, issued_date, due_date, period
Financial Information
line_items, tax_rate, total_cost, tax_amount, final_amount
Generate invoice for a ticket:
tkts invoice:create -t 123 --start "2025-01-01" --end "2025-01-31"
List invoices for a client:
tkts invoice:list -c "ACME Corp"
Prepare ticket for invoicing:
tkts invoice:prepare -t 123 --client "John Doe"
Generate invoice with custom tax rate:
tkts invoice:create -t 123 --tax_rate 7.5 --payment_terms 45
Will Sinatra <[email protected]>
tkts(1), tkts−ticket(1), tkts−project(1)