ca4fb959aa
Invoice-basis report showing taxable vs non-taxable sales, tax billed by GL account, monthly trend table/chart, and full invoice detail grid. Non-taxable invoice rows shaded grey for easy scanning. Quick-preset date buttons (This Month, Last Month, YTD, Last Year) for common filing periods. CSV export formatted for accountants and tax-filing software. Gated behind AllowAccounting() like other financial reports. - SalesTaxReportDto + 3 supporting DTOs in FinancialReportDtos.cs - GetSalesTaxReportAsync on IFinancialReportService + implementation - GenerateSalesTaxReportPdfAsync on IPdfService + QuestPDF implementation - SalesTax / SalesTaxPdf / SalesTaxCsv actions in ReportsController - Views/Reports/SalesTax.cshtml with Chart.js monthly trend chart - Landing page card added to Finance section - HelpKnowledgeBase and Help/Reports.cshtml updated with full docs Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
52 lines
1.8 KiB
C#
52 lines
1.8 KiB
C#
using PowderCoating.Application.DTOs.Accounting;
|
|
using PowderCoating.Application.DTOs.Company;
|
|
using PowderCoating.Application.DTOs.GiftCertificate;
|
|
using PowderCoating.Application.DTOs.Invoice;
|
|
using PowderCoating.Application.DTOs.PurchaseOrder;
|
|
using PowderCoating.Application.DTOs.Quote;
|
|
using PowderCoating.Core.Entities;
|
|
|
|
namespace PowderCoating.Application.Interfaces;
|
|
|
|
public interface IPdfService
|
|
{
|
|
Task<byte[]> GenerateQuotePdfAsync(
|
|
QuoteDto quoteDto,
|
|
byte[]? companyLogo,
|
|
string? companyLogoContentType,
|
|
CompanyInfoDto companyInfo,
|
|
QuoteTemplateSettingsDto? template = null,
|
|
byte[]? preparedByPhoto = null);
|
|
|
|
Task<byte[]> GenerateInvoicePdfAsync(
|
|
InvoiceDto invoiceDto,
|
|
byte[]? companyLogo,
|
|
string? companyLogoContentType,
|
|
CompanyInfoDto companyInfo,
|
|
QuoteTemplateSettingsDto? template = null);
|
|
|
|
Task<byte[]> GeneratePurchaseOrderPdfAsync(
|
|
PurchaseOrderDto po,
|
|
byte[]? companyLogo,
|
|
string? companyLogoContentType,
|
|
CompanyInfoDto companyInfo);
|
|
|
|
Task<byte[]> GenerateCatalogPdfAsync(
|
|
IEnumerable<IGrouping<CatalogCategory, CatalogItem>> itemsByCategory,
|
|
string companyName,
|
|
byte[]? companyLogo,
|
|
string? companyLogoContentType);
|
|
|
|
Task<byte[]> GenerateProfitAndLossPdfAsync(ProfitAndLossDto dto);
|
|
Task<byte[]> GenerateBalanceSheetPdfAsync(BalanceSheetDto dto);
|
|
Task<byte[]> GenerateArAgingPdfAsync(ArAgingReportDto dto);
|
|
Task<byte[]> GenerateSalesAndIncomePdfAsync(SalesIncomeReportDto dto);
|
|
Task<byte[]> GenerateSalesTaxReportPdfAsync(SalesTaxReportDto dto);
|
|
|
|
Task<byte[]> GenerateGiftCertificatePdfAsync(
|
|
GiftCertificateDto cert,
|
|
byte[]? companyLogo,
|
|
string? companyLogoContentType,
|
|
CompanyInfoDto companyInfo);
|
|
}
|