Search in sources :

Example 1 with TipoDeComprobante

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);
}
Also used : Empresa(sic.modelo.Empresa) TipoDeComprobante(sic.modelo.TipoDeComprobante) Proveedor(sic.modelo.Proveedor) CondicionIVA(sic.modelo.CondicionIVA) Test(org.junit.Test)

Example 2 with TipoDeComprobante

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);
    }
}
Also used : TipoDeComprobante(sic.modelo.TipoDeComprobante) Proveedor(sic.modelo.Proveedor) RestClientResponseException(org.springframework.web.client.RestClientResponseException) Point(java.awt.Point) ResourceAccessException(org.springframework.web.client.ResourceAccessException)

Example 3 with TipoDeComprobante

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"));
    }
}
Also used : BusinessServiceException(sic.service.BusinessServiceException) RenglonNotaCredito(sic.modelo.RenglonNotaCredito) TipoDeComprobante(sic.modelo.TipoDeComprobante)

Example 4 with TipoDeComprobante

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);
}
Also used : BusinessServiceException(sic.service.BusinessServiceException) TipoDeComprobante(sic.modelo.TipoDeComprobante) GregorianCalendar(java.util.GregorianCalendar) Calendar(java.util.Calendar) GregorianCalendar(java.util.GregorianCalendar) EntityNotFoundException(javax.persistence.EntityNotFoundException)

Example 5 with TipoDeComprobante

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);
}
Also used : Empresa(sic.modelo.Empresa) TipoDeComprobante(sic.modelo.TipoDeComprobante) CondicionIVA(sic.modelo.CondicionIVA) Cliente(sic.modelo.Cliente) Test(org.junit.Test)

Aggregations

TipoDeComprobante (sic.modelo.TipoDeComprobante)20 Empresa (sic.modelo.Empresa)15 Test (org.junit.Test)14 CondicionIVA (sic.modelo.CondicionIVA)13 Cliente (sic.modelo.Cliente)9 Proveedor (sic.modelo.Proveedor)5 ClienteBuilder (sic.builder.ClienteBuilder)4 EmpresaBuilder (sic.builder.EmpresaBuilder)4 BusinessServiceException (sic.service.BusinessServiceException)3 Point (java.awt.Point)2 Calendar (java.util.Calendar)2 GregorianCalendar (java.util.GregorianCalendar)2 EntityNotFoundException (javax.persistence.EntityNotFoundException)2 ResourceAccessException (org.springframework.web.client.ResourceAccessException)2 RestClientResponseException (org.springframework.web.client.RestClientResponseException)2 RenglonNotaCredito (sic.modelo.RenglonNotaCredito)1