Skip to content

Commit 0a142e1

Browse files
authored
Merge pull request #62 from MariazelHdez/test
SFA admin updates
2 parents 605a996 + 2fc6313 commit 0a142e1

File tree

23 files changed

+2161
-1345
lines changed

23 files changed

+2161
-1345
lines changed

db/4_functions.sql

Lines changed: 302 additions & 77 deletions
Large diffs are not rendered by default.

src/api/models/dto/DisbursementDTO.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@ export interface DisbursementDTO {
66
disbursed_amount?: number,
77
due_date?: Date,
88
tax_year?: number,
9-
issue_date?: number,
9+
issue_date?: Date,
1010
paid_amount?: number,
1111
change_reason_id?: number,
1212
financial_batch_id?: number,
1313
financial_batch_id_year?: number,
1414
financial_batch_run_date?: Date,
1515
financial_batch_serial_no?: number,
16-
transaction_number?: string,
16+
transaction_number?: number,
1717
csl_cert_seq_number?: number,
1818
ecert_sent_date?: Date,
1919
ecert_response_date?: Date,

src/api/models/dto/calculated/Assessment.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,5 @@ export interface IAssessmentCalculated {
3030
pstudy_months?: number;
3131
pstudy_weeks?: number;
3232
new_calc?: boolean;
33+
previous_upgrade_weeks?: number;
3334
}

src/api/repositories/assessment/assessment-cslft-repository.ts

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ export class AssessmentCslftRepository extends AssessmentBaseRepository {
6868
private assess_id?: number;
6969
private study_period_id: number = 2;
7070
private prestudy_period_id: number = 1;
71+
private csl_letter_flag: boolean = false;
7172

7273
// Utils
7374
private numHelper: NumbersHelper;
@@ -671,7 +672,7 @@ export class AssessmentCslftRepository extends AssessmentBaseRepository {
671672
this.assessment.prestudy_bus_flag = this.application.prestudy_bus;
672673
this.assessment.family_size = await this.getParentFamilySize(this.application.id);
673674
this.assessment.parent_ps_depend_count = await this.getParentDependentCount(this.application.id, true);
674-
this.assessment.parent_province_id = await this.provinceRepo.getStudentProvinceIdByApplication(this.application.id);
675+
this.assessment.parent_province_id = await this.provinceRepo.getStudentProvinceIdByApplication(this.application.id, 4);
675676
this.assessment.total_grant_awarded = await this.disbursementRepo.getTotalGrantAmount(this.application.id);
676677

677678
const canadianProvinces = [
@@ -868,8 +869,41 @@ export class AssessmentCslftRepository extends AssessmentBaseRepository {
868869
await this.loadData(funding_request_id, false);
869870
this.assessment = assessment;
870871

872+
this.disbursement.assessment_id = this.assessment.id;
873+
this.disbursement.funding_request_id = funding_request_id;
874+
this.disbursement.issue_date = new Date();
871875

876+
const positiveDisbursement = (): boolean => ((this.assessment.net_amount ?? 0) > 0 && this.assessment.assessment_type_id === 3);
877+
this.disbursement.disbursed_amount = positiveDisbursement() ? 0 : this.assessment.net_amount;
878+
this.disbursement.paid_amount = positiveDisbursement() ? 0 : this.assessment.net_amount;
879+
880+
this.csl_letter_flag = positiveDisbursement();
881+
882+
const isNetAmountAndAssessmentType = (assessmentType: number): boolean => ((this.assessment.net_amount ?? 0) >= 0 && this.assessment.assessment_type_id !== assessmentType);
883+
if ((this.assessment.net_amount ?? 0) < 0) {
884+
this.disbursement.transaction_number = await this.disbursementRepo.getMaxTransaction(funding_request_id);
885+
}
886+
else {
887+
if (isNetAmountAndAssessmentType(3)) {
888+
this.disbursement.disbursement_type_id = 4;
889+
890+
if ((this.assessment.csl_assessed_need ?? 0) > 0 || (this.assessment.total_grant_awarded ?? 0) > 0 && (this.application.academic_year_id ?? 0) > 2012) {
891+
await this.getMsfaaInfo("Disburse");
892+
}
872893

894+
if ((this.assessment.net_amount ?? 0) > 0 && this.assessment.assessment_type_id !== 3) {
895+
this.funding_request.status_id = 7;
896+
this.funding_request.status_date = new Date();
897+
898+
this.disbursement.transaction_number = await this.disbursementRepo.getNextTransactionSequenceValue();
899+
}
900+
}
901+
}
902+
903+
if (!this.assessment.csl_over_reason_id) {
904+
this.assessment.over_award = Math.max((this.assessment.over_award ?? 0) - (this.assessment.net_amount ?? 0), 0);
905+
}
906+
873907
return {
874908
disbursement: this.disbursement,
875909
assessment: this.assessment,

src/api/repositories/assessment/assessment-sta-repository.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ export class AssessmentSTA extends AssessmentBaseRepository {
1414
this.applicationRepo = new ApplicationRepository(maindb);
1515
}
1616

17-
async getNewAssessmentSTA(
17+
async getNewInfo(
1818
application_id: number,
1919
funding_request_id: number,
2020

21-
): Promise<AssessmentDTO | undefined> {
21+
): Promise<AssessmentDTO> {
2222

2323
let initValues: AssessmentDTO = {};
2424

@@ -56,7 +56,7 @@ export class AssessmentSTA extends AssessmentBaseRepository {
5656
initValues.years_funded = await this.getScalarValue<number>("fn_get_total_funded_years", [this.application.student_id || 0, application_id]);
5757
initValues.disbursements_required = 1; // always is 1
5858
initValues.previous_weeks = await this.getScalarValue<number>("fn_get_previous_weeks_sfa", [
59-
"Normal",
59+
"'Normal'",
6060
this.application.student_id || 0,
6161
this.application.id || 0
6262

@@ -70,11 +70,11 @@ export class AssessmentSTA extends AssessmentBaseRepository {
7070
initValues.assessed_weeks || 0,
7171
moment().year() // prev_weeks_curr_yr
7272
]);
73-
// initValues.previous_upgrade_weeks = await this.getScalarValue<number>("fn_get_previous_weeks_sfa", [
74-
// "Upgrade",
75-
// this.application.student_id || 0,
76-
// this.application.id || 0
77-
// ]);
73+
initValues.previous_upgrade_weeks = await this.getScalarValue<number>("fn_get_previous_weeks_sfa", [
74+
"'Upgrade'",
75+
this.application.student_id || 0,
76+
this.application.id || 0
77+
]);
7878
initValues.weekly_amount = await this.getScalarValue<number>("fn_get_weekly_amount_sta", [application_id]);
7979

8080

src/api/repositories/assessment/assessment-yg-repository.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ export class AssessmentYukonGrant extends AssessmentBaseRepository {
1919
disburseAmountList: number[],
2020
student_id: number,
2121
application_id: number,
22+
program_division: number,
2223

2324
): Promise<AssessmentDTO | undefined> {
2425

@@ -56,7 +57,9 @@ export class AssessmentYukonGrant extends AssessmentBaseRepository {
5657

5758
const disburse_required = await this.getScalarValue<number>("fn_disbursments_required", [
5859
application_id,
59-
assessment.id || 0]);
60+
assessment.id || 0,
61+
program_division,
62+
]);
6063

6164
let disbursed_amt = null;
6265

@@ -87,7 +90,7 @@ export class AssessmentYukonGrant extends AssessmentBaseRepository {
8790
String(refrehData.airfare_amount),
8891
String(refrehData.weekly_amount),
8992
String(refrehData.weeks_allowed),
90-
String(refrehData.id || 0),
93+
String(refrehData.assessment_adj_amount || 0),
9194
]);
9295

9396
refrehData.pre_leg_amount = await this.getScalarValue<number>("fn_get_old_total", [
@@ -120,6 +123,7 @@ export class AssessmentYukonGrant extends AssessmentBaseRepository {
120123
delete assessmentToInsert.read_only_data;
121124
delete assessmentToInsert.id;
122125
delete assessmentToInsert.assessment_id;
126+
delete assessmentToInsert.program_division;
123127

124128
const insertedAssessment: any = await this.mainDb("sfa.assessment")
125129
.insert({ ...assessmentToInsert })
@@ -162,14 +166,15 @@ export class AssessmentYukonGrant extends AssessmentBaseRepository {
162166
delete assessmentToUpdate.assessment_id;
163167
delete assessmentToUpdate.id;
164168
delete assessmentToUpdate.funding_request_id;
169+
delete assessmentToUpdate.program_division;
165170

166171
const updatedAssessment: any = await this.mainDb("sfa.assessment")
167172
.where({ id: assessment_id })
168173
.update({ ...assessmentToUpdate })
169-
170174
if (disbursementList.length) {
171175
// Insert the disbursement list
172176
for (const item of disbursementList) {
177+
173178
if (item?.id && (item?.assessment_id === assessment_id)
174179
&& (item?.funding_request_id === funding_request_id)) {
175180
const resUpdate = await this.mainDb("sfa.disbursement")
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
export * from "./assessment-cslft-repository";
2-
export * from "./assessment-yg-repository";
2+
export * from "./assessment-yg-repository";
3+
export * from "./assessment-sta-repository";

src/api/repositories/disbursement/disbursement-repository.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,4 +45,20 @@ export class DisbursementRepository extends BaseRepository {
4545

4646
return result;
4747
}
48+
49+
async getMaxTransaction(funding_request_id?: number): Promise<number> {
50+
let result = 0;
51+
52+
if (funding_request_id) {
53+
result = await this.getScalarValue<number>("fn_get_disbursement_max_transaction", [funding_request_id]);
54+
}
55+
56+
return result;
57+
}
58+
59+
async getNextTransactionSequenceValue(): Promise<number> {
60+
const query = await this.mainDb.raw("SELECT NEXT VALUE FOR sfa.CSL_TRANSACTION_SEQ as nextVal;");
61+
const result: Partial<{ nextVal?: number }> = this.singleResult(query);
62+
return result.nextVal ?? 0;
63+
}
4864
}

0 commit comments

Comments
 (0)