synt_backend
Version:
Synt light-weight node backend service
48 lines (47 loc) • 1.57 kB
JavaScript
const { Model } = require("sequelize");
module.exports = (sequelize, DataTypes) => {
class FinancialYear extends Model {
/**
* Helper method for defining associations.
* This method is not a part of Sequelize lifecycle.
* The `models/index` file will call this method automatically.
*/
static associate(models) {
// define association here
FinancialYear.hasOne(models.Meeting);
FinancialYear.hasMany(models.Provision);
FinancialYear.hasOne(models.Settlement);
}
}
FinancialYear.init(
{
year: {
type: DataTypes.VIRTUAL,
get() {
let year1 = new Date(this.getDataValue("start_date")).getFullYear();
let year2 = new Date(this.getDataValue("end_date")).getFullYear();
return year1 !== year2 ? year1 + " - " + year2 : year1;
},
},
start_date: DataTypes.DATE,
end_date: DataTypes.DATE,
budget: DataTypes.INTEGER,
guarantee_fund: DataTypes.INTEGER,
reserve_capital: DataTypes.INTEGER,
months_per_invoice: DataTypes.INTEGER.UNSIGNED,
months_invoiced: DataTypes.INTEGER.UNSIGNED,
temp_months_invoiced: DataTypes.INTEGER.UNSIGNED,
is_budget_frequency_confirmed: DataTypes.BOOLEAN,
is_budget_amount_confirmed: DataTypes.BOOLEAN,
is_reserve_capital_confirmed: DataTypes.BOOLEAN,
is_guarantee_fund_confirmed: DataTypes.BOOLEAN,
is_settled: DataTypes.BOOLEAN,
},
{
sequelize,
modelName: "FinancialYear",
}
);
return FinancialYear;
};
;