Search in sources :

Example 11 with Pedido

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

the class FacturaServiceImpl method guardar.

@Override
@Transactional
public List<Factura> guardar(List<Factura> facturas, Long idPedido) {
    List<Factura> facturasProcesadas = new ArrayList<>();
    facturas.forEach((f) -> {
        productoService.actualizarStock(f, TipoDeOperacion.ALTA);
    });
    if (idPedido != null) {
        Pedido pedido = pedidoService.getPedidoPorId(idPedido);
        facturas.forEach((f) -> {
            f.setPedido(pedido);
        });
        for (Factura f : facturas) {
            Factura facturaGuardada = facturaRepository.save(this.procesarFactura(f));
            facturasProcesadas.add(facturaGuardada);
        }
        pedido.setFacturas(facturasProcesadas);
        pedidoService.actualizar(pedido);
        facturasProcesadas.stream().forEach((f) -> {
            this.actualizarFacturaEstadoPago(f);
            LOGGER.warn("La Factura " + f + " se guardó correctamente.");
        });
        pedidoService.actualizarEstadoPedido(pedido, facturasProcesadas);
    } else {
        facturasProcesadas = new ArrayList<>();
        for (Factura f : facturas) {
            List<Pago> pagosFactura = f.getPagos();
            f.setPagos(null);
            Factura facturaGuardada = facturaRepository.save(this.procesarFactura(f));
            facturasProcesadas.add(facturaGuardada);
            LOGGER.warn("La Factura " + facturaGuardada + " se guardó correctamente.");
            if (pagosFactura != null) {
                pagosFactura.forEach((p) -> {
                    pagoService.guardar(p);
                });
                f.setPagos(pagosFactura);
            }
            this.actualizarFacturaEstadoPago(facturaGuardada);
        }
    }
    return facturasProcesadas;
}
Also used : Pedido(sic.modelo.Pedido) ArrayList(java.util.ArrayList) RenglonFactura(sic.modelo.RenglonFactura) Factura(sic.modelo.Factura) Pago(sic.modelo.Pago) Transactional(org.springframework.transaction.annotation.Transactional)

Example 12 with Pedido

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

the class PuntoDeVentaGUI method construirPedido.

