armisa-models
Version:
models of armisa!
35 lines (28 loc) • 921 B
text/typescript
export interface IFinancialPeriod {
id: number;
name: string;
isActive: boolean;
}
export class FinancialPeriod {
constructor(
public id: number,
public name: string,
public isActive: boolean,
) { }
static deserialize = (json: IFinancialPeriod[]): FinancialPeriod[] => {
if (json && json.length) {
let isAnyActive = false;
return json.map((financialPeriod, index) => {
const newData = new FinancialPeriod(financialPeriod.id, financialPeriod.name, financialPeriod.isActive);
if (newData.isActive) {
isAnyActive = true;
}
if (!isAnyActive && index === json.length - 1) {
newData.isActive = true;
}
return newData;
});
}
return [];
}
}