diff --git a/libreplan-business/src/main/java/org/libreplan/business/workreports/entities/IWorkReportTypeBootstrap.java b/libreplan-business/src/main/java/org/libreplan/business/workreports/entities/IWorkReportTypeBootstrap.java new file mode 100644 index 000000000..793d1bbbd --- /dev/null +++ b/libreplan-business/src/main/java/org/libreplan/business/workreports/entities/IWorkReportTypeBootstrap.java @@ -0,0 +1,32 @@ +/* + * This file is part of LibrePlan + * + * Copyright (C) 2011 CafédeRed Solutions, S.L. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ +package org.libreplan.business.workreports.entities; + +import org.libreplan.business.IDataBootstrap; + + +/** + * Interface for {@link WorkReportTypeBootstrap}. + * + * @author Ignacio Díaz Teijido + */ + +public interface IWorkReportTypeBootstrap extends IDataBootstrap { + void loadRequiredData(); +} diff --git a/libreplan-business/src/main/java/org/libreplan/business/workreports/entities/PredefinedWorkReportTypes.java b/libreplan-business/src/main/java/org/libreplan/business/workreports/entities/PredefinedWorkReportTypes.java new file mode 100644 index 000000000..26e578a64 --- /dev/null +++ b/libreplan-business/src/main/java/org/libreplan/business/workreports/entities/PredefinedWorkReportTypes.java @@ -0,0 +1,44 @@ +/* + * This file is part of LibrePlan + * + * Copyright (C) 2011 CafédeRed Solutions, S.L. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ +package org.libreplan.business.workreports.entities; + +/** + * Defines the default {@link WorkReportType}. + * + * @author Ignacio Díaz Teijido + */ +public enum PredefinedWorkReportTypes { + DEFAULT("Default", true, true, true); + + private WorkReportType workReportType; + + private PredefinedWorkReportTypes(String name, boolean dateIsSharedByLines, + boolean resourceIsSharedInLines, boolean orderElementIsSharedInLines) { + workReportType = WorkReportType.create(); + workReportType.setName(name); + workReportType.setDateIsSharedByLines(dateIsSharedByLines); + workReportType.setResourceIsSharedInLines(resourceIsSharedInLines); + workReportType + .setOrderElementIsSharedInLines(orderElementIsSharedInLines); + } + + public WorkReportType getWorkReportType() { + return workReportType; + } +} diff --git a/libreplan-business/src/main/java/org/libreplan/business/workreports/entities/WorkReportTypeBootstrap.java b/libreplan-business/src/main/java/org/libreplan/business/workreports/entities/WorkReportTypeBootstrap.java new file mode 100644 index 000000000..991001704 --- /dev/null +++ b/libreplan-business/src/main/java/org/libreplan/business/workreports/entities/WorkReportTypeBootstrap.java @@ -0,0 +1,63 @@ +/* + * This file is part of LibrePlan + * + * Copyright (C) 2011 CafédeRed Solutions, S.L. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ +package org.libreplan.business.workreports.entities; + +import org.libreplan.business.common.daos.IEntitySequenceDAO; +import org.libreplan.business.common.entities.EntityNameEnum; +import org.libreplan.business.workreports.daos.IWorkReportTypeDAO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +/** + * Creates the default {@link WorkReportType}. + * + * @author Ignacio Díaz Teijido + */ + +@Component +@Scope("singleton") +public class WorkReportTypeBootstrap implements IWorkReportTypeBootstrap { + + @Autowired + private IWorkReportTypeDAO workReportTypeDAO; + + @Autowired + private IEntitySequenceDAO entitySequenceDAO; + + @Override + @Transactional + public void loadRequiredData() { + for (PredefinedWorkReportTypes predefinedWorkReportType : PredefinedWorkReportTypes + .values()) { + WorkReportType workReportType = predefinedWorkReportType + .getWorkReportType(); + if (!workReportTypeDAO + .existsOtherWorkReportTypeByName(workReportType)) { + workReportType.setCodeAutogenerated(true); + workReportType + .setCode(entitySequenceDAO + .getNextEntityCodeWithoutTransaction(EntityNameEnum.WORKREPORTTYPE)); + workReportTypeDAO.save(workReportType); + } + } + } + +}