/** * * Crea una nueva categoria para unidades. * * @param descripcion string Descripcion de la nueva categoria. * @param activo bool Status de la nueva categoria. * @throws BusinessLogicException si ya existe otra categoria con la misma descripcion. * @return id_categoria_unidad_medida int ID de la nueva categoria. **/ public static function NuevaCategoriaUdm($descripcion, $activo = true) { Logger::log("Creando una nueva categoria unidad de medida...."); if (empty($descripcion)) { throw new InvalidArgumentException("Descripcion vacía", 1); } //buscar esa descripcion de unidad $cat_udm = new CategoriaUnidadMedida(array("descripcion" => $descripcion)); $n = CategoriaUnidadMedidaDAO::search($cat_udm); if (sizeof($n) > 0) { throw new BusinessLogicException("Ya existe esta descripcion"); } if (is_null($activo)) { $activo = true; } $cat_udm->setActiva($activo); DAO::transBegin(); try { CategoriaUnidadMedidaDAO::save($cat_udm); } catch (Exception $e) { DAO::transRollback(); Logger::error("No se pudo crear la categoria unidad de medida: " . $e); throw new Exception("No se pudo crear la categoria unidad de medida"); } DAO::transEnd(); Logger::log("Categoria Unidad de Medida creada exitosamente"); return array("id_categoria_unidad_medida" => (int) $cat_udm->getIdCategoriaUnidadMedida()); }