Search in sources :

Example 1 with RenglonCuentaCorriente

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

the class CuentaCorrienteServiceImpl method asentarEnCuentaCorriente.

@Override
@Transactional
public void asentarEnCuentaCorriente(Nota n, TipoDeOperacion operacion) {
    if (operacion == TipoDeOperacion.ALTA) {
        RenglonCuentaCorriente rcc = new RenglonCuentaCorriente();
        if (n instanceof NotaCredito) {
            rcc.setComprobante("NOTA CREDITO " + (n.getTipoComprobante().equals(TipoDeComprobante.NOTA_CREDITO_A) ? "\"A\"" : n.getTipoComprobante().equals(TipoDeComprobante.NOTA_CREDITO_B) ? "\"B\"" : n.getTipoComprobante().equals(TipoDeComprobante.NOTA_CREDITO_X) ? "\"X\"" : "") + " " + n.getSerie() + " - " + n.getNroNota());
            rcc.setMonto(n.getTotal());
            // Descripción de los productos
            rcc.setDescripcion(n.getMotivo());
        }
        if (n instanceof NotaDebito) {
            rcc.setComprobante("NOTA DEBITO " + (n.getTipoComprobante().equals(TipoDeComprobante.NOTA_DEBITO_A) ? "\"A\"" : n.getTipoComprobante().equals(TipoDeComprobante.NOTA_DEBITO_B) ? "\"B\"" : n.getTipoComprobante().equals(TipoDeComprobante.NOTA_DEBITO_X) ? "\"X\"" : "") + " " + n.getSerie() + " - " + n.getNroNota());
            rcc.setMonto(-n.getTotal());
            Pago p = pagoService.getPagoPorId(((NotaDebito) n).getPagoId());
            String descripcion = "Fecha Pago: " + (new FormatterFechaHora(FormatterFechaHora.FORMATO_FECHA_HISPANO)).format(p.getFecha()) + " Nº " + p.getNroPago();
            if (p.getNota() != null && p.getNota().length() > 0) {
                descripcion += " Nota:" + p.getNota();
            }
            rcc.setDescripcion(descripcion);
        }
        rcc.setNota(n);
        rcc.setFecha(n.getFecha());
        rcc.setIdMovimiento(n.getIdNota());
        rcc.setTipoMovimiento(this.getTipoMovimiento(n));
        this.getCuentaCorrientePorCliente(n.getCliente().getId_Cliente()).getRenglones().add(rcc);
        this.renglonCuentaCorrienteService.asentarRenglonCuentaCorriente(rcc);
        LOGGER.warn("El renglon " + rcc + " se guardó correctamente.");
    }
    if (operacion == TipoDeOperacion.ELIMINACION) {
        RenglonCuentaCorriente rcc = this.renglonCuentaCorrienteService.getRenglonCuentaCorrienteDeNota(n, false);
        rcc.setEliminado(true);
        LOGGER.warn("El renglon " + rcc + " se eliminó correctamente.");
    }
}
Also used : FormatterFechaHora(sic.util.FormatterFechaHora) NotaDebito(sic.modelo.NotaDebito) NotaCredito(sic.modelo.NotaCredito) Pago(sic.modelo.Pago) RenglonCuentaCorriente(sic.modelo.RenglonCuentaCorriente) Transactional(org.springframework.transaction.annotation.Transactional)

Example 2 with RenglonCuentaCorriente

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

the class CuentaCorrienteServiceImpl method asentarEnCuentaCorriente.

