Package framework.generic

Examples of framework.generic.EDataIntegrity


    @Override
    protected void onRemove(ClassificationAtc entity) throws ClipsServerException {
        Field f[] = { new Field("atc", entity) };
       
        if(getEntityCount(VidalAtc.class, f, "") > 0) {
            throw new EDataIntegrity("Данному классификатору соотвествует "
                    + "несколько элементов классификатора VIDAL, удаление невозможно");
        }
    }
View Full Code Here



  @SuppressWarnings("unchecked")
  private void checkValidSicklistDiagnosis(Sicklist entity, Diagnosis diag) throws ClipsServerException{
    if (diag.getReferenced() != null){
      throw new EDataIntegrity("Диагноз больничного листа не может быть сопутствующим");
    }
    if (diag.getServiceRender().getDisease() == null){
      throw new EDataIntegrity("Дигноз больничного должен быть добавлен в стат-талон");
    }
    boolean      isHasCurSicklists = false;
    @SuppressWarnings("unchecked")
    ArrayList<Sicklist>      list =
          new ArrayList<Sicklist>(findEntityList(Sicklist.class, "diagOpen.id", diag.getId()));
    list.addAll(findEntityList(Sicklist.class, "diagClose.id", diag.getId()));
    topfor: for (Sicklist found : list) {
      Sicklist        cur = entity;
      while (cur != null){
        if (found.getId() == cur.getId()){
          isHasCurSicklists = true;
        }
        cur = cur.getReferenced();
      }
    }
    if (list.size() > 0 && !isHasCurSicklists){
      throw new EDataIntegrity("По данному диагнозу уже выдан другой больничный лист");
    }
  }
