V4 bundle — two more sibling skills, both read-only, both depending on the dolibarr base skill. dolibarr-thirdparty-completeness: - audit-thirdparty.sh <socid>: country-aware completeness audit for any thirdparty (FR: SIREN + SIRET + tva_intra; EU non-FR: tva_intra; extra-EU: national tax id). Generalizes the V1 KM-hardcoded script. - audit-all-thirdparties.sh: loops over /thirdparties and surfaces a compact table of gaps. --clients-only / --suppliers-only flags. - Live baseline finds 5/10 thirdparties with mandatory gaps: KissMetrics (US tax id), Wise Europe SA (BE tva_intra), Medialex (FR SIRET + tva_intra), Qonto (SIRET), Infogreffe (SIRET). dolibarr-tva-deductible: - deductible-by-month.sh: TVA déductible aggregated per period × rate. - deductible-line-detail.sh: per supplier-invoice line with country- based CA3 bucket assignment (ligne 20 for 20 % FR, ligne 19 for reduced rates, ligne 17+24 for intra-UE autoliquidation). - Live baseline: 223.22 € total TVA déductible across 13 lines. Wise Europe SA correctly identified as intra-UE autoliquidation; La Poste correctly identified as FR exempt (timbres). - Mirrors dolibarr-tva-reconciliation on the supplier side. Together they give the two numbers a CA3 monthly declaration needs. Also extends dolibarr/SKILL.md endpoint catalogue with /supplierinvoices (noting the 403 on the /lines sub-endpoint — inline lines on the detail endpoint make this a non-issue). dolibarr/README.md gains two new permission checkboxes for Factures fournisseurs. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
59 lines
2.5 KiB
Markdown
59 lines
2.5 KiB
Markdown
# dolibarr — one-time setup
|
|
|
|
Skill body: [SKILL.md](SKILL.md). This README is the human-facing setup checklist.
|
|
|
|
## 1. Create `.env` (mode 600, never committed)
|
|
|
|
```bash
|
|
cat > .claude/skills/dolibarr/.env <<'EOF'
|
|
DOLIBARR_URL=https://erp.arcodange.lab
|
|
DOLIBARR_API_KEY=<get from Dolibarr UI: Users → ai_agent → API key>
|
|
DOLIBARR_USER=ai_agent
|
|
DOLIBARR_PASSWORD=<the ai_agent password, only needed for occasional UI login>
|
|
EOF
|
|
chmod 600 .claude/skills/dolibarr/.env
|
|
```
|
|
|
|
Verify it's gitignored:
|
|
|
|
```bash
|
|
git check-ignore .claude/skills/dolibarr/.env # should print the path
|
|
```
|
|
|
|
## 2. Grant `ai_agent` the four `voir_tous` permission flags
|
|
|
|
`ai_agent` is read-only by design. But Dolibarr's per-record ACL silently filters out invoices and thirdparties unless the `voir_tous` (see-all) flags are ticked. Without them, `/invoices` returns `[]` and `/thirdparties` returns 404 — looks like an empty database.
|
|
|
|
In the Dolibarr UI (https://erp.arcodange.lab/ → **Setup → Users & Groups → `ai_agent` → Permissions**), tick:
|
|
|
|
- [ ] **Tiers** → Lire les tiers
|
|
- [ ] **Tiers** → Voir tous les tiers (et pas seulement ceux liés à l'utilisateur courant)
|
|
- [ ] **Factures** → Lire les factures
|
|
- [ ] **Factures** → Voir toutes les factures (et pas seulement celles liées à l'utilisateur courant)
|
|
- [ ] **Factures fournisseurs** → Lire les factures fournisseurs (required by `dolibarr-tva-deductible`)
|
|
- [ ] **Factures fournisseurs** → Voir toutes les factures fournisseurs
|
|
|
|
Save. Future modules used by `dolibarr-*` sibling skills (Paiements, Produits, …) need the same treatment.
|
|
|
|
## 3. Quick-start test
|
|
|
|
```bash
|
|
./.claude/skills/dolibarr/scripts/dol-curl.sh /users/info | jq -r .login
|
|
# → ai_agent
|
|
./.claude/skills/dolibarr/scripts/dol-curl.sh /status
|
|
# → {"success":{"code":200,"dolibarr_version":"22.0.4",...}}
|
|
./.claude/skills/dolibarr/scripts/dol-curl.sh /thirdparties/1 | jq '{ref, country_code, town}'
|
|
# → {"ref":"KissMetrics","country_code":"US","town":"St. Petersburg"}
|
|
```
|
|
|
|
If the third one returns HTTP 403 `Access not allowed for login ai_agent on this thirdparty`, the `voir_tous` flags from step 2 are missing.
|
|
|
|
## 4. Rotating the API key
|
|
|
|
If the key leaks: Dolibarr UI → Users → `ai_agent` → API key → **Generate new** → copy the new value into `.env`. No other change needed; every `dolibarr-*` skill picks it up via `dol-curl.sh`.
|
|
|
|
## Pointers
|
|
|
|
- Full skill body, endpoint catalogue, gotchas: [SKILL.md](SKILL.md).
|
|
- First workflow skill that depends on this one: [../dolibarr-invoice-audit/SKILL.md](../dolibarr-invoice-audit/SKILL.md).
|