Is OTHER wrong in the post ? POST : *we used to share our Reddit and Facebook accounts, that's since changed.

Tldr at bottom 

So, a little history. I was raised by my grandmother and lived with her my whole life. When she got older and sicker we switched roles and it's the single most rewarding thing I have done with my life. She passed away a year ago in October. For every birthday since I was a teenager she'd buy me a cheesecake for my birthday, because I don't care for traditional cakes. It was something special I could always count on. 

Now, my boyfriend and I have been suffering through some problems lately. When my grandmother was on her last week's he came down with the flu and I ran between the two nursing them alone as my family couldn't be bothered. After she passed he confessed he didn't have the flu, he was dope sick. News to me, I had no clue he partook in heroin. I was upset naturally , but mostly angry that I could have given my grandmother more one on one care and time had I not also been concerned and taking care if him as well.  However he was withdrawing to be clean, and I gave him a shot and supported his recovery as best I could.

Very recently he was arrested at 4am, after telling me he was stranded because he ran out of gas after work. I had suspicions but I let them go. He calls me first thing the next day to tell me he was arrested for suspended licence and obstruction of view, which I said "that can't be all of it." He said there was more, but the police didn't tell him the charges. Huge red flag. I find a way down there later on In the day and make it to see him for an initial visit, where he repeats that he doesn't know the charges, he forgot what they said. I'm discouraged and disappointed because I know he's lying. Confirmed that later when I finally worked up the courage to call the jail and ask the COs myself. Cocaine possession in the 5th and 7th. One being a felony. Heartbroken. 

I'm 8 months pregnant with our daughter, due Christmas day and we also have a 2y son and 5y daughter. He's the only income right now, working two jobs most days. I want to give him a chance to explain, and see how I feel and I bail him out. His jobs are saved and we have a long talk and he agrees to do outpatient rehab and urine tests.

Everything goes ok for.... A week when he suddenly comes home from his day shift saying he quit because the manager is too much of a bitch. Now we're down an income and behind on everything because of his lawyer and time away from work and two short months before Christmas and a newborn. 

My birthday is the 13th, I asked everyone if they insisted on getting me gifts to buy me something I'd need for the baby because we still need plenty. Including my boyfriend whom I told to just please skip any cards or gifts this year. He asked if he should skip the cake as well, to which I replied yes both because I don't want anyone taking over my grandmother's tradition yet, it's only my second birthday without her and it's a sweet moment I want to save for now and because the cheesecake is pricey and out of budget. He agreed and said he understood. 

Tonight he comes home with a huge card and a cheesecake. I was upset. But I said thank you anyway but asked him to return it because of what we talked about. I didn't read the card. I'm angry he didn't listen and he's not taking the financial problems seriously at all. 

He got quiet and went away for awhile before hunting me down in the living room to tell me I'm ungrateful and we can afford it on one day and how he was just trying to do something meaningful. I told him something meaningful would have been respecting my wishes and listening to me. 

He left to go sleep at a friend's or do drugs, I don't even know. But I feel guilty for not just saying thank you and leaving it at that. Am I the asshole?

Tldr: asked my boyfriend not to spend money on my birthday because we're down an income and expecting a baby in two months  who still needs a lot of things also explained I didn't want cake for sentimental reasons. He does it anyway and I ask him to take it back. 