Search in sources :

Example 11 with FacturaVenta

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

the class FacturaServiceImpl method validarFactura.

private void validarFactura(Factura factura) {
    //Entrada de Datos
    if (factura.getFechaVencimiento() != null) {
        //quitamos la parte de hora de la Fecha de Vencimiento
        Calendar calFechaVencimiento = new GregorianCalendar();
        calFechaVencimiento.setTime(factura.getFechaVencimiento());
        calFechaVencimiento.set(Calendar.HOUR, 0);
        calFechaVencimiento.set(Calendar.MINUTE, 0);
        calFechaVencimiento.set(Calendar.SECOND, 0);
        calFechaVencimiento.set(Calendar.MILLISECOND, 0);
        factura.setFechaVencimiento(calFechaVencimiento.getTime());
        //quitamos la parte de hora de la Fecha Actual para poder comparar correctamente
        Calendar calFechaDeFactura = new GregorianCalendar();
        calFechaDeFactura.setTime(factura.getFecha());
        calFechaDeFactura.set(Calendar.HOUR, 0);
        calFechaDeFactura.set(Calendar.MINUTE, 0);
        calFechaDeFactura.set(Calendar.SECOND, 0);
        calFechaDeFactura.set(Calendar.MILLISECOND, 0);
        if (Validator.compararFechas(factura.getFechaVencimiento(), calFechaDeFactura.getTime()) > 0) {
            throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_factura_fecha_invalida"));
        }
    }
    //Requeridos
    if (factura.getFecha() == null) {
        throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_factura_fecha_vacia"));
    }
    if (factura.getTipoComprobante() == null) {
        throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_factura_tipo_factura_vacia"));
    }
    if (factura.getTransportista() == null) {
        throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_factura_transportista_vacio"));
    }
    if (factura.getRenglones() == null || factura.getRenglones().isEmpty()) {
        throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_factura_renglones_vacio"));
    }
    if (factura.getEmpresa() == null) {
        throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_factura_empresa_vacia"));
    }
    if (factura instanceof FacturaCompra) {
        FacturaCompra facturaCompra = (FacturaCompra) factura;
        if (facturaCompra.getProveedor() == null) {
            throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_factura_proveedor_vacio"));
        }
    }
    if (factura instanceof FacturaVenta) {
        FacturaVenta facturaVenta = (FacturaVenta) factura;
        if (facturaVenta.getCliente() == null) {
            throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_factura_cliente_vacio"));
        }
        if (facturaVenta.getUsuario() == null) {
            throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_factura_usuario_vacio"));
        }
    }
    //Calculos
    //SubTotal
    double[] importes = new double[factura.getRenglones().size()];
    int i = 0;
    for (RenglonFactura renglon : factura.getRenglones()) {
        importes[i] = renglon.getImporte();
        i++;
    }
    if (factura.getSubTotal() != this.calcularSubTotal(importes)) {
        throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_factura_sub_total_no_valido"));
    }
    //SubTotalBruto
    double subTotalBruto = this.calcularSubTotalBruto(factura.getTipoComprobante(), factura.getSubTotal(), factura.getRecargo_neto(), factura.getDescuento_neto(), factura.getIva_105_neto(), factura.getIva_21_neto());
    if (factura.getSubTotal_bruto() != subTotalBruto) {
        throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_factura_sub_total_bruto_no_valido"));
    }
    //IVA
    i = 0;
    if (factura.getTipoComprobante().equals(TipoDeComprobante.FACTURA_A) || factura.getTipoComprobante().equals(TipoDeComprobante.FACTURA_B) || factura.getTipoComprobante().equals(TipoDeComprobante.PRESUPUESTO)) {
        double[] ivaPorcentajes = new double[factura.getRenglones().size()];
        double[] ivaNetos = new double[factura.getRenglones().size()];
        double[] cantidades = new double[factura.getRenglones().size()];
        for (RenglonFactura renglon : factura.getRenglones()) {
            ivaPorcentajes[i] = renglon.getIva_porcentaje();
            ivaNetos[i] = renglon.getIva_neto();
            cantidades[i] = renglon.getCantidad();
            i++;
        }
        double ivaNeto21 = this.calcularIvaNetoFactura(factura.getTipoComprobante(), cantidades, ivaPorcentajes, ivaNetos, 21, factura.getDescuento_porcentaje(), factura.getRecargo_porcentaje());
        double ivaNeto105 = this.calcularIvaNetoFactura(factura.getTipoComprobante(), cantidades, ivaPorcentajes, ivaNetos, 10.5, factura.getDescuento_porcentaje(), factura.getRecargo_porcentaje());
        if (factura.getIva_21_neto() != ivaNeto21) {
            throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_factura_iva21_no_valido"));
        }
        if (factura.getIva_105_neto() != ivaNeto105) {
            throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_factura_iva105_no_valido"));
        }
    }
    //Total
    double total = this.calcularTotal(factura.getSubTotal_bruto(), factura.getIva_105_neto(), factura.getIva_21_neto());
    if (factura.getTotal() != total) {
        throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_factura_total_no_valido"));
    }
}
Also used : FacturaVenta(sic.modelo.FacturaVenta) BusinessServiceException(sic.service.BusinessServiceException) Calendar(java.util.Calendar) GregorianCalendar(java.util.GregorianCalendar) GregorianCalendar(java.util.GregorianCalendar) RenglonFactura(sic.modelo.RenglonFactura) FacturaCompra(sic.modelo.FacturaCompra)

