Search in sources :

Example 6 with Pedido

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

the class FacturacionIntegrationTest method testFacturarPedido.

@Test
public void testFacturarPedido() {
    token = restTemplate.postForEntity(apiPrefix + "/login", new Credencial("test", "test"), String.class).getBody();
    Localidad localidad = new LocalidadBuilder().build();
    localidad.getProvincia().setPais(restTemplate.postForObject(apiPrefix + "/paises", localidad.getProvincia().getPais(), Pais.class));
    localidad.setProvincia(restTemplate.postForObject(apiPrefix + "/provincias", localidad.getProvincia(), Provincia.class));
    CondicionIVA condicionIVA = new CondicionIVABuilder().build();
    Empresa empresa = new EmpresaBuilder().withLocalidad(restTemplate.postForObject(apiPrefix + "/localidades", localidad, Localidad.class)).withCondicionIVA(restTemplate.postForObject(apiPrefix + "/condiciones-iva", condicionIVA, CondicionIVA.class)).build();
    empresa = restTemplate.postForObject(apiPrefix + "/empresas", empresa, Empresa.class);
    FormaDePago formaDePago = new FormaDePagoBuilder().withAfectaCaja(false).withEmpresa(empresa).withPredeterminado(true).withNombre("Efectivo").build();
    restTemplate.postForObject(apiPrefix + "/formas-de-pago", formaDePago, FormaDePago.class);
    Usuario credencial = new UsuarioBuilder().withId_Usuario(1).withEliminado(false).withNombre("Marcelo Cruz").withPassword("marce").withToken("yJhbGci1NiIsInR5cCI6IkpXVCJ9.eyJub21icmUiOiJjZWNpbGlvIn0.MCfaorSC7Wdc8rSW7BJizasfzsa").withRol(new ArrayList<>()).build();
    Cliente cliente = new ClienteBuilder().withEmpresa(empresa).withCondicionIVA(empresa.getCondicionIVA()).withLocalidad(empresa.getLocalidad()).withPredeterminado(true).withCredencial(credencial).withViajante(null).build();
    cliente = restTemplate.postForObject(apiPrefix + "/clientes", cliente, Cliente.class);
    Transportista transportista = new TransportistaBuilder().withEmpresa(empresa).withLocalidad(empresa.getLocalidad()).build();
    transportista = restTemplate.postForObject(apiPrefix + "/transportistas", transportista, Transportista.class);
    Medida medida = new MedidaBuilder().withEmpresa(empresa).build();
    medida = restTemplate.postForObject(apiPrefix + "/medidas", medida, Medida.class);
    Proveedor proveedor = new ProveedorBuilder().withEmpresa(empresa).withLocalidad(empresa.getLocalidad()).withCondicionIVA(empresa.getCondicionIVA()).build();
    proveedor = restTemplate.postForObject(apiPrefix + "/proveedores", proveedor, Proveedor.class);
    Rubro rubro = new RubroBuilder().withEmpresa(empresa).build();
    rubro = restTemplate.postForObject(apiPrefix + "/rubros", rubro, Rubro.class);
    Producto productoUno = (new ProductoBuilder()).withCodigo("1").withDescripcion("uno").withCantidad(10).withPrecioVentaPublico(2000).withIva_porcentaje(21.0).withIva_neto(420).withPrecioLista(2420).withEmpresa(empresa).withMedida(medida).withProveedor(proveedor).withRubro(rubro).build();
    Producto productoDos = (new ProductoBuilder()).withCodigo("2").withDescripcion("dos").withCantidad(6).withPrecioVentaPublico(2000).withIva_porcentaje(10.5).withIva_neto(210).withPrecioLista(2210).withEmpresa(empresa).withMedida(medida).withProveedor(proveedor).withRubro(rubro).build();
    productoUno = restTemplate.postForObject(apiPrefix + "/productos", productoUno, Producto.class);
    productoDos = restTemplate.postForObject(apiPrefix + "/productos", productoDos, Producto.class);
    Assert.assertTrue(restTemplate.getForObject(apiPrefix + "/productos/" + productoUno.getId_Producto() + "/stock/disponibilidad?cantidad=10", Boolean.class));
    Assert.assertTrue(restTemplate.getForObject(apiPrefix + "/productos/" + productoDos.getId_Producto() + "/stock/disponibilidad?cantidad=6", Boolean.class));
    RenglonFactura renglonUno = restTemplate.getForObject(apiPrefix + "/facturas/renglon?" + "idProducto=" + productoUno.getId_Producto() + "&tipoDeComprobante=" + TipoDeComprobante.FACTURA_B + "&movimiento=" + Movimiento.VENTA + "&cantidad=5" + "&descuentoPorcentaje=15", RenglonFactura.class);
    RenglonPedido renglonPedidoUno = (new RenglonPedidoBuilder()).withCantidad(renglonUno.getCantidad()).withDescuentoPorcentaje(renglonUno.getDescuento_porcentaje()).withDescuentoNeto(renglonUno.getDescuento_neto()).withProducto(productoUno).withSubTotal(renglonUno.getImporte()).build();
    RenglonFactura renglonDos = restTemplate.getForObject(apiPrefix + "/facturas/renglon?" + "idProducto=" + productoDos.getId_Producto() + "&tipoDeComprobante=" + TipoDeComprobante.FACTURA_B + "&movimiento=" + Movimiento.VENTA + "&cantidad=2" + "&descuentoPorcentaje=0", RenglonFactura.class);
    RenglonPedido renglonPedidoDos = (new RenglonPedidoBuilder()).withCantidad(renglonDos.getCantidad()).withDescuentoPorcentaje(renglonDos.getDescuento_porcentaje()).withDescuentoNeto(renglonDos.getDescuento_neto()).withProducto(productoDos).withSubTotal(renglonDos.getImporte()).build();
    List<RenglonPedido> renglonesPedido = new ArrayList<>();
    renglonesPedido.add(renglonPedidoUno);
    renglonesPedido.add(renglonPedidoDos);
    double[] importes = new double[renglonesPedido.size()];
    int indice = 0;
    for (RenglonPedido renglon : renglonesPedido) {
        importes[indice] = renglon.getSubTotal();
        indice++;
    }
    PedidoDTO pedido = new PedidoDTO();
    pedido.setCliente(cliente);
    pedido.setEmpresa(empresa);
    pedido.setFecha(new Date());
    pedido.setRenglones(renglonesPedido);
    pedido.setUsuario(restTemplate.getForObject(apiPrefix + "/usuarios/busqueda?nombre=test", Usuario.class));
    pedido.setTotalEstimado(restTemplate.getForObject(apiPrefix + "/facturas/subtotal?" + "importe=" + Arrays.toString(importes).substring(1, Arrays.toString(importes).length() - 1), double.class));
    pedido.setObservaciones("Pedido Test");
    pedido.setEstado(EstadoPedido.ABIERTO);
    Pedido pedidoRecuperado = restTemplate.postForObject(apiPrefix + "/pedidos", pedido, Pedido.class);
    assertEquals(pedido.getCliente(), pedidoRecuperado.getCliente());
    assertEquals(pedido.getEmpresa(), pedidoRecuperado.getEmpresa());
    assertEquals(pedido.getFecha(), pedidoRecuperado.getFecha());
    assertEquals(pedido.getUsuario(), pedidoRecuperado.getUsuario());
    assertEquals(pedido.getTotalEstimado(), pedidoRecuperado.getTotalEstimado(), 0);
    assertEquals(pedido.getObservaciones(), pedidoRecuperado.getObservaciones());
    assertEquals(pedido.getEstado(), EstadoPedido.ABIERTO);
    RenglonPedido[] renglonesDelPedido = restTemplate.getForObject(apiPrefix + "/pedidos/" + pedidoRecuperado.getId_Pedido() + "/renglones", RenglonPedido[].class);
    for (int i = 0; i < renglonesDelPedido.length; i++) {
        assertEquals(renglonesPedido.get(i).getCantidad(), renglonesDelPedido[i].getCantidad(), 0);
        assertEquals(renglonesPedido.get(i).getDescuento_neto(), renglonesDelPedido[i].getDescuento_neto(), 0);
        assertEquals(renglonesPedido.get(i).getDescuento_porcentaje(), renglonesDelPedido[i].getDescuento_porcentaje(), 0);
        assertEquals(renglonesPedido.get(i).getProducto(), renglonesDelPedido[i].getProducto());
        assertEquals(renglonesPedido.get(i).getSubTotal(), renglonesDelPedido[i].getSubTotal(), 0);
    }
    RenglonFactura[] renglonesParaFacturar = restTemplate.getForObject(apiPrefix + "/facturas/renglones/pedidos/" + pedidoRecuperado.getId_Pedido() + "?tipoDeComprobante=" + TipoDeComprobante.FACTURA_A, RenglonFactura[].class);
    importes = new double[1];
    double[] cantidades = new double[1];
    double[] ivaPorcentajeRenglones = new double[1];
    double[] ivaNetoRenglones = new double[1];
    importes[0] = renglonesParaFacturar[0].getImporte();
    cantidades[0] = renglonesParaFacturar[0].getCantidad();
    ivaPorcentajeRenglones[0] = renglonesParaFacturar[0].getIva_porcentaje();
    ivaNetoRenglones[0] = renglonesParaFacturar[0].getIva_neto();
    double subTotal = restTemplate.getRestTemplate().getForObject(apiPrefix + "/facturas/subtotal?" + "importe=" + Arrays.toString(importes).substring(1, Arrays.toString(importes).length() - 1), double.class);
    assertEquals(8500, subTotal, 0);
    double recargo_neto = restTemplate.getRestTemplate().getForObject(apiPrefix + "/facturas/recargo-neto?" + "subTotal=" + subTotal + "&recargoPorcentaje=10", double.class);
    assertEquals(850, recargo_neto, 0);
    double iva_105_netoFactura = restTemplate.getRestTemplate().getForObject(apiPrefix + "/facturas/iva-neto?" + "tipoDeComprobante=" + TipoDeComprobante.FACTURA_A + "&cantidades=" + Arrays.toString(cantidades).substring(1, Arrays.toString(cantidades).length() - 1) + "&ivaPorcentajeRenglones=" + Arrays.toString(ivaPorcentajeRenglones).substring(1, Arrays.toString(ivaPorcentajeRenglones).length() - 1) + "&ivaNetoRenglones=" + Arrays.toString(ivaNetoRenglones).substring(1, Arrays.toString(ivaNetoRenglones).length() - 1) + "&ivaPorcentaje=10.5" + "&descuentoPorcentaje=0" + "&recargoPorcentaje=0", double.class);
    assertEquals(0, iva_105_netoFactura, 0);
    double iva_21_netoFactura = restTemplate.getRestTemplate().getForObject(apiPrefix + "/facturas/iva-neto?" + "tipoDeComprobante=" + TipoDeComprobante.FACTURA_A + "&cantidades=" + Arrays.toString(cantidades).substring(1, Arrays.toString(cantidades).length() - 1) + "&ivaPorcentajeRenglones=" + Arrays.toString(ivaPorcentajeRenglones).substring(1, Arrays.toString(ivaPorcentajeRenglones).length() - 1) + "&ivaNetoRenglones=" + Arrays.toString(ivaNetoRenglones).substring(1, Arrays.toString(ivaNetoRenglones).length() - 1) + "&ivaPorcentaje=21" + "&descuentoPorcentaje=0" + "&recargoPorcentaje=0", double.class);
    assertEquals(1785, iva_21_netoFactura, 0);
    double subTotalBruto = restTemplate.getRestTemplate().getForObject(apiPrefix + "/facturas/subtotal-bruto?" + "tipoDeComprobante=" + TipoDeComprobante.FACTURA_A + "&subTotal=" + subTotal + "&recargoNeto=" + recargo_neto + "&descuentoNeto=0" + "&iva105Neto=" + iva_105_netoFactura + "&iva21Neto=" + iva_21_netoFactura, double.class);
    assertEquals(9350, subTotalBruto, 0);
    double total = restTemplate.getRestTemplate().getForObject(apiPrefix + "/facturas/total?" + "subTotalBruto=" + subTotalBruto + "&iva105Neto=" + iva_105_netoFactura + "&iva21Neto=" + iva_21_netoFactura, double.class);
    assertEquals(11135, total, 0);
    FacturaVentaDTO facturaVentaA = new FacturaVentaDTO();
    facturaVentaA.setTipoComprobante(TipoDeComprobante.FACTURA_A);
    facturaVentaA.setCliente(cliente);
    facturaVentaA.setEmpresa(empresa);
    facturaVentaA.setTransportista(transportista);
    facturaVentaA.setUsuario(restTemplate.getForObject(apiPrefix + "/usuarios/busqueda?nombre=test", Usuario.class));
    List<RenglonFactura> renglones = new ArrayList<>();
    renglones.add(renglonesParaFacturar[0]);
    facturaVentaA.setRenglones(renglones);
    facturaVentaA.setSubTotal(subTotal);
    facturaVentaA.setRecargo_neto(recargo_neto);
    facturaVentaA.setSubTotal_bruto(subTotalBruto);
    facturaVentaA.setIva_105_neto(iva_105_netoFactura);
    facturaVentaA.setIva_21_neto(iva_21_netoFactura);
    facturaVentaA.setTotal(total);
    facturaVentaA.setFecha(new Date());
    facturaVentaA.setPedido(pedidoRecuperado);
    restTemplate.postForObject(apiPrefix + "/facturas?idPedido=" + pedidoRecuperado.getId_Pedido(), facturaVentaA, Factura[].class);
    FacturaVenta[] facturasRecuperadas = restTemplate.getForObject(apiPrefix + "/facturas/venta/busqueda/criteria?" + "idEmpresa=" + pedidoRecuperado.getEmpresa().getId_Empresa() + "&nroPedido=" + pedidoRecuperado.getNroPedido(), FacturaVenta[].class);
    assertEquals(1, facturasRecuperadas.length, 0);
    pedidoRecuperado = restTemplate.getForObject(apiPrefix + "/pedidos/" + pedidoRecuperado.getId_Pedido(), Pedido.class);
    assertEquals(EstadoPedido.ACTIVO, pedidoRecuperado.getEstado());
    renglonesDelPedido = restTemplate.getForObject(apiPrefix + "/pedidos/" + pedidoRecuperado.getId_Pedido() + "/renglones", RenglonPedido[].class);
    assertEquals(renglones.get(0).getCantidad(), renglonesDelPedido[0].getCantidad(), 0);
    assertEquals(renglones.get(0).getDescuento_porcentaje(), renglonesDelPedido[0].getDescuento_porcentaje(), 0);
    // assert not ???
    //assertEquals(renglones.get(0).getDescuento_neto(), renglonesDelPedido[0].getDescuento_neto(), 0);                
    renglonesParaFacturar = restTemplate.getForObject(apiPrefix + "/facturas/renglones/pedidos/" + pedidoRecuperado.getId_Pedido() + "?tipoDeComprobante=" + TipoDeComprobante.FACTURA_B, RenglonFactura[].class);
    importes[0] = renglonesParaFacturar[0].getImporte();
    cantidades[0] = renglonesParaFacturar[0].getCantidad();
    ivaPorcentajeRenglones[0] = renglonesParaFacturar[0].getIva_porcentaje();
    ivaNetoRenglones[0] = renglonesParaFacturar[0].getIva_neto();
    subTotal = restTemplate.getRestTemplate().getForObject(apiPrefix + "/facturas/subtotal?" + "importe=" + Arrays.toString(importes).substring(1, Arrays.toString(importes).length() - 1), double.class);
    assertEquals(4420, subTotal, 0);
    recargo_neto = restTemplate.getRestTemplate().getForObject(apiPrefix + "/facturas/recargo-neto?" + "subTotal=" + subTotal + "&recargoPorcentaje=10", double.class);
    assertEquals(442, recargo_neto, 0);
    iva_105_netoFactura = restTemplate.getRestTemplate().getForObject(apiPrefix + "/facturas/iva-neto?" + "tipoDeComprobante=" + TipoDeComprobante.FACTURA_B + "&cantidades=" + Arrays.toString(cantidades).substring(1, Arrays.toString(cantidades).length() - 1) + "&ivaPorcentajeRenglones=" + Arrays.toString(ivaPorcentajeRenglones).substring(1, Arrays.toString(ivaPorcentajeRenglones).length() - 1) + "&ivaNetoRenglones=" + Arrays.toString(ivaNetoRenglones).substring(1, Arrays.toString(ivaNetoRenglones).length() - 1) + "&ivaPorcentaje=10.5" + "&recargoPorcentaje=10" + "&descuentoPorcentaje=0", double.class);
    assertEquals(420, iva_105_netoFactura, 0);
    iva_21_netoFactura = restTemplate.getRestTemplate().getForObject(apiPrefix + "/facturas/iva-neto?" + "tipoDeComprobante=" + TipoDeComprobante.FACTURA_B + "&cantidades=" + Arrays.toString(cantidades).substring(1, Arrays.toString(cantidades).length() - 1) + "&ivaPorcentajeRenglones=" + Arrays.toString(ivaPorcentajeRenglones).substring(1, Arrays.toString(ivaPorcentajeRenglones).length() - 1) + "&ivaNetoRenglones=" + Arrays.toString(ivaNetoRenglones).substring(1, Arrays.toString(ivaNetoRenglones).length() - 1) + "&ivaPorcentaje=21" + "&recargoPorcentaje=10" + "&descuentoPorcentaje=0", double.class);
    assertEquals(0, iva_21_netoFactura, 0);
    subTotalBruto = restTemplate.getRestTemplate().getForObject(apiPrefix + "/facturas/subtotal-bruto?" + "tipoDeComprobante=" + TipoDeComprobante.FACTURA_B + "&subTotal=" + subTotal + "&recargoNeto=" + recargo_neto + "&descuentoNeto=0" + "&iva105Neto=" + iva_105_netoFactura + "&iva21Neto=" + iva_21_netoFactura, double.class);
    assertEquals(4442, subTotalBruto, 0);
    total = restTemplate.getRestTemplate().getForObject(apiPrefix + "/facturas/total?" + "subTotalBruto=" + subTotalBruto + "&iva105Neto=" + iva_105_netoFactura + "&iva21Neto=" + iva_21_netoFactura, double.class);
    assertEquals(4862, total, 0);
    FacturaVentaDTO facturaVentaB = new FacturaVentaDTO();
    facturaVentaB.setTipoComprobante(TipoDeComprobante.FACTURA_B);
    facturaVentaB.setCliente(cliente);
    facturaVentaB.setEmpresa(empresa);
    facturaVentaB.setTransportista(transportista);
    facturaVentaB.setUsuario(restTemplate.getForObject(apiPrefix + "/usuarios/busqueda?nombre=test", Usuario.class));
    renglones.clear();
    renglones.add(renglonesParaFacturar[0]);
    facturaVentaB.setRenglones(renglones);
    facturaVentaB.setSubTotal(subTotal);
    facturaVentaB.setRecargo_neto(recargo_neto);
    facturaVentaB.setSubTotal_bruto(subTotalBruto);
    facturaVentaB.setIva_105_neto(iva_105_netoFactura);
    facturaVentaB.setIva_21_neto(iva_21_netoFactura);
    facturaVentaB.setTotal(total);
    facturaVentaB.setFecha(new Date());
    facturaVentaB.setPedido(pedidoRecuperado);
    restTemplate.postForObject(apiPrefix + "/facturas?idPedido=" + pedidoRecuperado.getId_Pedido(), facturaVentaB, Factura[].class);
    facturasRecuperadas = restTemplate.getForObject(apiPrefix + "/facturas/venta/busqueda/criteria?" + "idEmpresa=" + pedidoRecuperado.getEmpresa().getId_Empresa() + "&nroPedido=" + pedidoRecuperado.getNroPedido(), FacturaVenta[].class);
    assertEquals(renglones.get(0).getCantidad(), renglonesDelPedido[1].getCantidad(), 0);
    assertEquals(renglones.get(0).getDescuento_porcentaje(), renglonesDelPedido[1].getDescuento_porcentaje(), 0);
    assertEquals(renglones.get(0).getDescuento_neto(), renglonesDelPedido[1].getDescuento_neto(), 0);
    assertEquals(2, facturasRecuperadas.length, 0);
    pedidoRecuperado = restTemplate.getForObject(apiPrefix + "/pedidos/" + pedidoRecuperado.getId_Pedido(), Pedido.class);
    assertEquals(EstadoPedido.CERRADO, pedidoRecuperado.getEstado());
    restTemplate.delete(apiPrefix + "/facturas?idFactura=" + facturasRecuperadas[0].getId_Factura());
    pedidoRecuperado = restTemplate.getForObject(apiPrefix + "/pedidos/" + pedidoRecuperado.getId_Pedido(), Pedido.class);
    assertEquals(EstadoPedido.ACTIVO, pedidoRecuperado.getEstado());
    restTemplate.delete(apiPrefix + "/facturas?idFactura=" + facturasRecuperadas[1].getId_Factura());
    pedidoRecuperado = restTemplate.getForObject(apiPrefix + "/pedidos/" + pedidoRecuperado.getId_Pedido(), Pedido.class);
    assertEquals(EstadoPedido.ABIERTO, pedidoRecuperado.getEstado());
}
Also used : Usuario(sic.modelo.Usuario) Empresa(sic.modelo.Empresa) Producto(sic.modelo.Producto) CondicionIVABuilder(sic.builder.CondicionIVABuilder) FormaDePagoBuilder(sic.builder.FormaDePagoBuilder) ArrayList(java.util.ArrayList) UsuarioBuilder(sic.builder.UsuarioBuilder) FacturaVenta(sic.modelo.FacturaVenta) EmpresaBuilder(sic.builder.EmpresaBuilder) Medida(sic.modelo.Medida) CondicionIVA(sic.modelo.CondicionIVA) RenglonFactura(sic.modelo.RenglonFactura) Pais(sic.modelo.Pais) Provincia(sic.modelo.Provincia) Cliente(sic.modelo.Cliente) Transportista(sic.modelo.Transportista) FormaDePago(sic.modelo.FormaDePago) Credencial(sic.modelo.Credencial) Rubro(sic.modelo.Rubro) RenglonPedido(sic.modelo.RenglonPedido) Pedido(sic.modelo.Pedido) EstadoPedido(sic.modelo.EstadoPedido) Proveedor(sic.modelo.Proveedor) Localidad(sic.modelo.Localidad) ProductoBuilder(sic.builder.ProductoBuilder) Date(java.util.Date) ClienteBuilder(sic.builder.ClienteBuilder) RenglonPedidoBuilder(sic.builder.RenglonPedidoBuilder) PedidoDTO(sic.modelo.dto.PedidoDTO) FacturaVentaDTO(sic.modelo.dto.FacturaVentaDTO) ProveedorBuilder(sic.builder.ProveedorBuilder) RenglonPedido(sic.modelo.RenglonPedido) LocalidadBuilder(sic.builder.LocalidadBuilder) TransportistaBuilder(sic.builder.TransportistaBuilder) Factura(sic.modelo.Factura) RenglonFactura(sic.modelo.RenglonFactura) RubroBuilder(sic.builder.RubroBuilder) MedidaBuilder(sic.builder.MedidaBuilder) SpringBootTest(org.springframework.boot.test.context.SpringBootTest) Test(org.junit.Test)

