horas
Version:
A simple CLI app to manage local daily tasks notation files.
75 lines (74 loc) • 2.74 kB
JavaScript
import * as utils from '../utils/index.js';
import * as timesheet from '../lib/timesheet/index.js';
import Time from '../lib/Time.js';
export function today(search) {
const today = new Date();
const result = timesheet.dayCalc(today, search);
if (search) {
timesheet.printSearchResult(result.registeredTime);
}
else {
timesheet.printDayCalcResult(today, result);
}
}
export function yesterday(search) {
const yesterday = utils.date.addDays(new Date(), -1);
const result = timesheet.dayCalc(yesterday, search);
if (search) {
timesheet.printSearchResult(result.registeredTime);
}
else {
timesheet.printDayCalcResult(yesterday, result);
}
}
export function day(dateText, search) {
const day = utils.date.parse(dateText);
if (!utils.date.validate(day)) {
throw new Error('Data informada é inválida.');
}
const result = timesheet.dayCalc(day, search);
if (search) {
timesheet.printSearchResult(result.registeredTime);
}
else {
timesheet.printDayCalcResult(day, result);
}
}
export function week(search, weekShift = 0) {
const week = utils.date.daysFromWeek(utils.date.addDays(new Date(), weekShift * 7));
console.log(`Semana: ${utils.date.format(week[0], 'dd/MM/yyyy')} - ${utils.date.format(week[week.length - 1], 'dd/MM/yyyy')}`);
const result = timesheet.listCalc(week, search);
if (result.registered.equals(new Time()))
throw new Error('As horas dessa semana ainda não foram lançadas no DevOps');
if (result.itemsFound === 0)
throw new Error('Não existe controle de horas para essa semana');
if (search) {
timesheet.printSearchResult(result.registered);
}
else {
timesheet.printWeekCalcResult(week, result);
}
}
export function month(search, monthShift = 0) {
const month = utils.date.addMonth(new Date(), monthShift);
const monthDays = utils.date.daysFromMonth(month);
console.log(`Mês: ${utils.date.format(month, 'MMMM/yyyy')}`);
const result = timesheet.listCalc(monthDays, search);
if (result.registered.isEmpty())
throw new Error('As horas desse mês ainda não foram lançadas no DevOps');
if (result.itemsFound === 0)
throw new Error('Não existe controle de horas para esse mês');
if (search) {
timesheet.printSearchResult(result.registered);
}
else {
timesheet.printMonthResult(month, result);
}
// const date = new Date();
// date.setDate(1);
// date.setMonth(date.getMonth() + (monthShift));
// console.log('calculate month', monthShift, {
// month: date.getMonth() + 1,
// year: date.getFullYear()
// }, search);
}