From c325d7802db6faacf50ea0eb259456c88dad8849 Mon Sep 17 00:00:00 2001 From: Andre Pestana <78114138+andrepestana-aot@users.noreply.github.com> Date: Fri, 3 Mar 2023 14:21:08 -0800 Subject: [PATCH] #1753 - Add student notes during add manual overaward deduction - part 1 (#1772) * DB changes * renaming and comments * changed type to INT * changed timestamp to with tz --- ...ddedByAddedDateToDisbursementOverawards.ts | 24 +++++++++++++++++ .../1677805984987-AddNoteTypeOveraward.ts | 16 +++++++++++ .../Add-note-id-added-by-added-date.sql | 23 ++++++++++++++++ .../Remove-note-id-added-by-added-date.sql | 11 ++++++++ .../src/sql/Types/Add-note-type-overaward.sql | 6 +++++ .../sql/Types/Drop-note-type-overaward.sql | 27 +++++++++++++++++++ 6 files changed, 107 insertions(+) create mode 100644 sources/packages/backend/apps/db-migrations/src/migrations/1677801820875-AddNoteIdAddedByAddedDateToDisbursementOverawards.ts create mode 100644 sources/packages/backend/apps/db-migrations/src/migrations/1677805984987-AddNoteTypeOveraward.ts create mode 100644 sources/packages/backend/apps/db-migrations/src/sql/DisbursementOverawards/Add-note-id-added-by-added-date.sql create mode 100644 sources/packages/backend/apps/db-migrations/src/sql/DisbursementOverawards/Remove-note-id-added-by-added-date.sql create mode 100644 sources/packages/backend/apps/db-migrations/src/sql/Types/Add-note-type-overaward.sql create mode 100644 sources/packages/backend/apps/db-migrations/src/sql/Types/Drop-note-type-overaward.sql diff --git a/sources/packages/backend/apps/db-migrations/src/migrations/1677801820875-AddNoteIdAddedByAddedDateToDisbursementOverawards.ts b/sources/packages/backend/apps/db-migrations/src/migrations/1677801820875-AddNoteIdAddedByAddedDateToDisbursementOverawards.ts new file mode 100644 index 0000000000..43ff24131e --- /dev/null +++ b/sources/packages/backend/apps/db-migrations/src/migrations/1677801820875-AddNoteIdAddedByAddedDateToDisbursementOverawards.ts @@ -0,0 +1,24 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; +import { getSQLFileData } from "../utilities/sqlLoader"; + +export class AddNoteIdAddedByAddedDateToDisbursementOverawards1677801820875 + implements MigrationInterface +{ + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query( + getSQLFileData( + "Add-note-id-added-by-added-date.sql", + "DisbursementOverawards", + ), + ); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query( + getSQLFileData( + "Remove-note-id-added-by-added-date.sql", + "DisbursementOverawards", + ), + ); + } +} diff --git a/sources/packages/backend/apps/db-migrations/src/migrations/1677805984987-AddNoteTypeOveraward.ts b/sources/packages/backend/apps/db-migrations/src/migrations/1677805984987-AddNoteTypeOveraward.ts new file mode 100644 index 0000000000..4481bb45b6 --- /dev/null +++ b/sources/packages/backend/apps/db-migrations/src/migrations/1677805984987-AddNoteTypeOveraward.ts @@ -0,0 +1,16 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; +import { getSQLFileData } from "../utilities/sqlLoader"; + +export class AddNoteTypeOveraward1677805984987 implements MigrationInterface { + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query( + getSQLFileData("Add-note-type-overaward.sql", "Types"), + ); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query( + getSQLFileData("Drop-note-type-overaward.sql", "Types"), + ); + } +} diff --git a/sources/packages/backend/apps/db-migrations/src/sql/DisbursementOverawards/Add-note-id-added-by-added-date.sql b/sources/packages/backend/apps/db-migrations/src/sql/DisbursementOverawards/Add-note-id-added-by-added-date.sql new file mode 100644 index 0000000000..fceebf2284 --- /dev/null +++ b/sources/packages/backend/apps/db-migrations/src/sql/DisbursementOverawards/Add-note-id-added-by-added-date.sql @@ -0,0 +1,23 @@ +-- Add column note_id to sims.disbursement_overawards. +ALTER TABLE + sims.disbursement_overawards +ADD + COLUMN IF NOT EXISTS note_id INT REFERENCES sims.notes(id); + +COMMENT ON COLUMN sims.disbursement_overawards.note_id IS 'Note id for the disbursement overaward record.'; + +-- Add column added_by to sims.disbursement_overawards. +ALTER TABLE + sims.disbursement_overawards +ADD + COLUMN IF NOT EXISTS added_by INT REFERENCES sims.users(id); + +COMMENT ON COLUMN sims.disbursement_overawards.added_by IS 'User id of the user adding a manual record.'; + +-- Add column added_date to sims.disbursement_overawards. +ALTER TABLE + sims.disbursement_overawards +ADD + COLUMN IF NOT EXISTS added_date TIMESTAMP WITH TIME ZONE; + +COMMENT ON COLUMN sims.disbursement_overawards.added_date IS 'Date that the manual record was added.'; \ No newline at end of file diff --git a/sources/packages/backend/apps/db-migrations/src/sql/DisbursementOverawards/Remove-note-id-added-by-added-date.sql b/sources/packages/backend/apps/db-migrations/src/sql/DisbursementOverawards/Remove-note-id-added-by-added-date.sql new file mode 100644 index 0000000000..5038d6863d --- /dev/null +++ b/sources/packages/backend/apps/db-migrations/src/sql/DisbursementOverawards/Remove-note-id-added-by-added-date.sql @@ -0,0 +1,11 @@ +-- Remove column note_id from sims.disbursement_overawards. +ALTER TABLE + sims.disbursement_overawards DROP COLUMN IF EXISTS note_id; + +-- Remove column added_by from sims.disbursement_overawards. +ALTER TABLE + sims.disbursement_overawards DROP COLUMN IF EXISTS added_by; + +-- Remove column added_date from sims.disbursement_overawards. +ALTER TABLE + sims.disbursement_overawards DROP COLUMN IF EXISTS added_date; \ No newline at end of file diff --git a/sources/packages/backend/apps/db-migrations/src/sql/Types/Add-note-type-overaward.sql b/sources/packages/backend/apps/db-migrations/src/sql/Types/Add-note-type-overaward.sql new file mode 100644 index 0000000000..893a0021aa --- /dev/null +++ b/sources/packages/backend/apps/db-migrations/src/sql/Types/Add-note-type-overaward.sql @@ -0,0 +1,6 @@ +-- Add Overaward to note types. +ALTER TYPE sims.note_types +ADD + VALUE 'Overaward' +AFTER + 'Designation'; \ No newline at end of file diff --git a/sources/packages/backend/apps/db-migrations/src/sql/Types/Drop-note-type-overaward.sql b/sources/packages/backend/apps/db-migrations/src/sql/Types/Drop-note-type-overaward.sql new file mode 100644 index 0000000000..626959634d --- /dev/null +++ b/sources/packages/backend/apps/db-migrations/src/sql/Types/Drop-note-type-overaward.sql @@ -0,0 +1,27 @@ +--Removing the value Overaward from sims.note_types for the rollback. +--As postgres does not support removal of an Enum Value, We create a temporary enum and rename it. +CREATE TYPE sims.note_types_to_rollback AS ENUM ( + 'General', + 'Application', + 'Program', + 'Restriction', + 'Designation', + 'System Actions' +); + +-- Update the dependent column to start using the new enum with the expected values. +ALTER TABLE + sims.notes +ALTER COLUMN + note_type TYPE sims.note_types_to_rollback USING ( + CASE + note_type :: text + WHEN 'Overaward' THEN 'General' + ELSE note_type :: text + END + ) :: sims.note_types_to_rollback; + + +DROP TYPE sims.note_types; + +ALTER TYPE sims.note_types_to_rollback RENAME TO note_types;