Search in sources :

Example 1 with Gasto

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

the class AgregarGastoGUI method construirGasto.

public Gasto construirGasto(String concepto, double monto, FormaDePago formaDePago) {
    Empresa empresa = EmpresaActiva.getInstance().getEmpresa();
    Gasto gasto = new Gasto();
    gasto.setConcepto(concepto);
    gasto.setEliminado(false);
    gasto.setEmpresa(empresa);
    gasto.setFecha(new Date());
    gasto.setFormaDePago(formaDePago);
    gasto.setMonto(monto);
    gasto.setUsuario(UsuarioActivo.getInstance().getUsuario());
    return gasto;
}
Also used : Gasto(sic.modelo.Gasto) Empresa(sic.modelo.Empresa) Date(java.util.Date)

Example 2 with Gasto

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

the class CajaServiceImpl method getTotalMovimientosPorFormaDePago.

private double getTotalMovimientosPorFormaDePago(Caja caja, FormaDePago fdp) {
    double pagosVentasTotal = 0.0;
    double pagosComprasTotal = 0.0;
    double gastosTotal = 0.0;
    LocalDateTime ldt = caja.getFechaApertura().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
    if (caja.getFechaCierre() == null) {
        ldt = ldt.withHour(23);
        ldt = ldt.withMinute(59);
        ldt = ldt.withSecond(59);
    } else {
        ldt = caja.getFechaCierre().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
    }
    List<Pago> pagos = pagoService.getPagosEntreFechasYFormaDePago(caja.getEmpresa().getId_Empresa(), fdp.getId_FormaDePago(), caja.getFechaApertura(), Date.from(ldt.atZone(ZoneId.systemDefault()).toInstant()));
    List<Gasto> gastos = gastoService.getGastosEntreFechasYFormaDePago(caja.getEmpresa().getId_Empresa(), fdp.getId_FormaDePago(), caja.getFechaApertura(), Date.from(ldt.atZone(ZoneId.systemDefault()).toInstant()));
    for (Pago pago : pagos) {
        if (pago.getFactura() instanceof FacturaVenta) {
            pagosVentasTotal += pago.getMonto();
        } else if (pago.getFactura() instanceof FacturaCompra) {
            pagosComprasTotal += pago.getMonto();
        }
    }
    gastosTotal = gastos.stream().map((gasto) -> gasto.getMonto()).reduce(gastosTotal, (accumulator, _item) -> accumulator + _item);
    return pagosVentasTotal - pagosComprasTotal - gastosTotal;
}
Also used : LocalDateTime(java.time.LocalDateTime) Caja(sic.modelo.Caja) Pago(sic.modelo.Pago) FormaDePago(sic.modelo.FormaDePago) Date(java.util.Date) QCaja(sic.modelo.QCaja) CajaRepository(sic.repository.CajaRepository) LocalDateTime(java.time.LocalDateTime) Autowired(org.springframework.beans.factory.annotation.Autowired) BooleanBuilder(com.querydsl.core.BooleanBuilder) HashMap(java.util.HashMap) Scheduled(org.springframework.scheduling.annotation.Scheduled) Rol(sic.modelo.Rol) ArrayList(java.util.ArrayList) Logger(org.apache.log4j.Logger) ICajaService(sic.service.ICajaService) Calendar(java.util.Calendar) ResourceBundle(java.util.ResourceBundle) Service(org.springframework.stereotype.Service) Empresa(sic.modelo.Empresa) Map(java.util.Map) Gasto(sic.modelo.Gasto) IFormaDePagoService(sic.service.IFormaDePagoService) EntityNotFoundException(javax.persistence.EntityNotFoundException) Sort(org.springframework.data.domain.Sort) Validator(sic.util.Validator) GregorianCalendar(java.util.GregorianCalendar) FormatterFechaHora(sic.util.FormatterFechaHora) DateExpression(com.querydsl.core.types.dsl.DateExpression) FacturaVenta(sic.modelo.FacturaVenta) BusinessServiceException(sic.service.BusinessServiceException) EstadoCaja(sic.modelo.EstadoCaja) ZoneId(java.time.ZoneId) IUsuarioService(sic.service.IUsuarioService) IPagoService(sic.service.IPagoService) BusquedaCajaCriteria(sic.modelo.BusquedaCajaCriteria) List(java.util.List) IGastoService(sic.service.IGastoService) Expressions(com.querydsl.core.types.dsl.Expressions) LocalDate(java.time.LocalDate) FacturaCompra(sic.modelo.FacturaCompra) IEmpresaService(sic.service.IEmpresaService) Transactional(org.springframework.transaction.annotation.Transactional) FacturaVenta(sic.modelo.FacturaVenta) Gasto(sic.modelo.Gasto) Pago(sic.modelo.Pago) FormaDePago(sic.modelo.FormaDePago) FacturaCompra(sic.modelo.FacturaCompra)