View Full Code Here

    }
   
    @Override
    public Set<Integer> getVidals(int atc) throws ClipsServerException {
        if(atc == 0) {
            throw new EDataIntegrity("");
        }
       
        Iterator<VidalAtc> list = findEntityList(VidalAtc.class, "key.atc", atc).iterator();
        Set<Integer> res = new HashSet<Integer>();
        while(list.hasNext()) {
View Full Code Here

    if (getId() == 0) {
      checkCommandAccessibility(COMMAND_CREATE);
      actionPreformed = true;
      //System.out.println("Открытие больничного");
      if (d.entID != 0 && d.otherDirection != null) {
        throw new EDataIntegrity("Запрещено указывать две организации, куда выдан больничный");
      }
      entity.setEnterprise(d.entID == 0 ? null: findEntity(Enterprise.class, d.entID));
      entity.setOtherDirection(d.otherDirection);

      Diagnosis      diagnosis = findEntity(Diagnosis.class, d.diagOpenID);
      Sicklist      referenced = d.refID == 0? null: findEntity(Sicklist.class, d.refID);
      entity.setReferenced(referenced);
            //обновляем head
            if(referenced != null) {
                Sicklist head = referenced.getHead();
                if(head == null) {
                    head = referenced;
                }
                entity.setHead(head);
            }
           
      entity.setComment(d.comment);
      entity.setDisabilityType(findEntity(DisabilityType.class, d.disabID));
      // доделал код виталия, сотрудника создавшего больничный, можно установить по первому sickLong
      // (мое имхо отчеты будет выбирать страшний геморой)
      if (d.openerID != 0){
        if (d.altOpener != null){
          throw new EDataIntegrity("Указано одновременно два сотрудника, открывших больничный лист");
        }
        if (d.altLpu != null){
          throw new EDataIntegrity("Сотрудниник этой поликлиники выдал больнчный альтернативной. Внутренняя ошибка.");
        }
        entity.setOpener(findEntity(Collaborator.class, d.openerID));
        entity.setAltlpu(null);
        entity.setAltopener(null);
      }else{
        if (d.altLpu == null){
          throw new EDataIntegrity("Не указанна организация выдавшая больничный");
        }
       
        if (d.altOpener == null || d.altOpener.trim().length() < 3){
          throw new EDataIntegrity("Не указан сотрудник, открывший больничный лист");
        }
        entity.setOpener(null);
        entity.setAltlpu(d.altLpu);
        entity.setAltopener(d.altOpener);
      }
      entity.setDateOpen(d.dateOpen);

      // после того как был установлен Referenced
      checkValidSicklistDiagnosis(entity, diagnosis);
      if (referenced != null){
        if (referenced.getDiagClose() == null){
          throw new EDataIntegrity("Попытка продления незакрытого больничного листа, сперва закройте больничный лист");
        }
        if (referenced.getDiagOpen().getServiceRender().getDisease().getEmc().getId()
            != diagnosis.getServiceRender().getDisease().getEmc().getId()){
          throw new EDataIntegrity("Продляемый больничный находится в другой медицинской карте");
        }
      }
      entity.setDiagOpen(diagnosis);

      if (d.sickLongList == null || d.sickLongList.size() == 0){
        throw new EDataIntegrity("Не установлена дата окончания действия больничного");
      }
    }else{
      if (false
          || !isEntityEqualID(entity.getEnterprise(), d.entID)
          || !nullEqual(entity.getOtherDirection(), d.otherDirection)
          || !isEntityEqualID(entity.getReferenced(), d.refID)
          || !isEntityEqualID(entity.getDisabilityType(), d.disabID)
          || !isEntityEqualID(entity.getOpener(), d.openerID)
          || !nullEqual(entity.getAltlpu(), d.altLpu)
          || !nullEqual(entity.getAltopener(), d.altOpener)
          || !entity.getDateOpen().equals(d.dateOpen)
          || !nullEqual(entity.getOtherDirection(), d.otherDirection)
          || !isEntityEqualID(entity.getDiagOpen(), d.diagOpenID)
        ){
        throw new EDataIntegrity("Запрещено свободное редактирование больничного листа");
      }
    }
        return actionPreformed;
    }
View Full Code Here

        checkCommandAccessibility(COMMAND_WRITE_SERIAL);
      }
      actionPreformed = true;
            String msg = FormatChecker.check(FormatChecker.SICK_LIST_SERIAL, d.serial);
            if(msg != null) {
                throw new EDataIntegrity(msg);
            }
      entity.setSerial(d.serial);
      entity.setComment(d.comment);
      entity.setRegistrator(findEntity(Collaborator.class, getCollaboratorId()));
    }else{
      if (false
          || !nullEqual(entity.getSerial(), d.serial)
          || !isEntityEqualID(entity.getRegistrator(), d.registratorID)
          ){
        throw new EDataIntegrity("Запрещено свободное редактирование больничного листа");
      }
     }
        return actionPreformed;
    }
View Full Code Here

        if (entity.getDateToWork() == null && d.dateToWork != null) {
            checkCommandAccessibility(COMMAND_WRITE_CLOSE);
      actionPreformed = true;
            //System.out.println("Закрытие больничного");
            if (entity.getSerial() == null || entity.getSerial().trim().isEmpty()) {
                throw new EDataIntegrity("Запрещено закрывать больничный без серийного номера");
            }
      entity.setDateToWork(d.dateToWork);
            if (d.closerID != getCollaboratorId() && !isSuperUser()){
                throw new ESecurity("Запрещено указывать другого пользователя при продлении");
            }

            entity.setCloser(findEntity(Collaborator.class, d.closerID));
            entity.setComment(d.comment);
            entity.setSerrenClosed(d.serrenCloseID == 0 ? null : findEntity(ServiceRender.class, d.serrenCloseID));
      if (d.diagCloseID == 0){
        throw new EDataIntegrity("не установлен диагноз закрытия.");
      }
      Diagnosis    diagnosis = findEntity(Diagnosis.class, d.diagCloseID);
      checkValidSicklistDiagnosis(entity, diagnosis);
      if (entity.getDiagOpen().getServiceRender().getDisease().getEmc().getId() != diagnosis.getServiceRender().getDisease().getEmc().getId()){
        throw new EDataIntegrity("Диагнозы открытия и закрытия находятся в разных медицинских картах");
      }
            entity.setDiagClose(diagnosis);
            if (d.serrenCloseID == 0) {
                throw new EDataIntegrity("Не установлен талон или услуга закрытия.");
            }
            ServiceRender serrenClose = findEntity(ServiceRender.class, d.serrenCloseID);
            entity.setSerrenClosed(serrenClose);
    }else{
      if (false
          || !nullEqual(entity.getDateToWork(), d.dateToWork)
          || !isEntityEqualID(entity.getCloser(), d.closerID)
          || !isEntityEqualID(entity.getSerrenClosed(), d.serrenCloseID)
          || !isEntityEqualID(entity.getDiagClose(), d.diagCloseID)
          ){
        throw new EDataIntegrity("Запрещено свободное редактирование больничного листа");
      }
    }
        return actionPreformed;
    }
