From 16f5d3a7e42308765a7ee7014c3b83c7f9ff3053 Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Sat, 28 Feb 2026 12:24:45 +0000 Subject: [PATCH] V1 --- assets/pasted-20260228-105909-e9435147.png | Bin 0 -> 228084 bytes assets/pasted-20260228-114648-f7c34610.png | Bin 0 -> 30925 bytes ...20260228000000-transactions-permissions.js | 58 +++ backend/src/index.js | 6 + backend/src/routes/context.js | 50 +++ backend/src/routes/dashboard.js | 117 +++++ backend/src/routes/transactions.js | 92 ++++ backend/src/routes/vat_declarations.js | 373 +--------------- backend/src/services/vat_declarations.js | 107 ++++- frontend/src/components/ContextSwitcher.tsx | 126 ++++++ .../Finance/Dashboard/DashboardWidgets.tsx | 115 +++++ .../Dashboard/ProfitLossSummaryChart.tsx | 73 +++ .../Finance/Dashboard/QuickActions.tsx | 67 +++ .../Finance/Dashboard/RecentTransactions.tsx | 82 ++++ .../Finance/Dashboard/UpcomingDueDates.tsx | 39 ++ frontend/src/components/NavBar.tsx | 36 +- frontend/src/components/NavBarItem.tsx | 67 ++- frontend/src/layouts/Authenticated.tsx | 64 ++- frontend/src/menuAside.ts | 8 +- frontend/src/menuNavBar.ts | 20 +- frontend/src/pages/_app.tsx | 52 ++- frontend/src/pages/dashboard.tsx | 421 +++--------------- frontend/src/pages/transaction-entry.tsx | 2 +- frontend/src/pages/transactions.tsx | 182 ++++++++ .../[vat_declarationsId]/erca.tsx | 250 +++++++++++ .../vat_declarations-view.tsx | 22 +- frontend/src/stores/contextSlice.ts | 86 ++++ frontend/src/stores/dashboardSlice.ts | 68 +++ frontend/src/stores/store.ts | 8 +- .../stores/transactions/transactionsSlice.ts | 65 +++ frontend/src/styles.ts | 28 +- 31 files changed, 1881 insertions(+), 803 deletions(-) create mode 100644 assets/pasted-20260228-105909-e9435147.png create mode 100644 assets/pasted-20260228-114648-f7c34610.png create mode 100644 backend/src/db/seeders/20260228000000-transactions-permissions.js create mode 100644 backend/src/routes/context.js create mode 100644 backend/src/routes/dashboard.js create mode 100644 backend/src/routes/transactions.js create mode 100644 frontend/src/components/ContextSwitcher.tsx create mode 100644 frontend/src/components/Finance/Dashboard/DashboardWidgets.tsx create mode 100644 frontend/src/components/Finance/Dashboard/ProfitLossSummaryChart.tsx create mode 100644 frontend/src/components/Finance/Dashboard/QuickActions.tsx create mode 100644 frontend/src/components/Finance/Dashboard/RecentTransactions.tsx create mode 100644 frontend/src/components/Finance/Dashboard/UpcomingDueDates.tsx create mode 100644 frontend/src/pages/transactions.tsx create mode 100644 frontend/src/pages/vat_declarations/[vat_declarationsId]/erca.tsx create mode 100644 frontend/src/stores/contextSlice.ts create mode 100644 frontend/src/stores/dashboardSlice.ts create mode 100644 frontend/src/stores/transactions/transactionsSlice.ts diff --git a/assets/pasted-20260228-105909-e9435147.png b/assets/pasted-20260228-105909-e9435147.png new file mode 100644 index 0000000000000000000000000000000000000000..18f1a4ed2e06d58cd1fd983c5e770c46a7a156c5 GIT binary patch literal 228084 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�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 wHG%oL-v 0) { + // Use a raw query with ON CONFLICT to avoid duplicate key errors if it runs multiple times + for (const rp of rolePermissions) { + await queryInterface.sequelize.query( + `INSERT INTO "rolesPermissionsPermissions" ("createdAt", "updatedAt", "roles_permissionsId", "permissionId") + VALUES ('${rp.createdAt.toISOString()}', '${rp.updatedAt.toISOString()}', '${rp.roles_permissionsId}', '${rp.permissionId}') + ON CONFLICT DO NOTHING` + ); + } + } + }, + + async down() { + // Optional: remove permissions if needed + } +}; \ No newline at end of file diff --git a/backend/src/index.js b/backend/src/index.js index 4bcb383..f211eb7 100644 --- a/backend/src/index.js +++ b/backend/src/index.js @@ -66,6 +66,9 @@ const declaration_submissionsRoutes = require('./routes/declaration_submissions' const messagesRoutes = require('./routes/messages'); const audit_eventsRoutes = require('./routes/audit_events'); +const transactionsRoutes = require('./routes/transactions'); +const dashboardRoutes = require('./routes/dashboard'); +const contextRoutes = require('./routes/context'); const getBaseUrl = (url) => { @@ -168,6 +171,9 @@ app.use('/api/declaration_submissions', passport.authenticate('jwt', {session: f app.use('/api/messages', passport.authenticate('jwt', {session: false}), messagesRoutes); app.use('/api/audit_events', passport.authenticate('jwt', {session: false}), audit_eventsRoutes); +app.use('/api/transactions', passport.authenticate('jwt', {session: false}), transactionsRoutes); +app.use('/api/dashboard', passport.authenticate('jwt', {session: false}), dashboardRoutes); +app.use('/api/context', contextRoutes); app.use( '/api/openai', diff --git a/backend/src/routes/context.js b/backend/src/routes/context.js new file mode 100644 index 0000000..cd04c0e --- /dev/null +++ b/backend/src/routes/context.js @@ -0,0 +1,50 @@ + +const express = require('express'); +const db = require('../db/models'); +const wrapAsync = require('../helpers').wrapAsync; +const passport = require('passport'); + +const router = express.Router(); + +router.get('/available', passport.authenticate('jwt', { session: false }), wrapAsync(async (req, res) => { + const currentUser = req.currentUser; + const organizationId = currentUser.organizationsId; + + if (!organizationId) { + return res.status(200).send({ merchants: [], firms: [] }); + } + + // Fetch Merchants in the organization or assigned to user + const merchants = await db.merchants.findAll({ + where: { + [db.Sequelize.Op.or]: [ + { organizationsId: organizationId }, + { assigned_accountantId: currentUser.id } + ] + } + }); + + // Fetch Firms in the organization + const firms = await db.firms.findAll({ + where: { + organizationsId: organizationId + } + }); + + res.status(200).send({ + merchants: merchants.map(m => ({ + id: m.id, + name: m.business_name, + type: 'merchant', + registration: m.tin_number + })), + firms: firms.map(f => ({ + id: f.id, + name: f.name, + type: 'firm', + registration: f.tax_id_number + })) + }); +})); + +module.exports = router; diff --git a/backend/src/routes/dashboard.js b/backend/src/routes/dashboard.js new file mode 100644 index 0000000..c83e484 --- /dev/null +++ b/backend/src/routes/dashboard.js @@ -0,0 +1,117 @@ +const express = require('express'); +const db = require('../db/models'); +const { wrapAsync } = require('../helpers'); +const passport = require('passport'); + +const router = express.Router(); + +router.get('/stats', passport.authenticate('jwt', { session: false }), wrapAsync(async (req, res) => { + const organizationsId = req.currentUser.organizationsId || req.currentUser.organizations?.id; + const { merchantId, firmId } = req.query; + + if (!organizationsId) { + return res.json({ + revenue: 0, + expenses: 0, + profit: 0, + vatPayable: 0, + recentTransactions: [] + }); + } + + let where = { organizationsId }; + if (merchantId) { + where.merchantId = merchantId; + } else if (firmId) { + // If firmId is provided, we might want to filter by merchants belonging to that firm + const merchantsInFirm = await db.merchants.findAll({ + where: { firmId }, + attributes: ['id'] + }); + const merchantIds = merchantsInFirm.map(m => m.id); + where.merchantId = { [db.Sequelize.Op.in]: merchantIds }; + } + + // Calculate Revenue (Sales Invoices) + const sales = await db.sales_invoices.findAll({ + where, + }); + const totalRevenue = sales.reduce((sum, si) => sum + parseFloat(si.total_amount || 0), 0); + + // Calculate Expenses (Purchase Invoices + Expenses table) + const purchases = await db.purchase_invoices.findAll({ + where, + }); + const totalPurchases = purchases.reduce((sum, pi) => sum + parseFloat(pi.total_amount || 0), 0); + + const expensesTable = await db.expenses.findAll({ + where, + }); + const totalExpenses = expensesTable.reduce((sum, e) => sum + parseFloat(e.amount || 0), 0); + + const combinedExpenses = totalPurchases + totalExpenses; + + // Recent Transactions (Limit 5) + const recentSales = await db.sales_invoices.findAll({ + where, + include: [{ model: db.customers, as: 'customer' }], + limit: 5, + order: [['invoice_date', 'DESC']] + }); + + const recentPurchases = await db.purchase_invoices.findAll({ + where, + include: [{ model: db.suppliers, as: 'supplier' }], + limit: 5, + order: [['invoice_date', 'DESC']] + }); + + const recentExpenses = await db.expenses.findAll({ + where, + limit: 5, + order: [['expense_date', 'DESC']] + }); + + let allRecent = [ + ...recentSales.map(si => ({ + date: si.invoice_date, + description: `Sale - ${si.customer?.name || 'Unknown'}`, + type: 'Income', + amount: si.total_amount, + isIncome: true + })), + ...recentPurchases.map(pi => ({ + date: pi.invoice_date, + description: `Purchase - ${pi.supplier?.name || 'Unknown'}`, + type: 'Expense', + amount: pi.total_amount, + isIncome: false + })), + ...recentExpenses.map(e => ({ + date: e.expense_date, + description: `Expense - ${e.description}`, + type: 'Expense', + amount: e.amount, + isIncome: false + })) + ]; + + allRecent.sort((a, b) => new Date(b.date) - new Date(a.date)); + const top5Recent = allRecent.slice(0, 5); + + // Profit + const profit = totalRevenue - combinedExpenses; + + // Simple VAT Payable (15% of Revenue - 15% of Purchases) + const vatPayable = (totalRevenue * 0.15) - (totalPurchases * 0.15); + + res.json({ + revenue: totalRevenue, + expenses: combinedExpenses, + profit: profit, + vatPayable: vatPayable, + recentTransactions: top5Recent + }); +})); + +module.exports = router; \ No newline at end of file diff --git a/backend/src/routes/transactions.js b/backend/src/routes/transactions.js new file mode 100644 index 0000000..a4cfc75 --- /dev/null +++ b/backend/src/routes/transactions.js @@ -0,0 +1,92 @@ +const express = require('express'); +const db = require('../db/models'); +const { wrapAsync } = require('../helpers'); +const { checkCrudPermissions } = require('../middlewares/check-permissions'); +const passport = require('passport'); + +const router = express.Router(); + +router.get('/', passport.authenticate('jwt', { session: false }), checkCrudPermissions('transactions'), wrapAsync(async (req, res) => { + const organizationsId = req.currentUser.organizationsId || req.currentUser.organizations?.id; + + if (!organizationsId) { + return res.json({ rows: [], count: 0 }); + } + + const { page = 0, limit = 10, sort = 'desc' } = req.query; + + const offset = parseInt(page) * parseInt(limit); + const limitInt = parseInt(limit); + + // Fetch from Sales Invoices + const salesInvoices = await db.sales_invoices.findAll({ + where: { organizationsId }, + include: [{ model: db.customers, as: 'customer' }], + }); + + // Fetch from Purchase Invoices + const purchaseInvoices = await db.purchase_invoices.findAll({ + where: { organizationsId }, + include: [{ model: db.suppliers, as: 'supplier' }], + }); + + // Fetch from Expenses + const expenses = await db.expenses.findAll({ + where: { organizationsId }, + }); + + // Combine and format + let transactions = [ + ...salesInvoices.map(si => ({ + id: `sale-${si.id}`, + originalId: si.id, + date: si.invoice_date, + description: `Sale - ${si.customer?.name || 'Unknown Customer'}`, + type: 'Income', + amount: si.total_amount, + isIncome: true, + status: si.status, + entity: 'sales_invoices' + })), + ...purchaseInvoices.map(pi => ({ + id: `purchase-${pi.id}`, + originalId: pi.id, + date: pi.invoice_date, + description: `Purchase - ${pi.supplier?.name || 'Unknown Supplier'}`, + type: 'Expense', + amount: pi.total_amount, + isIncome: false, + status: pi.status, + entity: 'purchase_invoices' + })), + ...expenses.map(e => ({ + id: `expense-${e.id}`, + originalId: e.id, + date: e.expense_date, + description: `Expense - ${e.description}`, + type: 'Expense', + amount: e.amount, + isIncome: false, + status: e.status, + entity: 'expenses' + })) + ]; + + // Sort + transactions.sort((a, b) => { + const dateA = new Date(a.date); + const dateB = new Date(b.date); + if (isNaN(dateA.getTime()) || isNaN(dateB.getTime())) return 0; + return sort === 'desc' ? dateB.getTime() - dateA.getTime() : dateA.getTime() - dateB.getTime(); + }); + + const count = transactions.length; + const paginatedTransactions = transactions.slice(offset, offset + limitInt); + + res.json({ + rows: paginatedTransactions, + count + }); +})); + +module.exports = router; diff --git a/backend/src/routes/vat_declarations.js b/backend/src/routes/vat_declarations.js index fc69745..89b9834 100644 --- a/backend/src/routes/vat_declarations.js +++ b/backend/src/routes/vat_declarations.js @@ -1,100 +1,14 @@ - const express = require('express'); - const Vat_declarationsService = require('../services/vat_declarations'); const Vat_declarationsDBApi = require('../db/api/vat_declarations'); const wrapAsync = require('../helpers').wrapAsync; - const config = require('../config'); - - const router = express.Router(); - const { parse } = require('json2csv'); - - -const { - checkCrudPermissions, -} = require('../middlewares/check-permissions'); +const { checkCrudPermissions } = require('../middlewares/check-permissions'); router.use(checkCrudPermissions('vat_declarations')); - -/** - * @swagger - * components: - * schemas: - * Vat_declarations: - * type: object - * properties: - - * notes: - * type: string - * default: notes - - - * total_sales_amount: - * type: integer - * format: int64 - * taxable_sales_amount: - * type: integer - * format: int64 - * output_vat_amount: - * type: integer - * format: int64 - * total_purchases_amount: - * type: integer - * format: int64 - * input_vat_amount: - * type: integer - * format: int64 - * vat_payable_amount: - * type: integer - * format: int64 - - * - */ - -/** - * @swagger - * tags: - * name: Vat_declarations - * description: The Vat_declarations managing API - */ - -/** -* @swagger -* /api/vat_declarations: -* post: -* security: -* - bearerAuth: [] -* tags: [Vat_declarations] -* summary: Add new item -* description: Add new item -* requestBody: -* required: true -* content: -* application/json: -* schema: -* properties: -* data: -* description: Data of the updated item -* type: object -* $ref: "#/components/schemas/Vat_declarations" -* responses: -* 200: -* description: The item was successfully added -* content: -* application/json: -* schema: -* $ref: "#/components/schemas/Vat_declarations" -* 401: -* $ref: "#/components/responses/UnauthorizedError" -* 405: -* description: Invalid input data -* 500: -* description: Some server error -*/ router.post('/', wrapAsync(async (req, res) => { const referer = req.headers.referer || `${req.protocol}://${req.hostname}${req.originalUrl}`; const link = new URL(referer); @@ -103,41 +17,6 @@ router.post('/', wrapAsync(async (req, res) => { res.status(200).send(payload); })); -/** - * @swagger - * /api/budgets/bulk-import: - * post: - * security: - * - bearerAuth: [] - * tags: [Vat_declarations] - * summary: Bulk import items - * description: Bulk import items - * requestBody: - * required: true - * content: - * application/json: - * schema: - * properties: - * data: - * description: Data of the updated items - * type: array - * items: - * $ref: "#/components/schemas/Vat_declarations" - * responses: - * 200: - * description: The items were successfully imported - * content: - * application/json: - * schema: - * $ref: "#/components/schemas/Vat_declarations" - * 401: - * $ref: "#/components/responses/UnauthorizedError" - * 405: - * description: Invalid input data - * 500: - * description: Some server error - * - */ router.post('/bulk-import', wrapAsync(async (req, res) => { const referer = req.headers.referer || `${req.protocol}://${req.hostname}${req.originalUrl}`; const link = new URL(referer); @@ -146,314 +25,84 @@ router.post('/bulk-import', wrapAsync(async (req, res) => { res.status(200).send(payload); })); -/** - * @swagger - * /api/vat_declarations/{id}: - * put: - * security: - * - bearerAuth: [] - * tags: [Vat_declarations] - * summary: Update the data of the selected item - * description: Update the data of the selected item - * parameters: - * - in: path - * name: id - * description: Item ID to update - * required: true - * schema: - * type: string - * requestBody: - * description: Set new item data - * required: true - * content: - * application/json: - * schema: - * properties: - * id: - * description: ID of the updated item - * type: string - * data: - * description: Data of the updated item - * type: object - * $ref: "#/components/schemas/Vat_declarations" - * required: - * - id - * responses: - * 200: - * description: The item data was successfully updated - * content: - * application/json: - * schema: - * $ref: "#/components/schemas/Vat_declarations" - * 400: - * description: Invalid ID supplied - * 401: - * $ref: "#/components/responses/UnauthorizedError" - * 404: - * description: Item not found - * 500: - * description: Some server error - */ router.put('/:id', wrapAsync(async (req, res) => { await Vat_declarationsService.update(req.body.data, req.body.id, req.currentUser); const payload = true; res.status(200).send(payload); })); -/** - * @swagger - * /api/vat_declarations/{id}: - * delete: - * security: - * - bearerAuth: [] - * tags: [Vat_declarations] - * summary: Delete the selected item - * description: Delete the selected item - * parameters: - * - in: path - * name: id - * description: Item ID to delete - * required: true - * schema: - * type: string - * responses: - * 200: - * description: The item was successfully deleted - * content: - * application/json: - * schema: - * $ref: "#/components/schemas/Vat_declarations" - * 400: - * description: Invalid ID supplied - * 401: - * $ref: "#/components/responses/UnauthorizedError" - * 404: - * description: Item not found - * 500: - * description: Some server error - */ router.delete('/:id', wrapAsync(async (req, res) => { await Vat_declarationsService.remove(req.params.id, req.currentUser); const payload = true; res.status(200).send(payload); })); -/** - * @swagger - * /api/vat_declarations/deleteByIds: - * post: - * security: - * - bearerAuth: [] - * tags: [Vat_declarations] - * summary: Delete the selected item list - * description: Delete the selected item list - * requestBody: - * required: true - * content: - * application/json: - * schema: - * properties: - * ids: - * description: IDs of the updated items - * type: array - * responses: - * 200: - * description: The items was successfully deleted - * content: - * application/json: - * schema: - * $ref: "#/components/schemas/Vat_declarations" - * 401: - * $ref: "#/components/responses/UnauthorizedError" - * 404: - * description: Items not found - * 500: - * description: Some server error - */ router.post('/deleteByIds', wrapAsync(async (req, res) => { await Vat_declarationsService.deleteByIds(req.body.data, req.currentUser); const payload = true; res.status(200).send(payload); })); -/** - * @swagger - * /api/vat_declarations: - * get: - * security: - * - bearerAuth: [] - * tags: [Vat_declarations] - * summary: Get all vat_declarations - * description: Get all vat_declarations - * responses: - * 200: - * description: Vat_declarations list successfully received - * content: - * application/json: - * schema: - * type: array - * items: - * $ref: "#/components/schemas/Vat_declarations" - * 401: - * $ref: "#/components/responses/UnauthorizedError" - * 404: - * description: Data not found - * 500: - * description: Some server error -*/ router.get('/', wrapAsync(async (req, res) => { const filetype = req.query.filetype - const globalAccess = req.currentUser.app_role.globalAccess; - const currentUser = req.currentUser; const payload = await Vat_declarationsDBApi.findAll( req.query, globalAccess, { currentUser } ); if (filetype && filetype === 'csv') { - const fields = ['id','notes', - - 'total_sales_amount','taxable_sales_amount','output_vat_amount','total_purchases_amount','input_vat_amount','vat_payable_amount', - 'generated_at','reviewed_at', - ]; + const fields = ['id','notes', 'total_sales_amount','taxable_sales_amount','output_vat_amount','total_purchases_amount','input_vat_amount','vat_payable_amount', 'generated_at','reviewed_at']; const opts = { fields }; try { const csv = parse(payload.rows, opts); res.status(200).attachment(csv); res.send(csv) - } catch (err) { console.error(err); } } else { res.status(200).send(payload); } - })); -/** - * @swagger - * /api/vat_declarations/count: - * get: - * security: - * - bearerAuth: [] - * tags: [Vat_declarations] - * summary: Count all vat_declarations - * description: Count all vat_declarations - * responses: - * 200: - * description: Vat_declarations count successfully received - * content: - * application/json: - * schema: - * type: array - * items: - * $ref: "#/components/schemas/Vat_declarations" - * 401: - * $ref: "#/components/responses/UnauthorizedError" - * 404: - * description: Data not found - * 500: - * description: Some server error - */ router.get('/count', wrapAsync(async (req, res) => { - const globalAccess = req.currentUser.app_role.globalAccess; - const currentUser = req.currentUser; const payload = await Vat_declarationsDBApi.findAll( req.query, globalAccess, { countOnly: true, currentUser } ); - res.status(200).send(payload); })); -/** - * @swagger - * /api/vat_declarations/autocomplete: - * get: - * security: - * - bearerAuth: [] - * tags: [Vat_declarations] - * summary: Find all vat_declarations that match search criteria - * description: Find all vat_declarations that match search criteria - * responses: - * 200: - * description: Vat_declarations list successfully received - * content: - * application/json: - * schema: - * type: array - * items: - * $ref: "#/components/schemas/Vat_declarations" - * 401: - * $ref: "#/components/responses/UnauthorizedError" - * 404: - * description: Data not found - * 500: - * description: Some server error - */ router.get('/autocomplete', async (req, res) => { - const globalAccess = req.currentUser.app_role.globalAccess; - const organizationId = req.currentUser.organization?.id - - const payload = await Vat_declarationsDBApi.findAllAutocomplete( req.query.query, req.query.limit, req.query.offset, globalAccess, organizationId, ); - res.status(200).send(payload); }); -/** - * @swagger - * /api/vat_declarations/{id}: - * get: - * security: - * - bearerAuth: [] - * tags: [Vat_declarations] - * summary: Get selected item - * description: Get selected item - * parameters: - * - in: path - * name: id - * description: ID of item to get - * required: true - * schema: - * type: string - * responses: - * 200: - * description: Selected item successfully received - * content: - * application/json: - * schema: - * $ref: "#/components/schemas/Vat_declarations" - * 400: - * description: Invalid ID supplied - * 401: - * $ref: "#/components/responses/UnauthorizedError" - * 404: - * description: Item not found - * 500: - * description: Some server error - */ +router.get('/:id/erca-data', wrapAsync(async (req, res) => { + const payload = await Vat_declarationsService.getErcaData( + req.params.id, + req.currentUser + ); + res.status(200).send(payload); +})); + router.get('/:id', wrapAsync(async (req, res) => { const payload = await Vat_declarationsDBApi.findBy( { id: req.params.id }, ); - - - res.status(200).send(payload); })); router.use('/', require('../helpers').commonErrorHandler); -module.exports = router; +module.exports = router; \ No newline at end of file diff --git a/backend/src/services/vat_declarations.js b/backend/src/services/vat_declarations.js index c1f0a9b..d0a4a10 100644 --- a/backend/src/services/vat_declarations.js +++ b/backend/src/services/vat_declarations.js @@ -132,7 +132,110 @@ module.exports = class Vat_declarationsService { } } - -}; + static async getErcaData(id, currentUser) { + const vatDeclaration = await db.vat_declarations.findByPk(id, { + include: [ + { model: db.tax_periods, as: 'tax_period' }, + { model: db.merchants, as: 'merchant' } + ] + }); + if (!vatDeclaration) { + throw new ValidationError('vat_declarationsNotFound'); + } + const { tax_period, merchant, merchantId } = vatDeclaration; + const { start_date, end_date } = tax_period; + + const salesLines = await db.sales_invoice_lines.findAll({ + include: [ + { + model: db.sales_invoices, + as: 'sales_invoice', + where: { + merchantId, + invoice_date: { + [db.Sequelize.Op.between]: [start_date, end_date] + } + } + } + ] + }); + + const purchaseLines = await db.purchase_invoice_lines.findAll({ + include: [ + { + model: db.purchase_invoices, + as: 'purchase_invoice', + where: { + merchantId, + invoice_date: { + [db.Sequelize.Op.between]: [start_date, end_date] + } + } + } + ] + }); + + const ercaData = { + merchant: merchant, + tax_period: tax_period, + sectionA: { + line5: { total: 0, vat: 0 }, // Taxable Sales + line15: { total: 0 }, // Zero-rated Sales + line20: { total: 0 }, // Tax-exempt Sales + line25: { total: 0 }, // Reverse Taxation + line35: { total: 0, vat: 0 }, // Debit note adjustment + line45: { total: 0, vat: 0 }, // Credit note adjustment + line55: { total: 0 }, // Total Sales + line60: { vat: 0 } // Total Output VAT + }, + sectionB: { + line65: { total: 0, vat: 0 }, // Local Capital Purchase + line75: { total: 0, vat: 0 }, // Imported Capital Purchase + line85: { total: 0 }, // Capital Purchase no VAT + line90: { total: 0, vat: 0 } // Total Capital Purchases + } + }; + + salesLines.forEach(line => { + const amount = parseFloat(line.line_subtotal) || 0; + const vat = parseFloat(line.vat_amount) || 0; + + if (line.vat_treatment === 'standard_15') { + ercaData.sectionA.line5.total += amount; + ercaData.sectionA.line5.vat += vat; + } else if (line.vat_treatment === 'zero_rated') { + ercaData.sectionA.line15.total += amount; + } else if (line.vat_treatment === 'exempt') { + ercaData.sectionA.line20.total += amount; + } + }); + + // Formulas for Section A + ercaData.sectionA.line55.total = + ercaData.sectionA.line5.total + + ercaData.sectionA.line15.total + + ercaData.sectionA.line20.total + + ercaData.sectionA.line25.total + + ercaData.sectionA.line35.total - + ercaData.sectionA.line45.total; + + ercaData.sectionA.line60.vat = + ercaData.sectionA.line5.vat + + ercaData.sectionA.line35.vat - + ercaData.sectionA.line45.vat; + + // Formulas for Section B (Total) + ercaData.sectionB.line90.total = + ercaData.sectionB.line65.total + + ercaData.sectionB.line75.total + + ercaData.sectionB.line85.total; + + ercaData.sectionB.line90.vat = + ercaData.sectionB.line65.vat + + ercaData.sectionB.line75.vat; + + return ercaData; + } +}; \ No newline at end of file diff --git a/frontend/src/components/ContextSwitcher.tsx b/frontend/src/components/ContextSwitcher.tsx new file mode 100644 index 0000000..62691f8 --- /dev/null +++ b/frontend/src/components/ContextSwitcher.tsx @@ -0,0 +1,126 @@ + +import React, { useState, useRef, useEffect } from 'react'; +import { mdiOfficeBuilding, mdiStore, mdiChevronDown, mdiChevronUp, mdiAccountGroup } from '@mdi/js'; +import BaseIcon from './BaseIcon'; +import { useAppDispatch, useAppSelector } from '../stores/hooks'; +import { fetchAvailableContexts, setActiveContext } from '../stores/contextSlice'; + +export default function ContextSwitcher() { + const [isOpen, setIsOpen] = useState(false); + const dropdownRef = useRef(null); + const dispatch = useAppDispatch(); + const { activeContext, availableMerchants, availableFirms } = useAppSelector((state) => state.context); + const { currentUser } = useAppSelector((state) => state.auth); + + useEffect(() => { + if (currentUser) { + dispatch(fetchAvailableContexts()); + } + }, [dispatch, currentUser]); + + useEffect(() => { + function handleClickOutside(event: MouseEvent) { + if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) { + setIsOpen(false); + } + } + document.addEventListener('mousedown', handleClickOutside); + return () => document.removeEventListener('mousedown', handleClickOutside); + }, []); + + if (!activeContext && availableMerchants.length === 0 && availableFirms.length === 0) { + return null; + } + + const handleSelect = (entity: any) => { + dispatch(setActiveContext(entity)); + setIsOpen(false); + }; + + return ( +
+ + + {isOpen && ( +
+
+ + {availableMerchants.length > 0 && ( +
+
+ Merchants +
+ {availableMerchants.map((merchant) => ( + + ))} +
+ )} + + {availableFirms.length > 0 && ( +
+
+ Firms +
+ {availableFirms.map((firm) => ( + + ))} +
+ )} +
+
+ )} +
+ ); +} diff --git a/frontend/src/components/Finance/Dashboard/DashboardWidgets.tsx b/frontend/src/components/Finance/Dashboard/DashboardWidgets.tsx new file mode 100644 index 0000000..923a970 --- /dev/null +++ b/frontend/src/components/Finance/Dashboard/DashboardWidgets.tsx @@ -0,0 +1,115 @@ +import React from 'react'; +import { mdiTrendingUp, mdiTrendingDown, mdiCurrencyUsd, mdiCalculator } from '@mdi/js'; +import BaseIcon from '../../BaseIcon'; +import { useAppSelector } from '../../../stores/hooks'; + +const DashboardWidgets = () => { + const { stats, loading } = useAppSelector((state) => state.dashboard); + + const widgets = [ + { + label: 'Total Revenue', + value: `ETB ${Number(stats?.revenue || 0).toLocaleString()}`, + trend: '+12.5%', + trendType: 'up', + labelColor: 'text-emerald-600', + bgColor: 'bg-emerald-50', + icon: mdiTrendingUp, + iconBg: 'bg-emerald-500', + badge: 'Revenue' + }, + { + label: 'Total Expenses', + value: `ETB ${Number(stats?.expenses || 0).toLocaleString()}`, + trend: '+5.2%', + trendType: 'down', // Expenses up is usually marked as red/down in financial context or just trend up + labelColor: 'text-rose-600', + bgColor: 'bg-rose-50', + icon: mdiTrendingDown, + iconBg: 'bg-rose-500', + badge: 'Expenses' + }, + { + label: 'Net Profit', + value: `ETB ${Number(stats?.profit || 0).toLocaleString()}`, + trend: stats?.profit >= 0 ? 'Positive' : 'Negative', + trendType: stats?.profit >= 0 ? 'up' : 'down', + labelColor: 'text-indigo-600', + bgColor: 'bg-indigo-50', + icon: mdiCurrencyUsd, + iconBg: 'bg-indigo-500', + badge: 'Profit' + }, + { + label: 'VAT Payable', + value: `ETB ${Number(stats?.vatPayable || 0).toLocaleString()}`, + trend: 'Current period', + trendType: 'neutral', + labelColor: 'text-amber-600', + bgColor: 'bg-amber-50', + icon: mdiCalculator, + iconBg: 'bg-amber-500', + badge: 'Tax' + } + ]; + + if (loading && !stats) { + return ( +
+ {Array.from({ length: 4 }).map((_, i) => ( +
+
+
+
+
+
+
+
+ ))} +
+ ); + } + + return ( +
+ {widgets.map((widget, index) => ( +
+
+
+ +
+ + {widget.badge} + +
+ +
+

{widget.label}

+

{widget.value}

+ +
+ {widget.trendType === 'up' && ( + + )} + {widget.trendType === 'down' && ( + + )} + + {widget.trend} + + {widget.trendType !== 'neutral' && ( + vs last period + )} +
+
+
+ ))} +
+ ); +}; + +export default DashboardWidgets; \ No newline at end of file diff --git a/frontend/src/components/Finance/Dashboard/ProfitLossSummaryChart.tsx b/frontend/src/components/Finance/Dashboard/ProfitLossSummaryChart.tsx new file mode 100644 index 0000000..f6b0773 --- /dev/null +++ b/frontend/src/components/Finance/Dashboard/ProfitLossSummaryChart.tsx @@ -0,0 +1,73 @@ +import React from 'react'; +import { mdiChartBar, mdiChevronRight } from '@mdi/js'; +import BaseIcon from '../../BaseIcon'; +import Link from 'next/link'; +import { useAppSelector } from '../../../stores/hooks'; + +const ProfitLossSummaryChart = () => { + const { stats, loading } = useAppSelector((state) => state.dashboard); + + const revenue = stats?.revenue || 0; + const expenses = stats?.expenses || 0; + const profit = stats?.profit || 0; + + // Calculate percentages for progress bars (simplified) + const max = Math.max(revenue, expenses) || 1; + const revenuePercent = (revenue / max) * 100; + const expensesPercent = (expenses / max) * 100; + + return ( +
+
+ +
+ +
+

+
+ +
+ P&L Summary +

+
+ +
+
+ Revenue + ETB {Number(revenue).toLocaleString()} +
+ +
+
+
+ +
+ Expenses + ETB {Number(expenses).toLocaleString()} +
+ +
+
+
+ +
+ Net Profit +
+ ETB {Number(profit).toLocaleString()} +
+
+
+ +
+ + + +
+
+ ); +}; + +export default ProfitLossSummaryChart; \ No newline at end of file diff --git a/frontend/src/components/Finance/Dashboard/QuickActions.tsx b/frontend/src/components/Finance/Dashboard/QuickActions.tsx new file mode 100644 index 0000000..5dad061 --- /dev/null +++ b/frontend/src/components/Finance/Dashboard/QuickActions.tsx @@ -0,0 +1,67 @@ +import React from 'react'; +import { mdiCurrencyUsd, mdiCartOutline, mdiFileCheckOutline, mdiPlus } from '@mdi/js'; +import BaseIcon from '../../BaseIcon'; +import Link from 'next/link'; + +const QuickActions = () => { + const actions = [ + { + title: 'New Sale', + description: 'Record income', + icon: mdiCurrencyUsd, + href: '/sales_invoices/sales_invoices-new', + bgColor: 'bg-indigo-50', + iconBg: 'bg-indigo-600', + borderColor: 'border-indigo-100', + }, + { + title: 'New Purchase', + description: 'Record expense', + icon: mdiCartOutline, + href: '/purchase_invoices/purchase_invoices-new', + bgColor: 'bg-rose-50', + iconBg: 'bg-rose-600', + borderColor: 'border-rose-100', + }, + { + title: 'Tax Compliance', + description: 'VAT & WHT Records', + icon: mdiFileCheckOutline, + href: '/vat_declarations/vat_declarations-list', + bgColor: 'bg-emerald-50', + iconBg: 'bg-emerald-600', + borderColor: 'border-emerald-100', + }, + ]; + + return ( +
+
+

Quick Actions

+
+ +
+ {actions.map((action, index) => ( + +
+
+ +
+ +
+

{action.title}

+

{action.description}

+
+ +
+ +
+
+ + ))} +
+
+ ); +}; + +export default QuickActions; diff --git a/frontend/src/components/Finance/Dashboard/RecentTransactions.tsx b/frontend/src/components/Finance/Dashboard/RecentTransactions.tsx new file mode 100644 index 0000000..e0feee7 --- /dev/null +++ b/frontend/src/components/Finance/Dashboard/RecentTransactions.tsx @@ -0,0 +1,82 @@ +import React from 'react'; +import { mdiArrowTopRight, mdiArrowBottomLeft, mdiChevronRight } from '@mdi/js'; +import BaseIcon from '../../BaseIcon'; +import Link from 'next/link'; +import { useAppSelector } from '../../../stores/hooks'; + +const RecentTransactions = () => { + const { stats, loading } = useAppSelector((state) => state.dashboard); + + const transactions = stats?.recentTransactions || []; + + return ( +
+
+

Recent Transactions

+ + View All + + +
+ +
+ + + + + + + + + + + {loading ? ( + Array.from({ length: 5 }).map((_, i) => ( + + + + + + + )) + ) : transactions.length > 0 ? ( + transactions.map((transaction, index) => ( + + + + + + + )) + ) : ( + + + + )} + +
DateDescriptionTypeAmount
+ {new Date(transaction.date).toLocaleDateString()} + + {transaction.description} + +
+ + {transaction.type} +
+
+ {transaction.isIncome ? '+' : '-'}{Number(transaction.amount).toLocaleString()} +
+ No recent transactions +
+
+
+ ); +}; + +export default RecentTransactions; \ No newline at end of file diff --git a/frontend/src/components/Finance/Dashboard/UpcomingDueDates.tsx b/frontend/src/components/Finance/Dashboard/UpcomingDueDates.tsx new file mode 100644 index 0000000..d7c0e63 --- /dev/null +++ b/frontend/src/components/Finance/Dashboard/UpcomingDueDates.tsx @@ -0,0 +1,39 @@ +import React from 'react'; +import { mdiCalendarCheckOutline, mdiCheckDecagram } from '@mdi/js'; +import BaseIcon from '../../BaseIcon'; + +const UpcomingDueDates = () => { + return ( +
+
+

+ + Upcoming Due Dates +

+
+ +
+
+ +
+ +

All caught up!

+

+ No pending invoices or tax filings require your attention today. +

+
+ +
+
+ Last sync: Today, 10:59 AM + + + Syncing Live + +
+
+
+ ); +}; + +export default UpcomingDueDates; diff --git a/frontend/src/components/NavBar.tsx b/frontend/src/components/NavBar.tsx index c270ae0..4ab1006 100644 --- a/frontend/src/components/NavBar.tsx +++ b/frontend/src/components/NavBar.tsx @@ -4,6 +4,7 @@ import { containerMaxW } from '../config' import BaseIcon from './BaseIcon' import NavBarItemPlain from './NavBarItemPlain' import NavBarMenuList from './NavBarMenuList' +import ContextSwitcher from './ContextSwitcher' import { MenuNavBarItem } from '../interfaces' import { useAppSelector } from '../stores/hooks'; @@ -17,6 +18,7 @@ export default function NavBar({ menu, className = '', children }: Props) { const [isMenuNavBarActive, setIsMenuNavBarActive] = useState(false) const [isScrolled, setIsScrolled] = useState(false); const bgColor = useAppSelector((state) => state.style.bgLayoutColor); + const { currentUser } = useAppSelector((state) => state.auth); useEffect(() => { const handleScroll = () => { @@ -35,23 +37,43 @@ export default function NavBar({ menu, className = '', children }: Props) { return ( ) -} +} \ No newline at end of file diff --git a/frontend/src/components/NavBarItem.tsx b/frontend/src/components/NavBarItem.tsx index 4ced3eb..2641047 100644 --- a/frontend/src/components/NavBarItem.tsx +++ b/frontend/src/components/NavBarItem.tsx @@ -1,6 +1,6 @@ import React, {useEffect, useRef, useState} from 'react' import Link from 'next/link' -import { mdiChevronUp, mdiChevronDown } from '@mdi/js' +import { mdiChevronUp, mdiChevronDown, mdiBellOutline, mdiStoreOutline } from '@mdi/js' import BaseDivider from './BaseDivider' import BaseIcon from './BaseIcon' import UserAvatarCurrentUser from './UserAvatarCurrentUser' @@ -30,6 +30,8 @@ export default function NavBarItem({ item }: Props) { const currentUser = useAppSelector((state) => state.auth.currentUser); const userName = `${currentUser?.firstName ? currentUser?.firstName : ""} ${currentUser?.lastName ? currentUser?.lastName : ""}`; + const merchantName = currentUser?.organization?.name || 'HD Stationary and Computer Accessor'; + const roleName = currentUser?.app_role?.name || 'Merchant'; const [isDropdownActive, setIsDropdownActive] = useState(false) @@ -37,9 +39,11 @@ export default function NavBarItem({ item }: Props) { return () => setIsDropdownActive(false); }, [router.pathname]); + const isActive = item.href && (router.pathname === item.href || (item.href !== '/' && router.pathname.startsWith(item.href))); + const componentClass = [ - 'block lg:flex items-center relative cursor-pointer', - isDropdownActive + 'block lg:flex items-center relative cursor-pointer transition-colors', + isDropdownActive || isActive ? `${navBarItemLabelActiveColorStyle} dark:text-slate-400` : `${navBarItemLabelStyle} dark:text-white dark:hover:text-slate-400 ${navBarItemLabelHoverStyle}`, item.menu ? 'lg:py-2 lg:px-3' : 'py-2 px-3', @@ -74,6 +78,56 @@ export default function NavBarItem({ item }: Props) { } }; + if (item.isCurrentUser) { + return ( +
+ {/* Merchant Switcher Placeholder */} +
+
+ +
+
+ Merchant + {merchantName} +
+ +
+ + {/* Notifications */} +
+ + +
+ + {/* User Profile */} +
+
+ {userName} + {roleName} +
+
+ +
+ GU +
+
+ + {item.menu && ( +
+ setIsDropdownActive(false)} excludedElements={[excludedRef]}> + + +
+ )} +
+
+ ); + } + const NavBarItemComponentContents = ( <>
- {item.icon && } + {item.icon && } {itemLabel} - {item.isCurrentUser && } {item.menu && ( )}
- {item.menu && ( + {item.menu && !item.isCurrentUser && (
state.auth) const bgColor = useAppSelector((state) => state.style.bgLayoutColor); + + // High-fidelity dashboard logic + const isMerchant = currentUser?.app_role?.name === 'MerchantUser'; + const showSidebar = !isMerchant; + let localToken if (typeof window !== 'undefined') { // Perform localStorage action @@ -85,43 +90,56 @@ export default function LayoutAuthenticated({ }, [router.events, dispatch]) - const layoutAsidePadding = 'xl:pl-64' + const layoutAsidePadding = showSidebar ? 'xl:pl-64' : '' return (
- setIsAsideMobileExpanded(!isAsideMobileExpanded)} - > - - - setIsAsideLgActive(true)} - > - - + {showSidebar && ( + <> + setIsAsideMobileExpanded(!isAsideMobileExpanded)} + > + + + setIsAsideLgActive(true)} + > + + + + )} + - + {/* If not merchant, show search. For merchant, we might have specific nav items already in menuNavBar */} + {!isMerchant && } - setIsAsideLgActive(false)} - /> - {children} - Hand-crafted & Made with ❤️ + + {showSidebar && ( + setIsAsideLgActive(false)} + /> + )} + +
+ {children} +
+ + SmartHisab © 2026 - Hand-crafted with ❤️
) diff --git a/frontend/src/menuAside.ts b/frontend/src/menuAside.ts index 65c2735..20d0a29 100644 --- a/frontend/src/menuAside.ts +++ b/frontend/src/menuAside.ts @@ -17,6 +17,12 @@ const menuAside: MenuAsideItem[] = [ label: 'Register Entry', permissions: 'CREATE_SALES_INVOICES' }, + { + href: '/transactions', + label: 'All Transactions', + icon: icon.mdiViewList, + permissions: 'READ_TRANSACTIONS' + }, { label: 'Registers / Lists', icon: icon.mdiFormatListBulleted, @@ -242,4 +248,4 @@ const menuAside: MenuAsideItem[] = [ } ] -export default menuAside \ No newline at end of file +export default menuAside diff --git a/frontend/src/menuNavBar.ts b/frontend/src/menuNavBar.ts index a5dd956..e0b5129 100644 --- a/frontend/src/menuNavBar.ts +++ b/frontend/src/menuNavBar.ts @@ -10,10 +10,28 @@ import { mdiThemeLightDark, mdiGithub, mdiVuejs, + mdiViewDashboardOutline, + mdiFileDocumentOutline, + mdiChartBar, } from '@mdi/js' import { MenuNavBarItem } from './interfaces' const menuNavBar: MenuNavBarItem[] = [ + { + icon: mdiViewDashboardOutline, + label: 'Dashboard', + href: '/dashboard', + }, + { + icon: mdiFileDocumentOutline, + label: 'Transactions', + href: '/transactions', + }, + { + icon: mdiChartBar, + label: 'Reports', + href: '/vat_declarations/vat_declarations-list', + }, { isCurrentUser: true, menu: [ @@ -50,4 +68,4 @@ export const webPagesNavBar = [ ]; -export default menuNavBar +export default menuNavBar \ No newline at end of file diff --git a/frontend/src/pages/_app.tsx b/frontend/src/pages/_app.tsx index 7828f19..03846a7 100644 --- a/frontend/src/pages/_app.tsx +++ b/frontend/src/pages/_app.tsx @@ -24,6 +24,39 @@ axios.defaults.baseURL = process.env.NEXT_PUBLIC_BACK_API axios.defaults.headers.common['Content-Type'] = 'application/json'; +// Axios Interceptor for Auth and Context +axios.interceptors.request.use( + config => { + // Auth Token + const token = typeof window !== 'undefined' ? localStorage.getItem('token') : null; + if (token) { + config.headers.Authorization = `Bearer ${token}`; + } else { + delete config.headers.Authorization; + } + + // Context Switching (Merchant/Firm) + const activeContextStr = typeof window !== 'undefined' ? localStorage.getItem('activeContext') : null; + if (activeContextStr) { + try { + const activeContext = JSON.parse(activeContextStr); + if (activeContext.type === 'merchant') { + config.params = { ...config.params, merchant: activeContext.id }; + } else if (activeContext.type === 'firm') { + config.params = { ...config.params, firm: activeContext.id }; + } + } catch (e) { + console.error('Failed to parse activeContext from localStorage', e); + } + } + + return config; + }, + error => { + return Promise.reject(error); + } +); + export type NextPageWithLayout

, IP = P> = NextPage & { getLayout?: (page: ReactElement) => ReactNode } @@ -40,23 +73,6 @@ function MyApp({ Component, pageProps }: AppPropsWithLayout) { const [stepName, setStepName] = React.useState(''); const [steps, setSteps] = React.useState([]); - axios.interceptors.request.use( - config => { - const token = localStorage.getItem('token'); - - if (token) { - config.headers.Authorization = `Bearer ${token}`; - } else { - delete config.headers.Authorization; - } - - return config; - }, - error => { - return Promise.reject(error); - } - ); - // TODO: Remove this code in future releases React.useEffect(() => { const allowedOrigin = (() => { @@ -198,4 +214,4 @@ function MyApp({ Component, pageProps }: AppPropsWithLayout) { ) } -export default appWithTranslation(MyApp); +export default appWithTranslation(MyApp); \ No newline at end of file diff --git a/frontend/src/pages/dashboard.tsx b/frontend/src/pages/dashboard.tsx index f5c0c53..17b3aee 100644 --- a/frontend/src/pages/dashboard.tsx +++ b/frontend/src/pages/dashboard.tsx @@ -1,392 +1,95 @@ import * as icon from '@mdi/js'; import Head from 'next/head' -import React, { useState } from 'react' -import axios from 'axios'; +import React, { useEffect, useState } from 'react' import type { ReactElement } from 'react' import LayoutAuthenticated from '../layouts/Authenticated' import SectionMain from '../components/SectionMain' -import SectionTitleLineWithButton from '../components/SectionTitleLineWithButton' import BaseIcon from "../components/BaseIcon"; import BaseButton from "../components/BaseButton"; -import CardBox from "../components/CardBox"; -import CardBoxModal from "../components/CardBoxModal"; -import FormField from "../components/FormField"; -import FormFilePicker from "../components/FormFilePicker"; import { getPageTitle } from '../config' -import Link from "next/link"; - -import { hasPermission } from "../helpers/userPermissions"; -import { fetchWidgets } from '../stores/roles/rolesSlice'; -import { WidgetCreator } from '../components/WidgetCreator/WidgetCreator'; -import { SmartWidget } from '../components/SmartWidget/SmartWidget'; import { useAppDispatch, useAppSelector } from '../stores/hooks'; +import DashboardWidgets from '../components/Finance/Dashboard/DashboardWidgets'; +import QuickActions from '../components/Finance/Dashboard/QuickActions'; +import RecentTransactions from '../components/Finance/Dashboard/RecentTransactions'; +import UpcomingDueDates from '../components/Finance/Dashboard/UpcomingDueDates'; +import ProfitLossSummaryChart from '../components/Finance/Dashboard/ProfitLossSummaryChart'; +import { fetchDashboardStats } from '../stores/dashboardSlice'; const Dashboard = () => { const dispatch = useAppDispatch(); - const iconsColor = useAppSelector((state) => state.style.iconsColor); - const corners = useAppSelector((state) => state.style.corners); - const cardsStyle = useAppSelector((state) => state.style.cardsStyle); - - const loadingMessage = 'Loading...'; - - const [users, setUsers] = React.useState(loadingMessage); - const [roles, setRoles] = React.useState(loadingMessage); - const [permissions, setPermissions] = React.useState(loadingMessage); - const [organizations, setOrganizations] = React.useState(loadingMessage); - const [firms, setFirms] = React.useState(loadingMessage); - const [merchants, setMerchants] = React.useState(loadingMessage); - const [customers, setCustomers] = React.useState(loadingMessage); - const [suppliers, setSuppliers] = React.useState(loadingMessage); - const [products, setProducts] = React.useState(loadingMessage); - const [receipts, setReceipts] = React.useState(loadingMessage); - const [ocr_extractions, setOcr_extractions] = React.useState(loadingMessage); - const [sales_invoices, setSales_invoices] = React.useState(loadingMessage); - const [sales_invoice_lines, setSales_invoice_lines] = React.useState(loadingMessage); - const [purchase_invoices, setPurchase_invoices] = React.useState(loadingMessage); - const [purchase_invoice_lines, setPurchase_invoice_lines] = React.useState(loadingMessage); - const [expenses, setExpenses] = React.useState(loadingMessage); - const [tax_periods, setTax_periods] = React.useState(loadingMessage); - const [vat_declarations, setVat_declarations] = React.useState(loadingMessage); - const [tot_declarations, setTot_declarations] = React.useState(loadingMessage); - const [declaration_submissions, setDeclaration_submissions] = React.useState(loadingMessage); - const [messages, setMessages] = React.useState(loadingMessage); - const [audit_events, setAudit_events] = React.useState(loadingMessage); - - const [widgetsRole, setWidgetsRole] = React.useState({ - role: { value: '', label: '' }, - }); const { currentUser } = useAppSelector((state) => state.auth); - const { isFetchingQuery } = useAppSelector((state) => state.openAi); - const { rolesWidgets, loading } = useAppSelector((state) => state.roles); - - const [isOcrModalActive, setIsOcrModalActive] = useState(false); - const [ocrType, setOcrType] = useState<'sale' | 'purchase'>('sale'); - const [isProcessing, setIsProcessing] = useState(false); - const [ocrResult, setOcrResult] = useState(null); + const { activeContext } = useAppSelector((state) => state.context); const isMerchant = currentUser?.app_role?.name === 'MerchantUser'; - const organizationName = currentUser?.organization?.name || 'SmartHisab'; + const merchantName = activeContext?.name || currentUser?.organization?.name || 'SmartHisab User'; - async function loadData() { - const entities = ['users','roles','permissions','organizations','firms','merchants','customers','suppliers','products','receipts','ocr_extractions','sales_invoices','sales_invoice_lines','purchase_invoices','purchase_invoice_lines','expenses','tax_periods','vat_declarations','tot_declarations','declaration_submissions','messages','audit_events',]; - const fns = [setUsers,setRoles,setPermissions,setOrganizations,setFirms,setMerchants,setCustomers,setSuppliers,setProducts,setReceipts,setOcr_extractions,setSales_invoices,setSales_invoice_lines,setPurchase_invoices,setPurchase_invoice_lines,setExpenses,setTax_periods,setVat_declarations,setTot_declarations,setDeclaration_submissions,setMessages,setAudit_events,]; - - const requests = entities.map((entity, index) => { - if(hasPermission(currentUser, `READ_${entity.toUpperCase()}`)) { - return axios.get(`/${entity.toLowerCase()}/count`); - } else { - fns[index](null); - return Promise.resolve({data: {count: null}}); - } - }); - - Promise.allSettled(requests).then((results) => { - results.forEach((result, i) => { - if (result.status === 'fulfilled') { - fns[i](result.value.data.count); - } else { - fns[i](result.reason.message); - } - }); - }); - } - - async function getWidgets(roleId) { - await dispatch(fetchWidgets(roleId)); - } - - React.useEffect(() => { - if (!currentUser) return; - loadData().then(); - setWidgetsRole({ role: { value: currentUser?.app_role?.id, label: currentUser?.app_role?.name } }); - }, [currentUser]); - - React.useEffect(() => { - if (!currentUser || !widgetsRole?.role?.value) return; - getWidgets(widgetsRole?.role?.value || '').then(); - }, [widgetsRole?.role?.value]); - - const handleOcrSimulate = async () => { - setIsProcessing(true); - try { - const response = await axios.post('/ocr/simulate'); - setOcrResult(response.data); - } catch (error) { - console.error('OCR Simulation failed', error); - } finally { - setIsProcessing(false); - } - }; - - const handleSaveTransaction = async () => { - const endpoint = ocrType === 'sale' ? '/sales_invoices' : '/purchase_invoices'; - try { - await axios.post(endpoint, { - invoice_number: ocrResult.invoice_number, - date: ocrResult.date, - total_amount: parseFloat(ocrResult.total_amount), - tax_amount: parseFloat(ocrResult.tax_amount), - }); - setIsOcrModalActive(false); - setOcrResult(null); - loadData(); // Reload counts - alert('Transaction saved successfully!'); - } catch (error) { - console.error('Save failed', error); - } - }; - - const transactionTypes = [ - { - title: 'Purchase Entry Form', - titleAm: 'የግዢ መዝገብ', - description: 'Record purchase transactions with VAT and withholding tax calculations', - icon: icon.mdiPackageVariantClosed, - href: '/purchase_invoices/purchase_invoices-new', - bgColor: 'bg-orange-50', - borderColor: 'border-orange-100', - iconBg: 'bg-orange-100', - iconColor: 'text-orange-600', - buttonBg: 'bg-orange-600', - dotColor: 'bg-orange-400', - }, - { - title: 'Sales Entry Form', - titleAm: 'የሽያጭ መዝገብ', - description: 'Record sales transactions with VAT calculations', - icon: icon.mdiCartOutline, - href: '/sales_invoices/sales_invoices-new', - bgColor: 'bg-emerald-50', - borderColor: 'border-emerald-100', - iconBg: 'bg-emerald-100', - iconColor: 'text-emerald-600', - buttonBg: 'bg-emerald-600', - dotColor: 'bg-emerald-400', - }, - { - title: 'Expense Entry Form', - titleAm: 'ወጪ መዝገብ', - description: 'Record business expenses and operating costs', - icon: icon.mdiCurrencyUsd, - href: '/expenses/expenses-new', - bgColor: 'bg-red-50', - borderColor: 'border-red-100', - iconBg: 'bg-red-100', - iconColor: 'text-red-600', - buttonBg: 'bg-red-600', - dotColor: 'bg-red-400', - }, - { - title: 'Inventory Entry Form', - titleAm: 'እቃ መዝገብ', - description: 'Track inventory purchases and stock additions', - icon: icon.mdiCubeOutline, - href: '/products/products-new', - bgColor: 'bg-indigo-50', - borderColor: 'border-indigo-100', - iconBg: 'bg-indigo-100', - iconColor: 'text-indigo-600', - buttonBg: 'bg-indigo-600', - dotColor: 'bg-indigo-400', - }, - { - title: 'All Transactions', - titleAm: 'ግብይቶች', - description: 'View and manage all tax transactions', - icon: icon.mdiViewList, - href: '/sales_invoices/sales_invoices-list', - bgColor: 'bg-cyan-50', - borderColor: 'border-cyan-100', - iconBg: 'bg-cyan-100', - iconColor: 'text-cyan-600', - buttonBg: 'bg-cyan-600', - dotColor: 'bg-cyan-400', - }, - ]; + useEffect(() => { + dispatch(fetchDashboardStats()); + }, [dispatch, activeContext?.id]); return ( <> - {getPageTitle('Overview')} + {getPageTitle('Dashboard')} + - - {''} - +

+
+

+ Welcome back, {merchantName} +

+

+ Here's what's happening with {activeContext?.type === 'merchant' ? 'this merchant' : 'your firm'} today +

+
- {isMerchant && ( -
-
-

የግብይት አይነት ይምረጡ

-

- Choose the type of transaction you want to record -

-
- {organizationName} -
+
+
+ +
-
- {transactionTypes.map((type, index) => ( -
-
- -
- -
+ +
+
-
-

{type.titleAm}

-

{type.title}

-

- {type.description} -

-
+ - - - -
- ))} -
+
+
+ + +
+
+ + +
+
+ + {!isMerchant && !activeContext && ( +
+
+ +

Administrative Overview

+

+ You are viewing the dashboard as an administrator. Switch to a specific merchant to see their business metrics. +

+
)} - - {hasPermission(currentUser, 'CREATE_ROLES') && } - -
- {(isFetchingQuery || loading) && ( -
- {' '} - Loading widgets... -
- )} - - { rolesWidgets && - rolesWidgets.map((widget) => ( - - ))} -
- -
- {hasPermission(currentUser, 'READ_MERCHANTS') && ( - - -
-
-
Merchants
-
{merchants}
-
- -
-
- - )} - {hasPermission(currentUser, 'READ_SALES_INVOICES') && ( - - -
-
-
Sales Invoices
-
{sales_invoices}
-
- -
-
- - )} - {hasPermission(currentUser, 'READ_PURCHASE_INVOICES') && ( - - -
-
-
Purchase Invoices
-
{purchase_invoices}
-
- -
-
- - )} -
- - {/* Keeping the OCR modal logic for future use or hidden triggers */} - { setIsOcrModalActive(false); setOcrResult(null); }} - buttonColor="info" - buttonLabel={ocrResult ? "Confirm & Save" : (isProcessing ? "Processing..." : "Scan Receipt")} - > - {!ocrResult ? ( -
- - - - {isProcessing && ( -
- - Analyzing with SmartHisab AI... -
- )} -
- ) : ( -
-
- - Extraction Successful! Please verify details. -
-
- - - - - - - - - - - - -
- - - -
- )} -
) diff --git a/frontend/src/pages/transaction-entry.tsx b/frontend/src/pages/transaction-entry.tsx index 500439d..c97b730 100644 --- a/frontend/src/pages/transaction-entry.tsx +++ b/frontend/src/pages/transaction-entry.tsx @@ -76,7 +76,7 @@ const TransactionEntry = () => { description: 'View and manage all tax transactions', color: 'teal', icon: icon.mdiViewList, - href: '/sales_invoices/sales_invoices-list', + href: '/transactions', bgColor: 'bg-cyan-50', borderColor: 'border-cyan-100', iconBg: 'bg-cyan-100', diff --git a/frontend/src/pages/transactions.tsx b/frontend/src/pages/transactions.tsx new file mode 100644 index 0000000..55656a8 --- /dev/null +++ b/frontend/src/pages/transactions.tsx @@ -0,0 +1,182 @@ +import { mdiArrowBottomLeft, mdiArrowTopRight, mdiCalendar, mdiFilterVariant, mdiPlus } from '@mdi/js'; +import Head from 'next/head'; +import React, { ReactElement, useEffect, useState } from 'react'; +import CardBox from '../components/CardBox'; +import LayoutAuthenticated from '../layouts/Authenticated'; +import SectionMain from '../components/SectionMain'; +import { getPageTitle } from '../config'; +import BaseIcon from '../components/BaseIcon'; +import BaseButton from '../components/BaseButton'; +import { useAppDispatch, useAppSelector } from '../stores/hooks'; +import { fetchTransactions } from '../stores/transactions/transactionsSlice'; +import { Pagination } from '../components/Pagination'; + +const TransactionsPage = () => { + const dispatch = useAppDispatch(); + const { transactions, loading, count } = useAppSelector((state) => state.transactions); + const [currentPage, setCurrentPage] = useState(0); + const perPage = 10; + + useEffect(() => { + const query = `?page=${currentPage}&limit=${perPage}`; + dispatch(fetchTransactions({ query })); + }, [dispatch, currentPage]); + + const onPageChange = (page: number) => { + setCurrentPage(page); + }; + + return ( + <> + + {getPageTitle('Transactions')} + + +
+
+

ግብይቶች

+

Transactions

+

Manage and track all your business financial activities

+
+
+ +
+
+ + +
+
+
+ + +
+ +
+
+
+ + +
+ +
+
+
+
+ Showing {transactions.length} of {count} entries +
+
+ +
+ + + + + + + + + + + + {loading ? ( + Array.from({ length: 5 }).map((_, i) => ( + + + + )) + ) : transactions.length > 0 ? ( + transactions.map((transaction) => ( + + + + + + + + )) + ) : ( + + + + )} + +
DateDescriptionTypeStatusAmount
+
+
+
+
+
+
+ {new Date(transaction.date).toLocaleDateString('en-US', { month: 'short', day: 'numeric', year: 'numeric' })} + +
{transaction.description}
+
{transaction.entity?.replace('_', ' ')}
+
+
+ + {transaction.type} +
+
+ + {transaction.status} + + + {transaction.isIncome ? '+' : '-'}{Number(transaction.amount).toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })} +
+
+
+ +
+

No transactions found

+

Try adjusting your filters or add a new entry

+
+
+
+ +
+ +
+
+
+ + ); +}; + +TransactionsPage.getLayout = function getLayout(page: ReactElement) { + return {page}; +}; + +export default TransactionsPage; \ No newline at end of file diff --git a/frontend/src/pages/vat_declarations/[vat_declarationsId]/erca.tsx b/frontend/src/pages/vat_declarations/[vat_declarationsId]/erca.tsx new file mode 100644 index 0000000..65feebc --- /dev/null +++ b/frontend/src/pages/vat_declarations/[vat_declarationsId]/erca.tsx @@ -0,0 +1,250 @@ +import React, { ReactElement, useEffect, useState } from 'react'; +import Head from 'next/head'; +import { useRouter } from 'next/router'; +import axios from 'axios'; +import LayoutAuthenticated from '../../../layouts/Authenticated'; +import { getPageTitle } from '../../../config'; +import SectionMain from '../../../components/SectionMain'; +import CardBox from '../../../components/CardBox'; +import BaseButton from '../../../components/BaseButton'; +import { mdiPrinter, mdiArrowLeft } from '@mdi/js'; +import LoadingSpinner from '../../../components/LoadingSpinner'; + +const ErcaVatForm = () => { + const router = useRouter(); + const { vat_declarationsId } = router.query; + const [data, setData] = useState(null); + const [loading, setLoading] = useState(true); + + useEffect(() => { + if (vat_declarationsId) { + axios.get(`/vat_declarations/${vat_declarationsId}/erca-data`) + .then(res => { + setData(res.data); + setLoading(false); + }) + .catch(err => { + console.error(err); + setLoading(false); + }); + } + }, [vat_declarationsId]); + + if (loading) return ; + if (!data) return
Data not found
; + + const { sectionA, sectionB, merchant, tax_period } = data; + + const formatCurrency = (val: number) => { + return new Intl.NumberFormat('en-ET', { minimumFractionDigits: 2, maximumFractionDigits: 2 }).format(val || 0); + }; + + const handlePrint = () => { + window.print(); + }; + + return ( + <> + + {getPageTitle('ERCA VAT Declaration')} + + +
+ router.back()} + /> + +
+ + +
+ {/* Header Section */} +
+

የፌዴራል ታክስ ባለስልጣን

+

FEDERAL TAX AUTHORITY

+

የተጨማሪ እሴት ታክስ ማስታወቂያ (VAT DECLARATION)

+
+ + {/* Merchant Info */} +
+
+

የግብር ከፋይ ስም: {merchant?.legal_name || merchant?.business_name}

+

Taxpayer Name: {merchant?.legal_name || merchant?.business_name}

+
+
+

የግብር ከፋይ መለያ ቁጥር: {merchant?.tin_number}

+

TIN Number: {merchant?.tin_number}

+
+
+ +
+
+

ለታክስ የተፈለገበት ወቅት: {tax_period?.year_number} / {tax_period?.period_number}

+

Tax Period: {tax_period?.year_number} / {tax_period?.period_number}

+
+
+ + {/* Section A - Computation of Output Tax */} +
+

ሀ. የሽያጭ ታክስ ስሌት (SECTION A — COMPUTATION OF OUTPUT TAX)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Line Noመግለጫ (Description)ጠቅላላ መጠን (Total Amount)የታክስ መጠን (VAT Amount)
5ታክስ የሚከፈልበት አገልግሎት አቅርቦት / ሽያጭ (Taxable Sales / Supplies){formatCurrency(sectionA.line5.total)}{formatCurrency(sectionA.line5.vat)}
15ዜሮ ምጣኔ ያላቸው ሽያጭ (Zero-rated Sales / Supplies){formatCurrency(sectionA.line15.total)}
20ከታክስ ነፃ የሆነ ሽያጭ (Tax-exempt Sales / Supplies){formatCurrency(sectionA.line20.total)}
25በገዢው ተይዞ የተሰበሰበ ሽያጭ (Services or Supplies subject to Reverse Taxation){formatCurrency(sectionA.line25.total)}
35ታክስ የተስተካከለበት ዴቢት ሰነድ (አቅራቢ) (Tax adjustment with debit note for suppliers){formatCurrency(sectionA.line35.total)}{formatCurrency(sectionA.line35.vat)}
45ታክስ የተስተካከለበት ክሬዲት ሰነድ (አቅራቢ) (Tax adjustment with credit note for suppliers){formatCurrency(sectionA.line45.total)}{formatCurrency(sectionA.line45.vat)}
55ጠቅላላ አቅርቦት / ሽያጭ (Total Sales / Supplies) (5 + 15 + 20 + 25 + 35 − 45){formatCurrency(sectionA.line55.total)}
60ጠቅላላ የሽያጭ ታክስ (Total Output VAT){formatCurrency(sectionA.line60.vat)}
+
+ + {/* Section B - Capital Asset Purchases */} +
+

ለ. የካፒታል ዕቃዎች ግዢ (SECTION B — CAPITAL ASSET PURCHASES)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Line Noመግለጫ (Description)ጠቅላላ መጠን (Total Amount)የታክስ መጠን (VAT Amount)
65የአገር ውስጥ ካፒታል ዕቃ ግዢ (Local Purchase of Capital Assets){formatCurrency(sectionB.line65.total)}{formatCurrency(sectionB.line65.vat)}
75የውጪ አገር ካፒታል ዕቃ ግዢ (Imported Capital Asset Purchase){formatCurrency(sectionB.line75.total)}{formatCurrency(sectionB.line75.vat)}
85ታክስ ያልተከፈለበት ካፒታል ግዢ (Capital purchase with no VAT or unclaimed input){formatCurrency(sectionB.line85.total)}
90ጠቅላላ የካፒታል ዕቃዎች ግዢ (TOTAL CAPITAL PURCHASES){formatCurrency(sectionB.line90.total)}{formatCurrency(sectionB.line90.vat)}
+
+ + {/* Footer Signatures */} +
+
+

የከፋዩ ፊርማ (Taxpayer Signature):

+
+

ቀን (Date): _________________

+
+
+

ለቢሮ አገልግሎት (For Office Use Only):

+
+

ፊርማ (Signature): _________________

+
+
+
+
+
+ + + ); +}; + +ErcaVatForm.getLayout = function getLayout(page: ReactElement) { + return ( + + {page} + + ); +}; + +export default ErcaVatForm; \ No newline at end of file diff --git a/frontend/src/pages/vat_declarations/vat_declarations-view.tsx b/frontend/src/pages/vat_declarations/vat_declarations-view.tsx index 022ab1e..4b0a98e 100644 --- a/frontend/src/pages/vat_declarations/vat_declarations-view.tsx +++ b/frontend/src/pages/vat_declarations/vat_declarations-view.tsx @@ -16,7 +16,7 @@ import SectionMain from "../../components/SectionMain"; import CardBox from "../../components/CardBox"; import BaseButton from "../../components/BaseButton"; import BaseDivider from "../../components/BaseDivider"; -import {mdiChartTimelineVariant} from "@mdi/js"; +import {mdiChartTimelineVariant, mdiFileDocumentOutline} from "@mdi/js"; import {SwitchField} from "../../components/SwitchField"; import FormField from "../../components/FormField"; @@ -50,11 +50,19 @@ const Vat_declarationsView = () => { - +
+ router.push(`/vat_declarations/${id}/erca`)} + /> + +
@@ -966,4 +974,4 @@ Vat_declarationsView.getLayout = function getLayout(page: ReactElement) { ) } -export default Vat_declarationsView; \ No newline at end of file +export default Vat_declarationsView; diff --git a/frontend/src/stores/contextSlice.ts b/frontend/src/stores/contextSlice.ts new file mode 100644 index 0000000..c4e55ae --- /dev/null +++ b/frontend/src/stores/contextSlice.ts @@ -0,0 +1,86 @@ + +import { createSlice, createAsyncThunk, PayloadAction } from '@reduxjs/toolkit'; +import axios from 'axios'; + +interface Entity { + id: string; + name: string; + type: 'merchant' | 'firm'; + registration?: string; +} + +interface ContextState { + availableMerchants: Entity[]; + availableFirms: Entity[]; + activeContext: Entity | null; + isLoading: boolean; + error: string | null; +} + +const initialState: ContextState = { + availableMerchants: [], + availableFirms: [], + activeContext: null, + isLoading: false, + error: null, +}; + +export const fetchAvailableContexts = createAsyncThunk( + 'context/fetchAvailableContexts', + async (_, { rejectWithValue }) => { + try { + const response = await axios.get('/context/available'); + return response.data; + } catch (error) { + return rejectWithValue(error.response.data); + } + } +); + +export const contextSlice = createSlice({ + name: 'context', + initialState, + reducers: { + setActiveContext: (state, action: PayloadAction) => { + state.activeContext = action.payload; + localStorage.setItem('activeContext', JSON.stringify(action.payload)); + }, + loadActiveContext: (state) => { + const saved = localStorage.getItem('activeContext'); + if (saved) { + state.activeContext = JSON.parse(saved); + } + }, + }, + extraReducers: (builder) => { + builder + .addCase(fetchAvailableContexts.pending, (state) => { + state.isLoading = true; + }) + .addCase(fetchAvailableContexts.fulfilled, (state, action) => { + state.isLoading = false; + state.availableMerchants = action.payload.merchants; + state.availableFirms = action.payload.firms; + + // If no active context, set the first merchant as default if available + if (!state.activeContext) { + const saved = localStorage.getItem('activeContext'); + if (saved) { + state.activeContext = JSON.parse(saved); + } else if (action.payload.merchants.length > 0) { + state.activeContext = action.payload.merchants[0]; + } else if (action.payload.firms.length > 0) { + state.activeContext = action.payload.firms[0]; + } + } + }) + .addCase(fetchAvailableContexts.rejected, (state, action) => { + state.isLoading = false; + state.error = action.payload as string; + }); + }, +}); + +export const { setActiveContext, loadActiveContext } = contextSlice.actions; + +export default contextSlice.reducer; diff --git a/frontend/src/stores/dashboardSlice.ts b/frontend/src/stores/dashboardSlice.ts new file mode 100644 index 0000000..81e4807 --- /dev/null +++ b/frontend/src/stores/dashboardSlice.ts @@ -0,0 +1,68 @@ +import { createSlice, createAsyncThunk } from '@reduxjs/toolkit'; +import axios from 'axios'; +import { RootState } from './store'; + +interface DashboardState { + stats: { + revenue: number; + expenses: number; + profit: number; + vatPayable: number; + recentTransactions: any[]; + } | null; + loading: boolean; + error: string | null; +} + +const initialState: DashboardState = { + stats: null, + loading: false, + error: null, +}; + +export const fetchDashboardStats = createAsyncThunk( + 'dashboard/fetchStats', + async (_, { getState, rejectWithValue }) => { + const state = getState() as RootState; + const { activeContext } = state.context; + + const params: any = {}; + if (activeContext) { + if (activeContext.type === 'merchant') { + params.merchantId = activeContext.id; + } else { + params.firmId = activeContext.id; + } + } + + try { + const response = await axios.get('/dashboard/stats', { params }); + return response.data; + } catch (err: any) { + return rejectWithValue(err.response?.data?.message || 'Failed to fetch dashboard stats'); + } + } +); + +const dashboardSlice = createSlice({ + name: 'dashboard', + initialState, + reducers: {}, + extraReducers: (builder) => { + builder + .addCase(fetchDashboardStats.pending, (state) => { + state.loading = true; + state.error = null; + }) + .addCase(fetchDashboardStats.fulfilled, (state, action) => { + state.loading = false; + state.stats = action.payload; + }) + .addCase(fetchDashboardStats.rejected, (state, action) => { + state.loading = false; + state.error = action.payload as string; + }); + }, +}); + +export default dashboardSlice.reducer; \ No newline at end of file diff --git a/frontend/src/stores/store.ts b/frontend/src/stores/store.ts index d9f7113..cbe36e8 100644 --- a/frontend/src/stores/store.ts +++ b/frontend/src/stores/store.ts @@ -3,6 +3,8 @@ import styleReducer from './styleSlice'; import mainReducer from './mainSlice'; import authSlice from './authSlice'; import openAiSlice from './openAiSlice'; +import dashboardReducer from './dashboardSlice'; +import contextSlice from './contextSlice'; import usersSlice from "./users/usersSlice"; import rolesSlice from "./roles/rolesSlice"; @@ -26,6 +28,7 @@ import tot_declarationsSlice from "./tot_declarations/tot_declarationsSlice"; import declaration_submissionsSlice from "./declaration_submissions/declaration_submissionsSlice"; import messagesSlice from "./messages/messagesSlice"; import audit_eventsSlice from "./audit_events/audit_eventsSlice"; +import transactionsSlice from "./transactions/transactionsSlice"; export const store = configureStore({ reducer: { @@ -33,6 +36,8 @@ export const store = configureStore({ main: mainReducer, auth: authSlice, openAi: openAiSlice, + dashboard: dashboardReducer, + context: contextSlice, users: usersSlice, roles: rolesSlice, @@ -56,10 +61,11 @@ tot_declarations: tot_declarationsSlice, declaration_submissions: declaration_submissionsSlice, messages: messagesSlice, audit_events: audit_eventsSlice, +transactions: transactionsSlice, }, }) // Infer the `RootState` and `AppDispatch` types from the store itself export type RootState = ReturnType // Inferred type: {posts: PostsState, comments: CommentsState, users: UsersState} -export type AppDispatch = typeof store.dispatch +export type AppDispatch = typeof store.dispatch \ No newline at end of file diff --git a/frontend/src/stores/transactions/transactionsSlice.ts b/frontend/src/stores/transactions/transactionsSlice.ts new file mode 100644 index 0000000..645d4c3 --- /dev/null +++ b/frontend/src/stores/transactions/transactionsSlice.ts @@ -0,0 +1,65 @@ +import { createSlice, createAsyncThunk, PayloadAction } from '@reduxjs/toolkit' +import axios from 'axios' +import {rejectNotify, resetNotify} from "../../helpers/notifyStateHandler"; + +interface MainState { + transactions: any[] + loading: boolean + count: number + refetch: boolean; + notify: { + showNotification: boolean + textNotification: string + typeNotification: string + } +} + +const initialState: MainState = { + transactions: [], + loading: false, + count: 0, + refetch: false, + notify: { + showNotification: false, + textNotification: '', + typeNotification: 'warn', + }, +} + +export const fetchTransactions = createAsyncThunk('transactions/fetch', async (data: any) => { + const { query } = data + const result = await axios.get( + `transactions${query || ''}` + ) + return {rows: result.data.rows, count: result.data.count}; +}) + +export const transactionsSlice = createSlice({ + name: 'transactions', + initialState, + reducers: { + setRefetch: (state, action: PayloadAction) => { + state.refetch = action.payload; + }, + }, + extraReducers: (builder) => { + builder.addCase(fetchTransactions.pending, (state) => { + state.loading = true + resetNotify(state); + }) + builder.addCase(fetchTransactions.rejected, (state, action) => { + state.loading = false + rejectNotify(state, action); + }) + + builder.addCase(fetchTransactions.fulfilled, (state, action) => { + state.transactions = action.payload.rows; + state.count = action.payload.count; + state.loading = false + }) + }, +}) + +export const { setRefetch } = transactionsSlice.actions + +export default transactionsSlice.reducer diff --git a/frontend/src/styles.ts b/frontend/src/styles.ts index a969b60..9e638f4 100644 --- a/frontend/src/styles.ts +++ b/frontend/src/styles.ts @@ -31,23 +31,23 @@ export const white: StyleObject = { asideMenuItem: 'text-gray-700 hover:bg-gray-100/70 dark:text-dark-500 dark:hover:text-white dark:hover:bg-dark-800', asideMenuItemActive: 'font-bold text-black dark:text-white', asideMenuDropdown: 'bg-gray-100/75', - navBarItemLabel: 'text-blue-600', - navBarItemLabelHover: 'hover:text-black', - navBarItemLabelActiveColor: 'text-black', + navBarItemLabel: 'text-slate-600 font-bold', + navBarItemLabelHover: 'hover:text-indigo-600', + navBarItemLabelActiveColor: 'text-indigo-600', overlay: 'from-white via-gray-100 to-white', activeLinkColor: 'bg-gray-100/70', - bgLayoutColor: 'bg-gray-50', - iconsColor: 'text-blue-500', + bgLayoutColor: 'bg-slate-50', + iconsColor: 'text-indigo-500', cardsColor: 'bg-white', - focusRingColor: 'focus:ring focus:ring-blue-600 focus:border-blue-600 focus:outline-none border-gray-300 dark:focus:ring-blue-600 dark:focus:border-blue-600', - corners: 'rounded', - cardsStyle: 'bg-white border border-pavitra-400', - linkColor: 'text-blue-600', - websiteHeder: 'border-b border-gray-200', - borders: 'border-gray-200', - shadow: '', + focusRingColor: 'focus:ring focus:ring-indigo-600 focus:border-indigo-600 focus:outline-none border-gray-300 dark:focus:ring-indigo-600 dark:focus:border-indigo-600', + corners: 'rounded-[1.5rem]', + cardsStyle: 'bg-white border border-gray-100 shadow-sm', + linkColor: 'text-indigo-600', + websiteHeder: 'border-b border-gray-100', + borders: 'border-gray-100', + shadow: 'shadow-sm', websiteSectionStyle: '', - textSecondary: 'text-gray-500', + textSecondary: 'text-slate-500', } @@ -104,4 +104,4 @@ export const basic: StyleObject = { shadow: '', websiteSectionStyle: '', textSecondary: '', -} +} \ No newline at end of file