//бин д/б аутентифицирован
checkAuthentic();
//ОДЗ
if(details.duration <= 0) {
throw new ClipsServerException("Нельзя записать на прием с нулевой длительностью");
}
checkIsNotInThePast(details.begin);
//check service renders
List<ServiceRender> ls = new ArrayList<ServiceRender>();
for(int i=0; i<details.serviceRenders.size(); i++) {
Integer sid = details.serviceRenders.get(i);
ServiceRender ser = findEntity(ServiceRender.class, sid);
if(ser.isRendered()) {
throwNeedAdminSecurityException("Одна из услуг уже оказана");
}
if(ser.getCancelled()) {
throwNeedAdminSecurityException("Одна из услуг уже отменена");
}
if(ser.getPolis().getClient().getId() != details.clientID) {
throw new EDataIntegrity("Попытка записать услугу пациента в прием другого");
}
ls.add(ser);
}
Collaborator collab = findEntity(Collaborator.class, details.collaboratorID);
if(collab.isTrash()) {
throw new ClipsServerException("Нельзя записать на прием к уволенному сотруднику");
}
SheduleReception sr = null;
if(details.id != 0) {
sr = findEntity(SheduleReception.class, details.id);