"Kein" is an adjective, which you would use to modify a noun, so if you wanted to say, "we have no beer", you would say "Wir haben kein Bier." "Nicht" is an adverb, and in this sentence, it's modifying "genug," so, "Wir haben nicht genug Bier." In English it would be the difference between "no" (adjective) and "not" (adverb).
I read somewhere how much beer is consumed in Bavaria each year (although this was a long time ago). It was something like 3 glasses a day for every man woman and child. I was told that those figures were so big because of all the people who come to Oktoberfest and other such events. But certainly they drink a lot of beer. However I have never been ANYWHERE in Germany where they have run out or not had enough.
Actually that English sentence would just be interpreted as meaning something somewhat different from a translation of this sentence. We are not having enough beer would be said to mean we are not drinking enough beer, not that there is not enough beer (available). We use the verb have to mean drink or eat all the time in English. That doesn't really work in German though.
Kein negates the object, so it goes before the noun. Nicht negates the verb and goes directly after the verb. Genug can be either an adverb or an adjective. So many times genug may modify the adverb nicht. But here I think it modifies the noun Bier. You could also say Genug Bier haben wir night. So the placement of genug can vary based on the relative structures of the sentences.
Nicht moves around a lot. But it is rule driven and its not particularly optional, although there is some leeway in some sentences. This means once you get it, you have it.
They generally mean the same thing, but they aren't used in the same structure. Reicht comes from the verb reichen, to be enough or to suffice. Genug is just an adjective to modify the predicate noun. In order to figure out the difference between how the sentences come together in German and English, I suggest you use the English verb to suffice, although it's uncommon and can even sound pretentious. But don't allow yourself to change it to sufficient, which is an adjective. If you try to use suffice here, you will find that it won't work with the subject we. The subject has to be the beer. The beer doesn't suffice. Hardly a sentence you are likely to hear in English, but it does show you how to say this in German using reicht. Das Bier reicht nicht. Most English speakers would translate that as There isn't enough beer, but that is obviously not word for word.
No. That sentence would be interpreted as using the verb to have as meaning to drink, which we often do in English, but doesn't translate to German. This sentence simply means that We don't have enough beer on hand. The on hand was added simply to contrast with the other meaning you were trying. Possessing a thing is seldom used in the progressive in English and would require some context to interpret.
They don't really have different meanings as much as simply being different parts of speech and therefore being constructed differently. Reichen is a verb. We don't really have quite the same verb in English. The closest is probably suffice, but that not really an every day word. Genug, like enough is an adverb, although enough is also an adjective. The subject of the two sentences would be different and other grammar aspects, so there may be some slightly different emphasis in one sentence or the other due to the different subject. But essentially Wir haben night genug Bier and Das Bier reicht nicht mean the same thing. But, since we are not common going to translate the latter as The beer does not suffice, they would both be translated the same.
Genug is the adverb meaning enough,although it often works in expressions essentially as an adjective. Reicht is the third person singular form of the verb reichen which means to be enough or to suffice. So you can say Das ist genug or Das reichts. You would probably translate them the same, but if you think of Das reichts as meaning that suffices it may remind you that it's a verb. Of course few people say that suffices.
Why do we not use "reicht" here?
How would you use reicht "is enough; suffices" here?
"We do not have is enough beer" ? "We do not have beer is enough" ?
You could say "The beer is not enough" Das Bier reicht nicht, but that is not a very close translation of "We do not have enough beer".