import gspread import pandas as pd import numpy as np import streamlit as st import envios import codigos status = 'negative' code = '1g9afHN6H_ThVBExwNkXlhN4AH75TVTERmGP1KB0F1PU' gc = gspread.service_account(filename='chaveSheet.json') sh = gc.open_by_key(code) ws=sh.worksheet('FechamentoCaixa') pd.set_option('display.max_colwidth', None) df = pd.DataFrame(ws.get_all_records()) print(df) position = [] def Verificar(): vazios = [] a = df.loc[:,('controlador','[FechamentoCaixa ] Quantos Caixas foram abertos neste dia por esta secretária?')] for i in range(len(a)): if a.loc[i,'[FechamentoCaixa ] Quantos Caixas foram abertos neste dia por esta secretária?'] != "": position.append(i) else: vazios.append(i) print(vazios) ultimo = position[-1] #posição do ultimo elemento preenchido proximo = ultimo + 1 #print('proximo registro é ',proximo, ' linha -> ',linha) #print("qtd",len(df)) #print(len(a) <= int(proximo)) if (len(vazios) == 0): print('sem dado para preencher') st.text('Não existe dado para preencher') #elif (df.loc[int(proximo),'Nome'] != ""): elif (vazios != ""): st.text('Existe dado para preencher') #st.header('preenchimento') #numeroKeySorteado = random.sample(range(0,1000), len(df)) #print(numeroKeySorteado[2]) #print('Proximo = ',proximo, "Position = ",len(position)) for i in vazios: key = "numeroKeySorteado_{}".format(i) #print(key) # with st.expander(df.loc[i,'Nome']): one = st.text_input('[FechamentoCaixa ] Quantos Caixas foram abertos neste dia por esta secretária?',key=key+'1') two = st.file_uploader('[FechamentoCaixa ] Anexe aqui o relatório de caixa do dia, quem mostra quantos caixa apenas neste dia foram abertos.',key=key+'2') tree = st.selectbox('FechamentoCaixa ] Todos os caixas desta secretária tiveram prestação de contas?',key=key+'3',options=['Sim','Não']) four = st.selectbox('[FechamentoCaixa ] Alguém além das secretárias abriu caixa neste dia?',key=key+'4',options=['Sim','Não']) if four == 'Sim': five = st.text_input('[FechamentoCaixa ] Quem abriu o caixa nesse dia?',key=key+'5') else: five = '' six = st.selectbox('[FechamentoCaixa ] Confira no extrato da conta se o comprovante de depósito de dinheiro foi compensado devidamente. Foi?',key=key+'6',options=['Sim, foi compensado.','Não','Foi realizada uma sangria.','Não Houve entradas nesse dia.','Houve entradas, porém foi utilizado ao longo do dia.']) seven = '' if six == 'Sim, foi compensado.': seven = st.file_uploader('[FechamentoCaixa ] Anexe aqui o print do extrato do depósito correspondente:',key=key+'7') oito = '' if six == 'Foi realizada uma sangria.': oito = st.text_input('[FechamentoCaixa ] Qual o valor da sangria?',key=key+'8') #valores = [[one,two,tree,four,five,six,seven,oito]] if st.button('clicar',key=key): envios.convertion(two,two.name,codigos.CodeFechamentoCaixa) print('upload feito') if six == 'Sim, foi compensado.': envios.convertion(seven,seven.name,codigos.CodeFechamentoCaixa) print('upload feito') if seven != "": seven = 'https://drive.google.com/drive/folders/1NaucQ1-vhkQKOY993Su8EN7ooguPpoFQIkaRxDeu772n5APURpXD1Ni2tFBTP4clixSme9DT '+seven.name else: seven = "" #print('Mario: ',(df.loc[df['Nome'] == 'Mario']).index[0]) print(i) status = 'positive' print('MINHA LINHA POHA MARIO',i+2) linha = i+2 att = 'S{}:Z{}'.format(linha,linha) print(att) #valores = [[one,'teste',tree]] valores = [[one,'https://drive.google.com/drive/folders/1NaucQ1-vhkQKOY993Su8EN7ooguPpoFQIkaRxDeu772n5APURpXD1Ni2tFBTP4clixSme9DT '+two.name,tree,four,five,six,seven,oito]] if status == 'positive': preenchendo = ws.update(att,valores) st.experimental_rerun() # st.session_state.clic = False # st.session_state.botao = True def PgCartao(): control = [] pergunta = df.loc[:,['[FechamentoCaixa ] Qual o valor recebido em cartão por esta secretária?']] for i in range(len(df)): if (df.loc[i,('[FechamentoCaixa ] Qual o valor recebido em cartão por esta secretária?')] == '') and (df.loc[i,('[FechamentoCaixa ] Confira no extrato da conta se o comprovante de depósito de dinheiro foi compensado devidamente. Foi?')] != ""): control.append(i) print(i,df.loc[i,('Nome')]) print(control) if len(control) == 0: st.text('Não Tem dados para preencher nessa fase') elif len(control)>0: for i in control: key = "numeroKeySorteado_{}".format(i) with st.expander(df.loc[i,'Nome']): one = st.text_input('[FechamentoCaixa ] Qual o valor recebido em cartão por esta secretária?',key=key+'10') two = st.text_input('[FechamentoCaixa ] Qual o valor total em cartão das duas secretárias?',key=key+'20') tree = st.text_input('[FechamentoCaixa ] O valor recebido em cartão por ambas as secretárias é igual ao valor total do relatório da máquina de cartão?',key=key+'30') four = st.file_uploader('[FechamentoCaixa ] Anexe aqui o print do valor em cartão do site da maquininha de cartão:',key=key+'40') if st.button('Enviar dados ',key=key+'50'): envios.convertion(four,four.name,codigos.CodeFechamentoCaixa) print('Enviar') linha = i+2 coord = 'AA{}:AD{}'.format(linha,linha) print(coord) #valores = [[one,'teste',tree]] valores = [[one,two,tree,'https://drive.google.com/drive/folders/1NaucQ1-vhkQKOY993Su8EN7ooguPpoFQIkaRxDeu772n5APURpXD1Ni2tFBTP4clixSme9DT '+four.name]] preenchendo = ws.update(coord,valores) st.experimental_rerun() def Consultando(): st.dataframe(df) campo = (st.text_input('Digite o ID ',placeholder=f'Ultimo Registro N° {len(df)-1}')) if st.button('Pesquisar indice'): a = int(campo) print(len(df)) if a<(len(df)): st.table(df.loc[a,:]) elif a>=len(df): st.text('Não temos esse registro') graphic = st.selectbox('Graficos',['--------','Grafico','Kanban','al']) if graphic == 'Grafico': unidade = df['Unidade'].value_counts() new = pd.DataFrame(unidade) new.columns = ['QTD de Envio por Unidade'] # unity.rename(columns={"count":"Unidade"},inplace=True) st.header('Incidencia de dados por unidade') st.bar_chart(new) if graphic == "al": print('oi') brotas = df.loc[:,['Unidade','[FechamentoCaixa ] Quanto em dinheiro entrou no caixa?','[FechamentoCaixa ] Quanto foi gasto em dinheiro neste caixa?','[FechamentoCaixa ] Qual o saldo final em dinheiro no caixa?']] st.table(brotas.value_counts) def CaixaInit(): st.header('Fechamento caixa') box = st.selectbox('Selecione uma fase',['---','Consulta','Conferencia','Pagamento Cartao']) if "visibility" not in st.session_state: st.session_state.visibility = "visivel" if 'botao' not in st.session_state: st.session_state.botao = False if 'conferencia' not in st.session_state: st.session_state.conferencia = False if 'consulta' not in st.session_state: st.session_state.consulta = False if box =='Consulta': st.text('Vamos iniciar uma consulta ao pipeline Fechmaneto Caixa') if st.button('Consultar') or (st.session_state.consulta == True ): st.session_state.consulta = True Consultando() if box =='Conferencia': if st.button('Verificar se há conferencia: ') or (st.session_state.conferencia == True ): st.session_state.conferencia = True Verificar() if box =='Pagamento Cartao': if st.button('Verificar se há card na fase Pagamento Cartao: ') or st.session_state.botao == True: st.session_state.botao = True PgCartao() #st.session_state é como se fosse um contador que não é alterado pela inicialização if box =='---': st.markdown('