7e1676cfd7
- AP Aging report (GetApAgingAsync, controller actions, view, PDF export) mirrors AR Aging — groups open bills by vendor, buckets by days past due date - Trial Balance report (GetTrialBalanceAsync, view, PDF export) uses Account.CurrentBalance, groups by AccountType, validates debits == credits - Cash vs Accrual accounting method setting on Company entity switchable at any time — report-time only, no GL re-posting on change P&L cash: revenue = payments received; expenses = bills/expenses paid in period Balance Sheet cash: omits AR and AP lines (no receivables/payables concept) AccountingMethod badge shown on P&L and Balance Sheet views - Migration A (AddAccountingMethod) applied, default = Accrual for all existing companies - AP Aging and Trial Balance added to Reports Landing page Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
54 lines
1.9 KiB
C#
54 lines
1.9 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[]> GenerateApAgingPdfAsync(ApAgingReportDto dto);
|
|
Task<byte[]> GenerateTrialBalancePdfAsync(TrialBalanceDto dto);
|
|
|
|
Task<byte[]> GenerateGiftCertificatePdfAsync(
|
|
GiftCertificateDto cert,
|
|
byte[]? companyLogo,
|
|
string? companyLogoContentType,
|
|
CompanyInfoDto companyInfo);
|
|
}
|