use of sic.modelo.TipoDeComprobante in project sic by belluccifranco.
the class FacturaServiceImplTest method shouldGetTipoFacturaCompraWhenEmpresaYProveedorDiscriminanIVA.
@Test
public void shouldGetTipoFacturaCompraWhenEmpresaYProveedorDiscriminanIVA() {
Empresa empresa = Mockito.mock(Empresa.class);
CondicionIVA condicionIVAqueDiscrimina = Mockito.mock(CondicionIVA.class);
when(condicionIVAqueDiscrimina.isDiscriminaIVA()).thenReturn(Boolean.TRUE);
when(empresa.getCondicionIVA()).thenReturn(condicionIVAqueDiscrimina);
empresa.setCondicionIVA(condicionIVAqueDiscrimina);
Proveedor proveedor = Mockito.mock(Proveedor.class);
when(proveedor.getCondicionIVA()).thenReturn(condicionIVAqueDiscrimina);
TipoDeComprobante[] expResult = new TipoDeComprobante[4];
expResult[0] = TipoDeComprobante.FACTURA_A;
expResult[1] = TipoDeComprobante.FACTURA_B;
expResult[2] = TipoDeComprobante.FACTURA_X;
expResult[3] = TipoDeComprobante.PRESUPUESTO;
TipoDeComprobante[] result = facturaService.getTipoFacturaCompra(empresa, proveedor);
assertArrayEquals(expResult, result);
}
use of sic.modelo.TipoDeComprobante in project sic by belluccifranco.
the class DetalleFacturaCompraGUI method cargarTiposDeFacturaDisponibles.
private void cargarTiposDeFacturaDisponibles() {
try {
TipoDeComprobante[] tiposFactura = RestClient.getRestTemplate().getForObject("/facturas/compra/tipos/empresas/" + EmpresaActiva.getInstance().getEmpresa().getId_Empresa() + "/proveedores/" + ((Proveedor) cmb_Proveedor.getSelectedItem()).getId_Proveedor(), TipoDeComprobante[].class);
cmb_TipoFactura.removeAllItems();
for (int i = 0; tiposFactura.length > i; i++) {
cmb_TipoFactura.addItem(tiposFactura[i]);
}
} 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);
}
}
use of sic.modelo.TipoDeComprobante 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.TipoDeComprobante in project sic by belluccifranco.
the class FacturaServiceImpl method calcularIvaCompra.
@Override
public double calcularIvaCompra(BusquedaFacturaCompraCriteria criteria) {
// Empresa
if (criteria.getEmpresa() == null) {
throw new EntityNotFoundException(ResourceBundle.getBundle("Mensajes").getString("mensaje_empresa_no_existente"));
}
// Fecha de Factura
if (criteria.isBuscaPorFecha() == true & (criteria.getFechaDesde() == null | criteria.getFechaHasta() == null)) {
throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_factura_fechas_busqueda_invalidas"));
}
if (criteria.isBuscaPorFecha() == true) {
Calendar cal = new GregorianCalendar();
cal.setTime(criteria.getFechaDesde());
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
criteria.setFechaDesde(cal.getTime());
cal.setTime(criteria.getFechaHasta());
cal.set(Calendar.HOUR_OF_DAY, 23);
cal.set(Calendar.MINUTE, 59);
cal.set(Calendar.SECOND, 59);
criteria.setFechaHasta(cal.getTime());
}
// Proveedor
if (criteria.isBuscaPorProveedor() == true && criteria.getProveedor() == null) {
throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_factura_proveedor_vacio"));
}
TipoDeComprobante[] tipoFactura = { TipoDeComprobante.FACTURA_A };
return facturaCompraRepository.calcularIVA_Compra(criteria, tipoFactura);
}
use of sic.modelo.TipoDeComprobante in project sic by belluccifranco.
the class FacturaServiceImplTest method shouldGetTipoFacturaVentaWhenEmpresaNoDiscriminaIVAYClienteNO.
@Test
public void shouldGetTipoFacturaVentaWhenEmpresaNoDiscriminaIVAYClienteNO() {
Empresa empresa = Mockito.mock(Empresa.class);
Cliente cliente = Mockito.mock(Cliente.class);
CondicionIVA condicionIVAqueNoDiscrimina = Mockito.mock(CondicionIVA.class);
when(condicionIVAqueNoDiscrimina.isDiscriminaIVA()).thenReturn(Boolean.TRUE);
when(condicionIVAqueNoDiscrimina.isDiscriminaIVA()).thenReturn(Boolean.FALSE);
when(empresa.getCondicionIVA()).thenReturn(condicionIVAqueNoDiscrimina);
when(cliente.getCondicionIVA()).thenReturn(condicionIVAqueNoDiscrimina);
TipoDeComprobante[] expResult = { TipoDeComprobante.FACTURA_C, TipoDeComprobante.FACTURA_X, TipoDeComprobante.FACTURA_Y, TipoDeComprobante.PRESUPUESTO };
TipoDeComprobante[] result = facturaService.getTipoFacturaVenta(empresa, cliente);
assertArrayEquals(expResult, result);
}
Aggregations