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(); }