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;
}
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);
}
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);
}
}
}
}
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;
}
Aggregations