private void construirPedido() {
    try {
        this.pedido = new Pedido();
        this.pedido.setCliente(cliente);
        this.pedido.setEliminado(false);
        this.pedido.setEmpresa(empresa);
        this.pedido.setFacturas(null);
        this.pedido.setFecha(dc_fechaFactura.getDate());
        this.pedido.setFechaVencimiento(dc_fechaVencimiento.getDate());
        this.pedido.setObservaciones(txta_Observaciones.getText());
        this.pedido.setUsuario(UsuarioActivo.getInstance().getUsuario());
        double[] importes = new double[renglones.size()];
        int indice = 0;
        for (RenglonFactura renglon : renglones) {
            importes[indice] = renglon.getImporte();
            indice++;
        }
        this.pedido.setTotalEstimado(RestClient.getRestTemplate().getForObject("/facturas/subtotal?" + "importe=" + Arrays.toString(importes).substring(1, Arrays.toString(importes).length() - 1), double.class));
        this.pedido.setEstado(EstadoPedido.ABIERTO);
        List<RenglonPedido> renglonesPedido = new ArrayList<>();
        renglones.stream().forEach((r) -> {
            renglonesPedido.add(this.convertirRenglonFacturaARenglonPedido(r));
        });
        this.pedido.setRenglones(renglonesPedido);
    } 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 : RenglonPedido(sic.modelo.RenglonPedido) RenglonPedido(sic.modelo.RenglonPedido) Pedido(sic.modelo.Pedido) EstadoPedido(sic.modelo.EstadoPedido) ArrayList(java.util.ArrayList) RenglonFactura(sic.modelo.RenglonFactura) RestClientResponseException(org.springframework.web.client.RestClientResponseException) Point(java.awt.Point) ResourceAccessException(org.springframework.web.client.ResourceAccessException)

Example 13 with Pedido

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

the class PuntoDeVentaGUI method btn_ContinuarActionPerformed.

//GEN-LAST:event_txt_Decuento_porcentajeActionPerformed
private void btn_ContinuarActionPerformed(java.awt.event.ActionEvent evt) {
    //GEN-FIRST:event_btn_ContinuarActionPerformed
    if (renglones.isEmpty()) {
        JOptionPane.showMessageDialog(this, ResourceBundle.getBundle("Mensajes").getString("mensaje_factura_sin_renglones"), "Error", JOptionPane.ERROR_MESSAGE);
    } else {
        this.calcularResultados();
        try {
            if (!cmb_TipoComprobante.getSelectedItem().equals(TipoDeComprobante.PEDIDO)) {
                List<RenglonFactura> productosFaltantes = new ArrayList();
                for (RenglonFactura renglon : renglones) {
                    if (!RestClient.getRestTemplate().getForObject("/productos/" + renglon.getId_ProductoItem() + "/stock/disponibilidad?cantidad=" + renglon.getCantidad(), boolean.class)) {
                        productosFaltantes.add(renglon);
                    }
                }
                if (productosFaltantes.isEmpty()) {
                    CerrarVentaGUI gui_CerrarVenta = new CerrarVentaGUI(this, true);
                    gui_CerrarVenta.setVisible(true);
                    if (gui_CerrarVenta.isExito()) {
                        this.limpiarYRecargarComponentes();
                    }
                } else {
                    ProductosFaltantesGUI gui_ProductosFaltantes = new ProductosFaltantesGUI(productosFaltantes);
                    gui_ProductosFaltantes.setModal(true);
                    gui_ProductosFaltantes.setLocationRelativeTo(this);
                    gui_ProductosFaltantes.setVisible(true);
                }
            } else {
                //El Id es 0 cuando, se genera un pedido desde el punto de venta entrando por el botón nuevo de administrar pedidos.
                if (this.pedido == null || this.pedido.getId_Pedido() == 0) {
                    this.construirPedido();
                }
                List<Pedido> pedidos = Arrays.asList(RestClient.getRestTemplate().getForObject("/pedidos/busqueda/criteria?" + "idEmpresa=" + EmpresaActiva.getInstance().getEmpresa().getId_Empresa() + "&nroPedido=" + pedido.getNroPedido(), Pedido[].class));
                if (pedidos.isEmpty()) {
                    Pedido p = RestClient.getRestTemplate().postForObject("/pedidos", this.pedido, Pedido.class);
                    this.lanzarReportePedido(p);
                    this.limpiarYRecargarComponentes();
                } else if ((this.pedido.getEstado() == EstadoPedido.ABIERTO || this.pedido.getEstado() == null) && this.modificarPedido == true) {
                    this.actualizarPedido(this.pedido);
                    JOptionPane.showMessageDialog(this, "El pedido se actualizó correctamente.", "Aviso", JOptionPane.INFORMATION_MESSAGE);
                    this.dispose();
                }
            }
        } 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 : RenglonPedido(sic.modelo.RenglonPedido) Pedido(sic.modelo.Pedido) EstadoPedido(sic.modelo.EstadoPedido) ArrayList(java.util.ArrayList) RenglonFactura(sic.modelo.RenglonFactura) RestClientResponseException(org.springframework.web.client.RestClientResponseException) ResourceAccessException(org.springframework.web.client.ResourceAccessException)

Example 14 with Pedido

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

the class PuntoDeVentaGUI method actualizarPedido.

private void actualizarPedido(Pedido pedido) {
    try {
        pedido = RestClient.getRestTemplate().getForObject("/pedidos/" + pedido.getId_Pedido(), Pedido.class);
        pedido.setRenglones(this.convertirRenglonesFacturaARenglonesPedido(this.renglones));
        double[] importes = new double[renglones.size()];
        int indice = 0;
        for (RenglonFactura renglon : renglones) {
            importes[indice] = renglon.getImporte();
            indice++;
        }
        pedido.setTotalEstimado(RestClient.getRestTemplate().getForObject("/facturas/subtotal?" + "importe=" + Arrays.toString(importes).substring(1, Arrays.toString(importes).length() - 1), double.class));
        RestClient.getRestTemplate().put("/pedidos", pedido);
    } 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 : RenglonPedido(sic.modelo.RenglonPedido) Pedido(sic.modelo.Pedido) EstadoPedido(sic.modelo.EstadoPedido) RenglonFactura(sic.modelo.RenglonFactura) RestClientResponseException(org.springframework.web.client.RestClientResponseException) Point(java.awt.Point) ResourceAccessException(org.springframework.web.client.ResourceAccessException)

Aggregations

Pedido (sic.modelo.Pedido)14 EstadoPedido (sic.modelo.EstadoPedido)13 RenglonPedido (sic.modelo.RenglonPedido)13 ResourceAccessException (org.springframework.web.client.ResourceAccessException)9 RestClientResponseException (org.springframework.web.client.RestClientResponseException)9 ArrayList (java.util.ArrayList)8 RenglonFactura (sic.modelo.RenglonFactura)5 Date (java.util.Date)3 Cliente (sic.modelo.Cliente)3 Usuario (sic.modelo.Usuario)3 Point (java.awt.Point)2 List (java.util.List)2 ExecutionException (java.util.concurrent.ExecutionException)2 EntityNotFoundException (javax.persistence.EntityNotFoundException)2 SwingWorker (javax.swing.SwingWorker)2 Transactional (org.springframework.transaction.annotation.Transactional)2 Factura (sic.modelo.Factura)2 QPedido (sic.modelo.QPedido)2 BooleanBuilder (com.querydsl.core.BooleanBuilder)1 Desktop (java.awt.Desktop)1