/** * *Editar los detalles de un gasto. <br/><br/><b>Update : </b> Tambien se deberia de tomar de la sesion el id del usuario qeu hiso al ultima modificacion y una fecha de ultima modificacion. * * @param id_gasto int Id que hace referencia a este gasto * @param fecha_gasto string Fecha que el usuario selecciona en el sistema, a la cual le quiere asignar el gasto. * @param monto float Monto a gastar * @param id_concepto_gasto int Id del concepto del gasto * @param descripcion string Descripcion del gasto en caso de que no este en la lista de conceptos. * @param nota string Informacion adicinal sobre el gasto * @param folio string Folio de la factura de ese gasto **/ public static function EditarGasto($id_gasto, $descripcion = null, $fecha_gasto = null, $folio = null, $id_concepto_gasto = null, $nota = null) { Logger::log("Editando gasto"); //valida si se recibieron parametros a editar o no if (!$fecha_gasto && !$id_concepto_gasto && !$descripcion && !$nota && !$folio) { Logger::warn("No se recibieron parametros para editar, no hay nada que editar"); throw new Exception("No se recibieron parametros para editar, no hay nada que editar"); } //valida los parametros obtenidos $validar = self::validarParametrosGasto($id_concepto_gasto, null, null, null, $fecha_gasto, null, null, $nota, $descripcion, $folio); if (is_string($validar)) { Logger::error($validar); throw new Exception($validar); } $gasto = GastoDAO::getByPK($id_gasto); //Los parametros que no sean null seran tomados como actualizacion if (!is_null($fecha_gasto)) { $gasto->setFechaDelGasto($fecha_gasto); } if (!is_null($id_concepto_gasto)) { $gasto->setIdConceptoGasto($id_concepto_gasto); } if (!is_null($descripcion)) { $gasto->setDescripcion($descripcion); } if (!is_null($nota)) { $gasto->setNota($nota); } if (!is_null($folio)) { $gasto->setFolio($folio); } DAO::transBegin(); try { GastoDAO::save($gasto); } catch (Exception $e) { DAO::transRollBack(); Logger::error("No se pudo editar el gasto: " . $e); throw new Exception("No se pudo editar el gasto"); } DAO::transEnd(); Logger::log("Gasto editado exitosamente"); }