Serial Monitor and sd card values are not the same

if ( timerRunning == true && millis() - initialTime >= openTime)
if (doneitonce == true && solstate == false)

Isn't camelCase great? Why did you abandon it part way through writing the code?

doneitonce is way harder to read and decipher than doneItOnce. It is NO easier to type.

Please stick with camelCase.