View Full Code Here

        // закрытие больничного
        if (onClose(entity, d)){
            actionPreformed = true;
        }
    if (!nullEqual(entity.getComment(), d.comment)){
      throw new EDataIntegrity("Запрещено свободное редактирование больничного листа");
    }
    //Проверка может продление
    ArrayList<SickLongDetails> newList = d.sickLongList;
    ArrayList<SickLongDetails> oldList = entity.getSickLongList(this);
    if (newList.containsAll(oldList) && newList.size() > oldList.size()) {
View Full Code Here

     */
    private void setSickLongList(Sicklist entity, ArrayList<SickLongDetails> newList,
            List<AuditDoc> auditDocList) throws ClipsServerException {

        if (newList.size() > Sicklist.SICKLIST_PROLONGATION_LIMIT) {
            throw new EDataIntegrity("Нельзя делать записи об освобождении от работы более "
                    + Sicklist.SICKLIST_PROLONGATION_LIMIT + " раз");
        }
        Collection<SickLongDetails> oldList = entity.getSickLongList(this);
        //Проверка - все ли старые записи находятся в новых
        if (!newList.containsAll(oldList)) {
            throw new EDataIntegrity("Запрещено изменять существующие продления больничного");
        }
        for (int i = 0; i < newList.size(); i++) {
            SickLongDetails sickLongDetails = newList.get(i);
            if (!oldList.contains(sickLongDetails)) {
        GregorianCalendar      calendar = new GregorianCalendar();
        calendar.setTime(sickLongDetails.date);
        calendar.add(GregorianCalendar.DAY_OF_MONTH, -1);
        Date      compareDate = calendar.getTime();
        for (SickLongDetails oldDetail : oldList) {
          if (oldDetail.date.compareTo(compareDate) > 0){
            throw new EDataIntegrity("Больничный должен быть продлен как минимум на один день");
          }
        }
                //Сохранение новой сущности продления
                SickLong sickLong = new SickLong();
                AuditDoc<SickLong> auditDoc = new AuditDoc<SickLong>(sickLong, getCollaborator());
View Full Code Here

     * @throws generic.ClipsServerException
     */
    @Override
    public Set<Integer> getMatters(int vidal) throws ClipsServerException {
        if(vidal == 0) {
            throw new EDataIntegrity("");
        }

        Iterator<VidalMatter> list = findEntityList(VidalMatter.class, "key.vidal", vidal).iterator();
        Set<Integer> res = new HashSet<Integer>();
        while (list.hasNext()) {
View Full Code Here

    @Override
    protected void onRemove(ClassificationFarm entity) throws ClipsServerException {
        Field f[] = { new Field("farm", entity) };
       
        if(getEntityCount(VidalFarm.class, f, "") > 0) {
            throw new EDataIntegrity("Данному классификатору соотвествует "
                    + "несколько элементов классификатора VIDAL, удаление невозможно");
        }
    }
View Full Code Here

TOP

Related Classes of framework.generic.EDataIntegrity

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.