The general consensus among the pundits is that this was a very bad week for Stephen Harper. His mass abstention on the budget was ridiculed and he was criticized for his talk of closing down debate on social issues at the Conservative convention, before he reversed this decision. I'll stick up for him here, if only because he does such a poor job defending himself.
First of all, what choice did he have on the budget? The Conservatives weren't ready for an election and no one in the country wanted an election. That meant, they'd either have to abstain or vote in favour of the budget. They couldn't vote in favour of the budget, so Harper did the only thing he possibly could. If anything, he should be complimented for saving Canadians the stress and cost of another election.
The convention argument is a bit trickier and I think the problem is more on selling the issue than the issue itself. There's something to be said for deciding moral issues with a free vote in the house and not taking a party position on them. It would be consistent with Harper's Libertarian side and the Conservative mantra of empowering MPs. The problem is, it wouldn't end the talk of a "hidden agenda", so it was likely a poor political strategy, even if there was nothing wrong with it. In addition, from what I've seen, the moral resolutions up for debate are far from radical and shouldn't cause Harper much damage. Even the abortion topic is only to ban third trimester abortions, something almost everyone could agree with.
The ridiculous part of the criticism on Harper comes from Liberals who accuse him of "silencing the grass roots". The Liberals just finished a convention where we debated issues only to have the PM ignore them. There was a resolution passed to decriminalize prostitution, but the PM made it abundantly clear that he had no interest whatsoever in prostitution (at least from a policy perspective). It becomes fairly difficult to criticize a party for silencing their grass-roots when you let your grass-roots talk with the full intent of simply ignoring them.