Quarter calculation changed financial year to calander year
This commit is contained in:
parent
9590409213
commit
e472682224
@ -2,13 +2,7 @@
|
|||||||
const { Sequelize, Op } = require("sequelize");
|
const { Sequelize, Op } = require("sequelize");
|
||||||
const { Establishment, Submission, Emirate, EstablishmentUser, SubmissionProduct, SubmissionDeadline, QuarterlyWindowsConfiguration } = require("../models");
|
const { Establishment, Submission, Emirate, EstablishmentUser, SubmissionProduct, SubmissionDeadline, QuarterlyWindowsConfiguration } = require("../models");
|
||||||
|
|
||||||
function getQuarter(date) {
|
|
||||||
const month = date.getMonth() + 1;
|
|
||||||
if (month >= 4 && month <= 6) return "Q1";
|
|
||||||
if (month >= 7 && month <= 9) return "Q2";
|
|
||||||
if (month >= 10 && month <= 12) return "Q3";
|
|
||||||
return "Q4"; // Jan-Mar
|
|
||||||
}
|
|
||||||
|
|
||||||
function getQuarterDates(quarter, year) {
|
function getQuarterDates(quarter, year) {
|
||||||
switch (quarter) {
|
switch (quarter) {
|
||||||
@ -30,12 +24,12 @@ function getPrevCurrNextQuarter(date) {
|
|||||||
const year = date.getFullYear();
|
const year = date.getFullYear();
|
||||||
const quarters = ["Q1", "Q2", "Q3", "Q4"];
|
const quarters = ["Q1", "Q2", "Q3", "Q4"];
|
||||||
|
|
||||||
// map month -> index: 0=Q1(Apr-Jun),1=Q2(Jul-Sep),2=Q3(Oct-Dec),3=Q4(Jan-Mar)
|
|
||||||
const getQuarterIndex = (m) => {
|
const getQuarterIndex = (m) => {
|
||||||
if (m >= 4 && m <= 6) return 0; // Apr-Jun -> Q1
|
if (m >= 1 && m <= 3) return 0; // Jan-Mar -> Q1
|
||||||
if (m >= 7 && m <= 9) return 1; // Jul-Sep -> Q2
|
if (m >= 4 && m <= 6) return 1; // Apr-Jun -> Q2
|
||||||
if (m >= 10 && m <= 12) return 2; // Oct-Dec -> Q3
|
if (m >= 7 && m <= 9) return 2; // Jul-Sep -> Q3
|
||||||
return 3; // Jan-Mar -> Q4
|
if (m >= 10 && m <=12) return 3; // Oct-Dec -> Q4
|
||||||
};
|
};
|
||||||
|
|
||||||
const currentIndex = getQuarterIndex(month);
|
const currentIndex = getQuarterIndex(month);
|
||||||
@ -47,8 +41,8 @@ function getPrevCurrNextQuarter(date) {
|
|||||||
const previousQuarter = quarters[previousIndex];
|
const previousQuarter = quarters[previousIndex];
|
||||||
const nextQuarter = quarters[nextIndex];
|
const nextQuarter = quarters[nextIndex];
|
||||||
|
|
||||||
const previousQuarterYear = (currentIndex === 3) ? year - 1 : year;
|
const previousQuarterYear = (currentIndex === 1) ? year - 1 : year;
|
||||||
const nextQuarterYear = (currentIndex === 2) ? year + 1 : year;
|
const nextQuarterYear = (currentIndex === 3) ? year + 1 : year;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
previous_quarter: previousQuarter,
|
previous_quarter: previousQuarter,
|
||||||
@ -75,6 +69,8 @@ exports.getEstablishmentDashboard = async (req, res) => {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const submission_history = await Submission.findAll({
|
const submission_history = await Submission.findAll({
|
||||||
where: { establishment_id },
|
where: { establishment_id },
|
||||||
order: [["created_at", "DESC"]],
|
order: [["created_at", "DESC"]],
|
||||||
|
|||||||
@ -1,18 +1,18 @@
|
|||||||
// services/quarterService.js
|
// services/quarterService.js
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Quarter and Month details based on current quarter and financial year
|
* Get Quarter and Month details based on current quarter and Calander year
|
||||||
* @param {number} currentYear - e.g. 2025
|
* @param {number} currentYear - e.g. 2025
|
||||||
* @param {string} currentQuarter - e.g. 'Q4'
|
* @param {string} currentQuarter - e.g. 'Q4'
|
||||||
* @returns {object} - structured period data
|
* @returns {object} - structured period data
|
||||||
*/
|
*/
|
||||||
exports.getQuarterPeriods = (currentYear, currentQuarter) => {
|
exports.getQuarterPeriods = (currentYear, currentQuarter) => {
|
||||||
// Define quarters based on financial year (Apr–Mar)
|
// Define quarters based on Calander year (Jan–Dec)
|
||||||
const quarters = {
|
const quarters = {
|
||||||
Q1: ["Apr", "May", "Jun"],
|
Q1: ["Jan", "Feb", "Mar"],
|
||||||
Q2: ["Jul", "Aug", "Sep"],
|
Q2: ["Apr", "May", "Jun"],
|
||||||
Q3: ["Oct", "Nov", "Dec"],
|
Q3: ["Jul", "Aug", "Sep"],
|
||||||
Q4: ["Jan", "Feb", "Mar"],
|
Q4: ["Oct", "Nov", "Dec"],
|
||||||
};
|
};
|
||||||
|
|
||||||
const allQuarters = ["Q1", "Q2", "Q3", "Q4"];
|
const allQuarters = ["Q1", "Q2", "Q3", "Q4"];
|
||||||
@ -25,13 +25,10 @@ exports.getQuarterPeriods = (currentYear, currentQuarter) => {
|
|||||||
// --- Previous Quarter ---
|
// --- Previous Quarter ---
|
||||||
let previousQuarter = allQuarters[(currentIndex - 1 + 4) % 4];
|
let previousQuarter = allQuarters[(currentIndex - 1 + 4) % 4];
|
||||||
let previousYear = currentYear;
|
let previousYear = currentYear;
|
||||||
// If current quarter is Q1, previous year is same financial year → currentYear
|
|
||||||
// But Q1 (Apr-Jun) comes after Mar, so same financial year
|
|
||||||
if (currentQuarter === "Q1") {
|
if (currentQuarter === "Q1") {
|
||||||
previousYear = currentYear - 1;
|
previousYear = currentYear - 1;
|
||||||
} else if (currentQuarter === "Q4") {
|
}
|
||||||
previousYear = currentYear; // Q4 (Jan–Mar) belongs to same financial year end
|
|
||||||
}
|
|
||||||
|
|
||||||
// --- Forecast Quarter ---
|
// --- Forecast Quarter ---
|
||||||
let forecastQuarter = allQuarters[(currentIndex + 1) % 4];
|
let forecastQuarter = allQuarters[(currentIndex + 1) % 4];
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user