use of sic.modelo.RenglonNotaCredito in project sic by belluccifranco.
the class NotaServiceImpl method validarCalculosCredito.
private void validarCalculosCredito(NotaCredito notaCredito) {
TipoDeComprobante tipoDeComprobanteDeFacturaRelacionada = this.getTipoDeComprobanteFacturaSegunNotaCredito(notaCredito);
List<RenglonNotaCredito> renglonesNotaCredito = notaCredito.getRenglonesNotaCredito();
double subTotal = 0;
double[] importes = new double[renglonesNotaCredito.size()];
int i = 0;
int sizeRenglonesCredito = renglonesNotaCredito.size();
// IVA - subTotal
double iva21 = 0.0;
double iva105 = 0.0;
if (notaCredito.getTipoComprobante() == TipoDeComprobante.NOTA_CREDITO_A || notaCredito.getTipoComprobante() == TipoDeComprobante.NOTA_CREDITO_B) {
double[] ivaPorcentajes = new double[sizeRenglonesCredito];
double[] ivaNetos = new double[sizeRenglonesCredito];
double[] cantidades = new double[sizeRenglonesCredito];
for (RenglonNotaCredito r : renglonesNotaCredito) {
ivaPorcentajes[i] = r.getIvaPorcentaje();
ivaNetos[i] = r.getIvaNeto();
cantidades[i] = r.getCantidad();
importes[i] = r.getImporteBruto();
i++;
}
subTotal = this.calcularSubTotal(importes);
if (notaCredito.getSubTotal() != subTotal) {
throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_nota_sub_total_no_valido"));
}
iva21 = this.calcularIVANeto(tipoDeComprobanteDeFacturaRelacionada, cantidades, ivaPorcentajes, ivaNetos, 21, notaCredito.getDescuentoPorcentaje(), notaCredito.getRecargoPorcentaje());
if (notaCredito.getIva21Neto() != iva21) {
throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_nota_iva21_no_valido"));
}
iva105 = this.calcularIVANeto(tipoDeComprobanteDeFacturaRelacionada, cantidades, ivaPorcentajes, ivaNetos, 10.5, notaCredito.getDescuentoPorcentaje(), notaCredito.getRecargoPorcentaje());
if (notaCredito.getIva105Neto() != iva105) {
throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_nota_iva105_no_valido"));
}
} else if (notaCredito.getTipoComprobante() == TipoDeComprobante.NOTA_CREDITO_X) {
for (RenglonNotaCredito r : renglonesNotaCredito) {
importes[i] = r.getImporteNeto();
i++;
}
subTotal = this.calcularSubTotal(importes);
if (notaCredito.getSubTotal() != subTotal) {
throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_nota_sub_total_no_valido"));
}
if (notaCredito.getIva21Neto() != 0.0) {
throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_nota_iva21_no_valido"));
}
if (notaCredito.getIva105Neto() != 0.0) {
throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_nota_iva105_no_valido"));
}
}
// DescuentoNeto
double descuentoNeto = this.calcularDecuentoNeto(subTotal, notaCredito.getDescuentoPorcentaje());
if (notaCredito.getDescuentoNeto() != descuentoNeto) {
throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_nota_descuento_neto_no_valido"));
}
// RecargoNeto
double recargoNeto = this.calcularRecargoNeto(subTotal, notaCredito.getRecargoPorcentaje());
if (notaCredito.getRecargoNeto() != recargoNeto) {
throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_nota_recargo_neto_no_valido"));
}
// subTotalBruto
double subTotalBruto = this.calcularSubTotalBruto(tipoDeComprobanteDeFacturaRelacionada, subTotal, recargoNeto, descuentoNeto, iva105, iva21);
if (notaCredito.getSubTotalBruto() != subTotalBruto) {
throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_nota_sub_total_bruto_no_valido"));
}
// Total
double total = this.calcularTotal(subTotalBruto, iva105, iva21);
if (notaCredito.getTotal() != total) {
throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_nota_total_no_valido"));
}
}
use of sic.modelo.RenglonNotaCredito in project sic by belluccifranco.
the class NotaServiceImpl method getRenglonesFacturaModificadosParaNotaCredito.
@Override
public List<RenglonFactura> getRenglonesFacturaModificadosParaNotaCredito(long idFactura) {
HashMap<Long, Double> listaCantidadesProductosUnificados = new HashMap<>();
this.getNotasPorFactura(idFactura).forEach(n -> {
for (RenglonNotaCredito rnc : ((NotaCredito) n).getRenglonesNotaCredito()) {
if (listaCantidadesProductosUnificados.containsKey(rnc.getIdProductoItem())) {
listaCantidadesProductosUnificados.put(rnc.getIdProductoItem(), listaCantidadesProductosUnificados.get(rnc.getIdProductoItem()) + rnc.getCantidad());
} else {
listaCantidadesProductosUnificados.put(rnc.getIdProductoItem(), rnc.getCantidad());
}
}
});
List<RenglonFactura> renglonesFactura = facturaService.getRenglonesDeLaFactura(idFactura);
if (!listaCantidadesProductosUnificados.isEmpty()) {
renglonesFactura.forEach(rf -> {
rf.setCantidad(rf.getCantidad() - listaCantidadesProductosUnificados.get(rf.getId_ProductoItem()));
});
}
return renglonesFactura;
}
use of sic.modelo.RenglonNotaCredito 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);
}
}
use of sic.modelo.RenglonNotaCredito 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);
}
use of sic.modelo.RenglonNotaCredito in project sic by belluccifranco.
the class DetalleNotaCreditoGUI method cargarResultados.
private void cargarResultados() {
// SubTotal
double[] importes = new double[renglones.size()];
double[] cantidades = new double[renglones.size()];
double[] ivaPorcentajeRenglones = new double[renglones.size()];
double[] ivaNetoRenglones = new double[renglones.size()];
int indice = 0;
for (RenglonNotaCredito renglon : renglones) {
importes[indice] = renglon.getImporteBruto();
cantidades[indice] = renglon.getCantidad();
ivaPorcentajeRenglones[indice] = renglon.getIvaPorcentaje();
ivaNetoRenglones[indice] = renglon.getIvaNeto();
indice++;
}
try {
txt_Subtotal.setValue(RestClient.getRestTemplate().getForObject("/notas/credito/sub-total?importe=" + Arrays.toString(importes).substring(1, Arrays.toString(importes).length() - 1), double.class));
txt_Decuento_porcentaje.setValue(fv.getDescuento_porcentaje());
txt_Decuento_neto.setValue(RestClient.getRestTemplate().getForObject("/notas/credito/descuento-neto?subTotal=" + txt_Subtotal.getValue().toString() + "&descuentoPorcentaje=" + fv.getDescuento_porcentaje(), double.class));
txt_Recargo_porcentaje.setValue(fv.getRecargo_porcentaje());
txt_Recargo_neto.setValue(RestClient.getRestTemplate().getForObject("/notas/credito/recargo-neto?subTotal=" + txt_Subtotal.getValue().toString() + "&recargoPorcentaje=" + fv.getRecargo_porcentaje(), double.class));
if (fv.getTipoComprobante() == TipoDeComprobante.FACTURA_X) {
txt_IVA105_neto.setValue(0.0);
txt_IVA21_neto.setValue(0.0);
} else {
txt_IVA105_neto.setValue(RestClient.getRestTemplate().getForObject("/notas/credito/iva-neto?" + "tipoDeComprobante=" + fv.getTipoComprobante().name() + "&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=" + fv.getDescuento_porcentaje() + "&recargoPorcentaje=" + fv.getRecargo_porcentaje(), double.class));
txt_IVA21_neto.setValue(RestClient.getRestTemplate().getForObject("/notas/credito/iva-neto?" + "tipoDeComprobante=" + fv.getTipoComprobante().name() + "&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=" + fv.getDescuento_porcentaje() + "&recargoPorcentaje=" + fv.getRecargo_porcentaje(), double.class));
}
subTotalBruto = RestClient.getRestTemplate().getForObject("/notas/credito/sub-total-bruto?" + "tipoDeComprobante=" + fv.getTipoComprobante().name() + "&subTotal=" + txt_Subtotal.getValue().toString() + "&recargoNeto=" + txt_Recargo_neto.getValue().toString() + "&descuentoNeto=" + txt_Decuento_neto.getValue().toString() + "&iva105Neto=" + txt_IVA105_neto.getValue().toString() + "&iva21Neto=" + txt_IVA21_neto.getValue().toString(), double.class);
txt_Total.setValue(RestClient.getRestTemplate().getForObject("/notas/credito/total" + "?subTotalBruto=" + subTotalBruto + "&iva105Neto=" + txt_IVA105_neto.getValue().toString() + "&iva21Neto=" + txt_IVA21_neto.getValue().toString(), double.class));
if (fv.getTipoComprobante() == TipoDeComprobante.FACTURA_B || fv.getTipoComprobante() == TipoDeComprobante.PRESUPUESTO) {
txt_IVA105_neto.setText("0");
txt_IVA21_neto.setText("0");
txt_SubTotalBruto.setValue(txt_Total.getValue());
} else {
txt_SubTotalBruto.setValue(subTotalBruto);
}
} 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);
}
}
Aggregations