Ver Mensaje Individual
  #4 (permalink)  
Antiguo 29/07/2013, 16:34
LOD_Fredy
 
Fecha de Ingreso: abril-2009
Mensajes: 341
Antigüedad: 15 años
Puntos: 3
Respuesta: Duda sobre procedimiento almacenado recursivo que esta dentro de otro proc

Les explico lo que necesito hacer.

Estoy desarrollando una página de pago de comisiones multinivel, actualmente hay 6 niveles pero puede haber mas, se les da comisiones por los consumos hechos durante x periodo (del 11 de enero al 10 de febrero, por ejemplo) que hagan sus nodos hijos hasta 6 niveles de profundidad, los días 10 de cada mes subirán un csv con dichos consumos. El reparto de comisión solo se le hace a nodos que tienen 170 pesos o mas de consumo.

Para que esto funcione de forma correcta, una opción es asignarle a cada nodo el nivel en el que está, de forma que registre el consumo a partir del nivel superior para abajo y así poder determinar si un nodo debe recibir comisión por sus nodos hijos o no, ahora, ese no es el problema (aun me falta esta parte pero esta fácil, casi tengo todo, solo me falta un select para checar si hay consumo en ese periodo y si es mayor a 170), el problema, y el por que necesito la recursividad es que, pueden cambiar de padre a un nodo, entonces, esto puede cambiar a que nivel está, por ejemplo si es nivel 2 y tiene hijos, nietos, etc, sus hijos son de nivel 3, pero si le cambian el nodo padre a uno de nivel 2, el nodo pasa a nivel 3 y sus hijos se vuelven de nivel 4 nietos el 5, etc, es por eso que necesito la recursividad, para checar todo el arbol del socio y hacer el cambio en cada socio hijo, nieto, etc.

Igual y es mucho enrrollarse, el concepto es sencillo (aunque no parezca con tanto rollo), el problema es que a fuerza debe ser una función recursiva en sql para poder recorrer el arbol completo a partir de un nodo base y hacer el cambio de nivel que corresponda.


Pd: el nivel es un campo en la tabla, ademas de no_id y no_id2 (que es el id del nodo padre).
salu2.