53 lines
1.7 KiB
TypeScript
53 lines
1.7 KiB
TypeScript
import "@angular/compiler";
|
|
import { CalendarService, SelectedDates, DayType, SelectableDayType } from './src/app/services/calendar-service';
|
|
import { DateCacheService } from './src/app/services/date-cache.service';
|
|
import { RuleService } from './src/app/services/rule-service';
|
|
|
|
const cs = new CalendarService();
|
|
cs['dateCache'] = {
|
|
getTodayComponents: () => {
|
|
const d = new Date();
|
|
return { date: d.getDate(), month: d.getMonth(), year: d.getFullYear() };
|
|
}
|
|
} as any;
|
|
|
|
const sd = cs.getSelectedDatesForPeriod(new Date(), new Date(new Date().setFullYear(new Date().getFullYear() + 1)));
|
|
|
|
console.log("Selected dates length:", sd._datesSelected.length);
|
|
|
|
const rules = [
|
|
{
|
|
id: 'default-samedi-malin',
|
|
name: 'Samedi Malin',
|
|
type: 'if_then',
|
|
enabled: true,
|
|
dayOfWeek: 6,
|
|
placeDays: 2,
|
|
placeType: 'cp',
|
|
placement: 'auto',
|
|
rewardDays: 1,
|
|
rewardType: 'other'
|
|
},
|
|
{
|
|
id: 'default-christmas',
|
|
name: 'Vacances de Noël',
|
|
type: 'time_window',
|
|
enabled: true,
|
|
startDate: '2026-12-19T23:00:00.000Z',
|
|
endDate: '2027-01-02T23:00:00.000Z',
|
|
placeDays: 5,
|
|
placeType: 'any'
|
|
}
|
|
] as any;
|
|
|
|
const vacs = [
|
|
{ id: '1', type: 'cp', numberOfDays: 5, expiryDate: new Date(new Date().setFullYear(new Date().getFullYear() + 1)) },
|
|
{ id: '2', type: 'rtt', numberOfDays: 5, expiryDate: new Date(new Date().setFullYear(new Date().getFullYear() + 1)) },
|
|
];
|
|
|
|
sd.optimizeVacations(vacs, rules, cs, new Date(), new Date(new Date().setFullYear(new Date().getFullYear() + 1))).then(res => {
|
|
console.log("Remaining:", res);
|
|
const vacPlaced = sd._datesSelected.filter(d => ['cp', 'rtt', 'other'].includes(d.type as string));
|
|
console.log("Placed vacs:", vacPlaced.length);
|
|
});
|