feat(expenses): implement responsive dialog for expense management and create expense provider
- Added ResponsiveDialog component for handling responsive dialogs in the UI. - Created ExpensesProvider to manage state and API interactions for expenses. - Developed ExpensesTabContent to display expenses with filtering options and dialogs for new and pay expense actions. - Implemented ExpensesTable for rendering expense data in a tabular format with actions. - Added dialogs for creating new expenses and paying existing ones with form validation. - Introduced PeriodicExpenseForm for managing periodic expenses with month selection. - Created PeriodicExpensesTabContent to manage and display periodic expenses with create/edit functionality. - Added GenerateCurrentMonthDialog for confirming monthly expense generation. - Implemented PeriodicExpensesTable for displaying periodic expenses with edit and delete actions.
This commit is contained in:
16
apps/backend/src/modules/expenses/expense.job.ts
Normal file
16
apps/backend/src/modules/expenses/expense.job.ts
Normal file
@@ -0,0 +1,16 @@
|
||||
import cron from "node-cron";
|
||||
import { logger } from "../../lib/logger";
|
||||
import { generateExpensesForCurrentMonth } from "./expenses.service";
|
||||
|
||||
export function startExpenseJob(): void {
|
||||
cron.schedule("0 1 1 * *", async () => {
|
||||
logger.info("Generating monthly expenses...");
|
||||
try {
|
||||
const results = await generateExpensesForCurrentMonth();
|
||||
logger.info({ results }, "Monthly expenses generated");
|
||||
} catch (err) {
|
||||
logger.error({ err }, "Failed to generate monthly expenses");
|
||||
}
|
||||
});
|
||||
logger.info("Expense cron scheduled: 0 1 1 * *");
|
||||
}
|
||||
Reference in New Issue
Block a user