private static function eliminarCheques($id_abono, $compra = null, $venta = null, $prestamo = null)
 {
     $resultados = null;
     $from = 0;
     //valida si el abono sera de compra, de venta o de prestamo
     //y se obtinen los cheques relacionados con dicho abono
     if ($compra) {
         $cheque_abono_compra = new ChequeAbonoCompra();
         $cheque_abono_compra->setIdAbonoCompra($id_abono);
         $resultados = ChequeAbonoCompraDAO::search($cheque_abono_compra);
         $from = 1;
     } else {
         if ($venta) {
             $cheque_abono_venta = new ChequeAbonoVenta();
             $cheque_abono_venta->setIdAbonoVenta($id_abono);
             $resultados = ChequeAbonoVentaDAO::search($cheque_abono_venta);
             $from = 2;
         } else {
             if ($prestamo) {
                 $cheque_abono_prestamo = new ChequeAbonoPrestamo();
                 $cheque_abono_prestamo->setIdAbonoPrestamo($id_abono);
                 $resultados = ChequeAbonoPrestamoDAO::search($cheque_abono_prestamo);
                 $from = 3;
             } else {
                 Logger::error("No se recibio si se eliminaran de una compra, una venta o un prestamo los cheques");
                 throw new Exception("No se recibio si los cheques se eliminaran de una compra, una venta o un prestamo");
             }
         }
     }
     $cheque = new Cheque();
     //Si no se han encontrado cheques, regresa
     if (is_null($resultados)) {
         return;
     }
     DAO::transBegin();
     try {
         //Se eliminan todos los registros encontrados para dicho abono
         foreach ($resultados as $resultado) {
             $cheque->setIdCheque($resultado->getIdCheque());
             ChequeDAO::delete($cheque);
             switch ($from) {
                 case 1:
                     ChequeAbonoCompraDAO::delete($resultado);
                     break;
                 case 2:
                     ChequeAbonoVentaDAO::delete($resultado);
                     break;
                 case 3:
                     ChequeAbonoPrestamoDAO::delete($resultado);
             }
         }
     } catch (Exception $e) {
         DAO::transRollback();
         Logger::error("No se pudieron borrar los cheques: " . $e);
         throw new Exception("No se pudieron borrar los cheques");
     }
     DAO::transEnd();
 }