Example 12 with FacturaVenta

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

the class CajaGUI method btn_VerDetalleActionPerformed.

//GEN-LAST:event_btn_CerrarCajaActionPerformed
private void btn_VerDetalleActionPerformed(java.awt.event.ActionEvent evt) {
    //GEN-FIRST:event_btn_VerDetalleActionPerformed
    if (tbl_Movimientos.getSelectedRow() != -1) {
        long id = this.listaMovimientos.get(Utilidades.getSelectedRowModelIndice(tbl_Movimientos)).getIdMovimiento();
        TipoMovimientoCaja tipoMovimientoCaja = this.listaMovimientos.get(Utilidades.getSelectedRowModelIndice(tbl_Movimientos)).getTipoMovimientoCaja();
        try {
            if (tipoMovimientoCaja.equals(TipoMovimientoCaja.PAGO)) {
                Pago pago = RestClient.getRestTemplate().getForObject("/pagos/" + id, Pago.class);
                if (pago.getFactura() instanceof FacturaVenta) {
                    this.lanzarReporteFacturaVenta(pago.getFactura());
                }
                if (pago.getFactura() instanceof FacturaCompra) {
                    this.verDetalleFacturaCompra(pago.getFactura());
                }
            }
            if (tipoMovimientoCaja.equals(TipoMovimientoCaja.GASTO)) {
                Gasto gasto = RestClient.getRestTemplate().getForObject("/gastos/" + id, Gasto.class);
                String mensaje = "En Concepto de: " + gasto.getConcepto() + "\nMonto: " + gasto.getMonto() + "\nUsuario: " + gasto.getUsuario().getNombre();
                JOptionPane.showMessageDialog(this, mensaje, "Resumen de Gasto", JOptionPane.INFORMATION_MESSAGE);
            }
        } 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 : FacturaVenta(sic.modelo.FacturaVenta) Gasto(sic.modelo.Gasto) RestClientResponseException(org.springframework.web.client.RestClientResponseException) Pago(sic.modelo.Pago) FormaDePago(sic.modelo.FormaDePago) ResourceAccessException(org.springframework.web.client.ResourceAccessException) FacturaCompra(sic.modelo.FacturaCompra)

Aggregations

FacturaVenta (sic.modelo.FacturaVenta)12 ArrayList (java.util.ArrayList)7 RenglonFactura (sic.modelo.RenglonFactura)7 Factura (sic.modelo.Factura)5 Date (java.util.Date)4 FormaDePago (sic.modelo.FormaDePago)4 Test (org.junit.Test)3 ResourceAccessException (org.springframework.web.client.ResourceAccessException)3 RestClientResponseException (org.springframework.web.client.RestClientResponseException)3 ClienteBuilder (sic.builder.ClienteBuilder)3 EmpresaBuilder (sic.builder.EmpresaBuilder)3 TransportistaBuilder (sic.builder.TransportistaBuilder)3 Empresa (sic.modelo.Empresa)3 FacturaCompra (sic.modelo.FacturaCompra)3 Medida (sic.modelo.Medida)3 Producto (sic.modelo.Producto)3 Usuario (sic.modelo.Usuario)3 Calendar (java.util.Calendar)2 GregorianCalendar (java.util.GregorianCalendar)2 List (java.util.List)2