Advertisement
Guest User

Untitled

a guest
May 22nd, 2019
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.45 KB | None | 0 0
  1. public PageData<PreOrdenPagoView> findBySearchPreOrdenPagoDTO(PageRequest pageRequest, SearchPreOrdenPagoDTO searchDTO) {
  2.  
  3. CriteriaBuilder criteriaBuilder = createCriteriaBuilder();
  4. CriteriaContainer containerOP = criteriaBuilder.getCriteriaContainer(searchDTO.getJsonQuery());
  5. CriteriaContainer containerPG = criteriaBuilder.getCriteriaContainer(searchDTO.getJsonQuery());
  6. List<CustomCriteria> criteriaPG = new ArrayList<CustomCriteria>();
  7. List<CustomCriteria> criteriaOP = new ArrayList<CustomCriteria>();
  8. for (CustomCriteria criteria : containerOP.criteria) {
  9. if (criteria.fieldName.equals("nroPago")) {
  10. criteria.fieldName = "pago.numeroDocumento";
  11. criteriaPG.add(criteria);
  12. } else {
  13. criteriaOP.add(criteria);
  14. }
  15. }
  16.  
  17. containerOP.criteria = criteriaOP;
  18. containerPG.criteria = criteriaPG;
  19.  
  20. DetachedCriteria criteria = createCriteriaBuilder().buildCriteria(PreOrdenPagoView.class, CriteriaContainerUtils.criteriaContainerToJson(containerOP), pageRequest.getOrderData());
  21. DetachedCriteria totalCriteria = createCriteriaBuilder().buildCriteria(PreOrdenPagoView.class, CriteriaContainerUtils.criteriaContainerToJson(containerOP), null);
  22.  
  23.  
  24. if (searchDTO.getClaseDocumento() != null) {
  25. criteria.add(Restrictions.eq("codigoClaseDocumento", searchDTO.getClaseDocumento().toString()));
  26. totalCriteria.add(Restrictions.eq("codigoClaseDocumento", searchDTO.getClaseDocumento().toString()));
  27. }
  28. criteria.add(Restrictions.ne("codigoClaseDocumento", CodigoClaseEnum.ES.toString()));
  29. if (searchDTO.getTipoBeneficiario() != null) {
  30. criteria.add(Restrictions.eq("tipoBeneficiario", searchDTO.getTipoBeneficiario().toString()));
  31. totalCriteria.add(Restrictions.eq("tipoBeneficiario", searchDTO.getTipoBeneficiario().toString()));
  32. }
  33.  
  34. Set<String> usuarios = ReportUtils.getUsuariosPermitidos(FuncionGrupoEnum.PREORDEN);
  35. if (usuarios != null && !usuarios.isEmpty()) {
  36. criteria.add(Restrictions.in("usuarioAlta", usuarios));
  37. totalCriteria.add(Restrictions.in("usuarioAlta", usuarios));
  38. }
  39. if (!userDetailsService.getCurrentOrganization().esCentral()) {
  40. criteria.add(Restrictions.eq("organizacionNumero", userDetailsService.getCurrentOrganization().getNumero()));
  41. }
  42.  
  43. if (!criteriaPG.isEmpty()) {
  44. DetachedCriteria criteriaPago = createCriteriaBuilder().buildCriteria(ItemPagoOrdenPago.class, CriteriaContainerUtils.criteriaContainerToJson(containerPG), null);
  45. criteriaPago.createAlias("pago", "pago");
  46. criteriaPago.setProjection(Projections.property("ordenPago.id"));
  47.  
  48. criteria.add(Subqueries.in("idPreOrden", criteriaPago));
  49. totalCriteria.add(Subqueries.in("idPreOrden", criteriaPago));
  50. }
  51.  
  52. PageData<PreOrdenPagoView> result = findByCriteria(pageRequest, criteria);
  53.  
  54. completarNumerosPago(result.getResultado());
  55.  
  56. BigDecimal importeTotal = BigDecimal.ZERO;
  57. if (result.getResultado() != null && !result.getResultado().isEmpty()) {
  58. totalCriteria.setProjection(Projections.sum("importeMonedaBase"));
  59. Object suma = totalCriteria.getExecutableCriteria(currentSession()).uniqueResult();
  60. importeTotal = new BigDecimal(suma != null ? suma.toString() : "0");
  61. }
  62. PreOrdenPagoViewSummary summary = new PreOrdenPagoViewSummary();
  63. summary.setImporteTotal(importeTotal);
  64. result.setSummaryData(summary);
  65. return result;
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement