#encoding: utf-8

from impressao import Imprimir
from pprint import pprint
import json
import requests
import settings
import time

class daemon_impressao:
	def __init__(self):
		self.URL_BASE = "http://webservices.romancemoda.com.br:91/executar/etiquetas/"

	def __comunicar(self, acao, dados = None, timeout = None):

		dados = "str={}".format(json.dumps(dados))

		r = requests.get(self.URL_BASE + acao,
			params = dados,
			timeout = timeout)

		resultado = r.json()

		return resultado


	def buscar_etiquetas(self):
		dados = self.__comunicar("listar_favorita_2", dados = {"DESTINO":"{}".format(settings.LOCALIZACAO_IMPRESSORA["Sigla"])})

		if dados == None:
			print "Nenhum dado recebido. Aguardando..."
			return True

		print u"Dados recebidos! {} etiquetas novas".format(len(dados))

		for etiqueta in dados:
			if self.imprimir(etiqueta):
				self.informa_sucesso(etiqueta)

	def imprimir(self, etiqueta):
		# primeiro eu mesclo os campos "PARAMETROS*" numa String só

		lista = [etiqueta["PARAMETRO1"],
			etiqueta["PARAMETRO2"],
			etiqueta["PARAMETRO3"],
			etiqueta["PARAMETRO4"],
			etiqueta["PARAMETRO5"],]

		dados_impressao = "\n".join(str(y) for y in lista if y != None)

		resultado = Imprimir().executar("MODELO_ETIQUETA.TXT", dados_impressao)

		return resultado

	def informa_sucesso(self, etiqueta):
		resultado = self.__comunicar("informar_sucesso_2", dados = {"ID":etiqueta["IDETIQUETAFAVORITA"], "TIPO":etiqueta["TIPO"]})

if __name__ == "__main__":
	daemon = daemon_impressao()

	while True:
		try:
			print u"*** FAVORITA 2.0 ***"
			print u"Conexao ao banco realizada com sucesso!"
			print u"Buscando etiquetas"
			daemon.buscar_etiquetas()
			print u"Feito!"

		except Exception, e:
			daemon = daemon_impressao()
			print u"Falha: {}".format(e)

		time.sleep(60)
