Accounting: share invoice, receipt and credit-note reads between CLI and MCP
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Refactorización
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- csharp
- Área
- api, backend-api-design, cli
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- C#
- Estrellas
- 3
- Forks
- 0
- Merge medio
- 28 min
- PR fusionados (30 d)
- 31
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de SSWConsulting/TimePro.Tools
-
Priority: P3 Type: Refactor
Dificultad 5/5 Más de una semana Aptitud para principiantes 38/100
SSWConsulting/TimePro.Tools#101 ·
Los mantenedores suelen responder en 1 día
-
Priority: P3 Type: Refactor
Dificultad 4/5 3-5 días Aptitud para principiantes 42/100
SSWConsulting/TimePro.Tools#100 ·
Los mantenedores suelen responder en 1 día
-
Accounting: share product, SKU, rate, unbilled and recurring reads (unbilled paging is a no-op)AbiertoPriority: P3 Type: Refactor
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
SSWConsulting/TimePro.Tools#99 ·
Los mantenedores suelen responder en 1 día
-
Priority: P2 Type: Bug Type: Refactor
Dificultad 5/5 Más de una semana Aptitud para principiantes 38/100
SSWConsulting/TimePro.Tools#97 ·
Los mantenedores suelen responder en 1 día
-
Priority: P2 Type: Feature
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
SSWConsulting/TimePro.Tools#96 ·
Los mantenedores suelen responder en 1 día
Todos los issues de SSWConsulting/TimePro.Tools
Issues similares
-
area-ai untriaged
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
dotnet/extensions#7790 ·
Los mantenedores suelen responder en 1 día
-
P2 testing
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
Los mantenedores suelen responder en 1 día
-
area-Infrastructure-coreclr os-ios os-maccatalyst os-tvos untriaged
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
dotnet/runtime#134766 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
-
0 - Backlog Bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
BrighterCommand/Brighter#4444 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día