private boolean executeFreeProfessionalsJson(Date date) { // requisicao de banco para recuperar lista de profissionais livres, anexado com sua lista de // serviços, para mostrar na lista // selectedDateFreeFullProfList = FreeTimeCalculator.getFreeProfessionalsFromDate(date, // professionalDTOList); // selectedDateFreeProfessionalDTOSet = new ArrayList<>(); // if (selectedDateFreeFullProfList == null) { // Log.i("doInBackground", "Não conseguiu executar TaskRetrieveFreeDays, erro ao recuperar // selectedDateFreeFullProfList"); // selectedDateFreeProfessionalDTOSet = new ArrayList<>(); // return false; // } // gera lista de profissionais disponiveis // for (ProfessionalForSchedule professionalForSchedule : selectedDateFreeFullProfList) { // selectedDateFreeProfessionalDTOSet.add(professionalForSchedule.getProfessionalDTO()); // } ProfessionalService professionalService = new ProfessionalService(mParentActivity); Calendar calendar = Calendar.getInstance(TimeZone.getDefault()); calendar.setTime(date); try { System.out.println( "===================================CUST6.EXECUTEFREEPROFESSIONALSJSON================================="); System.out.println("Recuperando profissionais livres do calendar: " + calendar); System.out.println("Lista de Profs enviados: "); for (ProfessionalDTO professionalDTO : professionalDTOList) { System.out.println(professionalDTO.getName()); } selectedDateFreeProfessionalDTOSet = professionalService.findAvailableProfessionalsInSpecificDate( calendar, professionalDTOList); System.out.println("Profissionais recebidos em findProfessionalAvailableToScheduling: "); for (ProfessionalDTO professionalDTO : selectedDateFreeProfessionalDTOSet) { System.out.println(professionalDTO.getName() + " disponível"); } } catch (ServiceException ex) { Log.i( "doInBackground", "Não conseguiu executar TaskRetrieveFreeDays, erro ao recuperar selectedDateFreeProfessionalDTOSet"); selectedDateFreeProfessionalDTOSet = new LinkedHashSet<>(); return false; } if (selectedDateFreeProfessionalDTOSet == null) { Log.i( "doInBackground", "Não conseguiu executar TaskRetrieveFreeDays, selectedDateFreeProfessionalDTOSet está vazia"); selectedDateFreeProfessionalDTOSet = new LinkedHashSet<>(); return false; } return true; }
private boolean validateUtilDateAndProfessional(Date date, ProfessionalDTO professionalDTO) { // recupera dailySchedule para verificar se o o dia é util para o profissional if (date != null && professionalDTO != null) { Calendar toValidateCal = Calendar.getInstance(TimeZone.getDefault()); toValidateCal.setTime(date); System.out.println( "Validando profissional " + professionalDTO.getName() + " na data de " + toValidateCal); if (selectedDateFreeProfessionalDTOSet.contains(professionalDTO)) { // se o profissional selecionado estiver na lista de profissionais livres alimenta // professionalForSchedule // for (ProfessionalForSchedule professionalForSchedule : selectedDateFreeFullProfList) { // if (professionalForSchedule.getProfessionalDTO().getId().equals(professionalDTO.getId())) // { // initFinishVariables(professionalForSchedule, toValidateCal); // System.out.println("Validado profissional pelo selectedDateFreeProfessionalDTOSet"); // return true; // } // } initFinishVariables(professionalDTO, toValidateCal); return true; } else if (selectedProfFreeCalendars != null) { // se a lista de dias livres do profissional selecionado foi igual a data selecionada, // alimenta professionalForSchedule for (Calendar freeCalendar : selectedProfFreeCalendars) { if (DateUtilMoti.isSameDay(freeCalendar, toValidateCal) && selectedProfessionalDTO .getId() .equals( professionalDTO .getId())) // todo Falta verificar a veracidade do profissional com a // data??? { // ProfessionalForSchedule professionalForSchedule = new // ProfessionalForSchedule(dailyScheduleDTO.getProfessional(), // selectedProfServiceDTOList, dailyScheduleDTOs); initFinishVariables(professionalDTO, toValidateCal); System.out.println("Validado profissional pelo selectedProfFreeDailyScheduleDTOList"); return true; } } } } return false; }
private void highlightProfessionalDTOList( Set<ProfessionalDTO> availableProfessionalDTOs, Set<ProfessionalDTO> unavailableProfessionalsSet) { // limpa os dias marcados e profissional selecionado para mostrar profissionais disponiveis na // data selecionada for (ProfessionalDTO professionalDTO : availableProfessionalDTOs) { System.out.println("Nome: " + professionalDTO.getName()); } if (selectedProfessionalDTO != null) { // Toast.makeText(getActivity(), selectedProfessionalDTO.getName() + " não está livre no dia // selecionado.", Toast.LENGTH_LONG).show(); professionalLV.clearChoices(); selectedProfessionalDTO = null; } professionalAdapter.highlightProfessionals( availableProfessionalDTOs, unavailableProfessionalsSet); if (selectedProfFreeCalendars != null) selectedProfFreeCalendars.clear(); screenCalendar.clearHighlightedDates(); finishDownViewLoad(); }