Search in sources :

Example 6 with Caja

use of sic.modelo.Caja in project sic by belluccifranco.

the class CajaServiceImpl method getCajasCriteria.

@Override
public List<Caja> getCajasCriteria(BusquedaCajaCriteria criteria) {
    //Empresa
    if (criteria.getEmpresa() == null) {
        throw new EntityNotFoundException(ResourceBundle.getBundle("Mensajes").getString("mensaje_empresa_no_existente"));
    }
    //Fecha
    if (criteria.isBuscaPorFecha() == true && (criteria.getFechaDesde() == null || criteria.getFechaHasta() == null)) {
        throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_caja_fechas_invalidas"));
    }
    if (criteria.isBuscaPorFecha() == true) {
        Calendar cal = new GregorianCalendar();
        cal.setTime(criteria.getFechaDesde());
        cal.set(Calendar.HOUR_OF_DAY, 0);
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.SECOND, 0);
        criteria.setFechaDesde(cal.getTime());
        cal.setTime(criteria.getFechaHasta());
        cal.set(Calendar.HOUR_OF_DAY, 23);
        cal.set(Calendar.MINUTE, 59);
        cal.set(Calendar.SECOND, 59);
        criteria.setFechaHasta(cal.getTime());
    }
    if (criteria.getEmpresa() == null) {
        throw new EntityNotFoundException(ResourceBundle.getBundle("Mensajes").getString("mensaje_empresa_no_existente"));
    }
    QCaja qcaja = QCaja.caja;
    BooleanBuilder builder = new BooleanBuilder();
    builder.and(qcaja.empresa.eq(criteria.getEmpresa()).and(qcaja.eliminada.eq(false)));
    if (criteria.isBuscaPorUsuario() == true) {
        builder.and(qcaja.usuarioCierraCaja.eq(criteria.getUsuario()));
    }
    if (criteria.isBuscaPorFecha() == true) {
        FormatterFechaHora formateadorFecha = new FormatterFechaHora(FormatterFechaHora.FORMATO_FECHAHORA_INTERNACIONAL);
        DateExpression<Date> fDesde = Expressions.dateTemplate(Date.class, "convert({0}, datetime)", formateadorFecha.format(criteria.getFechaDesde()));
        DateExpression<Date> fHasta = Expressions.dateTemplate(Date.class, "convert({0}, datetime)", formateadorFecha.format(criteria.getFechaHasta()));
        builder.and(qcaja.fechaApertura.between(fDesde, fHasta));
    }
    List<Caja> cajas = new ArrayList<>();
    cajaRepository.findAll(builder, new Sort(Sort.Direction.DESC, "fechaApertura")).iterator().forEachRemaining(cajas::add);
    return cajas;
}
Also used : FormatterFechaHora(sic.util.FormatterFechaHora) Calendar(java.util.Calendar) GregorianCalendar(java.util.GregorianCalendar) GregorianCalendar(java.util.GregorianCalendar) ArrayList(java.util.ArrayList) Caja(sic.modelo.Caja) QCaja(sic.modelo.QCaja) EstadoCaja(sic.modelo.EstadoCaja) EntityNotFoundException(javax.persistence.EntityNotFoundException) Date(java.util.Date) LocalDate(java.time.LocalDate) BusinessServiceException(sic.service.BusinessServiceException) QCaja(sic.modelo.QCaja) BooleanBuilder(com.querydsl.core.BooleanBuilder) Sort(org.springframework.data.domain.Sort)

Example 7 with Caja

use of sic.modelo.Caja in project sic by belluccifranco.

the class CajaServiceImpl method eliminar.

@Override
@Transactional
public void eliminar(Long idCaja) {
    Caja caja = this.getCajaPorId(idCaja);
    if (caja == null) {
        throw new EntityNotFoundException(ResourceBundle.getBundle("Mensajes").getString("mensaje_caja_no_existente"));
    }
    caja.setEliminada(true);
    this.actualizar(caja);
}
Also used : Caja(sic.modelo.Caja) QCaja(sic.modelo.QCaja) EstadoCaja(sic.modelo.EstadoCaja) EntityNotFoundException(javax.persistence.EntityNotFoundException) Transactional(org.springframework.transaction.annotation.Transactional)

