Search in sources :

Example 46 with ParameterizedTypeReference

use of org.springframework.core.ParameterizedTypeReference in project tutorials by eugenp.

the class UserApi method createUsersWithArrayInput.

/**
 * Creates list of users with given input array
 *
 * <p><b>0</b> - successful operation
 * @param body List of user object
 * @throws RestClientException if an error occurs while attempting to invoke the API
 */
public void createUsersWithArrayInput(List<User> body) throws RestClientException {
    Object postBody = body;
    // verify the required parameter 'body' is set
    if (body == null) {
        throw new HttpClientErrorException(HttpStatus.BAD_REQUEST, "Missing the required parameter 'body' when calling createUsersWithArrayInput");
    }
    String path = UriComponentsBuilder.fromPath("/user/createWithArray").build().toUriString();
    final MultiValueMap<String, String> queryParams = new LinkedMultiValueMap<String, String>();
    final HttpHeaders headerParams = new HttpHeaders();
    final MultiValueMap<String, Object> formParams = new LinkedMultiValueMap<String, Object>();
    final String[] accepts = { "application/xml", "application/json" };
    final List<MediaType> accept = apiClient.selectHeaderAccept(accepts);
    final String[] contentTypes = {};
    final MediaType contentType = apiClient.selectHeaderContentType(contentTypes);
    String[] authNames = new String[] {};
    ParameterizedTypeReference<Void> returnType = new ParameterizedTypeReference<Void>() {
    };
    apiClient.invokeAPI(path, HttpMethod.POST, queryParams, postBody, headerParams, formParams, accept, contentType, authNames, returnType);
}
Also used : HttpHeaders(org.springframework.http.HttpHeaders) HttpClientErrorException(org.springframework.web.client.HttpClientErrorException) LinkedMultiValueMap(org.springframework.util.LinkedMultiValueMap) ParameterizedTypeReference(org.springframework.core.ParameterizedTypeReference) MediaType(org.springframework.http.MediaType)

Example 47 with ParameterizedTypeReference

use of org.springframework.core.ParameterizedTypeReference in project tutorials by eugenp.

the class UserApi method loginUser.

/**
 * Logs user into the system
 *
 * <p><b>200</b> - successful operation
 * <p><b>400</b> - Invalid username/password supplied
 * @param username The user name for login
 * @param password The password for login in clear text
 * @return String
 * @throws RestClientException if an error occurs while attempting to invoke the API
 */
public String loginUser(String username, String password) throws RestClientException {
    Object postBody = null;
    // verify the required parameter 'username' is set
    if (username == null) {
        throw new HttpClientErrorException(HttpStatus.BAD_REQUEST, "Missing the required parameter 'username' when calling loginUser");
    }
    // verify the required parameter 'password' is set
    if (password == null) {
        throw new HttpClientErrorException(HttpStatus.BAD_REQUEST, "Missing the required parameter 'password' when calling loginUser");
    }
    String path = UriComponentsBuilder.fromPath("/user/login").build().toUriString();
    final MultiValueMap<String, String> queryParams = new LinkedMultiValueMap<String, String>();
    final HttpHeaders headerParams = new HttpHeaders();
    final MultiValueMap<String, Object> formParams = new LinkedMultiValueMap<String, Object>();
    queryParams.putAll(apiClient.parameterToMultiValueMap(null, "username", username));
    queryParams.putAll(apiClient.parameterToMultiValueMap(null, "password", password));
    final String[] accepts = { "application/xml", "application/json" };
    final List<MediaType> accept = apiClient.selectHeaderAccept(accepts);
    final String[] contentTypes = {};
    final MediaType contentType = apiClient.selectHeaderContentType(contentTypes);
    String[] authNames = new String[] {};
    ParameterizedTypeReference<String> returnType = new ParameterizedTypeReference<String>() {
    };
    return apiClient.invokeAPI(path, HttpMethod.GET, queryParams, postBody, headerParams, formParams, accept, contentType, authNames, returnType);
}
Also used : HttpHeaders(org.springframework.http.HttpHeaders) HttpClientErrorException(org.springframework.web.client.HttpClientErrorException) LinkedMultiValueMap(org.springframework.util.LinkedMultiValueMap) ParameterizedTypeReference(org.springframework.core.ParameterizedTypeReference) MediaType(org.springframework.http.MediaType)

Example 48 with ParameterizedTypeReference

use of org.springframework.core.ParameterizedTypeReference in project tutorials by eugenp.

the class UserApi method logoutUser.

/**
 * Logs out current logged in user session
 *
 * <p><b>0</b> - successful operation
 * @throws RestClientException if an error occurs while attempting to invoke the API
 */
