Search in sources :

Example 1 with RenglonNotaDebito

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

the class NotaServiceImpl method getReporteNota.

@Override
public byte[] getReporteNota(Nota nota) {
    ClassLoader classLoader = NotaServiceImpl.class.getClassLoader();
    InputStream isFileReport;
    JRBeanCollectionDataSource ds;
    Map params = new HashMap();
    if (nota instanceof NotaCredito) {
        isFileReport = classLoader.getResourceAsStream("sic/vista/reportes/NotaCredito.jasper");
        List<RenglonNotaCredito> renglones = this.getRenglonesDeNotaCredito(nota.getIdNota());
        ds = new JRBeanCollectionDataSource(renglones);
        params.put("notaCredito", (NotaCredito) nota);
    } else {
        isFileReport = classLoader.getResourceAsStream("sic/vista/reportes/NotaDebito.jasper");
        List<RenglonNotaDebito> renglones = this.getRenglonesDeNotaDebito(nota.getIdNota());
        ds = new JRBeanCollectionDataSource(renglones);
        params.put("notaDebito", (NotaDebito) nota);
    }
    ConfiguracionDelSistema cds = configuracionDelSistemaService.getConfiguracionDelSistemaPorEmpresa(nota.getEmpresa());
    params.put("preImpresa", cds.isUsarFacturaVentaPreImpresa());
    if (nota.getTipoComprobante().equals(TipoDeComprobante.NOTA_CREDITO_B) || nota.getTipoComprobante().equals(TipoDeComprobante.NOTA_CREDITO_X) || nota.getTipoComprobante().equals(TipoDeComprobante.NOTA_DEBITO_B) || nota.getTipoComprobante().equals(TipoDeComprobante.NOTA_DEBITO_X)) {
        nota.setSubTotalBruto(nota.getTotal());
        nota.setIva105Neto(0);
        nota.setIva21Neto(0);
    }
    if (nota.getTipoComprobante().equals(TipoDeComprobante.NOTA_CREDITO_A) || nota.getTipoComprobante().equals(TipoDeComprobante.NOTA_CREDITO_B) || nota.getTipoComprobante().equals(TipoDeComprobante.NOTA_DEBITO_A) || nota.getTipoComprobante().equals(TipoDeComprobante.NOTA_DEBITO_B)) {
        if (nota.getNumSerieAfip() != 0 && nota.getNumNotaAfip() != 0) {
            params.put("serie", nota.getNumSerieAfip());
            params.put("nroNota", nota.getNumNotaAfip());
        } else {
            params.put("serie", null);
            params.put("nroNota", null);
        }
    } else {
        params.put("serie", nota.getSerie());
        params.put("nroNota", nota.getNroNota());
    }
    if (!nota.getEmpresa().getLogo().isEmpty()) {
        try {
            params.put("logo", new ImageIcon(ImageIO.read(new URL(nota.getEmpresa().getLogo()))).getImage());
        } catch (IOException ex) {
            LOGGER.error(ex.getMessage());
            throw new ServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_empresa_404_logo"), ex);
        }
    }
    try {
        return JasperExportManager.exportReportToPdf(JasperFillManager.fillReport(isFileReport, params, ds));
    } catch (JRException ex) {
        LOGGER.error(ex.getMessage());
        throw new ServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_error_reporte"), ex);
    }
}
Also used : ImageIcon(javax.swing.ImageIcon) RenglonNotaCredito(sic.modelo.RenglonNotaCredito) JRException(net.sf.jasperreports.engine.JRException) HashMap(java.util.HashMap) InputStream(java.io.InputStream) JRBeanCollectionDataSource(net.sf.jasperreports.engine.data.JRBeanCollectionDataSource) NotaCredito(sic.modelo.NotaCredito) RenglonNotaCredito(sic.modelo.RenglonNotaCredito) IOException(java.io.IOException) URL(java.net.URL) RenglonNotaDebito(sic.modelo.RenglonNotaDebito) BusinessServiceException(sic.service.BusinessServiceException) ServiceException(sic.service.ServiceException) ConfiguracionDelSistema(sic.modelo.ConfiguracionDelSistema) Map(java.util.Map) HashMap(java.util.HashMap)

