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"));
}
}
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);
}
}
}
Aggregations