Modern ERP Reports Application with microservices architecture Tech Stack: - Backend: FastAPI + python-oracledb (Oracle DB integration) - Frontend: Vue.js 3 + PrimeVue + Vite - Telegram Bot: python-telegram-bot + SQLite - Infrastructure: Shared database pool, JWT authentication, SSH tunnel Features: - FastAPI backend with async Oracle connection pool - Vue.js 3 responsive frontend with PrimeVue components - Telegram bot alternative interface - Microservices architecture with shared components - Complete deployment support (Linux Docker + Windows IIS) - Comprehensive testing (Playwright E2E + pytest) Repository Structure: - reports-app/ - Main application (backend, frontend, telegram-bot) - shared/ - Shared components (database pool, auth, utils) - deployment/ - Deployment scripts (Linux & Windows) - docs/ - Project documentation - security/ - Security scanning and git hooks
142 lines
2.7 KiB
JavaScript
142 lines
2.7 KiB
JavaScript
export const mockInvoices = [
|
|
{
|
|
id: 1,
|
|
number: 'INV001',
|
|
date: '2024-01-15',
|
|
client_name: 'SC CLIENT TEST SRL',
|
|
amount: 25000.50,
|
|
currency: 'RON',
|
|
status: 'paid',
|
|
due_date: '2024-02-15',
|
|
payment_date: '2024-02-10'
|
|
},
|
|
{
|
|
id: 2,
|
|
number: 'INV002',
|
|
date: '2024-01-20',
|
|
client_name: 'CLIENT EXEMPLU SA',
|
|
amount: 18500.75,
|
|
currency: 'RON',
|
|
status: 'unpaid',
|
|
due_date: '2024-02-20',
|
|
payment_date: null
|
|
},
|
|
{
|
|
id: 3,
|
|
number: 'INV003',
|
|
date: '2024-01-25',
|
|
client_name: 'FIRMA TEST SRL',
|
|
amount: 12750.00,
|
|
currency: 'RON',
|
|
status: 'overdue',
|
|
due_date: '2024-02-25',
|
|
payment_date: null
|
|
},
|
|
{
|
|
id: 4,
|
|
number: 'INV004',
|
|
date: '2024-02-01',
|
|
client_name: 'COMPANIA ABC SRL',
|
|
amount: 35000.00,
|
|
currency: 'RON',
|
|
status: 'paid',
|
|
due_date: '2024-03-01',
|
|
payment_date: '2024-02-28'
|
|
},
|
|
{
|
|
id: 5,
|
|
number: 'INV005',
|
|
date: '2024-02-05',
|
|
client_name: 'BUSINESS PARTNER SA',
|
|
amount: 8900.25,
|
|
currency: 'RON',
|
|
status: 'unpaid',
|
|
due_date: '2024-03-05',
|
|
payment_date: null
|
|
}
|
|
];
|
|
|
|
export const mockInvoiceDetails = {
|
|
id: 1,
|
|
number: 'INV001',
|
|
date: '2024-01-15',
|
|
due_date: '2024-02-15',
|
|
client: {
|
|
name: 'SC CLIENT TEST SRL',
|
|
tax_code: 'RO12345678',
|
|
address: 'Strada Exemplu, Nr. 123, București',
|
|
phone: '+40 21 123 4567',
|
|
email: 'contact@clienttest.ro'
|
|
},
|
|
items: [
|
|
{
|
|
description: 'Servicii consultanță',
|
|
quantity: 10,
|
|
unit_price: 2000.00,
|
|
amount: 20000.00
|
|
},
|
|
{
|
|
description: 'Servicii implementare',
|
|
quantity: 5,
|
|
unit_price: 1000.10,
|
|
amount: 5000.50
|
|
}
|
|
],
|
|
subtotal: 25000.50,
|
|
tax_rate: 19,
|
|
tax_amount: 4750.10,
|
|
total: 29750.60,
|
|
currency: 'RON',
|
|
status: 'paid',
|
|
payment_date: '2024-02-10',
|
|
payment_method: 'Transfer bancar',
|
|
notes: 'Factura plătită la termen'
|
|
};
|
|
|
|
export const invoiceStatuses = {
|
|
paid: 'Plătit',
|
|
unpaid: 'Neplătit',
|
|
overdue: 'Întârziat',
|
|
draft: 'Proiect',
|
|
cancelled: 'Anulat'
|
|
};
|
|
|
|
export const invoiceFilters = {
|
|
status: ['all', 'paid', 'unpaid', 'overdue'],
|
|
dateRange: {
|
|
thisMonth: 'Această lună',
|
|
lastMonth: 'Luna trecută',
|
|
thisYear: 'Acest an',
|
|
custom: 'Personalizat'
|
|
},
|
|
sortBy: {
|
|
date: 'Data',
|
|
number: 'Număr',
|
|
client: 'Client',
|
|
amount: 'Sumă',
|
|
status: 'Status'
|
|
}
|
|
};
|
|
|
|
export const mockApiResponses = {
|
|
invoicesSuccess: {
|
|
status: 200,
|
|
body: {
|
|
items: mockInvoices,
|
|
total: mockInvoices.length,
|
|
page: 1,
|
|
size: 10,
|
|
pages: 1
|
|
}
|
|
},
|
|
invoicesError: {
|
|
status: 500,
|
|
body: {
|
|
detail: 'Error fetching invoices'
|
|
}
|
|
},
|
|
invoiceDetailsSuccess: {
|
|
status: 200,
|
|
body: mockInvoiceDetails
|
|
}
|
|
}; |