# /invoice

**Source:** `~/.claude/skills/invoice/SKILL.md`
---

# Invoice — Kreiraj i Pošalji Fakturu

## Description
Vodeni workflow za kreiranje, pregled, i slanje fakture. Od validacije klijenta do auto-remind schedulea. Koristi invoice-generator.js za kreiranje, drafts.js za email workflow, i opciono fiken.js za accounting sync.

## Trigger
Koristi ovaj skill kad:
- Alem kaže "napravi fakturu", "pošalji račun", "fakturiši", "invoice"
- Milestone je dostignut i treba fakturisati
- Periodična faktura (mjesečna, kvartalna)

## Alati
- **Fakture:** `~/system/tools/invoice-generator.js`
- **Contacts:** `~/system/tools/contacts.js`
- **Drafts:** `~/system/tools/drafts.js`
- **Fiken:** `~/system/tools/fiken.js`
- **Email:** MCP `mcp__email__email_send` (account: "john")
- **Templates:** `~/system/templates/invoices/standard-invoice.html`
- **DB:** `~/system/databases/invoices.db`

## Workflow

### Korak 1: Validacija klijenta
Provjeri da klijent postoji u sistemu:
```bash
# Provjeri contacts.db
NODE_PATH=~/system/node_modules node ~/system/tools/contacts.js search "<klijent>"

# Provjeri da ima email
NODE_PATH=~/system/node_modules node ~/system/tools/contacts.js show <id>
```
- Ako klijent NE postoji → pitaj Alema za podatke, dodaj u contacts.js
- Ako nema email → pitaj Alema. NE izmišljaj.
- Provjeri: org_number, adresa (treba za fakturu)

### Korak 2: Prikupi podatke za fakturu
Interaktivno od Alema (ili iz konteksta):
1. **Klijent** (ime/firma)
2. **Iznos** (bez MVA)
3. **Valuta** (NOK, EUR, USD, BAM, RSD)
4. **Opis** (šta se fakturiše)
5. **Line items** (opciono — detaljnije stavke)
6. **Payment terms** (default: 14 dana)
7. **Reference** (project, contract, PO number)

### Korak 3: Kreiraj fakturu
```bash
NODE_PATH=~/system/node_modules node ~/system/tools/invoice-generator.js create "<klijent>" <iznos> <valuta> "<opis>"
```

Provjeri output:
- Invoice ID kreiran
- MVA 25% dodan (za NOK fakture)
- Total = iznos + MVA
- Due date = today + payment terms
- PDF generisan u `~/system/deliverables/invoices/`

### Korak 4: Review sa Alemom
**OBAVEZNO:** Pokaži Alemu fakturu prije slanja:
- Klijent: {ime}
- Iznos: {iznos} {valuta}
- MVA (25%): {mva}
- **Total: {total} {valuta}**
- Opis: {opis}
- Due date: {datum}
- Payment terms: {dani} dana

Čekaj eksplicitno odobrenje. NIKAD slati bez "OK" ili "SEND".

### Korak 5: Kreiraj email draft
Fakturu NE slati direktno — koristi drafts workflow:
```bash
# Draft se kreira automatski pri invoice create
# Ili ručno:
NODE_PATH=~/system/node_modules node ~/system/tools/drafts.js list pending
```

Draft risk classification:
- Invoice = **HIGH risk** → zahtijeva manual approval
- Reminder = **MEDIUM risk** → auto-approve + notify

### Korak 6: Pošalji fakturu
Nakon Alemovog odobrenja:
```bash
# Approve draft
NODE_PATH=~/system/node_modules node ~/system/tools/drafts.js approve <draft-id>

# Send
NODE_PATH=~/system/node_modules node ~/system/tools/drafts.js send <draft-id>
```

Ili direktno via MCP email:
```
mcp__email__email_send(
  account: "john",
  to: "<klijent-email>",
  subject: "Invoice #<id> — ALAI Holding AS",
  body: "<tekst>",
  attachments: ["~/system/deliverables/invoices/INV-<id>.pdf"]
)
```

### Korak 7: Fiken sync (opciono)
Ako klijent ima Fiken kontakt:
```bash
# Sync invoice to Fiken
NODE_PATH=~/system/node_modules node ~/system/tools/fiken.js invoices sync
```

### Korak 8: Auto-remind schedule
Automatski reminder schedule (pipeline-watcher daemon):
- **Day 7:** Friendly reminder (auto-send, Norwegian)
- **Day 14:** Firm reminder (auto-send + Slack notify)
- **Day 30+:** MC task za Alema (eskalacija)

Provjeri remind status:
```bash
NODE_PATH=~/system/node_modules node ~/system/tools/invoice-generator.js list overdue
```

Ručni reminder:
```bash
NODE_PATH=~/system/node_modules node ~/system/tools/invoice-generator.js remind <invoice-id>
```

## Pravila

1. **MVA 25% za NOK** — invoice-generator.js automatski dodaje. Provjeri total.
2. **CEO odobrava** — Faktura je HIGH risk. NIKAD slati bez Alemovog "OK".
3. **Klijent mora postojati** — Nema fakture za nepostojeći kontakt u contacts.db.
4. **Referenca obavezna** — Svaka faktura mora imati vezu na ugovor ili PO.
5. **ALAI branding** — PDF koristi standard ALAI template.
6. **Valuta match** — Koristi valutu iz ugovora. Ne miješaj NOK/EUR.
7. **Anti-hallucination** — NE izmišljaj iznose. Ako Alem nije rekao cifru, pitaj.
8. **Due date realan** — Default 14 dana. Provjeri ugovor za custom terms.
9. **Fiken sync** — Sync nakon svake nove fakture ako je Fiken konfigurisan.

## Primjer — Standardna Faktura

```
Alem: "Fakturiši Wizard 25000 NOK za februar maintenance"

John:
1. contacts.js search "Wizard" → Wizard NUF, anel@wizard.no
2. invoice-generator.js create "Wizard NUF" 25000 NOK "February 2026 maintenance and support"
3. Output: INV-0005, 25000 + 6250 MVA = 31250 NOK, due 2026-02-26
4. → Pokaži Alemu za review
5. Alem: "OK"
6. → drafts.js approve + send
7. → fiken.js invoices sync
8. → Auto-remind active (Day 7, 14, 30)
```

## Primjer — Multi-line Faktura

```
Alem: "Fakturiši Ren Drøm za januar: 40h development @ 1200 NOK + 5000 NOK hosting"

John:
1. contacts.js search "Ren Drøm" → found
2. invoice-generator.js create "Ren Drøm AS" 53000 NOK "January 2026: Development (40h × 1200 NOK) + Hosting (5000 NOK)"
3. → Review → Approve → Send → Sync
```

## Tracking
```bash
# Lista svih faktura
NODE_PATH=~/system/node_modules node ~/system/tools/invoice-generator.js list all

# Neplaćene
NODE_PATH=~/system/node_modules node ~/system/tools/invoice-generator.js list unpaid

# Overdue
NODE_PATH=~/system/node_modules node ~/system/tools/invoice-generator.js list overdue

# Statistika
NODE_PATH=~/system/node_modules node ~/system/tools/invoice-generator.js stats

# Fiken dashboard
NODE_PATH=~/system/node_modules node ~/system/tools/fiken.js dashboard
```