#!/usr/bin/env python3
# -*- coding: utf-8 -*-

"""
    
    
"""

import re
from datetime import datetime
from PyQt5.QtCore import QDate, QDateTime

class Util() :
        
        
	def getQDatetimeFromString(srtdatetime, defaultValue = QDateTime(1,1,1,0,0), allowqdate = False ):
		
		
		if srtdatetime is None :
			return defaultValue		
		
		#print("--- Format qdatetime [" + str(srtdatetime) + "]")					
		myQdate = QDateTime(1,1,1,0,0)		
		date_patterns = [ "%d/%m/%Y", "%d/%m/%Y %H:%M" ] # db date formats acceptés
		for pattern in date_patterns:
			try:
				pytonDateTime = datetime.strptime(srtdatetime, pattern)
								
				#print("   Pattern = "+pattern)
				#print(pytonDateTime)
				#print("   day : "+str(pytonDateTime.day))
				#print("   month : "+str(pytonDateTime.month))
				#print("   year : "+str(pytonDateTime.year))
				#print("   hour : "+str(pytonDateTime.hour))
				#print("   minute : "+str(pytonDateTime.minute))
				
				if pytonDateTime.hour == 0 and pytonDateTime.minute == 0 and allowqdate is True :
					myQdate = QDate( 
											pytonDateTime.year,
											pytonDateTime.month,
											pytonDateTime.day
										)				
				else :
					myQdate = QDateTime( 
											pytonDateTime.year,
											pytonDateTime.month,
											pytonDateTime.day,
											pytonDateTime.hour,
											pytonDateTime.minute
										)				
				#print("  return " + str(myQdate.value()))
				return myQdate
						
			except:
				pass
				
		#print("   return default date")
		return myQdate		


	def fmtstr(fmt, strr):
		"""
		To format some string !!!
		"""

		res = []
		i = 0
		s=re.sub(r'[^\w]', '', strr)
		for c in fmt:
			if c == '#':
				res.append(s[i:i+1])
				i = i+1
			else:
				res.append(c)
		res.append(s[i:])
		return "".join(res)

	def titling(name):
		"""
		To display the names and surnames in uppercase for 1st letter.
		"""

		return name.title()

	def single_quote_remover(text):
		"""
		To remove single quotes from entry to prevent SQL crash.
		"""

		return text.replace ("'", "/")

	def single_quote_returner(text):
		"""
		To display the single quote for the user ex: cote d'or as chocolat:)))
		"""

		return text.replace("/", "'")

#---------------------------------------------------------------------------
