diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/timetracker/zoom/DetailItem.java b/ganttzk/src/main/java/org/zkoss/ganttz/timetracker/zoom/DetailItem.java index 150ca0a2d..0f3653fbd 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/timetracker/zoom/DetailItem.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/timetracker/zoom/DetailItem.java @@ -175,10 +175,7 @@ public final class DetailItem { } public void markBankHoliday() { - int dayOfWeek = getStartDate().dayOfWeek().get(); - if ((dayOfWeek == 6) || (dayOfWeek == 7)) { - setBankHoliday(true); - } + setBankHoliday(true); } } \ No newline at end of file diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/BankHolidaysMarker.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/BankHolidaysMarker.java index 15aad171a..a66afbbf7 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/BankHolidaysMarker.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/BankHolidaysMarker.java @@ -19,6 +19,8 @@ */ package org.navalplanner.web.planner.order; +import org.navalplanner.business.calendars.entities.BaseCalendar; +import org.navalplanner.business.common.Registry; import org.zkoss.ganttz.timetracker.zoom.DetailItem; import org.zkoss.ganttz.timetracker.zoom.IDetailItemModificator; import org.zkoss.ganttz.timetracker.zoom.ZoomLevel; @@ -28,10 +30,25 @@ import org.zkoss.ganttz.timetracker.zoom.ZoomLevel; */ public final class BankHolidaysMarker implements IDetailItemModificator { + + BaseCalendar calendar; + + public BankHolidaysMarker() { + this.calendar = Registry.getConfigurationDAO().getConfiguration() + .getDefaultCalendar(); + } + + public BankHolidaysMarker(BaseCalendar calendar) { + this.calendar = calendar; + } + @Override public DetailItem applyModificationsTo(DetailItem item, ZoomLevel z) { - if (z == ZoomLevel.DETAIL_FIVE) { - item.markBankHoliday(); + if (z == ZoomLevel.DETAIL_FIVE && calendar != null) { + if (calendar.getWorkableTimeAt(item.getStartDate().toLocalDate()) + .isZero()) { + item.markBankHoliday(); + } } return item; } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningModel.java index d4f4e3237..1240bb008 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningModel.java @@ -94,8 +94,8 @@ import org.navalplanner.web.planner.calendar.ICalendarAllocationCommand; import org.navalplanner.web.planner.chart.Chart; import org.navalplanner.web.planner.chart.ChartFiller; import org.navalplanner.web.planner.chart.EarnedValueChartFiller; -import org.navalplanner.web.planner.chart.EarnedValueChartFiller.EarnedValueType; import org.navalplanner.web.planner.chart.IChartFiller; +import org.navalplanner.web.planner.chart.EarnedValueChartFiller.EarnedValueType; import org.navalplanner.web.planner.consolidations.AdvanceConsolidationController; import org.navalplanner.web.planner.consolidations.IAdvanceConsolidationCommand; import org.navalplanner.web.planner.milestone.IAddMilestoneCommand; @@ -568,10 +568,12 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel { PlannerConfiguration configuration) { if (orderReloaded.getDeadline() != null) { configuration.setSecondLevelModificators(SeveralModificators - .create(new BankHolidaysMarker(), + .create(new BankHolidaysMarker(orderReloaded + .getCalendar()), createDeadlineShower(orderReloaded.getDeadline()))); } else { - configuration.setSecondLevelModificators(new BankHolidaysMarker()); + configuration.setSecondLevelModificators(new BankHolidaysMarker( + orderReloaded.getCalendar())); } }