gbope commited on
Commit
fce2dd3
·
verified ·
1 Parent(s): ba42573

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +16 -17
app.py CHANGED
@@ -103,7 +103,8 @@ def processar_documentos_para_whatsapp(titular_nascido_2010, categoria, modalida
103
  documentos_padrao_titular = obter_documentos_padrao_2010_mais() if titular_nascido_2010 else obter_documentos_padrao_2009_menos()
104
  documentos_titular = obter_documentos_titular(categoria, modalidade, documentos_padrao_titular)
105
 
106
- if titular_carencia:
 
107
  documentos_titular.extend(docs_carencia)
108
 
109
  lista_completa.append(("TITULAR", documentos_titular))
@@ -114,6 +115,7 @@ def processar_documentos_para_whatsapp(titular_nascido_2010, categoria, modalida
114
  nome_simples = simplificar_dependente(dep_tipo)
115
  docs_dep = obter_documentos_dependente(dep_tipo, dep_nascido_2010)
116
 
 
117
  if dep_carencia:
118
  docs_dep.extend(docs_carencia)
119
 
@@ -122,13 +124,14 @@ def processar_documentos_para_whatsapp(titular_nascido_2010, categoria, modalida
122
  for nome, documentos in lista_completa:
123
  texto_final += formatar_documentos_para_whatsapp(nome, documentos)
124
 
125
- return texto_final.strip(), gr.update(visible=True), gr.update(visible=True)
126
 
127
  def atualizar_lista_inclusos(titular_nascido_2010, categoria, modalidade, titular_carencia, dependentes_info):
128
  lista_inclusos = []
129
 
130
  tipo_titular = "Titular (2010+)" if titular_nascido_2010 else "Titular (2009-)"
131
- if titular_carencia:
 
132
  tipo_titular += " + carência"
133
  lista_inclusos.append([tipo_titular, categoria, modalidade if modalidade else "PF"])
134
 
@@ -142,14 +145,14 @@ def atualizar_lista_inclusos(titular_nascido_2010, categoria, modalidade, titula
142
 
143
  return lista_inclusos
144
 
145
- # --- NOVA FUNÇÃO PARA RESETAR TODOS OS CAMPOS ---
146
  def limpar_tudo():
147
  return (
148
  gr.update(value="PF", interactive=True), # categoria
149
  gr.update(choices=[], interactive=False, value=None), # modalidade (reinicia para vazio e desativado)
150
  gr.update(value=False, interactive=True), # titular_nascido_2010
151
  gr.update(value=False, interactive=True), # titular_carencia
152
- gr.update(visible=True), # accordion_titular (volta a ser visível)
 
153
  gr.update(value=None), # dep_tipo
154
  gr.update(value=False), # dep_nascido_2010
155
  gr.update(value=False), # dep_carencia
@@ -160,7 +163,6 @@ def limpar_tudo():
160
  gr.update(visible=False, value="") # status_copia (oculta e limpa o status da cópia)
161
  )
162
 
163
- # --- NOVA FUNÇÃO PARA CONFIRMAR TITULAR ---
164
  def confirmar_titular():
165
  # Isso torna os componentes do titular não interativos e esconde o botão de confirmar.
166
  # O accordion "Adicionar Dependentes" pode ser aberto automaticamente aqui.
@@ -170,7 +172,7 @@ def confirmar_titular():
170
  gr.update(interactive=False), # titular_nascido_2010
171
  gr.update(interactive=False), # titular_carencia
172
  gr.update(visible=False), # btn_confirmar_titular (esconde o próprio botão)
173
- gr.Accordion(open=True) # Abre o accordion de dependentes
174
  )
175
 
176
  def criar_interface():
@@ -180,10 +182,8 @@ def criar_interface():
180
 
181
  with gr.Row():
182
  with gr.Column():
183
- # Agrupamos os campos do titular em um gr.Group com um accordion
184
- with gr.Accordion("Dados do Titular", open=True) as accordion_titular: # Novo accordion para o titular
185
- with gr.Group(): # O antigo group
186
- # gr.Markdown("### Titular") # Este Markdown já está no label do accordion
187
  categoria = gr.Radio(
188
  choices=["PF", "CNPJ", "ADESAO"],
189
  label="Categoria do Titular",
@@ -197,10 +197,9 @@ def criar_interface():
197
  with gr.Row():
198
  titular_nascido_2010 = gr.Checkbox(label="Nasceu em 2010 ou depois?")
199
  titular_carencia = gr.Checkbox(label="Fará compra de carência?")
200
- # --- NOVO BOTÃO DE CONFIRMAR TITULAR ---
201
  btn_confirmar_titular = gr.Button("✅ Confirmar Dados do Titular", variant="primary")
202
 
203
- with gr.Accordion("Adicionar Dependentes", open=False) as accordion_deps: # Começa fechado
204
  with gr.Group():
205
  gr.Markdown("### Novo Dependente")
206
  dep_tipo = gr.Dropdown(
@@ -334,6 +333,7 @@ def criar_interface():
334
  titular_nascido_2010,
335
  titular_carencia,
336
  accordion_titular, # Resetar o accordion do titular (visibilidade)
 
337
  dep_tipo,
338
  dep_nascido_2010,
339
  dep_carencia,
@@ -345,17 +345,16 @@ def criar_interface():
345
  ]
346
  )
347
 
348
- # --- CONEXÃO DO BOTÃO CONFIRMAR TITULAR ---
349
  btn_confirmar_titular.click(
350
  confirmar_titular,
351
- inputs=None, # Não precisa de inputs para uma ação visual
352
  outputs=[
353
  categoria,
354
  modalidade,
355
  titular_nascido_2010,
356
  titular_carencia,
357
- btn_confirmar_titular, # Ocultar o próprio botão de confirmar
358
- accordion_deps # Abrir o accordion de dependentes
359
  ]
360
  )
361
 
 
103
  documentos_padrao_titular = obter_documentos_padrao_2010_mais() if titular_nascido_2010 else obter_documentos_padrao_2009_menos()
104
  documentos_titular = obter_documentos_titular(categoria, modalidade, documentos_padrao_titular)
105
 
106
+ # --- CORREÇÃO AQUI: Adicionar documentos de carência APENAS se não for categoria CNPJ ---
107
+ if titular_carencia and categoria != "CNPJ":
108
  documentos_titular.extend(docs_carencia)
109
 
110
  lista_completa.append(("TITULAR", documentos_titular))
 
115
  nome_simples = simplificar_dependente(dep_tipo)
116
  docs_dep = obter_documentos_dependente(dep_tipo, dep_nascido_2010)
117
 
118
+ # Documentos de carência para dependentes sempre são adicionados
119
  if dep_carencia:
120
  docs_dep.extend(docs_carencia)
121
 
 
124
  for nome, documentos in lista_completa:
125
  texto_final += formatar_documentos_para_whatsapp(nome, documentos)
126
 
127
+ return texto_final.strip(), gr.update(visible=True), gr.update(visible=True)
128
 
129
  def atualizar_lista_inclusos(titular_nascido_2010, categoria, modalidade, titular_carencia, dependentes_info):
130
  lista_inclusos = []
131
 
132
  tipo_titular = "Titular (2010+)" if titular_nascido_2010 else "Titular (2009-)"
133
+ # --- CORREÇÃO AQUI: A frase " + carência" na lista de inclusos só aparece se não for CNPJ ---
134
+ if titular_carencia and categoria != "CNPJ":
135
  tipo_titular += " + carência"
136
  lista_inclusos.append([tipo_titular, categoria, modalidade if modalidade else "PF"])
137
 
 
145
 
146
  return lista_inclusos
147
 
 
148
  def limpar_tudo():
149
  return (
150
  gr.update(value="PF", interactive=True), # categoria
151
  gr.update(choices=[], interactive=False, value=None), # modalidade (reinicia para vazio e desativado)
152
  gr.update(value=False, interactive=True), # titular_nascido_2010
153
  gr.update(value=False, interactive=True), # titular_carencia
154
+ gr.Accordion(open=True), # accordion_titular (volta a ser visível e aberto)
155
+ gr.update(visible=True), # btn_confirmar_titular (torna o botão de confirmar visível)
156
  gr.update(value=None), # dep_tipo
157
  gr.update(value=False), # dep_nascido_2010
158
  gr.update(value=False), # dep_carencia
 
163
  gr.update(visible=False, value="") # status_copia (oculta e limpa o status da cópia)
164
  )
165
 
 
166
  def confirmar_titular():
167
  # Isso torna os componentes do titular não interativos e esconde o botão de confirmar.
168
  # O accordion "Adicionar Dependentes" pode ser aberto automaticamente aqui.
 
172
  gr.update(interactive=False), # titular_nascido_2010
173
  gr.update(interactive=False), # titular_carencia
174
  gr.update(visible=False), # btn_confirmar_titular (esconde o próprio botão)
175
+ gr.Accordion(open=True) # Abre o accordion de dependentes
176
  )
177
 
178
  def criar_interface():
 
182
 
183
  with gr.Row():
184
  with gr.Column():
185
+ with gr.Accordion("Dados do Titular", open=True) as accordion_titular:
186
+ with gr.Group():
 
 
187
  categoria = gr.Radio(
188
  choices=["PF", "CNPJ", "ADESAO"],
189
  label="Categoria do Titular",
 
197
  with gr.Row():
198
  titular_nascido_2010 = gr.Checkbox(label="Nasceu em 2010 ou depois?")
199
  titular_carencia = gr.Checkbox(label="Fará compra de carência?")
 
200
  btn_confirmar_titular = gr.Button("✅ Confirmar Dados do Titular", variant="primary")
201
 
202
+ with gr.Accordion("Adicionar Dependentes", open=False) as accordion_deps:
203
  with gr.Group():
204
  gr.Markdown("### Novo Dependente")
205
  dep_tipo = gr.Dropdown(
 
333
  titular_nascido_2010,
334
  titular_carencia,
335
  accordion_titular, # Resetar o accordion do titular (visibilidade)
336
+ btn_confirmar_titular, # Torna o botão de confirmar visível novamente
337
  dep_tipo,
338
  dep_nascido_2010,
339
  dep_carencia,
 
345
  ]
346
  )
347
 
 
348
  btn_confirmar_titular.click(
349
  confirmar_titular,
350
+ inputs=None,
351
  outputs=[
352
  categoria,
353
  modalidade,
354
  titular_nascido_2010,
355
  titular_carencia,
356
+ btn_confirmar_titular,
357
+ accordion_deps
358
  ]
359
  )
360