@Override
@Transactional
public void asentarEnCuentaCorriente(Pago p, TipoDeOperacion operacion, Long idCliente) {
    if (operacion == TipoDeOperacion.ALTA) {
        RenglonCuentaCorriente rcc = new RenglonCuentaCorriente();
        rcc.setPago(p);
        rcc.setComprobante("PAGO Nº " + p.getNroPago());
        rcc.setDescripcion(p.getNota());
        rcc.setFecha(p.getFecha());
        rcc.setIdMovimiento(p.getId_Pago());
        rcc.setMonto(p.getMonto());
        rcc.setTipoMovimiento(TipoMovimiento.PAGO);
        if (p.getFactura() instanceof FacturaVenta) {
            this.getCuentaCorrientePorCliente(((FacturaVenta) p.getFactura()).getCliente().getId_Cliente()).getRenglones().add(rcc);
        } else if (idCliente != null) {
            this.getCuentaCorrientePorCliente(idCliente).getRenglones().add(rcc);
        }
        this.renglonCuentaCorrienteService.asentarRenglonCuentaCorriente(rcc);
        LOGGER.warn("El renglon " + rcc + " se guardó correctamente.");
    }
    if (operacion == TipoDeOperacion.ELIMINACION) {
        RenglonCuentaCorriente rcc = this.renglonCuentaCorrienteService.getRenglonCuentaCorrienteDePago(p, false);
        rcc.setEliminado(true);
        LOGGER.warn("El renglon " + rcc + " se eliminó correctamente.");
    }
}
Also used : FacturaVenta(sic.modelo.FacturaVenta) RenglonCuentaCorriente(sic.modelo.RenglonCuentaCorriente) Transactional(org.springframework.transaction.annotation.Transactional)

Example 3 with RenglonCuentaCorriente

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

the class CuentaCorrienteServiceImpl method getRenglonesCuentaCorriente.

@Override
public Page<RenglonCuentaCorriente> getRenglonesCuentaCorriente(long idCuentaCorriente, Date desde, Date hasta, Pageable pageable) {
    CuentaCorriente cc = this.getCuentaCorrientePorID(idCuentaCorriente);
    Page<RenglonCuentaCorriente> renglonesCuentaCorriente = cuentaCorrienteRepository.getRenglonesCuentaCorrientePorClienteEntreFechas(cc.getCliente().getId_Cliente(), desde, hasta, pageable);
    if (!renglonesCuentaCorriente.getContent().isEmpty()) {
        double saldo = this.getSaldoCuentaCorriente(false, renglonesCuentaCorriente.getContent().get(0).getFecha(), cc.getCliente().getId_Cliente());
        for (RenglonCuentaCorriente r : renglonesCuentaCorriente.getContent()) {
            saldo += r.getMonto();
            r.setSaldo(saldo);
            if (r.getTipoMovimiento() == TipoMovimiento.VENTA) {
                r.setCAE(facturaService.getCAEById(r.getIdMovimiento()));
            }
            if (r.getTipoMovimiento() == TipoMovimiento.CREDITO || r.getTipoMovimiento() == TipoMovimiento.DEBITO) {
                r.setCAE(notaService.getCAEById(r.getIdMovimiento()));
            }
        }
    }
    return renglonesCuentaCorriente;
}
Also used : RenglonCuentaCorriente(sic.modelo.RenglonCuentaCorriente) CuentaCorriente(sic.modelo.CuentaCorriente) RenglonCuentaCorriente(sic.modelo.RenglonCuentaCorriente)

Example 4 with RenglonCuentaCorriente

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

the class CuentaCorrienteGUI method btn_VerPagosActionPerformed.