Example 2 with RenglonNotaDebito

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

the class DetalleNotaDebitoGUI method btnGuardarActionPerformed.

// </editor-fold>//GEN-END:initComponents
private void btnGuardarActionPerformed(java.awt.event.ActionEvent evt) {
    // GEN-FIRST:event_btnGuardarActionPerformed
    NotaDebito notaDebito = new NotaDebito();
    notaDebito.setFecha(new Date());
    notaDebito.setIva21Neto((Double) txtIVA21Neto.getValue());
    notaDebito.setIva105Neto(0);
    notaDebito.setMontoNoGravado(pago.getMonto());
    notaDebito.setMotivo(cmbDescripcionRenglon2.getSelectedItem().toString());
    try {
        notaDebito.setRenglonesNotaDebito(Arrays.asList(RestClient.getRestTemplate().getForObject("/notas/renglon/debito/pago/" + pago.getId_Pago() + "?monto=" + (Double) txtSubTotalBruto.getValue() + "&ivaPorcentaje=21", RenglonNotaDebito[].class)));
        notaDebito.setSubTotalBruto((Double) txtSubTotalBruto.getValue());
        notaDebito.setTotal((Double) txtTotal.getValue());
        notaDebito.setUsuario(UsuarioActivo.getInstance().getUsuario());
        notaDebito = RestClient.getRestTemplate().postForObject("/notas/debito/empresa/" + EmpresaActiva.getInstance().getEmpresa().getId_Empresa() + "/cliente/" + cliente.getId_Cliente() + "/usuario/" + UsuarioActivo.getInstance().getUsuario().getId_Usuario() + "/pago/" + pago.getId_Pago(), notaDebito, NotaDebito.class);
        if (notaDebito != null) {
            notaDebitoCreada = true;
            if (Desktop.isDesktopSupported()) {
                try {
                    byte[] reporte = RestClient.getRestTemplate().getForObject("/notas/" + notaDebito.getIdNota() + "/reporte", byte[].class);
                    File f = new File(System.getProperty("user.home") + "/NotaDebito.pdf");
                    Files.write(f.toPath(), reporte);
                    Desktop.getDesktop().open(f);
                } catch (IOException ex) {
                    LOGGER.error(ex.getMessage());
                    JOptionPane.showMessageDialog(this, ResourceBundle.getBundle("Mensajes").getString("mensaje_error_IOException"), "Error", JOptionPane.ERROR_MESSAGE);
                }
            } else {
                JOptionPane.showMessageDialog(this, ResourceBundle.getBundle("Mensajes").getString("mensaje_error_plataforma_no_soportada"), "Error", JOptionPane.ERROR_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 : RenglonNotaDebito(sic.modelo.RenglonNotaDebito) NotaDebito(sic.modelo.NotaDebito) RenglonNotaDebito(sic.modelo.RenglonNotaDebito) IOException(java.io.IOException) RestClientResponseException(org.springframework.web.client.RestClientResponseException) File(java.io.File) Date(java.util.Date) ResourceAccessException(org.springframework.web.client.ResourceAccessException)

Example 3 with RenglonNotaDebito

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

the class FlujoCuentaCorrienteIntegrationTest method testCuentaCorriente.

@Test
public void testCuentaCorriente() {
    this.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();
    formaDePago = 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();
    Usuario viajante = new UsuarioBuilder().withId_Usuario(1).withEliminado(false).withNombre("Fernando Aguirre").withPassword("fernando").withToken("yJhbGci1NiIsInR5cCI6IkpXVCJ9.eyJub21icmUiOiJjZWNpbGlvIn0.MCfaorSC7Wdc8rSW7BJizasfzsb").withRol(new ArrayList<>(Arrays.asList(Rol.VIAJANTE))).build();
    Cliente cliente = new ClienteBuilder().withEmpresa(empresa).withCondicionIVA(empresa.getCondicionIVA()).withLocalidad(empresa.getLocalidad()).withPredeterminado(true).withCredencial(credencial).withViajante(viajante).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(1000).withIva_porcentaje(21.0).withIva_neto(210).withPrecioLista(1210).withEmpresa(empresa).withMedida(medida).withProveedor(proveedor).withRubro(rubro).build();
    Producto productoDos = new ProductoBuilder().withCodigo("2").withDescripcion("dos").withCantidad(6).withVentaMinima(1).withPrecioVentaPublico(1000).withIva_porcentaje(10.5).withIva_neto(105).withPrecioLista(1105).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=20", RenglonFactura.class);
    RenglonFactura renglonDos = restTemplate.getForObject(apiPrefix + "/facturas/renglon?" + "idProducto=" + productoDos.getId_Producto() + "&tipoDeComprobante=" + TipoDeComprobante.FACTURA_B + "&movimiento=" + Movimiento.VENTA + "&cantidad=2" + "&descuentoPorcentaje=0", RenglonFactura.class);
    List<RenglonFactura> renglones = new ArrayList<>();
    renglones.add(renglonUno);
    renglones.add(renglonDos);
    int size = renglones.size();
    double[] importes = new double[size];
    double[] cantidades = new double[size];
    double[] ivaPorcentajeRenglones = new double[size];
    double[] ivaNetoRenglones = new double[size];
    int indice = 0;
    for (RenglonFactura renglon : renglones) {
        importes[indice] = renglon.getImporte();
        cantidades[indice] = renglon.getCantidad();
        ivaPorcentajeRenglones[indice] = renglon.getIva_porcentaje();
        ivaNetoRenglones[indice] = renglon.getIva_neto();
        indice++;
    }
    double subTotal = restTemplate.getRestTemplate().getForObject(apiPrefix + "/facturas/subtotal?" + "importe=" + Arrays.toString(importes).substring(1, Arrays.toString(importes).length() - 1), double.class);
    double descuentoPorcentaje = 25;
    double recargoPorcentaje = 10;
    double descuento_neto = restTemplate.getRestTemplate().getForObject(apiPrefix + "/facturas/descuento-neto?" + "subTotal=" + subTotal + "&descuentoPorcentaje=" + descuentoPorcentaje, double.class);
    double recargo_neto = restTemplate.getRestTemplate().getForObject(apiPrefix + "/facturas/recargo-neto?" + "subTotal=" + subTotal + "&recargoPorcentaje=" + recargoPorcentaje, double.class);
    double 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" + "&descuentoPorcentaje=" + descuentoPorcentaje + "&recargoPorcentaje=" + recargoPorcentaje, double.class);
    double 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" + "&descuentoPorcentaje=" + descuentoPorcentaje + "&recargoPorcentaje=" + recargoPorcentaje, double.class);
    double subTotalBruto = restTemplate.getRestTemplate().getForObject(apiPrefix + "/facturas/subtotal-bruto?" + "tipoDeComprobante=" + TipoDeComprobante.FACTURA_B + "&subTotal=" + subTotal + "&recargoNeto=" + recargo_neto + "&descuentoNeto=" + descuento_neto + "&iva105Neto=" + iva_105_netoFactura + "&iva21Neto=" + iva_21_netoFactura, double.class);
    double total = restTemplate.getRestTemplate().getForObject(apiPrefix + "/facturas/total?" + "subTotalBruto=" + subTotalBruto + "&iva105Neto=" + iva_105_netoFactura + "&iva21Neto=" + iva_21_netoFactura, double.class);
    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));
    facturaVentaB.setRenglones(renglones);
    facturaVentaB.setSubTotal(subTotal);
    facturaVentaB.setRecargo_porcentaje(recargoPorcentaje);
    facturaVentaB.setRecargo_neto(recargo_neto);
    facturaVentaB.setDescuento_porcentaje(descuentoPorcentaje);
    facturaVentaB.setDescuento_neto(descuento_neto);
    facturaVentaB.setSubTotal_bruto(subTotalBruto);
    facturaVentaB.setIva_105_neto(iva_105_netoFactura);
    facturaVentaB.setIva_21_neto(iva_21_netoFactura);
    facturaVentaB.setTotal(total);
    restTemplate.postForObject(apiPrefix + "/facturas/venta", facturaVentaB, FacturaVenta[].class);
    assertEquals(0, restTemplate.getForObject(apiPrefix + "/cuentas-corrientes/clientes/1/saldo?hasta=1451617200000", Double.class), 0);
    assertEquals(-5992.5, restTemplate.getForObject(apiPrefix + "/cuentas-corrientes/clientes/1/saldo", Double.class), 0);
    List<FacturaVenta> facturasRecuperadas = restTemplate.exchange(apiPrefix + "/facturas/venta/busqueda/criteria?idEmpresa=1&tipoFactura=B&nroSerie=0&nroFactura=1", HttpMethod.GET, null, new ParameterizedTypeReference<PaginaRespuestaRest<FacturaVenta>>() {
    }).getBody().getContent();
    Pago pago = new Pago();
    pago.setEmpresa(empresa);
    pago.setFactura(facturasRecuperadas.get(0));
    pago.setFecha(new Date());
    pago.setFormaDePago(formaDePago);
    pago.setMonto(5992.5);
    pago = restTemplate.postForObject(apiPrefix + "/pagos/facturas/1", pago, Pago.class);
    assertEquals(0, restTemplate.getForObject(apiPrefix + "/cuentas-corrientes/clientes/1/saldo", Double.class), 0);
    NotaDebitoDTO notaDebito = new NotaDebitoDTO();
    notaDebito.setCliente(cliente);
    notaDebito.setEmpresa(empresa);
    notaDebito.setFecha(new Date());
    notaDebito.setPagoId(pago.getId_Pago());
    List<RenglonNotaDebito> renglonesCalculados = Arrays.asList(restTemplate.getForObject(apiPrefix + "/notas/renglon/debito/pago/1?monto=100&ivaPorcentaje=21", RenglonNotaDebito[].class));
    notaDebito.setRenglonesNotaDebito(renglonesCalculados);
    notaDebito.setIva105Neto(0);
    notaDebito.setIva21Neto(21);
    notaDebito.setMontoNoGravado(5992.5);
    notaDebito.setMotivo("Test alta nota debito - Cheque rechazado");
    notaDebito.setSubTotalBruto(100);
    notaDebito.setTotal(6113.5);
    notaDebito.setUsuario(credencial);
    notaDebito.setFacturaVenta(null);
    NotaDebito nd = restTemplate.postForObject(apiPrefix + "/notas/debito/empresa/1/cliente/1/usuario/1/pago/1", notaDebito, NotaDebito.class);
    assertEquals(-6113.5, restTemplate.getForObject(apiPrefix + "/cuentas-corrientes/clientes/1/saldo", Double.class), 0);
    pago = new Pago();
    pago.setEmpresa(empresa);
    pago.setNotaDebito(nd);
    pago.setFecha(new Date());
    pago.setFormaDePago(formaDePago);
    pago.setMonto(6113.5);
    restTemplate.postForObject(apiPrefix + "/pagos/notas/1", pago, Pago.class);
    assertEquals(0, restTemplate.getForObject(apiPrefix + "/cuentas-corrientes/clientes/1/saldo", Double.class), 0);
    List<RenglonNotaCredito> renglonesNotaCredito = Arrays.asList(restTemplate.getForObject(apiPrefix + "/notas/renglon/credito/producto?" + "tipoDeComprobante=" + facturasRecuperadas.get(0).getTipoComprobante().name() + "&cantidad=5&idRenglonFactura=1", RenglonNotaCredito[].class));
    NotaCreditoDTO notaCredito = new NotaCreditoDTO();
    notaCredito.setRenglonesNotaCredito(renglonesNotaCredito);
    notaCredito.setFacturaVenta(facturasRecuperadas.get(0));
    notaCredito.setFecha(new Date());
    notaCredito.setSubTotal(restTemplate.getForObject(apiPrefix + "/notas/credito/sub-total?importe=" + renglonesNotaCredito.get(0).getImporteNeto(), Double.class));
    notaCredito.setRecargoPorcentaje(facturasRecuperadas.get(0).getRecargo_porcentaje());
    notaCredito.setRecargoNeto(restTemplate.getForObject(apiPrefix + "/notas/credito/recargo-neto?subTotal=" + notaCredito.getSubTotal() + "&recargoPorcentaje=" + notaCredito.getRecargoPorcentaje(), Double.class));
    notaCredito.setDescuentoPorcentaje(facturasRecuperadas.get(0).getDescuento_porcentaje());
    notaCredito.setDescuentoNeto(restTemplate.getForObject(apiPrefix + "/notas/credito/descuento-neto?subTotal=" + notaCredito.getSubTotal() + "&descuentoPorcentaje=" + notaCredito.getDescuentoPorcentaje(), Double.class));
    notaCredito.setIva21Neto(restTemplate.getForObject(apiPrefix + "/notas/credito/iva-neto?" + "tipoDeComprobante=" + facturasRecuperadas.get(0).getTipoComprobante().name() + "&cantidades=" + renglonesNotaCredito.get(0).getCantidad() + "&ivaPorcentajeRenglones=" + renglonesNotaCredito.get(0).getIvaPorcentaje() + "&ivaNetoRenglones=" + renglonesNotaCredito.get(0).getIvaNeto() + "&ivaPorcentaje=21" + "&descuentoPorcentaje=" + facturasRecuperadas.get(0).getDescuento_porcentaje() + "&recargoPorcentaje=" + facturasRecuperadas.get(0).getRecargo_porcentaje(), Double.class));
    notaCredito.setIva105Neto(restTemplate.getForObject(apiPrefix + "/notas/credito/iva-neto?" + "tipoDeComprobante=" + facturasRecuperadas.get(0).getTipoComprobante().name() + "&cantidades=" + renglonesNotaCredito.get(0).getCantidad() + "&ivaPorcentajeRenglones=" + renglonesNotaCredito.get(0).getIvaPorcentaje() + "&ivaNetoRenglones=" + renglonesNotaCredito.get(0).getIvaNeto() + "&ivaPorcentaje=10.5" + "&descuentoPorcentaje=" + facturasRecuperadas.get(0).getDescuento_porcentaje() + "&recargoPorcentaje=" + facturasRecuperadas.get(0).getRecargo_porcentaje(), Double.class));
    notaCredito.setSubTotalBruto(restTemplate.getForObject(apiPrefix + "/notas/credito/sub-total-bruto?" + "tipoDeComprobante=" + facturasRecuperadas.get(0).getTipoComprobante().name() + "&subTotal=" + notaCredito.getSubTotal() + "&recargoNeto=" + notaCredito.getRecargoNeto() + "&descuentoNeto=" + notaCredito.getDescuentoNeto() + "&iva21Neto=" + notaCredito.getIva21Neto() + "&iva105Neto=" + notaCredito.getIva105Neto(), Double.class));
    notaCredito.setTotal(restTemplate.getForObject(apiPrefix + "/notas/credito/total?subTotalBruto=" + notaCredito.getSubTotalBruto() + "&iva21Neto=" + notaCredito.getIva21Neto() + "&iva105Neto=" + notaCredito.getIva105Neto(), Double.class));
    restTemplate.postForObject(apiPrefix + "/notas/credito/empresa/1/cliente/1/usuario/1/factura/1?modificarStock=false", notaCredito, NotaCredito.class);
    assertEquals(4114, restTemplate.getForObject(apiPrefix + "/cuentas-corrientes/clientes/1/saldo", Double.class), 0);
}
Also used : Usuario(sic.modelo.Usuario) Empresa(sic.modelo.Empresa) RenglonNotaCredito(sic.modelo.RenglonNotaCredito) Producto(sic.modelo.Producto) CondicionIVABuilder(sic.builder.CondicionIVABuilder) FormaDePagoBuilder(sic.builder.FormaDePagoBuilder) ArrayList(java.util.ArrayList) UsuarioBuilder(sic.builder.UsuarioBuilder) FacturaVenta(sic.modelo.FacturaVenta) NotaCreditoDTO(sic.modelo.dto.NotaCreditoDTO) RenglonNotaDebito(sic.modelo.RenglonNotaDebito) EmpresaBuilder(sic.builder.EmpresaBuilder) Medida(sic.modelo.Medida) CondicionIVA(sic.modelo.CondicionIVA) RenglonFactura(sic.modelo.RenglonFactura) Pago(sic.modelo.Pago) FormaDePago(sic.modelo.FormaDePago) 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) Proveedor(sic.modelo.Proveedor) NotaDebito(sic.modelo.NotaDebito) RenglonNotaDebito(sic.modelo.RenglonNotaDebito) Localidad(sic.modelo.Localidad) ProductoBuilder(sic.builder.ProductoBuilder) Date(java.util.Date) ClienteBuilder(sic.builder.ClienteBuilder) FacturaVentaDTO(sic.modelo.dto.FacturaVentaDTO) ProveedorBuilder(sic.builder.ProveedorBuilder) LocalidadBuilder(sic.builder.LocalidadBuilder) TransportistaBuilder(sic.builder.TransportistaBuilder) RubroBuilder(sic.builder.RubroBuilder) MedidaBuilder(sic.builder.MedidaBuilder) NotaDebitoDTO(sic.modelo.dto.NotaDebitoDTO) SpringBootTest(org.springframework.boot.test.context.SpringBootTest) Test(org.junit.Test)

Example 4 with RenglonNotaDebito

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

the class NotaServiceImpl method calcularRenglonDebito.

@Override
public List<RenglonNotaDebito> calcularRenglonDebito(Long idPago, double monto, double ivaPorcentaje) {
    List<RenglonNotaDebito> renglonesNota = new ArrayList<>();
    RenglonNotaDebito renglonNota;
    if (idPago != null) {
        Pago pago = pagoService.getPagoPorId(idPago);
        renglonNota = new RenglonNotaDebito();
        String descripcion = "Fecha Pago: " + (new FormatterFechaHora(FormatterFechaHora.FORMATO_FECHA_HISPANO)).format(pago.getFecha()) + " NÂș " + pago.getNroPago();
        if (pago.getNota() != null && pago.getNota().length() > 0) {
            descripcion += "\nNota:" + pago.getNota();
        }
        renglonNota.setDescripcion(descripcion);
        renglonNota.setMonto(pago.getMonto());
        renglonNota.setImporteBruto(renglonNota.getMonto());
        renglonNota.setIvaPorcentaje(0);
        renglonNota.setIvaNeto(0);
        renglonNota.setImporteNeto(this.calcularImporteRenglon(0, renglonNota.getImporteBruto(), 1));
        renglonesNota.add(renglonNota);
        renglonNota = new RenglonNotaDebito();
        renglonNota.setDescripcion("Gasto Administrativo");
        renglonNota.setMonto(monto);
        renglonNota.setIvaPorcentaje(ivaPorcentaje);
        renglonNota.setIvaNeto(monto * (ivaPorcentaje / 100));
        renglonNota.setImporteBruto(monto);
        renglonNota.setImporteNeto(this.calcularImporteRenglon(renglonNota.getIvaNeto(), renglonNota.getImporteBruto(), 1));
        renglonesNota.add(renglonNota);
    }
    return renglonesNota;
}
Also used : FormatterFechaHora(sic.util.FormatterFechaHora) RenglonNotaDebito(sic.modelo.RenglonNotaDebito) ArrayList(java.util.ArrayList) Pago(sic.modelo.Pago)

Aggregations

RenglonNotaDebito (sic.modelo.RenglonNotaDebito)4 IOException (java.io.IOException)2 ArrayList (java.util.ArrayList)2 Date (java.util.Date)2 NotaDebito (sic.modelo.NotaDebito)2 Pago (sic.modelo.Pago)2 RenglonNotaCredito (sic.modelo.RenglonNotaCredito)2 File (java.io.File)1 InputStream (java.io.InputStream)1 URL (java.net.URL)1 HashMap (java.util.HashMap)1 Map (java.util.Map)1 ImageIcon (javax.swing.ImageIcon)1 JRException (net.sf.jasperreports.engine.JRException)1 JRBeanCollectionDataSource (net.sf.jasperreports.engine.data.JRBeanCollectionDataSource)1 Test (org.junit.Test)1 SpringBootTest (org.springframework.boot.test.context.SpringBootTest)1 ResourceAccessException (org.springframework.web.client.ResourceAccessException)1 RestClientResponseException (org.springframework.web.client.RestClientResponseException)1 ClienteBuilder (sic.builder.ClienteBuilder)1