Search in sources :

Example 26 with RenglonFactura

use of sic.modelo.RenglonFactura 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 27 with RenglonFactura

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

the class PuntoDeVentaGUI method cargarRenglonesAlTable.

private void cargarRenglonesAlTable(EstadoRenglon[] estadosDeLosRenglones) {
    modeloTablaResultados = new ModeloTabla();
    this.setColumnas();
    int i = 0;
    boolean corte;
    for (RenglonFactura renglon : renglones) {
        Object[] fila = new Object[8];
        corte = false;
        /*Dentro de este While, el case según el valor leido en el array de la enumeración,
             (modelo tabla) asigna el valor correspondiente al checkbox del renglon.*/
        while (corte == false) {
            switch(estadosDeLosRenglones[i]) {
                case MARCADO:
                    {
                        fila[0] = true;
                        corte = true;
                        break;
                    }
                case DESMARCADO:
                    {
                        fila[0] = false;
                        corte = true;
                        break;
                    }
                /* En caso de que no sea un marcado o desmarcado, se considera que fue de un
                     renglon eliminado, entonces la estructura while continua iterando.*/
                case ELIMINADO:
                    {
                        i++;
                        break;
                    }
                /* El caso por defecto, se da cuando el método es ejecutado
                     desde otras partes que no sea eliminar, ya que la colección
                     contendrá valores vacíos ''.*/
                default:
                    {
                        fila[0] = false;
                        corte = true;
                    }
            }
        }
        i++;
        fila[1] = renglon.getCodigoItem();
        fila[2] = renglon.getDescripcionItem();
        fila[3] = renglon.getMedidaItem();
        fila[4] = renglon.getCantidad();
        fila[5] = renglon.getPrecioUnitario();
        fila[6] = renglon.getDescuento_porcentaje();
        fila[7] = renglon.getImporte();
        modeloTablaResultados.addRow(fila);
    }
    tbl_Resultado.setModel(modeloTablaResultados);
}
Also used : RenglonFactura(sic.modelo.RenglonFactura) Point(java.awt.Point)

Example 28 with RenglonFactura

use of sic.modelo.RenglonFactura 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)

Example 29 with RenglonFactura

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

the class PuntoDeVentaGUI method agregarRenglon.

private void agregarRenglon(RenglonFactura renglon) {
    try {
        boolean agregado = false;
        //busca entre los renglones al producto, aumenta la cantidad y recalcula el descuento        
        for (int i = 0; i < renglones.size(); i++) {
            if (renglones.get(i).getId_ProductoItem() == renglon.getId_ProductoItem()) {
                Producto producto = RestClient.getRestTemplate().getForObject("/productos/" + renglon.getId_ProductoItem(), Producto.class);
                renglones.set(i, RestClient.getRestTemplate().getForObject("/facturas/renglon?" + "idProducto=" + producto.getId_Producto() + "&tipoDeComprobante=" + this.tipoDeComprobante.name() + "&movimiento=" + Movimiento.VENTA + "&cantidad=" + (renglones.get(i).getCantidad() + renglon.getCantidad()) + "&descuentoPorcentaje=" + renglon.getDescuento_porcentaje(), RenglonFactura.class));
                agregado = true;
            }
        }
        //si no encuentra el producto entre los renglones, carga un nuevo renglon        
        if (agregado == false) {
            renglones.add(renglon);
        }
        //para que baje solo el scroll vertical
        Point p = new Point(0, tbl_Resultado.getHeight());
        sp_Resultado.getViewport().setViewPosition(p);
    } 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 : Producto(sic.modelo.Producto) RenglonFactura(sic.modelo.RenglonFactura) Point(java.awt.Point) RestClientResponseException(org.springframework.web.client.RestClientResponseException) Point(java.awt.Point) ResourceAccessException(org.springframework.web.client.ResourceAccessException)

Aggregations

RenglonFactura (sic.modelo.RenglonFactura)29 ArrayList (java.util.ArrayList)16 ResourceAccessException (org.springframework.web.client.ResourceAccessException)9 RestClientResponseException (org.springframework.web.client.RestClientResponseException)9 Point (java.awt.Point)7 Test (org.junit.Test)7 Producto (sic.modelo.Producto)7 FacturaVenta (sic.modelo.FacturaVenta)6 EstadoPedido (sic.modelo.EstadoPedido)4 Factura (sic.modelo.Factura)4 Pedido (sic.modelo.Pedido)4 RenglonPedido (sic.modelo.RenglonPedido)4 Date (java.util.Date)3 ClienteBuilder (sic.builder.ClienteBuilder)3 EmpresaBuilder (sic.builder.EmpresaBuilder)3 TransportistaBuilder (sic.builder.TransportistaBuilder)3 Medida (sic.modelo.Medida)3 Usuario (sic.modelo.Usuario)3 SpringBootTest (org.springframework.boot.test.context.SpringBootTest)2 CondicionIVABuilder (sic.builder.CondicionIVABuilder)2