Example 8 with Caja

use of sic.modelo.Caja in project sic by belluccifranco.

the class CajaServiceImpl method cerrarCajas.

// Todos los dias a las 00:00:30
@Scheduled(cron = "30 0 0 * * *")
public void cerrarCajas() {
    LOGGER.warn("Cierre automático de Cajas." + LocalDateTime.now());
    List<Empresa> empresas = this.empresaService.getEmpresas();
    for (Empresa empresa : empresas) {
        Caja ultimaCajaDeEmpresa = this.getUltimaCaja(empresa.getId_Empresa());
        if ((ultimaCajaDeEmpresa != null) && (ultimaCajaDeEmpresa.getEstado() == EstadoCaja.ABIERTA)) {
            LocalDate fechaActual = LocalDate.of(LocalDate.now().getYear(), LocalDate.now().getMonth(), LocalDate.now().getDayOfMonth());
            Calendar fechaHoraCaja = new GregorianCalendar();
            fechaHoraCaja.setTime(ultimaCajaDeEmpresa.getFechaApertura());
            LocalDate fechaCaja = LocalDate.of(fechaHoraCaja.get(Calendar.YEAR), fechaHoraCaja.get(Calendar.MONTH) + 1, fechaHoraCaja.get(Calendar.DAY_OF_MONTH));
            if (fechaCaja.compareTo(fechaActual) < 0) {
                this.cerrarCaja(ultimaCajaDeEmpresa.getId_Caja(), this.getTotalCaja(ultimaCajaDeEmpresa, true), ultimaCajaDeEmpresa.getUsuarioAbreCaja().getId_Usuario(), true);
            }
        }
    }
}
Also used : Empresa(sic.modelo.Empresa) Calendar(java.util.Calendar) GregorianCalendar(java.util.GregorianCalendar) GregorianCalendar(java.util.GregorianCalendar) Caja(sic.modelo.Caja) QCaja(sic.modelo.QCaja) EstadoCaja(sic.modelo.EstadoCaja) LocalDate(java.time.LocalDate) Scheduled(org.springframework.scheduling.annotation.Scheduled)

Example 9 with Caja

use of sic.modelo.Caja in project sic by belluccifranco.

the class CajaServiceImpl method getCajaPorId.

@Override
public Caja getCajaPorId(Long id) {
    Caja caja = cajaRepository.findOne(id);
    if (caja == null) {
        throw new EntityNotFoundException(ResourceBundle.getBundle("Mensajes").getString("mensaje_caja_no_existente"));
    }
    caja = this.cargarPagosyGastos(caja);
    caja.setTotalAfectaCaja(this.getTotalCaja(caja, true));
    caja.setTotalGeneral(this.getTotalCaja(caja, false));
    caja.setSaldoFinal(caja.getTotalGeneral());
    this.actualizar(caja);
    return caja;
}
Also used : Caja(sic.modelo.Caja) QCaja(sic.modelo.QCaja) EstadoCaja(sic.modelo.EstadoCaja) EntityNotFoundException(javax.persistence.EntityNotFoundException)

Aggregations

Caja (sic.modelo.Caja)9 EstadoCaja (sic.modelo.EstadoCaja)9 QCaja (sic.modelo.QCaja)6 LocalDate (java.time.LocalDate)4 Calendar (java.util.Calendar)4 EntityNotFoundException (javax.persistence.EntityNotFoundException)4 ArrayList (java.util.ArrayList)3 Date (java.util.Date)3 GregorianCalendar (java.util.GregorianCalendar)3 Transactional (org.springframework.transaction.annotation.Transactional)3 FormatterFechaHora (sic.util.FormatterFechaHora)3 BooleanBuilder (com.querydsl.core.BooleanBuilder)2 LocalDateTime (java.time.LocalDateTime)2 List (java.util.List)2 Sort (org.springframework.data.domain.Sort)2 Scheduled (org.springframework.scheduling.annotation.Scheduled)2 Empresa (sic.modelo.Empresa)2 BusinessServiceException (sic.service.BusinessServiceException)2 DateExpression (com.querydsl.core.types.dsl.DateExpression)1 Expressions (com.querydsl.core.types.dsl.Expressions)1