81 lines
2.1 KiB
JavaScript
81 lines
2.1 KiB
JavaScript
const express = require('express');
|
|
const router = express.Router();
|
|
const { specialAssessmentRepository } = require('../repositories');
|
|
|
|
/**
|
|
* GET /api/plugins/financials/assessments
|
|
* Get all special assessments for site
|
|
*/
|
|
router.get('/', async (req, res) => {
|
|
try {
|
|
const { site_id } = req.query;
|
|
|
|
if (!site_id) {
|
|
return res.status(400).json({
|
|
success: false,
|
|
error: 'Missing required parameter: site_id'
|
|
});
|
|
}
|
|
|
|
const assessments = await specialAssessmentRepository.findBySiteId(site_id);
|
|
|
|
res.json({
|
|
success: true,
|
|
data: assessments,
|
|
message: 'Special assessments retrieved successfully'
|
|
});
|
|
} catch (error) {
|
|
console.error('Failed to get special assessments:', error);
|
|
res.status(500).json({
|
|
success: false,
|
|
error: 'Failed to retrieve special assessments',
|
|
message: error.message
|
|
});
|
|
}
|
|
});
|
|
|
|
/**
|
|
* POST /api/plugins/financials/assessments
|
|
* Create special assessment
|
|
*/
|
|
router.post('/', async (req, res) => {
|
|
try {
|
|
const { site_id, assessment_name, description, total_amount, unit_count, due_date, project_type, created_by } = req.body;
|
|
|
|
if (!site_id || !assessment_name || !total_amount || !unit_count || !due_date) {
|
|
return res.status(400).json({
|
|
success: false,
|
|
error: 'Missing required fields: site_id, assessment_name, total_amount, unit_count, due_date'
|
|
});
|
|
}
|
|
|
|
const assessment = await specialAssessmentRepository.createAssessment({
|
|
site_id,
|
|
assessment_name,
|
|
description: description || '',
|
|
total_amount,
|
|
unit_count,
|
|
amount_per_unit: total_amount / unit_count,
|
|
due_date,
|
|
project_type: project_type || 'other',
|
|
status: 'pending',
|
|
created_by: created_by || 'system'
|
|
});
|
|
|
|
res.json({
|
|
success: true,
|
|
data: assessment,
|
|
message: 'Special assessment created successfully'
|
|
});
|
|
} catch (error) {
|
|
console.error('Failed to create special assessment:', error);
|
|
res.status(500).json({
|
|
success: false,
|
|
error: 'Failed to create special assessment',
|
|
message: error.message
|
|
});
|
|
}
|
|
});
|
|
|
|
module.exports = router;
|
|
|