public void logoutUser() throws RestClientException {
    Object postBody = null;
    String path = UriComponentsBuilder.fromPath("/user/logout").build().toUriString();
    final MultiValueMap<String, String> queryParams = new LinkedMultiValueMap<String, String>();
    final HttpHeaders headerParams = new HttpHeaders();
    final MultiValueMap<String, Object> formParams = new LinkedMultiValueMap<String, Object>();
    final String[] accepts = { "application/xml", "application/json" };
    final List<MediaType> accept = apiClient.selectHeaderAccept(accepts);
    final String[] contentTypes = {};
    final MediaType contentType = apiClient.selectHeaderContentType(contentTypes);
    String[] authNames = new String[] {};
    ParameterizedTypeReference<Void> returnType = new ParameterizedTypeReference<Void>() {
    };
    apiClient.invokeAPI(path, HttpMethod.GET, queryParams, postBody, headerParams, formParams, accept, contentType, authNames, returnType);
}
Also used : HttpHeaders(org.springframework.http.HttpHeaders) LinkedMultiValueMap(org.springframework.util.LinkedMultiValueMap) ParameterizedTypeReference(org.springframework.core.ParameterizedTypeReference) MediaType(org.springframework.http.MediaType)

Example 49 with ParameterizedTypeReference

use of org.springframework.core.ParameterizedTypeReference 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();
                renglones.stream().filter(r -> {
                    String uri = "/productos/" + r.getId_ProductoItem() + "/stock/disponibilidad?cantidad=" + r.getCantidad();
                    return (!RestClient.getRestTemplate().getForObject(uri, boolean.class));
                }).forEachOrdered(r -> productosFaltantes.add(r));
                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 (pedido == null || pedido.getId_Pedido() == 0) {
                    this.construirPedido();
                }
                PaginaRespuestaRest<Pedido> response = RestClient.getRestTemplate().exchange("/pedidos/busqueda/criteria?" + "idEmpresa=" + EmpresaActiva.getInstance().getEmpresa().getId_Empresa() + "&nroPedido=" + pedido.getNroPedido(), HttpMethod.GET, null, new ParameterizedTypeReference<PaginaRespuestaRest<Pedido>>() {
                }).getBody();
                List<Pedido> pedidos = response.getContent();
                if (pedidos.isEmpty()) {
                    Pedido p = RestClient.getRestTemplate().postForObject("/pedidos", pedido, Pedido.class);
                    this.lanzarReportePedido(p);
                    this.limpiarYRecargarComponentes();
                } else if ((pedido.getEstado() == EstadoPedido.ABIERTO || pedido.getEstado() == null) && modificarPedido == true) {
                    this.actualizarPedido(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 : TipoDeComprobante(sic.modelo.TipoDeComprobante) RenderTabla(sic.util.RenderTabla) Arrays(java.util.Arrays) RestClient(sic.RestClient) RenglonPedido(sic.modelo.RenglonPedido) UsuarioActivo(sic.modelo.UsuarioActivo) JDialog(javax.swing.JDialog) FormaDePago(sic.modelo.FormaDePago) Date(java.util.Date) ParameterizedTypeReference(org.springframework.core.ParameterizedTypeReference) LoggerFactory(org.slf4j.LoggerFactory) Utilidades(sic.util.Utilidades) Transportista(sic.modelo.Transportista) Point(java.awt.Point) KeyAdapter(java.awt.event.KeyAdapter) RenglonFactura(sic.modelo.RenglonFactura) Rol(sic.modelo.Rol) ArrayList(java.util.ArrayList) Movimiento(sic.modelo.Movimiento) SwingUtilities(javax.swing.SwingUtilities) ResourceBundle(java.util.ResourceBundle) RestClientResponseException(org.springframework.web.client.RestClientResponseException) Pedido(sic.modelo.Pedido) Empresa(sic.modelo.Empresa) ImageIcon(javax.swing.ImageIcon) Cliente(sic.modelo.Cliente) ParseException(java.text.ParseException) ConfiguracionDelSistema(sic.modelo.ConfiguracionDelSistema) Producto(sic.modelo.Producto) Desktop(java.awt.Desktop) Logger(org.slf4j.Logger) Files(java.nio.file.Files) EstadoPedido(sic.modelo.EstadoPedido) FacturaVenta(sic.modelo.FacturaVenta) HttpMethod(org.springframework.http.HttpMethod) IOException(java.io.IOException) ResourceAccessException(org.springframework.web.client.ResourceAccessException) KeyEvent(java.awt.event.KeyEvent) JOptionPane(javax.swing.JOptionPane) File(java.io.File) List(java.util.List) JTable(javax.swing.JTable) EmpresaActiva(sic.modelo.EmpresaActiva) PaginaRespuestaRest(sic.modelo.PaginaRespuestaRest) RenglonPedido(sic.modelo.RenglonPedido) Pedido(sic.modelo.Pedido) EstadoPedido(sic.modelo.EstadoPedido) ArrayList(java.util.ArrayList) ResourceAccessException(org.springframework.web.client.ResourceAccessException) ParameterizedTypeReference(org.springframework.core.ParameterizedTypeReference) RenglonFactura(sic.modelo.RenglonFactura) RestClientResponseException(org.springframework.web.client.RestClientResponseException)

Example 50 with ParameterizedTypeReference

use of org.springframework.core.ParameterizedTypeReference 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).withVentaMinima(1).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).withVentaMinima(1).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.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 pedidoRecuperado = restTemplate.postForObject(apiPrefix + "/pedidos", pedido, Pedido.class);
    assertEquals(pedido.getCliente(), pedidoRecuperado.getCliente());
    assertEquals(pedido.getEmpresa(), pedidoRecuperado.getEmpresa());
    assertEquals(pedido.getUsuario(), pedidoRecuperado.getUsuario());
    assertEquals(pedido.getTotalEstimado(), pedidoRecuperado.getTotalEstimado(), 0);
    assertEquals(pedido.getObservaciones(), pedidoRecuperado.getObservaciones());
    assertEquals(pedidoRecuperado.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 recargoPorcentaje = 10;
    double recargo_neto = restTemplate.getRestTemplate().getForObject(apiPrefix + "/facturas/recargo-neto?" + "subTotal=" + subTotal + "&recargoPorcentaje=" + recargoPorcentaje, 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/venta?idPedido=" + pedidoRecuperado.getId_Pedido(), facturaVentaA, FacturaVenta[].class);
    List<FacturaVenta> facturasRecuperadas = restTemplate.exchange(apiPrefix + "/facturas/venta/busqueda/criteria?" + "idEmpresa=" + pedidoRecuperado.getEmpresa().getId_Empresa() + "&nroPedido=" + pedidoRecuperado.getNroPedido(), HttpMethod.GET, null, new ParameterizedTypeReference<PaginaRespuestaRest<FacturaVenta>>() {
    }).getBody().getContent();
    assertEquals(1, facturasRecuperadas.size(), 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=" + recargoPorcentaje, 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=" + recargoPorcentaje + "&descuentoPorcentaje=0", double.class);
    assertEquals(462, 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=" + recargoPorcentaje + "&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(4400, 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_porcentaje(recargoPorcentaje);
    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/venta?idPedido=" + pedidoRecuperado.getId_Pedido(), facturaVentaB, FacturaVenta[].class);
    facturasRecuperadas = restTemplate.exchange(apiPrefix + "/facturas/venta/busqueda/criteria?" + "idEmpresa=" + pedidoRecuperado.getEmpresa().getId_Empresa() + "&nroPedido=" + pedidoRecuperado.getNroPedido(), HttpMethod.GET, null, new ParameterizedTypeReference<PaginaRespuestaRest<FacturaVenta>>() {
    }).getBody().getContent();
    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.size(), 0);
    pedidoRecuperado = restTemplate.getForObject(apiPrefix + "/pedidos/" + pedidoRecuperado.getId_Pedido(), Pedido.class);
    assertEquals(EstadoPedido.CERRADO, pedidoRecuperado.getEstado());
    restTemplate.delete(apiPrefix + "/facturas?idFactura=" + facturasRecuperadas.get(0).getId_Factura());
    pedidoRecuperado = restTemplate.getForObject(apiPrefix + "/pedidos/" + pedidoRecuperado.getId_Pedido(), Pedido.class);
    assertEquals(EstadoPedido.ACTIVO, pedidoRecuperado.getEstado());
    restTemplate.delete(apiPrefix + "/facturas?idFactura=" + facturasRecuperadas.get(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) ParameterizedTypeReference(org.springframework.core.ParameterizedTypeReference) LocalidadBuilder(sic.builder.LocalidadBuilder) TransportistaBuilder(sic.builder.TransportistaBuilder) RubroBuilder(sic.builder.RubroBuilder) MedidaBuilder(sic.builder.MedidaBuilder) SpringBootTest(org.springframework.boot.test.context.SpringBootTest) Test(org.junit.Test)

Aggregations

ParameterizedTypeReference (org.springframework.core.ParameterizedTypeReference)62 MediaType (org.springframework.http.MediaType)29 HttpHeaders (org.springframework.http.HttpHeaders)28 List (java.util.List)22 LinkedMultiValueMap (org.springframework.util.LinkedMultiValueMap)22 HttpClientErrorException (org.springframework.web.client.HttpClientErrorException)18 ArrayList (java.util.ArrayList)16 Test (org.junit.jupiter.api.Test)16 Test (org.junit.Test)15 HashMap (java.util.HashMap)12 URI (java.net.URI)11 HttpEntity (org.springframework.http.HttpEntity)10 MockHttpInputMessage (org.springframework.http.MockHttpInputMessage)8 URISyntaxException (java.net.URISyntaxException)7 MockHttpOutputMessage (org.springframework.http.MockHttpOutputMessage)7 DataBuffer (org.springframework.core.io.buffer.DataBuffer)6 Resources (org.springframework.hateoas.Resources)5 Traverson (org.springframework.hateoas.client.Traverson)5 IOException (java.io.IOException)4 HttpMethod (org.springframework.http.HttpMethod)4