// GEN-LAST:event_btnAutorizarNotaActionPerformed
private void btn_VerPagosActionPerformed(java.awt.event.ActionEvent evt) {
    // GEN-FIRST:event_btn_VerPagosActionPerformed
    try {
        if (tbl_Resultados.getSelectedRow() != -1) {
            boolean refrescar = false;
            if (tbl_Resultados.getSelectedRowCount() == 1) {
                int indexFilaSeleccionada = Utilidades.getSelectedRowModelIndice(tbl_Resultados);
                RenglonCuentaCorriente renglonCC = movimientosTotal.get(indexFilaSeleccionada);
                if (renglonCC.getTipoMovimiento() == TipoMovimiento.VENTA) {
                    PagosGUI gui_Pagos = new PagosGUI(RestClient.getRestTemplate().getForObject("/facturas/" + renglonCC.getIdMovimiento(), Factura.class));
                    gui_Pagos.setModal(true);
                    gui_Pagos.setLocationRelativeTo(this);
                    gui_Pagos.setVisible(true);
                    refrescar = gui_Pagos.isPagosCreados();
                } else if (renglonCC.getTipoMovimiento() == TipoMovimiento.DEBITO) {
                    PagosGUI gui_Pagos = new PagosGUI(RestClient.getRestTemplate().getForObject("/notas/" + renglonCC.getIdMovimiento(), NotaDebito.class));
                    gui_Pagos.setModal(true);
                    gui_Pagos.setLocationRelativeTo(this);
                    gui_Pagos.setVisible(true);
                    refrescar = gui_Pagos.isPagosCreados();
                } else {
                    JOptionPane.showInternalMessageDialog(this, ResourceBundle.getBundle("Mensajes").getString("mensaje_tipoDeMovimiento_incorrecto"), "Error", JOptionPane.ERROR_MESSAGE);
                }
            }
            refrescarVista(refrescar);
        }
    } 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 : Factura(sic.modelo.Factura) RestClientResponseException(org.springframework.web.client.RestClientResponseException) RenglonCuentaCorriente(sic.modelo.RenglonCuentaCorriente) Point(java.awt.Point) ResourceAccessException(org.springframework.web.client.ResourceAccessException)

Example 5 with RenglonCuentaCorriente

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

the class CuentaCorrienteGUI method btnAutorizarNotaActionPerformed.

// GEN-LAST:event_btnVerDetalleActionPerformed
private void btnAutorizarNotaActionPerformed(java.awt.event.ActionEvent evt) {
    // GEN-FIRST:event_btnAutorizarNotaActionPerformed
    if (tbl_Resultados.getSelectedRow() != -1 && tbl_Resultados.getSelectedRowCount() == 1) {
        int indexFilaSeleccionada = Utilidades.getSelectedRowModelIndice(tbl_Resultados);
        RenglonCuentaCorriente renglonCC = movimientosTotal.get(indexFilaSeleccionada);
        if (renglonCC.getTipoMovimiento() == TipoMovimiento.CREDITO || renglonCC.getTipoMovimiento() == TipoMovimiento.DEBITO) {
            try {
                RestClient.getRestTemplate().postForObject("/notas/" + renglonCC.getIdMovimiento() + "/autorizacion", null, Nota.class);
                JOptionPane.showMessageDialog(this, ResourceBundle.getBundle("Mensajes").getString("mensaje_nota_autorizada"), "Aviso", JOptionPane.INFORMATION_MESSAGE);
                refrescarVista(true);
            } 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);
            }
        } else {
            JOptionPane.showInternalMessageDialog(this, ResourceBundle.getBundle("Mensajes").getString("mensaje_tipoDeMovimiento_incorrecto"), "Error", JOptionPane.ERROR_MESSAGE);
        }
    }
}
Also used : RestClientResponseException(org.springframework.web.client.RestClientResponseException) RenglonCuentaCorriente(sic.modelo.RenglonCuentaCorriente) Point(java.awt.Point) ResourceAccessException(org.springframework.web.client.ResourceAccessException)

Aggregations

RenglonCuentaCorriente (sic.modelo.RenglonCuentaCorriente)10 Point (java.awt.Point)6 Transactional (org.springframework.transaction.annotation.Transactional)3 ResourceAccessException (org.springframework.web.client.ResourceAccessException)3 RestClientResponseException (org.springframework.web.client.RestClientResponseException)3 NotaDebito (sic.modelo.NotaDebito)2 File (java.io.File)1 IOException (java.io.IOException)1 CuentaCorriente (sic.modelo.CuentaCorriente)1 Factura (sic.modelo.Factura)1 FacturaVenta (sic.modelo.FacturaVenta)1 NotaCredito (sic.modelo.NotaCredito)1 Pago (sic.modelo.Pago)1 FormatterFechaHora (sic.util.FormatterFechaHora)1