BEGIN declare v_cant int; declare v_monto DOUBLE; declare v_idgiro int; SET v_monto = 0; -- Obtener el idgiro del puesto select p.idgiro into v_idgiro from p_puesto p where p.idpuesto = vidpuesto; -- Verificar si el puesto tiene el servicio activo select count(*) INTO v_cant from p_puesto_servicio ps where ps.idservicio = 3 and ps.idpuesto = vidpuesto and ps.activo = 1; if v_cant > 0 THEN -- Evaluar idgiro y asignar los valores correspondientes select CASE WHEN v_idgiro IN (2, 6, 9) THEN 13 ELSE 8 END into v_monto from g_recibo_cargos gc where idconcepto = 7 and periodo = vperiodo; end if; RETURN v_monto; END;