mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-18 22:00:31 +00:00
add server to monorepo.
This commit is contained in:
@@ -0,0 +1,110 @@
|
||||
import { IDateRange, IFinancialDatePeriodsUnit } from '@/interfaces';
|
||||
import moment from 'moment';
|
||||
|
||||
export const FinancialDateRanges = (Base) =>
|
||||
class extends Base {
|
||||
/**
|
||||
* Retrieve previous period (PP) date of the given date.
|
||||
* @param {Date} fromDate -
|
||||
* @param {Date} toDate -
|
||||
* @param {IFinancialDatePeriodsUnit} unit -
|
||||
* @returns {Date}
|
||||
*/
|
||||
protected getPreviousPeriodDate = (
|
||||
date: Date,
|
||||
value: number = 1,
|
||||
unit: IFinancialDatePeriodsUnit = IFinancialDatePeriodsUnit.Day
|
||||
): Date => {
|
||||
return moment(date).subtract(value, unit).toDate();
|
||||
};
|
||||
|
||||
/**
|
||||
* Retrieves the different
|
||||
* @param {Date} fromDate
|
||||
* @param {Date} toDate
|
||||
* @returns
|
||||
*/
|
||||
protected getPreviousPeriodDiff = (fromDate: Date, toDate: Date) => {
|
||||
return moment(toDate).diff(fromDate, 'days') + 1;
|
||||
};
|
||||
|
||||
/**
|
||||
* Retrieves the periods period dates.
|
||||
* @param {Date} fromDate -
|
||||
* @param {Date} toDate -
|
||||
*/
|
||||
protected getPreviousPeriodDateRange = (
|
||||
fromDate: Date,
|
||||
toDate: Date,
|
||||
unit: IFinancialDatePeriodsUnit,
|
||||
amount: number = 1
|
||||
): IDateRange => {
|
||||
const PPToDate = this.getPreviousPeriodDate(toDate, amount, unit);
|
||||
const PPFromDate = this.getPreviousPeriodDate(fromDate, amount, unit);
|
||||
|
||||
return { toDate: PPToDate, fromDate: PPFromDate };
|
||||
};
|
||||
|
||||
/**
|
||||
* Retrieves the previous period (PP) date range of total column.
|
||||
* @param {Date} fromDate
|
||||
* @param {Date} toDate
|
||||
* @returns {IDateRange}
|
||||
*/
|
||||
protected getPPTotalDateRange = (
|
||||
fromDate: Date,
|
||||
toDate: Date
|
||||
): IDateRange => {
|
||||
const unit = this.getPreviousPeriodDiff(fromDate, toDate);
|
||||
|
||||
return this.getPreviousPeriodDateRange(
|
||||
fromDate,
|
||||
toDate,
|
||||
IFinancialDatePeriodsUnit.Day,
|
||||
unit
|
||||
);
|
||||
};
|
||||
|
||||
/**
|
||||
* Retrieves the previous period (PP) date range of date periods columns.
|
||||
* @param {Date} fromDate -
|
||||
* @param {Date} toDate -
|
||||
* @param {IFinancialDatePeriodsUnit}
|
||||
* @returns {IDateRange}
|
||||
*/
|
||||
protected getPPDatePeriodDateRange = (
|
||||
fromDate: Date,
|
||||
toDate: Date,
|
||||
unit: IFinancialDatePeriodsUnit
|
||||
): IDateRange => {
|
||||
return this.getPreviousPeriodDateRange(fromDate, toDate, unit, 1);
|
||||
};
|
||||
|
||||
// ------------------------
|
||||
// Previous Year (PY).
|
||||
// ------------------------
|
||||
/**
|
||||
* Retrieve the previous year of the given date.
|
||||
* @params {Date} date
|
||||
* @returns {Date}
|
||||
*/
|
||||
getPreviousYearDate = (date: Date) => {
|
||||
return moment(date).subtract(1, 'years').toDate();
|
||||
};
|
||||
|
||||
/**
|
||||
* Retrieves previous year date range.
|
||||
* @param {Date} fromDate
|
||||
* @param {Date} toDate
|
||||
* @returns {IDateRange}
|
||||
*/
|
||||
protected getPreviousYearDateRange = (
|
||||
fromDate: Date,
|
||||
toDate: Date
|
||||
): IDateRange => {
|
||||
const PYFromDate = this.getPreviousYearDate(fromDate);
|
||||
const PYToDate = this.getPreviousYearDate(toDate);
|
||||
|
||||
return { fromDate: PYFromDate, toDate: PYToDate };
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user