Search in sources :

Example 6 with FacturaCompra

use of sic.modelo.FacturaCompra 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 7 with FacturaCompra

use of sic.modelo.FacturaCompra 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

FacturaCompra (sic.modelo.FacturaCompra)7 ArrayList (java.util.ArrayList)3 ResourceAccessException (org.springframework.web.client.ResourceAccessException)3 RestClientResponseException (org.springframework.web.client.RestClientResponseException)3 FacturaVenta (sic.modelo.FacturaVenta)3 Calendar (java.util.Calendar)2 GregorianCalendar (java.util.GregorianCalendar)2 List (java.util.List)2 FormaDePago (sic.modelo.FormaDePago)2 Gasto (sic.modelo.Gasto)2 Pago (sic.modelo.Pago)2 RenglonFactura (sic.modelo.RenglonFactura)2 BusinessServiceException (sic.service.BusinessServiceException)2 BooleanBuilder (com.querydsl.core.BooleanBuilder)1 DateExpression (com.querydsl.core.types.dsl.DateExpression)1 Expressions (com.querydsl.core.types.dsl.Expressions)1 LocalDate (java.time.LocalDate)1 LocalDateTime (java.time.LocalDateTime)1 ZoneId (java.time.ZoneId)1 Date (java.util.Date)1