/**
  * Verifica si para este pago proceden notas de credito de descuento
  *
  * @param pago
  * @return
  */
 public boolean procedeDescuento(PagoM pago) {
   boolean val = (pago.getTipoDeDocumento().equals("E") || pago.getTipoDeDocumento().equals("S"));
   if (!val) return val;
   for (Pago p : pago.getPagos()) {
     if (p.getVenta().getDescuento1() == 0 && p.getVenta().getBonificaciones() == 0) {
       return true;
     }
   }
   return false;
 }
 /**
  * Intenta eliminar un pago tipo PagoM aplicado
  *
  * @param pago
  * @return
  */
 public boolean eliminarPagoM(final PagoM pago) {
   final String pattern =
       "Elminar Pago aplicado: {0}\n (Tiene {1} pagos de facturas con descuentos aplicados)";
   int aplicados = 0;
   getPagosManager().refresh(pago);
   for (Pago p : pago.getPagos()) {
     if (p.getVenta() != null && p.getVenta().getDescuentos() != 0) aplicados++;
   }
   boolean res =
       MessageUtils.showConfirmationMessage(
           MessageFormat.format(pattern, pago.getId(), aplicados), "Eliminación de pagos");
   if (res) {
     try {
       getPagosManager().eliminarPagoM(pago);
       return true;
     } catch (Exception e) {
       MessageUtils.showError("Error al elimiar pago", e);
       return false;
     }
   }
   return false;
 }