use of sic.service.BusinessServiceException in project sic by belluccifranco.
the class FacturaServiceImpl method eliminar.
@Override
@Transactional
public void eliminar(long[] idsFactura) {
for (long idFactura : idsFactura) {
if (!pagoService.getPagosDeLaFactura(idFactura).isEmpty()) {
throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_no_se_puede_eliminar"));
}
Factura factura = this.getFacturaPorId(idFactura);
if (factura.getCAE() == 0L) {
factura.setEliminada(true);
this.cuentaCorrienteService.asentarEnCuentaCorriente((FacturaVenta) factura, TipoDeOperacion.ELIMINACION);
if (factura instanceof FacturaVenta) {
productoService.actualizarStock(this.getIdsProductosYCantidades(factura), TipoDeOperacion.ELIMINACION, Movimiento.VENTA);
} else if (factura instanceof FacturaCompra) {
productoService.actualizarStock(this.getIdsProductosYCantidades(factura), TipoDeOperacion.ELIMINACION, Movimiento.COMPRA);
}
if (factura.getPedido() != null) {
List<Factura> facturas = new ArrayList<>();
facturas.add(factura);
pedidoService.actualizarEstadoPedido(factura.getPedido(), facturas);
}
} else {
throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_eliminar_factura_aprobada"));
}
}
}
use of sic.service.BusinessServiceException in project sic by belluccifranco.
the class PagoServiceImpl method eliminar.
@Override
@Transactional
public void eliminar(long idPago) {
Pago pago = this.getPagoPorId(idPago);
if (notaService.getNotaDebitoPorPago(idPago) != null) {
throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_no_se_puede_eliminar"));
}
pago.setEliminado(true);
this.cuentaCorrienteService.asentarEnCuentaCorriente(pago, TipoDeOperacion.ELIMINACION, null);
pagoRepository.save(pago);
if (pago.getFactura() != null) {
facturaService.actualizarFacturaEstadoPago(pago.getFactura());
}
LOGGER.warn("El Pago " + pago + " se eliminĂ³ correctamente.");
}
use of sic.service.BusinessServiceException in project sic by belluccifranco.
the class EmpresaServiceImpl method guardarLogo.
@Override
public String guardarLogo(byte[] imagen) {
try {
String filename = String.valueOf(new Date().getTime());
MultipartFile file = new BASE64DecodedMultipartFile(imagen, filename);
return amazonService.saveFileIntoS3Bucket(filename, file.getInputStream(), file.getContentType());
} catch (IOException ex) {
LOGGER.error(ex.getMessage());
throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_error_IOException"));
}
}
use of sic.service.BusinessServiceException in project sic by belluccifranco.
the class NotaServiceImpl method eliminarNota.
@Override
@Transactional
public void eliminarNota(long[] idsNota) {
for (long idNota : idsNota) {
Nota nota = this.getNotaPorId(idNota);
if (nota != null && nota.getCAE() == 0l) {
if (!getPagosNota(idNota).isEmpty()) {
throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_no_se_puede_eliminar"));
}
nota.setEliminada(true);
this.cuentaCorrienteService.asentarEnCuentaCorriente(nota, TipoDeOperacion.ELIMINACION);
notaRepository.save(nota);
LOGGER.warn("La Nota " + nota + " se eliminĂ³ correctamente.");
} else {
throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_eliminar_factura_aprobada"));
}
}
}
use of sic.service.BusinessServiceException in project sic by belluccifranco.
the class NotaServiceImpl method calcularRenglonCredito.
@Override
public List<RenglonNotaCredito> calcularRenglonCredito(TipoDeComprobante tipo, double[] cantidad, long[] idRenglonFactura) {
List<RenglonNotaCredito> renglonesNota = new ArrayList<>();
RenglonNotaCredito renglonNota;
if (cantidad.length == idRenglonFactura.length) {
for (int i = 0; i < idRenglonFactura.length; i++) {
RenglonFactura renglonFactura = facturaService.getRenglonFactura(idRenglonFactura[i]);
if (renglonFactura.getCantidad() < cantidad[i] || cantidad[i] < 0) {
throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_nota_de_credito_cantidad_no_valida") + " " + renglonFactura.getDescripcionItem());
}
renglonNota = new RenglonNotaCredito();
renglonNota.setIdProductoItem(renglonFactura.getId_ProductoItem());
renglonNota.setCodigoItem(renglonFactura.getCodigoItem());
renglonNota.setDescripcionItem(renglonFactura.getDescripcionItem());
renglonNota.setMedidaItem(renglonFactura.getMedidaItem());
renglonNota.setCantidad(cantidad[i]);
renglonNota.setPrecioUnitario(renglonFactura.getPrecioUnitario());
renglonNota.setDescuentoPorcentaje(renglonFactura.getDescuento_porcentaje());
renglonNota.setDescuentoNeto(renglonNota.getPrecioUnitario() * (renglonFactura.getDescuento_porcentaje() / 100));
renglonNota.setGananciaPorcentaje(renglonFactura.getGanancia_porcentaje());
renglonNota.setGananciaNeto(renglonNota.getPrecioUnitario() * (renglonNota.getGananciaPorcentaje() / 100));
renglonNota.setIvaPorcentaje(renglonFactura.getIva_porcentaje());
renglonNota.setIvaNeto((tipo == TipoDeComprobante.FACTURA_A || tipo == TipoDeComprobante.FACTURA_B) ? renglonFactura.getIva_neto() : 0);
renglonNota.setImporte(renglonNota.getPrecioUnitario() * cantidad[i]);
renglonNota.setImporteBruto(renglonNota.getImporte() - (renglonNota.getDescuentoNeto() * cantidad[i]));
if (tipo == TipoDeComprobante.FACTURA_B) {
renglonNota.setImporteNeto(renglonNota.getImporteBruto());
} else {
renglonNota.setImporteNeto(renglonNota.getImporteBruto() + (renglonNota.getIvaNeto() * cantidad[i]));
}
renglonesNota.add(renglonNota);
}
}
return renglonesNota;
}
Aggregations