Example 3 with Gasto

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

the class GastoServiceImpl method eliminar.

@Override
@Transactional
public void eliminar(long idGasto) {
    Gasto gastoParaEliminar = this.getGastoPorId(idGasto);
    if (this.cajaService.getUltimaCaja(gastoParaEliminar.getEmpresa().getId_Empresa()).getEstado().equals(EstadoCaja.CERRADA)) {
        throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_gasto_caja_cerrada"));
    }
    gastoParaEliminar.setEliminado(true);
    gastoRepository.save(gastoParaEliminar);
}
Also used : Gasto(sic.modelo.Gasto) BusinessServiceException(sic.service.BusinessServiceException) Transactional(org.springframework.transaction.annotation.Transactional)

Example 4 with Gasto

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

the class CajaGUI method cargarTablaResumen.

private void cargarTablaResumen() {
    this.caja = RestClient.getRestTemplate().getForObject("/cajas/" + this.caja.getId_Caja(), Caja.class);
    Object[] renglonSaldoApertura = new Object[4];
    renglonSaldoApertura[0] = 0L;
    renglonSaldoApertura[1] = "Saldo Apertura";
    renglonSaldoApertura[2] = true;
    renglonSaldoApertura[3] = caja.getSaldoInicial();
    modeloTablaResumen.addRow(renglonSaldoApertura);
    List<Pago> pagos;
    List<Gasto> gastos;
    try {
        for (long idFormaDePago : caja.getTotalesPorFomaDePago().keySet()) {
            listaMovimientos.clear();
            FormaDePago fdp = RestClient.getRestTemplate().getForObject("/formas-de-pago/" + idFormaDePago, FormaDePago.class);
            Object[] fila = new Object[4];
            fila[0] = fdp.getId_FormaDePago();
            fila[1] = fdp.getNombre();
            fila[2] = fdp.isAfectaCaja();
            fila[3] = caja.getTotalesPorFomaDePago().get(idFormaDePago);
            modeloTablaResumen.addRow(fila);
            pagos = this.getPagosPorFormaDePago(idFormaDePago);
            pagos.stream().forEach((pago) -> {
                listaMovimientos.add(new Movimiento(pago));
            });
            gastos = this.getGastosPorFormaDePago(idFormaDePago);
            gastos.stream().forEach((gasto) -> {
                listaMovimientos.add(new Movimiento(gasto));
            });
            Collections.sort(listaMovimientos);
            mapMovimientos.put(idFormaDePago, new ArrayList<>(listaMovimientos));
        }
        this.cargarResultados();
        tbl_Resumen.setModel(modeloTablaResumen);
        tbl_Resumen.removeColumn(tbl_Resumen.getColumnModel().getColumn(0));
        tbl_Resumen.setDefaultRenderer(Double.class, new ColoresNumerosTablaRenderer());
    } catch (RestClientResponseException ex) {
        JOptionPane.showMessageDialog(this, ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
    } catch (ResourceAccessException ex) {
        LOGGER.error(ex.getMessage());
        JOptionPane.showMessageDialog(this, ResourceBundle.getBundle("Mensajes").getString("mensaje_error_conexion"), "Error", JOptionPane.ERROR_MESSAGE);
        this.dispose();
    }
}
Also used : Gasto(sic.modelo.Gasto) FormaDePago(sic.modelo.FormaDePago) Caja(sic.modelo.Caja) EstadoCaja(sic.modelo.EstadoCaja) ResourceAccessException(org.springframework.web.client.ResourceAccessException) ColoresNumerosTablaRenderer(sic.util.ColoresNumerosTablaRenderer) RestClientResponseException(org.springframework.web.client.RestClientResponseException) Pago(sic.modelo.Pago) FormaDePago(sic.modelo.FormaDePago)

Example 5 with Gasto

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

the class CajaGUI method btn_VerDetalleActionPerformed.

//GEN-LAST:event_btn_CerrarCajaActionPerformed
private void btn_VerDetalleActionPerformed(java.awt.event.ActionEvent evt) {
    //GEN-FIRST:event_btn_VerDetalleActionPerformed
    if (tbl_Movimientos.getSelectedRow() != -1) {
        long id = this.listaMovimientos.get(Utilidades.getSelectedRowModelIndice(tbl_Movimientos)).getIdMovimiento();
        TipoMovimientoCaja tipoMovimientoCaja = this.listaMovimientos.get(Utilidades.getSelectedRowModelIndice(tbl_Movimientos)).getTipoMovimientoCaja();
        try {
            if (tipoMovimientoCaja.equals(TipoMovimientoCaja.PAGO)) {
                Pago pago = RestClient.getRestTemplate().getForObject("/pagos/" + id, Pago.class);
                if (pago.getFactura() instanceof FacturaVenta) {
                    this.lanzarReporteFacturaVenta(pago.getFactura());
                }
                if (pago.getFactura() instanceof FacturaCompra) {
                    this.verDetalleFacturaCompra(pago.getFactura());
                }
            }
            if (tipoMovimientoCaja.equals(TipoMovimientoCaja.GASTO)) {
                Gasto gasto = RestClient.getRestTemplate().getForObject("/gastos/" + id, Gasto.class);
                String mensaje = "En Concepto de: " + gasto.getConcepto() + "\nMonto: " + gasto.getMonto() + "\nUsuario: " + gasto.getUsuario().getNombre();
                JOptionPane.showMessageDialog(this, mensaje, "Resumen de Gasto", JOptionPane.INFORMATION_MESSAGE);
            }
        } catch (RestClientResponseException ex) {
            JOptionPane.showMessageDialog(this, ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
        } catch (ResourceAccessException ex) {
            LOGGER.error(ex.getMessage());
            JOptionPane.showMessageDialog(this, ResourceBundle.getBundle("Mensajes").getString("mensaje_error_conexion"), "Error", JOptionPane.ERROR_MESSAGE);
        }
    }
}
Also used : FacturaVenta(sic.modelo.FacturaVenta) Gasto(sic.modelo.Gasto) RestClientResponseException(org.springframework.web.client.RestClientResponseException) Pago(sic.modelo.Pago) FormaDePago(sic.modelo.FormaDePago) ResourceAccessException(org.springframework.web.client.ResourceAccessException) FacturaCompra(sic.modelo.FacturaCompra)

Aggregations

Gasto (sic.modelo.Gasto)5 FormaDePago (sic.modelo.FormaDePago)3 Pago (sic.modelo.Pago)3 Date (java.util.Date)2 Transactional (org.springframework.transaction.annotation.Transactional)2 ResourceAccessException (org.springframework.web.client.ResourceAccessException)2 RestClientResponseException (org.springframework.web.client.RestClientResponseException)2 Caja (sic.modelo.Caja)2 Empresa (sic.modelo.Empresa)2 EstadoCaja (sic.modelo.EstadoCaja)2 FacturaCompra (sic.modelo.FacturaCompra)2 FacturaVenta (sic.modelo.FacturaVenta)2 BusinessServiceException (sic.service.BusinessServiceException)2 BooleanBuilder (com.querydsl.core.BooleanBuilder)1 DateExpression (com.querydsl.core.types.dsl.DateExpression)1 Expressions (com.querydsl.core.types.dsl.Expressions)1 LocalDate (java.time.LocalDate)1 LocalDateTime (java.time.LocalDateTime)1 ZoneId (java.time.ZoneId)1 ArrayList (java.util.ArrayList)1