/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package beans.directory.worktypes;
import beans.directory.worktypes.entities.WorkTypeDetails;
import framework.beans.directory.DirectoryBean;
import beans.directory.worktypes.entities.WorkType;
import beans.shedule.individual.SheduleIndividualWork;
import framework.generic.ClipsServerException;
import framework.generic.EMoveToTrash;
import javax.ejb.Stateful;
import beans.UserRightsSet;
import framework.security.UserRight;
/**
* Security - Ok.
* @author axe
*/
@Stateful(mappedName="clips-beans/DirectoryWorkTypeBean")
public class DirectoryWorkTypeBean extends DirectoryBean<WorkType, WorkTypeDetails>
implements DirectoryWorkTypeBeanRemote {
public DirectoryWorkTypeBean() {
super(WorkType.class, "тип работ");
}
@Override
protected UserRight getRightForCreateDirectoryItem() {
return UserRightsSet.WRITE_REGION_ADMIN_DIRECTORY;
}
@Override
protected UserRight getRightForWriteToDirectory() {
return UserRightsSet.WRITE_REGION_ADMIN_DIRECTORY;
}
@Override
protected void set(WorkType workType, WorkTypeDetails item) throws ClipsServerException {
workType.setTitle(item.title);
workType.setDirty(item.dirty);
workType.setAvailable(item.availiable);
workType.setCanOverlap(item.canBeOverlapped);
workType.setColor1(item.colorHightlight.getRGB());
workType.setColor2(item.colorShadow.getRGB());
workType.setDefaultBegin(item.defaultBegin);
workType.setDefaultEnd(item.defaultEnd);
workType.setTrash(item.hidden);
}
@Override
protected void onRemove(WorkType entity) throws ClipsServerException {
Field f[] = { new Field("workType", entity) };
if(getEntityCount(SheduleIndividualWork.class, f) > 0) {
throw new EMoveToTrash("Данный тип работ присутствует в расписании"
+ " одного или нескольких сотрудников, удаление невозможно");
}
}
}