phx-node
Version:
PHX NODE
40 lines (39 loc) • 1.9 kB
TypeScript
import { Logger } from "@nestjs/common";
import { PHXGrpcClientSystemService } from "src/module/grpc-client/grpc-client-system.service";
import { SETTING_TYPE } from "src/lib/types/tuition";
export interface ISettingEarlyPromotionItem {
school_id: number;
list_setting_detail: Array<{
code: string;
}>;
}
export interface ISettingEarlyPromotion {
listSettingEarlyPromotion: Array<ISettingEarlyPromotionItem>;
listSettingEarlyPromotionCondition: Array<ISettingEarlyPromotionItem>;
listSettingEarlyMustPayCondition: Array<ISettingEarlyPromotionItem>;
}
export interface IDataTuitionEarlyPromotion {
school_term_id?: number;
total_tuition: number;
total_to_pay: number;
total_promotion_computed: number;
total_promotion_reference: number;
}
export declare class PHXSettingFormulaPromotionV2 {
private readonly grpcClientSystemService;
logger: Logger;
constructor(grpcClientSystemService: PHXGrpcClientSystemService);
getSettingFormulaPromoByCode(code: string, setting_type: SETTING_TYPE, hostname: string): Promise<any>;
private getTotalToPayBySetting;
generateTuitionAfterPromotion(feeDebtRecord: Array<any>, listSettingEarlyPromotionBySchoolId: Array<any>, listSettingEarlyPromotionConditionBySchoolId: Array<any>, listSettingEarlyMustPayConditionBySchoolId: Array<any>): {
dataTuitionByYear: IDataTuitionEarlyPromotion;
listDataTuitionBySemester: IDataTuitionEarlyPromotion[];
};
getTotalPromotionForEarlyPromo(listSettingEarlyPromotion: Array<any>, listSettingEarlyPromotionCondition: Array<any>, recordItem: any): {
totalPromotionReference: number;
totalPromotionComputed: number;
};
private getTotalPromotionReference;
getFormulaSettingBySchoolId(listFormulaSetting: Array<any>, schoolId: number): any[];
checkIsLimitBySibling(listSetting: Array<any>): boolean;
}