def descartar_senha(self, loja=None): try: from my_terminal import Terminal from gap_timeAtendimento import GAPTimeAtendimento #Para sabermos o ID da loja onde nos encontramos lojaID = Terminal().get_lojaID(loja=loja) self.kargs['join'] = ",gap_senha_terminal" self.where = "gap_senha_terminal.terminal = '{id}' and gap_senha_terminal.gap_senha=gap_senha.id".format( id=str(lojaID)) args = self.get(order_by='int8(gap_senha.nr_senha)') data_hoje = datetime.date.today() for self.kargs in args: data_fim = str(self.kargs['data']).split("-") if (datetime.date(int(data_fim[0]), int(data_fim[1]), int(data_fim[2])) < data_hoje) and (self.kargs['active'] == True): if (self.kargs['estado'] == 'para_atendimento') or ( self.kargs['estado'] == 'espera_atendedor') or (self.kargs['estado'] == 'espera'): senha_id = self.kargs['gap_senha'] self.Desistiu(id=senha_id) GAPTimeAtendimento().checkTimeAtendimentoLater( senha_id=senha_id, loja=loja) return True except: return False
def chamar_senhaEspera(self, senha_id=None, user_estado=None, loja=None): from my_terminal import Terminal from gap_timeAtendimento import GAPTimeAtendimento #Verificamos se o atendedor encontra-se disponivel no momento atendedorDisponivel = GAPTimeAtendimento().checkAtendedor(loja=loja) if (atendedorDisponivel): #Para sabermos o ID da loja onde nos encontramos lojaID = Terminal().get_lojaID(loja=loja) senha = GAPSenha().get_senhaExtraInfo(id=senha_id) if senha != None: from my_users import Users #Se o estado estiver em intervalo ou terminado e alterado e mudado para em serviço if (user_estado == 'intervalo') or (user_estado == 'terminado'): Users().EmServico() #Muda o seu estado para_atendimento GAPSenha().Para_Atendimento(id=senha_id) #mudar o estado da senha em espera pelo atendedor presenta na lista de estatistica GAPTimeAtendimento().setEstadoAtendimento( senha_id=senha_id, estado="para_atendimento", loja=loja) #retorna a respectiva senha return senha else: return None else: return 'atendedor_ocupado'
def chamar_por_senha(self, senha=None, user_estado=None, loja=None): from my_terminal import Terminal #Para sabermos o ID da loja onde nos encontramos lojaID = Terminal().get_lojaID(loja=loja) senha = GAPSenha().get_senha(senha=senha, loja=lojaID) if senha != None: from my_users import Users #Se o estado estiver em intervalo ou terminado e alterado e mudado para em serviço if (user_estado == 'intervalo') or (user_estado == 'terminado'): Users().EmServico() #questoes de alteraçoes para dados estatisticos from gap_timeAtendimento import GAPTimeAtendimento senha_id = self.get_id_senha(senha=senha) #Muda o estado da senha para_atendimento GAPSenha().Para_Atendimento(id=senha_id) if (self.get_estado_senha(senha=senha) == 'transferido'): GAPTimeAtendimento().setEstadoAtendimento( senha_id=senha_id, estado="para_atendimento", loja=loja) else: #addTimeAtendimento necessario para ajudar na gestao das estatisticas e relatorios self.addTimeAtendimento( senha=GAPSenha().get_senhaInfo(id=senha_id), tempo_atendimento='00:00:00', servico=self.get_servico_senha(senha=senha), loja=loja, senha_id=senha_id) #retorna a respectiva senha return senha else: return None
def get_balcao(self,loja=None): from my_terminal import Terminal from my_users import Users lojaID = Terminal().get_lojaID(loja=loja) turnoID = Users().get_turnoUser() self.kargs['join'] = ",gap_balcao_terminal, gap_balcao_gap_turno, gap_balcao_users" self.where ="gap_balcao_terminal.terminal = '{lojaid}' and gap_balcao_terminal.gap_balcao= gap_balcao.id and gap_balcao_gap_turno.gap_balcao=gap_balcao.id and gap_balcao_gap_turno.gap_turno='{turnoid}' and gap_balcao_users.users ='{userid}' and gap_balcao_users.gap_balcao= gap_balcao.id".format(lojaid=lojaID,userid=bottle.request.session['user'],turnoid=turnoID) self.kargs = self.get() if self.kargs: self.kargs = self.kargs[0] return str(self.kargs['numero']) return '0'
def get_playlist_loja(self,loja=None): from my_terminal import Terminal #Para sabermos o ID da loja onde nos encontramos lojaID = Terminal().get_lojaID(loja=loja) self.kargs['join'] = ",gap_multimedia_terminal" self.where ="gap_multimedia_terminal.terminal = '{id}' and gap_multimedia_terminal.gap_multimedia= gap_multimedia.id".format(id=str(lojaID)) options = [] opts = self.get(order_by='int8(gap_multimedia.ordem)') data_hoje = datetime.date.today() for option in opts: data_inicio = str(option['data_ini']).split("-") if (data_hoje >= datetime.date(int(data_inicio[0]),int(data_inicio[1]), int(data_inicio[2]))) and (option['md5'] != None) and (option['active'] == True): options.append(option['nome']+';'+str(option['ficheiro'])+';'+option['tipo']+";"+str(option['duracao_imagem'])+";") #Retorna a playlist para uma loja xpto :) return options
def descartar_multimedia(self,loja=None): try: from my_terminal import Terminal #Para sabermos o ID da loja onde nos encontramos lojaID = Terminal().get_lojaID(loja=loja) #Descartar a musica ou imagem cujo a data final <= data hoje self.kargs['join'] = ",gap_multimedia_terminal" self.where ="gap_multimedia_terminal.terminal = '{id}' and gap_multimedia_terminal.gap_multimedia= gap_multimedia.id".format(id=str(lojaID)) args = self.get(order_by='int8(gap_multimedia.ordem)') data_hoje = datetime.date.today() for self.kargs in args: data_fim = str(self.kargs['data_fim']).split("-") if (datetime.date(int(data_fim[0]),int(data_fim[1]), int(data_fim[2])) <= data_hoje) and (self.kargs['active'] == True): #Muda o estado do ficheiro multimedia para false fazendo com que o mesmo nao apareça mais na playlist self.kargs['user'] = bottle.request.session['user'] self.kargs['where'] = "id='{id}'".format(id=str(self.kargs['gap_multimedia'])) self.delete() return True except: return False
def prepare_data(self): primeiroAtendedorId = bottle.request.forms.get( 'nome_primeiroAtendedor') segundoAtendedorId = bottle.request.forms.get('nome_segundoAtendedor') servicoId = bottle.request.forms.get('servico') data_inicio = bottle.request.forms.get('data_inicial') data_fim = bottle.request.forms.get('data_final') lojaId = bottle.request.forms.get('loja') if not data_inicio or not data_fim: return 'sem_data' else: if not primeiroAtendedorId or not segundoAtendedorId: return 'sem_nome' elif not lojaId: return 'sem_loja' else: record = {} import erp_config as ec from gap_timeAtendimento import GAPTimeAtendimento clientesAtendidos1 = None clientesAtendidos2 = None primeiroAtendedorinfo = Users().get_userProfile( userId=primeiroAtendedorId) segundoAtendedorinfo = Users().get_userProfile( userId=segundoAtendedorId) terminalinfo = Terminal().get_terminalInfo(terminalId=lojaId) currentterminalinfo = Terminal().get_terminalInfoByname( terminalname=ec.terminal_name) terminalname = str(terminalinfo).split(";") primeiroAtendedorinfo = str(primeiroAtendedorinfo).split(";") segundoAtendedorinfo = str(segundoAtendedorinfo).split(";") if not servicoId: servicos = GAPServico().get_servico_nome() servicos = ''.join(servicos) record['servicos'] = servicos servicos = str(servicos).split(";") for servico in servicos: if clientesAtendidos1 == None: clientesAtendidos1 = GAPTimeAtendimento( ).get_clienteAtendido( nome=primeiroAtendedorinfo[0], dataInicio=data_inicio, dataFim=data_fim, loja=terminalname[0], servico=servico) clientesAtendidos2 = GAPTimeAtendimento( ).get_clienteAtendido(nome=segundoAtendedorinfo[0], dataInicio=data_inicio, dataFim=data_fim, loja=terminalname[0], servico=servico) else: clientesAtendidos1 = str( clientesAtendidos1) + ";" + str( GAPTimeAtendimento().get_clienteAtendido( nome=primeiroAtendedorinfo[0], dataInicio=data_inicio, dataFim=data_fim, loja=terminalname[0], servico=servico)) clientesAtendidos2 = str( clientesAtendidos2) + ";" + str( GAPTimeAtendimento().get_clienteAtendido( nome=segundoAtendedorinfo[0], dataInicio=data_inicio, dataFim=data_fim, loja=terminalname[0], servico=servico)) else: servico = GAPServico().get_letra_servico( keyservico=servicoId) record['servicos'] = servico record['singleservice'] = 'True' clientesAtendidos1 = GAPTimeAtendimento( ).get_clienteAtendido(nome=primeiroAtendedorinfo[0], dataInicio=data_inicio, dataFim=data_fim, loja=terminalname[0], servico=servico) clientesAtendidos2 = GAPTimeAtendimento( ).get_clienteAtendido(nome=segundoAtendedorinfo[0], dataInicio=data_inicio, dataFim=data_fim, loja=terminalname[0], servico=servico) record['title'] = 'Relatorio Comparativo Atendedor' record['enterprise'] = ec.enterprise record['targets'] = 'Atendedores' record['compare_targets'] = 'True' record['targets_names'] = str( primeiroAtendedorinfo[0]) + ";" + str( segundoAtendedorinfo[0]) record[ 'targets_contents'] = "Atendidos por " + primeiroAtendedorinfo[ 0] + ";" + "Atendidos por " + segundoAtendedorinfo[0] record[ 'text_msg'] = "Gráfico comparativo do numero de clientes Atendidos por " + primeiroAtendedorinfo[ 0] + " - " + segundoAtendedorinfo[0] + ":" if (clientesAtendidos1 != None): record['targets_values'] = str( clientesAtendidos1) + "-" + str(clientesAtendidos2) record['data'] = str(data_inicio) + ";" + str(data_fim) record['loja'] = currentterminalinfo return record
def prepare_data(self): data_inicio = bottle.request.forms.get('data_inicial') data_fim = bottle.request.forms.get('data_final') servicoId = bottle.request.forms.get('servico') lojaId = bottle.request.forms.get('loja') if not data_inicio or not data_fim: return 'sem_data' else: if not lojaId: return 'sem_loja' else: record = {} clientRating = None import erp_config as ec from gap_opiniao import GAPOpiniao from gap_servico import GAPServico lojainfo = Terminal().get_terminalInfo(terminalId=lojaId) lojainfo = str(lojainfo).split(";") terminalinfo = Terminal().get_terminalInfoByname( terminalname=ec.terminal_name) currentterminalinfo = Terminal().get_terminalInfoByname( terminalname=ec.terminal_name) if not servicoId: servicos = GAPServico().get_servico_nome() servicos = ''.join(servicos) record['servicos'] = servicos servicos = str(servicos).split(";") for servico in servicos: if clientRating == None: clientRating = GAPOpiniao().getRating( servico=servico, loja=lojainfo[0], dataInicio=data_inicio, dataFim=data_fim) else: clientRating = str(clientRating) + ";" + str( GAPOpiniao().getRating(servico=servico, loja=lojainfo[0], dataInicio=data_inicio, dataFim=data_fim)) else: servico = GAPServico().get_letra_servico( keyservico=servicoId) record['servicos'] = servico record['singleservice'] = 'True' clientRating = GAPOpiniao().getRating( servico=servico, loja=lojainfo[0], dataInicio=data_inicio, dataFim=data_fim) record['title'] = 'Relatorio Classificação Opinião' record['enterprise'] = ec.enterprise record['targets'] = 'Opinião' record['targets_names'] = str(lojainfo[0]) record['targets_contents'] = "Classificação" record[ 'text_msg'] = "Classificação dos Clientes na Loja " + lojainfo[ 0] + ":" if (clientRating != None): record['targets_values'] = str(clientRating) record['data'] = str(data_inicio) + ";" + str(data_fim) record['loja'] = currentterminalinfo return record
def get_terminal(self): return Terminal().get_options()
def prepare_data(self): data_inicio = bottle.request.forms.get('data_inicial') data_fim = bottle.request.forms.get('data_final') servicoId = bottle.request.forms.get('servico') lojaId = bottle.request.forms.get('nome') if not data_inicio or not data_fim: return 'sem_data' else: if not lojaId: return 'sem_nome' else: record = {} clientesAtendidos = None clientesDesistiram = None import erp_config as ec from gap_timeAtendimento import GAPTimeAtendimento from gap_servico import GAPServico lojainfo = Terminal().get_terminalInfo(terminalId=lojaId) lojainfo = str(lojainfo).split(";") terminalinfo = Terminal().get_terminalInfoByname( terminalname=ec.terminal_name) currentterminalinfo = Terminal().get_terminalInfoByname( terminalname=ec.terminal_name) if not servicoId: servicos = GAPServico().get_servico_nome() servicos = ''.join(servicos) record['servicos'] = servicos servicos = str(servicos).split(";") for servico in servicos: if clientesAtendidos == None and clientesDesistiram == None: clientesAtendidos = GAPTimeAtendimento( ).get_clienteAtendidoByLoja(dataInicio=data_inicio, dataFim=data_fim, loja=lojainfo[0], servico=servico) clientesDesistiram = GAPTimeAtendimento( ).get_clienteDesistiramByLoja( dataInicio=data_inicio, dataFim=data_fim, loja=lojainfo[0], servico=servico) else: clientesAtendidos = str( clientesAtendidos) + ";" + str( GAPTimeAtendimento( ).get_clienteAtendidoByLoja( dataInicio=data_inicio, dataFim=data_fim, loja=lojainfo[0], servico=servico)) clientesDesistiram = str( clientesDesistiram) + ";" + str( GAPTimeAtendimento( ).get_clienteDesistiramByLoja( dataInicio=data_inicio, dataFim=data_fim, loja=lojainfo[0], servico=servico)) else: servico = GAPServico().get_letra_servico( keyservico=servicoId) record['servicos'] = servico record['singleservice'] = 'True' clientesAtendidos = GAPTimeAtendimento( ).get_clienteAtendidoByLoja(dataInicio=data_inicio, dataFim=data_fim, loja=lojainfo[0], servico=servico) clientesDesistiram = GAPTimeAtendimento( ).get_clienteDesistiramByLoja(dataInicio=data_inicio, dataFim=data_fim, loja=lojainfo[0], servico=servico) record['title'] = 'Relatorio Loja' record['enterprise'] = ec.enterprise record['targets'] = 'Loja' record['targets_names'] = str(lojainfo[0]) record['targets_contents'] = "Atendidos;Desistiram" record[ 'text_msg'] = "Numero de clientes Atendidos e Desistentes na Loja " + lojainfo[ 0] + ":" if (clientesAtendidos != None) and (clientesDesistiram != None): record['targets_values'] = str( clientesAtendidos) + "-" + str(clientesDesistiram) record['data'] = str(data_inicio) + ";" + str(data_fim) record['loja'] = currentterminalinfo return record
def get_SenhaCliente(self, user=None, servico=None, letra=None, loja=None): try: #Aviso para que o imprimir senha funcione como deve ser e necessario instalar um plugin no browser mozila AttendPrint ou soluçoes do genero para o google chrome aplicando-se comandos como o --kioske print from my_terminal import Terminal from gap_servico import GAPServico lojaId = Terminal().get_lojaID(loja=loja) servico_id = GAPServico().get_servico_id(nome=servico) output = None if (lojaId == 0): return None else: if (GAPServico().check_turnoServico( servico_id=servico_id) == True): print("dentro do if ca podi :( ") data = datetime.date.today() hora = datetime.datetime.now().time().strftime('%H:%M:%S') nr_senha = self.get_numero_senha(loja=loja, user=user) content = { 'user': '******'.format(user=user), 'servico': servico_id, 'letra': letra, 'nr_senha': nr_senha, 'data': data, 'hora_ped': hora, 'pess_fila': 0, 'est_atend': 0, 'estado': 'espera', } GAPSenha(**content).put() #agora buscamos pelo id da senha que acabamos de insirir self.where = "servico = '{servico}' and nr_senha= '{nr_senha}' and hora_ped= '{hora_ped}' and data= '{data}'".format( servico=str(servico_id), nr_senha=str(nr_senha), hora_ped=str(hora), data=str(data)) self.kargs = self.get(order_by='int8(gap_senha.nr_senha)') if self.kargs: self.kargs = self.kargs[0] kargs = {} kargs['terminal'] = lojaId kargs['parent_name'] = 'terminal' kargs['gap_senha'] = self.kargs['id'] kargs['user'] = user #adicionamos na relaçao m2m GAPSenha(**kargs).put_m2m() #actualizamos a senha com os valores das pessoas em fila , estimativa de atendimento nessa loja pess_fila = self.get_pessoas_fila(loja=lojaId) est_atend = self.get_estimativa(loja=lojaId) updatedcontent = { 'id': '{id}'.format(id=self.kargs['id']), 'user': '******'.format(user=user), 'pess_fila': pess_fila, 'est_atend': est_atend, } GAPSenha(**updatedcontent).put() #Enfim finalmente vamos imprimir a nossa senha :) from gap_senha_config import GAPSenhaConfig senhaConfigServico = GAPSenhaConfig( ).get_config_servico(servico=servico_id) senhaConfigLoja = GAPSenhaConfig().get_config_loja( loja=lojaId) senhaConfigLoja = str(senhaConfigLoja).split(";") senhaConfigServico = str(senhaConfigServico).split(";") #Estou a utilizar esse metodo por causa de alguns problemas com o reports nesse caso especifico....alterar depois output = """ <!DOCTYPE html> <html> <head> <title>Senha</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="/static/css/foundation.css" /> <link rel="stylesheet" href="/static/css/gap.css" /> </head> <body> <h6 id="TextoSenha"> <img src="/static/logos/logo_minfin.png"/></h6> <h6 id="TextoSenhaCR">{message_cabesalho_loja}</h6> <h6 id="TextoSenhaCR">{message_cabesalho_servico}</h6> <h6 id="TextoSenha">Data: {data}</h6> <h6 id="TextoSenha">Hora de Entrada: {hora_ped}</h6> <h1 id="TextoSenhaSenha"><b>{servico} {nr_senha}</b></h1> <h6 id="TextoSenha">Pessoas na Fila: {pess_fila}</h6> <h6 id="TextoSenha">Tempo estimado: {est_atend}</h6> <h6 id="TextoSenha">{message_rodape_servico}</h6> <h6 id="TextoSenha">{message_rodape_loja}</h6> """.format( message_cabesalho_loja=senhaConfigLoja[0], message_cabesalho_servico=senhaConfigServico[0], data=data, hora_ped=hora, servico=letra, nr_senha=nr_senha, pess_fila=pess_fila, est_atend=est_atend, message_rodape_servico=senhaConfigServico[1], message_rodape_loja=senhaConfigLoja[1]) output += """ <script src="/static/js/modernizr.js"></script> <script src="/static/js/jquery.min.js"></script> <script> window.print(); window.close(); </script> </body> </html> """ print("retornando output ------------------------------------ ") return str(output) except BaseException as e: return None
def efectuar_pagamento(self, key, window_id): """Esta acção efectua o pagamento""" active = False record_id = key record = model.get(key=record_id)[0] record['user'] = session['user'] record['estado'] = 'Pago' #Verifica se tem caixa aberta, se não tiver abre #Faz o pagamento em caixa try: from my_caixa import Caixa except: from caixa import Caixa try: from my_linha_caixa import LinhaCaixa except: from linha_caixa import LinhaCaixa try: from my_terminal import Terminal except: from terminal import Terminal terminal = Terminal(where="""name='Esplanada'""").get() if terminal[0] > 0: terminal = terminal[1][0]['id'] caixa = Caixa( where= "estado = 'Aberta' AND terminal='{terminal}' AND data_inicial <= '{today}'" .format(terminal=terminal, today=record['data'])).get() if not caixa: caixa = Caixa(data_inicial=record['data'], hora_inicial=time.strftime('%H:%M:%S'), valor_inicial=0, valor_final=0, estado='Aberta', user=session['user'], vendedor=session['user'], terminal=terminal).put() else: caixa = caixa[0]['id'] if record['factura']: active = True record['estado'] = 'Pago' try: from my_metodo_pagamento import MetodoPagamento except: from metodo_pagamento import MetodoPagamento metodos_pagamento = MetodoPagamento().get_options() first = True total_entregue = to_decimal('0') for metodo in metodos_pagamento: if bottle.request.forms.get(metodo[1]): method = to_decimal(str(bottle.request.forms.get(metodo[1]))) else: method = to_decimal('0') if method > to_decimal('0'): total_entregue += to_decimal( str(bottle.request.forms.get(metodo[1]))) if total_entregue >= to_decimal( str(bottle.request.forms.get('total_a_pagar'))): for metodo in metodos_pagamento: if first == True: default_metodo = metodo first = False if bottle.request.forms.get(metodo[1]): method = to_decimal( str(bottle.request.forms.get(metodo[1]))) else: method = to_decimal('0') if method > to_decimal('0'): linha_caixa = LinhaCaixa( caixa=caixa, descricao='Nosso Talão de Bar', documento='talao_bar', num_doc=record['numero'], valor_documento=to_decimal( str(bottle.request.forms.get('total_a_pagar'))), terceiro=record['cliente'], metodo=metodo[0], entrada=bottle.request.forms.get(metodo[1]), saida=0, active=active, user=session['user']).put() troco = total_entregue - to_decimal( str(bottle.request.forms.get('total_a_pagar'))) if troco > to_decimal('0'): linha_caixa = LinhaCaixa( caixa=caixa, descricao='Nosso Talão de Bar', documento='talao_bar', num_doc=record['numero'], valor_documento=to_decimal( str(bottle.request.forms.get('total_a_pagar'))), terceiro=record['cliente'], metodo=default_metodo[0], entrada=0, saida=troco, active=active, user=session['user']).put() else: troco = to_decimal('0') record['residual'] = to_decimal( str(bottle.request.forms.get( 'total_a_pagar'))) - total_entregue + troco #Faz o lançamento contabilistico se tiver factura como movimento activo, se não como movimento geral #Vê o metodo de pagamento e lança na conta adequada try: from my_diario import Diario except: from diario import Diario diario = Diario(where="tipo='caixa'").get()[0]['id'] periodo = None try: from my_periodo import Periodo except: from periodo import Periodo periodos = Periodo().get() for p in periodos: lista_datas = generate_dates(start_date=p['data_inicial'], end_date=p['data_final']) if str(format_date(record['data'])) in lista_datas: periodo = p['id'] if not periodo: return error_message( 'não existe periodo definido para a data em questão! \n') try: from my_movimento import Movimento except: from movimento import Movimento try: from my_linha_movimento import LinhaMovimento except: from linha_movimento import LinhaMovimento movimento = Movimento( data=record['data'], numero=base_models.Sequence().get_sequence('movimento'), num_doc=record['numero'], descricao='Pagamento de Talão de Bar', diario=diario, documento='talao_bar', periodo=periodo, estado='Rascunho', user=session['user'], active=active).put() TalaoBar(**record).put() try: from my_terceiro import Terceiro except: from terceiro import Terceiro conta_cliente = Terceiro().get( key=record['cliente'])[0]['a_receber'] for metodo in metodos_pagamento: if bottle.request.forms.get(metodo[1]): method = to_decimal( str(bottle.request.forms.get(metodo[1]))) else: method = to_decimal('0') if method > to_decimal('0'): conta_pagamento = MetodoPagamento().get( key=metodo[0])[0]['conta'] LinhaMovimento(movimento=movimento, descricao='Pagamento de Talão de Bar', conta=conta_pagamento, quant_debito=to_decimal('0'), debito=to_decimal( str(bottle.request.forms.get( metodo[1]))), quant_credito=to_decimal('0'), credito=to_decimal('0'), user=session['user']).put() LinhaMovimento(movimento=movimento, descricao='Pagamento de Talão de Bar', conta=conta_cliente, quant_debito=to_decimal('0'), debito=to_decimal('0'), quant_credito=to_decimal('0'), credito=to_decimal( str(bottle.request.forms.get( metodo[1]))), user=session['user']).put() return form_edit(key='None', window_id=window_id) else: return 'Segundo as Regras da Empresa não é possivel receber valores inferiores ao valor a Pagar, Torne a efectuar o pagamento por Favor!' #depois ver a possibilidade de ficar no mesmo sitio
def prepare_data(self): data_inicio = bottle.request.forms.get('data_inicial') data_fim = bottle.request.forms.get('data_final') servicoId = bottle.request.forms.get('servico') userId = bottle.request.forms.get('nome') lojaId = bottle.request.forms.get('loja') if not data_inicio or not data_fim: return 'sem_data' elif not lojaId: return 'sem_loja' else: record = {} import erp_config as ec from gap_timeAtendimento import GAPTimeAtendimento terminalinfo = Terminal().get_terminalInfo(terminalId=lojaId) terminalname = str(terminalinfo).split(";") nomeAtendedor = None clientesAtendidos = None tempo_medio = None tempo_maximo = None tempo_minimo = None if userId: userinfo = Users().get_userProfile(userId=userId) record['singleatendedor'] = 'True' if userinfo != None: record['atendedor'] = userinfo userinfo = str(userinfo).split(";") nomeAtendedor = userinfo[0] if not servicoId: servicos = GAPServico().get_servico_nome() servicos = ''.join(servicos) record['servicos'] = servicos servicos= str(servicos).split(";") for servico in servicos: if clientesAtendidos == None: clientesAtendidos=GAPTimeAtendimento().get_clienteAtendido(nome=nomeAtendedor, dataInicio=data_inicio, dataFim=data_fim, loja=terminalname[0], servico=servico) tempo_medio=GAPTimeAtendimento().get_mediaTempoAtendido(nome=nomeAtendedor, dataInicio=data_inicio, dataFim=data_fim, loja=terminalname[0], servico=servico) tempo_maximo=GAPTimeAtendimento().get_tempoMaximoAtendido(nome=nomeAtendedor, dataInicio=data_inicio, dataFim=data_fim, loja=terminalname[0], servico=servico) tempo_minimo=GAPTimeAtendimento().get_tempoMinimoAtendido(nome=nomeAtendedor, dataInicio=data_inicio, dataFim=data_fim, loja=terminalname[0], servico=servico) else: clientesAtendidos=str(clientesAtendidos)+";"+str(GAPTimeAtendimento().get_clienteAtendido(nome=nomeAtendedor, dataInicio=data_inicio, dataFim=data_fim, loja=terminalname[0], servico=servico)) tempo_medio=str(tempo_medio)+";"+str(GAPTimeAtendimento().get_mediaTempoAtendido(nome=nomeAtendedor, dataInicio=data_inicio, dataFim=data_fim, loja=terminalname[0], servico=servico)) tempo_maximo=str(tempo_maximo)+";"+str(GAPTimeAtendimento().get_tempoMaximoAtendido(nome=nomeAtendedor, dataInicio=data_inicio, dataFim=data_fim, loja=terminalname[0], servico=servico)) tempo_minimo=str(tempo_minimo)+";"+str(GAPTimeAtendimento().get_tempoMinimoAtendido(nome=nomeAtendedor, dataInicio=data_inicio, dataFim=data_fim, loja=terminalname[0], servico=servico)) else: servico = GAPServico().get_letra_servico(keyservico=servicoId) record['servicos'] = servico record['singleservice'] = 'True' clientesAtendidos=GAPTimeAtendimento().get_clienteAtendido(nome=nomeAtendedor, dataInicio=data_inicio, dataFim=data_fim, loja=terminalname[0], servico=servico) tempo_medio=GAPTimeAtendimento().get_mediaTempoAtendido(nome=nomeAtendedor, dataInicio=data_inicio, dataFim=data_fim, loja=terminalname[0], servico=servico) tempo_maximo=GAPTimeAtendimento().get_tempoMaximoAtendido(nome=nomeAtendedor, dataInicio=data_inicio, dataFim=data_fim, loja=terminalname[0], servico=servico) tempo_minimo=GAPTimeAtendimento().get_tempoMinimoAtendido(nome=nomeAtendedor, dataInicio=data_inicio, dataFim=data_fim, loja=terminalname[0], servico=servico) record['clientes_atendidos'] = clientesAtendidos record['text_msg'] = "Numero de clientes Atendidos por "+nomeAtendedor+":" record['tempo_medio_atendimento'] = tempo_medio record['tempo_maximo_atendimento'] = tempo_maximo record['tempo_minimo_atendimento'] = tempo_minimo record['enterprise'] = ec.enterprise record['data'] = str(data_inicio)+";"+str(data_fim) record['loja'] = terminalinfo else: users = Users().get_atendedoresLoja(lojaid=lojaId) user_content = ''.join(users) record['atendedor'] = user_content user_content = str(user_content).split(";") if not servicoId: servicos = GAPServico().get_servico_nome() servicos = ''.join(servicos) record['servicos'] = servicos servicos= str(servicos).split(";") for servico in servicos: count = 0 for i in range(0,len(user_content)): if clientesAtendidos == None: clientesAtendidos=GAPTimeAtendimento().get_clienteAtendido(nome=user_content[count], dataInicio=data_inicio, dataFim=data_fim, loja=terminalname[0], servico=servico) tempo_medio=GAPTimeAtendimento().get_mediaTempoAtendido(nome=user_content[count], dataInicio=data_inicio, dataFim=data_fim, loja=terminalname[0], servico=servico) tempo_maximo=GAPTimeAtendimento().get_tempoMaximoAtendido(nome=user_content[count], dataInicio=data_inicio, dataFim=data_fim, loja=terminalname[0], servico=servico) tempo_minimo=GAPTimeAtendimento().get_tempoMinimoAtendido(nome=user_content[count], dataInicio=data_inicio, dataFim=data_fim, loja=terminalname[0], servico=servico) else: clientesAtendidos=str(clientesAtendidos)+";"+str(GAPTimeAtendimento().get_clienteAtendido(nome=user_content[count], dataInicio=data_inicio, dataFim=data_fim, loja=terminalname[0], servico=servico)) tempo_medio=str(tempo_medio)+";"+str(GAPTimeAtendimento().get_mediaTempoAtendido(nome=user_content[count], dataInicio=data_inicio, dataFim=data_fim, loja=terminalname[0], servico=servico)) tempo_maximo=str(tempo_maximo)+";"+str(GAPTimeAtendimento().get_tempoMaximoAtendido(nome=user_content[count], dataInicio=data_inicio, dataFim=data_fim, loja=terminalname[0], servico=servico)) tempo_minimo=str(tempo_minimo)+";"+str(GAPTimeAtendimento().get_tempoMinimoAtendido(nome=user_content[count], dataInicio=data_inicio, dataFim=data_fim, loja=terminalname[0], servico=servico)) count+=1 else: servico = GAPServico().get_letra_servico(keyservico=servicoId) record['servicos'] = servico record['singleservice'] = 'True' count = 0 for i in range(0,len(user_content)): if clientesAtendidos == None: clientesAtendidos=GAPTimeAtendimento().get_clienteAtendido(nome=user_content[count], dataInicio=data_inicio, dataFim=data_fim, loja=terminalname[0], servico=servico) tempo_medio=GAPTimeAtendimento().get_mediaTempoAtendido(nome=user_content[count], dataInicio=data_inicio, dataFim=data_fim, loja=terminalname[0], servico=servico) tempo_maximo=GAPTimeAtendimento().get_tempoMaximoAtendido(nome=user_content[count], dataInicio=data_inicio, dataFim=data_fim, loja=terminalname[0], servico=servico) tempo_minimo=GAPTimeAtendimento().get_tempoMinimoAtendido(nome=user_content[count], dataInicio=data_inicio, dataFim=data_fim, loja=terminalname[0], servico=servico) else: clientesAtendidos=str(clientesAtendidos)+";"+str(GAPTimeAtendimento().get_clienteAtendido(nome=user_content[count], dataInicio=data_inicio, dataFim=data_fim, loja=terminalname[0], servico=servico)) tempo_medio=str(tempo_medio)+";"+str(GAPTimeAtendimento().get_mediaTempoAtendido(nome=user_content[count], dataInicio=data_inicio, dataFim=data_fim, loja=terminalname[0], servico=servico)) tempo_maximo=str(tempo_maximo)+";"+str(GAPTimeAtendimento().get_tempoMaximoAtendido(nome=user_content[count], dataInicio=data_inicio, dataFim=data_fim, loja=terminalname[0], servico=servico)) tempo_minimo=str(tempo_minimo)+";"+str(GAPTimeAtendimento().get_tempoMinimoAtendido(nome=user_content[count], dataInicio=data_inicio, dataFim=data_fim, loja=terminalname[0], servico=servico)) count+=1 record['clientes_atendidos'] = clientesAtendidos record['tempo_medio_atendimento'] = tempo_medio record['tempo_maximo_atendimento'] = tempo_maximo record['tempo_minimo_atendimento'] = tempo_minimo record['enterprise'] = ec.enterprise record['data'] = str(data_inicio)+";"+str(data_fim) record['loja'] = terminalinfo return record