Example 7 with Pedido

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

the class PedidosGUI method btn_NuevoPedidoActionPerformed.

//GEN-LAST:event_chk_FechaItemStateChanged
private void btn_NuevoPedidoActionPerformed(java.awt.event.ActionEvent evt) {
    //GEN-FIRST:event_btn_NuevoPedidoActionPerformed
    try {
        if (this.existeClienteDisponible()) {
            PuntoDeVentaGUI gui_puntoDeVenta = new PuntoDeVentaGUI();
            Pedido pedido = new Pedido();
            pedido.setObservaciones("Los precios se encuentran sujetos a modificaciones.");
            gui_puntoDeVenta.setPedido(pedido);
            gui_puntoDeVenta.setModal(true);
            gui_puntoDeVenta.setLocationRelativeTo(this);
            gui_puntoDeVenta.setVisible(true);
            this.buscar();
        } else {
            String mensaje = ResourceBundle.getBundle("Mensajes").getString("mensaje_sin_cliente");
            JOptionPane.showInternalMessageDialog(this, mensaje, "Error", JOptionPane.ERROR_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 : RenglonPedido(sic.modelo.RenglonPedido) Pedido(sic.modelo.Pedido) EstadoPedido(sic.modelo.EstadoPedido) RestClientResponseException(org.springframework.web.client.RestClientResponseException) ResourceAccessException(org.springframework.web.client.ResourceAccessException)

Example 8 with Pedido

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

the class PedidosGUI method buscar.

public void buscar() {
    this.cambiarEstadoEnabled(false);
    pb_Filtro.setIndeterminate(true);
    SwingWorker<List<Pedido>, Void> worker = new SwingWorker<List<Pedido>, Void>() {

        @Override
        protected List<Pedido> doInBackground() throws Exception {
            String URI = "/pedidos/busqueda/criteria?idEmpresa=" + EmpresaActiva.getInstance().getEmpresa().getId_Empresa();
            if (chk_Fecha.isSelected()) {
                URI += "&desde=" + dc_FechaDesde.getDate().getTime();
                URI += "&hasta=" + dc_FechaHasta.getDate().getTime();
            }
            if (chk_NumeroPedido.isSelected()) {
                URI += "&nroPedido=" + Long.valueOf(txt_NumeroPedido.getText());
            }
            if (chk_Cliente.isSelected()) {
                URI += "&idCliente=" + ((Cliente) cmb_Cliente.getSelectedItem()).getId_Cliente();
            }
            if (chk_Vendedor.isSelected()) {
                URI += "&idUsuario=" + ((Usuario) cmb_Vendedor.getSelectedItem()).getId_Usuario();
            }
            pedidos = new ArrayList(Arrays.asList(RestClient.getRestTemplate().getForObject(URI, Pedido[].class)));
            cambiarEstadoEnabled(true);
            cargarResultadosAlTable();
            return pedidos;
        }

        @Override
        protected void done() {
            pb_Filtro.setIndeterminate(false);
            try {
                if (get().isEmpty()) {
                    JOptionPane.showInternalMessageDialog(getParent(), ResourceBundle.getBundle("Mensajes").getString("mensaje_busqueda_sin_resultados"), "Aviso", JOptionPane.INFORMATION_MESSAGE);
                }
            } catch (InterruptedException ex) {
                String msjError = "La tarea que se estaba realizando fue interrumpida. Intente nuevamente.";
                LOGGER.error(msjError + " - " + ex.getMessage());
                JOptionPane.showInternalMessageDialog(getParent(), msjError, "Error", JOptionPane.ERROR_MESSAGE);
                cambiarEstadoEnabled(true);
            } catch (ExecutionException ex) {
                if (ex.getCause() instanceof RestClientResponseException) {
                    JOptionPane.showMessageDialog(getParent(), ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
                } else if (ex.getCause() instanceof ResourceAccessException) {
                    LOGGER.error(ex.getMessage());
                    JOptionPane.showMessageDialog(getParent(), ResourceBundle.getBundle("Mensajes").getString("mensaje_error_conexion"), "Error", JOptionPane.ERROR_MESSAGE);
                } else {
                    String msjError = "Se produjo un error en la ejecución de la tarea solicitada. Intente nuevamente.";
                    LOGGER.error(msjError + " - " + ex.getMessage());
                    JOptionPane.showInternalMessageDialog(getParent(), msjError, "Error", JOptionPane.ERROR_MESSAGE);
                }
                cambiarEstadoEnabled(true);
            }
        }
    };
    worker.execute();
}
Also used : Usuario(sic.modelo.Usuario) RenglonPedido(sic.modelo.RenglonPedido) Pedido(sic.modelo.Pedido) EstadoPedido(sic.modelo.EstadoPedido) ArrayList(java.util.ArrayList) ResourceAccessException(org.springframework.web.client.ResourceAccessException) SwingWorker(javax.swing.SwingWorker) ArrayList(java.util.ArrayList) List(java.util.List) RestClientResponseException(org.springframework.web.client.RestClientResponseException) ExecutionException(java.util.concurrent.ExecutionException) Cliente(sic.modelo.Cliente)

Example 9 with Pedido

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

the class PedidosGUI method btn_eliminarPedidoActionPerformed.

//GEN-LAST:event_bnt_modificaPedidoActionPerformed
private void btn_eliminarPedidoActionPerformed(java.awt.event.ActionEvent evt) {
    //GEN-FIRST:event_btn_eliminarPedidoActionPerformed
    try {
        if (tbl_Pedidos.getSelectedRow() != -1) {
            long nroPedido = (long) tbl_Pedidos.getValueAt(tbl_Pedidos.getSelectedRow(), 2);
            Pedido pedido = Arrays.asList(RestClient.getRestTemplate().getForObject("/pedidos/busqueda/criteria?nroPedido=" + nroPedido + "&idEmpresa=" + EmpresaActiva.getInstance().getEmpresa().getId_Empresa(), Pedido[].class)).get(0);
            if (pedido.getEstado() == EstadoPedido.CERRADO) {
                JOptionPane.showInternalMessageDialog(this, ResourceBundle.getBundle("Mensajes").getString("mensaje_pedido_facturado"), "Error", JOptionPane.ERROR_MESSAGE);
            } else if (pedido.getEstado() == EstadoPedido.ACTIVO) {
                JOptionPane.showInternalMessageDialog(this, ResourceBundle.getBundle("Mensajes").getString("mensaje_pedido_procesado"), "Error", JOptionPane.ERROR_MESSAGE);
            } else if (this.existeClienteDisponible()) {
                int respuesta = JOptionPane.showConfirmDialog(this, "¿Esta seguro que desea eliminar el pedido seleccionado?", "Eliminar", JOptionPane.YES_NO_OPTION);
                if (respuesta == JOptionPane.YES_OPTION) {
                    RestClient.getRestTemplate().delete("/pedidos/" + pedido.getId_Pedido());
                    this.buscar();
                }
            } else {
                String mensaje = ResourceBundle.getBundle("Mensajes").getString("mensaje_sin_cliente");
                JOptionPane.showInternalMessageDialog(this, mensaje, "Error", JOptionPane.ERROR_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 : RenglonPedido(sic.modelo.RenglonPedido) Pedido(sic.modelo.Pedido) EstadoPedido(sic.modelo.EstadoPedido) RestClientResponseException(org.springframework.web.client.RestClientResponseException) ResourceAccessException(org.springframework.web.client.ResourceAccessException)

Example 10 with Pedido

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

the class PedidosGUI method cargarResultadosAlTable.

private void cargarResultadosAlTable() {
    this.limpiarJTables();
    pedidos.stream().map((pedido) -> {
        Object[] fila = new Object[7];
        fila[0] = pedido.getEstado();
        fila[1] = pedido.getFecha();
        fila[2] = pedido.getNroPedido();
        fila[3] = pedido.getCliente().getRazonSocial();
        fila[4] = pedido.getUsuario().getNombre();
        fila[5] = pedido.getTotalEstimado();
        fila[6] = pedido.getTotalActual();
        return fila;
    }).forEach((fila) -> {
        modeloTablaPedidos.addRow(fila);
    });
    tbl_Pedidos.setModel(modeloTablaPedidos);
    tbl_Pedidos.setDefaultRenderer(EstadoPedido.class, new ColoresEstadosRenderer());
    lbl_cantResultados.setText(pedidos.size() + " pedidos encontrados");
}
Also used : RenderTabla(sic.util.RenderTabla) Arrays(java.util.Arrays) RestClient(sic.RestClient) RenglonPedido(sic.modelo.RenglonPedido) JInternalFrame(javax.swing.JInternalFrame) Date(java.util.Date) LoggerFactory(org.slf4j.LoggerFactory) Utilidades(sic.util.Utilidades) ArrayList(java.util.ArrayList) PropertyVetoException(java.beans.PropertyVetoException) ResourceBundle(java.util.ResourceBundle) RestClientResponseException(org.springframework.web.client.RestClientResponseException) Pedido(sic.modelo.Pedido) Usuario(sic.modelo.Usuario) SwingWorker(javax.swing.SwingWorker) Cliente(sic.modelo.Cliente) Desktop(java.awt.Desktop) Logger(org.slf4j.Logger) Files(java.nio.file.Files) EstadoPedido(sic.modelo.EstadoPedido) IOException(java.io.IOException) ResourceAccessException(org.springframework.web.client.ResourceAccessException) KeyEvent(java.awt.event.KeyEvent) JOptionPane(javax.swing.JOptionPane) File(java.io.File) ExecutionException(java.util.concurrent.ExecutionException) Dimension(java.awt.Dimension) List(java.util.List) EmpresaActiva(sic.modelo.EmpresaActiva) ColoresEstadosRenderer(sic.util.ColoresEstadosRenderer) ColoresEstadosRenderer(sic.util.ColoresEstadosRenderer)

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