Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public PageData<PreOrdenPagoView> findBySearchPreOrdenPagoDTO(PageRequest pageRequest, SearchPreOrdenPagoDTO searchDTO) {
- CriteriaBuilder criteriaBuilder = createCriteriaBuilder();
- CriteriaContainer containerOP = criteriaBuilder.getCriteriaContainer(searchDTO.getJsonQuery());
- CriteriaContainer containerPG = criteriaBuilder.getCriteriaContainer(searchDTO.getJsonQuery());
- List<CustomCriteria> criteriaPG = new ArrayList<CustomCriteria>();
- List<CustomCriteria> criteriaOP = new ArrayList<CustomCriteria>();
- for (CustomCriteria criteria : containerOP.criteria) {
- if (criteria.fieldName.equals("nroPago")) {
- criteria.fieldName = "pago.numeroDocumento";
- criteriaPG.add(criteria);
- } else {
- criteriaOP.add(criteria);
- }
- }
- containerOP.criteria = criteriaOP;
- containerPG.criteria = criteriaPG;
- DetachedCriteria criteria = createCriteriaBuilder().buildCriteria(PreOrdenPagoView.class, CriteriaContainerUtils.criteriaContainerToJson(containerOP), pageRequest.getOrderData());
- DetachedCriteria totalCriteria = createCriteriaBuilder().buildCriteria(PreOrdenPagoView.class, CriteriaContainerUtils.criteriaContainerToJson(containerOP), null);
- if (searchDTO.getClaseDocumento() != null) {
- criteria.add(Restrictions.eq("codigoClaseDocumento", searchDTO.getClaseDocumento().toString()));
- totalCriteria.add(Restrictions.eq("codigoClaseDocumento", searchDTO.getClaseDocumento().toString()));
- }
- criteria.add(Restrictions.ne("codigoClaseDocumento", CodigoClaseEnum.ES.toString()));
- if (searchDTO.getTipoBeneficiario() != null) {
- criteria.add(Restrictions.eq("tipoBeneficiario", searchDTO.getTipoBeneficiario().toString()));
- totalCriteria.add(Restrictions.eq("tipoBeneficiario", searchDTO.getTipoBeneficiario().toString()));
- }
- Set<String> usuarios = ReportUtils.getUsuariosPermitidos(FuncionGrupoEnum.PREORDEN);
- if (usuarios != null && !usuarios.isEmpty()) {
- criteria.add(Restrictions.in("usuarioAlta", usuarios));
- totalCriteria.add(Restrictions.in("usuarioAlta", usuarios));
- }
- if (!userDetailsService.getCurrentOrganization().esCentral()) {
- criteria.add(Restrictions.eq("organizacionNumero", userDetailsService.getCurrentOrganization().getNumero()));
- }
- if (!criteriaPG.isEmpty()) {
- DetachedCriteria criteriaPago = createCriteriaBuilder().buildCriteria(ItemPagoOrdenPago.class, CriteriaContainerUtils.criteriaContainerToJson(containerPG), null);
- criteriaPago.createAlias("pago", "pago");
- criteriaPago.setProjection(Projections.property("ordenPago.id"));
- criteria.add(Subqueries.in("idPreOrden", criteriaPago));
- totalCriteria.add(Subqueries.in("idPreOrden", criteriaPago));
- }
- PageData<PreOrdenPagoView> result = findByCriteria(pageRequest, criteria);
- completarNumerosPago(result.getResultado());
- BigDecimal importeTotal = BigDecimal.ZERO;
- if (result.getResultado() != null && !result.getResultado().isEmpty()) {
- totalCriteria.setProjection(Projections.sum("importeMonedaBase"));
- Object suma = totalCriteria.getExecutableCriteria(currentSession()).uniqueResult();
- importeTotal = new BigDecimal(suma != null ? suma.toString() : "0");
- }
- PreOrdenPagoViewSummary summary = new PreOrdenPagoViewSummary();
- summary.setImporteTotal(importeTotal);
- result.setSummaryData(summary);
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement