pythondash / caixa.py
InstitutoMIX's picture
Upload 10 files
e87112e
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('<hr></hr>',unsafe_allow_html=True)
st.markdown('<div class="container"></div>',unsafe_allow_html=True)
st.markdown('<style>' + open('style.css').read() + '</style>',unsafe_allow_html=True)
st.header('Kanban :orange[FECHAMENTO CAIXA]')
col1 , col2,col3 = st.tabs(['Conferencia','Pagamento em Cartão','Concluido'])
with col1:
st.header('Conferencia')
#if controlado tiver preenchido e [FechamentoCaixa ] Quantos Caixas foram abertos neste dia por esta secretária? tiver vazio esta nessa fase
st.text('Conferencia')
for control in range(len(df)):
if (df.loc[control,'[FechamentoCaixa ] Quantos Caixas foram abertos neste dia por esta secretária?']) == "":
#st.text(df.loc[control,'Nome'])
with st.expander(df.loc[control,'Nome']):
st.text(df.loc[control,'Unidade'])
with col2:
st.header('Pagamento em Cartão')
#if [FechamentoCaixa ] Confira no extrato da conta se o comprovante de depósito de dinheiro foi compensado devidamente. Foi? tiver preenchido e [FechamentoCaixa ] Qual o valor recebido em cartão por esta secretária? tiver vazio
st.text('Pagamento em Cartão')
for control in range(len(df)):
if (df.loc[control,'[FechamentoCaixa ] Confira no extrato da conta se o comprovante de depósito de dinheiro foi compensado devidamente. Foi?']) != "" and (df.loc[control,'[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?']) == "":
#st.text(df.loc[control,'Nome'])
with st.expander(df.loc[control,'Nome']):
st.text(df.loc[control,'Unidade'])
with col3:
#if [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? tiver preenchido
st.header('Concluido')
st.text('Concluido')
for control in range(len(df)):
if (df.loc[control,'[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?']) != "":
#st.text(df.loc[control,'Nome'])
with st.expander(df.loc[control,'Nome']):
st.text(df.loc[control,'Unidade'])
'''
st.sidebar.header('Main menu')
sideBarSelect = st.sidebar.selectbox('SELECIONANDO O PIPELINE',['-------------','Fechamento de Caixa','Rotina Secretaria'])
if sideBarSelect == '-------------':
#st.header('Pagina Principal ')
st.markdown('<h1 class="h11">Ola usuario :)</h1> <br>',unsafe_allow_html=True)
st.text('site ainda em desenvolvimento')
st.markdown('<style>' + open('style.css').read() + '</style>', unsafe_allow_html=True)
if sideBarSelect == 'Fechamento de Caixa':
CaixaInit()
'''