# `callAllIdChidVisible` (procedure) - **Type:** PROCEDURE - **Deterministic:** NO - **SQL data access:** CONTAINS SQL ## Parameters | # | Mode | Name | Type | |---|---|---|---| | 1 | IN | `p_sParentId` | `varchar(50)` | ## Body _Body is not pre-cached. To inspect: `mysql --defaults-file=~/.my.cnf -e 'SHOW CREATE PROCEDURE `callAllIdChidVisible`'`._ ## Narrative **Business context:** Recursive descendant of `callAllIdbVisible` — when a `gdsmodule` parent is hidden (`bVisible=0`), this proc cascades `bVisible=0`, `bUnTask=0`, `bJurisdictionShow=0` to every descendant in the BACK navigation tree. Used in concert with the `sAllId` rebuild family to keep visibility / jurisdiction flags coherent across the module subtree. **What it does:** opens a cursor over `gdsmodule` children of `p_sParentId`. For each child whose own `bVisible=0`, runs `UPDATE gdsmodule SET bVisible=0, bUnTask=0, bJurisdictionShow=0 WHERE sParentId=p_sId`, then if the child has further children, recurses (`max_sp_recursion_depth=10`). Note: the visibility flag tested is on the *child*, not the parent — so the cascade only fires when a node is itself already hidden, not when its ancestor is. **Invocation:** orphan-via-dead-chain. Only caller is `callAllIdbVisible`, which is itself orphaned (no form-master / hook / Java / other-proc caller). No direct caller anywhere — candidate for maintainer audit alongside the rest of the `callAllIdb*`/`callAllIdChid*` family.