Accounting: share invoice, receipt and credit-note reads between CLI and MCP
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Refactoring
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- csharp
- Ambito
- api, backend-api-design, cli
Direzione di ricerca
Start with the listed accounting tools and CLI commands, then read CLAUDE.md, RateLookupResult, ProjectLookup, and WeekCheckResult for the intended shared shapes. Trace ToolsWithoutCliMirror and the existing executable parity rows before planning the migration. Done means all listed reads share result records and miss shapes, totals and validation are centralized, client-history commands exist, and parity rows pass.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Why
Every invoice, receipt and credit-note tool calls ITimeProApiClient directly, and the CLI commands keep their logic in the renderer. Differences that matter:
- A missing invoice/receipt is
{found:false, …}with exit 1 on the CLI and a barenullon MCP. - Totals exist only in CLI renderers: invoice line totals (
Invoices/LinesCommand), invoice timesheet hours/amounts (TimesheetsCommand), signed receipt payments (ReceiptsCommand), outstanding totals (Receipts/OutstandingCommand), credit-note totals (CreditNotes/ListCommand). GetInvoiceTimesheetsforwards a free-texttype; the CLI derives it from--write-off.invoice list,receipt listwith--jsonprint nothing (exit 0) when the API returns no page; MCP printsnull.GetInvoicesByClientandGetUnpaidInvoicesByClienthave no CLI command (on theToolsWithoutCliMirrorallowlist).
Migrate
- Tools:
ListInvoices,GetInvoice,GetInvoiceLines,GetInvoiceTimesheets,GetInvoiceReceipts,GetInvoicesByClient,GetUnpaidInvoicesByClient,ListPaidReceipts,GetReceiptDetail,GetClientOutstanding,ListCreditNotes. - A lookup/result record per read with a shared miss shape (
found:false+ id), and totals computed in the result, not the renderer. - Validate the invoice-timesheet type in one place.
- CLI commands for client invoice history and unpaid invoices (e.g.
invoice list --client NWIND [--unpaid]); remove both fromToolsWithoutCliMirror. - Executable parity rows with
ExpectParity = true.
How
Pure pass-throughs do not need a service class: the shared piece is the result record and the miss shape (RateLookupResult, ProjectLookup). Where there are totals, follow WeekCheckResult. Keep the receipt DTOs separate (see "Accounting API Shapes" in CLAUDE.md).
Contract
MCP null → {found:false} and added totals are 0.4.0 wire changes; the new CLI commands are patch-safe.
Part of #38.
- Lingua principale
- C#
- Stelle
- 3
- Fork
- 0
- Merge medio
- 7m
- PR unite (30g)
- 30
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Nessuna guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di SSWConsulting/TimePro.Tools
-
Priority: P3 Type: Refactor
Difficoltà 5/5 Più di una settimana Idoneità per principianti 38/100
SSWConsulting/TimePro.Tools#101 ·
I maintainer di solito rispondono entro 1 giorno
-
Priority: P3 Type: Refactor
Difficoltà 4/5 3-5 giorni Idoneità per principianti 42/100
SSWConsulting/TimePro.Tools#100 ·
I maintainer di solito rispondono entro 1 giorno
-
Accounting: share product, SKU, rate, unbilled and recurring reads (unbilled paging is a no-op)ApertaPriority: P3 Type: Refactor
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
SSWConsulting/TimePro.Tools#99 ·
I maintainer di solito rispondono entro 1 giorno
-
Priority: P2 Type: Bug Type: Refactor
Difficoltà 5/5 Più di una settimana Idoneità per principianti 38/100
SSWConsulting/TimePro.Tools#97 ·
I maintainer di solito rispondono entro 1 giorno
-
Priority: P2 Type: Feature
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
SSWConsulting/TimePro.Tools#96 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di SSWConsulting/TimePro.Tools
Issue simili
-
agentic-workflows area/Docs partner/agentic-workflows
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
microsoft/fluentui-blazor#5364 ·
I maintainer di solito rispondono entro 1 giorno
-
.NET triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
microsoft/agent-framework#8811 ·
I maintainer di solito rispondono entro 1 giorno
-
.NET Docs
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
getsentry/sentry-dotnet#5637 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
QuantConnect/Lean#9842 ·
I maintainer di solito rispondono entro 1 giorno