He works 2-3 days a week but apparently "deserves" a night out - which they don't have spare cash for ??!!?
How many days a week do his supporters think the OP works - albeit unpaid - in the home ? Does she not "deserve" a night out too ? (bet it's 7 days a week BTW)
Fact is .... unless they are particularly nasty people, they probably both "deserve" a night out but sometimes, just as the OP has been doing (by turning down invites and flogging stuff off on eBay) you have to be a grown up about it and swallow down the crapness of being stuck in and put what you'd like to do beneath the stuff that needs to be paid for. It sucks, but there you are .... it's disgusting selfish behaviour if his night out means the whole family suffer as a result.
And whilst I'm not saying it can never happen, come on, how many "drinks with friends" nights result in job offers - especially these days - unless you're in the sort of industry where networking is common ? That's just excusing his selfishness and whilst £40 may not sound "a lot" it's all relative and I can totally understand why the OP is feeling so pissed off and angry with him - particularly when he shrugged at her. How bloody contemptuous and dismissive is that ? That shrug translates as "I'll do what I want and I don't care what you think".
Can appreciate why some people immediately think of OP spending £40 on herself in retalliation, but as she says, she has her eye on the wider picture - and the double effect that would have on the family budget, so she's responsible and doesn't do it ... because ultimately it'll affect the children.
When you're genuinely strapped for cash, he's been a pig about this. He didn't even discuss it with her - maybe along the lines of him (poor baby) being totally stressed out or something - but just went and did it. You know what, as has already been suggested, I wouldn't buy him a Xmas present - and I'd be bloody tempted not to buy any of "his" favourite Xmas food in either. This isn't punishing him ... this is a consequence of £40 being taken. How else is the OP supposed to replace that money ?
Also sympathise with the "get a job" line. Only an idiot would refuse to do so, or be ignorant of the fact that a job might bring in some more money. I'm actually "lucky" enough to have 2 jobs .... to scrape the money we need .... but it's all but destroying my family/relationship as I work such crap hours and practically opposite shifts to my partner (as many others do too I know). I would love a nice school hours term time job (like everyone else) because the alternative - once you consider my skills, experience (in an industry which is currently all but dead), childcare, travel etc., is that even if I were able to get a job in "normal" hours, I'd earn less than I do now, and we literally need every £. So I'm stuck and it's crap. Come on people - it ISN'T "easy" to get work in many areas of the country, and if you do it often comes at a very high price. I think it's unfair to attack the OP for her lack of a job, when she has preschoolers for one, and when this line of reasoning detracts from the issue at hand - which is her DH's selfishness and irresponsibility.