TKTS-INVOICE(1)

๐Ÿ“ฆ version 3.0.2, in alpine 3.24

๐Ÿงพ tkts-invoice ๐Ÿ’– (that's TKTS-INVOICE(1) bestie, welcome to the invoice era)

okay so. you opened the invoice corner of tkts and honestly? this is where the money happens ๐Ÿ’ธ we're talking generate and manage invoices for tickets and projects. group-chat energy, but the flags are real. let's go ๐Ÿซถ


โœจ NAME โœจ

tkts-invoice โ€” invoice generation commands for tkts ๐Ÿงพ๐ŸŒธ


๐ŸŒˆ SYNOPSIS ๐ŸŒˆ

here's the short version first (yes, there are two, and yes, i'm showing you both because i refuse to leave anything out ๐Ÿ’…):

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"]

and here's the full one with all the extra sauce ๐Ÿ“ โ€” --tax_rate, --payment_terms, --template, the whole glow-up:

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"]

(psst โ€” yes, the quotes and spaces in there are exactly how the page shows them. copy them as-is, don't "fix" the vibe โœจ)


๐Ÿ’œ DESCRIPTION ๐Ÿ’œ

Generate and manage invoices for tickets and projects. that's the whole job and she ate ๐Ÿ”ฅ

๐ŸŽ€ Invoice Types ๐ŸŽ€

  • Ticket Invoices โ€” generated from individual ticket time entries. one ticket, one invoice, no chaos ๐ŸŒธ
  • Project Invoices โ€” consolidated invoices for all tickets in a project. the group project that actually works ๐Ÿ‘‘

๐Ÿฆ‹ Invoice Components ๐Ÿฆ‹

  • Line Items โ€” time entries grouped by tag and company. so organized it's giving main character energy ๐Ÿ’…
  • Rate Calculations โ€” based on configured hourly rate. math but make it cute ๐Ÿงฎ
  • Tax Handling โ€” configurable tax rates. the tax girlies get options โœจ
  • Payment Terms โ€” customizable payment period. pay me in 30 days or catch these vibes ๐Ÿ˜ญ

๐ŸŒธ Prerequisites for Ticket Invoicing ๐ŸŒธ

okay bestie, before you generate a ticket invoice you gotta do these in order. no skipping, it's a whole routine ๐ŸŽ€:

  1. User Configuration โ€” configure tkts.conf with:
    • Valid user name
    • Company name
    • Hourly rate (the rate setting)
  2. User's Company Setup โ€” create your company record:
tkts company:create -n "Your Company" --abv YC --addr "Your Address"
  1. User as Client โ€” add yourself as a client:
tkts client:create -n "$USER" -c YC
  1. Client's Company Setup โ€” create the client's company:
tkts company:create -n "Client Company" --abv CC --addr "Client Address"
  1. Client Setup โ€” add the client to their company:
tkts client:create -n "Client Name" -c CC
  1. Ticket Client Assignment โ€” pick one, you don't need both:
    • Create ticket with client: tkts create -i "Issue" --client "Client Name"
    • Or update existing ticket: tkts edit -t NUMBER
  2. Time Logging โ€” record time on the ticket:
tkts time -t NUMBER [--tag TAG]

๐Ÿงš Prerequisites for Project Invoicing ๐Ÿงš

for a project invoice you do all the ticket invoice prerequisites first, then these extras on top. yes, all of them. i don't make the rules ๐Ÿซถ

  1. Project Creation โ€” create project with client and company:
tkts project:create -n "Project Name" -c CC --client "Client Name"
  1. Ticket Association โ€” add tickets to the project:
tkts project:add-tkt -p PROJECT_ID -t TICKET_ID
  1. Project Status โ€” ensure project is in appropriate state:
    • Should be "Active" or "Completed"
    • Use tkts project:status -p PROJECT_ID to verify
โš ๏ธ fr fr do the steps in order. skipping steps is how you end up with a sad empty invoice and a broken heart ๐Ÿ’€

๐Ÿ’… OPTIONS ๐Ÿ’…

  • -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) ๐ŸŽ€

๐ŸŽจ TEMPLATES ๐ŸŽจ

invoice templates live in ~/.config/tkts/invoice.tf and use groff formatting. iconic combo, no notes ๐Ÿ‘‘

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


โญ EXAMPLES โญ

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

๐Ÿซถ AUTHOR ๐Ÿซถ

Will Sinatra <tkts@lambdacreate.com> โ€” absolute legend ๐ŸŒŸ


๐Ÿ”— SEE ALSO ๐Ÿ”—

tkts(1), tkts-ticket(1), tkts-project(1) โ€” go read the whole family, they all slay ๐Ÿ’–


and that's the page!! ๐Ÿ’œ this is tkts version 3.0, dated February 2025, mwah ๐Ÿ˜˜ go invoice somebody, bestie ๐Ÿงพโœจ

๐Ÿ“ฆ where this page comes from