7 Commits

Author SHA1 Message Date
445c15b797 Merge pull request 'database-view-updates' (#67) from database-view-updates into main
All checks were successful
Continuous Integration / Update Development (push) Successful in 2m17s
Continuous Deployment / Update Deployment (push) Successful in 2m10s
Reviewed-on: #67
2025-12-12 10:27:18 -06:00
406f61a612 Merge branch 'main' into database-view-updates 2025-12-12 10:24:01 -06:00
f7daa1bb19 Merge pull request 'application-dp-upgrade' (#66) from application-dp-upgrade into main
All checks were successful
Continuous Integration / Update Development (push) Successful in 2m35s
Reviewed-on: #66
2025-12-12 10:16:56 -06:00
7a6020febb Changed event_date to start_date 2025-12-11 09:22:44 -06:00
fb64b35807 Updated database reference view_member_rank_status_all to view_member_rank_unit_status_latest 2025-12-10 22:18:52 -06:00
a8165e2ae5 Added Unit Table Header and Cell 2025-12-10 22:18:08 -06:00
79cf77dc63 Added 2 data types unit, unit_date 2025-12-10 22:17:45 -06:00
6 changed files with 10 additions and 6 deletions

View File

@@ -27,7 +27,7 @@ router.get('/', async (req, res) => {
AND UTC_TIMESTAMP() BETWEEN l.start_date AND l.end_date AND UTC_TIMESTAMP() BETWEEN l.start_date AND l.end_date
) THEN 1 ELSE 0 ) THEN 1 ELSE 0
END AS on_loa END AS on_loa
FROM view_member_rank_status_all v;`); FROM view_member_rank_unit_status_latest v;`);
return res.status(200).json(result); return res.status(200).json(result);
} catch (err) { } catch (err) {
console.error('Error fetching users:', err); console.error('Error fetching users:', err);
@@ -63,7 +63,7 @@ router.get('/me', async (req, res) => {
router.get('/:id', async (req, res) => { router.get('/:id', async (req, res) => {
try { try {
const userId = req.params.id; const userId = req.params.id;
const result = await pool.query('SELECT * FROM view_member_rank_status_all WHERE id = $1;', [userId]); const result = await pool.query('SELECT * FROM view_member_rank_unit_status_latest WHERE id = $1;', [userId]);
if (result.rows.length === 0) { if (result.rows.length === 0) {
return res.status(404).json({ error: 'User not found' }); return res.status(404).json({ error: 'User not found' });
} }

View File

@@ -49,7 +49,7 @@ r.get('/', async (req, res) => {
const membersRoles = await con.query(` const membersRoles = await con.query(`
SELECT mr.role_id, v.* SELECT mr.role_id, v.*
FROM members_roles mr FROM members_roles mr
JOIN view_member_rank_status_all v ON mr.member_id = v.member_id JOIN view_member_rank_unit_status_latest v ON mr.member_id = v.member_id
`); `);

View File

@@ -21,8 +21,8 @@ export async function insertMemberRank(member_id: number, rank_id: number): Prom
export async function insertMemberRank(member_id: number, rank_id: number, date?: Date): Promise<void> { export async function insertMemberRank(member_id: number, rank_id: number, date?: Date): Promise<void> {
const sql = date const sql = date
? `INSERT INTO members_ranks (member_id, rank_id, event_date) VALUES (?, ?, ?);` ? `INSERT INTO members_ranks (member_id, rank_id, start_date) VALUES (?, ?, ?);`
: `INSERT INTO members_ranks (member_id, rank_id, event_date) VALUES (?, ?, NOW());`; : `INSERT INTO members_ranks (member_id, rank_id, start_date) VALUES (?, ?, NOW());`;
const params = date const params = date
? [member_id, rank_id, date] ? [member_id, rank_id, date]

View File

@@ -1,6 +1,6 @@
import pool from "../db" import pool from "../db"
export async function assignUserToStatus(userID: number, statusID: number) { export async function assignUserToStatus(userID: number, statusID: number) {
const sql = `INSERT INTO members_statuses (member_id, status_id, event_date) VALUES (?, ?, NOW())` const sql = `INSERT INTO members_statuses (member_id, status_id, start_date) VALUES (?, ?, NOW())`
await pool.execute(sql, [userID, statusID]); await pool.execute(sql, [userID, statusID]);
} }

View File

@@ -3,6 +3,8 @@ export type Member = {
member_name: string; member_name: string;
rank: string | null; rank: string | null;
rank_date: string | null; rank_date: string | null;
unit: string | null;
unit_date: string | null;
status: string | null; status: string | null;
status_date: string | null; status_date: string | null;
on_loa: boolean | null; on_loa: boolean | null;

View File

@@ -65,6 +65,7 @@ const searchedMembers = computed(() => {
Member Member
</TableHead> </TableHead>
<TableHead>Rank</TableHead> <TableHead>Rank</TableHead>
<TableHead>Unit</TableHead>
<TableHead>Status</TableHead> <TableHead>Status</TableHead>
</TableRow> </TableRow>
</TableHeader> </TableHeader>
@@ -75,6 +76,7 @@ const searchedMembers = computed(() => {
{{ member.member_name }} {{ member.member_name }}
</TableCell> </TableCell>
<TableCell>{{ member.rank }}</TableCell> <TableCell>{{ member.rank }}</TableCell>
<TableCell>{{ member.unit }}</TableCell>
<TableCell>{{ member.status }}</TableCell> <TableCell>{{ member.status }}</TableCell>
<TableCell><Badge v-if="member.on_loa">On LOA</Badge></TableCell> <TableCell><Badge v-if="member.on_loa">On LOA</Badge></TableCell>
<TableCell @click.stop="" class="text-right"> <TableCell @click.stop="" class="text-right">