price adjustment and stock adjustments
This commit is contained in:
@@ -28,7 +28,7 @@ builder.Host.UseSerilog((ctx, cfg) => cfg
|
||||
.WriteTo.File("logs/erpcore-.log", rollingInterval: RollingInterval.Day));
|
||||
|
||||
// Controllers + JSON: serialize enums as their string names (docs/11 §8, camelCase).
|
||||
builder.Services.AddControllers()
|
||||
builder.Services.AddControllers(o => o.Filters.Add<ERPCore.Infra.Filters.LowStockAlertFilter>())
|
||||
.AddJsonOptions(o => o.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter()));
|
||||
|
||||
// EF Core + MariaDB (Pomelo). The server version is pinned explicitly rather than using
|
||||
@@ -149,6 +149,19 @@ builder.Services.AddScoped<IGrnService, GrnService>();
|
||||
builder.Services.AddScoped<IPurchaseInvoiceService, PurchaseInvoiceService>();
|
||||
builder.Services.AddScoped<IPurchaseInvoicePaymentService, PurchaseInvoicePaymentService>();
|
||||
|
||||
// Accounts: expenses (docs/EXPENSE_MODULE_PLAN.md). ExpenseService is also registered as itself:
|
||||
// ExpensePaymentService reuses its post step so Post & Pay is one transaction.
|
||||
builder.Services.AddScoped<IExpenseSetupService, ExpenseSetupService>();
|
||||
builder.Services.AddScoped<ExpenseService>();
|
||||
builder.Services.AddScoped<IExpenseService>(sp => sp.GetRequiredService<ExpenseService>());
|
||||
builder.Services.AddScoped<IExpensePaymentService, ExpensePaymentService>();
|
||||
|
||||
// Accounts: bank deposits of till cash (docs/BANK_DEPOSIT_MODULE_PLAN.md). The business-day clock
|
||||
// is shared with the Day-End Sales Report so both agree on what "today" is.
|
||||
builder.Services.AddSingleton<BusinessDayClock>();
|
||||
builder.Services.AddScoped<ICashInHandService, CashInHandService>();
|
||||
builder.Services.AddScoped<IBankDepositService, BankDepositService>();
|
||||
|
||||
// Sales (Phase 1)
|
||||
builder.Services.AddScoped<ISalesPricingService, SalesPricingService>();
|
||||
builder.Services.AddScoped<ISalesDomainService, SalesDomainService>();
|
||||
@@ -163,16 +176,27 @@ builder.Services.AddScoped<ISalesPromotionSuggestionService, SalesPromotionSugge
|
||||
builder.Services.AddScoped<ISalesReportService, SalesReportService>();
|
||||
builder.Services.AddScoped<ISalesReturnService, SalesReturnService>();
|
||||
builder.Services.AddScoped<ISalesDayEndService, SalesDayEndService>();
|
||||
builder.Services.AddScoped<IDayEndReportService, DayEndReportService>();
|
||||
|
||||
// Stock transactions + reference data (docs/11 §5–6)
|
||||
builder.Services.AddScoped<IStockMutator, StockMutator>();
|
||||
builder.Services.AddScoped<ISerialTrackingService, SerialTrackingService>();
|
||||
builder.Services.AddScoped<IItemTrackingService, ItemTrackingService>();
|
||||
builder.Services.AddScoped<IReasonCodeService, ReasonCodeService>();
|
||||
builder.Services.AddScoped<IAdjustmentService, AdjustmentService>();
|
||||
// AdjustmentService is also registered as itself: CountService submits its variances through it.
|
||||
builder.Services.AddScoped<AdjustmentService>();
|
||||
builder.Services.AddScoped<IAdjustmentService>(sp => sp.GetRequiredService<AdjustmentService>());
|
||||
builder.Services.AddScoped<IApprovalService, ApprovalService>();
|
||||
builder.Services.AddScoped<IPriceAdjustmentService, PriceAdjustmentService>();
|
||||
builder.Services.AddScoped<ApprovalInboxService>();
|
||||
builder.Services.AddScoped<ITransferService, TransferService>();
|
||||
builder.Services.AddScoped<ICountService, CountService>();
|
||||
builder.Services.AddScoped<IReorderService, ReorderService>();
|
||||
// Low-stock alerts: FIFO issues record into the tracker; the global LowStockAlertFilter checks
|
||||
// them against reorder points after each successful request and raises "stock.low".
|
||||
builder.Services.AddScoped<ERPCore.Services.Stock.LowStockTracker>();
|
||||
builder.Services.AddScoped<ERPCore.Services.Stock.LowStockAlertService>();
|
||||
builder.Services.AddScoped<ERPCore.Infra.Filters.LowStockAlertFilter>();
|
||||
builder.Services.AddScoped<IPurchaseReturnService, PurchaseReturnService>();
|
||||
|
||||
// Cross-cutting: audit trail + GL-ready journal read access (docs/11 §6 / FR-X-02, FR-STK-13)
|
||||
|
||||
Reference in New Issue
Block a user